home *** CD-ROM | disk | FTP | other *** search
Wrap
package com.extensibility.validation; import com.extensibility.util.regexpr.Pattern; import com.extensibility.xml.SchemaIntf; import com.extensibility.xml.dt.DataType; import com.extensibility.xml.dt.Facet; import java.math.BigDecimal; import java.math.BigInteger; import java.util.Vector; abstract class DataValidator { protected static Pattern xmlNamePattern; protected static Pattern xmlNmTokenPattern; protected String applyLexicalFacets(SchemaIntf var1, DataType var2, String var3) { Facet var4 = var2.getFacet(Facet.FACET_PATTERN_NAME); String var5 = var4 == null ? null : (String)var4.getValue(); if (var5 != null) { try { Pattern var9 = new Pattern(var5); if (var9.matches(var3)) { Object var11 = null; return (String)var11; } else { String var10 = String.valueOf(String.valueOf(String.valueOf(String.valueOf("data \"").concat(String.valueOf(var3))).concat(String.valueOf("\" does no match regular expression \""))).concat(String.valueOf(var5))).concat(String.valueOf("\"")); return var10; } } catch (RuntimeException var8) { String var7 = String.valueOf(String.valueOf(String.valueOf(String.valueOf("Invalid pattern \"").concat(String.valueOf(var5))).concat(String.valueOf("\" ("))).concat(String.valueOf(((Throwable)var8).getMessage()))).concat(String.valueOf(")")); return var7; } } else { DataType var6 = LeafValidator.getParentDataType(var1, var2); return var6 != null ? this.applyLexicalFacets(var1, var6, var3) : null; } } protected String applyStringFacets(SchemaIntf var1, DataType var2, String var3) { Facet var4 = var2.getFacet(Facet.FACET_LENGTH_NAME); try { String var5 = var4 == null ? null : (String)var4.getValue(); if (var5 != null) { int var24 = Integer.parseInt(var5); if (var3.length() != var24) { String var31 = String.valueOf(String.valueOf("length must be ").concat(String.valueOf(var24))).concat(String.valueOf(" characters")); return var31; } } var4 = var2.getFacet(Facet.FACET_MINLENGTH_NAME); var5 = var4 == null ? null : (String)var4.getValue(); if (var5 != null) { int var25 = Integer.parseInt(var5); if (var3.length() < var25) { String var30 = String.valueOf(String.valueOf("length must be at least ").concat(String.valueOf(var25))).concat(String.valueOf(" characters")); return var30; } } var4 = var2.getFacet(Facet.FACET_MAXLENGTH_NAME); var5 = var4 == null ? null : (String)var4.getValue(); if (var5 != null) { int var26 = Integer.parseInt(var5); if (var3.length() > var26) { String var29 = String.valueOf(String.valueOf("length must be at most ").concat(String.valueOf(var26))).concat(String.valueOf(" characters")); return var29; } } var4 = var2.getFacet(Facet.FACET_ENUM_NAME); Vector var27 = var4 == null ? null : (Vector)var4.getValue(); if (var27 != null && var27.indexOf(var3) == -1) { String var28 = "data does not match enumeration facet"; return var28; } var4 = var2.getFacet(Facet.FACET_MINEX_NAME); boolean var7 = var4 != null && ((String)var4.getValue()).equals("true"); var4 = var2.getFacet(Facet.FACET_MIN_NAME); var5 = var4 == null ? null : (String)var4.getValue(); if (var5 != null && var7) { if (var3.compareTo(var5) <= 0) { String var33 = String.valueOf(String.valueOf("data must be greater than \"").concat(String.valueOf(var5))).concat(String.valueOf("\"")); return var33; } if (var3.compareTo(var5) < 0) { String var32 = String.valueOf(String.valueOf("data must be greater than or equal to \"").concat(String.valueOf(var5))).concat(String.valueOf("\"")); return var32; } } var4 = var2.getFacet(Facet.FACET_MAXEX_NAME); boolean var8 = var4 != null && ((String)var4.getValue()).equals("true"); var4 = var2.getFacet(Facet.FACET_MAX_NAME); var5 = var4 == null ? null : (String)var4.getValue(); if (var5 != null && var8) { if (var3.compareTo(var5) >= 0) { String var34 = String.valueOf(String.valueOf("data must be less than \"").concat(String.valueOf(var5))).concat(String.valueOf("\"")); return var34; } if (var3.compareTo(var5) > 0) { String var9 = String.valueOf(String.valueOf("data must be less than or equal to \"").concat(String.valueOf(var5))).concat(String.valueOf("\"")); return var9; } } } catch (Exception var10) { if (var4 != null) { String var23 = String.valueOf(String.valueOf(String.valueOf("invalid facet ").concat(String.valueOf(var4.getName()))).concat(String.valueOf(" = "))).concat(String.valueOf(var4.getValue())); return var23; } String var6 = "invalid facet"; return var6; } DataType var22 = LeafValidator.getParentDataType(var1, var2); return var22 != null ? this.applyStringFacets(var1, var22, var3) : null; } protected String applyListFacets(SchemaIntf var1, DataType var2, Vector var3) { Facet var4 = var2.getFacet(Facet.FACET_LENGTH_NAME); try { String var5 = var4 == null ? null : (String)var4.getValue(); if (var5 != null) { int var18 = Integer.parseInt(var5); if (var3.size() != var18) { String var24 = String.valueOf(String.valueOf("length must be ").concat(String.valueOf(var18))).concat(String.valueOf(" items")); return var24; } } var4 = var2.getFacet(Facet.FACET_MINLENGTH_NAME); var5 = var4 == null ? null : (String)var4.getValue(); if (var5 != null) { int var19 = Integer.parseInt(var5); if (var3.size() < var19) { String var23 = String.valueOf(String.valueOf("length must be at least ").concat(String.valueOf(var19))).concat(String.valueOf(" items")); return var23; } } var4 = var2.getFacet(Facet.FACET_MAXLENGTH_NAME); var5 = var4 == null ? null : (String)var4.getValue(); if (var5 != null) { int var20 = Integer.parseInt(var5); if (var3.size() > var20) { String var22 = String.valueOf(String.valueOf("length must be at most ").concat(String.valueOf(var20))).concat(String.valueOf(" items")); return var22; } } var4 = var2.getFacet(Facet.FACET_ENUM_NAME); Vector var21 = var4 == null ? null : (Vector)var4.getValue(); if (var21 != null) { for(int var7 = 0; var7 < var3.size(); ++var7) { String var8 = (String)var3.elementAt(var7); if (var21.indexOf(var8) == -1) { String var9 = String.valueOf(String.valueOf("data \"").concat(String.valueOf(var8))).concat(String.valueOf("\" does not match enumeration facet")); return var9; } } } } catch (Exception var10) { if (var4 != null) { String var17 = String.valueOf(String.valueOf(String.valueOf("invalid facet ").concat(String.valueOf(var4.getName()))).concat(String.valueOf(" = "))).concat(String.valueOf(var4.getValue())); return var17; } String var6 = "invalid facet"; return var6; } DataType var16 = LeafValidator.getParentDataType(var1, var2); return var16 != null ? this.applyListFacets(var1, var16, var3) : null; } protected String applyIntegralFacets(SchemaIntf var1, DataType var2, BigInteger var3) { Object var4 = null; try { Facet var12 = var2.getFacet(Facet.FACET_MINEX_NAME); boolean var5 = var12 != null && ((String)var12.getValue()).equals("true"); var12 = var2.getFacet(Facet.FACET_MIN_NAME); BigInteger var20 = var12 == null ? null : new BigInteger((String)var12.getValue()); if (var20 != null && var5) { if (var3.compareTo(var20) <= 0) { String var24 = String.valueOf(String.valueOf("data must be greater than ").concat(String.valueOf(var20))).concat(String.valueOf("")); return var24; } if (var3.compareTo(var20) < 0) { String var23 = String.valueOf(String.valueOf("data must be greater than or equal to ").concat(String.valueOf(var20))).concat(String.valueOf("")); return var23; } } var12 = var2.getFacet(Facet.FACET_MAXEX_NAME); boolean var7 = var12 != null && ((String)var12.getValue()).equals("true"); var12 = var2.getFacet(Facet.FACET_MAX_NAME); var20 = var12 == null ? null : new BigInteger((String)var12.getValue()); if (var20 != null && var7) { if (var3.compareTo(var20) >= 0) { String var27 = String.valueOf(String.valueOf("data must be less than ").concat(String.valueOf(var20))).concat(String.valueOf("")); return var27; } if (var3.compareTo(var20) > 0) { String var26 = String.valueOf(String.valueOf("data must be less than or equal to ").concat(String.valueOf(var20))).concat(String.valueOf("")); return var26; } } var12 = var2.getFacet(Facet.FACET_DIGITS_NAME); var20 = var12 == null ? null : new BigInteger((String)var12.getValue()); if (var20 != null) { String var8 = var3.toString(); int var9 = var8.length(); if (var8.startsWith("-")) { --var9; } if (var9 > var20.intValue()) { String var10 = String.valueOf(String.valueOf("data must have at most ").concat(String.valueOf(var20))).concat(String.valueOf(" digits")); return var10; } } var12 = var2.getFacet(Facet.FACET_ENUM_NAME); Vector var25 = var12 == null ? null : (Vector)var12.getValue(); if (var25 != null && var25.indexOf(var3.toString()) == -1) { String var28 = "data does not match enumeration facet"; return var28; } } catch (Exception var11) { if (var4 != null) { String var19 = String.valueOf(String.valueOf(String.valueOf("invalid facet ").concat(String.valueOf(((Facet)var4).getName()))).concat(String.valueOf(" = "))).concat(String.valueOf(((Facet)var4).getValue())); return var19; } String var6 = "invalid facet"; return var6; } DataType var18 = LeafValidator.getParentDataType(var1, var2); return var18 != null ? this.applyIntegralFacets(var1, var18, var3) : null; } protected String applyDecimalFacets(SchemaIntf var1, DataType var2, BigDecimal var3) { Object var4 = null; try { Facet var12 = var2.getFacet(Facet.FACET_MINEX_NAME); boolean var5 = var12 != null && ((String)var12.getValue()).equals("true"); var12 = var2.getFacet(Facet.FACET_MIN_NAME); BigDecimal var21 = var12 == null ? null : new BigDecimal((String)var12.getValue()); if (var21 != null && var5) { if (var3.compareTo(var21) <= 0) { String var26 = String.valueOf(String.valueOf("data must be greater than ").concat(String.valueOf(var21))).concat(String.valueOf("")); return var26; } if (var3.compareTo(var21) < 0) { String var25 = String.valueOf(String.valueOf("data must be greater than or equal to ").concat(String.valueOf(var21))).concat(String.valueOf("")); return var25; } } var12 = var2.getFacet(Facet.FACET_MAXEX_NAME); boolean var7 = var12 != null && ((String)var12.getValue()).equals("true"); var12 = var2.getFacet(Facet.FACET_MAX_NAME); var21 = var12 == null ? null : new BigDecimal((String)var12.getValue()); if (var21 != null && var7) { if (var3.compareTo(var21) >= 0) { String var30 = String.valueOf(String.valueOf("data must be less than ").concat(String.valueOf(var21))).concat(String.valueOf("")); return var30; } if (var3.compareTo(var21) > 0) { String var29 = String.valueOf(String.valueOf("data must be less than or equal to ").concat(String.valueOf(var21))).concat(String.valueOf("")); return var29; } } var12 = var2.getFacet(Facet.FACET_DECIMALS_NAME); var21 = var12 == null ? null : new BigDecimal((String)var12.getValue()); if (var21 != null) { int var8 = var3.scale(); if (var8 > var21.intValue()) { String var32 = String.valueOf(String.valueOf("data must have at most ").concat(String.valueOf(var21))).concat(String.valueOf(" decimal digits")); return var32; } } var12 = var2.getFacet(Facet.FACET_DIGITS_NAME); var21 = var12 == null ? null : new BigDecimal((String)var12.getValue()); if (var21 != null) { String var27 = var3.toString(); int var9 = var27.length(); if (var27.startsWith("-")) { --var9; } if (var27.indexOf(".") != -1) { --var9; } if (var9 > var21.intValue()) { String var10 = String.valueOf(String.valueOf("data must have at most ").concat(String.valueOf(var21))).concat(String.valueOf(" total digits")); return var10; } } var12 = var2.getFacet(Facet.FACET_ENUM_NAME); Vector var28 = var12 == null ? null : (Vector)var12.getValue(); if (var28 != null && var28.indexOf(var3.toString()) == -1) { String var31 = "data does not match enumeration facet"; return var31; } } catch (Exception var11) { if (var4 != null) { String var20 = String.valueOf(String.valueOf(String.valueOf("invalid facet ").concat(String.valueOf(((Facet)var4).getName()))).concat(String.valueOf(" = "))).concat(String.valueOf(((Facet)var4).getValue())); return var20; } String var6 = "invalid facet"; return var6; } DataType var19 = LeafValidator.getParentDataType(var1, var2); return var19 != null ? this.applyDecimalFacets(var1, var19, var3) : null; } protected String applyDoubleFacets(SchemaIntf var1, DataType var2, double var3) { Object var5 = null; try { Facet var12 = var2.getFacet(Facet.FACET_MINEX_NAME); boolean var6 = var12 != null && ((String)var12.getValue()).equals("true"); var12 = var2.getFacet(Facet.FACET_MIN_NAME); if (var12 != null) { double var19 = Double.valueOf((String)var12.getValue()); if (var6) { if (var3 <= var19) { String var23 = String.valueOf(String.valueOf("data must be greater than ").concat(String.valueOf(var19))).concat(String.valueOf("")); return var23; } if (var3 < var19) { String var22 = String.valueOf(String.valueOf("data must be greater than or equal to ").concat(String.valueOf(var19))).concat(String.valueOf("")); return var22; } } } var12 = var2.getFacet(Facet.FACET_MAXEX_NAME); boolean var20 = var12 != null && ((String)var12.getValue()).equals("true"); var12 = var2.getFacet(Facet.FACET_MAX_NAME); if (var12 != null) { double var8 = Double.valueOf((String)var12.getValue()); if (var20) { if (var3 >= var8) { String var24 = String.valueOf(String.valueOf("data must be less than ").concat(String.valueOf(var8))).concat(String.valueOf("")); return var24; } if (var3 > var8) { String var10 = String.valueOf(String.valueOf("data must be less than or equal to ").concat(String.valueOf(var8))).concat(String.valueOf("")); return var10; } } } var12 = var2.getFacet(Facet.FACET_ENUM_NAME); Vector var21 = var12 == null ? null : (Vector)var12.getValue(); if (var21 != null && var21.indexOf(String.valueOf(var3)) == -1) { String var9 = "data does not match enumeration facet"; return var9; } } catch (Exception var11) { if (var5 != null) { String var18 = String.valueOf(String.valueOf(String.valueOf("invalid facet ").concat(String.valueOf(((Facet)var5).getName()))).concat(String.valueOf(" = "))).concat(String.valueOf(((Facet)var5).getValue())); return var18; } String var7 = "invalid facet"; return var7; } DataType var17 = LeafValidator.getParentDataType(var1, var2); return var17 != null ? this.applyDoubleFacets(var1, var17, var3) : null; } protected boolean validXMLName(String var1) { if (xmlNamePattern == null) { xmlNamePattern = new Pattern("\\i\\c*"); } return xmlNamePattern.matches(var1); } protected boolean validXMLNcName(String var1) { return this.validXMLName(var1) && var1.indexOf(":") == -1; } protected boolean validXMLNmToken(String var1) { if (xmlNmTokenPattern == null) { xmlNmTokenPattern = new Pattern("\\c+"); } return xmlNmTokenPattern.matches(var1); } abstract String validate(SchemaIntf var1, DataType var2, String var3); }