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 e32302b  [OLINGO-1472]Support string-based scales in property metadata
e32302b is described below

commit e32302bc32ccaa629428f13b29f91434da7a4e13
Author: ramya vasanth <[email protected]>
AuthorDate: Wed Mar 3 14:31:12 2021 +0530

    [OLINGO-1472]Support string-based scales in property metadata
---
 .../serializer/xml/MetadataDocumentXmlSerializer.java     |  6 ++++--
 .../serializer/xml/MetadataDocumentXmlSerializerTest.java | 15 ++++++++++++++-
 2 files changed, 18 insertions(+), 3 deletions(-)

diff --git 
a/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentXmlSerializer.java
 
b/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentXmlSerializer.java
index 71af4ad..0d862f3 100644
--- 
a/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentXmlSerializer.java
+++ 
b/lib/server-core/src/main/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentXmlSerializer.java
@@ -939,8 +939,10 @@ public class MetadataDocumentXmlSerializer {
         writer.writeAttribute(XML_PRECISION, "" + property.getPrecision());
       }
 
-      if (property.getScale() != null) {
-        writer.writeAttribute(XML_SCALE, "" + property.getScale());
+      if (property.getScaleAsString() != null) {
+          writer.writeAttribute(XML_SCALE, property.getScaleAsString());
+      } else if (property.getScale() != null) {
+         writer.writeAttribute(XML_SCALE, "" + property.getScale());
       }
       
       if (property.getSrid() != null) {
diff --git 
a/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentXmlSerializerTest.java
 
b/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentXmlSerializerTest.java
index c5017a8..8a68c74 100644
--- 
a/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentXmlSerializerTest.java
+++ 
b/lib/server-core/src/test/java/org/apache/olingo/server/core/serializer/xml/MetadataDocumentXmlSerializerTest.java
@@ -343,6 +343,13 @@ public class MetadataDocumentXmlSerializerTest {
                + "AppliesTo=\"Property EntitySet Schema\"></Term>"));
     assertTrue(metadata.contains("<Term Name=\"Term4\" Type=\"Edm.String\" 
BaseTerm=\"Alias.Term1\"></Term>"));
   }
+  
+  @Test
+  public void entityTypeProperties() throws Exception {
+    String metadata = localMetadata();
+    assertTrue(metadata.contains("<Property Name=\"PropertyDecimal\" " +
+      "Type=\"Edm.Decimal\" Scale=\"variable\"></Property>"));
+  }
 
   @Test
   public void annotationsTest() throws Exception {
@@ -495,6 +502,7 @@ public class MetadataDocumentXmlSerializerTest {
 
     private final FullQualifiedName nameInt16 = 
EdmPrimitiveTypeKind.Int16.getFullQualifiedName();
     private final FullQualifiedName nameString = 
EdmPrimitiveTypeKind.String.getFullQualifiedName();
+    private final FullQualifiedName nameDecimal = 
EdmPrimitiveTypeKind.Decimal.getFullQualifiedName();
     private final FullQualifiedName nameUARTPrimParam = new 
FullQualifiedName(nameSpace, "UARTPrimParam");
     private final FullQualifiedName nameUARTOtherEntity = new 
FullQualifiedName(nameSpace, "UARTOtherEntity");
     private final FullQualifiedName nameUARTEntity = new 
FullQualifiedName(nameSpace, "UARTEntity");
@@ -505,6 +513,11 @@ public class MetadataDocumentXmlSerializerTest {
     private final CsdlProperty propertyString = new CsdlProperty()
     .setName("PropertyString")
     .setType(nameString);
+    private final CsdlProperty propertyDecimal_VariableScale = new 
CsdlProperty()
+           .setName("PropertyDecimal")
+           .setType(nameDecimal)
+           .setScale(0)
+           .setScaleAsString("variable");
     
     private final CsdlNavigationProperty navProperty = new 
CsdlNavigationProperty()
         .setName("NavProperty")
@@ -556,7 +569,7 @@ public class MetadataDocumentXmlSerializerTest {
         return new CsdlEntityType()
         .setName("ET")
         .setKey(Collections.singletonList(new 
CsdlPropertyRef().setName("PropertyInt16")))
-        .setProperties(Collections.singletonList(propertyInt16_NotNullable))
+        .setProperties(Arrays.asList(propertyInt16_NotNullable, 
propertyDecimal_VariableScale))
         .setNavigationProperties(Collections.singletonList(navProperty));
       }
       return null;

Reply via email to