@Override public EdmURIBuilder appendFunctionImportParameters(Map<EdmParameter, Object> functionImportParams) { try { if (functionImportParams != null) { for (Map.Entry<EdmParameter, Object> param : functionImportParams.entrySet()) { EdmParameter edmParam = param.getKey(); EdmSimpleType edmType = (EdmSimpleType) edmParam.getType(); Object value = param.getValue(); if (value instanceof String) { value = value.toString(); } value = edmType.valueToString(value, EdmLiteralKind.URI, edmParam.getFacets()); functionImportParameters.put(edmParam.getName(), value); } } } catch (EdmException e) { throw new RuntimeException("Unexpected EDM Exception: ", e);//NOSONAR } return this; } }
private String convertKeyValuesToString(Map<String, Object> keys, EdmEntityType entityType) throws EdmException { String keyPredicateString = ""; for (Entry<String, Object> e : keys.entrySet()) { if (!keyPredicateString.isEmpty()) keyPredicateString += ','; String key = e.getKey(); Object value = e.getValue(); EdmProperty prop = (EdmProperty) entityType.getProperty(key); EdmSimpleType type = (EdmSimpleType) (prop.getType()); String convertedValue = type .toUriLiteral(type.valueToString(value, EdmLiteralKind.DEFAULT, prop.getFacets())); keyPredicateString += key + '=' + convertedValue; } return keyPredicateString; }
private List<KeyPredicate> getPropertyValuesAsKeyPredicates(EdmEntityType entityType, Map<String, Object> result, List<String> propertyNames) throws EdmException { List<KeyPredicate> keyPredicates = new ArrayList<KeyPredicate>(); for(String property:propertyNames){ Object value = result.get(property); EdmProperty entityProperty = (EdmProperty) entityType.getProperty(property); EdmSimpleType edmSimpleType = (EdmSimpleType) entityProperty.getType(); String literal = edmSimpleType.valueToString(value, EdmLiteralKind.DEFAULT, entityProperty.getFacets()); keyPredicates.add(new GWKeyPredicate(literal, entityProperty)); } return keyPredicates; }
/** * @param property * @param value * @return * @throws EdmException * @throws EdmSimpleTypeException */ private String getKey(EdmProperty property, Object value, boolean isSegment) throws EdmException { String key = ""; EdmSimpleType edmType = (EdmSimpleType) property.getType(); if (value instanceof String) { value = Encoder.encode(value.toString()); //NOSONAR } if (!isSegment) { key = "(" + edmType.valueToString(value, EdmLiteralKind.URI, property.getFacets()) + ")"; } else { key = edmType.valueToString(value, EdmLiteralKind.URI, property.getFacets()); } return key; }
private List<KeyPredicate> getKeyPredicates(EdmEntityType entityType, Map<String, Object> result) throws EdmException { List<KeyPredicate> keyPredicates = new ArrayList<KeyPredicate>(); for (EdmProperty keyProperty : entityType.getKeyProperties()) { Object value = result.get(keyProperty.getName()); EdmSimpleType edmSimpleType = (EdmSimpleType) keyProperty.getType(); String literal = edmSimpleType.valueToString(value, EdmLiteralKind.DEFAULT, keyProperty.getFacets()); keyPredicates.add(new GWKeyPredicate(literal, keyProperty)); } return keyPredicates; }
private static String createEntryKey(final EntityInfoAggregator entityInfo, final Map<String, Object> data) throws EntityProviderException { final List<EntityPropertyInfo> keyPropertyInfos = entityInfo.getKeyPropertyInfos(); StringBuilder keys = new StringBuilder(); for (final EntityPropertyInfo keyPropertyInfo : keyPropertyInfos) { if (keys.length() > 0) { keys.append(','); } final String name = keyPropertyInfo.getName(); if (keyPropertyInfos.size() > 1) { keys.append(Encoder.encode(name)).append('='); } final EdmSimpleType type = (EdmSimpleType) keyPropertyInfo.getType(); try { keys.append(Encoder.encode(type.valueToString(data.get(name), EdmLiteralKind.URI, keyPropertyInfo.getFacets()))); } catch (final EdmSimpleTypeException e) { throw new EntityProviderException(EntityProviderException.COMMON, e); } } return keys.toString(); }
private <T> String getSkipToken(final EdmEntitySet entitySet, final T data) throws ODataException { String skipToken = ""; for (final EdmProperty property : entitySet.getEntityType().getKeyProperties()) { final EdmSimpleType type = (EdmSimpleType) property.getType(); skipToken = skipToken.concat(type.valueToString(valueAccess.getPropertyValue(data, property), EdmLiteralKind.DEFAULT, property.getFacets())); } return skipToken; }
private <T> String getSkipToken(final EdmEntitySet entitySet, final T data) throws ODataException { String skipToken = ""; for (final EdmProperty property : entitySet.getEntityType().getKeyProperties()) { final EdmSimpleType type = (EdmSimpleType) property.getType(); skipToken = skipToken.concat(type.valueToString(valueAccess.getPropertyValue(data, property), EdmLiteralKind.DEFAULT, property.getFacets())); } return skipToken; }
private <T> String getSkipToken(final EdmEntitySet entitySet, final T data) throws ODataException { String skipToken = ""; for (final EdmProperty property : entitySet.getEntityType().getKeyProperties()) { final EdmSimpleType type = (EdmSimpleType) property.getType(); skipToken = skipToken.concat(type.valueToString(valueAccess.getPropertyValue(data, property), EdmLiteralKind.DEFAULT, property.getFacets())); } return skipToken; }
private String getTargetPathValue(final EntityInfoAggregator eia, final String targetPath, final Map<String, Object> data) throws EntityProviderException { try { EntityPropertyInfo info = eia.getTargetPathInfo(targetPath); if (info != null) { EdmSimpleType type = (EdmSimpleType) info.getType(); Object value = data.get(info.getName()); return type.valueToString(value, EdmLiteralKind.DEFAULT, info.getFacets()); } return null; } catch (EdmSimpleTypeException e) { throw new EntityProviderException(EntityProviderException.COMMON, e); } }
public static String convertKeyValuesToString(Map<String, Object> keys, EdmEntityType entityType) throws ODataException, EdmException { String keyPredicateString = ""; for (Entry<String, Object> e : keys.entrySet()) { if (!keyPredicateString.isEmpty()) keyPredicateString += ','; String key = e.getKey(); Object value = e.getValue(); EdmProperty prop = (EdmProperty) entityType.getProperty(key); if (prop == null) throw new ODataException(ODataExceptionType.KEY_NOT_PRESENT, "No such key property. " + key, null); EdmSimpleType type = (EdmSimpleType) (prop.getType()); String convertedValue; try { convertedValue = type.toUriLiteral(type.valueToString(value, EdmLiteralKind.DEFAULT, prop.getFacets())); } catch (EdmSimpleTypeException e1) { throw new ODataException(ODataExceptionType.BAD_KEY_VALUE, e1.getMessage(), e1); } keyPredicateString += key + '=' + convertedValue; } return keyPredicateString; }
private String getTargetPathValue(final EntityInfoAggregator eia, final String targetPath, final Map<String, Object> data) throws EntityProviderException { EntityPropertyInfo info = null; try { info = eia.getTargetPathInfo(targetPath); if (info != null) { EdmSimpleType type = (EdmSimpleType) info.getType(); Object value = data.get(info.getName()); return type.valueToString(value, EdmLiteralKind.DEFAULT, info.getFacets()); } return null; } catch (final EdmSimpleTypeException e) { throw new EntityProviderProducerException( EdmSimpleTypeException.getMessageReference(e.getMessageReference()). updateContent(e.getMessageReference().getContent(), info.getName()), e); } }
private String getTargetPathValue(final EntityInfoAggregator eia, final String targetPath, final Map<String, Object> data) throws EntityProviderException { EntityPropertyInfo info = null; try { info = eia.getTargetPathInfo(targetPath); if (info != null) { EdmSimpleType type = (EdmSimpleType) info.getType(); Object value = data.get(info.getName()); return type.valueToString(value, EdmLiteralKind.DEFAULT, info.getFacets()); } return null; } catch (final EdmSimpleTypeException e) { throw new EntityProviderProducerException( EdmSimpleTypeException.getMessageReference(e.getMessageReference()). updateContent(e.getMessageReference().getContent(), info.getName()), e); } }
private String getTargetPathValue(final EntityInfoAggregator eia, final String targetPath, final Map<String, Object> data) throws EntityProviderException { EntityPropertyInfo info = null; try { info = eia.getTargetPathInfo(targetPath); if (info != null) { EdmSimpleType type = (EdmSimpleType) info.getType(); Object value = data.get(info.getName()); return type.valueToString(value, EdmLiteralKind.DEFAULT, info.getFacets()); } return null; } catch (final EdmSimpleTypeException e) { throw new EntityProviderProducerException( EdmSimpleTypeException.getMessageReference(e.getMessageReference()). updateContent(e.getMessageReference().getContent(), info.getName()), e); } }
private <T> String constructETag(final EdmEntitySet entitySet, final T data) throws ODataException { final EdmEntityType entityType = entitySet.getEntityType(); String eTag = null; for (final String propertyName : entityType.getPropertyNames()) { final EdmProperty property = (EdmProperty) entityType.getProperty(propertyName); if (property.getFacets() != null && property.getFacets().getConcurrencyMode() == EdmConcurrencyMode.Fixed) { final EdmSimpleType type = (EdmSimpleType) property.getType(); final String component = type.valueToString(valueAccess.getPropertyValue(data, property), EdmLiteralKind.DEFAULT, property.getFacets()); eTag = eTag == null ? component : eTag + Edm.DELIMITER + component; } } return eTag == null ? null : "W/\"" + eTag + "\""; }
private <T> String constructETag(final EdmEntitySet entitySet, final T data) throws ODataException { final EdmEntityType entityType = entitySet.getEntityType(); String eTag = null; for (final String propertyName : entityType.getPropertyNames()) { final EdmProperty property = (EdmProperty) entityType.getProperty(propertyName); if (property.getFacets() != null && property.getFacets().getConcurrencyMode() == EdmConcurrencyMode.Fixed) { final EdmSimpleType type = (EdmSimpleType) property.getType(); final String component = type.valueToString(valueAccess.getPropertyValue(data, property), EdmLiteralKind.DEFAULT, property.getFacets()); eTag = eTag == null ? component : eTag + Edm.DELIMITER + component; } } return eTag == null ? null : "W/\"" + eTag + "\""; }
private <T> String constructETag(final EdmEntitySet entitySet, final T data) throws ODataException { final EdmEntityType entityType = entitySet.getEntityType(); String eTag = null; for (final String propertyName : entityType.getPropertyNames()) { final EdmProperty property = (EdmProperty) entityType.getProperty(propertyName); if (property.getFacets() != null && property.getFacets().getConcurrencyMode() == EdmConcurrencyMode.Fixed) { final EdmSimpleType type = (EdmSimpleType) property.getType(); final String component = type.valueToString(valueAccess.getPropertyValue(data, property), EdmLiteralKind.DEFAULT, property.getFacets()); eTag = eTag == null ? component : eTag + Edm.DELIMITER + component; } } return eTag == null ? null : "W/\"" + eTag + "\""; }
@Override public ODataResponse executeFunctionImportValue(final GetFunctionImportUriInfo uriInfo, final String contentType) throws ODataException { final EdmFunctionImport functionImport = uriInfo.getFunctionImport(); final EdmSimpleType type = (EdmSimpleType) functionImport.getReturnType().getType(); final Object data = dataSource.readData( functionImport, mapFunctionParameters(uriInfo.getFunctionImportParameters()), null); if (data == null) { throw new ODataNotFoundException(ODataHttpException.COMMON); } ODataResponse response; if (type == EdmSimpleTypeKind.Binary.getEdmSimpleTypeInstance()) { response = EntityProvider.writeBinary(((BinaryData) data).getMimeType(), ((BinaryData) data).getData()); } else { final String value = type.valueToString(data, EdmLiteralKind.DEFAULT, null); response = EntityProvider.writeText(value == null ? "" : value); } return ODataResponse.fromResponse(response).build(); }
@Override public ODataResponse executeFunctionImportValue(final GetFunctionImportUriInfo uriInfo, final String contentType) throws ODataException { final EdmFunctionImport functionImport = uriInfo.getFunctionImport(); final EdmSimpleType type = (EdmSimpleType) functionImport.getReturnType().getType(); final Object data = dataSource.readData( functionImport, mapFunctionParameters(uriInfo.getFunctionImportParameters()), null); if (data == null) { throw new ODataNotFoundException(ODataHttpException.COMMON); } ODataResponse response; if (type == EdmSimpleTypeKind.Binary.getEdmSimpleTypeInstance()) { response = EntityProvider.writeBinary(((BinaryData) data).getMimeType(), ((BinaryData) data).getData()); } else { final String value = type.valueToString(data, EdmLiteralKind.DEFAULT, null); response = EntityProvider.writeText(value == null ? "" : value); } return ODataResponse.fromResponse(response).build(); }
@Override public ODataResponse executeFunctionImportValue(final GetFunctionImportUriInfo uriInfo, final String contentType) throws ODataException { final EdmFunctionImport functionImport = uriInfo.getFunctionImport(); final EdmSimpleType type = (EdmSimpleType) functionImport.getReturnType().getType(); final Object data = dataSource.readData( functionImport, mapFunctionParameters(uriInfo.getFunctionImportParameters()), null); if (data == null) { throw new ODataNotFoundException(ODataHttpException.COMMON); } ODataResponse response; if (type == EdmSimpleTypeKind.Binary.getEdmSimpleTypeInstance()) { response = EntityProvider.writeBinary(((BinaryData) data).getMimeType(), ((BinaryData) data).getData()); } else { final String value = type.valueToString(data, EdmLiteralKind.DEFAULT, null); response = EntityProvider.writeText(value == null ? "" : value); } return ODataResponse.fromResponse(response).build(); }