diff options
Diffstat (limited to 'aai-schema-ingest/src/main/java/org/onap/aai/edges/EdgeRule.java')
-rw-r--r-- | aai-schema-ingest/src/main/java/org/onap/aai/edges/EdgeRule.java | 370 |
1 files changed, 187 insertions, 183 deletions
diff --git a/aai-schema-ingest/src/main/java/org/onap/aai/edges/EdgeRule.java b/aai-schema-ingest/src/main/java/org/onap/aai/edges/EdgeRule.java index f8f8caca..d3c9a599 100644 --- a/aai-schema-ingest/src/main/java/org/onap/aai/edges/EdgeRule.java +++ b/aai-schema-ingest/src/main/java/org/onap/aai/edges/EdgeRule.java @@ -17,211 +17,215 @@ * limitations under the License. * ============LICENSE_END========================================================= */ -package org.onap.aai.edges; -import org.apache.tinkerpop.gremlin.structure.Direction; -import org.onap.aai.edges.enums.*; +package org.onap.aai.edges; import java.util.EnumMap; import java.util.HashMap; import java.util.Map; +import org.apache.tinkerpop.gremlin.structure.Direction; +import org.onap.aai.edges.enums.*; + /** * Container for A&AI edge rule information */ public class EdgeRule { - private String from; - private String to; - private String label; - private Direction direction; - private MultiplicityRule multiplicityRule; - private Map<EdgeProperty, AAIDirection> edgeFields; - private boolean isDefaultEdge; - private String description; - private boolean isPrivateEdge = false; - - /** - * Instantiates a new edge rule. - * - * @param fieldVals - Map<String, String> where first string is - * an EdgeField value and second string is the - * value of that field - */ - public EdgeRule(Map<String, String> fieldVals) { - edgeFields = new EnumMap<>(EdgeProperty.class); - - from = fieldVals.get(EdgeField.FROM.toString()); - to = fieldVals.get(EdgeField.TO.toString()); - label = fieldVals.get(EdgeField.LABEL.toString()); - direction = Direction.valueOf(fieldVals.get(EdgeField.DIRECTION.toString())); - multiplicityRule = MultiplicityRule.getValue(fieldVals.get(EdgeField.MULTIPLICITY.toString())); - isPrivateEdge = Boolean.valueOf(fieldVals.getOrDefault(EdgeField.PRIVATE.toString(), "false")); + private String from; + private String to; + private String label; + private Direction direction; + private MultiplicityRule multiplicityRule; + private Map<EdgeProperty, AAIDirection> edgeFields; + private boolean isDefaultEdge; + private String description; + private boolean isPrivateEdge = false; + + /** + * Instantiates a new edge rule. + * + * @param fieldVals - Map<String, String> where first string is + * an EdgeField value and second string is the + * value of that field + */ + public EdgeRule(Map<String, String> fieldVals) { + edgeFields = new EnumMap<>(EdgeProperty.class); + + from = fieldVals.get(EdgeField.FROM.toString()); + to = fieldVals.get(EdgeField.TO.toString()); + label = fieldVals.get(EdgeField.LABEL.toString()); + direction = Direction.valueOf(fieldVals.get(EdgeField.DIRECTION.toString())); + multiplicityRule = MultiplicityRule.getValue(fieldVals.get(EdgeField.MULTIPLICITY.toString())); + isPrivateEdge = Boolean.valueOf(fieldVals.getOrDefault(EdgeField.PRIVATE.toString(), "false")); for (EdgeProperty prop : EdgeProperty.values()) { - String rawVal = fieldVals.get(prop.toString()); - edgeFields.put(prop, convertNotation(direction, rawVal)); - } - - isDefaultEdge = Boolean.valueOf(fieldVals.get(EdgeField.DEFAULT.toString())); + String rawVal = fieldVals.get(prop.toString()); + edgeFields.put(prop, convertNotation(direction, rawVal)); + } + + isDefaultEdge = Boolean.valueOf(fieldVals.get(EdgeField.DEFAULT.toString())); description = fieldVals.get(EdgeField.DESCRIPTION.toString()); - if (description == null) { //bc description is optional and not in v12 and earlier - description = ""; - } - } + if (description == null) { // bc description is optional and not in v12 and earlier + description = ""; + } + } // Copy Constructor - public EdgeRule(EdgeRule edgeRule){ + public EdgeRule(EdgeRule edgeRule) { this.from = edgeRule.from; - this.to = edgeRule.to; + this.to = edgeRule.to; this.label = edgeRule.label; this.direction = Direction.valueOf(edgeRule.direction.toString()); this.multiplicityRule = MultiplicityRule.valueOf(edgeRule.multiplicityRule.toString()); this.edgeFields = new HashMap<>(edgeRule.edgeFields); - this.isDefaultEdge = edgeRule.isDefaultEdge; + this.isDefaultEdge = edgeRule.isDefaultEdge; this.description = edgeRule.description; this.isPrivateEdge = edgeRule.isPrivateEdge; } - /** - * Converts whatever string was in the json for an edge property value into - * the appropriate AAIDirection - * - * @param Direction dir - the edge direction - * @param String rawVal - property value from the json, may be - * IN, OUT, BOTH, NONE, ${direction}, or !${direction} - * @return AAIDirection - IN/OUT/BOTH/NONE if that's the rawVal, or - * translates the direction notation into the correct IN/OUT - */ - private AAIDirection convertNotation(Direction dir, String rawVal) { - if (AAIDirection.NONE.toString().equalsIgnoreCase(rawVal)) { - return AAIDirection.NONE; - } else if (AAIDirection.BOTH.toString().equalsIgnoreCase(rawVal)) { - return AAIDirection.BOTH; - } else if (AAIDirection.OUT.toString().equalsIgnoreCase(rawVal)) { - return AAIDirection.OUT; - } else if (AAIDirection.IN.toString().equalsIgnoreCase(rawVal)) { - return AAIDirection.IN; - } - - DirectionNotation rawDN = DirectionNotation.getValue(rawVal); - if (DirectionNotation.DIRECTION.equals(rawDN)) { - return AAIDirection.getValue(dir); - } else { - return AAIDirection.getValue(dir.opposite()); - } - } - - /** - * Gets the name of the node type in the "from" field - * @return String nodetype - */ - public String getFrom() { - return from; - } - - /** - * Gets the name of the node type in the "to" field - * @return String nodetype - */ - public String getTo() { - return to; - } - - /** - * Gets the edge label - * - * @return String label - */ - public String getLabel() { - return label; - } - - /** - * Gets the multiplicity rule. - * - * @return MultiplicityRule - */ - public MultiplicityRule getMultiplicityRule() { - return multiplicityRule; - } - - /** - * Gets the edge direction - * - * @return Direction - */ - public Direction getDirection() { - return direction; - } - - /** - * Gets the value of contains-other-v - * - * @return the value of contains-other-v - */ - public String getContains() { - return edgeFields.get(EdgeProperty.CONTAINS).toString(); - } - - /** - * Gets the value of delete-other-v - * - * @return the value of delete-other-v - */ - public String getDeleteOtherV() { - return edgeFields.get(EdgeProperty.DELETE_OTHER_V).toString(); - } - - /** - * Gets the value of the prevent-delete property - * - * @return String prevent-delete property value - */ - public String getPreventDelete() { - return edgeFields.get(EdgeProperty.PREVENT_DELETE).toString(); - } - - /** - * Returns if this rule is a default or not - * - * @return boolean - */ - public boolean isDefault() { - return isDefaultEdge; - } - - /** - * Gets the description on the edge rule (if there is one) - * @return String description - */ - public String getDescription() { - return this.description; - } - - /** - * Flips the direction value - * IN -> OUT - * OUT -> IN - * BOTH -> BOTH - */ - public void flipDirection() { - if (Direction.OUT.equals(direction)) { - direction = Direction.IN; - } else if (Direction.IN.equals(direction)) { - direction = Direction.OUT; - } - //else BOTH just stays the same - } - - public boolean isPrivateEdge() { - return isPrivateEdge; - } - - public void setPrivateEdge(boolean privateEdge) { - isPrivateEdge = privateEdge; - } - - public void setPrivateEdge(String isPrivateEdge){ - this.isPrivateEdge = "true".equals(isPrivateEdge); - } + /** + * Converts whatever string was in the json for an edge property value into + * the appropriate AAIDirection + * + * @param Direction dir - the edge direction + * @param String rawVal - property value from the json, may be + * IN, OUT, BOTH, NONE, ${direction}, or !${direction} + * @return AAIDirection - IN/OUT/BOTH/NONE if that's the rawVal, or + * translates the direction notation into the correct IN/OUT + */ + private AAIDirection convertNotation(Direction dir, String rawVal) { + if (AAIDirection.NONE.toString().equalsIgnoreCase(rawVal)) { + return AAIDirection.NONE; + } else if (AAIDirection.BOTH.toString().equalsIgnoreCase(rawVal)) { + return AAIDirection.BOTH; + } else if (AAIDirection.OUT.toString().equalsIgnoreCase(rawVal)) { + return AAIDirection.OUT; + } else if (AAIDirection.IN.toString().equalsIgnoreCase(rawVal)) { + return AAIDirection.IN; + } + + DirectionNotation rawDN = DirectionNotation.getValue(rawVal); + if (DirectionNotation.DIRECTION.equals(rawDN)) { + return AAIDirection.getValue(dir); + } else { + return AAIDirection.getValue(dir.opposite()); + } + } + + /** + * Gets the name of the node type in the "from" field + * + * @return String nodetype + */ + public String getFrom() { + return from; + } + + /** + * Gets the name of the node type in the "to" field + * + * @return String nodetype + */ + public String getTo() { + return to; + } + + /** + * Gets the edge label + * + * @return String label + */ + public String getLabel() { + return label; + } + + /** + * Gets the multiplicity rule. + * + * @return MultiplicityRule + */ + public MultiplicityRule getMultiplicityRule() { + return multiplicityRule; + } + + /** + * Gets the edge direction + * + * @return Direction + */ + public Direction getDirection() { + return direction; + } + + /** + * Gets the value of contains-other-v + * + * @return the value of contains-other-v + */ + public String getContains() { + return edgeFields.get(EdgeProperty.CONTAINS).toString(); + } + + /** + * Gets the value of delete-other-v + * + * @return the value of delete-other-v + */ + public String getDeleteOtherV() { + return edgeFields.get(EdgeProperty.DELETE_OTHER_V).toString(); + } + + /** + * Gets the value of the prevent-delete property + * + * @return String prevent-delete property value + */ + public String getPreventDelete() { + return edgeFields.get(EdgeProperty.PREVENT_DELETE).toString(); + } + + /** + * Returns if this rule is a default or not + * + * @return boolean + */ + public boolean isDefault() { + return isDefaultEdge; + } + + /** + * Gets the description on the edge rule (if there is one) + * + * @return String description + */ + public String getDescription() { + return this.description; + } + + /** + * Flips the direction value + * IN -> OUT + * OUT -> IN + * BOTH -> BOTH + */ + public void flipDirection() { + if (Direction.OUT.equals(direction)) { + direction = Direction.IN; + } else if (Direction.IN.equals(direction)) { + direction = Direction.OUT; + } + // else BOTH just stays the same + } + + public boolean isPrivateEdge() { + return isPrivateEdge; + } + + public void setPrivateEdge(boolean privateEdge) { + isPrivateEdge = privateEdge; + } + + public void setPrivateEdge(String isPrivateEdge) { + this.isPrivateEdge = "true".equals(isPrivateEdge); + } } |