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;
}