.setName(entityTypeName) .setNamespace(modelNamespace); entityTypes.add(entityType); entityType.addKeys(propertyName); .setType(propertyType) .setNullable(jdbcColumn.isNullable); entityType.addProperties(property); propertyMapping.put(property, jdbcColumn);
.setNamespace(schemaNamespace) .setAlias(schemaAlias) .setName(name) .setHasStream(hasStream) .setOpenType(openType) .addKeys(keys) .addProperties(edmProperties) .addNavigationProperties(edmNavigationProperties) .setBaseType(baseType) .setIsAbstract(isAbstractS == null ? null : "true".equals(isAbstractS)) .setAnnotations(getAnnotations(entityTypeElement)) .setAnnotationElements(annotElements);
public EdmEntityType.Builder findEdmEntityType(String fqName) { // TODO share or remove if (fqName == null) return null; for (EdmSchema.Builder schema : this.schemas) { for (EdmEntityType.Builder et : schema.getEntityTypes()) { if (fqName.equals(et.getFQAliasName()) || et.getFullyQualifiedTypeName().equals(fqName)) { return et; } } } return null; }
keys.add(Edm.Schema.Namespace); EdmEntityType.Builder schemaType = EdmEntityType.newBuilder() .setNamespace(Edm.namespace) .setName(Edm.Schema.name()) .addKeys(keys) .addProperties(props) .addNavigationProperties(navprops); if (decorator != null) { schemaType.setDocumentation(decorator.getDocumentationForEntityType(Edm.namespace, Edm.Schema.name())); schemaType.setAnnotations(decorator.getAnnotationsForEntityType(Edm.namespace, Edm.Schema.name())); keys.add(Edm.StructuralType.Name); EdmEntityType.Builder structuralType = EdmEntityType.newBuilder() .setNamespace(Edm.namespace) .setName(Edm.StructuralType.name()) .addKeys(keys) .addProperties(props) .addNavigationProperties(navprops); if (decorator != null) { schemaType.setDocumentation(decorator.getDocumentationForEntityType(Edm.namespace, Edm.StructuralType.name())); schemaType.setAnnotations(decorator.getAnnotationsForEntityType(Edm.namespace, Edm.StructuralType.name())); .setNamespace(Edm.namespace) .setName(Edm.ComplexType.name()) .setBaseType(structuralType) .addProperties(props) .addNavigationProperties(navprops); if (decorator != null) { schemaType.setDocumentation(decorator.getDocumentationForEntityType(Edm.namespace, Edm.ComplexType.name()));
keys.add(Edm.Schema.Namespace); EdmEntityType.Builder schemaType = EdmEntityType.newBuilder() .setNamespace(Edm.namespace) .setName(Edm.Schema.name()) .addKeys(keys) .addProperties(props) .addNavigationProperties(navprops); if (decorator != null) { schemaType.setDocumentation(decorator.getDocumentationForEntityType(Edm.namespace, Edm.Schema.name())); schemaType.setAnnotations(decorator.getAnnotationsForEntityType(Edm.namespace, Edm.Schema.name())); keys.add(Edm.StructuralType.Name); EdmEntityType.Builder structuralType = EdmEntityType.newBuilder() .setNamespace(Edm.namespace) .setName(Edm.StructuralType.name()) .addKeys(keys) .addProperties(props) .addNavigationProperties(navprops); if (decorator != null) { schemaType.setDocumentation(decorator.getDocumentationForEntityType(Edm.namespace, Edm.StructuralType.name())); schemaType.setAnnotations(decorator.getAnnotationsForEntityType(Edm.namespace, Edm.StructuralType.name())); .setNamespace(Edm.namespace) .setName(Edm.ComplexType.name()) .setBaseType(structuralType) .addProperties(props) .addNavigationProperties(navprops); if (decorator != null) { schemaType.setDocumentation(decorator.getDocumentationForEntityType(Edm.namespace, Edm.ComplexType.name()));
List<EdmNavigationProperty.Builder> navigationProperties = new ArrayList<EdmNavigationProperty.Builder>(); EdmEntityType.Builder eet = EdmEntityType.newBuilder().setNamespace(modelNamespace).setName(name).addKeys(keys).addProperties(properties).addNavigationProperties(navigationProperties); edmEntityTypes.add(eet); .setFromTo(association.getEnd1(), association.getEnd2()); fromEntityType.addNavigationProperties(navigationProperty); .setFromTo(fromRole, toRole); fromEntityType.addNavigationProperties(navigationProperty);
.newBuilder().setName(entityTypeName) .setNamespace(schema.getName()); entityType.addKeys(c.getName()); entityType.addKeys(c.getName()); entityType.addProperties(property); continue; .setUnicode(true); entityType.addProperties(property); .setEntityType(entityType); entityType.setNamespace(schema.getName()); entitySets.add(entitySet);
String assocName = String.format("FK_%s_%s", eet1.getName(), eet2.getName()); EdmAssociationEnd.Builder assocEnd1 = EdmAssociationEnd.newBuilder().setRole(eet1.getName()).setType(eet1).setMultiplicity(m1); String assocEnd2Name = eet2.getName(); if (assocEnd2Name.equals(eet1.getName())) assocEnd2Name = assocEnd2Name + "1"; EdmAssociationEnd.Builder assocEnd2 = EdmAssociationEnd.newBuilder().setRole(assocEnd2Name).setType(eet2).setMultiplicity(m2); EdmEntitySet.Builder ees1 = entitySetByName.get(eet1.getName()); EdmEntitySet.Builder ees2 = entitySetByName.get(eet2.getName()); if (ees1 == null) { ees1 = getEntitySetForEntityTypeName(eet1.getName()); ees2 = getEntitySetForEntityTypeName(eet2.getName()); eet1.addNavigationProperties(np); } catch (Exception e) {
association.setName(table.getName()+"_"+fk.getName()); //$NON-NLS-1$ association.setEnds(endSelf, endRef); association.setNamespace(refEntityType.getFullyQualifiedTypeName().substring(0, refEntityType.getFullyQualifiedTypeName().indexOf('.'))); assosiations.add(association); nav.setRelationship(association); nav.setFromTo(endSelf, endRef); entityType.addNavigationProperties(nav); refNav.setRelationship(association); refNav.setFromTo(endRef, endSelf); refEntityType.addNavigationProperties(refNav); .setEntitySet(entitySet) .setRoleName(table.getName()) .setRole(EdmAssociationEnd.newBuilder().setType(entityType).setRole(entityType.getName())); .setRole(EdmAssociationEnd.newBuilder().setType(refEntityType).setRole(refEntityType.getName())); assosiationSet.setEnds(endOne, endTwo);
if (eet1.findProperty(assocProp) != null || ei2 == null) continue; EdmMultiplicity m2 = EdmMultiplicity.ONE; String assocName = String.format("FK_%s_%s", eet1.getName(), eet2.getName()); EdmAssociationEnd.Builder assocEnd1 = EdmAssociationEnd.newBuilder().setRole(eet1.getName()) .setType(eet1).setMultiplicity(m1); String assocEnd2Name = eet2.getName(); if (assocEnd2Name.equals(eet1.getName())) assocEnd2Name = assocEnd2Name + "1"; EdmEntitySet.Builder ees1 = entitySetByName.get(eet1.getName()); EdmEntitySet.Builder ees2 = entitySetByName.get(eet2.getName()); if (ees1 == null) { ees1 = getEntitySetForEntityTypeName(eet1.getName()); ees2 = getEntitySetForEntityTypeName(eet2.getName()); .setRelationship(assoc).setFromTo(assoc.getEnd1(), assoc.getEnd2()); eet1.addNavigationProperties(np);
.setNamespace(schemaNamespace) .setAlias(schemaAlias) .setName(name) .setHasStream(hasStream) .setOpenType(openType) .addKeys(keys) .addProperties(edmProperties) .addNavigationProperties(edmNavigationProperties) .setBaseType(baseType) .setIsAbstract(isAbstractS == null ? null : "true".equals(isAbstractS)) .setAnnotations(getAnnotations(entityTypeElement)) .setAnnotationElements(annotElements);
.setNamespace(namespace) .setName(entityInfo.entityTypeName) .setHasStream(entityInfo.hasStream) .addProperties(properties); eet.addKeys(entityInfo.keys); eet.setDocumentation(decorator.getDocumentationForEntityType(namespace, entityInfo.entityTypeName)); eet.setAnnotations(decorator.getAnnotationsForEntityType(namespace, entityInfo.entityTypeName)); entityTypesByName.put(eet.getName(), eet); eet.setBaseType(superType); return eet;
private EdmAssociation.Builder defineAssociation( String assocName, EdmMultiplicity fromMult, EdmMultiplicity toMult, EdmEntityType.Builder fromEntityType, EdmEntitySet.Builder fromEntitySet, EdmEntityType.Builder toEntityType, EdmEntitySet.Builder toEntitySet) { // add EdmAssociation EdmAssociationEnd.Builder fromAssociationEnd = EdmAssociationEnd.newBuilder().setRole(fromEntityType.getName()).setType(fromEntityType).setMultiplicity(fromMult); String toAssociationRole = toEntityType.getName(); if (toAssociationRole.equals(fromEntityType.getName())) { toAssociationRole = toAssociationRole + "1"; } EdmAssociationEnd.Builder toAssociationEnd = EdmAssociationEnd.newBuilder().setRole(toAssociationRole).setType(toEntityType).setMultiplicity(toMult); EdmAssociation.Builder association = EdmAssociation.newBuilder().setNamespace(Edm.namespace).setName(assocName).setEnds(fromAssociationEnd, toAssociationEnd); // add EdmAssociationSet EdmAssociationSet.Builder associationSet = EdmAssociationSet.newBuilder() .setName(assocName) .setAssociation(association).setEnds( EdmAssociationSetEnd.newBuilder().setRole(fromAssociationEnd).setEntitySet(fromEntitySet), EdmAssociationSetEnd.newBuilder().setRole(toAssociationEnd).setEntitySet(toEntitySet)); asets.add(associationSet); assocs.add(association); return association; }
private static EdmAssociation.Builder defineManyTo(EdmMultiplicity toMult, List<EdmAssociation.Builder> associations, EdmEntityType.Builder fromEntityType, EdmEntityType.Builder toEntityType, String modelNamespace, Map<String, EdmEntitySet.Builder> eesByName, List<EdmAssociationSet.Builder> associationSets) { EdmMultiplicity fromMult = EdmMultiplicity.MANY; String assocName = getAssociationName(associations, fromEntityType, toEntityType); // add EdmAssociation EdmAssociationEnd.Builder fromAssociationEnd = EdmAssociationEnd.newBuilder().setRole(fromEntityType.getName()).setType(fromEntityType).setMultiplicity(fromMult); String toAssociationEndName = toEntityType.getName(); if (toAssociationEndName.equals(fromEntityType.getName())) { toAssociationEndName = toAssociationEndName + "1"; } EdmAssociationEnd.Builder toAssociationEnd = EdmAssociationEnd.newBuilder().setRole(toAssociationEndName).setType(toEntityType).setMultiplicity(toMult); EdmAssociation.Builder association = EdmAssociation.newBuilder().setNamespace(modelNamespace).setName(assocName).setEnds(fromAssociationEnd, toAssociationEnd); associations.add(association); // add EdmAssociationSet EdmEntitySet.Builder fromEntitySet = eesByName.get(fromEntityType.getName()); EdmEntitySet.Builder toEntitySet = eesByName.get(toEntityType.getName()); EdmAssociationSet.Builder associationSet = EdmAssociationSet.newBuilder() .setName(assocName) .setAssociation(association).setEnds( EdmAssociationSetEnd.newBuilder().setRole(fromAssociationEnd).setEntitySet(fromEntitySet), EdmAssociationSetEnd.newBuilder().setRole(toAssociationEnd).setEntitySet(toEntitySet)); associationSets.add(associationSet); return association; }
private EdmAssociation.Builder defineAssociation( String assocName, EdmMultiplicity fromMult, EdmMultiplicity toMult, EdmEntityType.Builder fromEntityType, EdmEntitySet.Builder fromEntitySet, EdmEntityType.Builder toEntityType, EdmEntitySet.Builder toEntitySet) { // add EdmAssociation EdmAssociationEnd.Builder fromAssociationEnd = EdmAssociationEnd.newBuilder().setRole(fromEntityType.getName()).setType(fromEntityType).setMultiplicity(fromMult); String toAssociationRole = toEntityType.getName(); if (toAssociationRole.equals(fromEntityType.getName())) { toAssociationRole = toAssociationRole + "1"; } EdmAssociationEnd.Builder toAssociationEnd = EdmAssociationEnd.newBuilder().setRole(toAssociationRole).setType(toEntityType).setMultiplicity(toMult); EdmAssociation.Builder association = EdmAssociation.newBuilder().setNamespace(Edm.namespace).setName(assocName).setEnds(fromAssociationEnd, toAssociationEnd); // add EdmAssociationSet EdmAssociationSet.Builder associationSet = EdmAssociationSet.newBuilder() .setName(assocName) .setAssociation(association).setEnds( EdmAssociationSetEnd.newBuilder().setRole(fromAssociationEnd).setEntitySet(fromEntitySet), EdmAssociationSetEnd.newBuilder().setRole(toAssociationEnd).setEntitySet(toEntitySet)); asets.add(associationSet); assocs.add(association); return association; }
public XmlDataProducer() { // build the metadata here hardcoded as example // one would probably generate it from xsd schema or something else String namespace = "XmlExample"; List<EdmProperty.Builder> properties = new ArrayList<EdmProperty.Builder>(); properties.add(EdmProperty.newBuilder("address").setType(EdmSimpleType.STRING)); properties.add(EdmProperty.newBuilder("city").setType(EdmSimpleType.STRING)); properties.add(EdmProperty.newBuilder("companyName").setType(EdmSimpleType.STRING)); properties.add(EdmProperty.newBuilder("contactName").setType(EdmSimpleType.STRING)); properties.add(EdmProperty.newBuilder("contactTitle").setType(EdmSimpleType.STRING)); properties.add(EdmProperty.newBuilder("country").setType(EdmSimpleType.STRING)); properties.add(EdmProperty.newBuilder("customerID").setType(EdmSimpleType.STRING)); properties.add(EdmProperty.newBuilder("fax").setType(EdmSimpleType.STRING)); properties.add(EdmProperty.newBuilder("phone").setType(EdmSimpleType.STRING)); properties.add(EdmProperty.newBuilder("postalCode").setType(EdmSimpleType.STRING)); List<EdmEntityType.Builder> entityTypes = new ArrayList<EdmEntityType.Builder>(); EdmEntityType.Builder type = EdmEntityType.newBuilder().setNamespace(namespace).setName("Customers").addKeys("customerID").addProperties(properties); entityTypes.add(type); List<EdmEntitySet.Builder> entitySets = new ArrayList<EdmEntitySet.Builder>(); entitySets.add(EdmEntitySet.newBuilder().setName("Customers").setEntityType(type)); EdmEntityContainer.Builder container = EdmEntityContainer.newBuilder().setName(namespace + "Entities").setIsDefault(true).addEntitySets(entitySets); EdmSchema.Builder modelSchema = EdmSchema.newBuilder().setNamespace(namespace + "Model").addEntityTypes(entityTypes); EdmSchema.Builder containerSchema = EdmSchema.newBuilder().setNamespace(namespace + "Container").addEntityContainers(container); metadata = EdmDataServices.newBuilder().addSchemas(containerSchema, modelSchema).build(); xmlInputFactory = XMLInputFactory.newInstance(); }
static EdmEntitySet removeModelName(EdmEntitySet src) { EdmEntityType srcType = src.getType(); String schemaName = srcType.getName().substring(0, srcType.getName().indexOf('.')); String name = srcType.getName().substring(srcType.getName().indexOf('.')+1); EdmEntityType.Builder targetType = EdmEntityType .newBuilder().setName(name) .setNamespace(schemaName); targetType.addKeys(srcType.getKeys()); Enumerable<EdmProperty> properties = srcType.getProperties(); for (EdmProperty srcProperty:properties.toList()) { EdmProperty.Builder tgtProperty = EdmProperty.newBuilder(srcProperty.getName()) .setType(srcProperty.getType()) .setNullable(srcProperty.isNullable()) .setFixedLength(srcProperty.getFixedLength()) .setMaxLength(srcProperty.getMaxLength()) .setUnicode(true); targetType.addProperties(tgtProperty); } EdmEntitySet.Builder target = EdmEntitySet.newBuilder() .setName(src.getName()) .setEntityType(targetType); return target.build(); } }
public EdmSchema build() { List<EdmEntityContainer> entityContainers = new ArrayList<EdmEntityContainer>(this.entityContainers.size()); for (EdmEntityContainer.Builder entityContainer : this.entityContainers) entityContainers.add(entityContainer.build()); List<EdmComplexType> complexTypes = new ArrayList<EdmComplexType>(this.complexTypes.size()); for (EdmComplexType.Builder complexType : this.complexTypes) complexTypes.add(complexType.build()); List<EdmEntityType> entityTypes = new ArrayList<EdmEntityType>(this.entityTypes.size()); for (EdmEntityType.Builder entityType : this.entityTypes) entityTypes.add(entityType.build()); List<EdmAssociation> associations = new ArrayList<EdmAssociation>(this.associations.size()); for (EdmAssociation.Builder association : this.associations) associations.add(association.build()); return new EdmSchema(namespace, alias, ImmutableList.copyOf(entityTypes), ImmutableList.copyOf(complexTypes), ImmutableList.copyOf(associations), ImmutableList.copyOf(entityContainers), getDocumentation(), ImmutableList.copyOf(getAnnotations()), ImmutableList.copyOf(getAnnotationElements())); }
public EdmSchema build() { List<EdmEntityContainer> entityContainers = new ArrayList<EdmEntityContainer>(this.entityContainers.size()); for (EdmEntityContainer.Builder entityContainer : this.entityContainers) entityContainers.add(entityContainer.build()); List<EdmComplexType> complexTypes = new ArrayList<EdmComplexType>(this.complexTypes.size()); for (EdmComplexType.Builder complexType : this.complexTypes) complexTypes.add(complexType.build()); List<EdmEntityType> entityTypes = new ArrayList<EdmEntityType>(this.entityTypes.size()); for (EdmEntityType.Builder entityType : this.entityTypes) entityTypes.add(entityType.build()); List<EdmAssociation> associations = new ArrayList<EdmAssociation>(this.associations.size()); for (EdmAssociation.Builder association : this.associations) associations.add(association.build()); return new EdmSchema(namespace, alias, ImmutableList.copyOf(entityTypes), ImmutableList.copyOf(complexTypes), ImmutableList.copyOf(associations), ImmutableList.copyOf(entityContainers), getDocumentation(), ImmutableList.copyOf(getAnnotations()), ImmutableList.copyOf(getAnnotationElements())); }
public EdmSchema build() { List<EdmEntityContainer> entityContainers = new ArrayList<EdmEntityContainer>(this.entityContainers.size()); for (EdmEntityContainer.Builder entityContainer : this.entityContainers) entityContainers.add(entityContainer.build()); List<EdmComplexType> complexTypes = new ArrayList<EdmComplexType>(this.complexTypes.size()); for (EdmComplexType.Builder complexType : this.complexTypes) complexTypes.add(complexType.build()); List<EdmEntityType> entityTypes = new ArrayList<EdmEntityType>(this.entityTypes.size()); for (EdmEntityType.Builder entityType : this.entityTypes) entityTypes.add(entityType.build()); List<EdmAssociation> associations = new ArrayList<EdmAssociation>(this.associations.size()); for (EdmAssociation.Builder association : this.associations) associations.add(association.build()); return new EdmSchema(namespace, alias, ImmutableList.copyOf(entityTypes), ImmutableList.copyOf(complexTypes), ImmutableList.copyOf(associations), ImmutableList.copyOf(entityContainers), getDocumentation(), ImmutableList.copyOf(getAnnotations()), ImmutableList.copyOf(getAnnotationElements())); }