package com.revolsys.gis.esri.gdb.file;
import java.io.File;
import javax.xml.namespace.QName;
import junit.framework.Assert;
import org.junit.Test;
import com.revolsys.jts.geom.GeometryFactory;
import com.revolsys.gis.data.io.RecordStoreSchema;
import com.revolsys.gis.data.model.Record;
import com.revolsys.gis.data.model.RecordMetaData;
import com.revolsys.gis.data.model.RecordMetaDataImpl;
import com.revolsys.gis.data.model.types.DataTypes;
public class FeatureDatasetTest {
@Test
public void testCreateGeodatabase() throws Exception {
final String path = new QName("test", "Point");
RecordMetaDataImpl newMetaData = new RecordMetaDataImpl(typePath);
newMetaData.addAttribute("id", DataTypes.INT, false);
newMetaData.addAttribute("name", DataTypes.STRING, 255, false);
newMetaData.addAttribute("geometry", DataTypes.POINT, true);
newMetaData.setIdAttributeName("id");
final GeometryFactory geometryFactory = GeometryFactory.getFactory(4326);
newMetaData.setGeometryFactory(geometryFactory);
final String datasetName = "target/Create.gdb";
FileGdbRecordStore recordStore = FileGdbRecordStoreFactory.create(new File(
datasetName));
try {
recordStore.setCreateMissingTables(true);
recordStore.setCreateMissingRecordStore(true);
recordStore.initialize();
recordStore.setDefaultSchema("test");
Assert.assertEquals("Initial Schema Size", 1, recordStore.getSchemas()
.size());
final RecordMetaData recordDefinition = recordStore.getRecordDefinition(newMetaData);
Assert.assertNotNull("Created Metadata", recordDefinition);
final Record object = recordStore.create(newMetaData);
object.setIdValue(1);
object.setValue("name", "Paul Austin");
object.setGeometryValue(geometryFactory.createPoint(-122, 150));
recordStore.insert(object);
for (Record object2 : recordStore.query(typePath)) {
System.out.println(object2);
}
recordStore.close();
recordStore = FileGdbRecordStoreFactory.create(new File(datasetName));
recordStore.initialize();
recordStore.setDefaultSchema("test");
RecordStoreSchema schema = recordStore.getSchema("test");
for (RecordMetaData recordDefinition2 : schema.getTypes()) {
System.out.println(recordDefinition2);
}
} finally {
recordStore.deleteGeodatabase();
}
}
}