001 package org.apache.commons.contract.constraints;
002
003 import org.apache.commons.contract.Context;
004 import org.apache.commons.i18n.bundles.ErrorBundle;
005 import org.apache.commons.i18n.bundles.TextBundle;
006
007 public class Unconstrained implements Constraints {
008 public final static Unconstrained UNCONSTRAINED = new Unconstrained();
009
010 private Class clazz;
011
012 public Unconstrained() {
013 this.clazz = null;
014 }
015
016 public Unconstrained(Class clazz) {
017 this.clazz = clazz;
018 }
019
020 public Object cast(Object value, Context context) throws CastException {
021 return value;
022 }
023
024 public void validate(Object value, Context context) throws ValidationException {
025 if ( clazz != null && !clazz.isInstance(value) ) {
026 throw new ValidationException(new ErrorBundle("invalidObjectType", new Object[] { clazz, value }));
027 }
028 }
029
030 public TextBundle verboseConstraints() {
031 if ( clazz == null ) {
032 return new TextBundle("unconstrained");
033 } else {
034 return new TextBundle("constrainedUnconstrained");
035 }
036 }
037 }