aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTian Lee <TianL@amdocs.com>2018-06-26 08:57:56 +0000
committerGerrit Code Review <gerrit@onap.org>2018-06-26 08:57:56 +0000
commit1cd3add116e012c560b4ae799787f6b599271a84 (patch)
tree31372500148cbc61d89e2a3a3daa34e65ae1ebc7
parent4aec102f14f7cb837733c4d2b217e7fdc7088f86 (diff)
parente0736a7054f0c1bca83c34263ea068ba2c3d0d3f (diff)
Merge "Refactor code smell AbstractValidatingChampGraph"
-rw-r--r--champ-lib/champ-core/src/main/java/org/onap/aai/champcore/graph/impl/AbstractValidatingChampGraph.java132
1 files changed, 71 insertions, 61 deletions
diff --git a/champ-lib/champ-core/src/main/java/org/onap/aai/champcore/graph/impl/AbstractValidatingChampGraph.java b/champ-lib/champ-core/src/main/java/org/onap/aai/champcore/graph/impl/AbstractValidatingChampGraph.java
index 3cfa12b..96135f9 100644
--- a/champ-lib/champ-core/src/main/java/org/onap/aai/champcore/graph/impl/AbstractValidatingChampGraph.java
+++ b/champ-lib/champ-core/src/main/java/org/onap/aai/champcore/graph/impl/AbstractValidatingChampGraph.java
@@ -41,125 +41,126 @@ import org.onap.aai.champcore.schema.ChampSchemaEnforcer;
public abstract class AbstractValidatingChampGraph extends AbstractLoggingChampGraph {
+ public static final String CANNOT_USE_CHAMP_API_AFTER_CALLING_SHUTDOWN = "Cannot use ChampAPI after calling shutdown()";
private ChampSchema schema = ChampSchema.emptySchema();
+ protected AbstractValidatingChampGraph(Map<String, Object> properties) {
+ super(properties);
+ }
protected abstract ChampSchemaEnforcer getSchemaEnforcer();
+
protected abstract boolean isShutdown();
/**
* Updates an existing vertex in the graph data store.
* <p>
- * If a transaction context is not provided, then a transaction will be automatically
+ * If a transaction context is not provided, then a transaction will be automatically
* created and committed for this operation only, otherwise, the supplied transaction
- * will be used and it will be up to the caller to commit the transaction at its
+ * will be used and it will be up to the caller to commit the transaction at its
* discretion.
* <p>
- *
+ *
* @param object - The vertex to be updated in the graph data store.
* @param transaction - Optional transaction context to perform the operation in.
- *
+ *
* @return - The updated vertex, marshaled as a {@link ChampObject}
- *
- * @throws ChampMarshallingException - If the {@code relationship} is not able to be
+ *
+ * @throws ChampMarshallingException - If the {@code relationship} is not able to be
* marshalled into the backend representation
- * @throws ChampObjectNotExistsException - If {@link org.onap.aai.champcore.model.ChampObject#getKey}
+ * @throws ChampObjectNotExistsException - If {@link org.onap.aai.champcore.model.ChampObject#getKey}
* is not present or object not found in the graph
*/
- protected abstract ChampObject doReplaceObject(ChampObject object, Optional<ChampTransaction> transaction) throws ChampMarshallingException, ChampObjectNotExistsException, ChampTransactionException, ChampTransactionException;
-
- /**
+ protected abstract ChampObject doReplaceObject(ChampObject object, Optional<ChampTransaction> transaction) throws ChampMarshallingException, ChampObjectNotExistsException, ChampTransactionException;
+
+ /**
* Creates or updates a vertex in the graph data store.
* <p>
- * If a transaction context is not provided, then a transaction will be automatically
+ * If a transaction context is not provided, then a transaction will be automatically
* created and committed for this operation only, otherwise, the supplied transaction
- * will be used and it will be up to the caller to commit the transaction at its
+ * will be used and it will be up to the caller to commit the transaction at its
* discretion.
- *
+ *
* @param object - The vertex to be stored in the graph data store.
* @param transaction - Optional transaction context to perform the operation in.
- *
+ *
* @return - The vertex which was created, marshaled as a {@link ChampObject}
- *
- * @throws ChampMarshallingException - If the {@code relationship} is not able to be
+ *
+ * @throws ChampMarshallingException - If the {@code relationship} is not able to be
* marshaled into the back end representation
- * @throws ChampObjectNotExistsException - If {@link org.onap.aai.champcore.model.ChampObject#getKey}
+ * @throws ChampObjectNotExistsException - If {@link org.onap.aai.champcore.model.ChampObject#getKey}
* is not present or object not found in the graph
*/
protected abstract ChampObject doStoreObject(ChampObject object, Optional<ChampTransaction> transaction) throws ChampMarshallingException, ChampObjectNotExistsException, ChampTransactionException;
-
+
/**
* Replaces an edge in the graph data store.
* <p>
- * If a transaction context is not provided, then a transaction will be automatically
+ * If a transaction context is not provided, then a transaction will be automatically
* created and committed for this operation only, otherwise, the supplied transaction
- * will be used and it will be up to the caller to commit the transaction at its
+ * will be used and it will be up to the caller to commit the transaction at its
* discretion.
- *
+ *
* @param relationship - The edge to be replaced in the graph data store.
* @param transaction - Optional transaction context to perform the operation in.
- *
+ *
* @return - The edge as it was replaced, marshaled as a {@link ChampRelationship}
- *
- * @throws ChampUnmarshallingException - If the edge which was created could not be
+ *
+ * @throws ChampUnmarshallingException - If the edge which was created could not be
* unmarshaled into a ChampObject
- * @throws ChampRelationshipNotExistsException - If {@link org.onap.aai.champcore.model.ChampRelationship#getKey}.isPresent()
+ * @throws ChampRelationshipNotExistsException - If {@link org.onap.aai.champcore.model.ChampRelationship#getKey}.isPresent()
* but the object cannot be found in the graph
- * @throws ChampMarshallingException - If the {@code relationship} is not able to be
+ * @throws ChampMarshallingException - If the {@code relationship} is not able to be
* marshaled into the back end representation
*/
protected abstract ChampRelationship doReplaceRelationship(ChampRelationship relationship, Optional<ChampTransaction> transaction) throws ChampUnmarshallingException, ChampRelationshipNotExistsException, ChampMarshallingException, ChampTransactionException;
-
+
/**
* Creates or updates a relationship in the graph data store.
* <p>
- * If a transaction context is not provided, then a transaction will be automatically
+ * If a transaction context is not provided, then a transaction will be automatically
* created and committed for this operation only, otherwise, the supplied transaction
- * will be used and it will be up to the caller to commit the transaction at its
+ * will be used and it will be up to the caller to commit the transaction at its
* discretion.
- *
+ *
* @param relationship - The relationship to be stored in the graph data store.
* @param transaction - Optional transaction context to perform the operation in.
- *
+ *
* @return - The relationship that was stored.
- *
- * @throws ChampUnmarshallingException - If the edge which was created could not be
+ *
+ * @throws ChampUnmarshallingException - If the edge which was created could not be
* unmarshalled into a ChampObject
- * @throws ChampObjectNotExistsException - If {@link org.onap.aai.champcore.model.ChampObject#getKey}
+ * @throws ChampObjectNotExistsException - If {@link org.onap.aai.champcore.model.ChampObject#getKey}
* is not present or object not found in the graph
- * @throws ChampRelationshipNotExistsException - If {@link org.onap.aai.champcore.model.ChampRelationship#getKey}.isPresent()
+ * @throws ChampRelationshipNotExistsException - If {@link org.onap.aai.champcore.model.ChampRelationship#getKey}.isPresent()
* but the object cannot be found in the graph
- * @throws ChampMarshallingException - If the {@code relationship} is not able to be
+ * @throws ChampMarshallingException - If the {@code relationship} is not able to be
* marshalled into the backend representation
*/
protected abstract ChampRelationship doStoreRelationship(ChampRelationship relationship, Optional<ChampTransaction> transaction) throws ChampUnmarshallingException, ChampObjectNotExistsException, ChampRelationshipNotExistsException, ChampMarshallingException, ChampTransactionException;
-
+
/**
* Creates or updates a partition in the graph data store.
- *
+ *
* @param partition - The partition to be stored in the graph data store.
* @param transaction - Optional transaction context to perform the operation in.
- *
+ *
* @return - The partition that was stored.
- *
- * @throws ChampRelationshipNotExistsException - If {@link org.onap.aai.champcore.model.ChampRelationship#getKey}.isPresent()
+ *
+ * @throws ChampRelationshipNotExistsException - If {@link org.onap.aai.champcore.model.ChampRelationship#getKey}.isPresent()
* but the object cannot be found in the graph
- * @throws ChampMarshallingException - If the {@code relationship} is not able to be
+ * @throws ChampMarshallingException - If the {@code relationship} is not able to be
* marshalled into the backend representation
- * @throws ChampObjectNotExistsException - If {@link org.onap.aai.champcore.model.ChampObject#getKey}
+ * @throws ChampObjectNotExistsException - If {@link org.onap.aai.champcore.model.ChampObject#getKey}
* is not present or object not found in the graph
*/
protected abstract ChampPartition doStorePartition(ChampPartition partition, Optional<ChampTransaction> transaction) throws ChampRelationshipNotExistsException, ChampMarshallingException, ChampObjectNotExistsException, ChampTransactionException;
- protected AbstractValidatingChampGraph(Map<String, Object> properties) {
- super(properties);
- }
-
@Override
public ChampObject executeStoreObject(ChampObject object, Optional<ChampTransaction> transaction)
throws ChampMarshallingException, ChampSchemaViolationException, ChampObjectNotExistsException, ChampTransactionException {
if (isShutdown()) {
- throw new IllegalStateException("Cannot use ChampAPI after calling shutdown()");
+ throw new IllegalStateException(CANNOT_USE_CHAMP_API_AFTER_CALLING_SHUTDOWN);
}
validate(object);
@@ -173,7 +174,7 @@ public abstract class AbstractValidatingChampGraph extends AbstractLoggingChampG
throws ChampMarshallingException, ChampSchemaViolationException, ChampObjectNotExistsException, ChampTransactionException {
if (isShutdown()) {
- throw new IllegalStateException("Cannot use ChampAPI after calling shutdown()");
+ throw new IllegalStateException(CANNOT_USE_CHAMP_API_AFTER_CALLING_SHUTDOWN);
}
validate(object);
@@ -186,7 +187,7 @@ public abstract class AbstractValidatingChampGraph extends AbstractLoggingChampG
throws ChampUnmarshallingException, ChampMarshallingException, ChampObjectNotExistsException, ChampSchemaViolationException, ChampRelationshipNotExistsException, ChampTransactionException {
if (isShutdown()) {
- throw new IllegalStateException("Cannot use ChampAPI after calling shutdown()");
+ throw new IllegalStateException(CANNOT_USE_CHAMP_API_AFTER_CALLING_SHUTDOWN);
}
validate(relationship);
@@ -199,7 +200,7 @@ public abstract class AbstractValidatingChampGraph extends AbstractLoggingChampG
throws ChampUnmarshallingException, ChampMarshallingException, ChampSchemaViolationException, ChampRelationshipNotExistsException, ChampTransactionException {
if (isShutdown()) {
- throw new IllegalStateException("Cannot use ChampAPI after calling shutdown()");
+ throw new IllegalStateException(CANNOT_USE_CHAMP_API_AFTER_CALLING_SHUTDOWN);
}
validate(relationship);
@@ -211,7 +212,7 @@ public abstract class AbstractValidatingChampGraph extends AbstractLoggingChampG
public ChampPartition executeStorePartition(ChampPartition partition, Optional<ChampTransaction> transaction) throws ChampSchemaViolationException, ChampRelationshipNotExistsException, ChampMarshallingException, ChampObjectNotExistsException, ChampTransactionException {
if (isShutdown()) {
- throw new IllegalStateException("Cannot use ChampAPI after calling shutdown()");
+ throw new IllegalStateException(CANNOT_USE_CHAMP_API_AFTER_CALLING_SHUTDOWN);
}
validate(partition);
@@ -222,7 +223,8 @@ public abstract class AbstractValidatingChampGraph extends AbstractLoggingChampG
protected void validate(ChampObject object) throws ChampSchemaViolationException {
final Optional<ChampObjectConstraint> objectConstraint = retrieveSchema().getObjectConstraint(object.getType());
- if (objectConstraint.isPresent()) getSchemaEnforcer().validate(object, objectConstraint.get());
+ if (objectConstraint.isPresent())
+ getSchemaEnforcer().validate(object, objectConstraint.get());
}
protected void validate(ChampRelationship relationship) throws ChampSchemaViolationException {
@@ -231,9 +233,12 @@ public abstract class AbstractValidatingChampGraph extends AbstractLoggingChampG
final Optional<ChampObjectConstraint> sourceObjConstraint = graphSchema.getObjectConstraint(relationship.getSource().getType());
final Optional<ChampObjectConstraint> targetObjConstraint = graphSchema.getObjectConstraint(relationship.getTarget().getType());
- if (relationshipConstraint.isPresent()) getSchemaEnforcer().validate(relationship, relationshipConstraint.get());
- if (sourceObjConstraint.isPresent()) getSchemaEnforcer().validate(relationship.getSource(), sourceObjConstraint.get());
- if (targetObjConstraint.isPresent()) getSchemaEnforcer().validate(relationship.getTarget(), targetObjConstraint.get());
+ if (relationshipConstraint.isPresent())
+ getSchemaEnforcer().validate(relationship, relationshipConstraint.get());
+ if (sourceObjConstraint.isPresent())
+ getSchemaEnforcer().validate(relationship.getSource(), sourceObjConstraint.get());
+ if (targetObjConstraint.isPresent())
+ getSchemaEnforcer().validate(relationship.getTarget(), targetObjConstraint.get());
}
protected void validate(ChampPartition partition) throws ChampSchemaViolationException {
@@ -248,21 +253,24 @@ public abstract class AbstractValidatingChampGraph extends AbstractLoggingChampG
@Override
public void storeSchema(ChampSchema schema) throws ChampSchemaViolationException {
- if (isShutdown()) throw new IllegalStateException("Cannot call storeSchema() after shutdown has been initiated");
+ if (isShutdown())
+ throw new IllegalStateException("Cannot call storeSchema() after shutdown has been initiated");
this.schema = schema;
}
@Override
public ChampSchema retrieveSchema() {
- if (isShutdown()) throw new IllegalStateException("Cannot call retrieveSchema() after shutdown has been initiated");
+ if (isShutdown())
+ throw new IllegalStateException("Cannot call retrieveSchema() after shutdown has been initiated");
return schema;
}
@Override
public void updateSchema(ChampObjectConstraint objectConstraint) throws ChampSchemaViolationException {
- if (isShutdown()) throw new IllegalStateException("Cannot call updateSchema() after shutdown has been initiated");
+ if (isShutdown())
+ throw new IllegalStateException("Cannot call updateSchema() after shutdown has been initiated");
final ChampSchema currentSchema = retrieveSchema();
final ChampSchema updatedSchema = new ChampSchema.Builder(currentSchema)
@@ -274,7 +282,8 @@ public abstract class AbstractValidatingChampGraph extends AbstractLoggingChampG
@Override
public void updateSchema(ChampRelationshipConstraint relationshipConstraint) throws ChampSchemaViolationException {
- if (isShutdown()) throw new IllegalStateException("Cannot call updateSchema() after shutdown has been initiated");
+ if (isShutdown())
+ throw new IllegalStateException("Cannot call updateSchema() after shutdown has been initiated");
final ChampSchema currentSchema = retrieveSchema();
final ChampSchema updatedSchema = new ChampSchema.Builder(currentSchema)
@@ -286,7 +295,8 @@ public abstract class AbstractValidatingChampGraph extends AbstractLoggingChampG
@Override
public void deleteSchema() {
- if (isShutdown()) throw new IllegalStateException("Cannot call deleteSchema() after shutdown has been initiated");
+ if (isShutdown())
+ throw new IllegalStateException("Cannot call deleteSchema() after shutdown has been initiated");
this.schema = ChampSchema.emptySchema();
}
}