Commit e0abdb3c by David Radley Committed by Madhan Neethiraj

ATLAS-1887: addressed issues flagged by Coverity Scan

parent f053fd59
...@@ -124,17 +124,22 @@ public class AtlasRelationshipType extends AtlasStructType { ...@@ -124,17 +124,22 @@ public class AtlasRelationshipType extends AtlasStructType {
/** /**
* Throw an exception so we can junit easily. * Throw an exception so we can junit easily.
*
* This method assumes that the 2 ends are not null.
*
* @param relationshipDef * @param relationshipDef
* @throws AtlasBaseException * @throws AtlasBaseException
*/ */
public static void validateAtlasRelationshipDef(AtlasRelationshipDef relationshipDef) throws AtlasBaseException { public static void validateAtlasRelationshipDef(AtlasRelationshipDef relationshipDef) throws AtlasBaseException {
AtlasRelationshipEndDef endDef1 = relationshipDef.getEndDef1(); AtlasRelationshipEndDef endDef1 = relationshipDef.getEndDef1();
AtlasRelationshipEndDef endDef2 = relationshipDef.getEndDef2(); AtlasRelationshipEndDef endDef2 = relationshipDef.getEndDef2();
boolean isContainer1 = endDef1.getIsContainer();
boolean isContainer2 = endDef2.getIsContainer();
RelationshipCategory relationshipCategory = relationshipDef.getRelationshipCategory(); RelationshipCategory relationshipCategory = relationshipDef.getRelationshipCategory();
String name = relationshipDef.getName(); String name = relationshipDef.getName();
boolean isContainer1 = endDef1.getIsContainer();
boolean isContainer2 = endDef2.getIsContainer();
if (isContainer1 && isContainer2) { if (isContainer1 && isContainer2) {
// we support 0 or 1 of these flags. // we support 0 or 1 of these flags.
throw new AtlasBaseException(AtlasErrorCode.RELATIONSHIPDEF_DOUBLE_CONTAINERS, name); throw new AtlasBaseException(AtlasErrorCode.RELATIONSHIPDEF_DOUBLE_CONTAINERS, name);
...@@ -157,20 +162,18 @@ public class AtlasRelationshipType extends AtlasStructType { ...@@ -157,20 +162,18 @@ public class AtlasRelationshipType extends AtlasStructType {
} }
if (relationshipCategory == RelationshipCategory.COMPOSITION) { if (relationshipCategory == RelationshipCategory.COMPOSITION) {
// composition containers should not be multiple cardinality // composition containers should not be multiple cardinality
if (endDef1 != null && if (endDef1.getCardinality() == AtlasAttributeDef.Cardinality.SET &&
endDef1.getCardinality() == AtlasAttributeDef.Cardinality.SET &&
endDef1.getIsContainer()) { endDef1.getIsContainer()) {
throw new AtlasBaseException(AtlasErrorCode.RELATIONSHIPDEF_COMPOSITION_SET_CONTAINER, name); throw new AtlasBaseException(AtlasErrorCode.RELATIONSHIPDEF_COMPOSITION_SET_CONTAINER, name);
} }
if (endDef2 != null && endDef2 != null && if ((endDef2.getCardinality() == AtlasAttributeDef.Cardinality.SET) &&
endDef2.getCardinality() == AtlasAttributeDef.Cardinality.SET &&
endDef2.getIsContainer()) { endDef2.getIsContainer()) {
throw new AtlasBaseException(AtlasErrorCode.RELATIONSHIPDEF_COMPOSITION_SET_CONTAINER, name); throw new AtlasBaseException(AtlasErrorCode.RELATIONSHIPDEF_COMPOSITION_SET_CONTAINER, name);
} }
} if ((endDef1.getCardinality() == AtlasAttributeDef.Cardinality.LIST) ||
if ((endDef1 != null && endDef1.getCardinality() == AtlasAttributeDef.Cardinality.LIST) || (endDef2.getCardinality() == AtlasAttributeDef.Cardinality.LIST)) {
(endDef2 != null && endDef2.getCardinality() == AtlasAttributeDef.Cardinality.LIST)) { throw new AtlasBaseException(AtlasErrorCode.RELATIONSHIPDEF_LIST_ON_END, name);
throw new AtlasBaseException(AtlasErrorCode.RELATIONSHIPDEF_LIST_ON_END, name); }
} }
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment