@Test public void testStandardLength() { SimpleFeatureTypeBuilder builder = new SimpleFeatureTypeBuilder(); builder.setName("StdLength"); builder.setCRS(null); builder.length(20); builder.add("name", String.class); builder.add("geom", Point.class); SimpleFeatureType ft = builder.buildFeatureType(); assertEquals(20, FeatureTypes.getFieldLength(ft.getDescriptor("name"))); assertEquals(FeatureTypes.ANY_LENGTH, FeatureTypes.getFieldLength(ft.getDescriptor("geom"))); }
public static int getFieldLength( PropertyDescriptor descriptor ) { PropertyType type = descriptor.getType(); Integer length = null; while( type != null ){ for ( Filter f : type.getRestrictions()) { Integer filterLength = null; try { if(f == null) { continue; } if (f instanceof PropertyIsLessThan) { BinaryComparisonOperator cf = (BinaryComparisonOperator) f; if (cf.getExpression1() instanceof LengthFunction) { filterLength = cf.getExpression2().evaluate(null, Integer.class) - 1; } } else if (f instanceof PropertyIsLessThanOrEqualTo) { BinaryComparisonOperator cf = (BinaryComparisonOperator) f; if (cf.getExpression1() instanceof LengthFunction) { filterLength = cf.getExpression2().evaluate(null, Integer.class); } } else if(f instanceof PropertyIsGreaterThan) { BinaryComparisonOperator cf = (BinaryComparisonOperator) f; if (cf.getExpression2() instanceof LengthFunction) { filterLength = cf.getExpression1().evaluate(null, Integer.class) - 1; } } else if (f instanceof PropertyIsGreaterThanOrEqualTo) { BinaryComparisonOperator cf = (BinaryComparisonOperator) f; if (cf.getExpression2() instanceof LengthFunction) { filterLength = cf.getExpression1().evaluate(null, Integer.class); } } } catch (NullPointerException e) { } if(filterLength != null) { if(length == null || filterLength < length) { length = filterLength; } } } type = type.getSuper(); } return length != null ? length : ANY_LENGTH; }
FeatureTypes { public static int getFieldLength( PropertyDescriptor descriptor ) { PropertyType type = descriptor.getType(); Integer length = null; while( type != null ){ for ( Filter f : type.getRestrictions()) { Integer filterLength = null; try { if(f == null) { continue; } if (f instanceof PropertyIsLessThan) { BinaryComparisonOperator cf = (BinaryComparisonOperator) f; if (cf.getExpression1() instanceof LengthFunction) { filterLength = cf.getExpression2().evaluate(null, Integer.class) - 1; } } else if (f instanceof PropertyIsLessThanOrEqualTo) { BinaryComparisonOperator cf = (BinaryComparisonOperator) f; if (cf.getExpression1() instanceof LengthFunction) { filterLength = cf.getExpression2().evaluate(null, Integer.class); } } else if(f instanceof PropertyIsGreaterThan) { BinaryComparisonOperator cf = (BinaryComparisonOperator) f; if (cf.getExpression2() instanceof LengthFunction) { filterLength = cf.getExpression1().evaluate(null, Integer.class) - 1; } } else if (f instanceof PropertyIsGreaterThanOrEqualTo) { BinaryComparisonOperator cf = (BinaryComparisonOperator) f; if (cf.getExpression2() instanceof LengthFunction) { filterLength = cf.getExpression1().evaluate(null, Integer.class); } } } catch (NullPointerException e) { } if(filterLength != null) { if(length == null || filterLength < length) { length = filterLength; } } } type = type.getSuper(); } return length != null ? length : ANY_LENGTH; } }
FeatureTypes { public static int getFieldLength( PropertyDescriptor descriptor ) { PropertyType type = descriptor.getType(); Integer length = null; while( type != null ){ for ( Filter f : type.getRestrictions()) { Integer filterLength = null; try { if(f == null) { continue; } if (f instanceof PropertyIsLessThan) { BinaryComparisonOperator cf = (BinaryComparisonOperator) f; if (cf.getExpression1() instanceof LengthFunction) { filterLength = cf.getExpression2().evaluate(null, Integer.class) - 1; } } else if (f instanceof PropertyIsLessThanOrEqualTo) { BinaryComparisonOperator cf = (BinaryComparisonOperator) f; if (cf.getExpression1() instanceof LengthFunction) { filterLength = cf.getExpression2().evaluate(null, Integer.class); } } else if(f instanceof PropertyIsGreaterThan) { BinaryComparisonOperator cf = (BinaryComparisonOperator) f; if (cf.getExpression2() instanceof LengthFunction) { filterLength = cf.getExpression1().evaluate(null, Integer.class) - 1; } } else if (f instanceof PropertyIsGreaterThanOrEqualTo) { BinaryComparisonOperator cf = (BinaryComparisonOperator) f; if (cf.getExpression2() instanceof LengthFunction) { filterLength = cf.getExpression1().evaluate(null, Integer.class); } } } catch (NullPointerException e) { } if(filterLength != null) { if(length == null || filterLength < length) { length = filterLength; } } } type = type.getSuper(); } return length != null ? length : ANY_LENGTH; }  }
FeatureTypes { public static int getFieldLength( PropertyDescriptor descriptor ) { PropertyType type = descriptor.getType(); Integer length = null; while( type != null ){ for ( Filter f : type.getRestrictions()) { Integer filterLength = null; try { if(f == null) { continue; } if (f instanceof PropertyIsLessThan) { BinaryComparisonOperator cf = (BinaryComparisonOperator) f; if (cf.getExpression1() instanceof LengthFunction) { filterLength = cf.getExpression2().evaluate(null, Integer.class) - 1; } } else if (f instanceof PropertyIsLessThanOrEqualTo) { BinaryComparisonOperator cf = (BinaryComparisonOperator) f; if (cf.getExpression1() instanceof LengthFunction) { filterLength = cf.getExpression2().evaluate(null, Integer.class); } } else if(f instanceof PropertyIsGreaterThan) { BinaryComparisonOperator cf = (BinaryComparisonOperator) f; if (cf.getExpression2() instanceof LengthFunction) { filterLength = cf.getExpression1().evaluate(null, Integer.class) - 1; } } else if (f instanceof PropertyIsGreaterThanOrEqualTo) { BinaryComparisonOperator cf = (BinaryComparisonOperator) f; if (cf.getExpression2() instanceof LengthFunction) { filterLength = cf.getExpression1().evaluate(null, Integer.class); } } } catch (NullPointerException e) { } if(filterLength != null) { if(length == null || filterLength < length) { length = filterLength; } } } type = type.getSuper(); } return length != null ? length : ANY_LENGTH; }  static int getFieldLength( PropertyDescriptor descriptor ); static SimpleFeatureType transform( SimpleFeatureType schema, CoordinateReferenceSystem crs ); static SimpleFeatureType transform( SimpleFeatureType schema, CoordinateReferenceSystem crs, boolean forceOnlyMissing); static SimpleFeature transform( SimpleFeature feature, SimpleFeatureType schema, MathTransform transform ); static SimpleFeatureType newFeatureType( AttributeDescriptor[] types, String name, URI ns,
            boolean isAbstract, SimpleFeatureType[] superTypes ); static SimpleFeatureType newFeatureType( AttributeDescriptor[] types, String name, URI ns,
            boolean isAbstract, SimpleFeatureType[] superTypes, AttributeDescriptor defaultGeometry ); static SimpleFeatureType newFeatureType( AttributeDescriptor[] types, String name, URI ns,
            boolean isAbstract, SimpleFeatureType[] superTypes, GeometryDescriptor   defaultGeometry ); static SimpleFeatureType newFeatureType( AttributeDescriptor[] types, String name, URI ns,
            boolean isAbstract ); static SimpleFeatureType newFeatureType( AttributeDescriptor[] types, String name, URI ns ); static SimpleFeatureType newFeatureType( AttributeDescriptor[] types, String name ); static List<FeatureType> getAncestors(FeatureType featureType); static boolean isDecendedFrom(FeatureType featureType, URI namespace, String typeName); static boolean isDecendedFrom(FeatureType featureType, FeatureType isParentType); static boolean equals( SimpleFeatureType typeA, SimpleFeatureType typeB ); static boolean equalsExact( SimpleFeatureType typeA, SimpleFeatureType typeB ); static boolean equals( List attributesA, List attributesB); static boolean equalsExact( List attributesA, List attributesB); static boolean equals( AttributeDescriptor attributesA[], AttributeDescriptor attributesB[] ); static boolean equalsExact( AttributeDescriptor attributesA[], AttributeDescriptor attributesB[] ); static boolean equalsAncestors( SimpleFeatureType typeA, SimpleFeatureType typeB ); static Set ancestors( SimpleFeatureType featureType ); static boolean equals( AttributeDescriptor a, AttributeDescriptor b); static boolean equalsExact( AttributeDescriptor a, AttributeDescriptor b); static boolean equalsId( SimpleFeatureType typeA, SimpleFeatureType typeB ); }
FeatureTypes { public static int getFieldLength( PropertyDescriptor descriptor ) { PropertyType type = descriptor.getType(); Integer length = null; while( type != null ){ for ( Filter f : type.getRestrictions()) { Integer filterLength = null; try { if(f == null) { continue; } if (f instanceof PropertyIsLessThan) { BinaryComparisonOperator cf = (BinaryComparisonOperator) f; if (cf.getExpression1() instanceof LengthFunction) { filterLength = cf.getExpression2().evaluate(null, Integer.class) - 1; } } else if (f instanceof PropertyIsLessThanOrEqualTo) { BinaryComparisonOperator cf = (BinaryComparisonOperator) f; if (cf.getExpression1() instanceof LengthFunction) { filterLength = cf.getExpression2().evaluate(null, Integer.class); } } else if(f instanceof PropertyIsGreaterThan) { BinaryComparisonOperator cf = (BinaryComparisonOperator) f; if (cf.getExpression2() instanceof LengthFunction) { filterLength = cf.getExpression1().evaluate(null, Integer.class) - 1; } } else if (f instanceof PropertyIsGreaterThanOrEqualTo) { BinaryComparisonOperator cf = (BinaryComparisonOperator) f; if (cf.getExpression2() instanceof LengthFunction) { filterLength = cf.getExpression1().evaluate(null, Integer.class); } } } catch (NullPointerException e) { } if(filterLength != null) { if(length == null || filterLength < length) { length = filterLength; } } } type = type.getSuper(); } return length != null ? length : ANY_LENGTH; }  static int getFieldLength( PropertyDescriptor descriptor ); static SimpleFeatureType transform( SimpleFeatureType schema, CoordinateReferenceSystem crs ); static SimpleFeatureType transform( SimpleFeatureType schema, CoordinateReferenceSystem crs, boolean forceOnlyMissing); static SimpleFeature transform( SimpleFeature feature, SimpleFeatureType schema, MathTransform transform ); static SimpleFeatureType newFeatureType( AttributeDescriptor[] types, String name, URI ns,
            boolean isAbstract, SimpleFeatureType[] superTypes ); static SimpleFeatureType newFeatureType( AttributeDescriptor[] types, String name, URI ns,
            boolean isAbstract, SimpleFeatureType[] superTypes, AttributeDescriptor defaultGeometry ); static SimpleFeatureType newFeatureType( AttributeDescriptor[] types, String name, URI ns,
            boolean isAbstract, SimpleFeatureType[] superTypes, GeometryDescriptor   defaultGeometry ); static SimpleFeatureType newFeatureType( AttributeDescriptor[] types, String name, URI ns,
            boolean isAbstract ); static SimpleFeatureType newFeatureType( AttributeDescriptor[] types, String name, URI ns ); static SimpleFeatureType newFeatureType( AttributeDescriptor[] types, String name ); static List<FeatureType> getAncestors(FeatureType featureType); static boolean isDecendedFrom(FeatureType featureType, URI namespace, String typeName); static boolean isDecendedFrom(FeatureType featureType, FeatureType isParentType); static boolean equals( SimpleFeatureType typeA, SimpleFeatureType typeB ); static boolean equalsExact( SimpleFeatureType typeA, SimpleFeatureType typeB ); static boolean equals( List attributesA, List attributesB); static boolean equalsExact( List attributesA, List attributesB); static boolean equals( AttributeDescriptor attributesA[], AttributeDescriptor attributesB[] ); static boolean equalsExact( AttributeDescriptor attributesA[], AttributeDescriptor attributesB[] ); static boolean equalsAncestors( SimpleFeatureType typeA, SimpleFeatureType typeB ); static Set ancestors( SimpleFeatureType featureType ); static boolean equals( AttributeDescriptor a, AttributeDescriptor b); static boolean equalsExact( AttributeDescriptor a, AttributeDescriptor b); static boolean equalsId( SimpleFeatureType typeA, SimpleFeatureType typeB ); static final URI DEFAULT_NAMESPACE; final static SimpleFeatureType ABSTRACT_FEATURE_TYPE; final static NameImpl DEFAULT_TYPENAME; final static int ANY_LENGTH; static final SimpleFeatureType EMPTY; }