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;