Skip to content

Commit 5ce9e98

Browse files
authored
Merge pull request #3377 from atlanhq/LIN-1022-beta
LIN-1022 : [add] add relationship attributes search in lineage list API
2 parents 2e04501 + 6a3e4b6 commit 5ce9e98

File tree

3 files changed

+24
-1
lines changed

3 files changed

+24
-1
lines changed

intg/src/main/java/org/apache/atlas/model/lineage/LineageListRequest.java

+12-1
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ public class LineageListRequest {
2222
private SearchParameters.FilterCriteria entityTraversalFilters;
2323
private SearchParameters.FilterCriteria relationshipTraversalFilters;
2424
private Set<String> attributes;
25+
private Set<String> relationAttributes;
2526
private Boolean excludeMeanings;
2627
private Boolean excludeClassifications;
2728

@@ -32,11 +33,12 @@ public enum LineageDirection {INPUT, OUTPUT}
3233

3334
public LineageListRequest() {
3435
this.attributes = new HashSet<>();
36+
this.relationAttributes = new HashSet<>();
3537
}
3638

3739
public LineageListRequest(String guid, Integer size, Integer from, Integer depth, LineageDirection direction, SearchParameters.FilterCriteria entityFilters,
3840
SearchParameters.FilterCriteria entityTraversalFilters, SearchParameters.FilterCriteria relationshipTraversalFilters,
39-
Set<String> attributes, boolean excludeMeanings, boolean excludeClassifications) {
41+
Set<String> attributes, boolean excludeMeanings, boolean excludeClassifications, Set<String> relationAttributes) {
4042
this.guid = guid;
4143
this.size = size;
4244
this.from = from;
@@ -48,6 +50,7 @@ public LineageListRequest(String guid, Integer size, Integer from, Integer depth
4850
this.attributes = attributes;
4951
this.excludeMeanings = excludeMeanings;
5052
this.excludeClassifications = excludeClassifications;
53+
this.relationAttributes = relationAttributes;
5154
}
5255

5356
public String getGuid() {
@@ -129,6 +132,14 @@ public void setAttributes(Set<String> attributes) {
129132
this.attributes = attributes;
130133
}
131134

135+
public Set<String> getRelationAttributes() {
136+
return relationAttributes;
137+
}
138+
139+
public void setRelationAttributes(Set<String> relationAttributes) {
140+
this.relationAttributes = relationAttributes;
141+
}
142+
132143
public Boolean isExcludeMeanings() {
133144
return excludeMeanings;
134145
}

repository/src/main/java/org/apache/atlas/discovery/AtlasLineageListContext.java

+10
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ public final class AtlasLineageListContext {
1818
private Predicate vertexTraversalPredicate;
1919
private Predicate edgeTraversalPredicate;
2020
private Set<String> attributes;
21+
private Set<String> relationAttributes;
2122
private int currentFromCounter;
2223
private int currentEntityCounter;
2324
private boolean depthLimitReached;
@@ -35,6 +36,7 @@ public AtlasLineageListContext(LineageListRequest lineageListRequest, AtlasTypeR
3536
this.edgeTraversalPredicate = constructInMemoryPredicate(typeRegistry, lineageListRequest.getRelationshipTraversalFilters());
3637
this.attributes = lineageListRequest.getAttributes();
3738
this.lineageType = lineageListRequest.getLineageType();
39+
this.relationAttributes = lineageListRequest.getRelationAttributes();
3840
}
3941

4042
public String getGuid() {
@@ -113,6 +115,14 @@ public void setAttributes(Set<String> attributes) {
113115
this.attributes = attributes;
114116
}
115117

118+
public Set<String> getRelationAttributes() {
119+
return relationAttributes;
120+
}
121+
122+
public void setRelationAttributes(Set<String> relationAttributes) {
123+
this.relationAttributes = relationAttributes;
124+
}
125+
116126
public int getCurrentFromCounter() {
117127
return currentFromCounter;
118128
}

repository/src/main/java/org/apache/atlas/discovery/EntityLineageService.java

+2
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,8 @@ public AtlasLineageListInfo getLineageListInfoOnDemand(String guid, LineageListR
209209
RequestContext.get().setLineageInputLabel(LINEAGE_MAP.get(lineageListRequest.getLineageType())[0]);
210210
RequestContext.get().setLineageOutputLabel(LINEAGE_MAP.get(lineageListRequest.getLineageType())[1]);
211211
AtlasLineageListInfo ret = new AtlasLineageListInfo(new ArrayList<>());
212+
RequestContext.get().setRelationAttrsForSearch(lineageListRequest.getRelationAttributes());
213+
212214
traverseEdgesUsingBFS(guid, new AtlasLineageListContext(lineageListRequest, atlasTypeRegistry), ret);
213215
ret.setSearchParameters(lineageListRequest);
214216

0 commit comments

Comments
 (0)