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 2019/05/14 19:09:26 UTC
[olingo-odata4] branch master updated: OLINGO-1357 use s map to
cache EdmPrimitiveTypeKind values for lookup
This is an automated email from the ASF dual-hosted git repository.
mibo 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 7ff8ffd OLINGO-1357 use s map to cache EdmPrimitiveTypeKind values for lookup
new 2a509a3 Merge pull request #51 from DirkMahler/master
7ff8ffd is described below
commit 7ff8ffdf37781f67d5500479f8492b9d957da889
Author: Dirk Mahler <di...@buschmais.com>
AuthorDate: Mon May 13 14:13:40 2019 +0200
OLINGO-1357 use s map to cache EdmPrimitiveTypeKind values for lookup
---
.../commons/api/edm/EdmPrimitiveTypeKind.java | 24 ++++++++++++++++++++++
.../olingo/commons/core/edm/EdmTypeInfo.java | 7 ++-----
2 files changed, 26 insertions(+), 5 deletions(-)
diff --git a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/EdmPrimitiveTypeKind.java b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/EdmPrimitiveTypeKind.java
index ecac055..7bd3e14 100644
--- a/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/EdmPrimitiveTypeKind.java
+++ b/lib/commons-api/src/main/java/org/apache/olingo/commons/api/edm/EdmPrimitiveTypeKind.java
@@ -18,6 +18,10 @@
*/
package org.apache.olingo.commons.api.edm;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+
/**
* Enumeration of all primitive type kinds.
*/
@@ -57,6 +61,26 @@ public enum EdmPrimitiveTypeKind {
GeometryMultiPolygon,
GeometryCollection;
+ private static Map<String, EdmPrimitiveTypeKind> VALUES_BY_NAME;
+
+ static {
+ Map<String, EdmPrimitiveTypeKind> valuesByName = new HashMap<java.lang.String, EdmPrimitiveTypeKind>();
+ for (EdmPrimitiveTypeKind value : values()) {
+ valuesByName.put(value.name(), value);
+ }
+ VALUES_BY_NAME = Collections.unmodifiableMap(valuesByName);
+ }
+
+ /**
+ * Get a type kind by name.
+ *
+ * @param name The name.
+ * @return The type kind or <tt>null</tt> if it does not exist.
+ */
+ public static EdmPrimitiveTypeKind getByName(String name) {
+ return VALUES_BY_NAME.get(name);
+ }
+
/**
* Checks if is a geospatial type.
*
diff --git a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmTypeInfo.java b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmTypeInfo.java
index b196b84..46c6361 100644
--- a/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmTypeInfo.java
+++ b/lib/commons-core/src/main/java/org/apache/olingo/commons/core/edm/EdmTypeInfo.java
@@ -109,11 +109,8 @@ public class EdmTypeInfo {
fullQualifiedName = new FullQualifiedName(namespace, typeName);
- try {
- primitiveType = EdmPrimitiveTypeKind.valueOf(typeName);
- } catch (final IllegalArgumentException e) {
- primitiveType = null;
- }
+ primitiveType = EdmPrimitiveTypeKind.getByName(typeName);
+
if (primitiveType == null && edm != null) {
typeDefinition = edm.getTypeDefinition(fullQualifiedName);
if (typeDefinition == null) {