@Override protected EdmStructuredType buildBaseType(final FullQualifiedName baseTypeName) { EdmEntityType baseType = null; if (baseTypeName != null) { baseType = edm.getEntityType(baseTypeName); if (baseType == null) { throw new EdmException("Cannot find base type with name: " + baseTypeName + " for entity type: " + getName()); } } return baseType; }
@Override protected EdmStructuredType buildBaseType(final FullQualifiedName baseTypeName) { EdmEntityType baseType = null; if (baseTypeName != null) { baseType = edm.getEntityType(baseTypeName); if (baseType == null) { throw new EdmException("Cannot find base type with name: " + baseTypeName + " for entity type: " + getName()); } } return baseType; }
@Override public EdmEntityType getType() { if (typeImpl == null) { typeImpl = edm.getEntityType(navigationProperty.getTypeFQN()); if (typeImpl == null) { throw new EdmException("Cannot find type with name: " + navigationProperty.getTypeFQN()); } } return typeImpl; }
private static ClientProperty getODataEntityProperty( final EdmEnabledODataClient client, final FullQualifiedName entity, final String property, final Object obj) { final EdmElement edmProperty = client.getCachedEdm().getEntityType(entity).getProperty(property); return getODataProperty(client, edmProperty, property, obj); }
private static ClientProperty getODataEntityProperty( final EdmEnabledODataClient client, final FullQualifiedName entity, final String property, final Object obj) { final EdmElement edmProperty = client.getCachedEdm().getEntityType(entity).getProperty(property); return getODataProperty(client, edmProperty, property, obj); }
@Override public EdmEntityType getType() { if (typeImpl == null) { typeImpl = edm.getEntityType(navigationProperty.getTypeFQN()); if (typeImpl == null) { throw new EdmException("Cannot find type with name: " + navigationProperty.getTypeFQN()); } } return typeImpl; }
@Override public EdmEntityType getEntityType() { final EdmEntityType entityType = edm.getEntityType(target.getTypeFQN()); if (entityType == null) { throw new EdmException("Can´t find entity type: " + target.getTypeFQN() + " for entity set or singleton: " + getName()); } return entityType; }
@Override public EdmEntityType getEntityType() { final EdmEntityType entityType = edm.getEntityType(target.getTypeFQN()); if (entityType == null) { throw new EdmException("Can´t find entity type: " + target.getTypeFQN() + " for entity set or singleton: " + getName()); } return entityType; }
private EdmType getDerivedType(final EdmStructuredType edmType, final JsonNode jsonNode) throws DeserializerException { JsonNode odataTypeNode = jsonNode.get(Constants.JSON_TYPE); if (odataTypeNode != null) { String odataType = odataTypeNode.asText(); if (!odataType.isEmpty()) { odataType = odataType.substring(1); if (odataType.equalsIgnoreCase(edmType.getFullQualifiedName().getFullQualifiedNameAsString())) { return edmType; } else if (this.serviceMetadata == null) { throw new DeserializerException( "Failed to resolve Odata type " + odataType + " due to metadata is not available", DeserializerException.MessageKeys.UNKNOWN_CONTENT); } final EdmStructuredType currentEdmType = edmType.getKind() == EdmTypeKind.ENTITY ? serviceMetadata.getEdm().getEntityType(new FullQualifiedName(odataType)) : serviceMetadata.getEdm().getComplexType(new FullQualifiedName(odataType)); if (!isAssignable(edmType, currentEdmType)) { throw new DeserializerException("Odata type " + odataType + " not allowed here", DeserializerException.MessageKeys.UNKNOWN_CONTENT); } return currentEdmType; } } return edmType; }
public EdmEntityType parseDollarEntityTypeCast(final String pathSegment) throws UriParserException { tokenizer = new UriTokenizer(pathSegment); ParserHelper.requireNext(tokenizer, TokenKind.QualifiedName); final String name = tokenizer.getText(); ParserHelper.requireTokenEnd(tokenizer); final EdmEntityType type = edm.getEntityType(new FullQualifiedName(name)); if (type == null) { throw new UriParserSemanticException("Type '" + name + "' not found.", UriParserSemanticException.MessageKeys.UNKNOWN_TYPE, name); } return type; }
private EdmType getDerivedType(final EdmStructuredType edmType, final JsonNode jsonNode) throws DeserializerException { JsonNode odataTypeNode = jsonNode.get(constants.getType()); if (odataTypeNode != null) { String odataType = odataTypeNode.asText(); if (!odataType.isEmpty()) { odataType = odataType.substring(1); if (odataType.equalsIgnoreCase(edmType.getFullQualifiedName().getFullQualifiedNameAsString())) { return edmType; } else if (this.serviceMetadata == null) { throw new DeserializerException( "Failed to resolve Odata type " + odataType + " due to metadata is not available", DeserializerException.MessageKeys.UNKNOWN_CONTENT); } final EdmStructuredType currentEdmType = edmType.getKind() == EdmTypeKind.ENTITY ? serviceMetadata.getEdm().getEntityType(new FullQualifiedName(odataType)) : serviceMetadata.getEdm().getComplexType(new FullQualifiedName(odataType)); if (!isAssignable(edmType, currentEdmType)) { throw new DeserializerException("Odata type " + odataType + " not allowed here", DeserializerException.MessageKeys.UNKNOWN_CONTENT); } return currentEdmType; } } return edmType; }
public EdmEntityType parseDollarEntityTypeCast(final String pathSegment) throws UriParserException { tokenizer = new UriTokenizer(pathSegment); ParserHelper.requireNext(tokenizer, TokenKind.QualifiedName); final String name = tokenizer.getText(); ParserHelper.requireTokenEnd(tokenizer); final EdmEntityType type = edm.getEntityType(new FullQualifiedName(name)); if (type == null) { throw new UriParserSemanticException("Type '" + name + "' not found.", UriParserSemanticException.MessageKeys.UNKNOWN_TYPE, name); } return type; }
protected EdmEntityType determineEdmType() { try { final JPAEntitySet es = sd.getEntitySet(jpaQueryResult.getEntityType()); return serviceMetadata.getEdm().getEntityType(es.getODataEntityType().getExternalFQN()); } catch (ODataJPAModelException e) { throw new ODataRuntimeException(e); } }
private EdmType getDerivedType(final EdmStructuredType edmType, String odataType) throws DeserializerException { if (odataType != null && !odataType.isEmpty()) { if (odataType.equalsIgnoreCase(edmType.getFullQualifiedName().getFullQualifiedNameAsString())) { return edmType; } else if (this.serviceMetadata == null) { throw new DeserializerException( "Failed to resolve Odata type " + odataType + " due to metadata is not available", DeserializerException.MessageKeys.UNKNOWN_CONTENT); } EdmStructuredType currentEdmType = null; if(edmType instanceof EdmEntityType) { currentEdmType = serviceMetadata.getEdm() .getEntityType(new FullQualifiedName(odataType)); } else { currentEdmType = serviceMetadata.getEdm() .getComplexType(new FullQualifiedName(odataType)); } if (!isAssignable(edmType, currentEdmType)) { throw new DeserializerException( "Odata type " + odataType + " not allowed here", DeserializerException.MessageKeys.UNKNOWN_CONTENT); } return currentEdmType; } return edmType; }
protected EdmEntityType resolveEntityType(final ServiceMetadata metadata, final EdmEntityType baseType, final String derivedTypeName) throws SerializerException { if (derivedTypeName == null || baseType.getFullQualifiedName().getFullQualifiedNameAsString().equals(derivedTypeName)) { return baseType; } EdmEntityType derivedType = metadata.getEdm().getEntityType(new FullQualifiedName(derivedTypeName)); if (derivedType == null) { throw new SerializerException("EntityType not found", SerializerException.MessageKeys.UNKNOWN_TYPE, derivedTypeName); } EdmEntityType type = derivedType.getBaseType(); while (type != null) { if (type.getFullQualifiedName().getFullQualifiedNameAsString() .equals(baseType.getFullQualifiedName().getFullQualifiedNameAsString())) { return derivedType; } type = type.getBaseType(); } throw new SerializerException("Wrong base type", SerializerException.MessageKeys.WRONG_BASE_TYPE, derivedTypeName, baseType .getFullQualifiedName().getFullQualifiedNameAsString()); }
protected EdmEntityType resolveEntityType(final ServiceMetadata metadata, final EdmEntityType baseType, final String derivedTypeName) throws SerializerException { if (derivedTypeName == null || baseType.getFullQualifiedName().getFullQualifiedNameAsString().equals(derivedTypeName)) { return baseType; } EdmEntityType derivedType = metadata.getEdm().getEntityType(new FullQualifiedName(derivedTypeName)); if (derivedType == null) { throw new SerializerException("EntityType not found", SerializerException.MessageKeys.UNKNOWN_TYPE, derivedTypeName); } EdmEntityType type = derivedType.getBaseType(); while (type != null) { if (type.getFullQualifiedName().getFullQualifiedNameAsString() .equals(baseType.getFullQualifiedName().getFullQualifiedNameAsString())) { return derivedType; } type = type.getBaseType(); } throw new SerializerException("Wrong base type", SerializerException.MessageKeys.WRONG_BASE_TYPE, derivedTypeName, baseType .getFullQualifiedName().getFullQualifiedNameAsString()); }
protected EdmEntityType resolveEntityType(final ServiceMetadata metadata, final EdmEntityType baseType, final String derivedTypeName) throws SerializerException { if (derivedTypeName == null || baseType.getFullQualifiedName().getFullQualifiedNameAsString().equals(derivedTypeName)) { return baseType; } EdmEntityType derivedType = metadata.getEdm().getEntityType(new FullQualifiedName(derivedTypeName)); if (derivedType == null) { throw new SerializerException("EntityType not found", SerializerException.MessageKeys.UNKNOWN_TYPE, derivedTypeName); } EdmEntityType type = derivedType.getBaseType(); while (type != null) { if (type.getFullQualifiedName().equals(baseType.getFullQualifiedName())) { return derivedType; } type = type.getBaseType(); } throw new SerializerException("Wrong base type", SerializerException.MessageKeys.WRONG_BASE_TYPE, derivedTypeName, baseType.getFullQualifiedName().getFullQualifiedNameAsString()); }
protected EdmEntityType resolveEntityType(final ServiceMetadata metadata, final EdmEntityType baseType, final String derivedTypeName) throws SerializerException { if (derivedTypeName == null || baseType.getFullQualifiedName().getFullQualifiedNameAsString().equals(derivedTypeName)) { return baseType; } EdmEntityType derivedType = metadata.getEdm().getEntityType(new FullQualifiedName(derivedTypeName)); if (derivedType == null) { throw new SerializerException("EntityType not found", SerializerException.MessageKeys.UNKNOWN_TYPE, derivedTypeName); } EdmEntityType type = derivedType.getBaseType(); while (type != null) { if (type.getFullQualifiedName().equals(baseType.getFullQualifiedName())) { return derivedType; } type = type.getBaseType(); } throw new SerializerException("Wrong base type", SerializerException.MessageKeys.WRONG_BASE_TYPE, derivedTypeName, baseType.getFullQualifiedName().getFullQualifiedNameAsString()); }
protected static EdmStructuredType parseTypeCast(UriTokenizer tokenizer, final Edm edm, final EdmStructuredType referencedType) throws UriParserException { if (tokenizer.next(TokenKind.QualifiedName)) { final FullQualifiedName qualifiedName = new FullQualifiedName(tokenizer.getText()); final EdmStructuredType type = referencedType.getKind() == EdmTypeKind.ENTITY ? edm.getEntityType(qualifiedName) : edm.getComplexType(qualifiedName); if (type == null) { throw new UriParserSemanticException("Type '" + qualifiedName + "' not found.", UriParserSemanticException.MessageKeys.UNKNOWN_PART, qualifiedName.getFullQualifiedNameAsString()); } else { if (!type.compatibleTo(referencedType)) { throw new UriParserSemanticException("The type cast '" + qualifiedName + "' is not compatible.", UriParserSemanticException.MessageKeys.INCOMPATIBLE_TYPE_FILTER, type.getName()); } } return type; } return null; }
protected static EdmStructuredType parseTypeCast(UriTokenizer tokenizer, final Edm edm, final EdmStructuredType referencedType) throws UriParserException { if (tokenizer.next(TokenKind.QualifiedName)) { final FullQualifiedName qualifiedName = new FullQualifiedName(tokenizer.getText()); final EdmStructuredType type = referencedType.getKind() == EdmTypeKind.ENTITY ? edm.getEntityType(qualifiedName) : edm.getComplexType(qualifiedName); if (type == null) { throw new UriParserSemanticException("Type '" + qualifiedName + "' not found.", UriParserSemanticException.MessageKeys.UNKNOWN_PART, qualifiedName.getFullQualifiedNameAsString()); } else { if (!type.compatibleTo(referencedType)) { throw new UriParserSemanticException("The type cast '" + qualifiedName + "' is not compatible.", UriParserSemanticException.MessageKeys.INCOMPATIBLE_TYPE_FILTER, type.getName()); } } return type; } return null; }