public static RevFeatureType readFeatureType(ObjectId id, DataInput in, FeatureTypeFactory typeFactory) throws IOException { Name name = readName(in); int propertyCount = in.readInt(); List<AttributeDescriptor> attributes = new ArrayList<AttributeDescriptor>(); for (int i = 0; i < propertyCount; i++) { attributes.add(readAttributeDescriptor(in, typeFactory)); } SimpleFeatureType ftype = typeFactory.createSimpleFeatureType(name, attributes, null, false, Collections.<Filter> emptyList(), BasicFeatureTypes.FEATURE, null); return RevFeatureType.builder().id(id).type(ftype).build(); }
public RevFeatureType readFeatureType(@Nullable ObjectId id, DataInput in, FeatureTypeFactory typeFactory) throws IOException { Name name = readName(in); int propertyCount = readUnsignedVarInt(in); List<AttributeDescriptor> attributes = new ArrayList<AttributeDescriptor>(); for (int i = 0; i < propertyCount; i++) { attributes.add(readAttributeDescriptor(in, typeFactory)); } SimpleFeatureType ftype = typeFactory.createSimpleFeatureType(name, attributes, null, false, Collections.<Filter> emptyList(), BasicFeatureTypes.FEATURE, null); return RevFeatureType.builder().id(id).type(ftype).build(); }
@Override protected RevFeatureType read(@Nullable ObjectId id, BufferedReader reader, TYPE type) throws IOException { Preconditions.checkArgument(TYPE.FEATURETYPE.equals(type), "Wrong type: %s", type.name()); builder = new SimpleFeatureTypeBuilder(); typeFactory = builder.getFeatureTypeFactory(); String name = parseLine(requireLine(reader), "name"); SimpleFeatureTypeBuilder builder = new SimpleFeatureTypeBuilder(); if (name.contains(":")) { int idx = name.lastIndexOf(':'); String namespace = name.substring(0, idx); String local = name.substring(idx + 1); builder.setName(new NameImpl(namespace, local)); } else { builder.setName(new NameImpl(name)); } String line; while ((line = reader.readLine()) != null) { builder.add(parseAttributeDescriptor(line)); } SimpleFeatureType sft = builder.buildFeatureType(); return RevFeatureType.builder().id(id).type(sft).build(); }
@Test public void testGet() throws Exception { ObjectId meta1 = getOID(1); ObjectId meta2 = getOID(2); SimpleFeatureType fType1 = DataUtilities.createType("location", "the_geom:Point:srid=4326,name:String,name2:String"); RevFeatureType revft1 = RevFeatureType.builder().id(getOID(1)).type(fType1).build(); SimpleFeatureType fType2 = DataUtilities.createType("location", "the_geom:Point:srid=4326,name3:String,name4:String"); RevFeatureType revft2 = RevFeatureType.builder().id(getOID(1)).type(fType2).build(); ObjectDatabase odb = mock(ObjectDatabase.class); when(odb.getFeatureType(meta1)).thenReturn(revft1); when(odb.getFeatureType(meta2)).thenReturn(revft2); MultiFeatureTypeBuilder builder = new MultiFeatureTypeBuilder(odb); FeatureBuilder fb1 = builder.get(meta1); FeatureBuilder fb2 = builder.get(meta2); Assert.isTrue(fb1 == builder.get(meta1)); // not rebuilt Assert.isTrue(fb2 == builder.get(meta2)); // not rebuilt Assert.isTrue(fb1.getType().equals(revft1)); Assert.isTrue(fb2.getType().equals(revft2)); }
RevFeatureType revft1 = RevFeatureType.builder().id(meta1).type(fType1).build();
@Test public void testBuild() throws Exception { ObjectId meta1 = getOID(1); SimpleFeatureType fType1 = DataUtilities.createType("location", "the_geom:Point:srid=4326,name:String,name2:String"); RevFeatureType revft1 = RevFeatureType.builder().id(getOID(1)).type(fType1).build(); ObjectDatabase odb = mock(ObjectDatabase.class); when(odb.getFeatureType(meta1)).thenReturn(revft1); WKTReader2 wkt = new WKTReader2(); RevFeature feat = RevObjectTestSupport.feature(wkt.read("POINT(0 0)"), "abc", "def"); Node n1 = RevObjectFactory.defaultInstance().createNode("name1", getOID(2), meta1, TYPE.FEATURE, new Envelope(), null); NodeRef nr1 = new NodeRef(n1, "testcase", meta1); ObjectInfo<RevFeature> fi = ObjectInfo.of(nr1, feat); MultiFeatureTypeBuilder builder = new MultiFeatureTypeBuilder(odb); SimpleFeature sf = builder.apply(fi); Assert.isTrue(sf.getAttribute("name").equals("abc")); Assert.isTrue(sf.getAttribute("name2").equals("def")); }
RevFeatureType fakeType = RevFeatureType.builder().id(metadataId).type(pointsType) .build(); if (!db.exists(fakeType.getId())) {