http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/639362ca/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/DataCreator.java ---------------------------------------------------------------------- diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/DataCreator.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/DataCreator.java index ccc7de5..5c60b38 100644 --- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/DataCreator.java +++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/DataCreator.java @@ -74,6 +74,7 @@ public class DataCreator { data.put("ESFourKeyAlias", createESFourKeyAlias(edm, odata)); data.put("ESBase", createESBase(edm, odata)); data.put("ESCompMixPrimCollComp", createESCompMixPrimCollComp(edm, odata)); + data.put("ESMixEnumDefCollComp", createESMixEnumDefCollComp(edm, odata)); linkESTwoPrim(data); linkESAllPrim(data); @@ -81,62 +82,83 @@ public class DataCreator { linkESTwoKeyNav(data); } + private EntityCollection createESMixEnumDefCollComp(Edm edm, OData odata) { + final EntityCollection entityCollection = new EntityCollection(); + + entityCollection.getEntities().add(createETMixEnumDefCollComp("key1", (short) 1)); + entityCollection.getEntities().add(createETMixEnumDefCollComp("key1", (short) 3)); + entityCollection.getEntities().add(createETMixEnumDefCollComp("key1", (short) 4)); + + setEntityType(entityCollection, edm.getEntityType(EntityTypeProvider.nameETMixEnumDefCollComp)); + createEntityId(edm, odata, "ESMixEnumDefCollComp", entityCollection); + + return entityCollection; + } + + private Entity createETMixEnumDefCollComp(String typeDefString, Short enumValue) { + return new Entity() + .addProperty(createPrimitive("PropertyEnumString", enumValue)) + .addProperty(createPrimitive("PropertyDefString", typeDefString)) + .addProperty(createPrimitiveCollection("CollPropertyEnumString", enumValue)) + .addProperty(createPrimitiveCollection("CollPropertyDefString", typeDefString)); + } + private EntityCollection createESCompMixPrimCollComp(final Edm edm, final OData odata) { final EntityCollection entityCollection = new EntityCollection(); - + entityCollection.getEntities().add(createETCompMixPrimCollComp((short) 1)); entityCollection.getEntities().add(createETCompMixPrimCollComp((short) 2)); entityCollection.getEntities().add(createETCompMixPrimCollComp((short) 3)); setEntityType(entityCollection, edm.getEntityType(EntityTypeProvider.nameETCompMixPrimCollComp)); createEntityId(edm, odata, "ESCompMixPrimCollComp", entityCollection); - + return entityCollection; } @SuppressWarnings("unchecked") private Entity createETCompMixPrimCollComp(final Short propertyInt16) { return new Entity() - .addProperty(createPrimitive("PropertyInt16", propertyInt16)) - .addProperty(createComplex("PropertyMixedPrimCollComp", - createPrimitive("PropertyInt16",(short) 1), - createPrimitiveCollection("CollPropertyString", - "[email protected]", - "[email protected]", - "[email protected]" - ), - createComplex("PropertyComp", - createPrimitive("PropertyInt16",(short) 333), - createPrimitive("PropertyString", "TEST123") - ), - createComplexCollection("CollPropertyComp", - Arrays.asList(new Property[] { - createPrimitive("PropertyInt16",(short) 222), - createPrimitive("PropertyString", "TEST9876") - }), - Arrays.asList(new Property[] { - createPrimitive("PropertyInt16",(short) 333), + .addProperty(createPrimitive("PropertyInt16", propertyInt16)) + .addProperty(createComplex("PropertyMixedPrimCollComp", + createPrimitive("PropertyInt16", (short) 1), + createPrimitiveCollection("CollPropertyString", + "[email protected]", + "[email protected]", + "[email protected]" + ), + createComplex("PropertyComp", + createPrimitive("PropertyInt16", (short) 333), createPrimitive("PropertyString", "TEST123") - }) - ) - )); + ), + createComplexCollection("CollPropertyComp", + Arrays.asList(new Property[] { + createPrimitive("PropertyInt16", (short) 222), + createPrimitive("PropertyString", "TEST9876") + }), + Arrays.asList(new Property[] { + createPrimitive("PropertyInt16", (short) 333), + createPrimitive("PropertyString", "TEST123") + }) + ) + )); } private EntityCollection createESBase(final Edm edm, final OData odata) { final EntityCollection entityCollection = new EntityCollection(); - + entityCollection.getEntities().add(new Entity() - .addProperty(createPrimitive("PropertyInt16",(short) 111)) + .addProperty(createPrimitive("PropertyInt16", (short) 111)) .addProperty(createPrimitive("PropertyString", "TEST A")) .addProperty(createPrimitive("AdditionalPropertyString_5", "TEST A 0815"))); - + entityCollection.getEntities().add(new Entity() - .addProperty(createPrimitive("PropertyInt16",(short) 222)) + .addProperty(createPrimitive("PropertyInt16", (short) 222)) .addProperty(createPrimitive("PropertyString", "TEST B")) .addProperty(createPrimitive("AdditionalPropertyString_5", "TEST C 0815"))); - + entityCollection.getEntities().add(new Entity() - .addProperty(createPrimitive("PropertyInt16",(short) 333)) + .addProperty(createPrimitive("PropertyInt16", (short) 333)) .addProperty(createPrimitive("PropertyString", "TEST C")) .addProperty(createPrimitive("AdditionalPropertyString_5", "TEST E 0815"))); @@ -148,21 +170,21 @@ public class DataCreator { private EntityCollection createESFourKeyAlias(final Edm edm, final OData odata) { final EntityCollection entityCollection = new EntityCollection(); - + entityCollection.getEntities().add(new Entity() - .addProperty(createPrimitive("PropertyInt16",(short) 1)) - .addProperty(createComplex("PropertyComp", - createPrimitive("PropertyInt16",(short) 11), - createPrimitive("PropertyString", "Num11") - )) - .addProperty(createComplex("PropertyCompComp", - createComplex("PropertyComp", - createPrimitive("PropertyInt16",(short) 111), - createPrimitive("PropertyString", "Num111") - ) - )) - ); - + .addProperty(createPrimitive("PropertyInt16", (short) 1)) + .addProperty(createComplex("PropertyComp", + createPrimitive("PropertyInt16", (short) 11), + createPrimitive("PropertyString", "Num11") + )) + .addProperty(createComplex("PropertyCompComp", + createComplex("PropertyComp", + createPrimitive("PropertyInt16", (short) 111), + createPrimitive("PropertyString", "Num111") + ) + )) + ); + setEntityType(entityCollection, edm.getEntityType(EntityTypeProvider.nameETFourKeyAlias)); createEntityId(edm, odata, "ESFourKeyAlias", entityCollection); @@ -171,114 +193,114 @@ public class DataCreator { private EntityCollection createESCompCollAllPrim(final Edm edm, final OData odata) { final EntityCollection entityCollection = new EntityCollection(); - + entityCollection.getEntities().add(createETCompCollAllPrim((short) 5678)); entityCollection.getEntities().add(createETCompCollAllPrim((short) 12326)); - + setEntityType(entityCollection, edm.getEntityType(EntityTypeProvider.nameETCompCollAllPrim)); createEntityId(edm, odata, "ESCompCollAllPrim", entityCollection); return entityCollection; } private Entity createETCompCollAllPrim(short propertyInt16) { - return new Entity() - .addProperty(createPrimitive("PropertyInt16", propertyInt16)) - .addProperty(createComplex("PropertyComp", - createPrimitiveCollection("CollPropertyString", - "[email protected]", - "[email protected]", - "[email protected]"), - createPrimitiveCollection("CollPropertyBoolean", - true, - false, - true), - createPrimitiveCollection("CollPropertyByte", - (short) 50, - (short) 200, - (short) 249), - createPrimitiveCollection("CollPropertySByte", - (byte) -120, - (byte) 120, - (byte) 126), - createPrimitiveCollection("CollPropertyInt16", - (short) 1000, - (short) 2000, - (short) 30112), - createPrimitiveCollection("CollPropertyInt32", - 23232323, - 11223355, - 10000001), - createPrimitiveCollection("CollPropertyInt64", - 929292929292L, - 333333333333L, - 444444444444L), - createPrimitiveCollection("CollPropertySingle", - (float) 1790, - (float) 26600, - (float) 3210), - createPrimitiveCollection("CollPropertyDouble", - -17900D, - -27800000D, - 3210D), - createPrimitiveCollection("CollPropertyDecimal", - BigDecimal.valueOf(12), - BigDecimal.valueOf(-2), - BigDecimal.valueOf(1234)), - createPrimitiveCollection("CollPropertyByte", - (short) 50, - (short) 200, - (short) 249), - createPrimitiveCollection("CollPropertyBinary", - new byte[] { -85, -51, -17 }, - new byte[] { 1, 35, 69 }, - new byte[] { 84, 103, -119 } - ), - createPrimitiveCollection("CollPropertyDate", - getDateTime(1958, 12, 3, 0, 0, 0), - getDateTime(1999, 8, 5, 0, 0, 0), - getDateTime(2013, 6, 25, 0, 0, 0) - ), - createPrimitiveCollection("CollPropertyDateTimeOffset", - getDateTime(2015, 8, 12, 3, 8, 34), - getDateTime(1970, 3, 28, 12, 11, 10), - getDateTime(1948, 2, 17, 9, 9, 9) - ), - createPrimitiveCollection("CollPropertyDuration", - getDuration(0, 0, 0, 13), - getDuration(0, 5, 28, 20), - getDuration(0, 1, 0, 0) - ), - createPrimitiveCollection("CollPropertyGuid", - UUID.fromString("ffffff67-89ab-cdef-0123-456789aaaaaa"), - UUID.fromString("eeeeee67-89ab-cdef-0123-456789bbbbbb"), - UUID.fromString("cccccc67-89ab-cdef-0123-456789cccccc") - ), - createPrimitiveCollection("CollPropertyTimeOfDay", - getTime(4, 14, 13), - getTime(23, 59, 59), - getTime(1, 12, 33) - ) - )); + return new Entity() + .addProperty(createPrimitive("PropertyInt16", propertyInt16)) + .addProperty(createComplex("PropertyComp", + createPrimitiveCollection("CollPropertyString", + "[email protected]", + "[email protected]", + "[email protected]"), + createPrimitiveCollection("CollPropertyBoolean", + true, + false, + true), + createPrimitiveCollection("CollPropertyByte", + (short) 50, + (short) 200, + (short) 249), + createPrimitiveCollection("CollPropertySByte", + (byte) -120, + (byte) 120, + (byte) 126), + createPrimitiveCollection("CollPropertyInt16", + (short) 1000, + (short) 2000, + (short) 30112), + createPrimitiveCollection("CollPropertyInt32", + 23232323, + 11223355, + 10000001), + createPrimitiveCollection("CollPropertyInt64", + 929292929292L, + 333333333333L, + 444444444444L), + createPrimitiveCollection("CollPropertySingle", + (float) 1790, + (float) 26600, + (float) 3210), + createPrimitiveCollection("CollPropertyDouble", + -17900D, + -27800000D, + 3210D), + createPrimitiveCollection("CollPropertyDecimal", + BigDecimal.valueOf(12), + BigDecimal.valueOf(-2), + BigDecimal.valueOf(1234)), + createPrimitiveCollection("CollPropertyByte", + (short) 50, + (short) 200, + (short) 249), + createPrimitiveCollection("CollPropertyBinary", + new byte[] { -85, -51, -17 }, + new byte[] { 1, 35, 69 }, + new byte[] { 84, 103, -119 } + ), + createPrimitiveCollection("CollPropertyDate", + getDateTime(1958, 12, 3, 0, 0, 0), + getDateTime(1999, 8, 5, 0, 0, 0), + getDateTime(2013, 6, 25, 0, 0, 0) + ), + createPrimitiveCollection("CollPropertyDateTimeOffset", + getDateTime(2015, 8, 12, 3, 8, 34), + getDateTime(1970, 3, 28, 12, 11, 10), + getDateTime(1948, 2, 17, 9, 9, 9) + ), + createPrimitiveCollection("CollPropertyDuration", + getDuration(0, 0, 0, 13), + getDuration(0, 5, 28, 20), + getDuration(0, 1, 0, 0) + ), + createPrimitiveCollection("CollPropertyGuid", + UUID.fromString("ffffff67-89ab-cdef-0123-456789aaaaaa"), + UUID.fromString("eeeeee67-89ab-cdef-0123-456789bbbbbb"), + UUID.fromString("cccccc67-89ab-cdef-0123-456789cccccc") + ), + createPrimitiveCollection("CollPropertyTimeOfDay", + getTime(4, 14, 13), + getTime(23, 59, 59), + getTime(1, 12, 33) + ) + )); } - + private EntityCollection createESBaseTwoKeyNav(final Edm edm, final OData odata) { final EntityCollection entityCollection = new EntityCollection(); entityCollection.getEntities().add( createESTwoKeyNavEntity((short) 1, "1") - .addProperty(createPrimitive("PropertyDate", getDateTime(2013, 12, 12, 0, 0, 0)))); - + .addProperty(createPrimitive("PropertyDate", getDateTime(2013, 12, 12, 0, 0, 0)))); + entityCollection.getEntities().add( createESTwoKeyNavEntity((short) 1, "2") - .addProperty(createPrimitive("PropertyDate", getDateTime(2013, 12, 12, 0, 0, 0)))); - + .addProperty(createPrimitive("PropertyDate", getDateTime(2013, 12, 12, 0, 0, 0)))); + entityCollection.getEntities().add( createESTwoKeyNavEntity((short) 2, "1") - .addProperty(createPrimitive("PropertyDate", getDateTime(2013, 12, 12, 0, 0, 0)))); - + .addProperty(createPrimitive("PropertyDate", getDateTime(2013, 12, 12, 0, 0, 0)))); + entityCollection.getEntities().add( createESTwoKeyNavEntity((short) 3, "1") - .addProperty(createPrimitive("PropertyDate", getDateTime(2013, 12, 12, 0, 0, 0)))); - + .addProperty(createPrimitive("PropertyDate", getDateTime(2013, 12, 12, 0, 0, 0)))); + setEntityType(entityCollection, edm.getEntityType(EntityTypeProvider.nameETBaseTwoKeyNav)); createEntityId(edm, odata, "ESBaseTwoKeyNav", entityCollection); @@ -288,19 +310,19 @@ public class DataCreator { private EntityCollection createESTwoBase(final Edm edm, final OData odata) { final EntityCollection entityCollection = new EntityCollection(); entityCollection.getEntities().add(new Entity() - .addProperty(createPrimitive("PropertyInt16",(short) 111)) + .addProperty(createPrimitive("PropertyInt16", (short) 111)) .addProperty(createPrimitive("PropertyString", "TEST A")) .addProperty(createPrimitive("AdditionalPropertyString_5", "TEST A 0815")) .addProperty(createPrimitive("AdditionalPropertyString_6", "TEST B 0815"))); entityCollection.getEntities().add(new Entity() - .addProperty(createPrimitive("PropertyInt16",(short) 222)) + .addProperty(createPrimitive("PropertyInt16", (short) 222)) .addProperty(createPrimitive("PropertyString", "TEST B")) .addProperty(createPrimitive("AdditionalPropertyString_5", "TEST C 0815")) .addProperty(createPrimitive("AdditionalPropertyString_6", "TEST D 0815"))); entityCollection.getEntities().add(new Entity() - .addProperty(createPrimitive("PropertyInt16",(short) 333)) + .addProperty(createPrimitive("PropertyInt16", (short) 333)) .addProperty(createPrimitive("PropertyString", "TEST C")) .addProperty(createPrimitive("AdditionalPropertyString_5", "TEST E 0815")) .addProperty(createPrimitive("AdditionalPropertyString_6", "TEST F 0815"))); @@ -315,89 +337,89 @@ public class DataCreator { final EntityCollection entityCollection = new EntityCollection(); entityCollection.getEntities().add( new Entity() - .addProperty(createPrimitive("PropertyKey",(short) 1)) - .addProperty(createPrimitive("PropertyInt16", null)) - .addProperty(createPrimitive("PropertyString", null)) - .addProperty(createPrimitive("PropertyBoolean", null)) - .addProperty(createPrimitive("PropertyByte", null)) - .addProperty(createPrimitive("PropertySByte", null)) - .addProperty(createPrimitive("PropertyInt32", null)) - .addProperty(createPrimitive("PropertyInt64", null)) - .addProperty(createPrimitive("PropertySingle", null)) - .addProperty(createPrimitive("PropertyDouble", null)) - .addProperty(createPrimitive("PropertyDecimal", null)) - .addProperty(createPrimitive("PropertyBinary", null)) - .addProperty(createPrimitive("PropertyDate", null)) - .addProperty(createPrimitive("PropertyDateTimeOffset", null)) - .addProperty(createPrimitive("PropertyDuration", null)) - .addProperty(createPrimitive("PropertyGuid", null)) - .addProperty(createPrimitive("PropertyTimeOfDay", null)) - .addProperty(createPrimitiveCollection("CollPropertyString", - "[email protected]", - null, - "[email protected]")) - .addProperty(createPrimitiveCollection("CollPropertyBoolean", - true, - null, - false)) - .addProperty(createPrimitiveCollection("CollPropertyByte", - (short) 50, - null, - (short) 249)) - .addProperty(createPrimitiveCollection("CollPropertySByte", - (byte) -120, - null, - (byte) 126)) - .addProperty(createPrimitiveCollection("CollPropertyInt16", - (short) 1000, - null, - (short) 30112)) - .addProperty(createPrimitiveCollection("CollPropertyInt32", - 23232323, - null, - 10000001)) - .addProperty(createPrimitiveCollection("CollPropertyInt64", - 929292929292L, - null, - 444444444444L)) - .addProperty(createPrimitiveCollection("CollPropertySingle", - (float) 1790, - null, - (float) 3210)) - .addProperty(createPrimitiveCollection("CollPropertyDouble", - -17900D, - null, - 3210D)) - .addProperty(createPrimitiveCollection("CollPropertyDecimal", - BigDecimal.valueOf(12), - null, - BigDecimal.valueOf(1234))) - .addProperty(createPrimitiveCollection("CollPropertyBinary", - new byte[] { -85, -51, -17 }, - null, - new byte[] { 84, 103, -119 } )) - .addProperty(createPrimitiveCollection("CollPropertyDate", - getDateTime(1958, 12, 3, 0, 0, 0), - null, - getDateTime(2013, 6, 25, 0, 0, 0))) - .addProperty(createPrimitiveCollection("CollPropertyDateTimeOffset", - getDateTime(2015, 8, 12, 3, 8, 34), - null, - getDateTime(1948, 2, 17, 9, 9, 9))) - .addProperty(createPrimitiveCollection("CollPropertyDuration", - getDuration(0, 0, 0, 13), - null, - getDuration(0, 1, 0, 0))) - .addProperty(createPrimitiveCollection("CollPropertyGuid", - UUID.fromString("ffffff67-89ab-cdef-0123-456789aaaaaa"), - null, - UUID.fromString("cccccc67-89ab-cdef-0123-456789cccccc"))) - .addProperty(createPrimitiveCollection("CollPropertyTimeOfDay", - getTime(4, 14, 13), - null, - getTime(0, 37, 13)) - )); - + .addProperty(createPrimitive("PropertyKey", (short) 1)) + .addProperty(createPrimitive("PropertyInt16", null)) + .addProperty(createPrimitive("PropertyString", null)) + .addProperty(createPrimitive("PropertyBoolean", null)) + .addProperty(createPrimitive("PropertyByte", null)) + .addProperty(createPrimitive("PropertySByte", null)) + .addProperty(createPrimitive("PropertyInt32", null)) + .addProperty(createPrimitive("PropertyInt64", null)) + .addProperty(createPrimitive("PropertySingle", null)) + .addProperty(createPrimitive("PropertyDouble", null)) + .addProperty(createPrimitive("PropertyDecimal", null)) + .addProperty(createPrimitive("PropertyBinary", null)) + .addProperty(createPrimitive("PropertyDate", null)) + .addProperty(createPrimitive("PropertyDateTimeOffset", null)) + .addProperty(createPrimitive("PropertyDuration", null)) + .addProperty(createPrimitive("PropertyGuid", null)) + .addProperty(createPrimitive("PropertyTimeOfDay", null)) + .addProperty(createPrimitiveCollection("CollPropertyString", + "[email protected]", + null, + "[email protected]")) + .addProperty(createPrimitiveCollection("CollPropertyBoolean", + true, + null, + false)) + .addProperty(createPrimitiveCollection("CollPropertyByte", + (short) 50, + null, + (short) 249)) + .addProperty(createPrimitiveCollection("CollPropertySByte", + (byte) -120, + null, + (byte) 126)) + .addProperty(createPrimitiveCollection("CollPropertyInt16", + (short) 1000, + null, + (short) 30112)) + .addProperty(createPrimitiveCollection("CollPropertyInt32", + 23232323, + null, + 10000001)) + .addProperty(createPrimitiveCollection("CollPropertyInt64", + 929292929292L, + null, + 444444444444L)) + .addProperty(createPrimitiveCollection("CollPropertySingle", + (float) 1790, + null, + (float) 3210)) + .addProperty(createPrimitiveCollection("CollPropertyDouble", + -17900D, + null, + 3210D)) + .addProperty(createPrimitiveCollection("CollPropertyDecimal", + BigDecimal.valueOf(12), + null, + BigDecimal.valueOf(1234))) + .addProperty(createPrimitiveCollection("CollPropertyBinary", + new byte[] { -85, -51, -17 }, + null, + new byte[] { 84, 103, -119 })) + .addProperty(createPrimitiveCollection("CollPropertyDate", + getDateTime(1958, 12, 3, 0, 0, 0), + null, + getDateTime(2013, 6, 25, 0, 0, 0))) + .addProperty(createPrimitiveCollection("CollPropertyDateTimeOffset", + getDateTime(2015, 8, 12, 3, 8, 34), + null, + getDateTime(1948, 2, 17, 9, 9, 9))) + .addProperty(createPrimitiveCollection("CollPropertyDuration", + getDuration(0, 0, 0, 13), + null, + getDuration(0, 1, 0, 0))) + .addProperty(createPrimitiveCollection("CollPropertyGuid", + UUID.fromString("ffffff67-89ab-cdef-0123-456789aaaaaa"), + null, + UUID.fromString("cccccc67-89ab-cdef-0123-456789cccccc"))) + .addProperty(createPrimitiveCollection("CollPropertyTimeOfDay", + getTime(4, 14, 13), + null, + getTime(0, 37, 13)) + )); + setEntityType(entityCollection, edm.getEntityType(EntityTypeProvider.nameETAllNullable)); createEntityId(edm, odata, "ESAllNullable", entityCollection); return entityCollection; @@ -456,36 +478,36 @@ public class DataCreator { @SuppressWarnings("unchecked") private Entity createETKeyNavEntity(final short propertyInt16, final String propertyString) { return new Entity() - .addProperty(createPrimitive("PropertyInt16", propertyInt16)) + .addProperty(createPrimitive("PropertyInt16", propertyInt16)) .addProperty(createPrimitive("PropertyString", propertyString)) - .addProperty(createComplex("PropertyCompNav", + .addProperty(createComplex("PropertyCompNav", createPrimitive("PropertyInt16", 1))) .addProperty(createKeyNavAllPrimComplexValue("PropertyCompAllPrim")) - .addProperty(createComplex("PropertyCompTwoPrim", - createPrimitive("PropertyInt16",(short) 16), + .addProperty(createComplex("PropertyCompTwoPrim", + createPrimitive("PropertyInt16", (short) 16), createPrimitive("PropertyString", "Test123"))) - .addProperty(createPrimitiveCollection("CollPropertyString", - "[email protected]", + .addProperty(createPrimitiveCollection("CollPropertyString", + "[email protected]", "[email protected]", "[email protected]")) - .addProperty(createPrimitiveCollection("CollPropertyInt16", - (short) 1000, - (short) 2000, + .addProperty(createPrimitiveCollection("CollPropertyInt16", + (short) 1000, + (short) 2000, (short) 30112)) .addProperty(createComplexCollection("CollPropertyComp", Arrays.asList( - createPrimitive("PropertyInt16",(short) 1), + createPrimitive("PropertyInt16", (short) 1), createKeyNavAllPrimComplexValue("PropertyComp")), Arrays.asList( - createPrimitive("PropertyInt16",(short) 2), + createPrimitive("PropertyInt16", (short) 2), createKeyNavAllPrimComplexValue("PropertyComp")), Arrays.asList( - createPrimitive("PropertyInt16",(short) 3), + createPrimitive("PropertyInt16", (short) 3), createKeyNavAllPrimComplexValue("PropertyComp")))) - .addProperty(createComplex("PropertyCompCompNav", - createPrimitive("PropertyString", "1"), - createComplex("PropertyCompNav", - createPrimitive("PropertyInt16",(short) 1)))); + .addProperty(createComplex("PropertyCompCompNav", + createPrimitive("PropertyString", "1"), + createComplex("PropertyCompNav", + createPrimitive("PropertyInt16", (short) 1)))); } private EntityCollection createESTwoKeyNav(final Edm edm, final OData odata) { @@ -507,50 +529,50 @@ public class DataCreator { return new Entity() .addProperty(createPrimitive("PropertyInt16", propertyInt16)) .addProperty(createPrimitive("PropertyString", propertyString)) - .addProperty(createComplex("PropertyComp", + .addProperty(createComplex("PropertyComp", createPrimitive("PropertyInt16", 11), - createComplex("PropertyComp", + createComplex("PropertyComp", createPrimitive("PropertyString", "StringValue"), createPrimitive("PropertyBinary", new byte[] { 1, 35, 69, 103, -119, -85, -51, -17 }), - createPrimitive("PropertyBoolean", true), + createPrimitive("PropertyBoolean", true), createPrimitive("PropertyByte", (short) 255), createPrimitive("PropertyDate", getDateTime(2012, 12, 3, 7, 16, 23)), - createPrimitive("PropertyDecimal", BigDecimal.valueOf(34)), + createPrimitive("PropertyDecimal", BigDecimal.valueOf(34)), createPrimitive("PropertySingle", (float) 179000000000000000000D), - createPrimitive("PropertyDouble", -179000000000000000000D), + createPrimitive("PropertyDouble", -179000000000000000000D), createPrimitive("PropertyDuration", BigDecimal.valueOf(6)), createPrimitive("PropertyGuid", UUID.fromString("01234567-89ab-cdef-0123-456789abcdef")), createPrimitive("PropertyInt16", Short.MAX_VALUE), createPrimitive("PropertyInt32", Integer.MAX_VALUE), - createPrimitive("PropertyInt64", Long.MAX_VALUE), + createPrimitive("PropertyInt64", Long.MAX_VALUE), createPrimitive("PropertySByte", Byte.MAX_VALUE), createPrimitive("PropertyTimeOfDay", getTime(21, 5, 59))))) - .addProperty(createComplex("PropertyCompNav", + .addProperty(createComplex("PropertyCompNav", createPrimitive("PropertyInt16", (short) 1), createKeyNavAllPrimComplexValue("PropertyComp"))) .addProperty(createComplexCollection("CollPropertyComp")) - .addProperty(createComplexCollection("CollPropertyCompNav", + .addProperty(createComplexCollection("CollPropertyCompNav", Arrays.asList( createPrimitive("PropertyInt16", (short) 1)))) - .addProperty(createPrimitiveCollection("CollPropertyString", - "1", + .addProperty(createPrimitiveCollection("CollPropertyString", + "1", "2")) - .addProperty(createComplex("PropertyCompTwoPrim", - createPrimitive("PropertyInt16", (short) 11), + .addProperty(createComplex("PropertyCompTwoPrim", + createPrimitive("PropertyInt16", (short) 11), createPrimitive("PropertyString", "11"))); } protected Property createKeyNavAllPrimComplexValue(final String name) { - return createComplex(name, + return createComplex(name, createPrimitive("PropertyString", "First Resource - positive values"), createPrimitive("PropertyBinary", new byte[] { 1, 35, 69, 103, -119, -85, -51, -17 }), - createPrimitive("PropertyBoolean", true), + createPrimitive("PropertyBoolean", true), createPrimitive("PropertyByte", (short) 255), createPrimitive("PropertyDate", getDateTime(2012, 12, 3, 7, 16, 23)), createPrimitive("PropertyDateTimeOffset", getTimestamp(2012, 12, 3, 7, 16, 23, 0)), - createPrimitive("PropertyDecimal", 34), + createPrimitive("PropertyDecimal", 34), createPrimitive("PropertySingle", (float) 179000000000000000000D), - createPrimitive("PropertyDouble", -179000000000000000000D), + createPrimitive("PropertyDouble", -179000000000000000000D), createPrimitive("PropertyDuration", BigDecimal.valueOf(6)), createPrimitive("PropertyGuid", UUID.fromString("01234567-89ab-cdef-0123-456789abcdef")), createPrimitive("PropertyInt16", Short.MAX_VALUE), createPrimitive("PropertyInt32", Integer.MAX_VALUE), @@ -563,32 +585,32 @@ public class DataCreator { final EntityCollection entityCollection = new EntityCollection(); entityCollection.getEntities().add(new Entity() - .addProperty(createPrimitive("PropertyInt16", Short.MAX_VALUE)) - .addProperty(createComplex("PropertyComp", - createComplexCollection("CollPropertyComp", - Arrays.asList( - createPrimitive("PropertyInt16",(short) 555), - createPrimitive("PropertyString", "1 Test Complex in Complex Property")), - Arrays.asList( - createPrimitive("PropertyInt16",(short) 666), - createPrimitive("PropertyString", "2 Test Complex in Complex Property")), - Arrays.asList( - createPrimitive("PropertyInt16",(short) 777), - createPrimitive("PropertyString", "3 Test Complex in Complex Property")))))); + .addProperty(createPrimitive("PropertyInt16", Short.MAX_VALUE)) + .addProperty(createComplex("PropertyComp", + createComplexCollection("CollPropertyComp", + Arrays.asList( + createPrimitive("PropertyInt16", (short) 555), + createPrimitive("PropertyString", "1 Test Complex in Complex Property")), + Arrays.asList( + createPrimitive("PropertyInt16", (short) 666), + createPrimitive("PropertyString", "2 Test Complex in Complex Property")), + Arrays.asList( + createPrimitive("PropertyInt16", (short) 777), + createPrimitive("PropertyString", "3 Test Complex in Complex Property")))))); entityCollection.getEntities().add(new Entity() - .addProperty(createPrimitive("PropertyInt16", 12345)) - .addProperty(createComplex("PropertyComp", - createComplexCollection("CollPropertyComp", - Arrays.asList( - createPrimitive("PropertyInt16",(short) 888), - createPrimitive("PropertyString", "11 Test Complex in Complex Property")), - Arrays.asList( - createPrimitive("PropertyInt16",(short) 999), - createPrimitive("PropertyString", "12 Test Complex in Complex Property")), - Arrays.asList( - createPrimitive("PropertyInt16",(short) 0), - createPrimitive("PropertyString", "13 Test Complex in Complex Property")))))); + .addProperty(createPrimitive("PropertyInt16", 12345)) + .addProperty(createComplex("PropertyComp", + createComplexCollection("CollPropertyComp", + Arrays.asList( + createPrimitive("PropertyInt16", (short) 888), + createPrimitive("PropertyString", "11 Test Complex in Complex Property")), + Arrays.asList( + createPrimitive("PropertyInt16", (short) 999), + createPrimitive("PropertyString", "12 Test Complex in Complex Property")), + Arrays.asList( + createPrimitive("PropertyInt16", (short) 0), + createPrimitive("PropertyString", "13 Test Complex in Complex Property")))))); setEntityType(entityCollection, edm.getEntityType(EntityTypeProvider.nameETCompCollComp)); createEntityId(edm, odata, "ESCompCollComp", entityCollection); @@ -600,20 +622,20 @@ public class DataCreator { EntityCollection entityCollection = new EntityCollection(); entityCollection.getEntities().add(new Entity() - .addProperty(createPrimitive("PropertyInt16", (short) 32766)) - .addProperty(createPrimitive("PropertyString", "Test String1"))); + .addProperty(createPrimitive("PropertyInt16", (short) 32766)) + .addProperty(createPrimitive("PropertyString", "Test String1"))); entityCollection.getEntities().add(new Entity() - .addProperty(createPrimitive("PropertyInt16", (short) -365)) - .addProperty(createPrimitive("PropertyString", "Test String2"))); + .addProperty(createPrimitive("PropertyInt16", (short) -365)) + .addProperty(createPrimitive("PropertyString", "Test String2"))); entityCollection.getEntities().add(new Entity() - .addProperty(createPrimitive("PropertyInt16", (short) -32766)) - .addProperty(createPrimitive("PropertyString", null))); + .addProperty(createPrimitive("PropertyInt16", (short) -32766)) + .addProperty(createPrimitive("PropertyString", null))); entityCollection.getEntities().add(new Entity() - .addProperty(createPrimitive("PropertyInt16", Short.MAX_VALUE)) - .addProperty(createPrimitive("PropertyString", "Test String4"))); + .addProperty(createPrimitive("PropertyInt16", Short.MAX_VALUE)) + .addProperty(createPrimitive("PropertyString", "Test String4"))); setEntityType(entityCollection, edm.getEntityType(EntityTypeProvider.nameETTwoPrim)); createEntityId(edm, odata, "ESTwoPrim", entityCollection); @@ -630,26 +652,26 @@ public class DataCreator { EntityCollection entityCollection = new EntityCollection(); entityCollection.getEntities().add(new Entity() - .addProperty(createPrimitive("PropertyInt16", Short.MAX_VALUE)) - .addProperty(createPrimitive("PropertyString", "First Resource - positive values")) - .addProperty(createPrimitive("PropertyBoolean", true)) - .addProperty(createPrimitive("PropertyByte", (short) 255)) - .addProperty(createPrimitive("PropertySByte", Byte.MAX_VALUE)) - .addProperty(createPrimitive("PropertyInt32", Integer.MAX_VALUE)) - .addProperty(createPrimitive("PropertyInt64", Long.MAX_VALUE)) - .addProperty(createPrimitive("PropertySingle", (float) 1.79000000E+20)) - .addProperty(createPrimitive("PropertyDouble", -1.7900000000000000E+19)) - .addProperty(createPrimitive("PropertyDecimal", BigDecimal.valueOf(34))) - .addProperty(createPrimitive("PropertyBinary", - new byte[] { 0x01, 0x23, 0x45, 0x67, (byte) 0x89, (byte) 0xAB, (byte) 0xCD, (byte) 0xEF })) - .addProperty(createPrimitive("PropertyDate", getDateTime(2012, 12, 3, 0, 0, 0))) - .addProperty(createPrimitive("PropertyDateTimeOffset", getDateTime(2012, 12, 3, 7, 16, 23))) - .addProperty(createPrimitive("PropertyDuration", BigDecimal.valueOf(6))) - .addProperty(createPrimitive("PropertyGuid", GUID)) - .addProperty(createPrimitive("PropertyTimeOfDay", getTime(3, 26, 5)))); + .addProperty(createPrimitive("PropertyInt16", Short.MAX_VALUE)) + .addProperty(createPrimitive("PropertyString", "First Resource - positive values")) + .addProperty(createPrimitive("PropertyBoolean", true)) + .addProperty(createPrimitive("PropertyByte", (short) 255)) + .addProperty(createPrimitive("PropertySByte", Byte.MAX_VALUE)) + .addProperty(createPrimitive("PropertyInt32", Integer.MAX_VALUE)) + .addProperty(createPrimitive("PropertyInt64", Long.MAX_VALUE)) + .addProperty(createPrimitive("PropertySingle", (float) 1.79000000E+20)) + .addProperty(createPrimitive("PropertyDouble", -1.7900000000000000E+19)) + .addProperty(createPrimitive("PropertyDecimal", BigDecimal.valueOf(34))) + .addProperty(createPrimitive("PropertyBinary", + new byte[] { 0x01, 0x23, 0x45, 0x67, (byte) 0x89, (byte) 0xAB, (byte) 0xCD, (byte) 0xEF })) + .addProperty(createPrimitive("PropertyDate", getDateTime(2012, 12, 3, 0, 0, 0))) + .addProperty(createPrimitive("PropertyDateTimeOffset", getDateTime(2012, 12, 3, 7, 16, 23))) + .addProperty(createPrimitive("PropertyDuration", BigDecimal.valueOf(6))) + .addProperty(createPrimitive("PropertyGuid", GUID)) + .addProperty(createPrimitive("PropertyTimeOfDay", getTime(3, 26, 5)))); entityCollection.getEntities().add(new Entity() - .addProperty(createPrimitive("PropertyInt16", Short.MIN_VALUE)) + .addProperty(createPrimitive("PropertyInt16", Short.MIN_VALUE)) .addProperty(createPrimitive("PropertyString", "Second Resource - negative values")) .addProperty(createPrimitive("PropertyBoolean", false)) .addProperty(createPrimitive("PropertyByte", (short) 0)) @@ -668,7 +690,7 @@ public class DataCreator { .addProperty(createPrimitive("PropertyTimeOfDay", getTime(23, 49, 14)))); entityCollection.getEntities().add(new Entity() - .addProperty(createPrimitive("PropertyInt16", (short) 0)) + .addProperty(createPrimitive("PropertyInt16", (short) 0)) .addProperty(createPrimitive("PropertyString", "")) .addProperty(createPrimitive("PropertyBoolean", false)) .addProperty(createPrimitive("PropertyByte", (short) 0)) @@ -695,93 +717,93 @@ public class DataCreator { EntityCollection entityCollection = new EntityCollection(); Entity entity = new Entity() - .addProperty(createPrimitive("PropertyInt16", Short.MAX_VALUE)) - .addProperty(createComplex("PropertyComp", - createPrimitive("PropertyString", "First Resource - first"), - createPrimitive("PropertyBinary", - new byte[] { 0x01, 0x23, 0x45, 0x67, (byte) 0x89, (byte) 0xAB, (byte) 0xCD, (byte) 0xEF }), - createPrimitive("PropertyBoolean", true), - createPrimitive("PropertyByte", (short) 255), - createPrimitive("PropertyDate", getDateTime(2012, 10, 3, 0, 0, 0)), - createPrimitive("PropertyDateTimeOffset", getTimestamp(2012, 10, 3, 7, 16, 23, 123456700)), - createPrimitive("PropertyDecimal", BigDecimal.valueOf(34.27)), - createPrimitive("PropertySingle", (float) 1.79000000E+20), - createPrimitive("PropertyDouble", -1.7900000000000000E+19), - createPrimitive("PropertyDuration", BigDecimal.valueOf(6)), - createPrimitive("PropertyGuid", GUID), - createPrimitive("PropertyInt16", Short.MAX_VALUE), - createPrimitive("PropertyInt32", Integer.MAX_VALUE), - createPrimitive("PropertyInt64", Long.MAX_VALUE), - createPrimitive("PropertySByte", Byte.MAX_VALUE), - createPrimitive("PropertyTimeOfDay", getTime(1, 0, 1)))); + .addProperty(createPrimitive("PropertyInt16", Short.MAX_VALUE)) + .addProperty(createComplex("PropertyComp", + createPrimitive("PropertyString", "First Resource - first"), + createPrimitive("PropertyBinary", + new byte[] { 0x01, 0x23, 0x45, 0x67, (byte) 0x89, (byte) 0xAB, (byte) 0xCD, (byte) 0xEF }), + createPrimitive("PropertyBoolean", true), + createPrimitive("PropertyByte", (short) 255), + createPrimitive("PropertyDate", getDateTime(2012, 10, 3, 0, 0, 0)), + createPrimitive("PropertyDateTimeOffset", getTimestamp(2012, 10, 3, 7, 16, 23, 123456700)), + createPrimitive("PropertyDecimal", BigDecimal.valueOf(34.27)), + createPrimitive("PropertySingle", (float) 1.79000000E+20), + createPrimitive("PropertyDouble", -1.7900000000000000E+19), + createPrimitive("PropertyDuration", BigDecimal.valueOf(6)), + createPrimitive("PropertyGuid", GUID), + createPrimitive("PropertyInt16", Short.MAX_VALUE), + createPrimitive("PropertyInt32", Integer.MAX_VALUE), + createPrimitive("PropertyInt64", Long.MAX_VALUE), + createPrimitive("PropertySByte", Byte.MAX_VALUE), + createPrimitive("PropertyTimeOfDay", getTime(1, 0, 1)))); entity.setETag("W/\"" + Short.MAX_VALUE + '\"'); entityCollection.getEntities().add(entity); entity = new Entity() - .addProperty(createPrimitive("PropertyInt16",(short) 7)) - .addProperty(createComplex("PropertyComp", - createPrimitive("PropertyString", "Second Resource - second"), - createPrimitive("PropertyBinary", - new byte[] { 0x01, 0x23, 0x45, 0x67, (byte) 0x89, (byte) 0xAB, (byte) 0xCD, (byte) 0xEF }), - createPrimitive("PropertyBoolean", true), - createPrimitive("PropertyByte", (short) 255), - createPrimitive("PropertyDate", getDateTime(2013, 11, 4, 0, 0, 0)), - createPrimitive("PropertyDateTimeOffset", getDateTime(2013, 11, 4, 7, 16, 23)), - createPrimitive("PropertyDecimal", BigDecimal.valueOf(34.27)), - createPrimitive("PropertySingle", (float) 1.79000000E+20), - createPrimitive("PropertyDouble", -1.7900000000000000E+02), - createPrimitive("PropertyDuration", BigDecimal.valueOf(6)), - createPrimitive("PropertyGuid", GUID), - createPrimitive("PropertyInt16", (short) 25), - createPrimitive("PropertyInt32", Integer.MAX_VALUE), - createPrimitive("PropertyInt64", Long.MAX_VALUE), - createPrimitive("PropertySByte", Byte.MAX_VALUE), - createPrimitive("PropertyTimeOfDay", getTimestamp(1, 1, 1, 7, 45, 12, 765432100)))); + .addProperty(createPrimitive("PropertyInt16", (short) 7)) + .addProperty(createComplex("PropertyComp", + createPrimitive("PropertyString", "Second Resource - second"), + createPrimitive("PropertyBinary", + new byte[] { 0x01, 0x23, 0x45, 0x67, (byte) 0x89, (byte) 0xAB, (byte) 0xCD, (byte) 0xEF }), + createPrimitive("PropertyBoolean", true), + createPrimitive("PropertyByte", (short) 255), + createPrimitive("PropertyDate", getDateTime(2013, 11, 4, 0, 0, 0)), + createPrimitive("PropertyDateTimeOffset", getDateTime(2013, 11, 4, 7, 16, 23)), + createPrimitive("PropertyDecimal", BigDecimal.valueOf(34.27)), + createPrimitive("PropertySingle", (float) 1.79000000E+20), + createPrimitive("PropertyDouble", -1.7900000000000000E+02), + createPrimitive("PropertyDuration", BigDecimal.valueOf(6)), + createPrimitive("PropertyGuid", GUID), + createPrimitive("PropertyInt16", (short) 25), + createPrimitive("PropertyInt32", Integer.MAX_VALUE), + createPrimitive("PropertyInt64", Long.MAX_VALUE), + createPrimitive("PropertySByte", Byte.MAX_VALUE), + createPrimitive("PropertyTimeOfDay", getTimestamp(1, 1, 1, 7, 45, 12, 765432100)))); entity.setETag("W/\"7\""); entityCollection.getEntities().add(entity); entity = new Entity() - .addProperty(createPrimitive("PropertyInt16", (short) 0)) - .addProperty(createComplex("PropertyComp", - createPrimitive("PropertyString", "Third Resource - third"), - createPrimitive("PropertyBinary", - new byte[] { 0x01, 0x23, 0x45, 0x67, (byte) 0x89, (byte) 0xAB, (byte) 0xCD, (byte) 0xEF }), - createPrimitive("PropertyBoolean", true), - createPrimitive("PropertyByte", (short) 255), - createPrimitive("PropertyDate", getDateTime(2014, 12, 5, 0, 0, 0)), - createPrimitive("PropertyDateTimeOffset", getTimestamp(2014, 12, 5, 8, 17, 45, 123456700)), - createPrimitive("PropertyDecimal", BigDecimal.valueOf(17.98)), - createPrimitive("PropertySingle", 1.79000000E+20), - createPrimitive("PropertyDouble", -1.7900000000000000E+02), - createPrimitive("PropertyDuration", BigDecimal.valueOf(6)), - createPrimitive("PropertyGuid", GUID), - createPrimitive("PropertyInt16", (short) -25), - createPrimitive("PropertyInt32", Integer.MAX_VALUE), - createPrimitive("PropertyInt64", Long.MAX_VALUE), - createPrimitive("PropertySByte", Byte.MAX_VALUE), - createPrimitive("PropertyTimeOfDay", getTime(13, 27, 45)))); + .addProperty(createPrimitive("PropertyInt16", (short) 0)) + .addProperty(createComplex("PropertyComp", + createPrimitive("PropertyString", "Third Resource - third"), + createPrimitive("PropertyBinary", + new byte[] { 0x01, 0x23, 0x45, 0x67, (byte) 0x89, (byte) 0xAB, (byte) 0xCD, (byte) 0xEF }), + createPrimitive("PropertyBoolean", true), + createPrimitive("PropertyByte", (short) 255), + createPrimitive("PropertyDate", getDateTime(2014, 12, 5, 0, 0, 0)), + createPrimitive("PropertyDateTimeOffset", getTimestamp(2014, 12, 5, 8, 17, 45, 123456700)), + createPrimitive("PropertyDecimal", BigDecimal.valueOf(17.98)), + createPrimitive("PropertySingle", 1.79000000E+20), + createPrimitive("PropertyDouble", -1.7900000000000000E+02), + createPrimitive("PropertyDuration", BigDecimal.valueOf(6)), + createPrimitive("PropertyGuid", GUID), + createPrimitive("PropertyInt16", (short) -25), + createPrimitive("PropertyInt32", Integer.MAX_VALUE), + createPrimitive("PropertyInt64", Long.MAX_VALUE), + createPrimitive("PropertySByte", Byte.MAX_VALUE), + createPrimitive("PropertyTimeOfDay", getTime(13, 27, 45)))); entity.setETag("W/\"0\""); entityCollection.getEntities().add(entity); - + entity = new Entity() - .addProperty(createPrimitive("PropertyInt16", (short) -32768)) - .addProperty(createComplex("PropertyComp", - createPrimitive("PropertyString", null), - createPrimitive("PropertyBinary", null), - createPrimitive("PropertyBoolean", null), - createPrimitive("PropertyByte", null), - createPrimitive("PropertyDate", null), - createPrimitive("PropertyDateTimeOffset", null), - createPrimitive("PropertyDecimal", null), - createPrimitive("PropertySingle", null), - createPrimitive("PropertyDouble", null), - createPrimitive("PropertyDuration", null), - createPrimitive("PropertyGuid", null), - createPrimitive("PropertyInt16", null), - createPrimitive("PropertyInt32", null), - createPrimitive("PropertyInt64", null), - createPrimitive("PropertySByte", null), - createPrimitive("PropertyTimeOfDay", null))); + .addProperty(createPrimitive("PropertyInt16", (short) -32768)) + .addProperty(createComplex("PropertyComp", + createPrimitive("PropertyString", null), + createPrimitive("PropertyBinary", null), + createPrimitive("PropertyBoolean", null), + createPrimitive("PropertyByte", null), + createPrimitive("PropertyDate", null), + createPrimitive("PropertyDateTimeOffset", null), + createPrimitive("PropertyDecimal", null), + createPrimitive("PropertySingle", null), + createPrimitive("PropertyDouble", null), + createPrimitive("PropertyDuration", null), + createPrimitive("PropertyGuid", null), + createPrimitive("PropertyInt16", null), + createPrimitive("PropertyInt32", null), + createPrimitive("PropertyInt64", null), + createPrimitive("PropertySByte", null), + createPrimitive("PropertyTimeOfDay", null))); entity.setETag("W/\"-32768\""); entityCollection.getEntities().add(entity); @@ -803,73 +825,73 @@ public class DataCreator { return entityCollection; } - + private Entity createETCollAllPrim(final Short propertyInt16) { - return new Entity() - .addProperty(createPrimitive("PropertyInt16", propertyInt16)) - .addProperty(createPrimitiveCollection("CollPropertyString", - "[email protected]", - "[email protected]", - "[email protected]")) - .addProperty(createPrimitiveCollection("CollPropertyBoolean", - true, - false, - true)) - .addProperty(createPrimitiveCollection("CollPropertyByte", - (short) 50, - (short) 200, - (short) 249)) - .addProperty(createPrimitiveCollection("CollPropertySByte", - -120, - 120, - 126)) - .addProperty(createPrimitiveCollection("CollPropertyInt16", - (short) 1000, - (short) 2000, - (short) 30112)) - .addProperty(createPrimitiveCollection("CollPropertyInt32", - 23232323, - 11223355, - 10000001)) - .addProperty(createPrimitiveCollection("CollPropertyInt64", - 929292929292L, - 333333333333L, - 444444444444L)) - .addProperty(createPrimitiveCollection("CollPropertySingle", - 1.79000000E+03, - 2.66000000E+04, - 3.21000000E+03)) - .addProperty(createPrimitiveCollection("CollPropertyDouble", - -1.7900000000000000E+04, - -2.7800000000000000E+07, - 3.2100000000000000E+03)) - .addProperty(createPrimitiveCollection("CollPropertyDecimal", - BigDecimal.valueOf(12), - BigDecimal.valueOf(-2), + return new Entity() + .addProperty(createPrimitive("PropertyInt16", propertyInt16)) + .addProperty(createPrimitiveCollection("CollPropertyString", + "[email protected]", + "[email protected]", + "[email protected]")) + .addProperty(createPrimitiveCollection("CollPropertyBoolean", + true, + false, + true)) + .addProperty(createPrimitiveCollection("CollPropertyByte", + (short) 50, + (short) 200, + (short) 249)) + .addProperty(createPrimitiveCollection("CollPropertySByte", + -120, + 120, + 126)) + .addProperty(createPrimitiveCollection("CollPropertyInt16", + (short) 1000, + (short) 2000, + (short) 30112)) + .addProperty(createPrimitiveCollection("CollPropertyInt32", + 23232323, + 11223355, + 10000001)) + .addProperty(createPrimitiveCollection("CollPropertyInt64", + 929292929292L, + 333333333333L, + 444444444444L)) + .addProperty(createPrimitiveCollection("CollPropertySingle", + 1.79000000E+03, + 2.66000000E+04, + 3.21000000E+03)) + .addProperty(createPrimitiveCollection("CollPropertyDouble", + -1.7900000000000000E+04, + -2.7800000000000000E+07, + 3.2100000000000000E+03)) + .addProperty(createPrimitiveCollection("CollPropertyDecimal", + BigDecimal.valueOf(12), + BigDecimal.valueOf(-2), BigDecimal.valueOf(1234))) - .addProperty(createPrimitiveCollection("CollPropertyBinary", - new byte[] { (byte) 0xAB, (byte) 0xCD, (byte) 0xEF }, - new byte[] { 0x01, 0x23, 0x45 }, + .addProperty(createPrimitiveCollection("CollPropertyBinary", + new byte[] { (byte) 0xAB, (byte) 0xCD, (byte) 0xEF }, + new byte[] { 0x01, 0x23, 0x45 }, new byte[] { 0x54, 0x67, (byte) 0x89 })) - .addProperty(createPrimitiveCollection("CollPropertyDate", - getDateTime(1958, 12, 3, 0, 0, 0), - getDateTime(1999, 8, 5, 0, 0, 0), + .addProperty(createPrimitiveCollection("CollPropertyDate", + getDateTime(1958, 12, 3, 0, 0, 0), + getDateTime(1999, 8, 5, 0, 0, 0), getDateTime(2013, 6, 25, 0, 0, 0))) - .addProperty(createPrimitiveCollection("CollPropertyDateTimeOffset", - getDateTime(2015, 8, 12, 3, 8, 34), - getDateTime(1970, 3, 28, 12, 11, 10), + .addProperty(createPrimitiveCollection("CollPropertyDateTimeOffset", + getDateTime(2015, 8, 12, 3, 8, 34), + getDateTime(1970, 3, 28, 12, 11, 10), getDateTime(1948, 2, 17, 9, 9, 9))) - .addProperty(createPrimitiveCollection("CollPropertyDuration", - BigDecimal.valueOf(13), - BigDecimal.valueOf(19680), - BigDecimal.valueOf(3600))) - .addProperty(createPrimitiveCollection("CollPropertyGuid", - UUID.fromString("ffffff67-89ab-cdef-0123-456789aaaaaa"), + .addProperty(createPrimitiveCollection("CollPropertyDuration", + BigDecimal.valueOf(13), + BigDecimal.valueOf(19680), + BigDecimal.valueOf(3600))) + .addProperty(createPrimitiveCollection("CollPropertyGuid", + UUID.fromString("ffffff67-89ab-cdef-0123-456789aaaaaa"), UUID.fromString("eeeeee67-89ab-cdef-0123-456789bbbbbb"), UUID.fromString("cccccc67-89ab-cdef-0123-456789cccccc"))) - .addProperty(createPrimitiveCollection("CollPropertyTimeOfDay", - getTime(4, 14, 13), - getTime(23, 59, 59), + .addProperty(createPrimitiveCollection("CollPropertyTimeOfDay", + getTime(4, 14, 13), + getTime(23, 59, 59), getTime(1, 12, 33))); } @@ -877,63 +899,63 @@ public class DataCreator { EntityCollection entityCollection = new EntityCollection(); entityCollection.getEntities().add(new Entity() - .addProperty(createPrimitive("PropertyInt16", Short.MAX_VALUE)) - .addProperty(createPrimitiveCollection("CollPropertyString", - "[email protected]", - "[email protected]", + .addProperty(createPrimitive("PropertyInt16", Short.MAX_VALUE)) + .addProperty(createPrimitiveCollection("CollPropertyString", + "[email protected]", + "[email protected]", "[email protected]")) - .addProperty(createComplex("PropertyComp", - createPrimitive("PropertyInt16", (short) 111), + .addProperty(createComplex("PropertyComp", + createPrimitive("PropertyInt16", (short) 111), createPrimitive("PropertyString", "TEST A"))) .addProperty(createColPropertyComp())); entityCollection.getEntities().add(new Entity() - .addProperty(createPrimitive("PropertyInt16", (short) 7)) - .addProperty(createPrimitiveCollection("CollPropertyString", - "[email protected]", - "[email protected]", - "[email protected]")) - .addProperty(createComplex("PropertyComp", - createPrimitive("PropertyInt16", (short) 222), - createPrimitive("PropertyString", "TEST B"))) - .addProperty(createColPropertyComp())); + .addProperty(createPrimitive("PropertyInt16", (short) 7)) + .addProperty(createPrimitiveCollection("CollPropertyString", + "[email protected]", + "[email protected]", + "[email protected]")) + .addProperty(createComplex("PropertyComp", + createPrimitive("PropertyInt16", (short) 222), + createPrimitive("PropertyString", "TEST B"))) + .addProperty(createColPropertyComp())); entityCollection.getEntities().add(new Entity() - .addProperty(createPrimitive("PropertyInt16", (short)0)) - .addProperty(createPrimitiveCollection("CollPropertyString", - "[email protected]", - "[email protected]", - "[email protected]")) - .addProperty(createComplex("PropertyComp", - createPrimitive("PropertyInt16", (short) 333), - createPrimitive("PropertyString", "TEST C"))) - .addProperty(createColPropertyComp())); + .addProperty(createPrimitive("PropertyInt16", (short) 0)) + .addProperty(createPrimitiveCollection("CollPropertyString", + "[email protected]", + "[email protected]", + "[email protected]")) + .addProperty(createComplex("PropertyComp", + createPrimitive("PropertyInt16", (short) 333), + createPrimitive("PropertyString", "TEST C"))) + .addProperty(createColPropertyComp())); setEntityType(entityCollection, edm.getEntityType(EntityTypeProvider.nameETMixPrimCollComp)); createEntityId(edm, odata, "ESMixPrimCollComp", entityCollection); - + return entityCollection; } - - @SuppressWarnings("unchecked") - private Property createColPropertyComp() { - return createComplexCollection("CollPropertyComp", - Arrays.asList( - createPrimitive("PropertyInt16", (short) 123), - createPrimitive("PropertyString", "TEST 1")), - Arrays.asList( - createPrimitive("PropertyInt16", (short) 456), - createPrimitive("PropertyString", "TEST 2")), - Arrays.asList( - createPrimitive("PropertyInt16", (short) 789), - createPrimitive("PropertyString", "TEST 3"))); - } - - private EntityCollection createESAllKey(final Edm edm, final OData odata) { + + @SuppressWarnings("unchecked") + private Property createColPropertyComp() { + return createComplexCollection("CollPropertyComp", + Arrays.asList( + createPrimitive("PropertyInt16", (short) 123), + createPrimitive("PropertyString", "TEST 1")), + Arrays.asList( + createPrimitive("PropertyInt16", (short) 456), + createPrimitive("PropertyString", "TEST 2")), + Arrays.asList( + createPrimitive("PropertyInt16", (short) 789), + createPrimitive("PropertyString", "TEST 3"))); + } + + private EntityCollection createESAllKey(final Edm edm, final OData odata) { EntityCollection entityCollection = new EntityCollection(); entityCollection.getEntities().add(new Entity() - .addProperty(createPrimitive("PropertyString", "First")) + .addProperty(createPrimitive("PropertyString", "First")) .addProperty(createPrimitive("PropertyBoolean", true)) .addProperty(createPrimitive("PropertyByte", (short) 255)) .addProperty(createPrimitive("PropertySByte", Byte.MAX_VALUE)) @@ -948,7 +970,7 @@ public class DataCreator { .addProperty(createPrimitive("PropertyTimeOfDay", getTime(2, 48, 21)))); entityCollection.getEntities().add(new Entity() - .addProperty(createPrimitive("PropertyString", "Second")) + .addProperty(createPrimitive("PropertyString", "Second")) .addProperty(createPrimitive("PropertyBoolean", true)) .addProperty(createPrimitive("PropertyByte", (short) 254)) .addProperty(createPrimitive("PropertySByte", (byte) 124)) @@ -961,7 +983,7 @@ public class DataCreator { .addProperty(createPrimitive("PropertyDuration", BigDecimal.valueOf(6))) .addProperty(createPrimitive("PropertyGuid", GUID)) .addProperty(createPrimitive("PropertyTimeOfDay", getTime(2, 48, 21)))); - + setEntityType(entityCollection, edm.getEntityType(EntityTypeProvider.nameETAllKey)); createEntityId(edm, odata, "ESAllKey", entityCollection); @@ -974,7 +996,7 @@ public class DataCreator { Entity entity = new Entity(); entity.addProperty(createPrimitive("PropertyInt16", (short) 1)); entity.addProperty(createComplex("PropertyComp", - createComplex("PropertyComp", + createComplex("PropertyComp", createPrimitive("PropertyInt16", (short) 123), createPrimitive("PropertyString", "String 1")))); entityCollection.getEntities().add(entity); @@ -982,7 +1004,7 @@ public class DataCreator { entity = new Entity(); entity.addProperty(createPrimitive("PropertyInt16", (short) 2)); entity.addProperty(createComplex("PropertyComp", - createComplex("PropertyComp", + createComplex("PropertyComp", createPrimitive("PropertyInt16", (short) 987), createPrimitive("PropertyString", "String 2")))); entityCollection.getEntities().add(entity); @@ -997,32 +1019,32 @@ public class DataCreator { EntityCollection entityCollection = new EntityCollection(); Entity entity = new Entity() - .addProperty(createPrimitive("PropertyInt16", (short) 1)) - .addProperty(createPrimitive(DataProvider.MEDIA_PROPERTY_NAME, createImage("darkturquoise"))); + .addProperty(createPrimitive("PropertyInt16", (short) 1)) + .addProperty(createPrimitive(DataProvider.MEDIA_PROPERTY_NAME, createImage("darkturquoise"))); entity.setMediaContentType("image/svg+xml"); entity.setMediaETag("W/\"1\""); entity.getMediaEditLinks().add(buildMediaLink("ESMedia", "ESMedia(1)/$value")); entityCollection.getEntities().add(entity); entity = new Entity() - .addProperty(createPrimitive("PropertyInt16", (short) 2)) - .addProperty(createPrimitive(DataProvider.MEDIA_PROPERTY_NAME, createImage("royalblue"))); + .addProperty(createPrimitive("PropertyInt16", (short) 2)) + .addProperty(createPrimitive(DataProvider.MEDIA_PROPERTY_NAME, createImage("royalblue"))); entity.setMediaContentType("image/svg+xml"); entity.setMediaETag("W/\"2\""); entity.getMediaEditLinks().add(buildMediaLink("ESMedia", "ESMedia(2)/$value")); entityCollection.getEntities().add(entity); entity = new Entity() - .addProperty(createPrimitive("PropertyInt16", (short) 3)) - .addProperty(createPrimitive(DataProvider.MEDIA_PROPERTY_NAME, createImage("crimson"))); + .addProperty(createPrimitive("PropertyInt16", (short) 3)) + .addProperty(createPrimitive(DataProvider.MEDIA_PROPERTY_NAME, createImage("crimson"))); entity.setMediaContentType("image/svg+xml"); entity.setMediaETag("W/\"3\""); entity.getMediaEditLinks().add(buildMediaLink("ESMedia", "ESMedia(3)/$value")); entityCollection.getEntities().add(entity); entity = new Entity() - .addProperty(createPrimitive("PropertyInt16", (short) 4)) - .addProperty(createPrimitive(DataProvider.MEDIA_PROPERTY_NAME, createImage("black"))); + .addProperty(createPrimitive("PropertyInt16", (short) 4)) + .addProperty(createPrimitive(DataProvider.MEDIA_PROPERTY_NAME, createImage("black"))); entity.setMediaContentType("image/svg+xml"); entity.setMediaETag("W/\"4\""); entity.getMediaEditLinks().add(buildMediaLink("ESMedia", "ESMedia(4)/$value")); @@ -1045,8 +1067,8 @@ public class DataCreator { final EntityCollection entityCollection = data.get("ESTwoPrim"); final List<Entity> targetEntities = data.get("ESAllPrim").getEntities(); - setLinks(entityCollection.getEntities().get(1), "NavPropertyETAllPrimMany", targetEntities.get(1), - targetEntities.get(2)); + setLinks(entityCollection.getEntities().get(1), "NavPropertyETAllPrimMany", targetEntities.get(1), + targetEntities.get(2)); setLink(entityCollection.getEntities().get(3), "NavPropertyETAllPrimOne", targetEntities.get(0)); } @@ -1057,9 +1079,9 @@ public class DataCreator { setLinks(entityCollection.getEntities().get(0), "NavPropertyETTwoPrimMany", targetEntities.get(1)); setLink(entityCollection.getEntities().get(0), "NavPropertyETTwoPrimOne", targetEntities.get(3)); - setLinks(entityCollection.getEntities().get(2), "NavPropertyETTwoPrimMany", targetEntities.get(0), - targetEntities.get(2), - targetEntities.get(3)); + setLinks(entityCollection.getEntities().get(2), "NavPropertyETTwoPrimMany", targetEntities.get(0), + targetEntities.get(2), + targetEntities.get(3)); } private void linkESKeyNav(final Map<String, EntityCollection> data) { @@ -1069,10 +1091,10 @@ public class DataCreator { final List<Entity> esMediaTargets = data.get("ESMedia").getEntities(); // NavPropertyETKeyNavMany - setLinks(entityCollection.getEntities().get(0), "NavPropertyETKeyNavMany", esKeyNavTargets.get(0), - esKeyNavTargets.get(1)); - setLinks(entityCollection.getEntities().get(1), "NavPropertyETKeyNavMany", esKeyNavTargets.get(1), - esKeyNavTargets.get(2)); + setLinks(entityCollection.getEntities().get(0), "NavPropertyETKeyNavMany", esKeyNavTargets.get(0), + esKeyNavTargets.get(1)); + setLinks(entityCollection.getEntities().get(1), "NavPropertyETKeyNavMany", esKeyNavTargets.get(1), + esKeyNavTargets.get(2)); // NavPropertyETKeyNavOne setLink(entityCollection.getEntities().get(0), "NavPropertyETKeyNavOne", esKeyNavTargets.get(1)); @@ -1095,11 +1117,11 @@ public class DataCreator { setLink(entityCollection.getEntities().get(2), "NavPropertyETMediaOne", esMediaTargets.get(2)); // NavPropertyETMediaMany - setLinks(entityCollection.getEntities().get(0), "NavPropertyETMediaMany", esMediaTargets.get(0), - esMediaTargets.get(2)); + setLinks(entityCollection.getEntities().get(0), "NavPropertyETMediaMany", esMediaTargets.get(0), + esMediaTargets.get(2)); setLinks(entityCollection.getEntities().get(1), "NavPropertyETMediaMany", esMediaTargets.get(2)); - setLinks(entityCollection.getEntities().get(2), "NavPropertyETMediaMany", esMediaTargets.get(0), - esMediaTargets.get(1)); + setLinks(entityCollection.getEntities().get(2), "NavPropertyETMediaMany", esMediaTargets.get(0), + esMediaTargets.get(1)); } private void linkESTwoKeyNav(final Map<String, EntityCollection> data) { @@ -1114,12 +1136,12 @@ public class DataCreator { setLink(entityCollection.getEntities().get(3), "NavPropertyETKeyNavOne", esKeyNavTargets.get(2)); // NavPropertyETKeyNavMany - setLinks(entityCollection.getEntities().get(0), "NavPropertyETKeyNavMany", esKeyNavTargets.get(0), - esKeyNavTargets.get(1)); - setLinks(entityCollection.getEntities().get(1), "NavPropertyETKeyNavMany", esKeyNavTargets.get(0), - esKeyNavTargets.get(1)); - setLinks(entityCollection.getEntities().get(2), "NavPropertyETKeyNavMany", esKeyNavTargets.get(1), - esKeyNavTargets.get(2)); + setLinks(entityCollection.getEntities().get(0), "NavPropertyETKeyNavMany", esKeyNavTargets.get(0), + esKeyNavTargets.get(1)); + setLinks(entityCollection.getEntities().get(1), "NavPropertyETKeyNavMany", esKeyNavTargets.get(0), + esKeyNavTargets.get(1)); + setLinks(entityCollection.getEntities().get(2), "NavPropertyETKeyNavMany", esKeyNavTargets.get(1), + esKeyNavTargets.get(2)); // NavPropertyETTwoKeyNavOne setLink(entityCollection.getEntities().get(0), "NavPropertyETTwoKeyNavOne", esTwoKeyNavTargets.get(0)); @@ -1172,10 +1194,10 @@ public class DataCreator { } protected static int getDuration(final int days, final int hours, final int minutes, final int seconds) { - return days * 24 * 60 * 60 - + hours * 60 * 60 - + minutes * 60 - + seconds; + return days * 24 * 60 * 60 + + hours * 60 * 60 + + minutes * 60 + + seconds; } protected static Calendar getTime(final int hour, final int minute, final int second) {
http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/639362ca/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/DataProvider.java ---------------------------------------------------------------------- diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/DataProvider.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/DataProvider.java index 045360b..d91f923 100644 --- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/DataProvider.java +++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/data/DataProvider.java @@ -41,6 +41,7 @@ import org.apache.olingo.commons.api.edm.Edm; import org.apache.olingo.commons.api.edm.EdmComplexType; import org.apache.olingo.commons.api.edm.EdmEntitySet; import org.apache.olingo.commons.api.edm.EdmEntityType; +import org.apache.olingo.commons.api.edm.EdmEnumType; import org.apache.olingo.commons.api.edm.EdmFunction; import org.apache.olingo.commons.api.edm.EdmNavigationProperty; import org.apache.olingo.commons.api.edm.EdmParameter; @@ -50,6 +51,7 @@ import org.apache.olingo.commons.api.edm.EdmPrimitiveTypeKind; import org.apache.olingo.commons.api.edm.EdmProperty; import org.apache.olingo.commons.api.edm.EdmStructuredType; import org.apache.olingo.commons.api.edm.EdmType; +import org.apache.olingo.commons.api.edm.EdmTypeDefinition; import org.apache.olingo.commons.api.edm.FullQualifiedName; import org.apache.olingo.commons.api.edm.constants.EdmTypeKind; import org.apache.olingo.commons.api.http.HttpStatusCode; @@ -174,23 +176,28 @@ public class DataProvider { throws DataProviderException { // Weak key construction final HashMap<String, Object> keys = new HashMap<String, Object>(); - for (final String keyName : entityType.getKeyPredicateNames()) { - final FullQualifiedName typeName = entityType.getProperty(keyName).getType().getFullQualifiedName(); + List<String> keyPredicateNames = entityType.getKeyPredicateNames(); + for (final String keyName : keyPredicateNames) { + EdmType type = entityType.getProperty(keyName).getType(); + FullQualifiedName typeName = type.getFullQualifiedName(); + if (type instanceof EdmTypeDefinition) { + typeName = ((EdmTypeDefinition) type).getUnderlyingType().getFullQualifiedName(); + } Object newValue; - + if (EdmPrimitiveTypeKind.Int16.getFullQualifiedName().equals(typeName)) { - newValue = (short) KEY_INT_16.incrementAndGet(); - - while(!isFree(newValue, keyName, entities)) { - newValue = (short) KEY_INT_16.incrementAndGet(); - } + newValue = (short) KEY_INT_16.incrementAndGet(); + + while (!isFree(newValue, keyName, entities)) { + newValue = (short) KEY_INT_16.incrementAndGet(); + } } else if (EdmPrimitiveTypeKind.Int32.getFullQualifiedName().equals(typeName)) { newValue = KEY_INT_32.incrementAndGet(); - - while(!isFree(newValue, keyName, entities)) { + + while (!isFree(newValue, keyName, entities)) { newValue = KEY_INT_32.incrementAndGet(); } - } else if(EdmPrimitiveTypeKind.Int64.getFullQualifiedName().equals(typeName)) { + } else if (EdmPrimitiveTypeKind.Int64.getFullQualifiedName().equals(typeName)) { // Integer keys newValue = KEY_INT_64.incrementAndGet(); @@ -204,6 +211,12 @@ public class DataProvider { while (!isFree(newValue, keyName, entities)) { newValue = String.valueOf(KEY_STRING.incrementAndGet()); } + } else if (type instanceof EdmEnumType) { + /* In case of an enum key we only support composite keys. This way we can 0 as a key */ + if (keyPredicateNames.size() <= 1) { + throw new DataProviderException("Single Enum as key not supported", HttpStatusCode.NOT_IMPLEMENTED); + } + newValue = new Short((short) 1); } else { throw new DataProviderException("Key type not supported", HttpStatusCode.NOT_IMPLEMENTED); } @@ -583,21 +596,21 @@ public class DataProvider { return ActionData.entityCollectionAction(name, actionParameters, odata, edm); } - public void createReference(final Entity entity, final EdmNavigationProperty navigationProperty, final URI entityId, + public void createReference(final Entity entity, final EdmNavigationProperty navigationProperty, final URI entityId, final String rawServiceRoot) throws DataProviderException { - setLink(navigationProperty, entity, getEntityByReference(entityId.toASCIIString(), rawServiceRoot)); + setLink(navigationProperty, entity, getEntityByReference(entityId.toASCIIString(), rawServiceRoot)); } - public void deleteReference(final Entity entity, final EdmNavigationProperty navigationProperty, + public void deleteReference(final Entity entity, final EdmNavigationProperty navigationProperty, final String entityId, final String rawServiceRoot) throws DataProviderException { if (navigationProperty.isCollection()) { final Entity targetEntity = getEntityByReference(entityId, rawServiceRoot); final Link navigationLink = entity.getNavigationLink(navigationProperty.getName()); - - if (navigationLink != null && navigationLink.getInlineEntitySet() != null + + if (navigationLink != null && navigationLink.getInlineEntitySet() != null && navigationLink.getInlineEntitySet().getEntities().contains(targetEntity)) { - + // Remove partner single-valued navigation property if (navigationProperty.getPartner() != null) { final EdmNavigationProperty edmPartnerNavigationProperty = navigationProperty.getPartner(); @@ -614,7 +627,7 @@ public class DataProvider { } } } - + // Remove target entity from collection-valued navigation property navigationLink.getInlineEntitySet().getEntities().remove(targetEntity); } else { @@ -629,7 +642,7 @@ public class DataProvider { } } - protected Entity getEntityByReference(final String entityId, final String rawServiceRoot) + protected Entity getEntityByReference(final String entityId, final String rawServiceRoot) throws DataProviderException { try { final UriResourceEntitySet uriResource = odata.createUriHelper().parseEntityId(edm, entityId, rawServiceRoot); http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/639362ca/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ComplexTypeProvider.java ---------------------------------------------------------------------- diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ComplexTypeProvider.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ComplexTypeProvider.java index b3b9864..7db6fcf 100644 --- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ComplexTypeProvider.java +++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/ComplexTypeProvider.java @@ -179,7 +179,7 @@ public class ComplexTypeProvider { return new CsdlComplexType() .setName(nameCTMixEnumDef.getName()) .setProperties(Arrays.asList( - PropertyProvider.propertyEnumString_ENString_Nullable, + PropertyProvider.propertyEnumString_ENString, PropertyProvider.collPropertyEnumString_ENString, PropertyProvider.propertyTypeDefinition_TDString, PropertyProvider.collPropertyTypeDefinition_TDString)); http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/639362ca/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/EntityTypeProvider.java ---------------------------------------------------------------------- diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/EntityTypeProvider.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/EntityTypeProvider.java index a1067ca..1ba33c1 100644 --- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/EntityTypeProvider.java +++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/EntityTypeProvider.java @@ -437,12 +437,12 @@ public class EntityTypeProvider { } else if (entityTypeName.equals(nameETMixEnumDefCollComp)) { return new CsdlEntityType() .setName(nameETMixEnumDefCollComp.getName()) - .setKey(Arrays.asList(new CsdlPropertyRef().setName("PropertyInt16"))) + .setKey(Arrays.asList(new CsdlPropertyRef().setName("PropertyEnumString"), + new CsdlPropertyRef().setName("PropertyDefString"))) .setProperties(Arrays.asList( - PropertyProvider.propertyInt16_NotNullable, - PropertyProvider.propertyEnumString_ENString, + PropertyProvider.propertyEnumString_ENString_NonNullable, PropertyProvider.collPropertyEnumString_ENString, - PropertyProvider.propertyTypeDefinition_TDString, + PropertyProvider.propertyTypeDefinition_TDString_NonNullable, PropertyProvider.collPropertyTypeDefinition_TDString, PropertyProvider.propertyComp_CTMixEnumTypeDefColl, PropertyProvider.propertyCompColl_CTMixEnumTypeDefColl)); http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/639362ca/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/PropertyProvider.java ---------------------------------------------------------------------- diff --git a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/PropertyProvider.java b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/PropertyProvider.java index c8c4549..05fb93a 100644 --- a/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/PropertyProvider.java +++ b/lib/server-tecsvc/src/main/java/org/apache/olingo/server/tecsvc/provider/PropertyProvider.java @@ -760,12 +760,12 @@ public class PropertyProvider { .setType(EntityTypeProvider.nameETTwoKeyNav); // EnumProperties -------------------------------------------------------------------------------------------------- - public static final CsdlProperty propertyEnumString_ENString = new CsdlProperty() + public static final CsdlProperty propertyEnumString_ENString_NonNullable = new CsdlProperty() .setName("PropertyEnumString") .setType(EnumTypeProvider.nameENString) .setNullable(false); - public static final CsdlProperty propertyEnumString_ENString_Nullable = new CsdlProperty() + public static final CsdlProperty propertyEnumString_ENString = new CsdlProperty() .setName("PropertyEnumString") .setType(EnumTypeProvider.nameENString); @@ -779,6 +779,11 @@ public class PropertyProvider { .setName("PropertyDefString") .setType(TypeDefinitionProvider.nameTDString); + public static final CsdlProperty propertyTypeDefinition_TDString_NonNullable = new CsdlProperty() + .setName("PropertyDefString") + .setType(TypeDefinitionProvider.nameTDString) + .setNullable(false); + public static final CsdlProperty collPropertyTypeDefinition_TDString = new CsdlProperty() .setName("CollPropertyDefString") .setType(TypeDefinitionProvider.nameTDString) http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/639362ca/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializerEntityTest.java ---------------------------------------------------------------------- diff --git a/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializerEntityTest.java b/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializerEntityTest.java index b528b28..01e61f3 100644 --- a/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializerEntityTest.java +++ b/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/json/ODataJsonDeserializerEntityTest.java @@ -471,6 +471,31 @@ public class ODataJsonDeserializerEntityTest extends AbstractODataDeserializerTe assertEquals("string", defProperty.getValue()); stream.close(); } + + @Test + public void eTMixEnumDefCollCompTestWithEnumStrings() throws Exception { + InputStream stream = getFileAsStream("EntityETMixEnumDefCollCompWithEnumStrings.json"); + final Entity entity = deserialize(stream, "ETMixEnumDefCollComp", ContentType.JSON); + + assertEquals(6, entity.getProperties().size()); + + Property enumProperty = entity.getProperty("PropertyEnumString"); + assertNotNull(enumProperty); + assertEquals((short) 2, enumProperty.getValue()); + + Property defProperty = entity.getProperty("PropertyDefString"); + assertNotNull(defProperty); + assertEquals("def", defProperty.getValue()); + + Property complexProperty = entity.getProperty("PropertyCompMixedEnumDef"); + List<Property> value = complexProperty.asComplex().getValue(); + assertEquals((short) 2, value.get(0).getValue()); + + defProperty = ((ComplexValue) entity.getProperty("CollPropertyCompMixedEnumDef").asCollection().get(1)) + .getValue().get(2); + assertEquals("def", defProperty.getValue()); + stream.close(); + } @Test public void eTCollAllPrimWithNullValue() throws Exception { http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/639362ca/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/xml/ODataXmlDeserializerTest.java ---------------------------------------------------------------------- diff --git a/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/xml/ODataXmlDeserializerTest.java b/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/xml/ODataXmlDeserializerTest.java index a257eaa..dcde3f2 100644 --- a/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/xml/ODataXmlDeserializerTest.java +++ b/lib/server-test/src/test/java/org/apache/olingo/server/core/deserializer/xml/ODataXmlDeserializerTest.java @@ -349,7 +349,6 @@ public class ODataXmlDeserializerTest extends AbstractODataDeserializerTest { + " xmlns:m=\"" + Constants.NS_METADATA + "\" xmlns:d=\"" + Constants.NS_DATASERVICES + "\">\n" + " <a:content type=\"application/xml\">\n" + " <m:properties>\n" - + " <d:PropertyInt16 m:type=\"Int16\">1</d:PropertyInt16>\n" + " <d:PropertyEnumString m:type=\"#olingo.odata.test1.ENString\">String2,String3" + "</d:PropertyEnumString>\n" + " <d:CollPropertyEnumString m:type=\"#Collection(olingo.odata.test1.ENString)\">\n" @@ -398,9 +397,8 @@ public class ODataXmlDeserializerTest extends AbstractODataDeserializerTest { final Entity result = deserializer.entity(new ByteArrayInputStream(payload.getBytes()), edmEntitySet.getEntityType()).getEntity(); - Assert.assertEquals(7, result.getProperties().size()); + Assert.assertEquals(6, result.getProperties().size()); - Assert.assertEquals((short) 1, result.getProperty("PropertyInt16").asPrimitive()); Assert.assertEquals((short) 6, result.getProperty("PropertyEnumString").asEnum()); Assert.assertEquals(3, result.getProperty("CollPropertyEnumString").asCollection().size()); Assert.assertEquals("Test", result.getProperty("PropertyDefString").asPrimitive());
