public static void validateAtlasRelationshipDef ( AtlasRelationshipDef relationshipDef ) throws AtlasBaseException { AtlasRelationshipEndDef endDef1 = relationshipDef . getEndDef1 ( ) ; AtlasRelationshipEndDef endDef2 = relationshipDef . getEndDef2 ( ) ; RelationshipCategory relationshipCategory = relationshipDef . getRelationshipCategory ( ) ; String name = relationshipDef . getName ( ) ; boolean isContainer1 = endDef1 . getIsContainer ( ) ; boolean isContainer2 = endDef2 . getIsContainer ( ) ; if ( ( endDef1 . getCardinality ( ) == AtlasAttributeDef . Cardinality . LIST ) || ( endDef2 . getCardinality ( ) == AtlasAttributeDef . Cardinality . LIST ) ) { throw new AtlasBaseException ( AtlasErrorCode . RELATIONSHIPDEF_LIST_ON_END , name ) ; } if ( isContainer1 && isContainer2 ) { // we support 0 or 1 of these flags. throw new AtlasBaseException ( AtlasErrorCode . RELATIONSHIPDEF_DOUBLE_CONTAINERS , name ) ; } if ( ( isContainer1 || isContainer2 ) ) { // we have an isContainer defined in an end if ( relationshipCategory == RelationshipCategory . ASSOCIATION ) { // associations are not containment relationships - so do not allow an endpoint with isContainer throw new AtlasBaseException ( AtlasErrorCode . RELATIONSHIPDEF_ASSOCIATION_AND_CONTAINER , name ) ; } } else { // we do not have an isContainer defined on an end if ( relationshipCategory == RelationshipCategory . COMPOSITION ) { // COMPOSITION needs one end to be the container. throw new AtlasBaseException ( AtlasErrorCode . RELATIONSHIPDEF_COMPOSITION_NO_CONTAINER , name ) ; } else if ( relationshipCategory == RelationshipCategory . AGGREGATION ) { // AGGREGATION needs one end to be the container. throw new AtlasBaseException ( AtlasErrorCode . RELATIONSHIPDEF_AGGREGATION_NO_CONTAINER , name ) ; } } if ( relationshipCategory == RelationshipCategory . COMPOSITION ) { // composition children should not be multiple cardinality if ( endDef1 . getCardinality ( ) == AtlasAttributeDef . Cardinality . SET && ! endDef1 . getIsContainer ( ) ) { throw new AtlasBaseException ( AtlasErrorCode . RELATIONSHIPDEF_COMPOSITION_MULTIPLE_PARENTS , name ) ; } if ( ( endDef2 . getCardinality ( ) == AtlasAttributeDef . Cardinality . SET ) && ! endDef2 . getIsContainer ( ) ) { throw new AtlasBaseException ( AtlasErrorCode . RELATIONSHIPDEF_COMPOSITION_MULTIPLE_PARENTS , name ) ; } } }
Throw an exception so we can junit easily .