use of org.teiid.metadata.MetadataFactory in project teiid by teiid.
the class TestODataMetadataProcessor method multipleNavigationProperties.
static MetadataFactory multipleNavigationProperties() throws TranslatorException {
ODataMetadataProcessor processor = new ODataMetadataProcessor();
MetadataFactory mf = new MetadataFactory("vdb", 1, "northwind", SystemMetadata.getInstance().getRuntimeTypeMap(), new Properties(), null);
CsdlEntityType g1Entity = entityType("g1");
CsdlEntityType g2Entity = entityType("g2");
CsdlEntityType g3Entity = entityType("g3");
CsdlNavigationProperty navProperty = new CsdlNavigationProperty();
navProperty.setName("one_2_many");
navProperty.setType("Collection(namespace.g2)");
navProperty.setNullable(false);
navProperty.setPartner("PartnerPath");
navProperty.setCollection(true);
CsdlNavigationProperty navProperty2 = new CsdlNavigationProperty();
navProperty2.setName("one_2_g3");
navProperty2.setType("namespace.g3");
navProperty2.setNullable(true);
g1Entity.setNavigationProperties(Arrays.asList(navProperty, navProperty2));
CsdlEntitySet g1Set = createES("G1", "namespace.g1");
CsdlEntitySet g2Set = createES("G2", "namespace.g2");
CsdlEntitySet g3Set = createES("G3", "namespace.g3");
CsdlNavigationPropertyBinding navBinding = new CsdlNavigationPropertyBinding();
navBinding.setPath("one_2_many");
navBinding.setTarget("G2");
CsdlNavigationPropertyBinding navBinding2 = new CsdlNavigationPropertyBinding();
navBinding2.setPath("one_2_g3");
navBinding2.setTarget("G3");
g1Set.setNavigationPropertyBindings(Arrays.asList(navBinding, navBinding2));
XMLMetadata metadata = buildXmlMetadata(g1Entity, g1Set, g2Entity, g2Set, g3Entity, g3Set);
processor.getMetadata(mf, metadata);
return mf;
}
use of org.teiid.metadata.MetadataFactory in project teiid by teiid.
the class TestODataMetadataProcessor method testSchema.
@Test
public void testSchema() throws Exception {
translator = new ODataExecutionFactory();
translator.start();
MetadataFactory mf = tripPinMetadata();
TransformationMetadata metadata = getTransformationMetadata(mf, this.translator);
String ddl = DDLStringVisitor.getDDLString(mf.getSchema(), null, null);
// System.out.println(ddl);
MetadataFactory mf2 = new MetadataFactory("vdb", 1, "northwind", SystemMetadata.getInstance().getRuntimeTypeMap(), new Properties(), null);
QueryParser.getQueryParser().parseDDL(mf2, ddl);
Procedure p = mf.getSchema().getProcedure("ResetDataSource");
assertNotNull(p);
assertEquals(0, p.getParameters().size());
}
use of org.teiid.metadata.MetadataFactory in project teiid by teiid.
the class TestODataMetadataProcessor method testEnititySetWithComplexType.
@Test
public void testEnititySetWithComplexType() throws Exception {
MetadataFactory mf = getEntityWithComplexProperty();
assertEquals(3, mf.getSchema().getTables().size());
assertNotNull(mf.getSchema().getTable("Persons"));
assertNotNull(mf.getSchema().getTable("Persons_address"));
assertNotNull(mf.getSchema().getTable("Persons_secondaddress"));
Table personTable = mf.getSchema().getTable("Persons");
assertEquals(2, personTable.getColumns().size());
assertNotNull(personTable.getPrimaryKey());
Table addressTable = mf.getSchema().getTable("Persons_address");
assertEquals(4, addressTable.getColumns().size());
assertNotNull(addressTable.getColumnByName("Persons_ssn"));
assertTrue(ODataMetadataProcessor.isPseudo(addressTable.getColumnByName("Persons_ssn")));
assertTrue(addressTable.getColumnByName("Persons_ssn").isSelectable());
assertEquals(1, addressTable.getForeignKeys().size());
assertEquals("northwind.Persons", addressTable.getForeignKeys().get(0).getReferenceTableName());
}
use of org.teiid.metadata.MetadataFactory in project teiid by teiid.
the class TestODataMetadataProcessor method createMetadata.
private static MetadataFactory createMetadata(final String file, final String schema, final String schemaNamespace) throws TranslatorException {
ODataMetadataProcessor processor = new ODataMetadataProcessor() {
protected XMLMetadata getSchema(WSConnection conn) throws TranslatorException {
try {
ClientODataDeserializerImpl deserializer = new ClientODataDeserializerImpl(false, ContentType.APPLICATION_XML);
XMLMetadata metadata = deserializer.toMetadata(new FileInputStream(UnitTestUtil.getTestDataFile(file)));
return metadata;
} catch (FileNotFoundException e) {
throw new RuntimeException(e);
}
}
};
Properties props = new Properties();
props.setProperty("schemaNamespace", schemaNamespace);
processor.setSchemaNamespace(schemaNamespace);
MetadataFactory mf = new MetadataFactory("vdb", 1, schema, SystemMetadata.getInstance().getRuntimeTypeMap(), props, null);
processor.process(mf, null);
return mf;
}
use of org.teiid.metadata.MetadataFactory in project teiid by teiid.
the class TestODataMetadataProcessor method testSelfJoin.
@Test
public void testSelfJoin() throws Exception {
ODataMetadataProcessor processor = new ODataMetadataProcessor();
MetadataFactory mf = new MetadataFactory("vdb", 1, "northwind", SystemMetadata.getInstance().getRuntimeTypeMap(), new Properties(), null);
CsdlEntityType g1Entity = entityType("g1");
CsdlNavigationProperty navProperty = new CsdlNavigationProperty();
navProperty.setName("self");
navProperty.setType("Collection(namespace.g1)");
navProperty.setNullable(false);
navProperty.setPartner("PartnerPath");
navProperty.setCollection(true);
g1Entity.setNavigationProperties(Arrays.asList(navProperty));
CsdlEntitySet g1Set = createES("G1", "namespace.g1");
CsdlNavigationPropertyBinding navBinding = new CsdlNavigationPropertyBinding();
navBinding.setPath("self");
navBinding.setTarget("G1");
g1Set.setNavigationPropertyBindings(Arrays.asList(navBinding));
XMLMetadata metadata = buildXmlMetadata(g1Entity, g1Set);
processor.getMetadata(mf, metadata);
Table g1 = mf.getSchema().getTable("G1_self");
assertNotNull(g1);
assertEquals("FK0", g1.getForeignKeys().get(0).getName());
assertNotNull(g1.getForeignKeys().get(0).getColumnByName("G1_e1"));
assertEquals("self", g1.getNameInSource());
}
Aggregations