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 2017/01/12 02:34:43 UTC
incubator-atlas git commit: ATLAS-1443: attributes with null value
are not included in Atlas API response
Repository: incubator-atlas
Updated Branches:
refs/heads/0.7-incubating 2f4ca5549 -> 123b64803
ATLAS-1443: attributes with null value are not included in Atlas API response
Signed-off-by: Madhan Neethiraj <ma...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/incubator-atlas/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-atlas/commit/123b6480
Tree: http://git-wip-us.apache.org/repos/asf/incubator-atlas/tree/123b6480
Diff: http://git-wip-us.apache.org/repos/asf/incubator-atlas/diff/123b6480
Branch: refs/heads/0.7-incubating
Commit: 123b64803724172b43caa532f9b6f7dbe3070800
Parents: 2f4ca55
Author: Sarath Subramanian <ss...@hortonworks.com>
Authored: Wed Jan 11 11:24:05 2017 -0800
Committer: Madhan Neethiraj <ma...@apache.org>
Committed: Wed Jan 11 18:21:36 2017 -0800
----------------------------------------------------------------------
.../repository/graph/TypedInstanceToGraphMapper.java | 2 +-
.../org/apache/atlas/typesystem/ITypedInstance.java | 4 +++-
.../org/apache/atlas/typesystem/persistence/Id.java | 4 ++++
.../typesystem/persistence/ReferenceableInstance.java | 4 ++--
.../atlas/typesystem/persistence/StructInstance.java | 12 +++++++++---
5 files changed, 19 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/123b6480/repository/src/main/java/org/apache/atlas/repository/graph/TypedInstanceToGraphMapper.java
----------------------------------------------------------------------
diff --git a/repository/src/main/java/org/apache/atlas/repository/graph/TypedInstanceToGraphMapper.java b/repository/src/main/java/org/apache/atlas/repository/graph/TypedInstanceToGraphMapper.java
index 93fd69f..92817d2 100644
--- a/repository/src/main/java/org/apache/atlas/repository/graph/TypedInstanceToGraphMapper.java
+++ b/repository/src/main/java/org/apache/atlas/repository/graph/TypedInstanceToGraphMapper.java
@@ -195,7 +195,7 @@ public final class TypedInstanceToGraphMapper {
AttributeInfo attributeInfo, Operation operation) throws AtlasException {
final Map<String, Object> valuesMap = typedInstance.getValuesMap();
- if ( valuesMap.containsKey(attributeInfo.name) || operation == Operation.CREATE ) {
+ if ( typedInstance.isValueSet(attributeInfo.name) || operation == Operation.CREATE ) {
Object attrValue = typedInstance.get(attributeInfo.name);
LOG.debug("Mapping attribute {} = {}", attributeInfo.name, attrValue);
http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/123b6480/typesystem/src/main/java/org/apache/atlas/typesystem/ITypedInstance.java
----------------------------------------------------------------------
diff --git a/typesystem/src/main/java/org/apache/atlas/typesystem/ITypedInstance.java b/typesystem/src/main/java/org/apache/atlas/typesystem/ITypedInstance.java
index d7f4cb7..c24eb8e 100755
--- a/typesystem/src/main/java/org/apache/atlas/typesystem/ITypedInstance.java
+++ b/typesystem/src/main/java/org/apache/atlas/typesystem/ITypedInstance.java
@@ -83,4 +83,6 @@ public interface ITypedInstance extends IInstance {
void setString(String attrName, String val) throws AtlasException;
String getSignatureHash(MessageDigest digester) throws AtlasException;
-}
+
+ boolean isValueSet(String attrName) throws AtlasException;
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/123b6480/typesystem/src/main/java/org/apache/atlas/typesystem/persistence/Id.java
----------------------------------------------------------------------
diff --git a/typesystem/src/main/java/org/apache/atlas/typesystem/persistence/Id.java b/typesystem/src/main/java/org/apache/atlas/typesystem/persistence/Id.java
index 42280d0..389b4a5 100755
--- a/typesystem/src/main/java/org/apache/atlas/typesystem/persistence/Id.java
+++ b/typesystem/src/main/java/org/apache/atlas/typesystem/persistence/Id.java
@@ -289,6 +289,10 @@ public class Id implements ITypedReferenceableInstance {
throw new AtlasException("Get/Set not supported on an Id object");
}
+ public boolean isValueSet(String attrName) throws AtlasException {
+ throw new AtlasException("Attributes not set on an Id object");
+ }
+
@Override
public String getSignatureHash(MessageDigest digester) throws AtlasException {
digester.update(id.getBytes(Charset.forName("UTF-8")));
http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/123b6480/typesystem/src/main/java/org/apache/atlas/typesystem/persistence/ReferenceableInstance.java
----------------------------------------------------------------------
diff --git a/typesystem/src/main/java/org/apache/atlas/typesystem/persistence/ReferenceableInstance.java b/typesystem/src/main/java/org/apache/atlas/typesystem/persistence/ReferenceableInstance.java
index 4e21410..328f0d7 100755
--- a/typesystem/src/main/java/org/apache/atlas/typesystem/persistence/ReferenceableInstance.java
+++ b/typesystem/src/main/java/org/apache/atlas/typesystem/persistence/ReferenceableInstance.java
@@ -48,11 +48,11 @@ public class ReferenceableInstance extends StructInstance implements ITypedRefer
public ReferenceableInstance(Id id, String dataTypeName, FieldMapping fieldMapping, boolean[] nullFlags,
- boolean[] explicitNullFlags, boolean[] bools, byte[] bytes, short[] shorts, int[] ints, long[] longs, float[] floats, double[] doubles,
+ boolean[] explicitSets, boolean[] bools, byte[] bytes, short[] shorts, int[] ints, long[] longs, float[] floats, double[] doubles,
BigDecimal[] bigDecimals, BigInteger[] bigIntegers, Date[] dates, String[] strings,
ImmutableList<Object>[] arrays, ImmutableMap<Object, Object>[] maps, StructInstance[] structs,
ReferenceableInstance[] referenceableInstances, Id[] ids, ImmutableMap<String, ITypedStruct> traits) {
- super(dataTypeName, fieldMapping, nullFlags, explicitNullFlags, bools, bytes, shorts, ints, longs, floats, doubles, bigDecimals,
+ super(dataTypeName, fieldMapping, nullFlags, explicitSets, bools, bytes, shorts, ints, longs, floats, doubles, bigDecimals,
bigIntegers, dates, strings, arrays, maps, structs, referenceableInstances, ids);
this.id = id;
this.traits = traits;
http://git-wip-us.apache.org/repos/asf/incubator-atlas/blob/123b6480/typesystem/src/main/java/org/apache/atlas/typesystem/persistence/StructInstance.java
----------------------------------------------------------------------
diff --git a/typesystem/src/main/java/org/apache/atlas/typesystem/persistence/StructInstance.java b/typesystem/src/main/java/org/apache/atlas/typesystem/persistence/StructInstance.java
index cdfaad0..9ac591a 100755
--- a/typesystem/src/main/java/org/apache/atlas/typesystem/persistence/StructInstance.java
+++ b/typesystem/src/main/java/org/apache/atlas/typesystem/persistence/StructInstance.java
@@ -279,10 +279,10 @@ public class StructInstance implements ITypedStruct {
public Map<String, Object> getValuesMap() throws AtlasException {
Map<String, Object> m = new HashMap<>();
for (String attr : fieldMapping.fields.keySet()) {
- int pos = fieldMapping.fieldNullPos.get(attr);
- if ( explicitSets[pos] ) {
+// int pos = fieldMapping.fieldNullPos.get(attr);
+// if ( explicitSets[pos] ) {
m.put(attr, get(attr));
- }
+// }
}
return m;
}
@@ -774,6 +774,12 @@ public class StructInstance implements ITypedStruct {
}
@Override
+ public boolean isValueSet(final String attrName) throws AtlasException {
+ int nullPos = fieldMapping.fieldNullPos.get(attrName);
+ return explicitSets[nullPos];
+ }
+
+ @Override
public String toShortString() {
return String.format("struct[type=%s]", dataTypeName);
}