You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@atlas.apache.org by si...@apache.org on 2021/05/18 16:13:27 UTC

[atlas] branch master updated: ATLAS-4288: Added code to create PreferredToTerms relationships when it exists alone

This is an automated email from the ASF dual-hosted git repository.

sidmishra pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/atlas.git


The following commit(s) were added to refs/heads/master by this push:
     new 64bea6a  ATLAS-4288: Added code to create PreferredToTerms relationships when it exists alone
64bea6a is described below

commit 64bea6a5e98fbb87a76d53f9e7e2f5ca01671426
Author: sidmishra <si...@cloudera.com>
AuthorDate: Mon May 17 22:40:00 2021 -0700

    ATLAS-4288: Added code to create PreferredToTerms relationships when it exists alone
    
    Signed-off-by: Sidharth Mishra <si...@apache.org>
---
 .../atlas/model/glossary/AtlasGlossaryTerm.java    |  4 ++++
 .../apache/atlas/glossary/GlossaryTermUtils.java   | 26 +++++++++++++---------
 2 files changed, 19 insertions(+), 11 deletions(-)

diff --git a/intg/src/main/java/org/apache/atlas/model/glossary/AtlasGlossaryTerm.java b/intg/src/main/java/org/apache/atlas/model/glossary/AtlasGlossaryTerm.java
index ee306c6..f0f362b 100644
--- a/intg/src/main/java/org/apache/atlas/model/glossary/AtlasGlossaryTerm.java
+++ b/intg/src/main/java/org/apache/atlas/model/glossary/AtlasGlossaryTerm.java
@@ -224,6 +224,10 @@ public class AtlasGlossaryTerm extends AtlasGlossaryBaseObject {
 
     public void setPreferredToTerms(final Set<AtlasRelatedTermHeader> preferredToTerms) {
         this.preferredToTerms = preferredToTerms;
+
+        if (CollectionUtils.isNotEmpty(preferredToTerms)) {
+            hasTerms = true;
+        }
     }
 
     public Set<AtlasRelatedTermHeader> getReplacementTerms() {
diff --git a/repository/src/main/java/org/apache/atlas/glossary/GlossaryTermUtils.java b/repository/src/main/java/org/apache/atlas/glossary/GlossaryTermUtils.java
index fa02c8e..d92daee 100644
--- a/repository/src/main/java/org/apache/atlas/glossary/GlossaryTermUtils.java
+++ b/repository/src/main/java/org/apache/atlas/glossary/GlossaryTermUtils.java
@@ -725,21 +725,25 @@ public class GlossaryTermUtils extends GlossaryUtils {
                     String relatedTermQualifiedName = dataArray[1] + invalidNameChars[0] + dataArray[0];
                     String currTermQualifiedName    = termName + invalidNameChars[0] + glossaryName;
 
-                    vertex = AtlasGraphUtilsV2.findByTypeAndUniquePropertyName(GlossaryUtils.ATLAS_GLOSSARY_TERM_TYPENAME,
-                            GlossaryUtils.ATLAS_GLOSSARY_TERM_TYPENAME + invalidNameChars[1] + QUALIFIED_NAME_ATTR, relatedTermQualifiedName);
+                    if (relatedTermQualifiedName.equalsIgnoreCase(currTermQualifiedName)) {
+                        failedTermMsgs.add("Invalid relationship specified for Term. Term cannot have a relationship with self");
+                    } else {
+                        vertex = AtlasGraphUtilsV2.findByTypeAndUniquePropertyName(GlossaryUtils.ATLAS_GLOSSARY_TERM_TYPENAME,
+                                GlossaryUtils.ATLAS_GLOSSARY_TERM_TYPENAME + invalidNameChars[1] + QUALIFIED_NAME_ATTR, relatedTermQualifiedName);
 
-                    if (vertex != null) {
-                        String glossaryTermGuid = AtlasGraphUtilsV2.getIdFromVertex(vertex);
+                        if (vertex != null) {
+                            String glossaryTermGuid = AtlasGraphUtilsV2.getIdFromVertex(vertex);
 
-                        relatedTermHeader       = new AtlasRelatedTermHeader();
-                        relatedTermHeader.setTermGuid(glossaryTermGuid);
+                            relatedTermHeader = new AtlasRelatedTermHeader();
+                            relatedTermHeader.setTermGuid(glossaryTermGuid);
 
-                        cacheRelatedTermQNameGuid(currTermQualifiedName, relatedTermQualifiedName, glossaryTermGuid);
+                            cacheRelatedTermQNameGuid(currTermQualifiedName, relatedTermQualifiedName, glossaryTermGuid);
 
-                        ret.add(relatedTermHeader);
-                    } else {
-                        failedTermMsgs.add("The provided Reference " + dataArray[1] + "@" + dataArray[0] +
-                                " does not exist at Atlas referred at record with TermName  : " + termName + " and GlossaryName : " + glossaryName);
+                            ret.add(relatedTermHeader);
+                        } else {
+                            failedTermMsgs.add("The provided Reference " + dataArray[1] + "@" + dataArray[0] +
+                                    " does not exist at Atlas referred at record with TermName  : " + termName + " and GlossaryName : " + glossaryName);
+                        }
                     }
                 } else {
                     failedTermMsgs.add("Incorrect relation data specified for the term : " + termName + "@" + glossaryName);