public void setFacets(SimpleType simpleType) { //-- copy valid facets Enumeration enum = getFacets(simpleType); while (enum.hasMoreElements()) { Facet facet = (Facet) enum.nextElement(); String name = facet.getName(); try { //-- maxExclusive if (Facet.MAX_EXCLUSIVE.equals(name)) this.setMaxExclusive(Date.parseDate(facet.getValue())); //-- maxInclusive else if (Facet.MAX_INCLUSIVE.equals(name)) this.setMaxInclusive(Date.parseDate(facet.getValue())); //-- minExclusive else if (Facet.MIN_EXCLUSIVE.equals(name)) this.setMinExclusive(Date.parseDate(facet.getValue())); //-- minInclusive else if (Facet.MIN_INCLUSIVE.equals(name)) this.setMinInclusive(Date.parseDate(facet.getValue())); //-- pattern else if (Facet.PATTERN.equals(name)) { //do nothing for the moment System.out.println( "Warning: The facet 'pattern' is not currently supported for Date."); } } catch (ParseException e) { //not possible to set the facet properly //This can't happen since a ParseException would have been set //during the unmarshalling of the facets e.printStackTrace(); return; } } //while } //setFacets
/** * Creates the validation code for an instance of this XSType. The validation * code should if necessary create a newly configured TypeValidator, that * should then be added to a FieldValidator instance whose name is provided. * * @param fixedValue a fixed value to use if any * @param jsc the JSourceCode to fill in. * @param fieldValidatorInstanceName the name of the FieldValidator * that the configured TypeValidator should be added to. */ public void validationCode (JSourceCode jsc, String fixedValue, String fieldValidatorInstanceName) { if (jsc == null) jsc = new JSourceCode(); jsc.add("DateTimeValidator typeValidator = new DateTimeValidator();"); if (hasMinimum()) { jsc.add("try {"); jsc.indent(); Date min = getMinExclusive(); if (min != null) { jsc.add( "org.exolab.castor.types.Date min =" + "org.exolab.castor.types.Date.parseDate(" + "\"" + min.toString() + "\");"); jsc.add("typeValidator.setMinExclusive("); } else { min = getMinInclusive(); jsc.add( "org.exolab.castor.types.Date min =" + "org.exolab.castor.types.Date.parseDate(" + "\"" + min.toString() + "\");"); jsc.add("typeValidator.setMinInclusive("); } jsc.append("min"); jsc.append(");"); jsc.unindent(); jsc.add("} catch (java.text.ParseException e) {"); jsc.indent(); jsc.add("System.out.println(e);"); jsc.add("e.printStackTrace();"); jsc.add("return;"); jsc.unindent(); jsc.add("}"); } //hasMinimum? if (hasMaximum()) { jsc.add("try {"); jsc.indent(); Date max = getMaxExclusive(); if (max != null) { jsc.add( "org.exolab.castor.types.Date max =" + "org.exolab.castor.types.Date.parseDate(" + "\"" + max.toString() + "\");"); jsc.add("typeValidator.setMaxExclusive("); } else { max = getMaxInclusive(); jsc.add( "org.exolab.castor.types.Date max =" + "org.exolab.castor.types.Date.parseDate(" + "\"" + max.toString() + "\");"); jsc.add("typeValidator.setMaxInclusive("); } jsc.append("max"); jsc.append(");"); jsc.unindent(); jsc.add("} catch (java.text.ParseException e) {"); jsc.indent(); jsc.add("System.out.println(e);"); jsc.add("e.printStackTrace();"); jsc.add("return;"); jsc.unindent(); jsc.add("}"); } //hasMaximum //-- pattern facet jsc.add(fieldValidatorInstanceName+".setValidator(typeValidator);"); }