This is an automated email from the ASF dual-hosted git repository.
ramyav pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/olingo-odata4.git
The following commit(s) were added to refs/heads/master by this push:
new 7632ec7 [OLINGO-1155]Delta support in Json format
7632ec7 is described below
commit 7632ec726845345467d07800e56723c30a053a3b
Author: ramya vasanth
AuthorDate: Thu Aug 29 09:51:44 2019 +0530
[OLINGO-1155]Delta support in Json format
---
.../EntityCollectionSerializerOptions.java | 12 ++
.../json/JsonDeltaSerializerWithNavigations.java | 80 +++---
.../olingo/server/tecsvc/data/DataCreator.java | 32 +++-
.../JsonDeltaSerializerWithNavigationsTest.java| 177 -
4 files changed, 272 insertions(+), 29 deletions(-)
diff --git
a/lib/server-api/src/main/java/org/apache/olingo/server/api/serializer/EntityCollectionSerializerOptions.java
b/lib/server-api/src/main/java/org/apache/olingo/server/api/serializer/EntityCollectionSerializerOptions.java
index 6e49f81..006e477 100644
---
a/lib/server-api/src/main/java/org/apache/olingo/server/api/serializer/EntityCollectionSerializerOptions.java
+++
b/lib/server-api/src/main/java/org/apache/olingo/server/api/serializer/EntityCollectionSerializerOptions.java
@@ -35,6 +35,7 @@ public class EntityCollectionSerializerOptions {
private String id;
private ODataContentWriteErrorCallback odataContentWriteErrorCallback;
private String xml10InvalidCharReplacement;
+ private boolean isFullRepresentation = false;
/** Gets the {@link ContextURL}. */
public ContextURL getContextURL() {
@@ -81,6 +82,11 @@ public class EntityCollectionSerializerOptions {
public String xml10InvalidCharReplacement() {
return xml10InvalidCharReplacement;
}
+
+ /** Inline entries will not have @delta if representation is full **/
+ public boolean isFullRepresentation() {
+return isFullRepresentation;
+ }
/** Initializes the options builder. */
public static Builder with() {
@@ -150,6 +156,12 @@ public class EntityCollectionSerializerOptions {
return this;
}
+/** sets isFullRepresentation to represent inline entries**/
+public Builder isFullRepresentation(boolean isFullRepresentation) {
+ options.isFullRepresentation = isFullRepresentation;
+ return this;
+}
+
/** Builds the OData serializer options. */
public EntityCollectionSerializerOptions build() {
return options;
diff --git
a/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/json/JsonDeltaSerializerWithNavigations.java
b/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/json/JsonDeltaSerializerWithNavigations.java
index ad8635d..bf74efd 100644
---
a/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/json/JsonDeltaSerializerWithNavigations.java
+++
b/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/json/JsonDeltaSerializerWithNavigations.java
@@ -142,7 +142,8 @@ public class JsonDeltaSerializerWithNavigations implements
EdmDeltaSerializer {
json.writeStartArray();
for (final Entity entity : entitySet.getEntities()) {
writeAddedUpdatedEntity(metadata, entityType, entity,
options.getExpand(), options.getSelect(),
- options.getContextURL(), false,
options.getContextURL().getEntitySetOrSingletonOrType(), json);
+ options.getContextURL(), false,
options.getContextURL().getEntitySetOrSingletonOrType(), json,
+ options.isFullRepresentation());
}
for (final DeletedEntity deletedEntity : entitySet.getDeletedEntities()) {
writeDeletedEntity(deletedEntity, json);
@@ -232,7 +233,7 @@ public class JsonDeltaSerializerWithNavigations implements
EdmDeltaSerializer {
public void writeAddedUpdatedEntity(final ServiceMetadata metadata, final
EdmEntityType entityType,
final Entity entity, final ExpandOption expand, final SelectOption
select, final ContextURL url,
- final boolean onlyReference, String name, final JsonGenerator json)
+ final boolean onlyReference, String name, final JsonGenerator json,
boolean isFullRepresentation)
throws IOException, SerializerException {
json.writeStartObject();
if (entity.getId() != null && url != null) {
@@ -248,7 +249,7 @@ public class JsonDeltaSerializerWithNavigations implements
EdmDeltaSerializer {
}
json.writeStringField(Constants.AT + Constants.ATOM_ATTR_ID,
getEntityId(entity, entityType, name));
writeProperties(metadata, entityType, entity.getProperties(), select,
json);
-writeNavigationProperties(metadata, entityType, entity, expand, name,
json);
+writeNavigationProperties(metadata, entityType, entity, expand, name,
json, isFullRepresentation);
json.writeEndObject();
}
@@ -503,7 +504,8 @@ public class JsonDeltaSerializerWithNavigations implements
EdmDeltaSerializer {