@Override void build(XMLEventReader reader, StartElement element, CsdlComplexType complexType, String name) throws XMLStreamException { if ("Property".equals(name)) { complexType.getProperties().add(readProperty(reader, element)); } else if ("NavigationProperty".equals(name)) { complexType.getNavigationProperties().add(readNavigationProperty(reader, element)); } else if ("Annotation".equals(name)) { readAnnotations(reader, element, complexType); } } }.read(reader, null, complexType, "Property", "NavigationProperty", "Annotation");
@Override void build(XMLEventReader reader, StartElement element, CsdlComplexType complexType, String name) throws XMLStreamException { if ("Property".equals(name)) { complexType.getProperties().add(readProperty(reader, element)); } else if ("NavigationProperty".equals(name)) { complexType.getNavigationProperties().add(readNavigationProperty(reader, element)); } else if ("Annotation".equals(name)) { readAnnotations(reader, element, complexType); } } }.read(reader, null, complexType, "Property", "NavigationProperty", "Annotation");
private List<CsdlProperty> resolveEmbeddedId(final IntermediateEmbeddedIdProperty embeddedId) throws ODataJPAModelException { return ((IntermediateComplexType) embeddedId.getStructuredType()).getEdmItem().getProperties(); } }
public static CsdlComplexType getComplexTypeFromPath(String name, CsdlComplexType csdlobj, CDXEdmProvider edmxMetadataProvider) { FullQualifiedName complxFQN = null; CsdlComplexType cmplxType = null; if (csdlobj != null) { List<CsdlProperty> props = csdlobj.getProperties(); if (props != null) { for (int i = 0; i < props.size(); i++) { if (name.equals(props.get(i).getName())) { complxFQN = props.get(i).getTypeAsFQNObject(); try { cmplxType = edmxMetadataProvider.getComplexType(complxFQN); } catch (ODataException e) { PojoGenUtil.logDebug(log, "Could not fetch Complex Type from EdmxProvider called by getComplexTypeFromPath"); } break; } } } } return cmplxType; }
public static ComplexTypeModel convertCsdlComplexToCommonModel(CsdlComplexType csdlComplexType, CommonJavaObjectForEdmx comModel, CDXEdmProvider edmxProvider, Map<String, String> namespaceToServMap) { ComplexTypeModel commonComplex = new ComplexTypeModel(); if (csdlComplexType != null) { commonComplex.setName(csdlComplexType.getName()); // resolve base type of complex type String baseType = CsdlBaseTypeResolver.resolveBaseTypesForComplex(csdlComplexType, comModel, edmxProvider, namespaceToServMap); commonComplex.setBaseTypeName(baseType); commonComplex.setHasBaseType(baseType.equals("") ? false : true); List<PropertyTypeModel> comxProps = csdlToCommonPropertiesForComplex(commonComplex, csdlComplexType.getProperties(), comModel, edmxProvider, namespaceToServMap); commonComplex.setProperties(comxProps); List<NavigationTypeModel> comxNavs = csdlToCommonNavigationsForComplex( csdlComplexType.getNavigationProperties(), edmxProvider, comModel, commonComplex, namespaceToServMap); commonComplex.setNavigations(comxNavs); } return commonComplex; }
CsdlProperty propertyName, boolean isComplexPropAnnotationsCleared, boolean isComplexNavPropAnnotationsCleared, CsdlComplexType complexType) { for (CsdlProperty complexPropertyName : complexType.getProperties()) { if (!isComplexPropAnnotationsCleared) { complexType.getProperty(complexPropertyName.getName()).getAnnotations().clear();
for (CsdlProperty property : complexType.getProperties()) { if (!addProperty(mf, metadata, childTable, property)) { complexTypes.add(property); while(baseType != null) { CsdlComplexType baseComplexType = getComplexType(metadata, baseType); for (CsdlProperty property:baseComplexType.getProperties()) { if (!addProperty(mf, metadata, childTable, property)) { complexTypes.add(property);
private void addProcedureTableReturn(MetadataFactory mf, XMLMetadata metadata, Procedure procedure, CsdlComplexType type, String namePrefix) throws TranslatorException { for (CsdlProperty property:type.getProperties()) { if (isSimple(property.getType()) || isEnum(metadata, property.getType())) { mf.addProcedureResultSetColumn( namePrefix == null? property.getName():namePrefix+"_"+property.getName(), ODataTypeManager.teiidType(property.getType(), property.isCollection()), procedure); } else if (isComplexType(metadata, property.getType())) { CsdlComplexType childType = (CsdlComplexType)getComplexType(metadata, property.getType()); addProcedureTableReturn(mf, metadata, procedure, childType, property.getName()); } else { throw new TranslatorException(ODataPlugin.Util.gs( ODataPlugin.Event.TEIID17023, procedure.getName())); } } }