You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by mi...@apache.org on 2013/10/15 22:36:07 UTC
[2/6] git commit: Minor changes for OLINGO-30
Minor changes for OLINGO-30
Project: http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/commit/5c3319b3
Tree: http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/tree/5c3319b3
Diff: http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/diff/5c3319b3
Branch: refs/heads/PocEdmAnnotationsExtension
Commit: 5c3319b32f17a049d5b38cbe6d1538223cef5c62
Parents: 95eb8f1
Author: Michael Bolz <mi...@apache.org>
Authored: Tue Oct 15 11:04:38 2013 +0200
Committer: Michael Bolz <mi...@apache.org>
Committed: Tue Oct 15 11:04:38 2013 +0200
----------------------------------------------------------------------
.../olingo/odata2/api/edm/EdmMapping.java | 1 +
.../olingo/odata2/api/edm/provider/Mapping.java | 9 ++++++--
.../api/ep/EntityProviderWriteProperties.java | 6 ++++-
.../odata2/ref/edm/ScenarioEdmProvider.java | 4 ++--
.../odata2/ref/processor/ListsProcessor.java | 24 ++++++++++++++++----
5 files changed, 34 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/5c3319b3/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmMapping.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmMapping.java b/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmMapping.java
index c810fca..2c1116d 100644
--- a/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmMapping.java
+++ b/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/EdmMapping.java
@@ -36,6 +36,7 @@ public interface EdmMapping {
* Get the mapping name for mime type lookup
*
* @return mapping name as String
+ * @deprecated use instead functionality of {@link #getMediaResourceMimeTypeKey()} method
*/
@Deprecated
String getMimeType();
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/5c3319b3/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/provider/Mapping.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/provider/Mapping.java b/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/provider/Mapping.java
index 4cdb6de..12a6166 100644
--- a/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/provider/Mapping.java
+++ b/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/edm/provider/Mapping.java
@@ -71,6 +71,7 @@ public class Mapping implements EdmMapping {
* Sets the mime type for this {@link Mapping}.
* @param mimeType
* @return {@link Mapping} for method chaining
+ * @deprecated use instead functionality of {@link #setMediaResourceMimeTypeKey(String)} method
*/
@Deprecated
public Mapping setMimeType(final String mimeType) {
@@ -91,17 +92,21 @@ public class Mapping implements EdmMapping {
/**
* Sets the key for the resource source key which is used for the lookup in the data map
* @param mediaResourceSourceKey under which the source can be found in the data map
+ * @return {@link Mapping} for method chaining
*/
- public void setMediaResourceSourceKey(String mediaResourceSourceKey) {
+ public Mapping setMediaResourceSourceKey(String mediaResourceSourceKey) {
this.mediaResourceSourceKey = mediaResourceSourceKey;
+ return this;
}
/**
* Sets the key for the resource mime type key which is used for the lookup in the data map
* @param mediaResourceMimeTypeKey under which the mime type can be found in the data map
+ * @return {@link Mapping} for method chaining
*/
- public void setMediaResourceMimeTypeKey(String mediaResourceMimeTypeKey) {
+ public Mapping setMediaResourceMimeTypeKey(String mediaResourceMimeTypeKey) {
this.mediaResourceMimeTypeKey = mediaResourceMimeTypeKey;
+ return this;
}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/5c3319b3/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/ep/EntityProviderWriteProperties.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/ep/EntityProviderWriteProperties.java b/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/ep/EntityProviderWriteProperties.java
index 2a7e978..f212810 100644
--- a/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/ep/EntityProviderWriteProperties.java
+++ b/odata2-lib/odata-api/src/main/java/org/apache/olingo/odata2/api/ep/EntityProviderWriteProperties.java
@@ -64,6 +64,8 @@ public class EntityProviderWriteProperties {
/**
* Gets the MIME type of the media resource.
* @return the MIME type of the media resource
+ * @deprecated use instead the functionality of 'EdmMapping -> mediaResourceMimeTypeKey' to reference via a key
+ * to the 'mime type' of the media resource provided in the entity data map
*/
@Deprecated
public final String getMediaResourceMimeType() {
@@ -84,7 +86,7 @@ public class EntityProviderWriteProperties {
/**
* Gets the expand select tree data structure resulting from $expand and $select query options.
- * @return a paresed tree structure representing the $expand and $select
+ * @return a parsed tree structure representing the $expand and $select
*/
public final ExpandSelectTreeNode getExpandSelectTree() {
return expandSelectTree;
@@ -117,6 +119,8 @@ public class EntityProviderWriteProperties {
/**
* @param mediaResourceMimeType the mediaResourceMimeType to set
+ * @deprecated use instead the functionality of 'EdmMapping -> mediaResourceMimeTypeKey' to reference via a key
+ * to the 'mime type' of the media resource provided in the entity data map
*/
@Deprecated
public final ODataEntityProviderPropertiesBuilder mediaResourceMimeType(final String mediaResourceMimeType) {
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/5c3319b3/odata2-lib/odata-ref/src/main/java/org/apache/olingo/odata2/ref/edm/ScenarioEdmProvider.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-ref/src/main/java/org/apache/olingo/odata2/ref/edm/ScenarioEdmProvider.java b/odata2-lib/odata-ref/src/main/java/org/apache/olingo/odata2/ref/edm/ScenarioEdmProvider.java
index b3cf662..c57b06c 100644
--- a/odata2-lib/odata-ref/src/main/java/org/apache/olingo/odata2/ref/edm/ScenarioEdmProvider.java
+++ b/odata2-lib/odata-ref/src/main/java/org/apache/olingo/odata2/ref/edm/ScenarioEdmProvider.java
@@ -215,7 +215,7 @@ public class ScenarioEdmProvider extends EdmProvider {
.setHasStream(true)
.setKey(getKey("EmployeeId"))
.setNavigationProperties(navigationProperties)
- .setMapping(new Mapping().setMimeType("getImageType"));
+ .setMapping(new Mapping().setMimeType("getImageType").setMediaResourceMimeTypeKey("~mrmtk"));
} else if (ENTITY_TYPE_1_BASE.getName().equals(edmFQName.getName())) {
List<Property> properties = new ArrayList<Property>();
@@ -315,7 +315,7 @@ public class ScenarioEdmProvider extends EdmProvider {
.setProperties(properties)
.setHasStream(true)
.setKey(getKey("Id", "Type"))
- .setMapping(new Mapping().setMimeType("getType"));
+ .setMapping(new Mapping().setMimeType("getType").setMediaResourceMimeTypeKey("~MediaResourceMimeTypeKey"));
}
}
http://git-wip-us.apache.org/repos/asf/incubator-olingo-odata2/blob/5c3319b3/odata2-lib/odata-ref/src/main/java/org/apache/olingo/odata2/ref/processor/ListsProcessor.java
----------------------------------------------------------------------
diff --git a/odata2-lib/odata-ref/src/main/java/org/apache/olingo/odata2/ref/processor/ListsProcessor.java b/odata2-lib/odata-ref/src/main/java/org/apache/olingo/odata2/ref/processor/ListsProcessor.java
index 901fe59..58009d9 100644
--- a/odata2-lib/odata-ref/src/main/java/org/apache/olingo/odata2/ref/processor/ListsProcessor.java
+++ b/odata2-lib/odata-ref/src/main/java/org/apache/olingo/odata2/ref/processor/ListsProcessor.java
@@ -46,6 +46,7 @@ import org.apache.olingo.odata2.api.edm.EdmException;
import org.apache.olingo.odata2.api.edm.EdmFunctionImport;
import org.apache.olingo.odata2.api.edm.EdmLiteral;
import org.apache.olingo.odata2.api.edm.EdmLiteralKind;
+import org.apache.olingo.odata2.api.edm.EdmMapping;
import org.apache.olingo.odata2.api.edm.EdmMultiplicity;
import org.apache.olingo.odata2.api.edm.EdmNavigationProperty;
import org.apache.olingo.odata2.api.edm.EdmProperty;
@@ -1518,13 +1519,26 @@ public class ListsProcessor extends ODataSingleProcessor {
null : getterMethodName.replaceFirst("^is", "set").replaceFirst("^get", "set");
}
+ private static void handleMimeType(Object data, EdmMapping mapping, Map<String, Object> valueMap)
+ throws ODataNotFoundException {
+ final String methodName = mapping.getMimeType();
+ if (mapping.getMimeType() != null) {
+ Object value = getValue(data, methodName);
+ valueMap.put(methodName, value);
+ if(mapping.getMediaResourceMimeTypeKey() != null) {
+ valueMap.put(mapping.getMediaResourceMimeTypeKey(), value);
+ }
+ }
+ }
+
private static <T> Map<String, Object> getSimpleTypeValueMap(final T data, final List<EdmProperty> propertyPath)
throws ODataException {
final EdmProperty property = propertyPath.get(propertyPath.size() - 1);
Map<String, Object> valueWithMimeType = new HashMap<String, Object>();
valueWithMimeType.put(property.getName(), getPropertyValue(data, propertyPath));
- final String mimeTypeMappingName = property.getMapping().getMimeType();
- valueWithMimeType.put(mimeTypeMappingName, getValue(data, mimeTypeMappingName));
+
+ handleMimeType(data, property.getMapping(), valueWithMimeType);
+
return valueWithMimeType;
}
@@ -1535,9 +1549,9 @@ public class ListsProcessor extends ODataSingleProcessor {
Map<String, Object> valueMap = new HashMap<String, Object>();
- if (type.getMapping() != null && type.getMapping().getMimeType() != null) {
- final String methodName = type.getMapping().getMimeType();
- valueMap.put(methodName, getValue(data, methodName));
+ EdmMapping mapping = type.getMapping();
+ if (mapping != null) {
+ handleMimeType(data, mapping, valueMap);
}
for (final String propertyName : type.getPropertyNames()) {