@Override public boolean isCollection() { return property.isCollection(); }
@Override public boolean isCollection() { return property.isCollection(); }
public static List<PropertyTypeModel> csdlToCommonPropertiesForComplex(ComplexTypeModel complexModel, List<CsdlProperty> csdlProperties, CommonJavaObjectForEdmx comJavaModel, CDXEdmProvider edmxMetadataProvider, Map<String, String> namespaceToServMap) { List<PropertyTypeModel> commonProperties = new ArrayList<>(); if (csdlProperties != null && !csdlProperties.isEmpty() && comJavaModel != null) { for (int j = 0; j < csdlProperties.size(); j++) { CsdlProperty csdlProp = csdlProperties.get(j); PropertyTypeModel property = new PropertyTypeModel(); property.setName(csdlProp.getName()); property.setType(csdlProp.getType()); property.setIsCollection(csdlProp.isCollection()); commonProperties.add(property); property.setIskey(false); // create complex type model if property type is not Edm, so // it'll be complex or enum. currently only considering complex if (!csdlProp.getType().startsWith("Edm")) { buildCommonComplexTypeRecursivelyForCT(complexModel, comJavaModel, edmxMetadataProvider, csdlProp, namespaceToServMap); } } } return commonProperties; }
private Column buildColumn(MetadataFactory mf, Table table, CsdlProperty property) { String columnName = property.getName(); Column c = mf.addColumn(columnName, ODataTypeManager.teiidType(property.getType(), property.isCollection()), table); handleGeometryTypes(property.getSrid(), property.getType(), c); if(property.isCollection()) { c.setSearchType(SearchType.Unsearchable); } c.setUpdatable(true); return c; }
/** * @param bindingParameterTypeName * @param parameter * @param isBindingParameterCollection * @return * @throws ODataException */ private boolean isComplexPreviousTypeCompatibleToBindingParam( final FullQualifiedName bindingParameterTypeName, final CsdlParameter parameter, Boolean isBindingParameterCollection) throws ODataException { CsdlComplexType complexType = provider.getComplexType(bindingParameterTypeName); if(provider.getEntityType(parameter.getTypeFQN()) == null){ return false; } List<CsdlProperty> properties = provider.getEntityType(parameter.getTypeFQN()).getProperties(); for (CsdlProperty property : properties) { String paramPropertyTypeName = property.getTypeAsFQNObject().getFullQualifiedNameAsString(); if ((complexType != null && complexType.getBaseType() != null && complexType.getBaseTypeFQN().getFullQualifiedNameAsString().equals(paramPropertyTypeName)) || paramPropertyTypeName.equals(bindingParameterTypeName.getFullQualifiedNameAsString()) && isBindingParameterCollection.booleanValue() == property.isCollection()) { return true; } } return false; }
/** * @param bindingParameterTypeName * @param parameter * @param isBindingParameterCollection * @return * @throws ODataException */ private boolean isComplexPreviousTypeCompatibleToBindingParam( final FullQualifiedName bindingParameterTypeName, final CsdlParameter parameter, Boolean isBindingParameterCollection) throws ODataException { CsdlComplexType complexType = provider.getComplexType(bindingParameterTypeName); if(provider.getEntityType(parameter.getTypeFQN()) == null){ return false; } List<CsdlProperty> properties = provider.getEntityType(parameter.getTypeFQN()).getProperties(); for (CsdlProperty property : properties) { String paramPropertyTypeName = property.getTypeAsFQNObject().getFullQualifiedNameAsString(); if ((complexType != null && complexType.getBaseType() != null && complexType.getBaseTypeFQN().getFullQualifiedNameAsString().equals(paramPropertyTypeName)) || paramPropertyTypeName.equals(bindingParameterTypeName.getFullQualifiedNameAsString()) && isBindingParameterCollection.booleanValue() == property.isCollection()) { return true; } } return false; }
property.setName(csdlProp.getName()); property.setType(csdlProp.getType()); property.setIsCollection(csdlProp.isCollection()); String propNamespace = EdmxToCommonModelHelper.resolveAliasToNamespace(edmxMetadataProvider, csdlProp.getTypeAsFQNObject().getNamespace());
if (property.isCollection()) { c.setNativeType("Collection("+property.getType()+")"); } else { if (property.getType().equals("Edm.String") && property.isCollection()) { c.setNativeType("Collection("+property.getType()+")");
parentProperty.isCollection() ?
private void addProcedureTableReturn(MetadataFactory mf, XMLMetadata metadata, Procedure procedure, CsdlEntityType 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 = getComplexType(metadata, property.getType()); addProcedureTableReturn(mf, metadata, procedure, childType, property.getName()); } else { throw new TranslatorException(ODataPlugin.Util.gs( ODataPlugin.Event.TEIID17023, procedure.getName())); } } }
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())); } } }