/** * Create a schema * * @param names the names for the fields * @param types the types for the fields * @return */ protected Schema createSchema(String names[], SimpleField.Type types[]) { Schema s = new Schema(); for (int i = 0; i < names.length; i++) { SimpleField field = new SimpleField(names[i]); field.setType(types[i]); s.put(names[i], field); } return s; }
@Test public void testSimple() throws Exception { Schema s1 = new Schema(); SimpleField field = new SimpleField("category"); field.setDisplayName("Category"); field.setType(SimpleField.Type.STRING); s1.put(field); field = new SimpleField("subcategory"); field.setDisplayName("Sub Category"); field.setType(SimpleField.Type.STRING); s1.put(field); File test = createTemp("testxmlgdb", ".xml"); FileOutputStream fos = new FileOutputStream(test); IGISOutputStream os = GISFactory.getOutputStream(DocumentType.XmlGDB, fos); os.write(s1); String names[] = {"hole", "distance"}; Object values[]; ContainerStart cs = new ContainerStart("Folder"); cs.setName("One"); os.write(cs); for (int i = 0; i < 3; i++) { values = new Object[2]; values[0] = random.nextInt(18) + 1; values[1] = random.nextInt(40) * 10; Feature f = createFeature(Point.class, names, values); os.write(f); } os.write(new ContainerEnd()); Map<String, Object> vmap = new HashMap<String, Object>(); vmap.put("category", "building"); vmap.put("subcategory", "house"); cs = new ContainerStart("Folder"); cs.setName("Two"); os.write(cs); for (int i = 0; i < 10; i++) { Feature f = createFeature(Point.class, s1, vmap); os.write(f); } os.write(new ContainerEnd()); cs = new ContainerStart("Folder"); cs.setName("Three"); os.write(cs); for (int i = 0; i < 10; i++) { Feature f = createFeature(Line.class, s1, vmap); os.write(f); } os.write(new ContainerEnd()); cs = new ContainerStart("Folder"); cs.setName("Four"); os.write(cs); for (int i = 0; i < 10; i++) { Feature f = createFeature(LinearRing.class, s1, vmap); os.write(f); } os.write(new ContainerEnd()); cs = new ContainerStart("Folder"); cs.setName("Five"); os.write(cs); for (int i = 0; i < 10; i++) { Feature f = createFeature(Polygon.class, s1, vmap); os.write(f); } os.write(new ContainerEnd()); os.close(); IOUtils.closeQuietly(fos); }