ATLAS-2923: Options copied to AttributeDefinition
Project: http://git-wip-us.apache.org/repos/asf/atlas/repo Commit: http://git-wip-us.apache.org/repos/asf/atlas/commit/7952682a Tree: http://git-wip-us.apache.org/repos/asf/atlas/tree/7952682a Diff: http://git-wip-us.apache.org/repos/asf/atlas/diff/7952682a Branch: refs/heads/branch-1.0 Commit: 7952682a346f26972c362a64b6fa9b2c06a4cafa Parents: bb733db Author: Ashutosh Mestry <ames...@hortonworks.com> Authored: Mon Oct 15 15:53:07 2018 -0700 Committer: Ashutosh Mestry <ames...@hortonworks.com> Committed: Thu Nov 1 15:42:58 2018 -0700 ---------------------------------------------------------------------- addons/models/0010-base_model.json | 335 ------------------- .../org/apache/atlas/type/AtlasTypeUtil.java | 1 + .../v1/model/typedef/AttributeDefinition.java | 31 +- .../v1/typesystem/types/utils/TypesUtil.java | 6 +- .../converters/TypeConverterUtil.java | 2 +- 5 files changed, 29 insertions(+), 346 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/atlas/blob/7952682a/addons/models/0010-base_model.json ---------------------------------------------------------------------- diff --git a/addons/models/0010-base_model.json b/addons/models/0010-base_model.json deleted file mode 100644 index 1bfbf2f..0000000 --- a/addons/models/0010-base_model.json +++ /dev/null @@ -1,335 +0,0 @@ -{ - "enumDefs": [], - "structDefs": [], - "classificationDefs": [ - { - "name": "TaxonomyTerm", - "superTypes": [], - "typeVersion": "1.0", - "attributeDefs": [ - { - "name": "atlas.taxonomy", - "typeName": "string", - "cardinality": "SINGLE", - "isIndexable": false, - "isOptional": true, - "isUnique": false - } - ] - } - ], - "entityDefs": [ - { - "name": "Referenceable", - "superTypes": [], - "typeVersion": "1.0", - "attributeDefs": [ - { - "name": "qualifiedName", - "typeName": "string", - "cardinality": "SINGLE", - "isIndexable": true, - "isOptional": false, - "isUnique": true - } - ] - }, - { - "name": "__internal", - "superTypes": [], - "typeVersion": "1.0", - "attributeDefs": [] - }, - { - "name": "Asset", - "superTypes": [], - "typeVersion": "1.0", - "attributeDefs": [ - { - "name": "name", - "typeName": "string", - "cardinality": "SINGLE", - "isIndexable": true, - "isOptional": false, - "isUnique": false - }, - { - "name": "description", - "typeName": "string", - "cardinality": "SINGLE", - "isIndexable": false, - "isOptional": true, - "isUnique": false - }, - { - "name": "owner", - "typeName": "string", - "cardinality": "SINGLE", - "isIndexable": true, - "isOptional": true, - "isUnique": false - } - ] - }, - { - "name": "DataSet", - "superTypes": [ - "Referenceable", - "Asset" - ], - "typeVersion": "1.0", - "attributeDefs": [] - }, - { - "name": "Infrastructure", - "superTypes": [ - "Referenceable", - "Asset" - ], - "typeVersion": "1.0", - "attributeDefs": [] - }, - { - "name": "Process", - "superTypes": [ - "Referenceable", - "Asset" - ], - "typeVersion": "1.0", - "attributeDefs": [ - { - "name": "inputs", - "typeName": "array<DataSet>", - "cardinality": "SINGLE", - "isIndexable": false, - "isOptional": true, - "isUnique": false - }, - { - "name": "outputs", - "typeName": "array<DataSet>", - "cardinality": "SINGLE", - "isIndexable": false, - "isOptional": true, - "isUnique": false - } - ] - }, - { - "name": "AtlasServer", - "typeVersion": "1.0", - "superTypes": [ - ], - "attributeDefs": [ - { - "name": "name", - "typeName": "string", - "cardinality": "SINGLE", - "isIndexable": true, - "isOptional": false, - "isUnique": false - }, - { - "name": "displayName", - "typeName": "string", - "cardinality": "SINGLE", - "isIndexable": true, - "isOptional": false, - "isUnique": false - }, - { - "name": "fullName", - "typeName": "string", - "cardinality": "SINGLE", - "isIndexable": true, - "isOptional": false, - "isUnique": true - }, - { - "name": "urls", - "typeName": "array<string>", - "cardinality": "SINGLE", - "isIndexable": false, - "isOptional": true, - "isUnique": false - }, - { - "name": "additionalInfo", - "typeName": "map<string,string>", - "cardinality": "SINGLE", - "isIndexable": false, - "isOptional": true, - "isUnique": false - } - ] - }, - { - "name": "__AtlasUserProfile", - "superTypes": [ - "__internal" - ], - "typeVersion": "1.0", - "attributeDefs": [ - { - "name": "name", - "typeName": "string", - "cardinality": "SINGLE", - "isIndexable": true, - "isOptional": false, - "isUnique": true - }, - { - "name": "fullName", - "typeName": "string", - "cardinality": "SINGLE", - "isIndexable": false, - "isOptional": true, - "isUnique": false - }, - { - "name": "savedSearches", - "typeName": "array<__AtlasUserSavedSearch>", - "cardinality": "LIST", - "isIndexable": false, - "isOptional": true, - "isUnique": false, - "constraints": [ - { - "type": "ownedRef" - } - ] - } - ] - }, - { - "name": "__AtlasUserSavedSearch", - "superTypes": [ - "__internal" - ], - "typeVersion": "1.0", - "attributeDefs": [ - { - "name": "name", - "typeName": "string", - "cardinality": "SINGLE", - "isIndexable": false, - "isOptional": false, - "isUnique": false - }, - { - "name": "ownerName", - "typeName": "string", - "cardinality": "SINGLE", - "isIndexable": false, - "isOptional": false, - "isUnique": false - }, - { - "name": "uniqueName", - "typeName": "string", - "cardinality": "SINGLE", - "isIndexable": true, - "isOptional": false, - "isUnique": true - }, - { - "name": "searchType", - "typeName": "string", - "cardinality": "SINGLE", - "isIndexable": true, - "isOptional": false, - "isUnique": false - }, - { - "name": "searchParameters", - "typeName": "string", - "cardinality": "SINGLE", - "isIndexable": false, - "isOptional": false, - "isUnique": false - }, - { - "name": "searchParameters", - "typeName": "string", - "cardinality": "SINGLE", - "isIndexable": false, - "isOptional": true, - "isUnique": false - } - ] - }, - { - "name": "__ExportImportAuditEntry", - "typeVersion": "1.0", - "superTypes": [ - "__internal" - ], - "attributeDefs": [ - { - "name": "userName", - "typeName": "string", - "cardinality": "SINGLE", - "isIndexable": false, - "isOptional": true, - "isUnique": false - }, - { - "name": "operation", - "typeName": "string", - "cardinality": "SINGLE", - "isIndexable": true, - "isOptional": false, - "isUnique": false - }, - { - "name": "sourceServerName", - "typeName": "string", - "cardinality": "SINGLE", - "isIndexable": true, - "isOptional": true, - "isUnique": false - }, - { - "name": "targetServerName", - "typeName": "string", - "cardinality": "SINGLE", - "isIndexable": true, - "isOptional": true, - "isUnique": false - }, - { - "name": "operationParams", - "typeName": "string", - "cardinality": "SINGLE", - "isIndexable": true, - "isOptional": true, - "isUnique": false - }, - { - "name": "operationStartTime", - "typeName": "long", - "cardinality": "SINGLE", - "isIndexable": true, - "isOptional": false, - "isUnique": false - }, - { - "name": "operationEndTime", - "typeName": "long", - "cardinality": "SINGLE", - "isIndexable": true, - "isOptional": true, - "isUnique": false - }, - { - "name": "resultSummary", - "typeName": "string", - "cardinality": "SINGLE", - "isIndexable": false, - "isOptional": true, - "isUnique": false - } - ] - } - ] -} http://git-wip-us.apache.org/repos/asf/atlas/blob/7952682a/intg/src/main/java/org/apache/atlas/type/AtlasTypeUtil.java ---------------------------------------------------------------------- diff --git a/intg/src/main/java/org/apache/atlas/type/AtlasTypeUtil.java b/intg/src/main/java/org/apache/atlas/type/AtlasTypeUtil.java index e6c17af..78df622 100644 --- a/intg/src/main/java/org/apache/atlas/type/AtlasTypeUtil.java +++ b/intg/src/main/java/org/apache/atlas/type/AtlasTypeUtil.java @@ -481,6 +481,7 @@ public class AtlasTypeUtil { ret.setReverseAttributeName(attribute.getInverseRefAttributeName()); ret.setDefaultValue(attributeDef.getDefaultValue()); ret.setDescription(attributeDef.getDescription()); + ret.setOptions(attributeDef.getOptions()); final int lower; final int upper; http://git-wip-us.apache.org/repos/asf/atlas/blob/7952682a/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 b54c22b..e353856 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 @@ -26,6 +26,8 @@ import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlRootElement; import java.io.Serializable; +import java.util.HashMap; +import java.util.Map; import java.util.Objects; import static com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility.NONE; @@ -48,22 +50,23 @@ public class AttributeDefinition implements Serializable { private String reverseAttributeName; // If this is a reference attribute, then the name of the attribute on the Class that this refers to. private String defaultValue; private String description; - - + private Map<String, String> options; public AttributeDefinition() { } public AttributeDefinition(String name, String dataTypeName, Multiplicity multiplicity) { - this(name, dataTypeName, multiplicity, false, false, true, null); + this(name, dataTypeName, multiplicity, false, false, true, null, null); } public AttributeDefinition(String name, String dataTypeName, Multiplicity multiplicity, boolean isComposite, String reverseAttributeName) { - this(name, dataTypeName, multiplicity, isComposite, false, false, reverseAttributeName); + this(name, dataTypeName, multiplicity, isComposite, false, false, reverseAttributeName, null); } - public AttributeDefinition(String name, String dataTypeName, Multiplicity multiplicity, boolean isComposite, boolean isUnique, boolean isIndexable, String reverseAttributeName) { + public AttributeDefinition(String name, String dataTypeName, Multiplicity multiplicity, boolean isComposite, + boolean isUnique, boolean isIndexable, String reverseAttributeName, + Map<String, String> options) { this.name = name; this.dataTypeName = dataTypeName; this.multiplicity = multiplicity; @@ -71,6 +74,7 @@ public class AttributeDefinition implements Serializable { this.isUnique = isUnique; this.isIndexable = isIndexable; this.reverseAttributeName = reverseAttributeName; + this.options = options; } @@ -146,6 +150,18 @@ public class AttributeDefinition implements Serializable { this.description = description; } + public Map<String, String> getOptions() { + return options; + } + + public void setOptions(Map<String, String> options) { + if (options != null) { + this.options = new HashMap<>(options); + } else { + this.options = null; + } + } + @Override public boolean equals(Object o) { if (this == o) { @@ -166,12 +182,13 @@ public class AttributeDefinition implements Serializable { Objects.equals(multiplicity, that.multiplicity) && Objects.equals(defaultValue, that.defaultValue) && Objects.equals(description, that.description) && - Objects.equals(reverseAttributeName, that.reverseAttributeName); + Objects.equals(reverseAttributeName, that.reverseAttributeName) && + Objects.equals(options, that.options); } @Override public int hashCode() { return Objects.hash(name, dataTypeName, multiplicity, isComposite, isUnique, isIndexable, - reverseAttributeName, defaultValue, description); + reverseAttributeName, defaultValue, description, options); } } http://git-wip-us.apache.org/repos/asf/atlas/blob/7952682a/intg/src/main/java/org/apache/atlas/v1/typesystem/types/utils/TypesUtil.java ---------------------------------------------------------------------- diff --git a/intg/src/main/java/org/apache/atlas/v1/typesystem/types/utils/TypesUtil.java b/intg/src/main/java/org/apache/atlas/v1/typesystem/types/utils/TypesUtil.java index 864623a..70d3ff6 100644 --- a/intg/src/main/java/org/apache/atlas/v1/typesystem/types/utils/TypesUtil.java +++ b/intg/src/main/java/org/apache/atlas/v1/typesystem/types/utils/TypesUtil.java @@ -63,19 +63,19 @@ public class TypesUtil { } public static AttributeDefinition createUniqueRequiredAttrDef(String name, String dataTypeName) { - AttributeDefinition ret = new AttributeDefinition(name, dataTypeName, Multiplicity.REQUIRED, false, true, true, null); + AttributeDefinition ret = new AttributeDefinition(name, dataTypeName, Multiplicity.REQUIRED, false, true, true, null, null); return ret; } public static AttributeDefinition createRequiredAttrDef(String name, String dataTypeName) { - AttributeDefinition ret = new AttributeDefinition(name, dataTypeName, Multiplicity.REQUIRED, false, false, true, null); + AttributeDefinition ret = new AttributeDefinition(name, dataTypeName, Multiplicity.REQUIRED, false, false, true, null, null); return ret; } public static AttributeDefinition createOptionalAttrDef(String name, String dataTypeName) { - AttributeDefinition ret = new AttributeDefinition(name, dataTypeName, Multiplicity.OPTIONAL, false, false, true, null); + AttributeDefinition ret = new AttributeDefinition(name, dataTypeName, Multiplicity.OPTIONAL, false, false, true, null, null); return ret; } http://git-wip-us.apache.org/repos/asf/atlas/blob/7952682a/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 40d9a07..caa63ee 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 @@ -362,7 +362,7 @@ public final class TypeConverterUtil { AttributeDefinition oldAttrDef = AtlasStructDefStoreV2.toAttributeDefinition(attribute); - ret.add(new AttributeDefinition(oldAttrDef.getName(), oldAttrDef.getDataTypeName(), new Multiplicity(oldAttrDef.getMultiplicity()), oldAttrDef.getIsComposite(), oldAttrDef.getIsUnique(), oldAttrDef.getIsIndexable(), oldAttrDef.getReverseAttributeName())); + ret.add(new AttributeDefinition(oldAttrDef.getName(), oldAttrDef.getDataTypeName(), new Multiplicity(oldAttrDef.getMultiplicity()), oldAttrDef.getIsComposite(), oldAttrDef.getIsUnique(), oldAttrDef.getIsIndexable(), oldAttrDef.getReverseAttributeName(), oldAttrDef.getOptions())); } }