simpleType derived from xsd:string with constraints

1 schema

    <simpleType name="TestString">
        <restriction base="xsd:string">
            <minLength value="2"/>
            <maxLength value="23"/>
            <whiteSpace value="collapse"/>
        </restriction>
    </simpleType>

2 TestString Bean

// Generated from simple.xsd
// On Mon Dec 08 11:11:31 EST 2003
                                                                           
package simple;
                                                                           
public class TestString
 implements java.io.Serializable
{
    public TestString(java.lang.String value) {
    |   if (value == null) throw new IllegalArgumentException("can not instantiate simple type with null value");
    |   setValue(value);
    }
                                                                           
    private java.lang.String _value;
                                                                           
    public java.lang.String getValue() {
    |   return _value;
    }
                                                                           
    public void setValue(java.lang.String val) {
    |   if (val == null) throw new IllegalArgumentException("can not set null value for simple content");
    |   validate(val);
    |   //whiteSpace constraint check
    |   //collapse
    |   java.lang.StringBuffer sb = new java.lang.StringBuffer();
    |   int len = val.length();
    |   char pc,c;
    |   pc = c = (char) -1;
    |   for(int i=0; i < len; i++) {
    |   |   c = val.charAt(i);
    |   |   if (java.lang.Character.isWhitespace(c)) {
    |   |   |   c =' ';
    |   |   |   if (pc != c) sb.append(c);
    |   |   } else sb.append(c);
    |   |   pc =c;
    |   }
    |   val = new java.lang.String(sb).trim();
    |   _value = val;
    }
                                                                           
    private void validate(java.lang.String val) {
    |   //minLength constraint check
    |   if (val.length() < 2)
    |       throw new IllegalArgumentException("Invalid content as per minLength constraint!");
    |                                                                      
    |   //maxLength constraint check
    |   if (val.length() > 23)
    |       throw new IllegalArgumentException("Invalid content as per maxLength constraint!");
    |                                                                      
    }
                                                                           
                                                                           
    public java.lang.String toString() { return getContent(_value); }
                                                                           
    protected static java.lang.String getContent(java.lang.String val) { return val; }
                                                                           
    public boolean equals(java.lang.Object object) {
    |   if (object == null) return false;
    |   if (!(simple.TestString.class.isAssignableFrom(object.getClass()))) return false;
    |   simple.TestString obj = (simple.TestString) object;
    |                                                                      
    |   return obj._value.equals(_value);
    }
                                                                           
    public int hashCode() { return toString().hashCode(); }
                                                                           
    /**@deprecated since jBroker Web 2.0 use getValue*/
    public java.lang.String getContent() { return toString(); }
                                                                           
    /**@deprecated since jBroker Web 2.0, use setValue*/
    public void setContent(java.lang.String val) { setValue(new simple.TestString(val).getValue()); }
                                                                           
}

3 TestString Marshaler

// Generated from simple.xsd
// On Mon Dec 08 11:11:31 EST 2003
                                                                           
package simple;
                                                                           
public class TestStringMarshaler
 implements com.sssw.jbroker.web.encoding.Marshaler
{
    public void serialize(com.sssw.jbroker.web.portable.OutputStream os, java.lang.Object object) throws java.io.IOException
    {
    |   simple.TestString obj = (simple.TestString) object;
    |   os.writeContent(obj.toString());
    }
                                                                           
    public java.lang.Object deserialize(com.sssw.jbroker.web.portable.InputStream is, java.lang.Class javaType) throws java.io.IOException
    {
    |   if (!simple.TestString.class.isAssignableFrom(javaType))
    |       throw new
    |           com.sssw.jbroker.web.ServiceException("can not deserialize " + javaType.getName());
    |                                                                      
    |   simple.TestString obj = new simple.TestString(is.readContent());
    |                                                                      
    |   return obj;
    }
    public com.sssw.jbroker.web.encoding.Attribute[] getAttributes(java.lang.Object object)
    {
    |   javax.xml.namespace.QName qname = null;
    |   java.lang.String attVal = null;
    |   java.util.ArrayList attribs = new java.util.ArrayList();
    |   com.sssw.jbroker.web.encoding.Attribute[] attrs = null;
    |   com.sssw.jbroker.web.encoding.Attribute attr = null;
    |   simple.TestString obj = (simple.TestString) object;
    |   return null;
    }
                                                                           
                                                                           
    public java.lang.String getMechanismType() { return null; }
}
Copyright © 2000-2003, Novell, Inc. All rights reserved.