You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@atlas.apache.org by ma...@apache.org on 2018/01/08 06:41:35 UTC

atlas git commit: ATLAS-2346: fix V1 REST API to include AttributeDefinition.dataTypeName field in type details

Repository: atlas
Updated Branches:
  refs/heads/master 413aa88e6 -> 08ac11c09


ATLAS-2346: fix V1 REST API to include AttributeDefinition.dataTypeName field in type details


Project: http://git-wip-us.apache.org/repos/asf/atlas/repo
Commit: http://git-wip-us.apache.org/repos/asf/atlas/commit/08ac11c0
Tree: http://git-wip-us.apache.org/repos/asf/atlas/tree/08ac11c0
Diff: http://git-wip-us.apache.org/repos/asf/atlas/diff/08ac11c0

Branch: refs/heads/master
Commit: 08ac11c091f62ab7e006a0b4491959ebb2949df7
Parents: 413aa88
Author: Madhan Neethiraj <ma...@apache.org>
Authored: Fri Jan 5 17:34:06 2018 -0800
Committer: Madhan Neethiraj <ma...@apache.org>
Committed: Fri Jan 5 23:03:45 2018 -0800

----------------------------------------------------------------------
 .../v1/model/typedef/AttributeDefinition.java   |  1 -
 .../converters/TypeConverterUtil.java           |  2 +-
 .../store/graph/v1/AtlasStructDefStoreV1.java   | 40 ++++++++++++++++++--
 3 files changed, 38 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/atlas/blob/08ac11c0/intg/src/main/java/org/apache/atlas/v1/model/typedef/AttributeDefinition.java
----------------------------------------------------------------------
diff --git a/intg/src/main/java/org/apache/atlas/v1/model/typedef/AttributeDefinition.java b/intg/src/main/java/org/apache/atlas/v1/model/typedef/AttributeDefinition.java
index 53a008a..b54c22b 100644
--- a/intg/src/main/java/org/apache/atlas/v1/model/typedef/AttributeDefinition.java
+++ b/intg/src/main/java/org/apache/atlas/v1/model/typedef/AttributeDefinition.java
@@ -33,7 +33,6 @@ import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.PUBLIC_
 
 
 @JsonAutoDetect(getterVisibility=PUBLIC_ONLY, setterVisibility=PUBLIC_ONLY, fieldVisibility=NONE)
-@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
 @JsonIgnoreProperties(ignoreUnknown=true)
 @XmlRootElement
 @XmlAccessorType(XmlAccessType.PROPERTY)

http://git-wip-us.apache.org/repos/asf/atlas/blob/08ac11c0/repository/src/main/java/org/apache/atlas/repository/converters/TypeConverterUtil.java
----------------------------------------------------------------------
diff --git a/repository/src/main/java/org/apache/atlas/repository/converters/TypeConverterUtil.java b/repository/src/main/java/org/apache/atlas/repository/converters/TypeConverterUtil.java
index 33f092e..1e06321 100644
--- a/repository/src/main/java/org/apache/atlas/repository/converters/TypeConverterUtil.java
+++ b/repository/src/main/java/org/apache/atlas/repository/converters/TypeConverterUtil.java
@@ -360,7 +360,7 @@ public final class TypeConverterUtil {
             for (AtlasAttributeDef attrDef : attrDefs) {
                 AtlasAttribute attribute = structType.getAttribute(attrDef.getName());
 
-                AttributeDefinition oldAttrDef = AtlasStructDefStoreV1.toAttributeDefintion(attribute);
+                AttributeDefinition oldAttrDef = AtlasStructDefStoreV1.toAttributeDefinition(attribute);
 
                 ret.add(new AttributeDefinition(oldAttrDef.getName(), oldAttrDef.getDataTypeName(), new Multiplicity(oldAttrDef.getMultiplicity()), oldAttrDef.getIsComposite(), oldAttrDef.getIsUnique(), oldAttrDef.getIsIndexable(), oldAttrDef.getReverseAttributeName()));
             }

http://git-wip-us.apache.org/repos/asf/atlas/blob/08ac11c0/repository/src/main/java/org/apache/atlas/repository/store/graph/v1/AtlasStructDefStoreV1.java
----------------------------------------------------------------------
diff --git a/repository/src/main/java/org/apache/atlas/repository/store/graph/v1/AtlasStructDefStoreV1.java b/repository/src/main/java/org/apache/atlas/repository/store/graph/v1/AtlasStructDefStoreV1.java
index f1d9031..83a6d1d 100644
--- a/repository/src/main/java/org/apache/atlas/repository/store/graph/v1/AtlasStructDefStoreV1.java
+++ b/repository/src/main/java/org/apache/atlas/repository/store/graph/v1/AtlasStructDefStoreV1.java
@@ -33,6 +33,7 @@ import org.apache.atlas.type.AtlasType;
 import org.apache.atlas.type.AtlasTypeRegistry;
 import org.apache.atlas.type.AtlasTypeUtil;
 import org.apache.atlas.typesystem.types.DataTypes.TypeCategory;
+import org.apache.atlas.v1.model.typedef.Multiplicity;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang.StringUtils;
 import org.slf4j.Logger;
@@ -544,10 +545,43 @@ public class AtlasStructDefStoreV1 extends AtlasAbstractDefStoreV1<AtlasStructDe
         return ret;
     }
 
-    public static AttributeDefinition toAttributeDefintion(AtlasAttribute attribute) {
-        String jsonString = toJsonFromAttribute(attribute);
+    public static Multiplicity getMultiplicity(AtlasAttributeDef attributeDef) {
+        final int     lower;
+        final int     upper;
+        final boolean isUnique = AtlasAttributeDef.Cardinality.SET.equals(attributeDef.getCardinality());
 
-        AttributeDefinition ret = AtlasType.fromV1Json(jsonString, AttributeDefinition.class);
+        if (attributeDef.getCardinality() == AtlasAttributeDef.Cardinality.SINGLE) {
+            lower = attributeDef.getIsOptional() ? 0 : 1;
+            upper = 1;
+        } else {
+            if(attributeDef.getIsOptional()) {
+                lower = 0;
+            } else {
+                lower = attributeDef.getValuesMinCount() < 1 ? 1 : attributeDef.getValuesMinCount();
+            }
+
+            upper = attributeDef.getValuesMaxCount() < 2 ? Integer.MAX_VALUE : attributeDef.getValuesMaxCount();
+        }
+
+        Multiplicity ret = new Multiplicity(lower, upper, isUnique);
+
+        return ret;
+    }
+
+    public static AttributeDefinition toAttributeDefinition(AtlasAttribute attribute) {
+        final AtlasAttributeDef attrDef = attribute.getAttributeDef();
+
+        AttributeDefinition ret = new AttributeDefinition();
+
+        ret.setName(attrDef.getName());
+        ret.setDataTypeName(attrDef.getTypeName());
+        ret.setMultiplicity(getMultiplicity(attrDef));
+        ret.setIsComposite(attribute.isOwnedRef());
+        ret.setIsUnique(attrDef.getIsUnique());
+        ret.setIsIndexable(attrDef.getIsIndexable());
+        ret.setReverseAttributeName(attribute.getInverseRefAttributeName());
+        ret.setDescription(attrDef.getDescription());
+        ret.setDefaultValue(attrDef.getDefaultValue());
 
         return ret;
     }