@Override public Integer getMaxLength() { return typeDefinition.getMaxLength(); }
@Override public Integer getPrecision() { return typeDefinition.getPrecision(); }
@Override public Integer getScale() { return typeDefinition.getScale(); }
private CsdlTypeDefinition readTypeDefinition(XMLEventReader reader, StartElement element) throws XMLStreamException { CsdlTypeDefinition td = new CsdlTypeDefinition(); td.setName(attr(element, "Name")); td.setUnderlyingType(new FullQualifiedName(attr(element, "UnderlyingType"))); if (attr(element, "Unicode") != null) { td.setUnicode(Boolean.parseBoolean(attr(element, "Unicode"))); } String maxLength = attr(element, "MaxLength"); if (maxLength != null) { td.setMaxLength(Integer.parseInt(maxLength)); } String precision = attr(element, "Precision"); if (precision != null) { td.setPrecision(Integer.parseInt(precision)); } String scale = attr(element, "Scale"); if (scale != null) { td.setScale(Integer.parseInt(scale)); } String srid = attr(element, "SRID"); if (srid != null) { td.setSrid(SRID.valueOf(srid)); } peekAnnotations(reader, element.getName().getLocalPart(), td); return td; }
return new CsdlTypeDefinition().setName("PropertyPath") .setUnderlyingType(new FullQualifiedName("Edm", "String")); } else if ("NavigationPropertyPath".equals(typeDefinitionName.getName())) { return new CsdlTypeDefinition().setName("NavigationPropertyPath") .setUnderlyingType(new FullQualifiedName("Edm", "String")); } else if ("AnnotationPath".equals(typeDefinitionName.getName())) { return new CsdlTypeDefinition().setName("AnnotationPath") .setUnderlyingType(new FullQualifiedName("Edm", "String")); } else if ("PrimitiveType".equals(typeDefinitionName.getName())) { return new CsdlTypeDefinition().setName("PrimitiveType") .setUnderlyingType(new FullQualifiedName("Edm", "String"));
protected List<EdmTypeDefinition> createTypeDefinitions() { final List<EdmTypeDefinition> typeDefns = new ArrayList<EdmTypeDefinition>(); final List<CsdlTypeDefinition> providerTypeDefinitions = schema.getTypeDefinitions(); if (providerTypeDefinitions != null) { for (CsdlTypeDefinition def : providerTypeDefinitions) { FullQualifiedName typeDefName = new FullQualifiedName(namespace, def.getName()); EdmTypeDefinitionImpl typeDefImpl = new EdmTypeDefinitionImpl(edm, typeDefName, def); typeDefns.add(typeDefImpl); edm.cacheTypeDefinition(typeDefName, typeDefImpl); } } return typeDefns; }
@Override public SRID getSrid() { return typeDefinition.getSrid(); }
@Override public EdmPrimitiveType getUnderlyingType() { if (edmPrimitiveTypeInstance == null) { try { if (typeDefinition.getUnderlyingType() == null) { throw new EdmException("Underlying Type for type definition: " + typeName.getFullQualifiedNameAsString() + " must not be null."); } edmPrimitiveTypeInstance = EdmPrimitiveTypeFactory.getInstance( EdmPrimitiveTypeKind.valueOfFQN(typeDefinition.getUnderlyingType())); } catch (IllegalArgumentException e) { throw new EdmException("Invalid underlying type: " + typeDefinition.getUnderlyingType(), e); } } return edmPrimitiveTypeInstance; }
public void addAnnotations(CsdlTypeDefinition typeDefinition, FullQualifiedName typeDefinitionName) { for (CsdlSchema schema : termSchemaDefinition) { List<CsdlAnnotations> annotationGrps = schema.getAnnotationGroups(); for (CsdlAnnotations annotationGrp : annotationGrps) { if (annotationGrp.getTarget().equalsIgnoreCase(typeDefinitionName.getFullQualifiedNameAsString())) { for (CsdlAnnotation annotation : annotationGrp.getAnnotations()) { if (!compareAnnotations(typeDefinition.getAnnotations(), annotation)) { typeDefinition.getAnnotations().addAll(annotationGrp.getAnnotations()); } } break; } } } }
private CsdlTypeDefinition readTypeDefinition(XMLEventReader reader, StartElement element) throws XMLStreamException { CsdlTypeDefinition td = new CsdlTypeDefinition(); td.setName(attr(element, "Name")); td.setUnderlyingType(new FullQualifiedName(attr(element, "UnderlyingType"))); if (attr(element, "Unicode") != null) { td.setUnicode(Boolean.parseBoolean(attr(element, "Unicode"))); } String maxLength = attr(element, "MaxLength"); if (maxLength != null) { td.setMaxLength(Integer.parseInt(maxLength)); } String precision = attr(element, "Precision"); if (precision != null) { td.setPrecision(Integer.parseInt(precision)); } String scale = attr(element, "Scale"); if (scale != null) { td.setScale(Integer.parseInt(scale)); } String srid = attr(element, "SRID"); if (srid != null) { td.setSrid(SRID.valueOf(srid)); } peekAnnotations(reader, element.getName().getLocalPart(), td); return td; }
protected List<EdmTypeDefinition> createTypeDefinitions() { final List<EdmTypeDefinition> typeDefns = new ArrayList<EdmTypeDefinition>(); final List<CsdlTypeDefinition> providerTypeDefinitions = schema.getTypeDefinitions(); if (providerTypeDefinitions != null) { for (CsdlTypeDefinition def : providerTypeDefinitions) { FullQualifiedName typeDefName = new FullQualifiedName(namespace, def.getName()); EdmTypeDefinitionImpl typeDefImpl = new EdmTypeDefinitionImpl(edm, typeDefName, def); typeDefns.add(typeDefImpl); edm.cacheTypeDefinition(typeDefName, typeDefImpl); } } return typeDefns; }
@Override public SRID getSrid() { return typeDefinition.getSrid(); }
@Override public EdmPrimitiveType getUnderlyingType() { if (edmPrimitiveTypeInstance == null) { try { if (typeDefinition.getUnderlyingType() == null) { throw new EdmException("Underlying Type for type definition: " + typeName.getFullQualifiedNameAsString() + " must not be null."); } edmPrimitiveTypeInstance = EdmPrimitiveTypeFactory.getInstance( EdmPrimitiveTypeKind.valueOfFQN(typeDefinition.getUnderlyingType())); } catch (IllegalArgumentException e) { throw new EdmException("Invalid underlying type: " + typeDefinition.getUnderlyingType(), e); } } return edmPrimitiveTypeInstance; }
@Override public CsdlTypeDefinition getTypeDefinition(FullQualifiedName fqn) throws ODataException { CsdlSchema schema = getSchema(fqn.getNamespace()); if (schema != null) { List<CsdlTypeDefinition> types = schema.getTypeDefinitions(); if (types != null) { for (CsdlTypeDefinition type : types) { if (type.getName().equals(fqn.getName())) { return type; } } } } return null; }
@Override public Integer getScale() { return typeDefinition.getScale(); }
@Override public Integer getPrecision() { return typeDefinition.getPrecision(); }
@Override public Integer getMaxLength() { return typeDefinition.getMaxLength(); }
@Override public CsdlTypeDefinition getTypeDefinition(FullQualifiedName fqn) throws ODataException { CsdlSchema schema = getSchema(fqn.getNamespace()); if (schema != null) { List<CsdlTypeDefinition> types = schema.getTypeDefinitions(); if (types != null) { for (CsdlTypeDefinition type : types) { if (type.getName().equals(fqn.getName())) { return type; } } } } return null; }