summaryrefslogtreecommitdiffstats
path: root/model/model-api/src/main
diff options
context:
space:
mode:
authorliamfallon <liam.fallon@est.tech>2022-02-10 12:06:25 +0000
committerliamfallon <liam.fallon@est.tech>2022-02-10 13:48:15 +0000
commit8534756d13531ffec9c2d7b2ffe0a53ee1d3aaef (patch)
treea35f6b3f7766d47900ee6691111acff1418bb747 /model/model-api/src/main
parent2f2c5465cd23c8c3300a5c3d185806bb3e7d73c1 (diff)
Collapse apex-pdp maven model submodules
This review collapses all the code in six podel submodules into a single model module. There are no code changes, just files moved around. This change reduces the complexity of the code structure and speeds up the build. Issue-ID: POLICY-1820 Change-Id: Ifb644e8ec85ae6d0987378f4616fbc8a8858a9a8 Signed-off-by: liamfallon <liam.fallon@est.tech>
Diffstat (limited to 'model/model-api/src/main')
-rw-r--r--model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/ApexApiResult.java264
-rw-r--r--model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/ApexEditorApi.java905
-rw-r--r--model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/ApexModel.java176
-rw-r--r--model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/ApexModelFactory.java76
-rw-r--r--model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/impl/ApexModelImpl.java866
-rw-r--r--model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/impl/ContextAlbum.java39
-rw-r--r--model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/impl/ContextAlbumFacade.java254
-rw-r--r--model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/impl/ContextSchemaFacade.java238
-rw-r--r--model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/impl/CreatePolicyStateTaskRef.java38
-rw-r--r--model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/impl/EventFacade.java386
-rw-r--r--model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/impl/KeyInformationFacade.java228
-rw-r--r--model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/impl/ModelFacade.java202
-rw-r--r--model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/impl/ModelHandlerFacade.java498
-rw-r--r--model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/impl/PolicyFacade.java1385
-rw-r--r--model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/impl/TaskFacade.java597
-rw-r--r--model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/impl/package-info.java27
-rw-r--r--model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/package-info.java27
17 files changed, 0 insertions, 6206 deletions
diff --git a/model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/ApexApiResult.java b/model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/ApexApiResult.java
deleted file mode 100644
index 83e3b5370..000000000
--- a/model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/ApexApiResult.java
+++ /dev/null
@@ -1,264 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Copyright (C) 2016-2018 Ericsson. All rights reserved.
- * Modifications Copyright (C) 2020,2022 Nordix Foundation.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.apex.model.modelapi;
-
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import java.util.ArrayList;
-import java.util.List;
-import lombok.Setter;
-
-/**
- * The Class ApexEditorAPIResult return the result of and messages from all model API method calls on the
- * {@link ApexModel} API.
- */
-@Setter
-public class ApexApiResult {
-
- /**
- * This enumeration is used to represent the result status of a call on the {@link ApexModel} API.
- */
- public enum Result {
- /** The method call succeeded. */
- SUCCESS,
- /** The method call succeeded and all operations are now completed. */
- FINISHED,
- /** The method call for a create operation failed because the concept already exists. */
- CONCEPT_EXISTS,
- /**
- * The method call for a create operation failed because multiple concepts already exists.
- */
- MULTIPLE_CONCEPTS_EXIST,
- /** The method call on a concept failed because the referenced concept does not exist. */
- CONCEPT_DOES_NOT_EXIST,
- /** The method call failed because no action was specified on the method call. */
- NO_ACTION_SPECIFIED,
- /**
- * The method call failed because of a structural error, a missing reference, or other error on the model.
- */
- FAILED,
- /**
- * The method call failed for another reason such as the method call is not implemented yet on the concept on
- * which it was called.
- */
- OTHER_ERROR;
-
- /**
- * Check if a result is OK.
- *
- * @param result the result
- * @return true if the result is not OK
- */
- public static boolean isOk(final Result result) {
- return result == Result.SUCCESS || result == Result.FINISHED;
- }
-
- /**
- * Check if a result is not OK.
- *
- * @param result the result
- * @return true if the result is not OK
- */
- public static boolean isNok(final Result result) {
- return !isOk(result);
- }
- }
-
- private Result result;
- private List<String> messages = new ArrayList<>();
-
- /**
- * The Default Constructor creates a result for a successful operation with no messages.
- */
- public ApexApiResult() {
- result = Result.SUCCESS;
- }
-
- /**
- * This Constructor creates a result with the given result status with no messages.
- *
- * @param result the result status to use on this result
- */
- public ApexApiResult(final Result result) {
- this.result = result;
- }
-
- /**
- * This Constructor creates a result with the given result status and message.
- *
- * @param result the result status to use on this result
- * @param message the message to return with the result
- */
- public ApexApiResult(final Result result, final String message) {
- this.result = result;
- addMessage(message);
- }
-
- /**
- * This Constructor creates a result with the given result status and {@link Throwable} object such as an exception.
- * The message and stack trace from the {@link Throwable} object are added to the message list of this message.
- *
- * @param result the result status to use on this result
- * @param throwable the throwable object from which to add the message and stack trace
- */
- public ApexApiResult(final Result result, final Throwable throwable) {
- this.result = result;
- addThrowable(throwable);
- }
-
- /**
- * This Constructor creates a result with the given result status, message, and {@link Throwable} object such as an
- * exception. The message and stack trace from the {@link Throwable} object are added to the message list of this
- * message.
- *
- * @param result the result status to use on this result
- * @param message the message to return with the result
- * @param throwable the throwable object from which to add the message and stack trace
- */
- public ApexApiResult(final Result result, final String message, final Throwable throwable) {
- this.result = result;
- addMessage(message);
- addThrowable(throwable);
- }
-
- /**
- * This message is a utility message that checks if the result of an operation on the API was OK.
- *
- * @return true, if the result indicates the API operation succeeded
- */
- public boolean isOk() {
- return Result.isOk(result);
- }
-
- /**
- * This message is a utility message that checks if the result of an operation on the API was not OK.
- *
- * @return true, if the result indicates the API operation did not succeed
- */
- public boolean isNok() {
- return Result.isNok(result);
- }
-
- /**
- * Gets the result status of an API operation.
- *
- * @return the result status
- */
- public Result getResult() {
- return result;
- }
-
- /**
- * Gets the list of messages returned by an API operation.
- *
- * @return the list of messages returned by an API operation
- */
- public List<String> getMessages() {
- return messages;
- }
-
- /**
- * Gets all the messages returned by an API operation as a single string.
- *
- * @return the messages returned by an API operation as a single string
- */
- public String getMessage() {
- final StringBuilder builder = new StringBuilder();
- for (final String message : messages) {
- builder.append(message);
- builder.append('\n');
- }
-
- return builder.toString();
- }
-
- /**
- * Adds a message from an API operation to the bottom of the list of messages to be returned.
- *
- * @param message the message from an API operation to add to the bottom of the list of messages to be returned
- */
- public void addMessage(final String message) {
- if (message != null && message.trim().length() > 0) {
- messages.add(message);
- }
- }
-
- /**
- * Adds the message and stack trace from a {@link Throwable} object such as an exception from an API operation to
- * the bottom of the list of messages to be returned.
- *
- * @param throwable the {@link Throwable} object such as an exception from an API operation from which the message
- * and stack trace are to be extracted and placed at the bottom of the list of messages to be returned
- */
- public void addThrowable(final Throwable throwable) {
- final StringWriter throwableStringWriter = new StringWriter();
- final PrintWriter throwablePrintWriter = new PrintWriter(throwableStringWriter);
- throwable.printStackTrace(throwablePrintWriter);
- messages.add(throwable.getMessage());
- messages.add(throwableStringWriter.toString());
- }
-
- /**
- * Gets a representation of the {@link ApexApiResult} instance as a JSON string.
- *
- * @return the result instance JSON string
- */
- public String toJson() {
- final StringBuilder builder = new StringBuilder();
- builder.append("{\n");
-
- builder.append("\"result\": \"");
- builder.append(result.toString());
- builder.append("\",\n");
-
- builder.append("\"messages\": [");
- boolean first = true;
- for (final String message : messages) {
- if (first) {
- builder.append("\n\"");
- first = false;
- } else {
- builder.append(",\n\"");
- }
- builder.append(message.replace("\"", "\\\\\""));
- builder.append("\"");
- }
- builder.append("]\n");
-
- builder.append("}\n");
-
- return builder.toString();
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public String toString() {
- final StringBuilder builder = new StringBuilder();
- builder.append("result: ");
- builder.append(result);
- builder.append('\n');
- builder.append(getMessage());
- return builder.toString();
- }
-}
diff --git a/model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/ApexEditorApi.java b/model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/ApexEditorApi.java
deleted file mode 100644
index 8974d1fa8..000000000
--- a/model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/ApexEditorApi.java
+++ /dev/null
@@ -1,905 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Copyright (C) 2016-2018 Ericsson. All rights reserved.
- * Modifications Copyright (C) 2021-2022 Bell Canada. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.apex.model.modelapi;
-
-/**
- * The Interface ApexEditorAPI is used to manipulate Apex models.
- */
-public interface ApexEditorApi {
- /*
- * Model API Methods
- */
-
- /**
- * Create model.
- *
- * @param name name of the model
- * @param version version of the model, set to null to use the default version
- * @param uuid model UUID, set to null to generate a UUID
- * @param description model description, set to null to generate a description
- * @return result of the operation
- */
- ApexApiResult createModel(final String name, final String version, final String uuid, final String description);
-
- /**
- * Update model.
- *
- * @param name name of the model
- * @param version version of the model, set to null to update the latest version
- * @param uuid key information UUID, set to null to not update
- * @param description policy description, set to null to not update
- * @return result of the operation
- */
- ApexApiResult updateModel(final String name, final String version, final String uuid, final String description);
-
- /**
- * Get the key of an Apex model.
- *
- * @return the result of the operation
- */
- ApexApiResult getModelKey();
-
- /**
- * List an Apex model.
- *
- * @return the result of the operation
- */
- ApexApiResult listModel();
-
- /**
- * Delete an Apex model, clear all the concepts in the model.
- *
- * @return the result of the operation
- */
- ApexApiResult deleteModel();
-
- /*
- * Key Information API Methods
- */
-
- /**
- * Create key information.
- *
- * @param name name of the concept for the key information
- * @param version version of the concept for the key information, set to null to use the default
- * version
- * @param uuid key information UUID, set to null to generate a UUID
- * @param description key information description, set to null to generate a description
- * @return result of the operation
- */
- ApexApiResult createKeyInformation(final String name, final String version, final String uuid,
- final String description);
-
- /**
- * Update key information.
- *
- * @param name name of the concept for the key information
- * @param version version of the concept for the key information, set to null to update the
- * latest version
- * @param uuid key information UUID, set to null to not update
- * @param description key information description, set to null to not update
- * @return result of the operation
- */
- ApexApiResult updateKeyInformation(final String name, final String version, final String uuid,
- final String description);
-
- /**
- * List key information.
- *
- * @param name name of the concept for the key information, set to null to list all
- * @param version starting version of the concept for the key information, set to null to list
- * all versions
- * @return result of the operation
- */
- ApexApiResult listKeyInformation(final String name, final String version);
-
- /**
- * Delete key information.
- *
- * @param name name of the concept for the key information
- * @param version version of the concept for the key information, set to null to delete all
- * versions
- * @return result of the operation
- */
- ApexApiResult deleteKeyInformation(final String name, final String version);
-
- /**
- * Validate key information.
- *
- * @param name name of the concept for the key information
- * @param version version of the concept for the key information, set to null to validate all
- * versions
- * @return result of the operation
- */
- ApexApiResult validateKeyInformation(final String name, final String version);
-
- /*
- * Context Schema API Methods
- */
-
- /**
- * Create a context schema.
- *
- * @param name name of the context schema
- * @param version version of the context schema, set to null to use the default version
- * @param schemaFlavour a final String identifying the flavour of this context schema
- * @param schemaDefinition a final String containing the definition of this context schema
- * @param uuid context schema UUID, set to null to generate a UUID
- * @param description context schema description, set to null to generate a description
- * @return result of the operation
- */
- ApexApiResult createContextSchema(final String name, final String version, final String schemaFlavour,
- final String schemaDefinition, final String uuid, final String description);
-
- /**
- * Update a context schema.
- *
- * @param name name of the context schema
- * @param version version of the context schema, set to null to update the latest version
- * @param schemaFlavour a final String identifying the flavour of this context schema
- * @param schemaDefinition a final String containing the definition of this context schema
- * @param uuid context schema UUID, set to null to not update
- * @param description context schema description, set to null to not update
- * @return result of the operation
- */
- ApexApiResult updateContextSchema(final String name, final String version, final String schemaFlavour,
- final String schemaDefinition, final String uuid, final String description);
-
- /**
- * List context schemas.
- *
- * @param name name of the context schema, set to null to list all
- * @param version starting version of the context schema, set to null to list all versions
- * @return result of the operation
- */
- ApexApiResult listContextSchemas(final String name, final String version);
-
- /**
- * Delete a context schema.
- *
- * @param name name of the context schema
- * @param version version of the context schema, set to null to delete all versions
- * @return result of the operation
- */
- ApexApiResult deleteContextSchema(final String name, final String version);
-
- /**
- * Validate context schemas.
- *
- * @param name name of the context schema, set to null to list all
- * @param version starting version of the context schema, set to null to list all versions
- * @return result of the operation
- */
- ApexApiResult validateContextSchemas(final String name, final String version);
-
- /*
- * Event API Methods
- */
-
- /**
- * Create an event.
- *
- * @param name name of the event
- * @param version version of the event, set to null to use the default version
- * @param nameSpace of the event, set to null to use the default value
- * @param source of the event, set to null to use the default value
- * @param target of the event, set to null to use the default value
- * @param uuid event UUID, set to null to generate a UUID
- * @param description event description, set to null to generate a description
- * @param toscaPolicyState specifies TOSCA policy processing status
- * @return result of the operation
- */
- ApexApiResult createEvent(final String name, final String version, final String nameSpace, final String source,
- final String target, final String uuid, final String description, final String toscaPolicyState);
-
- /**
- * Update an event.
- *
- * @param name name of the event
- * @param version version of the event, set to null to use the latest version
- * @param nameSpace of the event, set to null to not update
- * @param source of the event, set to null to not update
- * @param target of the event, set to null to not update
- * @param uuid event UUID, set to null to not update
- * @param description event description, set to null to not update
- * @param toscaPolicyState specifies TOSCA policy processing status
- * @return result of the operation
- */
- ApexApiResult updateEvent(final String name, final String version, final String nameSpace, final String source,
- final String target, final String uuid, final String description, final String toscaPolicyState);
-
- /**
- * List events.
- *
- * @param name name of the event, set to null to list all
- * @param version starting version of the event, set to null to list all versions
- * @return result of the operation
- */
- ApexApiResult listEvent(final String name, final String version);
-
- /**
- * Delete an event.
- *
- * @param name name of the event
- * @param version version of the event, set to null to delete all versions
- * @return result of the operation
- */
- ApexApiResult deleteEvent(final String name, final String version);
-
- /**
- * Validate events.
- *
- * @param name name of the event, set to null to list all
- * @param version starting version of the event, set to null to list all versions
- * @return result of the operation
- */
- ApexApiResult validateEvent(final String name, final String version);
-
- /**
- * Create an event parameter.
- *
- * @param name name of the event
- * @param version version of the event, set to null to use the latest version
- * @param parName of the parameter
- * @param contextSchemaName name of the parameter context schema
- * @param contextSchemaVersion version of the parameter context schema, set to null to use the
- * latest version
- * @param optional true if the event parameter is optional, false otherwise
- * @return result of the operation
- */
- ApexApiResult createEventPar(final String name, final String version, final String parName,
- final String contextSchemaName, final String contextSchemaVersion, boolean optional);
-
- /**
- * List event parameters.
- *
- * @param name name of the event
- * @param version version of the event, set to null to list latest version
- * @param parName name of the parameter, set to null to list all parameters of the event
- * @return result of the operation
- */
- ApexApiResult listEventPar(final String name, final String version, final String parName);
-
- /**
- * Delete an event parameter.
- *
- * @param name name of the event
- * @param version version of the event, set to null to use the latest version
- * @param parName of the parameter, set to null to delete all parameters
- * @return result of the operation
- */
- ApexApiResult deleteEventPar(final String name, final String version, final String parName);
-
- /*
- * Context Album API Methods
- */
-
- /**
- * Create a context album.
- *
- * @param name name of the context album
- * @param version version of the context album, set to null to use the default version
- * @param scope of the context album
- * @param writable "true" or "t" if the context album is writable, set to null or any other
- * value for a read-only album
- * @param contextSchemaName name of the parameter context schema
- * @param contextSchemaVersion version of the parameter context schema, set to null to use the
- * latest version
- * @param uuid context album UUID, set to null to generate a UUID
- * @param description context album description, set to null to generate a description
- * @return result of the operation
- */
- // CHECKSTYLE:OFF: checkstyle:parameterNumber
- ApexApiResult createContextAlbum(final String name, final String version, final String scope, final String writable,
- final String contextSchemaName, final String contextSchemaVersion, final String uuid,
- final String description);
- // CHECKSTYLE:ON: checkstyle:parameterNumber
-
- /**
- * Update a context album.
- *
- * @param name name of the context album
- * @param version version of the context album, set to null to use the default version
- * @param scope of the context album
- * @param writable "true" or "t" if the context album is writable, set to null or any other
- * value for a read-only album
- * @param contextSchemaName name of the parameter context schema
- * @param contextSchemaVersion version of the parameter context schema, set to null to use the
- * latest version
- * @param uuid context album UUID, set to null to generate a UUID
- * @param description context album description, set to null to generate a description
- * @return result of the operation
- */
- // CHECKSTYLE:OFF: checkstyle:parameterNumber
- ApexApiResult updateContextAlbum(final String name, final String version, final String scope, final String writable,
- final String contextSchemaName, final String contextSchemaVersion, final String uuid,
- final String description);
- // CHECKSTYLE:ON: checkstyle:parameterNumber
-
- /**
- * List context albums.
- *
- * @param name name of the context album, set to null to list all
- * @param version starting version of the context album, set to null to list all versions
- * @return result of the operation
- */
- ApexApiResult listContextAlbum(final String name, final String version);
-
- /**
- * Delete a context album.
- *
- * @param name name of the context album
- * @param version version of the context album, set to null to delete versions
- * @return result of the operation
- */
- ApexApiResult deleteContextAlbum(final String name, final String version);
-
- /**
- * Validate context albums.
- *
- * @param name name of the context album, set to null to list all
- * @param version starting version of the context album, set to null to list all versions
- * @return result of the operation
- */
- ApexApiResult validateContextAlbum(final String name, final String version);
-
- /*
- * Task API Methods
- */
-
- /**
- * Create a task.
- *
- * @param name name of the task
- * @param version version of the task, set to null to use the default version
- * @param uuid task UUID, set to null to generate a UUID
- * @param description task description, set to null to generate a description
- * @return result of the operation
- */
- ApexApiResult createTask(final String name, final String version, final String uuid, final String description);
-
- /**
- * Update a task.
- *
- * @param name name of the task
- * @param version version of the task, set to null to use the latest version
- * @param uuid task UUID, set to null to not update
- * @param description task description, set to null to not update
- * @return result of the operation
- */
- ApexApiResult updateTask(final String name, final String version, final String uuid, final String description);
-
- /**
- * List tasks.
- *
- * @param name name of the task, set to null to list all
- * @param version starting version of the task, set to null to list all versions
- * @return result of the operation
- */
- ApexApiResult listTask(final String name, final String version);
-
- /**
- * Delete a task.
- *
- * @param name name of the task
- * @param version version of the task, set to null to use the latest version
- * @return result of the operation
- */
- ApexApiResult deleteTask(final String name, final String version);
-
- /**
- * Validate tasks.
- *
- * @param name name of the task, set to null to list all
- * @param version starting version of the task, set to null to list all versions
- * @return result of the operation
- */
- ApexApiResult validateTask(final String name, final String version);
-
- /**
- * Create logic for a task.
- *
- * @param name name of the task
- * @param version version of the task, set to null to use the latest version
- * @param logicFlavour the task logic flavour for the task, set to null to use the default task
- * logic flavour
- * @param logic the source code for the logic of the task
- * @return result of the operation
- */
- ApexApiResult createTaskLogic(final String name, final String version, final String logicFlavour,
- final String logic);
-
- /**
- * Update logic for a task.
- *
- * @param name name of the task
- * @param version version of the task, set to null to use the latest version
- * @param logicFlavour the task logic flavour for the task, set to null to not update
- * @param logic the source code for the logic of the task, set to null to not update
- * @return result of the operation
- */
- ApexApiResult updateTaskLogic(final String name, final String version, final String logicFlavour,
- final String logic);
-
- /**
- * List task logic.
- *
- * @param name name of the task
- * @param version version of the task, set to null to list the latest version
- * @return result of the operation
- */
- ApexApiResult listTaskLogic(final String name, final String version);
-
- /**
- * Delete logic for a task.
- *
- * @param name name of the task
- * @param version version of the task, set to null to use the latest version
- * @return result of the operation
- */
- ApexApiResult deleteTaskLogic(final String name, final String version);
-
- /**
- * Create a task field.
- *
- * @param name name of the task
- * @param version version of the task, set to null to use the latest version
- * @param fieldName of the input field
- * @param contextSchemaName name of the input field context schema
- * @param contextSchemaVersion version of the input field context schema, set to null to use the
- * latest version
- * @param optional true if the task field is optional, false otherwise
- * @return result of the operation
- */
- ApexApiResult createTaskField(final String name, final String version, final String fieldName,
- final String contextSchemaName, final String contextSchemaVersion, boolean optional);
-
- /**
- * Handle a task field.
- *
- * @param name name of the task
- * @param version version of the task, set to null to use the latest version
- * @param fieldName field name of the input field, set to null to list all input fields of the
- * task
- * @return result of the operation
- */
- ApexApiResult handleTaskField(final String name, final String version, final String fieldName);
-
- /**
- * Create a task parameter.
- *
- * @param name name of the task
- * @param version version of the task, set to null to use the latest version
- * @param parName of the parameter
- * @param defaultValue of the parameter
- * @return result of the operation
- */
- ApexApiResult createTaskParameter(final String name, final String version, final String parName,
- final String defaultValue);
-
- /**
- * List task parameters.
- *
- * @param name name of the task
- * @param version version of the task, set to null to use the latest version
- * @param parName name of the parameter, set to null to list all parameters of the task
- * @return result of the operation
- */
- ApexApiResult listTaskParameter(final String name, final String version, final String parName);
-
- /**
- * Delete a task parameter.
- *
- * @param name name of the task
- * @param version version of the task, set to null to use the latest version
- * @param parName of the parameter, set to null to delete all task parameters
- * @return result of the operation
- */
- ApexApiResult deleteTaskParameter(final String name, final String version, final String parName);
-
- /**
- * Create a task context album reference.
- *
- * @param name name of the task
- * @param version version of the task, set to null to use the latest version
- * @param contextAlbumName name of the context album for the context album reference
- * @param contextAlbumVersion version of the context album for the context album reference, set
- * to null to use the latest version
- * @return result of the operation
- */
- ApexApiResult createTaskContextRef(final String name, final String version, final String contextAlbumName,
- final String contextAlbumVersion);
-
- /**
- * List task context album references.
- *
- * @param name name of the task
- * @param version version of the task, set to null to use the latest version
- * @param contextAlbumName name of the context album for the context album reference, set to
- * null to list all task context album references
- * @param contextAlbumVersion version of the context album for the context album reference, set
- * to null to use the latest version
- * @return result of the operation
- */
- ApexApiResult listTaskContextRef(final String name, final String version, final String contextAlbumName,
- final String contextAlbumVersion);
-
- /**
- * Delete a task context album reference.
- *
- * @param name name of the task
- * @param version version of the task, set to null to use the latest version
- * @param contextAlbumName name of the context album for the context album reference, set to
- * null to delete all task context album references
- * @param contextAlbumVersion version of the context album for the context album reference, set
- * to null to use the latest version
- * @return result of the operation
- */
- ApexApiResult deleteTaskContextRef(final String name, final String version, final String contextAlbumName,
- final String contextAlbumVersion);
-
- /*
- * Policy API Methods
- */
-
- /**
- * Create a policy.
- *
- * @param name name of the policy
- * @param version version of the policy, set to null to use the default version
- * @param template template used to create the policy, set to null to use the default template
- * @param firstState the first state of the policy
- * @param uuid policy UUID, set to null to generate a UUID
- * @param description policy description, set to null to generate a description
- * @return result of the operation
- */
- ApexApiResult createPolicy(final String name, final String version, final String template, final String firstState,
- final String uuid, final String description);
-
- /**
- * Update a policy.
- *
- * @param name name of the policy
- * @param version version of the policy, set to null to use the latest version
- * @param template template used to create the policy, set to null to not update
- * @param firstState the first state of the policy
- * @param uuid policy UUID, set to null to not update
- * @param description policy description, set to null to not update
- * @return result of the operation
- */
- ApexApiResult updatePolicy(final String name, final String version, final String template, final String firstState,
- final String uuid, final String description);
-
- /**
- * List policies.
- *
- * @param name name of the policy, set to null to list all
- * @param version starting version of the policy, set to null to list all versions
- * @return result of the operation
- */
- ApexApiResult listPolicy(final String name, final String version);
-
- /**
- * Delete a policy.
- *
- * @param name name of the policy
- * @param version version of the policy, set to null to use the latest version
- * @return result of the operation
- */
- ApexApiResult deletePolicy(final String name, final String version);
-
- /**
- * Validate policies.
- *
- * @param name name of the policy, set to null to list all
- * @param version starting version of the policy, set to null to list all versions
- * @return result of the operation
- */
- ApexApiResult validatePolicy(final String name, final String version);
-
- /**
- * Create a policy state.
- *
- * @param name name of the policy
- * @param version version of the policy, set to null to use the latest version
- * @param stateName of the state
- * @param triggerName name of the trigger event for this state
- * @param triggerVersion version of the trigger event for this state, set to null to use the
- * latest version
- * @param defaultTaskName the default task name
- * @param defaltTaskVersion the default task version, set to null to use the latest version
- * @return result of the operation
- */
- ApexApiResult createPolicyState(final String name, final String version, final String stateName,
- final String triggerName, final String triggerVersion, final String defaultTaskName,
- final String defaltTaskVersion);
-
- /**
- * Update a policy state.
- *
- * @param name name of the policy
- * @param version version of the policy, set to null to use the latest version
- * @param stateName of the state
- * @param triggerName name of the trigger event for this state, set to null to not update
- * @param triggerVersion version of the trigger event for this state, set to use latest version
- * of trigger event
- * @param defaultTaskName the default task name, set to null to not update
- * @param defaltTaskVersion the default task version, set to use latest version of default task
- * @return result of the operation
- */
- ApexApiResult updatePolicyState(final String name, final String version, final String stateName,
- final String triggerName, final String triggerVersion, final String defaultTaskName,
- final String defaltTaskVersion);
-
- /**
- * List policy states.
- *
- * @param name name of the policy
- * @param version version of the policy, set to null to use the latest version
- * @param stateName of the state, set to null to list all states of the policy
- * @return result of the operation
- */
- ApexApiResult listPolicyState(final String name, final String version, final String stateName);
-
- /**
- * Delete a policy state.
- *
- * @param name name of the policy
- * @param version version of the policy, set to null to use the latest version
- * @param stateName of the state, set to null to delete all states
- * @return result of the operation
- */
- ApexApiResult deletePolicyState(final String name, final String version, final String stateName);
-
- /**
- * Create task selection logic for a state.
- *
- * @param name name of the policy
- * @param version version of the policy, set to null to use the latest version
- * @param stateName of the state
- * @param logicFlavour the task selection logic flavour for the state, set to null to use the
- * default task logic flavour
- * @param logic the source code for the logic of the state
- * @return result of the operation
- */
- ApexApiResult createPolicyStateTaskSelectionLogic(final String name, final String version, final String stateName,
- final String logicFlavour, final String logic);
-
- /**
- * Update task selection logic for a state.
- *
- * @param name name of the policy
- * @param version version of the policy, set to null to use the latest version
- * @param stateName of the state
- * @param logicFlavour the task selection logic flavour for the state, set to null to not update
- * @param logic the source code for the logic of the state, set to null to not update
- * @return result of the operation
- */
- ApexApiResult updatePolicyStateTaskSelectionLogic(final String name, final String version, final String stateName,
- final String logicFlavour, final String logic);
-
- /**
- * List task selection logic for a state.
- *
- * @param name name of the policy
- * @param version version of the policy, set to null to use the latest version
- * @param stateName of the state
- * @return result of the operation
- */
- ApexApiResult listPolicyStateTaskSelectionLogic(final String name, final String version, final String stateName);
-
- /**
- * Delete task selection logic for a state.
- *
- * @param name name of the policy
- * @param version version of the policy, set to null to use the latest version
- * @param stateName of the state
- * @return result of the operation
- */
- ApexApiResult deletePolicyStateTaskSelectionLogic(final String name, final String version, final String stateName);
-
- /**
- * Create a policy state output.
- *
- * @param name name of the policy
- * @param version version of the policy, set to null to use the latest version
- * @param stateName of the state
- * @param outputName of the state output
- * @param eventName name of the output event for this state output
- * @param eventVersion version of the output event for this state output, set to null to use the
- * latest version
- * @param nextState for this state to transition to, set to null if this is the last state that
- * the policy transitions to on this branch
- * @return result of the operation
- */
- ApexApiResult createPolicyStateOutput(final String name, final String version, final String stateName,
- final String outputName, final String eventName, final String eventVersion, final String nextState);
-
- /**
- * List policy state outputs.
- *
- * @param name name of the policy
- * @param version version of the policy, set to null to use the latest version
- * @param stateName of the state
- * @param outputName of the state output, set to null to list all outputs of the state
- * @return result of the operation
- */
- ApexApiResult listPolicyStateOutput(final String name, final String version, final String stateName,
- final String outputName);
-
- /**
- * Delete a policy state output.
- *
- * @param name name of the policy
- * @param version version of the policy, set to null to use the latest version
- * @param stateName of the state
- * @param outputName of the state output, set to null to delete all state outputs
- * @return result of the operation
- */
- ApexApiResult deletePolicyStateOutput(final String name, final String version, final String stateName,
- final String outputName);
-
- /**
- * Create policy finalizer logic for a state.
- *
- * @param name name of the policy
- * @param version version of the policy, set to null to use the latest version
- * @param stateName of the state
- * @param finalizerLogicName name of the state finalizer logic
- * @param logicFlavour the policy finalizer logic flavour for the state, set to null to use the
- * default task logic flavour
- * @param logic the source code for the logic of the state
- * @return result of the operation
- */
- ApexApiResult createPolicyStateFinalizerLogic(final String name, final String version, final String stateName,
- final String finalizerLogicName, final String logicFlavour, final String logic);
-
- /**
- * Update policy finalizer logic for a state.
- *
- * @param name name of the policy
- * @param version version of the policy, set to null to use the latest version
- * @param stateName of the state
- * @param finalizerLogicName name of the state finalizer logic
- * @param logicFlavour the policy finalizer logic flavour for the state, set to null to not
- * update
- * @param logic the source code for the logic of the state, set to null to not update
- * @return result of the operation
- */
- ApexApiResult updatePolicyStateFinalizerLogic(final String name, final String version, final String stateName,
- final String finalizerLogicName, final String logicFlavour, final String logic);
-
- /**
- * List policy finalizer logic for a state.
- *
- * @param name name of the policy
- * @param version version of the policy, set to null to use the latest version
- * @param stateName of the state
- * @param finalizerLogicName name of the state finalizer logic
- * @return result of the operation
- */
- ApexApiResult listPolicyStateFinalizerLogic(final String name, final String version, final String stateName,
- final String finalizerLogicName);
-
- /**
- * Delete policy finalizer logic for a state.
- *
- * @param name name of the policy
- * @param version version of the policy, set to null to use the latest version
- * @param stateName of the state
- * @param finalizerLogicName name of the state finalizer logic
- * @return result of the operation
- */
- ApexApiResult deletePolicyStateFinalizerLogic(final String name, final String version, final String stateName,
- final String finalizerLogicName);
-
- /**
- * Create a policy state task reference.
- *
- * @param name name of the policy
- * @param version version of the policy, set to null to use the latest version
- * @param stateName of the state
- * @param taskLocalName the task local name
- * @param taskName name of the task
- * @param taskVersion version of the task, set to null to use the latest version
- * @param outputType Type of output for the task, must be DIRECT for direct output to a state
- * output or LOGIC for output to state finalizer logic
- * @param outputName the name of the state output or state state finalizer logic to handle the
- * task output
- * @return result of the operation
- */
- // CHECKSTYLE:OFF: checkstyle:parameterNumber
- ApexApiResult createPolicyStateTaskRef(final String name, final String version, final String stateName,
- final String taskLocalName, final String taskName, final String taskVersion, final String outputType,
- final String outputName);
- // CHECKSTYLE:ON: checkstyle:parameterNumber
-
- /**
- * List policy state task references.
- *
- * @param name name of the policy
- * @param version version of the policy, set to null to use the latest version
- * @param stateName of the state
- * @param taskName name of the task, set to null to list all task references
- * @param taskVersion version of the task, set to null to use the latest version
- * @return result of the operation
- */
- ApexApiResult listPolicyStateTaskRef(final String name, final String version, final String stateName,
- final String taskName, final String taskVersion);
-
- /**
- * Delete a policy state task reference.
- *
- * @param name name of the policy
- * @param version version of the policy, set to null to use the latest version
- * @param stateName of the state
- * @param taskName name of the task, set to null to delete all task references
- * @param taskVersion version of the task, set to null to use the latest version
- * @return result of the operation
- */
- ApexApiResult deletePolicyStateTaskRef(final String name, final String version, final String stateName,
- final String taskName, final String taskVersion);
-
- /**
- * Create a policy state context album reference.
- *
- * @param name name of the policy
- * @param version version of the policy, set to null to use the latest version
- * @param stateName of the state
- * @param contextAlbumName name of the context album for the context album reference
- * @param contextAlbumVersion version of the context album for the context album reference, set
- * to null to use the latest version
- * @return result of the operation
- */
- ApexApiResult createPolicyStateContextRef(final String name, final String version, final String stateName,
- final String contextAlbumName, final String contextAlbumVersion);
-
- /**
- * List policy state context album references.
- *
- * @param name name of the policy
- * @param version version of the policy, set to null to use the latest version
- * @param stateName of the state
- * @param contextAlbumName name of the context album for the context album reference, set to
- * null to list all task context album references
- * @param contextAlbumVersion version of the context album for the context album reference, set
- * to null to use the latest version
- * @return result of the operation
- */
- ApexApiResult listPolicyStateContextRef(final String name, final String version, final String stateName,
- final String contextAlbumName, final String contextAlbumVersion);
-
- /**
- * Delete a policy state context album reference.
- *
- * @param name name of the policy
- * @param version version of the policy, set to null to use the default version
- * @param stateName of the state
- * @param contextAlbumName name of the context album for the context album reference, set to
- * null to delete all task context album references
- * @param contextAlbumVersion version of the context album for the context album reference, set
- * to null to use the latest version
- * @return result of the operation
- */
- ApexApiResult deletePolicyStateContextRef(final String name, final String version, final String stateName,
- final String contextAlbumName, final String contextAlbumVersion);
-} \ No newline at end of file
diff --git a/model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/ApexModel.java b/model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/ApexModel.java
deleted file mode 100644
index 3c6e4c063..000000000
--- a/model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/ApexModel.java
+++ /dev/null
@@ -1,176 +0,0 @@
-/*
- * ============LICENSE_START=======================================================
- * Copyright (C) 2016-2018 Ericsson. All rights reserved.
- * Modifications Copyright (C) 2022 Nordix Foundation.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.apex.model.modelapi;
-
-import org.onap.policy.apex.model.policymodel.concepts.AxPolicyModel;
-
-/**
- * The Interface ApexModelAPI provides functional methods that allow Apex models to be managed.
- *
- * @author Liam Fallon (liam.fallon@ericsson.com)
- */
-public interface ApexModel extends ApexEditorApi {
- /**
- * Make a deep copy of the Model.
- *
- * @return the result of the operation
- */
- ApexModel getCopy();
-
- /**
- * Load an Apex model from a string.
- *
- * @param modelString the string with the model
- * @return the result of the operation
- */
- ApexApiResult loadFromString(String modelString);
-
- /**
- * Load an Apex model from a file.
- *
- * @param fileName the file name of the file with the model
- * @return the result of the operation
- */
- ApexApiResult loadFromFile(String fileName);
-
- /**
- * Save an Apex model to a file.
- *
- * @param fileName the file name
- * @return the result of the operation
- */
- ApexApiResult saveToFile(String fileName);
-
- /**
- * Read an APEX model from a location identified by a URL.
- *
- * @param urlString the url string
- * @return the result of the operation
- */
- ApexApiResult readFromUrl(String urlString);
-
- /**
- * Write an APEX model to a location identified by a URL.
- *
- * @param urlString the URL to read the model from
- * @return the result of the operation
- */
- ApexApiResult writeToUrl(String urlString);
-
- /**
- * Analyse an Apex model that shows the concept usage references of a policy model.
- *
- * @return the result of the operation
- */
- ApexApiResult analyse();
-
- /**
- * Validate an Apex model, checking all concepts and references in the model.
- *
- * @return the result of the operation
- */
- ApexApiResult validate();
-
- /**
- * Compare to Apex models, returning the differences between the models.
- *
- * @param otherModelFileName the file name of the other model
- * @param diffsOnly only returns differences between the model when set
- * @param keysOnly only returns the keys that are different when set, when not set values are also returned
- * @return the result of the operation
- */
- ApexApiResult compare(String otherModelFileName, boolean diffsOnly, boolean keysOnly);
-
- /**
- * Compare two Apex models, returning the differences between the models.
- *
- * @param otherModelString the other model as a string
- * @param diffsOnly only returns differences between the model when set
- * @param keysOnly only returns the keys that are different when set, when not set values are also returned
- * @return the result of the operation
- */
- ApexApiResult compareWithString(String otherModelString, boolean diffsOnly, boolean keysOnly);
-
- /**
- * Split out a sub model from an Apex model that contains a given subset of the policies in the original model.
- *
- * @param targetModelName the file name of the target model in which to store the model split out from the original
- * model
- * @param splitOutPolicies the policies form the original model to include in the split out model, specified as a
- * comma delimited list of policy names
- * @return the result of the operation
- */
- ApexApiResult split(String targetModelName, String splitOutPolicies);
-
- /**
- * Split out a sub model from an Apex model that contains a given subset of the policies in the original model,
- * return the split model in the result as a string.
- *
- * @param splitOutPolicies the policies form the original model to include in the split out model, specified as a
- * comma delimited list of policy names
- * @return the result of the operation
- */
- ApexApiResult split(String splitOutPolicies);
-
- /**
- * Merge two Apex models together.
- *
- * @param mergeInModelName the file name of the model to merge into the current model
- * @param keepOriginal if this flag is set to true, if a concept exists in both models, the original model copy of
- * that concept is kept, if the flag is set to false, then the copy of the concept from the mergeInModel
- * overwrites the concept in the original model
- * @return the result of the operation
- */
- ApexApiResult merge(String mergeInModelName, boolean keepOriginal);
-
- /**
- * Merge two Apex models together.
- *
- * @param otherModelString the model to merge as a string
- * @param keepOriginal if this flag is set to true, if a concept exists in both models, the original model copy of
- * that concept is kept, if the flag is set to false, then the copy of the concept from the mergeInModel
- * overwrites the concept in the original model
- * @return the result of the operation
- */
- ApexApiResult mergeWithString(String otherModelString, boolean keepOriginal);
-
- /**
- * Get the raw policy model being used by this model.
- *
- * @return the policy model
- */
- AxPolicyModel getPolicyModel();
-
- /**
- * Set the raw policy model being used by this model.
- *
- * @param policyModel the policy model
- */
- void setPolicyModel(AxPolicyModel policyModel);
-
- /**
- * Builds the raw policy model being used by this model.
- *
- * @return the policy model
- */
- AxPolicyModel build();
-}
diff --git a/model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/ApexModelFactory.java b/model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/ApexModelFactory.java
deleted file mode 100644
index 908f562d2..000000000
--- a/model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/ApexModelFactory.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Copyright (C) 2016-2018 Ericsson. All rights reserved.
- * Modifications Copyright (C) 2022 Nordix Foundation.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.apex.model.modelapi;
-
-import java.util.Properties;
-import org.onap.policy.apex.model.modelapi.impl.ApexModelImpl;
-
-/**
- * A factory for creating ApexModel objects using the Apex Model implementation.
- *
- * @author Liam Fallon (liam.fallon@ericsson.com)
- */
-public class ApexModelFactory {
-
- /**
- * Creates a new ApexModel object from its implementation.
- *
- * @param apexProperties default values and other configuration information for the apex model
- * @return the apex model
- */
- public ApexModel createApexModel(final Properties apexProperties) {
- return new ApexModelImpl(setDefaultPropertyValues(apexProperties));
- }
-
- /**
- * Sets default property values for Apex properties that must be set for the Apex model
- * implementation if those properties are not already set.
- *
- * @param apexPropertiesIn the default property values
- * @return the properties
- */
- private Properties setDefaultPropertyValues(final Properties apexPropertiesIn) {
- Properties apexProperties = apexPropertiesIn;
-
- if (apexProperties == null) {
- apexProperties = new Properties();
- }
-
- if (apexProperties.getProperty("DEFAULT_CONCEPT_VERSION") == null) {
- apexProperties.setProperty("DEFAULT_CONCEPT_VERSION", "0.0.1");
- }
- if (apexProperties.getProperty("DEFAULT_EVENT_NAMESPACE") == null) {
- apexProperties.setProperty("DEFAULT_EVENT_NAMESPACE", "org.onap.policy.apex");
- }
- if (apexProperties.getProperty("DEFAULT_EVENT_SOURCE") == null) {
- apexProperties.setProperty("DEFAULT_EVENT_SOURCE", "source");
- }
- if (apexProperties.getProperty("DEFAULT_EVENT_TARGET") == null) {
- apexProperties.setProperty("DEFAULT_EVENT_TARGET", "target");
- }
- if (apexProperties.getProperty("DEFAULT_POLICY_TEMPLATE") == null) {
- apexProperties.setProperty("DEFAULT_POLICY_TEMPLATE", "FREEFORM");
- }
-
- return apexProperties;
- }
-}
diff --git a/model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/impl/ApexModelImpl.java b/model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/impl/ApexModelImpl.java
deleted file mode 100644
index 54b94d0e7..000000000
--- a/model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/impl/ApexModelImpl.java
+++ /dev/null
@@ -1,866 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Copyright (C) 2016-2018 Ericsson. All rights reserved.
- * Modifications Copyright (C) 2019 Samsung Electronics Co., Ltd.
- * Modifications Copyright (C) 2019,2022 Nordix Foundation.
- * Modifications Copyright (C) 2022 Bell Canada. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.apex.model.modelapi.impl;
-
-import java.util.Properties;
-import lombok.AccessLevel;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-import lombok.Setter;
-import org.onap.policy.apex.model.modelapi.ApexApiResult;
-import org.onap.policy.apex.model.modelapi.ApexApiResult.Result;
-import org.onap.policy.apex.model.modelapi.ApexModel;
-import org.onap.policy.apex.model.policymodel.concepts.AxPolicyModel;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * This class is an implementation of a facade on an Apex model for editors of Apex models.
- *
- * @author Liam Fallon (liam.fallon@ericsson.com)
- */
-@NoArgsConstructor(access = AccessLevel.PRIVATE)
-public final class ApexModelImpl implements ApexModel {
-
- public static final String FIELDS_DEPRECATED_WARN_MSG =
- "inputFields and outputFields are deprecated from Task definition and will be removed. "
- + "Instead, inputEvent and outputEvents are automatically populated to Tasks based on State definition";
-
- private static final Logger LOGGER = LoggerFactory.getLogger(ApexModelImpl.class);
-
- // The policy model being acted upon
- @Getter
- @Setter
- private AxPolicyModel policyModel = new AxPolicyModel();
-
- // @formatter:off
- private ModelFacade modelFacade;
- private KeyInformationFacade keyInformationFacade;
- private ContextSchemaFacade contextSchemaFacade;
- private EventFacade eventFacade;
- private ContextAlbumFacade contextAlbumFacade;
- private TaskFacade taskFacade;
- private PolicyFacade policyFacade;
- private ModelHandlerFacade modelHandlerFacade;
- // @formatter:on
-
- private Properties apexProperties;
-
- /**
- * Create an implementation of the Apex editor and model APIs.
- *
- * @param apexProperties The properties to use for the model
- */
- public ApexModelImpl(final Properties apexProperties) {
- this.apexProperties = apexProperties;
-
- // @formatter:off
- this.modelFacade = new ModelFacade(this, apexProperties);
- this.keyInformationFacade = new KeyInformationFacade(this, apexProperties);
- this.contextSchemaFacade = new ContextSchemaFacade(this, apexProperties);
- this.eventFacade = new EventFacade(this, apexProperties);
- this.contextAlbumFacade = new ContextAlbumFacade(this, apexProperties);
- this.taskFacade = new TaskFacade(this, apexProperties);
- this.policyFacade = new PolicyFacade(this, apexProperties);
- this.modelHandlerFacade = new ModelHandlerFacade(this, apexProperties);
- // @formatter:on
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexModel getCopy() {
- ApexModelImpl ret = new ApexModelImpl();
- // @formatter:off
- ret.policyModel = new AxPolicyModel(policyModel);
- ret.apexProperties = this.apexProperties;
- ret.modelFacade = new ModelFacade(ret, this.apexProperties);
- ret.keyInformationFacade = new KeyInformationFacade(ret, this.apexProperties);
- ret.contextSchemaFacade = new ContextSchemaFacade(ret, this.apexProperties);
- ret.eventFacade = new EventFacade(ret, this.apexProperties);
- ret.contextAlbumFacade = new ContextAlbumFacade(ret, this.apexProperties);
- ret.taskFacade = new TaskFacade(ret, this.apexProperties);
- ret.policyFacade = new PolicyFacade(ret, this.apexProperties);
- ret.modelHandlerFacade = new ModelHandlerFacade(ret, this.apexProperties);
- // @formatter:on
-
- return ret;
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult createModel(final String name, final String version, final String uuid,
- final String description) {
- return modelFacade.createModel(name, version, uuid, description);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult updateModel(final String name, final String version, final String uuid,
- final String description) {
- return modelFacade.updateModel(name, version, uuid, description);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult getModelKey() {
- return modelFacade.getModelKey();
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult listModel() {
- return modelFacade.listModel();
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult deleteModel() {
- return modelFacade.deleteModel();
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult createKeyInformation(final String name, final String version, final String uuid,
- final String description) {
- return keyInformationFacade.createKeyInformation(name, version, uuid, description);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult updateKeyInformation(final String name, final String version, final String uuid,
- final String description) {
- return keyInformationFacade.updateKeyInformation(name, version, uuid, description);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult listKeyInformation(final String name, final String version) {
- return keyInformationFacade.listKeyInformation(name, version);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult deleteKeyInformation(final String name, final String version) {
- return keyInformationFacade.deleteKeyInformation(name, version);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult validateKeyInformation(final String name, final String version) {
- return keyInformationFacade.validateKeyInformation(name, version);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult createContextSchema(final String name, final String version, final String schemaFlavour,
- final String schemaDefinition, final String uuid, final String description) {
- return contextSchemaFacade.createContextSchema(name, version, schemaFlavour, schemaDefinition, uuid,
- description);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult updateContextSchema(final String name, final String version, final String schemaFlavour,
- final String schemaDefinition, final String uuid, final String description) {
- return contextSchemaFacade.updateContextSchema(name, version, schemaFlavour, schemaDefinition, uuid,
- description);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult listContextSchemas(final String name, final String version) {
- return contextSchemaFacade.listContextSchemas(name, version);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult deleteContextSchema(final String name, final String version) {
- return contextSchemaFacade.deleteContextSchema(name, version);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult validateContextSchemas(final String name, final String version) {
- return contextSchemaFacade.validateContextSchemas(name, version);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult createEvent(final String name, final String version, final String nameSpace,
- final String source, final String target, final String uuid, final String description,
- final String toscaPolicyState) {
- return eventFacade.createEvent(name, version, nameSpace, source, target, uuid, description, toscaPolicyState);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult updateEvent(final String name, final String version, final String nameSpace,
- final String source, final String target, final String uuid, final String description,
- final String toscaPolicyState) {
- return eventFacade.updateEvent(name, version, nameSpace, source, target, uuid, description, toscaPolicyState);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult listEvent(final String name, final String version) {
- return eventFacade.listEvent(name, version);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult deleteEvent(final String name, final String version) {
- return eventFacade.deleteEvent(name, version);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult validateEvent(final String name, final String version) {
- return eventFacade.validateEvent(name, version);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult createEventPar(final String name, final String version, final String parName,
- final String contextSchemaName, final String contextSchemaVersion, final boolean optional) {
- return eventFacade.createEventPar(name, version, parName, contextSchemaName, contextSchemaVersion, optional);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult listEventPar(final String name, final String version, final String parName) {
- return eventFacade.listEventPar(name, version, parName);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult deleteEventPar(final String name, final String version, final String parName) {
- return eventFacade.deleteEventPar(name, version, parName);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- // CHECKSTYLE:OFF: checkstyle:parameterNumber
- public ApexApiResult createContextAlbum(final String name, final String version, final String scope,
- final String writable, final String contextSchemaName, final String contextSchemaVersion, final String uuid,
- final String description) {
- return contextAlbumFacade.createContextAlbum(ContextAlbum.builder().name(name).version(version)
- .scope(scope).writable(writable).contextSchemaName(contextSchemaName)
- .contextSchemaVersion(contextSchemaVersion).uuid(uuid).description(description).build());
- }
- // CHECKSTYLE:ON: checkstyle:parameterNumber
-
- /**
- * {@inheritDoc}.
- */
- // CHECKSTYLE:OFF: checkstyle:parameterNumber
- @Override
- public ApexApiResult updateContextAlbum(final String name, final String version, final String scope,
- final String writable, final String contextSchemaName, final String contextSchemaVersion, final String uuid,
- final String description) {
- return contextAlbumFacade.updateContextAlbum(ContextAlbum.builder().name(name).version(version)
- .scope(scope).writable(writable).contextSchemaName(contextSchemaName)
- .contextSchemaVersion(contextSchemaVersion).uuid(uuid).description(description).build());
- }
- // CHECKSTYLE:ON: checkstyle:parameterNumber
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult listContextAlbum(final String name, final String version) {
- return contextAlbumFacade.listContextAlbum(name, version);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult deleteContextAlbum(final String name, final String version) {
- return contextAlbumFacade.deleteContextAlbum(name, version);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult validateContextAlbum(final String name, final String version) {
- return contextAlbumFacade.validateContextAlbum(name, version);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult createTask(final String name, final String version, final String uuid,
- final String description) {
- return taskFacade.createTask(name, version, uuid, description);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult updateTask(final String name, final String version, final String uuid,
- final String description) {
- return taskFacade.updateTask(name, version, uuid, description);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult listTask(final String name, final String version) {
- return taskFacade.listTask(name, version);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult deleteTask(final String name, final String version) {
- return taskFacade.deleteTask(name, version);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult validateTask(final String name, final String version) {
- return taskFacade.validateTask(name, version);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult createTaskLogic(final String name, final String version, final String logicFlavour,
- final String logic) {
- return taskFacade.createTaskLogic(name, version, logicFlavour, logic);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult updateTaskLogic(final String name, final String version, final String logicFlavour,
- final String logic) {
- return taskFacade.updateTaskLogic(name, version, logicFlavour, logic);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult listTaskLogic(final String name, final String version) {
- return taskFacade.listTaskLogic(name, version);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult deleteTaskLogic(final String name, final String version) {
- return taskFacade.deleteTaskLogic(name, version);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult createTaskField(final String name, final String version, final String fieldName,
- final String dataTypeName, final String dataTypeVersion, final boolean optional) {
- LOGGER.warn(FIELDS_DEPRECATED_WARN_MSG);
- return new ApexApiResult(Result.SUCCESS, FIELDS_DEPRECATED_WARN_MSG);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult handleTaskField(final String name, final String version, final String fieldName) {
- LOGGER.warn(FIELDS_DEPRECATED_WARN_MSG);
- return new ApexApiResult(Result.SUCCESS, FIELDS_DEPRECATED_WARN_MSG);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult createTaskParameter(final String name, final String version, final String parName,
- final String defaultValue) {
- return taskFacade.createTaskParameter(name, version, parName, defaultValue);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult listTaskParameter(final String name, final String version, final String parName) {
- return taskFacade.listTaskParameter(name, version, parName);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult deleteTaskParameter(final String name, final String version, final String parName) {
- return taskFacade.deleteTaskParameter(name, version, parName);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult createTaskContextRef(final String name, final String version, final String contextAlbumName,
- final String contextAlbumVersion) {
- return taskFacade.createTaskContextRef(name, version, contextAlbumName, contextAlbumVersion);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult listTaskContextRef(final String name, final String version, final String contextAlbumName,
- final String contextAlbumVersion) {
- return taskFacade.listTaskContextRef(name, version, contextAlbumName, contextAlbumVersion);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult deleteTaskContextRef(final String name, final String version, final String contextAlbumName,
- final String contextAlbumVersion) {
- return taskFacade.deleteTaskContextRef(name, version, contextAlbumName, contextAlbumVersion);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult createPolicy(final String name, final String version, final String template,
- final String firstState, final String uuid, final String description) {
- return policyFacade.createPolicy(name, version, template, firstState, uuid, description);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult updatePolicy(final String name, final String version, final String template,
- final String firstState, final String uuid, final String description) {
- return policyFacade.updatePolicy(name, version, template, firstState, uuid, description);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult listPolicy(final String name, final String version) {
- return policyFacade.listPolicy(name, version);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult deletePolicy(final String name, final String version) {
- return policyFacade.deletePolicy(name, version);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult validatePolicy(final String name, final String version) {
- return policyFacade.validatePolicy(name, version);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult createPolicyState(final String name, final String version, final String stateName,
- final String triggerName, final String triggerVersion, final String defaultTaskName,
- final String defaltTaskVersion) {
- return policyFacade.createPolicyState(name, version, stateName, triggerName, triggerVersion, defaultTaskName,
- defaltTaskVersion);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult updatePolicyState(final String name, final String version, final String stateName,
- final String triggerName, final String triggerVersion, final String defaultTaskName,
- final String defaltTaskVersion) {
- return policyFacade.updatePolicyState(name, version, stateName, triggerName, triggerVersion, defaultTaskName,
- defaltTaskVersion);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult listPolicyState(final String name, final String version, final String stateName) {
- return policyFacade.listPolicyState(name, version, stateName);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult deletePolicyState(final String name, final String version, final String stateName) {
- return policyFacade.deletePolicyState(name, version, stateName);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult createPolicyStateTaskSelectionLogic(final String name, final String version,
- final String stateName, final String logicFlavour, final String logic) {
- return policyFacade.createPolicyStateTaskSelectionLogic(name, version, stateName, logicFlavour, logic);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult updatePolicyStateTaskSelectionLogic(final String name, final String version,
- final String stateName, final String logicFlavour, final String logic) {
- return policyFacade.updatePolicyStateTaskSelectionLogic(name, version, stateName, logicFlavour, logic);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult listPolicyStateTaskSelectionLogic(final String name, final String version,
- final String stateName) {
- return policyFacade.listPolicyStateTaskSelectionLogic(name, version, stateName);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult deletePolicyStateTaskSelectionLogic(final String name, final String version,
- final String stateName) {
- return policyFacade.deletePolicyStateTaskSelectionLogic(name, version, stateName);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult createPolicyStateOutput(final String name, final String version, final String stateName,
- final String outputName, final String eventName, final String eventVersion, final String nextState) {
- return policyFacade.createPolicyStateOutput(name, version, stateName, outputName, eventName, eventVersion,
- nextState);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult listPolicyStateOutput(final String name, final String version, final String stateName,
- final String outputName) {
- return policyFacade.listPolicyStateOutput(name, version, stateName, outputName);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult deletePolicyStateOutput(final String name, final String version, final String stateName,
- final String outputName) {
- return policyFacade.deletePolicyStateOutput(name, version, stateName, outputName);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult createPolicyStateFinalizerLogic(final String name, final String version,
- final String stateName, final String finalizerLogicName, final String logicFlavour, final String logic) {
- return policyFacade.createPolicyStateFinalizerLogic(name, version, stateName, finalizerLogicName, logicFlavour,
- logic);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult updatePolicyStateFinalizerLogic(final String name, final String version,
- final String stateName, final String finalizerLogicName, final String logicFlavour, final String logic) {
- return policyFacade.updatePolicyStateFinalizerLogic(name, version, stateName, finalizerLogicName, logicFlavour,
- logic);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult listPolicyStateFinalizerLogic(final String name, final String version, final String stateName,
- final String finalizerLogicName) {
- return policyFacade.listPolicyStateFinalizerLogic(name, version, stateName, finalizerLogicName);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult deletePolicyStateFinalizerLogic(final String name, final String version,
- final String stateName, final String finalizerLogicName) {
- return policyFacade.deletePolicyStateFinalizerLogic(name, version, stateName, finalizerLogicName);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- // CHECKSTYLE:OFF: checkstyle:parameterNumber
- public ApexApiResult createPolicyStateTaskRef(final String name, final String version, final String stateName,
- final String taskLocalName, final String taskName, final String taskVersion, final String outputType,
- final String outputName) {
- return policyFacade.createPolicyStateTaskRef(CreatePolicyStateTaskRef.builder().name(name)
- .version(version).stateName(stateName).taskLocalName(taskLocalName).taskName(taskName)
- .taskVersion(taskVersion).outputType(outputType).outputName(outputName).build());
- }
- // CHECKSTYLE:ON: checkstyle:parameterNumber
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult listPolicyStateTaskRef(final String name, final String version, final String stateName,
- final String taskName, final String taskVersion) {
- return policyFacade.listPolicyStateTaskRef(name, version, stateName, taskName, taskVersion);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult deletePolicyStateTaskRef(final String name, final String version, final String stateName,
- final String taskName, final String taskVersion) {
- return policyFacade.deletePolicyStateTaskRef(name, version, stateName, taskName, taskVersion);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult createPolicyStateContextRef(final String name, final String version, final String stateName,
- final String contextAlbumName, final String contextAlbumVersion) {
- return policyFacade.createPolicyStateContextRef(name, version, stateName, contextAlbumName,
- contextAlbumVersion);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult listPolicyStateContextRef(final String name, final String version, final String stateName,
- final String contextAlbumName, final String contextAlbumVersion) {
- return policyFacade.listPolicyStateContextRef(name, version, stateName, contextAlbumName, contextAlbumVersion);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult deletePolicyStateContextRef(final String name, final String version, final String stateName,
- final String contextAlbumName, final String contextAlbumVersion) {
- return policyFacade.deletePolicyStateContextRef(name, version, stateName, contextAlbumName,
- contextAlbumVersion);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult loadFromString(final String modelString) {
- return modelHandlerFacade.loadFromString(modelString);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- // CHECKSTYLE:OFF: checkstyle:HiddenField
- public ApexApiResult loadFromFile(final String fileName) {
- return modelHandlerFacade.loadFromFile(fileName);
- }
- // CHECKSTYLE:ON: checkstyle:HiddenField
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult saveToFile(final String fileName) {
- return modelHandlerFacade.saveToFile(fileName);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult readFromUrl(final String urlString) {
- return modelHandlerFacade.readFromUrl(urlString);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult writeToUrl(final String urlString) {
- return modelHandlerFacade.writeToUrl(urlString);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult analyse() {
- return modelHandlerFacade.analyse();
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult validate() {
- return modelHandlerFacade.validate();
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult compare(final String otherModelFileName, final boolean diffsOnly, final boolean keysOnly) {
- return modelHandlerFacade.compare(otherModelFileName, diffsOnly, keysOnly);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult compareWithString(final String otherModelString, final boolean diffsOnly,
- final boolean keysOnly) {
- return modelHandlerFacade.compareWithString(otherModelString, diffsOnly, keysOnly);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult split(final String targetModelFileName, final String splitOutPolicies) {
- return modelHandlerFacade.split(targetModelFileName, splitOutPolicies);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult split(final String splitOutPolicies) {
- return modelHandlerFacade.split(splitOutPolicies);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult merge(final String mergeInModelFileName, final boolean keepOriginal) {
- return modelHandlerFacade.merge(mergeInModelFileName, keepOriginal);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public ApexApiResult mergeWithString(final String otherModelString, final boolean keepOriginal) {
- return modelHandlerFacade.mergeWithString(otherModelString, keepOriginal);
- }
-
- /**
- * {@inheritDoc}.
- */
- @Override
- public AxPolicyModel build() {
- return policyModel;
- }
-
-}
diff --git a/model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/impl/ContextAlbum.java b/model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/impl/ContextAlbum.java
deleted file mode 100644
index 5a42ed14e..000000000
--- a/model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/impl/ContextAlbum.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Copyright (C) 2019 Samsung Electronics Co., Ltd. All rights reserved.
- * Modifications Copyright (C) 2019 Nordix Foundation.
- * Modifications Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.apex.model.modelapi.impl;
-
-import lombok.Builder;
-import lombok.Getter;
-
-@Getter
-@Builder
-public class ContextAlbum {
- private String name;
- private String version;
- private String scope;
- private String writable;
- private String contextSchemaName;
- private String contextSchemaVersion;
- private String uuid;
- private String description;
-}
diff --git a/model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/impl/ContextAlbumFacade.java b/model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/impl/ContextAlbumFacade.java
deleted file mode 100644
index d29f32ea0..000000000
--- a/model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/impl/ContextAlbumFacade.java
+++ /dev/null
@@ -1,254 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Copyright (C) 2016-2018 Ericsson. All rights reserved.
- * Modifications Copyright (C) 2019 Samsung Electronics Co., Ltd.
- * Modifications Copyright (C) 2019,2022 Nordix Foundation.
- * Modifications Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.apex.model.modelapi.impl;
-
-import java.util.Properties;
-import java.util.Set;
-import org.onap.policy.apex.model.basicmodel.concepts.AxArtifactKey;
-import org.onap.policy.apex.model.basicmodel.concepts.AxValidationResult;
-import org.onap.policy.apex.model.basicmodel.handling.ApexModelStringWriter;
-import org.onap.policy.apex.model.contextmodel.concepts.AxContextAlbum;
-import org.onap.policy.apex.model.contextmodel.concepts.AxContextSchema;
-import org.onap.policy.apex.model.modelapi.ApexApiResult;
-import org.onap.policy.apex.model.modelapi.ApexModel;
-
-/**
- * This class acts as a facade for operations towards a policy model for context album operations.
- *
- * @author Liam Fallon (liam.fallon@ericsson.com)
- */
-public class ContextAlbumFacade {
- private static final String CONCEPT = "concept ";
- private static final String CONCEPT_S = "concept(s) ";
- private static final String DOES_NOT_EXIST = " does not exist";
- private static final String DO_ES_NOT_EXIST = " do(es) not exist";
-
- // Apex model we're working towards
- private final ApexModel apexModel;
-
- // Properties to use for the model
- private final Properties apexProperties;
-
- // Facade classes for working towards the real Apex model
- private final KeyInformationFacade keyInformationFacade;
-
- /**
- * Constructor that creates a context album facade for the Apex Model API.
- *
- * @param apexModel the apex model
- * @param apexProperties Properties for the model
- */
- public ContextAlbumFacade(final ApexModel apexModel, final Properties apexProperties) {
- this.apexModel = apexModel;
- this.apexProperties = apexProperties;
-
- keyInformationFacade = new KeyInformationFacade(apexModel, apexProperties);
- }
-
- /**
- * Create a context album.
- *
- * @param builder the builder for the context album parameters
- * @return result of the operation
- */
- // CHECKSTYLE:OFF: checkstyle:parameterNumber
- public ApexApiResult createContextAlbum(ContextAlbum builder) {
- try {
- final AxArtifactKey key = new AxArtifactKey();
- key.setName(builder.getName());
- if (builder.getVersion() != null) {
- key.setVersion(builder.getVersion());
- } else {
- key.setVersion(apexProperties.getProperty("DEFAULT_CONCEPT_VERSION"));
- }
-
- if (apexModel.getPolicyModel().getAlbums().getAlbumsMap().containsKey(key)) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_EXISTS,
- CONCEPT + key.getId() + " already exists");
- }
-
- final AxContextSchema schema = apexModel.getPolicyModel().getSchemas().get(builder.getContextSchemaName(),
- builder.getContextSchemaVersion());
- if (schema == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, CONCEPT
- + builder.getContextSchemaName() + ':' + builder.getContextSchemaVersion() + DOES_NOT_EXIST);
- }
-
- final AxContextAlbum contextAlbum = new AxContextAlbum(key);
- contextAlbum.setScope(builder.getScope());
- contextAlbum.setItemSchema(schema.getKey());
-
- contextAlbum
- .setWritable(builder.getWritable() != null && ("true".equalsIgnoreCase(builder.getWritable().trim())
- || "t".equalsIgnoreCase(builder.getWritable().trim())));
-
- apexModel.getPolicyModel().getAlbums().getAlbumsMap().put(key, contextAlbum);
-
- if (apexModel.getPolicyModel().getKeyInformation().getKeyInfoMap().containsKey(key)) {
- return keyInformationFacade.updateKeyInformation(builder.getName(), builder.getVersion(),
- builder.getUuid(), builder.getDescription());
- } else {
- return keyInformationFacade.createKeyInformation(builder.getName(), builder.getVersion(),
- builder.getUuid(), builder.getDescription());
- }
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
- // CHECKSTYLE:ON: checkstyle:parameterNumber
-
- /**
- * Update a context album.
- *
- * @param builder the builder for the context album parameters
- * @return result of the operation
- */
- // CHECKSTYLE:OFF: checkstyle:parameterNumber
- public ApexApiResult updateContextAlbum(ContextAlbum builder) {
- try {
- final AxContextAlbum contextAlbum =
- apexModel.getPolicyModel().getAlbums().get(builder.getName(), builder.getVersion());
- if (contextAlbum == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + builder.getName() + ':' + builder.getVersion() + DOES_NOT_EXIST);
- }
-
- if (builder.getScope() != null) {
- contextAlbum.setScope(builder.getScope());
- }
-
- contextAlbum
- .setWritable(builder.getWritable() != null && ("true".equalsIgnoreCase(builder.getWritable().trim())
- || "t".equalsIgnoreCase(builder.getWritable().trim())));
-
- if (builder.getContextSchemaName() != null) {
- final AxContextSchema schema = apexModel.getPolicyModel().getSchemas()
- .get(builder.getContextSchemaName(), builder.getContextSchemaVersion());
- if (schema == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, CONCEPT
- + builder.getContextSchemaName() + ':' + builder.getContextSchemaVersion() + DOES_NOT_EXIST);
- }
- contextAlbum.setItemSchema(schema.getKey());
- }
-
- return keyInformationFacade.updateKeyInformation(builder.getName(), builder.getVersion(), builder.getUuid(),
- builder.getDescription());
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
- // CHECKSTYLE:ON: checkstyle:parameterNumber
-
- /**
- * List context albums.
- *
- * @param name name of the context album, set to null to list all
- * @param version starting version of the context album, set to null to list all versions
- * @return result of the operation
- */
- public ApexApiResult listContextAlbum(final String name, final String version) {
- try {
- final Set<AxContextAlbum> contextAlbumSet = apexModel.getPolicyModel().getAlbums().getAll(name, version);
- if (name != null && contextAlbumSet.isEmpty()) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT_S + name + ':' + version + DO_ES_NOT_EXIST);
- }
-
- final ApexApiResult result = new ApexApiResult();
- for (final AxContextAlbum contextAlbum : contextAlbumSet) {
- result.addMessage(
- new ApexModelStringWriter<AxContextAlbum>(false).writeString(contextAlbum, AxContextAlbum.class));
- }
- return result;
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * Delete a context album.
- *
- * @param name name of the context album
- * @param version version of the context album, set to null to delete versions
- * @return result of the operation
- */
- public ApexApiResult deleteContextAlbum(final String name, final String version) {
- try {
- if (version != null) {
- final AxArtifactKey key = new AxArtifactKey(name, version);
- if (apexModel.getPolicyModel().getAlbums().getAlbumsMap().remove(key) != null) {
- return new ApexApiResult();
- } else {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + key.getId() + DOES_NOT_EXIST);
- }
- }
-
- final Set<AxContextAlbum> contextAlbumSet = apexModel.getPolicyModel().getAlbums().getAll(name, version);
- if (contextAlbumSet.isEmpty()) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT_S + name + ':' + version + DO_ES_NOT_EXIST);
- }
-
- final ApexApiResult result = new ApexApiResult();
- for (final AxContextAlbum contextAlbum : contextAlbumSet) {
- result.addMessage(
- new ApexModelStringWriter<AxContextAlbum>(false).writeString(contextAlbum, AxContextAlbum.class));
- apexModel.getPolicyModel().getAlbums().getAlbumsMap().remove(contextAlbum.getKey());
- keyInformationFacade.deleteKeyInformation(name, version);
- }
- return result;
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * Validate context albums.
- *
- * @param name name of the context album, set to null to list all
- * @param version starting version of the context album, set to null to list all versions
- * @return result of the operation
- */
- public ApexApiResult validateContextAlbum(final String name, final String version) {
- try {
- final Set<AxContextAlbum> contextAlbumSet = apexModel.getPolicyModel().getAlbums().getAll(name, version);
- if (contextAlbumSet.isEmpty()) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT_S + name + ':' + version + DO_ES_NOT_EXIST);
- }
-
- final ApexApiResult result = new ApexApiResult();
- for (final AxContextAlbum contextAlbum : contextAlbumSet) {
- final AxValidationResult validationResult = contextAlbum.validate(new AxValidationResult());
- result.addMessage(new ApexModelStringWriter<AxArtifactKey>(false).writeString(contextAlbum.getKey(),
- AxArtifactKey.class));
- result.addMessage(validationResult.toString());
- }
- return result;
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-}
diff --git a/model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/impl/ContextSchemaFacade.java b/model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/impl/ContextSchemaFacade.java
deleted file mode 100644
index 83bca5a01..000000000
--- a/model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/impl/ContextSchemaFacade.java
+++ /dev/null
@@ -1,238 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Copyright (C) 2016-2018 Ericsson. All rights reserved.
- * Modifications Copyright (C) 2019,2022 Nordix Foundation.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.apex.model.modelapi.impl;
-
-import java.util.Properties;
-import java.util.Set;
-import org.onap.policy.apex.model.basicmodel.concepts.AxArtifactKey;
-import org.onap.policy.apex.model.basicmodel.concepts.AxValidationResult;
-import org.onap.policy.apex.model.basicmodel.handling.ApexModelStringWriter;
-import org.onap.policy.apex.model.contextmodel.concepts.AxContextSchema;
-import org.onap.policy.apex.model.modelapi.ApexApiResult;
-import org.onap.policy.apex.model.modelapi.ApexModel;
-import org.onap.policy.common.utils.validation.Assertions;
-
-/**
- * This class acts as a facade for operations towards a policy model for context schema operations.
- *
- * @author Liam Fallon (liam.fallon@ericsson.com)
- */
-public class ContextSchemaFacade {
- private static final String CONCEPT = "concept ";
- private static final String CONCEPT_S = "concept(s) ";
- private static final String DOES_NOT_EXIST = " does not exist";
- private static final String DO_ES_NOT_EXIST = " do(es) not exist";
- private static final String ALREADY_EXISTS = " already exists";
-
- // Apex model we're working towards
- private final ApexModel apexModel;
-
- // Properties to use for the model
- private final Properties apexProperties;
-
- // Facade classes for working towards the real Apex model
- private final KeyInformationFacade keyInformationFacade;
-
- /**
- * Constructor to create the context schema facade for the Model API.
- *
- * @param apexModel the apex model
- * @param apexProperties Properties for the model
- */
- public ContextSchemaFacade(final ApexModel apexModel, final Properties apexProperties) {
- this.apexModel = apexModel;
- this.apexProperties = apexProperties;
-
- keyInformationFacade = new KeyInformationFacade(apexModel, apexProperties);
- }
-
- /**
- * Create a context schema.
- *
- * @param name name of the context schema
- * @param version version of the context schema, set to null to use the default version
- * @param schemaFlavour a string identifying the flavour of this context schema
- * @param schemaDefinition a string containing the definition of this context schema
- * @param uuid context schema UUID, set to null to generate a UUID
- * @param description context schema description, set to null to generate a description
- * @return result of the operation
- */
- public ApexApiResult createContextSchema(final String name, final String version, final String schemaFlavour,
- final String schemaDefinition, final String uuid, final String description) {
- try {
- Assertions.argumentNotNull(schemaFlavour, "schemaFlavour may not be null");
-
- final AxArtifactKey key = new AxArtifactKey();
- key.setName(name);
- if (version != null) {
- key.setVersion(version);
- } else {
- key.setVersion(apexProperties.getProperty("DEFAULT_CONCEPT_VERSION"));
- }
-
- if (apexModel.getPolicyModel().getSchemas().getSchemasMap().containsKey(key)) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_EXISTS, CONCEPT + key.getId() + ALREADY_EXISTS);
- }
-
- apexModel.getPolicyModel().getSchemas().getSchemasMap().put(key,
- new AxContextSchema(key, schemaFlavour, schemaDefinition));
-
- if (apexModel.getPolicyModel().getKeyInformation().getKeyInfoMap().containsKey(key)) {
- return keyInformationFacade.updateKeyInformation(name, version, uuid, description);
- } else {
- return keyInformationFacade.createKeyInformation(name, version, uuid, description);
- }
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * Update a context schema.
- *
- * @param name name of the context schema
- * @param version version of the context schema, set to null to update the latest version
- * @param schemaFlavour a string identifying the flavour of this context schema
- * @param schemaDefinition a string containing the definition of this context schema
- * @param uuid context schema UUID, set to null to not update
- * @param description context schema description, set to null to not update
- * @return result of the operation
- */
- public ApexApiResult updateContextSchema(final String name, final String version, final String schemaFlavour,
- final String schemaDefinition, final String uuid, final String description) {
- try {
- final AxContextSchema schema = apexModel.getPolicyModel().getSchemas().get(name, version);
- if (schema == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + name + ':' + version + DOES_NOT_EXIST);
- }
-
- if (schemaFlavour != null) {
- schema.setSchemaFlavour(schemaFlavour);
- }
-
- if (schemaDefinition != null) {
- schema.setSchema(schemaDefinition);
- }
-
- return keyInformationFacade.updateKeyInformation(name, version, uuid, description);
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * List context schemas.
- *
- * @param name name of the context schema, set to null to list all
- * @param version starting version of the context schema, set to null to list all versions
- * @return result of the operation
- */
- public ApexApiResult listContextSchemas(final String name, final String version) {
- try {
- final Set<AxContextSchema> schemaSet = apexModel.getPolicyModel().getSchemas().getAll(name, version);
- if (name != null && schemaSet.isEmpty()) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT_S + name + ':' + version + DO_ES_NOT_EXIST);
- }
-
- final ApexApiResult result = new ApexApiResult();
- for (final AxContextSchema schema : schemaSet) {
- result.addMessage(
- new ApexModelStringWriter<AxContextSchema>(false).writeString(schema, AxContextSchema.class));
- }
- return result;
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * Delete a context schema.
- *
- * @param name name of the context schema
- * @param version version of the context schema, set to null to delete all versions
- * @return result of the operation
- */
- public ApexApiResult deleteContextSchema(final String name, final String version) {
- try {
- if (version != null) {
- final AxArtifactKey key = new AxArtifactKey(name, version);
- final AxContextSchema removedSchema =
- apexModel.getPolicyModel().getSchemas().getSchemasMap().remove(key);
- if (removedSchema != null) {
- return new ApexApiResult(ApexApiResult.Result.SUCCESS,
- new ApexModelStringWriter<AxContextSchema>(false).writeString(removedSchema,
- AxContextSchema.class));
- } else {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + key.getId() + DOES_NOT_EXIST);
- }
- }
-
- final Set<AxContextSchema> schemaSet = apexModel.getPolicyModel().getSchemas().getAll(name, version);
- if (schemaSet.isEmpty()) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT_S + name + ':' + version + DO_ES_NOT_EXIST);
- }
-
- final ApexApiResult result = new ApexApiResult();
- for (final AxContextSchema schema : schemaSet) {
- result.addMessage(
- new ApexModelStringWriter<AxContextSchema>(false).writeString(schema, AxContextSchema.class));
- apexModel.getPolicyModel().getSchemas().getSchemasMap().remove(schema.getKey());
- keyInformationFacade.deleteKeyInformation(name, version);
- }
- return result;
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * Validate context schemas.
- *
- * @param name name of the context schema, set to null to list all
- * @param version starting version of the context schema, set to null to list all versions
- * @return result of the operation
- */
- public ApexApiResult validateContextSchemas(final String name, final String version) {
- try {
- final Set<AxContextSchema> schemaSet = apexModel.getPolicyModel().getSchemas().getAll(name, version);
- if (schemaSet.isEmpty()) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT_S + name + ':' + version + DO_ES_NOT_EXIST);
- }
-
- final ApexApiResult result = new ApexApiResult();
- for (final AxContextSchema schema : schemaSet) {
- final AxValidationResult validationResult = schema.validate(new AxValidationResult());
- result.addMessage(
- new ApexModelStringWriter<AxArtifactKey>(false).writeString(schema.getKey(), AxArtifactKey.class));
- result.addMessage(validationResult.toString());
- }
- return result;
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-}
diff --git a/model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/impl/CreatePolicyStateTaskRef.java b/model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/impl/CreatePolicyStateTaskRef.java
deleted file mode 100644
index a6e4c334e..000000000
--- a/model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/impl/CreatePolicyStateTaskRef.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Copyright (C) 2019 Samsung Electronics Co., Ltd. All rights reserved.
- * Modifications Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.apex.model.modelapi.impl;
-
-import lombok.Builder;
-import lombok.Getter;
-
-@Getter
-@Builder
-public class CreatePolicyStateTaskRef {
- private String name;
- private String version;
- private String stateName;
- private String taskLocalName;
- private String taskName;
- private String taskVersion;
- private String outputType;
- private String outputName;
-}
diff --git a/model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/impl/EventFacade.java b/model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/impl/EventFacade.java
deleted file mode 100644
index 336f27b5d..000000000
--- a/model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/impl/EventFacade.java
+++ /dev/null
@@ -1,386 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Copyright (C) 2016-2018 Ericsson. All rights reserved.
- * Modifications Copyright (C) 2019,2022 Nordix Foundation.
- * Modifications Copyright (C) 2022 Bell Canada.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.apex.model.modelapi.impl;
-
-import java.util.Properties;
-import java.util.Set;
-import org.onap.policy.apex.model.basicmodel.concepts.AxArtifactKey;
-import org.onap.policy.apex.model.basicmodel.concepts.AxReferenceKey;
-import org.onap.policy.apex.model.basicmodel.concepts.AxValidationResult;
-import org.onap.policy.apex.model.basicmodel.handling.ApexModelStringWriter;
-import org.onap.policy.apex.model.contextmodel.concepts.AxContextSchema;
-import org.onap.policy.apex.model.eventmodel.concepts.AxEvent;
-import org.onap.policy.apex.model.eventmodel.concepts.AxField;
-import org.onap.policy.apex.model.modelapi.ApexApiResult;
-import org.onap.policy.apex.model.modelapi.ApexModel;
-import org.onap.policy.common.utils.validation.Assertions;
-
-/**
- * This class acts as a facade for operations towards a policy model for event operations
- * operations.
- *
- * @author Liam Fallon (liam.fallon@ericsson.com)
- */
-public class EventFacade {
- private static final String CONCEPT = "concept ";
- private static final String CONCEPT_S = "concept(s) ";
- private static final String DOES_NOT_EXIST = " does not exist";
- private static final String DO_ES_NOT_EXIST = " do(es) not exist";
- private static final String ALREADY_EXISTS = " already exists";
-
- // Apex model we're working towards
- private final ApexModel apexModel;
-
- // Properties to use for the model
- private final Properties apexProperties;
-
- // Facade classes for working towards the real Apex model
- private final KeyInformationFacade keyInformationFacade;
-
- /**
- * Constructor to create an event facade for the Model API.
- *
- * @param apexModel the apex model
- * @param apexProperties Properties for the model
- */
- public EventFacade(final ApexModel apexModel, final Properties apexProperties) {
- this.apexModel = apexModel;
- this.apexProperties = apexProperties;
-
- keyInformationFacade = new KeyInformationFacade(apexModel, apexProperties);
- }
-
- /**
- * Create an event.
- *
- * @param name name of the event
- * @param version version of the event, set to null to use the default version
- * @param nameSpace of the event, set to null to use the default value
- * @param source of the event, set to null to use the default value
- * @param target of the event, set to null to use the default value
- * @param uuid event UUID, set to null to generate a UUID
- * @param description event description, set to null to generate a description
- * @param toscaPolicyState specifies TOSCA policy processing status
- * @return result of the operation
- */
- public ApexApiResult createEvent(final String name, final String version, final String nameSpace,
- final String source, final String target, final String uuid, final String description,
- final String toscaPolicyState) {
- try {
- final AxArtifactKey key = new AxArtifactKey();
- key.setName(name);
- if (version != null) {
- key.setVersion(version);
- } else {
- key.setVersion(apexProperties.getProperty("DEFAULT_CONCEPT_VERSION"));
- }
-
- if (apexModel.getPolicyModel().getEvents().getEventMap().containsKey(key)) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_EXISTS, CONCEPT + key.getId() + ALREADY_EXISTS);
- }
-
- final AxEvent event = new AxEvent(key);
-
- event.setNameSpace((nameSpace != null ? nameSpace : apexProperties.getProperty("DEFAULT_EVENT_NAMESPACE")));
- event.setSource((source != null ? source : apexProperties.getProperty("DEFAULT_EVENT_SOURCE")));
- event.setTarget((target != null ? target : apexProperties.getProperty("DEFAULT_EVENT_TARGET")));
- if (toscaPolicyState != null) {
- event.setToscaPolicyState(toscaPolicyState);
- }
-
- apexModel.getPolicyModel().getEvents().getEventMap().put(key, event);
-
- if (apexModel.getPolicyModel().getKeyInformation().getKeyInfoMap().containsKey(key)) {
- return keyInformationFacade.updateKeyInformation(name, version, uuid, description);
- } else {
- return keyInformationFacade.createKeyInformation(name, version, uuid, description);
- }
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * Update an event.
- *
- * @param name name of the event
- * @param version version of the event, set to null to use the latest version
- * @param nameSpace of the event, set to null to not update
- * @param source of the event, set to null to not update
- * @param target of the event, set to null to not update
- * @param uuid event UUID, set to null to not update
- * @param description event description, set to null to not update
- * @param toscaPolicyState specifies TOSCA policy processing status
- * @return result of the operation
- */
- public ApexApiResult updateEvent(final String name, final String version, final String nameSpace,
- final String source, final String target, final String uuid, final String description,
- final String toscaPolicyState) {
- try {
- final AxEvent event = apexModel.getPolicyModel().getEvents().get(name, version);
- if (event == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + name + ':' + version + DOES_NOT_EXIST);
- }
-
- if (nameSpace != null) {
- event.setNameSpace(nameSpace);
- }
- if (source != null) {
- event.setSource(source);
- }
- if (target != null) {
- event.setTarget(target);
- }
- if (toscaPolicyState != null) {
- event.setToscaPolicyState(toscaPolicyState);
- }
-
- return keyInformationFacade.updateKeyInformation(name, version, uuid, description);
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * List events.
- *
- * @param name name of the event, set to null to list all
- * @param version starting version of the event, set to null to list all versions
- * @return result of the operation
- */
- public ApexApiResult listEvent(final String name, final String version) {
- try {
- final Set<AxEvent> eventSet = apexModel.getPolicyModel().getEvents().getAll(name, version);
- if (name != null && eventSet.isEmpty()) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT_S + name + ':' + version + DO_ES_NOT_EXIST);
- }
-
- final ApexApiResult result = new ApexApiResult();
- for (final AxEvent event : eventSet) {
- result.addMessage(new ApexModelStringWriter<AxEvent>(false).writeString(event, AxEvent.class));
- }
- return result;
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * Delete an event.
- *
- * @param name name of the event
- * @param version version of the event, set to null to delete all versions
- * @return result of the operation
- */
- public ApexApiResult deleteEvent(final String name, final String version) {
- try {
- if (version != null) {
- final AxArtifactKey key = new AxArtifactKey(name, version);
- final AxEvent removedEvent = apexModel.getPolicyModel().getEvents().getEventMap().remove(key);
- if (removedEvent != null) {
- return new ApexApiResult(ApexApiResult.Result.SUCCESS,
- new ApexModelStringWriter<AxEvent>(false).writeString(removedEvent, AxEvent.class));
- } else {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + key.getId() + DOES_NOT_EXIST);
- }
- }
-
- final Set<AxEvent> eventSet = apexModel.getPolicyModel().getEvents().getAll(name, version);
- if (eventSet.isEmpty()) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT_S + name + ':' + version + DO_ES_NOT_EXIST);
- }
-
- final ApexApiResult result = new ApexApiResult();
- for (final AxEvent event : eventSet) {
- result.addMessage(new ApexModelStringWriter<AxEvent>(false).writeString(event, AxEvent.class));
- apexModel.getPolicyModel().getEvents().getEventMap().remove(event.getKey());
- keyInformationFacade.deleteKeyInformation(name, version);
- }
- return result;
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * Validate events.
- *
- * @param name name of the event, set to null to list all
- * @param version starting version of the event, set to null to list all versions
- * @return result of the operation
- */
- public ApexApiResult validateEvent(final String name, final String version) {
- try {
- final Set<AxEvent> eventSet = apexModel.getPolicyModel().getEvents().getAll(name, version);
- if (eventSet.isEmpty()) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT_S + name + ':' + version + DO_ES_NOT_EXIST);
- }
-
- final ApexApiResult result = new ApexApiResult();
- for (final AxEvent event : eventSet) {
- final AxValidationResult validationResult = event.validate(new AxValidationResult());
- result.addMessage(
- new ApexModelStringWriter<AxArtifactKey>(false).writeString(event.getKey(), AxArtifactKey.class));
- result.addMessage(validationResult.toString());
- }
- return result;
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * Create an event parameter.
- *
- * @param name name of the event
- * @param version version of the event, set to null to use the latest version
- * @param parName of the parameter
- * @param contextSchemaName name of the parameter context schema
- * @param contextSchemaVersion version of the parameter context schema, set to null to use the
- * latest version
- * @param optional true if the event parameter is optional, false otherwise
- * @return result of the operation
- */
- public ApexApiResult createEventPar(final String name, final String version, final String parName,
- final String contextSchemaName, final String contextSchemaVersion, final boolean optional) {
- try {
- Assertions.argumentNotNull(parName, "parName may not be null");
-
- final AxEvent event = apexModel.getPolicyModel().getEvents().get(name, version);
- if (event == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + name + ':' + version + DOES_NOT_EXIST);
- }
-
- final AxReferenceKey refKey = new AxReferenceKey(event.getKey(), parName);
-
- if (event.getParameterMap().containsKey(refKey.getLocalName())) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_EXISTS,
- CONCEPT + refKey.getId() + ALREADY_EXISTS);
- }
-
- final AxContextSchema schema =
- apexModel.getPolicyModel().getSchemas().get(contextSchemaName, contextSchemaVersion);
- if (schema == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + contextSchemaName + ':' + contextSchemaVersion + DOES_NOT_EXIST);
- }
-
- event.getParameterMap().put(refKey.getLocalName(), new AxField(refKey, schema.getKey(), optional));
- return new ApexApiResult();
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * List event parameters.
- *
- * @param name name of the event
- * @param version version of the event, set to null to list latest version
- * @param parName name of the parameter, set to null to list all parameters of the event
- * @return result of the operation
- */
- public ApexApiResult listEventPar(final String name, final String version, final String parName) {
- try {
- final AxEvent event = apexModel.getPolicyModel().getEvents().get(name, version);
- if (event == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + name + ':' + version + DOES_NOT_EXIST);
- }
-
- if (parName != null) {
- final AxField eventField = event.getParameterMap().get(parName);
- if (eventField != null) {
- return new ApexApiResult(ApexApiResult.Result.SUCCESS,
- new ApexModelStringWriter<AxField>(false).writeString(eventField, AxField.class));
- } else {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + name + ':' + version + ':' + parName + DOES_NOT_EXIST);
- }
- } else {
- if (event.getParameterMap().size() == 0) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- "no parameters defined on event " + event.getKey().getId());
- }
-
- final ApexApiResult result = new ApexApiResult();
- for (final AxField eventPar : event.getParameterMap().values()) {
- result.addMessage(new ApexModelStringWriter<AxField>(false).writeString(eventPar, AxField.class));
- }
- return result;
- }
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * Delete an event parameter.
- *
- * @param name name of the event
- * @param version version of the event, set to null to use the latest version
- * @param parName of the parameter, set to null to delete all parameters
- * @return result of the operation
- */
- public ApexApiResult deleteEventPar(final String name, final String version, final String parName) {
- try {
- final AxEvent event = apexModel.getPolicyModel().getEvents().get(name, version);
- if (event == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + name + ':' + version + DOES_NOT_EXIST);
- }
-
- final ApexApiResult result = new ApexApiResult();
- if (parName != null) {
- if (event.getParameterMap().containsKey(parName)) {
- result.addMessage(new ApexModelStringWriter<AxField>(false)
- .writeString(event.getParameterMap().get(parName), AxField.class));
- event.getParameterMap().remove(parName);
- return result;
- } else {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + name + ':' + version + ':' + parName + DOES_NOT_EXIST);
- }
- } else {
- if (event.getParameterMap().size() == 0) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- "no parameters defined on event " + event.getKey().getId());
- }
-
- for (final AxField eventPar : event.getParameterMap().values()) {
- result.addMessage(new ApexModelStringWriter<AxField>(false).writeString(eventPar, AxField.class));
- }
- event.getParameterMap().clear();
- return result;
- }
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-}
diff --git a/model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/impl/KeyInformationFacade.java b/model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/impl/KeyInformationFacade.java
deleted file mode 100644
index 6875a4c20..000000000
--- a/model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/impl/KeyInformationFacade.java
+++ /dev/null
@@ -1,228 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Copyright (C) 2016-2018 Ericsson. All rights reserved.
- * Modifications Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
- * Modifications Copyright (C) 2022 Nordix Foundation.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.apex.model.modelapi.impl;
-
-import java.util.Properties;
-import java.util.Set;
-import java.util.UUID;
-import lombok.AllArgsConstructor;
-import org.onap.policy.apex.model.basicmodel.concepts.AxArtifactKey;
-import org.onap.policy.apex.model.basicmodel.concepts.AxKeyInfo;
-import org.onap.policy.apex.model.basicmodel.concepts.AxValidationResult;
-import org.onap.policy.apex.model.basicmodel.handling.ApexModelStringWriter;
-import org.onap.policy.apex.model.modelapi.ApexApiResult;
-import org.onap.policy.apex.model.modelapi.ApexModel;
-
-/**
- * This class acts as a facade for operations towards a policy model for key information operations.
- *
- * @author Liam Fallon (liam.fallon@ericsson.com)
- */
-@AllArgsConstructor
-public class KeyInformationFacade {
- private static final String CONCEPT = "concept ";
- private static final String CONCEPT_S = "concept(s) ";
- private static final String DOES_NOT_EXIST = " does not exist";
- private static final String DO_ES_NOT_EXIST = " do(es) not exist";
- private static final String ALREADY_EXISTS = " already exists";
-
- // Apex model we're working towards
- private final ApexModel apexModel;
-
- // Properties to use for the model
- private final Properties apexProperties;
-
- /**
- * Create key information.
- *
- * @param name name of the concept for the key information
- * @param version version of the concept for the key information, set to null to use the default
- * version
- * @param uuid key information UUID, set to null to generate a UUID
- * @param description key information description, set to null to generate a description
- * @return result of the operation
- */
- public ApexApiResult createKeyInformation(final String name, final String version, final String uuid,
- final String description) {
- try {
- final AxArtifactKey key = new AxArtifactKey();
- key.setName(name);
- if (version != null) {
- key.setVersion(version);
- } else {
- key.setVersion(apexProperties.getProperty("DEFAULT_CONCEPT_VERSION"));
- }
-
- if (apexModel.getPolicyModel().getKeyInformation().getKeyInfoMap().containsKey(key)) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_EXISTS, CONCEPT + key.getId() + ALREADY_EXISTS);
- }
-
- final AxKeyInfo keyInfo = new AxKeyInfo(key);
- if (description != null) {
- keyInfo.setDescription(description);
- }
- if (uuid != null) {
- keyInfo.setUuid(UUID.fromString(uuid));
- } else {
- // generate a reproducible UUID
- keyInfo.setUuid(AxKeyInfo.generateReproducibleUuid(keyInfo.getId() + keyInfo.getDescription()));
- }
- apexModel.getPolicyModel().getKeyInformation().getKeyInfoMap().put(key, keyInfo);
- return new ApexApiResult();
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * Update key information.
- *
- * @param name name of the concept for the key information
- * @param version version of the concept for the key information, set to null to update the
- * latest version
- * @param uuid key information UUID, set to null to not update
- * @param description key information description, set to null to not update
- * @return result of the operation
- */
- public ApexApiResult updateKeyInformation(final String name, final String version, final String uuid,
- final String description) {
- try {
- final AxKeyInfo keyInfo = apexModel.getPolicyModel().getKeyInformation().get(name, version);
- if (keyInfo == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + name + ":" + version + DOES_NOT_EXIST);
- }
-
- if (description != null) {
- keyInfo.setDescription(description);
- }
-
- if (uuid != null) {
- keyInfo.setUuid(UUID.fromString(uuid));
- } else {
- // generate a reproducible UUID
- keyInfo.setUuid(AxKeyInfo.generateReproducibleUuid(keyInfo.getId() + keyInfo.getDescription()));
- }
-
- return new ApexApiResult();
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * List key information.
- *
- * @param name name of the concept for the key information, set to null to list all
- * @param version starting version of the concept for the key information, set to null to list
- * all versions
- * @return result of the operation
- */
- public ApexApiResult listKeyInformation(final String name, final String version) {
- try {
- final Set<AxKeyInfo> keyInfoSet = apexModel.getPolicyModel().getKeyInformation().getAll(name, version);
- if (name != null && keyInfoSet.isEmpty()) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT_S + name + ':' + version + DO_ES_NOT_EXIST);
- }
-
- final ApexApiResult result = new ApexApiResult();
- for (final AxKeyInfo keyInfo : keyInfoSet) {
- result.addMessage(new ApexModelStringWriter<AxKeyInfo>(false).writeString(keyInfo, AxKeyInfo.class));
- }
- return result;
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * Delete key information.
- *
- * @param name name of the concept for the key information
- * @param version version of the concept for the key information, set to null to delete all
- * versions
- * @return result of the operation
- */
- public ApexApiResult deleteKeyInformation(final String name, final String version) {
- try {
- if (version != null) {
- final AxArtifactKey key = new AxArtifactKey(name, version);
- final AxKeyInfo removedKeyInfo =
- apexModel.getPolicyModel().getKeyInformation().getKeyInfoMap().remove(key);
- if (removedKeyInfo != null) {
- return new ApexApiResult(ApexApiResult.Result.SUCCESS,
- new ApexModelStringWriter<AxKeyInfo>(false).writeString(removedKeyInfo, AxKeyInfo.class));
- } else {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + key.getId() + DOES_NOT_EXIST);
- }
- }
-
- final Set<AxKeyInfo> keyInfoSet = apexModel.getPolicyModel().getKeyInformation().getAll(name, version);
- if (keyInfoSet.isEmpty()) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT_S + name + ':' + version + DO_ES_NOT_EXIST);
- }
-
- final ApexApiResult result = new ApexApiResult();
- for (final AxKeyInfo keyInfo : keyInfoSet) {
- result.addMessage(new ApexModelStringWriter<AxKeyInfo>(false).writeString(keyInfo, AxKeyInfo.class));
- apexModel.getPolicyModel().getKeyInformation().getKeyInfoMap().remove(keyInfo.getKey());
- }
- return result;
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * Validate key information.
- *
- * @param name name of the concept for the key information
- * @param version version of the concept for the key information, set to null to validate all
- * versions
- * @return result of the operation
- */
- public ApexApiResult validateKeyInformation(final String name, final String version) {
- try {
- final Set<AxKeyInfo> keyInfoSet = apexModel.getPolicyModel().getKeyInformation().getAll(name, version);
- if (keyInfoSet.isEmpty()) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT_S + name + ':' + version + DO_ES_NOT_EXIST);
- }
-
- final ApexApiResult result = new ApexApiResult();
- for (final AxKeyInfo keyInfo : keyInfoSet) {
- final AxValidationResult validationResult = keyInfo.validate(new AxValidationResult());
- result.addMessage(
- new ApexModelStringWriter<AxArtifactKey>(false).writeString(keyInfo.getKey(), AxArtifactKey.class));
- result.addMessage(validationResult.toString());
- }
- return result;
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
-}
diff --git a/model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/impl/ModelFacade.java b/model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/impl/ModelFacade.java
deleted file mode 100644
index 1030a5bf5..000000000
--- a/model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/impl/ModelFacade.java
+++ /dev/null
@@ -1,202 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Copyright (C) 2016-2018 Ericsson. All rights reserved.
- * Modifications Copyright (C) 2019,2022 Nordix Foundation.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.apex.model.modelapi.impl;
-
-import java.util.Properties;
-import org.onap.policy.apex.model.basicmodel.concepts.AxArtifactKey;
-import org.onap.policy.apex.model.basicmodel.handling.ApexModelStringWriter;
-import org.onap.policy.apex.model.modelapi.ApexApiResult;
-import org.onap.policy.apex.model.modelapi.ApexModel;
-import org.onap.policy.apex.model.policymodel.concepts.AxPolicyModel;
-import org.onap.policy.common.utils.validation.Assertions;
-
-/**
- * This class acts as a facade for operations towards a policy model.
- *
- * @author Liam Fallon (liam.fallon@ericsson.com)
- */
-public class ModelFacade {
- private static final String CONCEPT = "concept ";
- private static final String DOES_NOT_EXIST = " does not exist";
- private static final String ALREADY_CREATED = " already created";
- private static final String NO_VERSION_SPECIFIED = ", no version specified";
-
- // Apex model we're working towards
- private final ApexModel apexModel;
-
- // Properties to use for the model
- private final Properties apexProperties;
-
- // Facade classes for working towards the real Apex model
- private final KeyInformationFacade keyInformationFacade;
-
- /**
- * Constructor to create a model facade for the Apex model.
- *
- * @param apexModel the apex model
- * @param apexProperties Properties for the model
- */
- public ModelFacade(final ApexModel apexModel, final Properties apexProperties) {
- Assertions.argumentNotNull(apexModel, "apexModel may not be null");
- Assertions.argumentNotNull(apexProperties, "apexProperties may not be null");
-
- this.apexModel = apexModel;
- this.apexProperties = apexProperties;
-
- keyInformationFacade = new KeyInformationFacade(apexModel, apexProperties);
- }
-
- /**
- * Create model.
- *
- * @param name name of the model
- * @param version version of the model, set to null to use the default version
- * @param uuid model UUID, set to null to generate a UUID
- * @param description model description, set to null to generate a description
- * @return result of the operation
- */
- public ApexApiResult createModel(final String name, final String version, final String uuid,
- final String description) {
- try {
- final AxArtifactKey key = new AxArtifactKey();
- key.setName(name);
- if (version != null) {
- key.setVersion(version);
- } else {
- final String defaultVersion = apexProperties.getProperty("DEFAULT_CONCEPT_VERSION");
- if (defaultVersion != null) {
- key.setVersion(defaultVersion);
- } else {
- return new ApexApiResult(ApexApiResult.Result.FAILED, CONCEPT + name + NO_VERSION_SPECIFIED);
- }
- }
-
- if (!apexModel.getPolicyModel().getKey().equals(AxArtifactKey.getNullKey())) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_EXISTS,
- CONCEPT + apexModel.getPolicyModel().getKey().getId() + ALREADY_CREATED);
- }
-
- apexModel.setPolicyModel(new AxPolicyModel(key));
-
- ApexApiResult result;
-
- result = keyInformationFacade.createKeyInformation(name, version, uuid, description);
- if (result.getResult().equals(ApexApiResult.Result.SUCCESS)) {
- apexModel.getPolicyModel().buildReferences();
- apexModel.getPolicyModel().getKeyInformation().generateKeyInfo(apexModel.getPolicyModel());
- }
- return result;
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * Update model.
- *
- * @param name name of the model
- * @param version version of the model, set to null to update the latest version
- * @param uuid key information UUID, set to null to not update
- * @param description policy description, set to null to not update
- * @return result of the operation
- */
- public ApexApiResult updateModel(final String name, final String version, final String uuid,
- final String description) {
- try {
- final AxArtifactKey key = new AxArtifactKey();
- key.setName(name);
- if (version != null) {
- key.setVersion(version);
- } else {
- final String defaultVersion = apexProperties.getProperty("DEFAULT_CONCEPT_VERSION");
- if (defaultVersion != null) {
- key.setVersion(defaultVersion);
- } else {
- return new ApexApiResult(ApexApiResult.Result.FAILED,
- CONCEPT + apexModel.getPolicyModel().getKey().getId() + NO_VERSION_SPECIFIED);
- }
- }
-
- if (apexModel.getPolicyModel().getKey().equals(AxArtifactKey.getNullKey())) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + apexModel.getPolicyModel().getKey().getId() + DOES_NOT_EXIST);
- }
-
- return keyInformationFacade.updateKeyInformation(name, version, uuid, description);
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * Get the key of an Apex model.
- *
- * @return the result of the operation
- */
- public ApexApiResult getModelKey() {
- try {
- final ApexApiResult result = new ApexApiResult();
- final AxArtifactKey modelkey = apexModel.getPolicyModel().getKey();
- result
- .addMessage(new ApexModelStringWriter<AxArtifactKey>(false).writeString(modelkey, AxArtifactKey.class));
- return result;
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * List an Apex model.
- *
- * @return the result of the operation
- */
- public ApexApiResult listModel() {
- try {
- final ApexApiResult result = new ApexApiResult();
- result.addMessage(new ApexModelStringWriter<AxPolicyModel>(false).writeString(apexModel.getPolicyModel(),
- AxPolicyModel.class));
- return result;
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * Delete an Apex model, clear all the concepts in the model.
- *
- * @return the result of the operation
- */
- public ApexApiResult deleteModel() {
- // @formatter:off
- apexModel.getPolicyModel().getSchemas().getSchemasMap().clear();
- apexModel.getPolicyModel().getEvents().getEventMap().clear();
- apexModel.getPolicyModel().getAlbums().getAlbumsMap().clear();
- apexModel.getPolicyModel().getTasks().getTaskMap().clear();
- apexModel.getPolicyModel().getPolicies().getPolicyMap().clear();
- apexModel.getPolicyModel().getKeyInformation().getKeyInfoMap().clear();
- // @formatter:on
-
- apexModel.setPolicyModel(new AxPolicyModel());
-
- return new ApexApiResult();
- }
-}
diff --git a/model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/impl/ModelHandlerFacade.java b/model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/impl/ModelHandlerFacade.java
deleted file mode 100644
index fecf92e1f..000000000
--- a/model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/impl/ModelHandlerFacade.java
+++ /dev/null
@@ -1,498 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Copyright (C) 2016-2018 Ericsson. All rights reserved.
- * Modifications Copyright (C) 2019-2020,2022 Nordix Foundation.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.apex.model.modelapi.impl;
-
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.net.URLConnection;
-import java.nio.file.Files;
-import java.util.LinkedHashSet;
-import java.util.Properties;
-import java.util.Set;
-import org.onap.policy.apex.model.basicmodel.concepts.ApexException;
-import org.onap.policy.apex.model.basicmodel.concepts.AxArtifactKey;
-import org.onap.policy.apex.model.basicmodel.concepts.AxValidationResult;
-import org.onap.policy.apex.model.basicmodel.handling.ApexModelException;
-import org.onap.policy.apex.model.basicmodel.handling.ApexModelFileWriter;
-import org.onap.policy.apex.model.basicmodel.handling.ApexModelReader;
-import org.onap.policy.apex.model.basicmodel.handling.ApexModelStringWriter;
-import org.onap.policy.apex.model.basicmodel.handling.ApexModelWriter;
-import org.onap.policy.apex.model.modelapi.ApexApiResult;
-import org.onap.policy.apex.model.modelapi.ApexModel;
-import org.onap.policy.apex.model.policymodel.concepts.AxPolicy;
-import org.onap.policy.apex.model.policymodel.concepts.AxPolicyModel;
-import org.onap.policy.apex.model.policymodel.handling.PolicyAnalyser;
-import org.onap.policy.apex.model.policymodel.handling.PolicyAnalysisResult;
-import org.onap.policy.apex.model.policymodel.handling.PolicyModelComparer;
-import org.onap.policy.apex.model.policymodel.handling.PolicyModelMerger;
-import org.onap.policy.apex.model.policymodel.handling.PolicyModelSplitter;
-import org.onap.policy.common.utils.resources.ResourceUtils;
-import org.onap.policy.common.utils.resources.TextFileUtils;
-import org.onap.policy.common.utils.validation.Assertions;
-import org.slf4j.ext.XLogger;
-import org.slf4j.ext.XLoggerFactory;
-
-/**
- * This class acts as a facade for model handling for the Apex Model API.
- *
- * @author Liam Fallon (liam.fallon@ericsson.com)
- */
-public class ModelHandlerFacade {
- private static final String FILE_NAME_MAY_NOT_BE_NULL = "fileName may not be null";
- private static final String MODEL = "model ";
- private static final String ALREADY_LOADED = " already loaded";
-
- private static final XLogger LOGGER = XLoggerFactory.getXLogger(ModelHandlerFacade.class);
-
- // Apex model we're working towards
- private final ApexModel apexModel;
-
- /**
- * This Constructor creates a model handling facade for the given {@link ApexModel}.
- *
- * @param apexModel the apex model to manipulate
- * @param apexProperties properties for the model
- */
- public ModelHandlerFacade(final ApexModel apexModel, final Properties apexProperties) {
- Assertions.argumentNotNull(apexModel, "apexModel may not be null");
- Assertions.argumentNotNull(apexProperties, "apexProperties may not be null");
-
- this.apexModel = apexModel;
- }
-
- /**
- * Load an Apex model from a string.
- *
- * @param modelString the string with the model
- * @return the result of the operation
- */
- public ApexApiResult loadFromString(final String modelString) {
- Assertions.argumentNotNull(modelString, "modelString may not be null");
-
- if (!apexModel.getPolicyModel().getKey().equals(AxArtifactKey.getNullKey())) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_EXISTS,
- MODEL + apexModel.getPolicyModel().getKey().getId() + ALREADY_LOADED);
- }
-
- ApexApiResult result = new ApexApiResult();
- AxPolicyModel newPolicyModel = loadModelFromString(modelString, result);
- apexModel.setPolicyModel(newPolicyModel != null ? newPolicyModel : new AxPolicyModel());
-
- return result;
- }
-
- /**
- * Load an Apex model from a file.
- *
- * @param fileName the file name of the file with the model
- * @return the result of the operation
- */
- public ApexApiResult loadFromFile(final String fileName) {
- Assertions.argumentNotNull(fileName, FILE_NAME_MAY_NOT_BE_NULL);
-
- if (!apexModel.getPolicyModel().getKey().equals(AxArtifactKey.getNullKey())) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_EXISTS,
- MODEL + apexModel.getPolicyModel().getKey().getId() + ALREADY_LOADED);
- }
-
- ApexApiResult result = new ApexApiResult();
- AxPolicyModel newPolicyModel = loadModelFromFile(fileName, result);
- apexModel.setPolicyModel(newPolicyModel != null ? newPolicyModel : new AxPolicyModel());
-
- return result;
- }
-
- /**
- * Save an Apex model to a file.
- *
- * @param fileName the file name
- * @return the result of the operation
- */
- public ApexApiResult saveToFile(final String fileName) {
- Assertions.argumentNotNull(fileName, FILE_NAME_MAY_NOT_BE_NULL);
-
- ApexModelFileWriter<AxPolicyModel> apexModelFileWriter = new ApexModelFileWriter<>(false);
-
- try {
- apexModelFileWriter.apexModelWriteJsonFile(apexModel.getPolicyModel(), AxPolicyModel.class, fileName);
- return new ApexApiResult();
- } catch (ApexException e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * Read an APEX model from a location identified by a URL.
- *
- * @param urlString the url string
- * @return the result of the operation
- */
- public ApexApiResult readFromUrl(final String urlString) {
- Assertions.argumentNotNull(urlString, "urlString may not be null");
-
- if (!apexModel.getPolicyModel().getKey().equals(AxArtifactKey.getNullKey())) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_EXISTS,
- MODEL + apexModel.getPolicyModel().getKey().getId() + ALREADY_LOADED);
- }
-
- URL apexModelUrl;
- try {
- apexModelUrl = new URL(urlString);
- } catch (MalformedURLException e) {
- ApexApiResult result = new ApexApiResult(ApexApiResult.Result.FAILED);
- result.addMessage("URL string " + urlString + " is not a valid URL");
- result.addThrowable(e);
- return result;
- }
-
- try {
- ApexModelReader<AxPolicyModel> apexModelReader = new ApexModelReader<>(AxPolicyModel.class);
- apexModelReader.setValidate(false);
- AxPolicyModel newPolicyModel = apexModelReader.read(apexModelUrl.openStream());
- apexModel.setPolicyModel(newPolicyModel != null ? newPolicyModel : new AxPolicyModel());
- return new ApexApiResult();
- } catch (ApexModelException | IOException e) {
- apexModel.setPolicyModel(new AxPolicyModel());
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * Write an APEX model to a location identified by a URL.
- *
- * @param urlString the URL to read the model from
- * @return the result of the operation
- */
- public ApexApiResult writeToUrl(final String urlString) {
- Assertions.argumentNotNull(urlString, "urlString may not be null");
-
- URL apexModelUrl;
- try {
- apexModelUrl = new URL(urlString);
- } catch (MalformedURLException e) {
- ApexApiResult result = new ApexApiResult(ApexApiResult.Result.FAILED);
- result.addMessage("URL string " + urlString + " is not a valid URL");
- result.addThrowable(e);
- return result;
- }
-
- try {
- ApexModelWriter<AxPolicyModel> apexModelWriter = new ApexModelWriter<>(AxPolicyModel.class);
- apexModelWriter.setValidate(false);
-
- // Open the URL for output and write the model
- URLConnection urlConnection = apexModelUrl.openConnection();
- urlConnection.setDoOutput(true);
-
- apexModelWriter.write(apexModel.getPolicyModel(), urlConnection.getOutputStream());
- return new ApexApiResult();
- } catch (ApexModelException | IOException e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * Analyse an Apex model that shows the concept usage references of a policy model.
- *
- * @return the result of the operation
- */
- public ApexApiResult analyse() {
- PolicyAnalysisResult analysisResult = new PolicyAnalyser().analyse(apexModel.getPolicyModel());
- return new ApexApiResult(ApexApiResult.Result.SUCCESS, analysisResult.toString());
- }
-
- /**
- * Validate an Apex model, checking all concepts and references in the model.
- *
- * @return the result of the operation
- */
- public ApexApiResult validate() {
- ApexApiResult result = new ApexApiResult();
- try {
- AxValidationResult validationResult = apexModel.getPolicyModel().validate(new AxValidationResult());
-
- if (!validationResult.isValid()) {
- result.setResult(ApexApiResult.Result.FAILED);
- }
- result.addMessage(new ApexModelStringWriter<AxArtifactKey>(false)
- .writeString(apexModel.getPolicyModel().getKey(), AxArtifactKey.class));
- result.addMessage(validationResult.toString());
- return result;
- } catch (Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * Compare to Apex models, returning the differences between the models.
- *
- * @param otherModelFileName the file name of the other model
- * @param diffsOnly only returns differences between the model when set
- * @param keysOnly only returns the keys that are different when set, when not set values are also returned
- * @return the result of the operation
- */
- public ApexApiResult compare(final String otherModelFileName, final boolean diffsOnly, final boolean keysOnly) {
- ApexApiResult result = new ApexApiResult();
- try {
- AxPolicyModel otherPolicyModel = loadModelFromFile(otherModelFileName, result);
- if (!result.getResult().equals(ApexApiResult.Result.SUCCESS)) {
- return result;
- }
-
- PolicyModelComparer policyModelComparer =
- new PolicyModelComparer(apexModel.getPolicyModel(), otherPolicyModel);
- result.addMessage(new ApexModelStringWriter<AxArtifactKey>(false)
- .writeString(apexModel.getPolicyModel().getKey(), AxArtifactKey.class));
- result.addMessage(policyModelComparer.toString());
-
- return result;
- } catch (Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * Compare two Apex models, returning the differences between the models.
- *
- * @param otherModelString the other model as a string
- * @param diffsOnly only returns differences between the model when set
- * @param keysOnly only returns the keys that are different when set, when not set values are also returned
- * @return the result of the operation
- */
- public ApexApiResult compareWithString(final String otherModelString, final boolean diffsOnly,
- final boolean keysOnly) {
- ApexApiResult result = new ApexApiResult();
- try {
- AxPolicyModel otherPolicyModel = loadModelFromString(otherModelString, result);
- if (!result.getResult().equals(ApexApiResult.Result.SUCCESS)) {
- return result;
- }
-
- PolicyModelComparer policyModelComparer =
- new PolicyModelComparer(apexModel.getPolicyModel(), otherPolicyModel);
- result.addMessage(new ApexModelStringWriter<AxArtifactKey>(false)
- .writeString(apexModel.getPolicyModel().getKey(), AxArtifactKey.class));
- result.addMessage(policyModelComparer.toString());
-
- return result;
- } catch (Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * Split out a sub model from an Apex model that contains a given subset of the policies in the original model.
- *
- * @param targetModelName the file name of the target model in which to store the model split out from the original
- * model
- * @param splitOutPolicies the policies form the original model to include in the split out model, specified as a
- * comma delimited list of policy names
- * @return the result of the operation
- */
- public ApexApiResult split(final String targetModelName, final String splitOutPolicies) {
- Set<AxArtifactKey> requiredPolicySet = new LinkedHashSet<>();
-
- // Split the policy names on comma
- String[] policyNames = splitOutPolicies.split(",");
-
- // Iterate over the policy names
- for (String policyName : policyNames) {
- // Split out this specific policy
- AxPolicy requiredPolicy = apexModel.getPolicyModel().getPolicies().get(policyName);
-
- if (requiredPolicy != null) {
- requiredPolicySet.add(requiredPolicy.getKey());
- } else {
- return new ApexApiResult(ApexApiResult.Result.FAILED,
- "policy for policy name " + policyName + " not found in model");
- }
- }
-
- try {
- AxPolicyModel splitPolicyModel =
- PolicyModelSplitter.getSubPolicyModel(apexModel.getPolicyModel(), requiredPolicySet, false);
-
- ApexModelFileWriter<AxPolicyModel> apexModelFileWriter = new ApexModelFileWriter<>(false);
- apexModelFileWriter.apexModelWriteJsonFile(splitPolicyModel, AxPolicyModel.class, targetModelName);
- return new ApexApiResult();
- } catch (ApexException e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * Split out a sub model from an Apex model that contains a given subset of the policies in the original model,
- * return the split model in the result as a string.
- *
- * @param splitOutPolicies the policies form the original model to include in the split out model, specified as a
- * comma delimited list of policy names
- * @return the result of the operation
- */
- public ApexApiResult split(final String splitOutPolicies) {
- ApexApiResult splitResult = new ApexApiResult();
- File tempSplitPolicyFile = null;
- try {
- tempSplitPolicyFile = TextFileUtils.createTempFile("ApexTempPolicy", null);
-
- // Split the policy into a temporary file
- splitResult = split(tempSplitPolicyFile.getCanonicalPath(), splitOutPolicies);
- if (splitResult.isNok()) {
- return splitResult;
- }
-
- // Get the policy model into a string
- String splitPolicyModelString = TextFileUtils.getTextFileAsString(tempSplitPolicyFile.getCanonicalPath());
-
- // Return the policy model
- splitResult.addMessage(splitPolicyModelString);
- return splitResult;
- } catch (Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED,
- "split of policy model " + apexModel.getPolicyModel().getId() + " failed", e);
- } finally {
- if (tempSplitPolicyFile != null) {
- try {
- Files.delete(tempSplitPolicyFile.toPath());
- } catch (IOException e) {
- LOGGER.debug("delete of temporary file failed", e);
- }
- }
- }
- }
-
- /**
- * Merge two Apex models together.
- *
- * @param mergeInModelName the file name of the model to merge into the current model
- * @param keepOriginal if this flag is set to true, if a concept exists in both models, the original model copy of
- * that concept is kept, if the flag is set to false, then the copy of the concept from the mergeInModel
- * overwrites the concept in the original model
- * @return the result of the operation
- */
- public ApexApiResult merge(final String mergeInModelName, final boolean keepOriginal) {
- ApexApiResult result = new ApexApiResult();
- AxPolicyModel mergeInPolicyModel = loadModelFromFile(mergeInModelName, result);
- if (!result.getResult().equals(ApexApiResult.Result.SUCCESS)) {
- return result;
- }
-
- try {
- AxPolicyModel mergedPolicyModel = PolicyModelMerger.getMergedPolicyModel(apexModel.getPolicyModel(),
- mergeInPolicyModel, keepOriginal, false, false);
- apexModel.setPolicyModel(mergedPolicyModel != null ? mergedPolicyModel : new AxPolicyModel());
- return new ApexApiResult();
- } catch (ApexModelException e) {
- apexModel.setPolicyModel(new AxPolicyModel());
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * Merge two Apex models together.
- *
- * @param otherModelString the model to merge as a string
- * @param keepOriginal if this flag is set to true, if a concept exists in both models, the original model copy of
- * that concept is kept, if the flag is set to false, then the copy of the concept from the mergeInModel
- * overwrites the concept in the original model
- * @return the result of the operation
- */
- public ApexApiResult mergeWithString(final String otherModelString, final boolean keepOriginal) {
- ApexApiResult result = new ApexApiResult();
- AxPolicyModel mergeInPolicyModel = loadModelFromString(otherModelString, result);
- if (!result.getResult().equals(ApexApiResult.Result.SUCCESS)) {
- return result;
- }
-
- try {
- AxPolicyModel mergedPolicyModel = PolicyModelMerger.getMergedPolicyModel(apexModel.getPolicyModel(),
- mergeInPolicyModel, keepOriginal, false, false);
- apexModel.setPolicyModel(mergedPolicyModel != null ? mergedPolicyModel : new AxPolicyModel());
- return new ApexApiResult();
- } catch (ApexModelException e) {
- apexModel.setPolicyModel(new AxPolicyModel());
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * Load a policy model from a file.
- *
- * @param fileName the name of the file containing the model
- * @param result the result of the operation
- * @return the model
- */
- private AxPolicyModel loadModelFromFile(final String fileName, final ApexApiResult result) {
- Assertions.argumentNotNull(fileName, FILE_NAME_MAY_NOT_BE_NULL);
-
- AxPolicyModel readModel = null;
-
- final URL apexModelUrl = ResourceUtils.getLocalFile(fileName);
- if (apexModelUrl == null) {
- result.setResult(ApexApiResult.Result.FAILED);
- result.addMessage("file " + fileName + " not found");
- return null;
- }
-
- try {
- ApexModelReader<AxPolicyModel> apexModelReader = new ApexModelReader<>(AxPolicyModel.class);
- apexModelReader.setValidate(false);
- readModel = apexModelReader.read(apexModelUrl.openStream());
- result.setResult(ApexApiResult.Result.SUCCESS);
- return readModel;
- } catch (Exception e) {
- result.setResult(ApexApiResult.Result.FAILED);
- result.addThrowable(e);
- return null;
- }
- }
-
- /**
- * Load a policy model from a string.
- *
- * @param modelString the string containing the model
- * @param result the result of the operation
- * @return the model
- */
- private AxPolicyModel loadModelFromString(final String modelString, final ApexApiResult result) {
- Assertions.argumentNotNull(modelString, "modelString may not be null");
-
- AxPolicyModel readModel = null;
-
- InputStream modelStringStream = new ByteArrayInputStream(modelString.getBytes());
-
- try {
- ApexModelReader<AxPolicyModel> apexModelReader = new ApexModelReader<>(AxPolicyModel.class);
- apexModelReader.setValidate(false);
- readModel = apexModelReader.read(modelStringStream);
- result.setResult(ApexApiResult.Result.SUCCESS);
- return readModel;
- } catch (Exception e) {
- result.setResult(ApexApiResult.Result.FAILED);
- result.addThrowable(e);
- return null;
- }
- }
-}
diff --git a/model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/impl/PolicyFacade.java b/model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/impl/PolicyFacade.java
deleted file mode 100644
index 408f0913f..000000000
--- a/model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/impl/PolicyFacade.java
+++ /dev/null
@@ -1,1385 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Copyright (C) 2016-2018 Ericsson. All rights reserved.
- * Modifications Copyright (C) 2019,2022 Nordix Foundation.
- * Modifications Copyright (C) 2021 Bell Canada. All rights reserved.
- * Modifications Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.apex.model.modelapi.impl;
-
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Properties;
-import java.util.Set;
-import java.util.TreeMap;
-import java.util.TreeSet;
-import org.onap.policy.apex.model.basicmodel.concepts.AxArtifactKey;
-import org.onap.policy.apex.model.basicmodel.concepts.AxKey;
-import org.onap.policy.apex.model.basicmodel.concepts.AxReferenceKey;
-import org.onap.policy.apex.model.basicmodel.concepts.AxValidationResult;
-import org.onap.policy.apex.model.basicmodel.handling.ApexModelStringWriter;
-import org.onap.policy.apex.model.contextmodel.concepts.AxContextAlbum;
-import org.onap.policy.apex.model.eventmodel.concepts.AxEvent;
-import org.onap.policy.apex.model.modelapi.ApexApiResult;
-import org.onap.policy.apex.model.modelapi.ApexModel;
-import org.onap.policy.apex.model.policymodel.concepts.AxPolicy;
-import org.onap.policy.apex.model.policymodel.concepts.AxState;
-import org.onap.policy.apex.model.policymodel.concepts.AxStateFinalizerLogic;
-import org.onap.policy.apex.model.policymodel.concepts.AxStateOutput;
-import org.onap.policy.apex.model.policymodel.concepts.AxStateTaskOutputType;
-import org.onap.policy.apex.model.policymodel.concepts.AxStateTaskReference;
-import org.onap.policy.apex.model.policymodel.concepts.AxTask;
-import org.onap.policy.apex.model.policymodel.concepts.AxTaskSelectionLogic;
-import org.onap.policy.common.utils.validation.Assertions;
-
-/**
- * This class acts as a facade for operations towards a policy model for policy operations.
- *
- * @author Liam Fallon (liam.fallon@ericsson.com)
- */
-public class PolicyFacade {
- private static final String STATE_NAME_MAY_NOT_BE_NULL = "stateName may not be null";
- private static final String DOES_NOT_EXIST_ON_STATE = " does not exist on state ";
- private static final String STATE_FINALIZER_LOGIC = "state finalizer logic ";
- private static final String DO_ES_NOT_EXIST = " do(es) not exist";
- private static final String CONCEPT_S = "concept(s) ";
- private static final String DOES_NOT_EXIST = " does not exist";
- private static final String CONCEPT = "concept ";
- private static final String ALREADY_EXISTS = " already exists";
-
- // Apex model we're working towards
- private final ApexModel apexModel;
-
- // Properties to use for the model
- private final Properties apexProperties;
-
- // Facade classes for working towards the real Apex model
- private final KeyInformationFacade keyInformationFacade;
-
- /**
- * Constructor that creates a policy facade for the Apex Model API.
- *
- * @param apexModel the apex model
- * @param apexProperties Properties for the model
- */
- public PolicyFacade(final ApexModel apexModel, final Properties apexProperties) {
- this.apexModel = apexModel;
- this.apexProperties = apexProperties;
-
- keyInformationFacade = new KeyInformationFacade(apexModel, apexProperties);
- }
-
- /**
- * Create a policy.
- *
- * @param name name of the policy
- * @param version version of the policy, set to null to use the default version
- * @param template template used to create the policy, set to null to use the default template
- * @param firstState the first state of the policy
- * @param uuid policy UUID, set to null to generate a UUID
- * @param description policy description, set to null to generate a description
- * @return result of the operation
- */
- public ApexApiResult createPolicy(final String name, final String version, final String template,
- final String firstState, final String uuid, final String description) {
- try {
- final AxArtifactKey key = new AxArtifactKey();
- key.setName(name);
- if (version != null) {
- key.setVersion(version);
- } else {
- key.setVersion(apexProperties.getProperty("DEFAULT_CONCEPT_VERSION"));
- }
-
- String templateString = template;
- if (templateString == null) {
- templateString = apexProperties.getProperty("DEFAULT_POLICY_TEMPLATE");
- }
-
- if (apexModel.getPolicyModel().getPolicies().getPolicyMap().containsKey(key)) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_EXISTS, CONCEPT + key.getId() + ALREADY_EXISTS);
- }
-
- final AxPolicy policy = new AxPolicy(key);
- policy.setTemplate(templateString);
- policy.setFirstState(firstState);
-
- apexModel.getPolicyModel().getPolicies().getPolicyMap().put(key, policy);
-
- if (apexModel.getPolicyModel().getKeyInformation().getKeyInfoMap().containsKey(key)) {
- return keyInformationFacade.updateKeyInformation(name, version, uuid, description);
- } else {
- return keyInformationFacade.createKeyInformation(name, version, uuid, description);
- }
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * Update a policy.
- *
- * @param name name of the policy
- * @param version version of the policy, set to null to use the latest version
- * @param template template used to create the policy, set to null to not update
- * @param firstState the first state of the policy
- * @param uuid policy UUID, set to null to not update
- * @param description policy description, set to null to not update
- * @return result of the operation
- */
- public ApexApiResult updatePolicy(final String name, final String version, final String template,
- final String firstState, final String uuid, final String description) {
- try {
- final AxPolicy policy = apexModel.getPolicyModel().getPolicies().get(name, version);
- if (policy == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + name + ':' + version + DOES_NOT_EXIST);
- }
-
- if (template != null) {
- policy.setTemplate(template);
- }
- if (firstState != null) {
- policy.setFirstState(firstState);
- }
-
- return keyInformationFacade.updateKeyInformation(name, version, uuid, description);
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * List policies.
- *
- * @param name name of the policy, set to null to list all
- * @param version starting version of the policy, set to null to list all versions
- * @return result of the operation
- */
- public ApexApiResult listPolicy(final String name, final String version) {
- try {
- final Set<AxPolicy> policySet = apexModel.getPolicyModel().getPolicies().getAll(name, version);
- if (name != null && policySet.isEmpty()) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT_S + name + ':' + version + DO_ES_NOT_EXIST);
- }
-
- final ApexApiResult result = new ApexApiResult();
- for (final AxPolicy policy : policySet) {
- result.addMessage(new ApexModelStringWriter<AxPolicy>(false).writeString(policy, AxPolicy.class));
- }
- return result;
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * Delete a policy.
- *
- * @param name name of the policy
- * @param version version of the policy, set to null to use the latest version
- * @return result of the operation
- */
- public ApexApiResult deletePolicy(final String name, final String version) {
- try {
- if (version != null) {
- final AxArtifactKey key = new AxArtifactKey(name, version);
- final AxPolicy removedPolicy = apexModel.getPolicyModel().getPolicies().getPolicyMap().remove(key);
- if (removedPolicy != null) {
- return new ApexApiResult(ApexApiResult.Result.SUCCESS,
- new ApexModelStringWriter<AxPolicy>(false).writeString(removedPolicy, AxPolicy.class));
- } else {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + key.getId() + DOES_NOT_EXIST);
- }
- }
-
- final Set<AxPolicy> policySet = apexModel.getPolicyModel().getPolicies().getAll(name, version);
- if (policySet.isEmpty()) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT_S + name + ':' + version + DO_ES_NOT_EXIST);
- }
-
- final ApexApiResult result = new ApexApiResult();
- for (final AxPolicy policy : policySet) {
- result.addMessage(new ApexModelStringWriter<AxPolicy>(false).writeString(policy, AxPolicy.class));
- apexModel.getPolicyModel().getPolicies().getPolicyMap().remove(policy.getKey());
- keyInformationFacade.deleteKeyInformation(name, version);
- }
- return result;
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * Validate policies.
- *
- * @param name name of the policy, set to null to list all
- * @param version starting version of the policy, set to null to list all versions
- * @return result of the operation
- */
- public ApexApiResult validatePolicy(final String name, final String version) {
- try {
- final Set<AxPolicy> policySet = apexModel.getPolicyModel().getPolicies().getAll(name, version);
- if (policySet.isEmpty()) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT_S + name + ':' + version + DO_ES_NOT_EXIST);
- }
-
- final ApexApiResult result = new ApexApiResult();
- for (final AxPolicy policy : policySet) {
- final AxValidationResult validationResult = policy.validate(new AxValidationResult());
- result.addMessage(
- new ApexModelStringWriter<AxArtifactKey>(false).writeString(policy.getKey(), AxArtifactKey.class));
- result.addMessage(validationResult.toString());
- }
- return result;
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * Create a policy state.
- *
- * @param name name of the policy
- * @param version version of the policy, set to null to use the latest version
- * @param stateName of the state
- * @param triggerName name of the trigger event for this state
- * @param triggerVersion version of the trigger event for this state, set to null to use the
- * latest version
- * @param defaultTaskName the default task name
- * @param defaltTaskVersion the default task version, set to null to use the latest version
- * @return result of the operation
- */
- public ApexApiResult createPolicyState(final String name, final String version, final String stateName,
- final String triggerName, final String triggerVersion, final String defaultTaskName,
- final String defaltTaskVersion) {
- try {
- Assertions.argumentNotNull(stateName, STATE_NAME_MAY_NOT_BE_NULL);
-
- final AxPolicy policy = apexModel.getPolicyModel().getPolicies().get(name, version);
- if (policy == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + name + ':' + version + DOES_NOT_EXIST);
- }
-
- final AxReferenceKey refKey = new AxReferenceKey(policy.getKey(), stateName);
-
- if (policy.getStateMap().containsKey(refKey.getLocalName())) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_EXISTS,
- CONCEPT + refKey.getId() + ALREADY_EXISTS);
- }
-
- final AxEvent triggerEvent = apexModel.getPolicyModel().getEvents().get(triggerName, triggerVersion);
- if (triggerEvent == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + triggerName + ':' + triggerVersion + DOES_NOT_EXIST);
- }
-
- final AxTask defaultTask = apexModel.getPolicyModel().getTasks().get(defaultTaskName, defaltTaskVersion);
- if (defaultTask == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + defaultTaskName + ':' + defaltTaskVersion + DOES_NOT_EXIST);
- }
-
- final AxState state = new AxState(refKey);
- state.setTrigger(triggerEvent.getKey());
- state.setDefaultTask(defaultTask.getKey());
-
- policy.getStateMap().put(state.getKey().getLocalName(), state);
- return new ApexApiResult();
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * Update a policy state.
- *
- * @param name name of the policy
- * @param version version of the policy, set to null to use the latest version
- * @param stateName of the state
- * @param triggerName name of the trigger event for this state, set to null to not update
- * @param triggerVersion version of the trigger event for this state, set to use latest version
- * of trigger event
- * @param defaultTaskName the default task name, set to null to not update
- * @param defaltTaskVersion the default task version, set to use latest version of default task
- * @return result of the operation
- */
- public ApexApiResult updatePolicyState(final String name, final String version, final String stateName,
- final String triggerName, final String triggerVersion, final String defaultTaskName,
- final String defaltTaskVersion) {
- try {
- Assertions.argumentNotNull(stateName, STATE_NAME_MAY_NOT_BE_NULL);
-
- final AxPolicy policy = apexModel.getPolicyModel().getPolicies().get(name, version);
- if (policy == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + name + ':' + version + DOES_NOT_EXIST);
- }
-
- final AxState state = policy.getStateMap().get(stateName);
- if (state == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + policy.getKey().getId() + ':' + stateName + DOES_NOT_EXIST);
- }
-
- if (triggerName != null) {
- final AxEvent triggerEvent = apexModel.getPolicyModel().getEvents().get(triggerName, triggerVersion);
- if (triggerEvent == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + triggerName + ':' + triggerVersion + DOES_NOT_EXIST);
- }
- state.setTrigger(triggerEvent.getKey());
- }
-
- if (defaultTaskName != null) {
- final AxTask defaultTask =
- apexModel.getPolicyModel().getTasks().get(defaultTaskName, defaltTaskVersion);
- if (defaultTask == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + defaultTaskName + ':' + defaltTaskVersion + DOES_NOT_EXIST);
- }
- state.setDefaultTask(defaultTask.getKey());
- }
-
- return new ApexApiResult();
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * List policy states.
- *
- * @param name name of the policy
- * @param version version of the policy, set to null to use the latest version
- * @param stateName of the state, set to null to list all states of the policy
- * @return result of the operation
- */
- public ApexApiResult listPolicyState(final String name, final String version, final String stateName) {
- try {
- final AxPolicy policy = apexModel.getPolicyModel().getPolicies().get(name, version);
- if (policy == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + name + ':' + version + DOES_NOT_EXIST);
- }
-
- if (stateName != null) {
- final AxState state = policy.getStateMap().get(stateName);
- if (state != null) {
- return new ApexApiResult(ApexApiResult.Result.SUCCESS,
- new ApexModelStringWriter<AxState>(false).writeString(state, AxState.class));
- } else {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + name + ':' + version + ':' + state + DOES_NOT_EXIST);
- }
- } else {
- if (policy.getStateMap().size() == 0) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- "no states defined on policy " + policy.getKey().getId());
- }
- final ApexApiResult result = new ApexApiResult();
- for (final AxState state : policy.getStateMap().values()) {
- result.addMessage(new ApexModelStringWriter<AxState>(false).writeString(state, AxState.class));
- }
- return result;
- }
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * Delete a policy state.
- *
- * @param name name of the policy
- * @param version version of the policy, set to null to use the latest version
- * @param stateName of the state, set to null to delete all states
- * @return result of the operation
- */
- public ApexApiResult deletePolicyState(final String name, final String version, final String stateName) {
- try {
- final AxPolicy policy = apexModel.getPolicyModel().getPolicies().get(name, version);
- if (policy == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + name + ':' + version + DOES_NOT_EXIST);
- }
-
- final ApexApiResult result = new ApexApiResult();
- if (stateName != null) {
- if (policy.getStateMap().containsKey(stateName)) {
- result.addMessage(new ApexModelStringWriter<AxState>(false)
- .writeString(policy.getStateMap().get(stateName), AxState.class));
- policy.getStateMap().remove(stateName);
- return result;
- } else {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + name + ':' + version + ':' + stateName + DOES_NOT_EXIST);
- }
- } else {
- if (policy.getStateMap().size() == 0) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- "no states defined on policy " + policy.getKey().getId());
- }
- for (final AxState state : policy.getStateMap().values()) {
- result.addMessage(new ApexModelStringWriter<AxState>(false).writeString(state, AxState.class));
- }
- policy.getStateMap().clear();
- return result;
- }
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * Create task selection logic for a state.
- *
- * @param name name of the policy
- * @param version version of the policy, set to null to use the latest version
- * @param stateName of the state
- * @param logicFlavour the task selection logic flavour for the state, set to null to use the
- * default task logic flavour
- * @param logic the source code for the logic of the state
- * @return result of the operation
- */
- public ApexApiResult createPolicyStateTaskSelectionLogic(final String name, final String version,
- final String stateName, final String logicFlavour, final String logic) {
- try {
- Assertions.argumentNotNull(stateName, STATE_NAME_MAY_NOT_BE_NULL);
-
- final AxPolicy policy = apexModel.getPolicyModel().getPolicies().get(name, version);
- if (policy == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + name + ':' + version + DOES_NOT_EXIST);
- }
-
- final AxState state = policy.getStateMap().get(stateName);
- if (state == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + policy.getKey().getId() + ':' + stateName + DOES_NOT_EXIST);
- }
-
- // There is only one logic item associated with a state so we use a hard coded logic
- // name
- final AxReferenceKey refKey = new AxReferenceKey(state.getKey(), "TaskSelectionLogic");
-
- if (!state.getTaskSelectionLogic().getKey().getLocalName().equals(AxKey.NULL_KEY_NAME)) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_EXISTS,
- CONCEPT + refKey.getId() + ALREADY_EXISTS);
- }
-
- state.setTaskSelectionLogic(new AxTaskSelectionLogic(refKey, logicFlavour, logic));
- return new ApexApiResult();
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * Update task selection logic for a state.
- *
- * @param name name of the policy
- * @param version version of the policy, set to null to use the latest version
- * @param stateName of the state
- * @param logicFlavour the task selection logic flavour for the state, set to null to not update
- * @param logic the source code for the logic of the state, set to null to not update
- * @return result of the operation
- */
- public ApexApiResult updatePolicyStateTaskSelectionLogic(final String name, final String version,
- final String stateName, final String logicFlavour, final String logic) {
- try {
- Assertions.argumentNotNull(stateName, STATE_NAME_MAY_NOT_BE_NULL);
-
- final AxPolicy policy = apexModel.getPolicyModel().getPolicies().get(name, version);
- if (policy == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + name + ':' + version + DOES_NOT_EXIST);
- }
-
- final AxState state = policy.getStateMap().get(stateName);
- if (state == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + policy.getKey().getId() + ':' + stateName + DOES_NOT_EXIST);
- }
-
- if (state.getTaskSelectionLogic().getKey().getLocalName().equals(AxKey.NULL_KEY_NAME)) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + state.getTaskSelectionLogic().getKey().getId() + DOES_NOT_EXIST);
- }
-
- final AxTaskSelectionLogic taskSelectionLogic = state.getTaskSelectionLogic();
- if (logicFlavour != null) {
- taskSelectionLogic.setLogicFlavour(logicFlavour);
- }
- if (logic != null) {
- taskSelectionLogic.setLogic(logic);
- }
-
- return new ApexApiResult();
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * List task selection logic for a state.
- *
- * @param name name of the policy
- * @param version version of the policy, set to null to use the latest version
- * @param stateName of the state
- * @return result of the operation
- */
- public ApexApiResult listPolicyStateTaskSelectionLogic(final String name, final String version,
- final String stateName) {
- try {
- Assertions.argumentNotNull(stateName, STATE_NAME_MAY_NOT_BE_NULL);
-
- final AxPolicy policy = apexModel.getPolicyModel().getPolicies().get(name, version);
- if (policy == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + name + ':' + version + DOES_NOT_EXIST);
- }
-
- final AxState state = policy.getStateMap().get(stateName);
- if (state == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + policy.getKey().getId() + ':' + stateName + DOES_NOT_EXIST);
- }
-
- return new ApexApiResult(ApexApiResult.Result.SUCCESS,
- new ApexModelStringWriter<AxTaskSelectionLogic>(false).writeString(state.getTaskSelectionLogic(),
- AxTaskSelectionLogic.class));
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * Delete task selection logic for a state.
- *
- * @param name name of the policy
- * @param version version of the policy, set to null to use the latest version
- * @param stateName of the state
- * @return result of the operation
- */
- public ApexApiResult deletePolicyStateTaskSelectionLogic(final String name, final String version,
- final String stateName) {
- try {
- Assertions.argumentNotNull(stateName, STATE_NAME_MAY_NOT_BE_NULL);
-
- final AxPolicy policy = apexModel.getPolicyModel().getPolicies().get(name, version);
- if (policy == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + name + ':' + version + DOES_NOT_EXIST);
- }
-
- final AxState state = policy.getStateMap().get(stateName);
- if (state == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + policy.getKey().getId() + ':' + stateName + DOES_NOT_EXIST);
- }
-
- if (state.getTaskSelectionLogic().getKey().getLocalName().equals(AxKey.NULL_KEY_NAME)) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + state.getTaskSelectionLogic().getKey().getId() + DOES_NOT_EXIST);
- }
-
- final ApexApiResult result = new ApexApiResult();
- result.addMessage(new ApexModelStringWriter<AxTaskSelectionLogic>(false)
- .writeString(state.getTaskSelectionLogic(), AxTaskSelectionLogic.class));
- state.setTaskSelectionLogic(new AxTaskSelectionLogic());
- return result;
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * Create a policy state output.
- *
- * @param name name of the policy
- * @param version version of the policy, set to null to use the latest version
- * @param stateName of the state
- * @param outputName of the state output
- * @param eventName name of the output event for this state output
- * @param eventVersion version of the output event for this state output, set to null to use the
- * latest version
- * @param nextState for this state to transition to, set to null if this is the last state that
- * the policy transitions to on this branch
- * @return result of the operation
- */
- public ApexApiResult createPolicyStateOutput(final String name, final String version, final String stateName,
- final String outputName, final String eventName, final String eventVersion, final String nextState) {
- try {
- Assertions.argumentNotNull(stateName, STATE_NAME_MAY_NOT_BE_NULL);
- Assertions.argumentNotNull(outputName, "outputName may not be null");
-
- final AxPolicy policy = apexModel.getPolicyModel().getPolicies().get(name, version);
- if (policy == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- "Policy concept " + name + ':' + version + DOES_NOT_EXIST);
- }
-
- final AxState state = policy.getStateMap().get(stateName);
- if (state == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- "State concept " + policy.getKey().getId() + ':' + stateName + DOES_NOT_EXIST);
- }
-
- final AxReferenceKey refKey = new AxReferenceKey(state.getKey(), outputName);
- // There can be multipe state outputs only when the current state is the final state
- if (nextState != null && !AxReferenceKey.getNullKey().getLocalName().equals(nextState)
- && state.getStateOutputs().containsKey(refKey.getLocalName())) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_EXISTS,
- "Output concept " + refKey.getId() + ALREADY_EXISTS);
- }
-
- final AxEvent event = apexModel.getPolicyModel().getEvents().get(eventName, eventVersion);
- if (event == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- "Event concept " + eventName + ':' + eventVersion + DOES_NOT_EXIST);
- }
-
- AxReferenceKey nextStateKey = AxReferenceKey.getNullKey();
- if (nextState != null && !(AxReferenceKey.getNullKey().getLocalName().equals(nextState))) {
- if (state.getKey().getLocalName().equals(nextState)) {
- return new ApexApiResult(ApexApiResult.Result.FAILED,
- "next state " + nextState + " of a state cannot be the state itself");
- }
- nextStateKey = new AxReferenceKey(state.getKey().getParentArtifactKey(), nextState);
-
- if (!policy.getStateMap().containsKey(nextState)) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- "Next state concept " + nextStateKey.getId() + DOES_NOT_EXIST);
- }
- }
-
- populateStateOuputInfo(nextState, state, refKey, event, nextStateKey);
- return new ApexApiResult();
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- private void populateStateOuputInfo(final String nextState, final AxState state, final AxReferenceKey refKey,
- final AxEvent event, AxReferenceKey nextStateKey) {
- // nextState is null. There could be multiple events coming out of the state
- if ((nextState == null || AxReferenceKey.getNullKey().getLocalName().equals(nextState))
- && state.getStateOutputs().containsKey(refKey.getLocalName())) {
- AxStateOutput existingStateOutput = state.getStateOutputs().get(refKey.getLocalName());
- if (null == existingStateOutput.getOutgoingEventSet()
- || existingStateOutput.getOutgoingEventSet().isEmpty()) {
- Set<AxArtifactKey> eventSet = new TreeSet<>();
- eventSet.add(existingStateOutput.getOutgoingEvent());
- existingStateOutput.setOutgoingEventSet(eventSet);
- }
- existingStateOutput.getOutgoingEventSet().add(event.getKey());
- } else {
- AxStateOutput axStateOutput = new AxStateOutput(refKey, event.getKey(), nextStateKey);
- Set<AxArtifactKey> eventSet = new TreeSet<>();
- eventSet.add(axStateOutput.getOutgoingEvent());
- axStateOutput.setOutgoingEventSet(eventSet);
- state.getStateOutputs().put(refKey.getLocalName(), axStateOutput);
- }
- }
-
- /**
- * List policy state outputs.
- *
- * @param name name of the policy
- * @param version version of the policy, set to null to use the latest version
- * @param stateName of the state
- * @param outputName of the state output, set to null to list all outputs of the state
- * @return result of the operation
- */
- public ApexApiResult listPolicyStateOutput(final String name, final String version, final String stateName,
- final String outputName) {
- try {
- Assertions.argumentNotNull(stateName, STATE_NAME_MAY_NOT_BE_NULL);
-
- final AxPolicy policy = apexModel.getPolicyModel().getPolicies().get(name, version);
- if (policy == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + name + ':' + version + DOES_NOT_EXIST);
- }
-
- final AxState state = policy.getStateMap().get(stateName);
- if (state == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + policy.getKey().getId() + ':' + stateName + DOES_NOT_EXIST);
- }
-
- if (outputName != null) {
- final AxStateOutput stateOutput = state.getStateOutputs().get(outputName);
- if (stateOutput != null) {
- return new ApexApiResult(ApexApiResult.Result.SUCCESS,
- new ApexModelStringWriter<AxStateOutput>(false).writeString(stateOutput, AxStateOutput.class));
- } else {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + state.getKey().getId() + ':' + outputName + DOES_NOT_EXIST);
- }
- } else {
- if (state.getStateOutputs().size() == 0) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- "no state output concepts exist for state " + state.getKey().getId());
- }
-
- final ApexApiResult result = new ApexApiResult();
-
- for (final AxStateOutput stateOutput : state.getStateOutputs().values()) {
- result.addMessage(
- new ApexModelStringWriter<AxStateOutput>(false).writeString(stateOutput, AxStateOutput.class));
- }
- return result;
- }
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * Delete a policy state output.
- *
- * @param name name of the policy
- * @param version version of the policy, set to null to use the latest version
- * @param stateName of the state
- * @param outputName of the state output, set to null to delete all state outputs
- * @return result of the operation
- */
- public ApexApiResult deletePolicyStateOutput(final String name, final String version, final String stateName,
- final String outputName) {
- try {
- Assertions.argumentNotNull(stateName, STATE_NAME_MAY_NOT_BE_NULL);
-
- final AxPolicy policy = apexModel.getPolicyModel().getPolicies().get(name, version);
- if (policy == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + name + ':' + version + DOES_NOT_EXIST);
- }
-
- final AxState state = policy.getStateMap().get(stateName);
- if (state == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + policy.getKey().getId() + ':' + stateName + DOES_NOT_EXIST);
- }
-
- if (outputName != null) {
- final AxStateOutput stateOutput = state.getStateOutputs().get(outputName);
- if (stateOutput != null) {
- final ApexApiResult result = new ApexApiResult(ApexApiResult.Result.SUCCESS,
- new ApexModelStringWriter<AxStateOutput>(false).writeString(stateOutput, AxStateOutput.class));
- state.getStateOutputs().remove(outputName);
- return result;
- } else {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + state.getKey().getId() + ':' + outputName + DOES_NOT_EXIST);
- }
- } else {
- if (state.getStateOutputs().size() == 0) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- "no state output concepts exist for state " + state.getKey().getId());
- }
-
- final ApexApiResult result = new ApexApiResult();
-
- for (final Entry<String, AxStateOutput> stateOutputEntry : state.getStateOutputs().entrySet()) {
- result.addMessage(new ApexModelStringWriter<AxStateOutput>(false)
- .writeString(stateOutputEntry.getValue(), AxStateOutput.class));
- }
- state.getStateOutputs().clear();
- return result;
- }
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * Create policy finalizer logic for a state.
- *
- * @param name name of the policy
- * @param version version of the policy, set to null to use the latest version
- * @param stateName of the state
- * @param finalizerLogicName name of the state finalizer logic
- * @param logicFlavour the policy finalizer logic flavour for the state, set to null to use the
- * default task logic flavour
- * @param logic the source code for the logic of the state
- * @return result of the operation
- */
- public ApexApiResult createPolicyStateFinalizerLogic(final String name, final String version,
- final String stateName, final String finalizerLogicName, final String logicFlavour, final String logic) {
- try {
- Assertions.argumentNotNull(stateName, STATE_NAME_MAY_NOT_BE_NULL);
- Assertions.argumentNotNull(finalizerLogicName, "finalizerlogicName may not be null");
-
- final AxPolicy policy = apexModel.getPolicyModel().getPolicies().get(name, version);
- if (policy == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + name + ':' + version + DOES_NOT_EXIST);
- }
-
- final AxState state = policy.getStateMap().get(stateName);
- if (state == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + policy.getKey().getId() + ':' + stateName + DOES_NOT_EXIST);
- }
-
- final AxReferenceKey refKey = new AxReferenceKey(state.getKey(), finalizerLogicName);
-
- if (state.getStateFinalizerLogicMap().containsKey(refKey.getLocalName())) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_EXISTS,
- CONCEPT + refKey.getId() + ALREADY_EXISTS);
- }
-
- state.getStateFinalizerLogicMap().put(finalizerLogicName,
- new AxStateFinalizerLogic(refKey, logicFlavour, logic));
- return new ApexApiResult();
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * Update policy finalizer logic for a state.
- *
- * @param name name of the policy
- * @param version version of the policy, set to null to use the latest version
- * @param stateName of the state
- * @param finalizerLogicName name of the state finalizer logic
- * @param logicFlavour the policy finalizer logic flavour for the state, set to null to not
- * update
- * @param logic the source code for the logic of the state, set to null to not update
- * @return result of the operation
- */
- public ApexApiResult updatePolicyStateFinalizerLogic(final String name, final String version,
- final String stateName, final String finalizerLogicName, final String logicFlavour, final String logic) {
- try {
- Assertions.argumentNotNull(stateName, STATE_NAME_MAY_NOT_BE_NULL);
- Assertions.argumentNotNull(finalizerLogicName, "finalizerLogicName may not be null");
-
- final AxPolicy policy = apexModel.getPolicyModel().getPolicies().get(name, version);
- if (policy == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + name + ':' + version + DOES_NOT_EXIST);
- }
-
- final AxState state = policy.getStateMap().get(stateName);
- if (state == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + policy.getKey().getId() + ':' + stateName + DOES_NOT_EXIST);
- }
-
- final AxReferenceKey refKey = new AxReferenceKey(state.getKey(), finalizerLogicName);
- final AxStateFinalizerLogic stateFinalizerLogic =
- state.getStateFinalizerLogicMap().get(refKey.getKey().getLocalName());
- if (stateFinalizerLogic == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- STATE_FINALIZER_LOGIC + refKey.getId() + DOES_NOT_EXIST);
- }
-
- if (logicFlavour != null) {
- stateFinalizerLogic.setLogicFlavour(logicFlavour);
- }
- if (logic != null) {
- stateFinalizerLogic.setLogic(logic);
- }
-
- return new ApexApiResult();
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * List policy finalizer logic for a state.
- *
- * @param name name of the policy
- * @param version version of the policy, set to null to use the latest version
- * @param stateName of the state
- * @param finalizerLogicName name of the state finalizer logic
- * @return result of the operation
- */
- public ApexApiResult listPolicyStateFinalizerLogic(final String name, final String version, final String stateName,
- final String finalizerLogicName) {
- try {
- Assertions.argumentNotNull(stateName, STATE_NAME_MAY_NOT_BE_NULL);
-
- final AxPolicy policy = apexModel.getPolicyModel().getPolicies().get(name, version);
- if (policy == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + name + ':' + version + DOES_NOT_EXIST);
- }
-
- final AxState state = policy.getStateMap().get(stateName);
- if (state == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + policy.getKey().getId() + ':' + stateName + DOES_NOT_EXIST);
- }
-
- if (finalizerLogicName != null) {
- final AxReferenceKey refKey = new AxReferenceKey(state.getKey(), finalizerLogicName);
- final AxStateFinalizerLogic stateFinalizerLogic =
- state.getStateFinalizerLogicMap().get(refKey.getKey().getLocalName());
- if (stateFinalizerLogic == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- STATE_FINALIZER_LOGIC + refKey.getId() + DOES_NOT_EXIST);
- }
-
- return new ApexApiResult(ApexApiResult.Result.SUCCESS,
- new ApexModelStringWriter<AxStateFinalizerLogic>(false).writeString(stateFinalizerLogic,
- AxStateFinalizerLogic.class));
- } else {
- if (state.getStateFinalizerLogicMap().size() == 0) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- "no state finalizer logic defined on state " + state.getKey().getId());
- }
- final ApexApiResult result = new ApexApiResult();
- for (final AxStateFinalizerLogic stateFinalizerLogic : state.getStateFinalizerLogicMap().values()) {
- result.addMessage(new ApexModelStringWriter<AxStateFinalizerLogic>(false)
- .writeString(stateFinalizerLogic, AxStateFinalizerLogic.class));
- }
- return result;
- }
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * Delete policy finalizer logic for a state.
- *
- * @param name name of the policy
- * @param version version of the policy, set to null to use the latest version
- * @param stateName of the state
- * @param finalizerLogicName name of the state finalizer logic
- * @return result of the operation
- */
- public ApexApiResult deletePolicyStateFinalizerLogic(final String name, final String version,
- final String stateName, final String finalizerLogicName) {
- try {
- Assertions.argumentNotNull(stateName, STATE_NAME_MAY_NOT_BE_NULL);
-
- final AxPolicy policy = apexModel.getPolicyModel().getPolicies().get(name, version);
- if (policy == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + name + ':' + version + DOES_NOT_EXIST);
- }
-
- final AxState state = policy.getStateMap().get(stateName);
- if (state == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + policy.getKey().getId() + ':' + stateName + DOES_NOT_EXIST);
- }
-
- if (finalizerLogicName != null) {
- final AxReferenceKey refKey = new AxReferenceKey(state.getKey(), finalizerLogicName);
- final AxStateFinalizerLogic stateFinalizerLogic =
- state.getStateFinalizerLogicMap().get(refKey.getKey().getLocalName());
- if (stateFinalizerLogic == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- STATE_FINALIZER_LOGIC + refKey.getId() + DOES_NOT_EXIST);
- }
-
- final ApexApiResult result = new ApexApiResult();
- result.addMessage(new ApexModelStringWriter<AxStateFinalizerLogic>(false)
- .writeString(stateFinalizerLogic, AxStateFinalizerLogic.class));
- state.getStateFinalizerLogicMap().remove(refKey.getLocalName());
- return result;
- } else {
- if (state.getStateFinalizerLogicMap().size() == 0) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- "no state finalizer logic defined on state " + state.getKey().getId());
- }
-
- final ApexApiResult result = new ApexApiResult();
- for (final AxStateFinalizerLogic stateFinalizerLogic : state.getStateFinalizerLogicMap().values()) {
- result.addMessage(new ApexModelStringWriter<AxStateFinalizerLogic>(false)
- .writeString(stateFinalizerLogic, AxStateFinalizerLogic.class));
- }
- state.getStateFinalizerLogicMap().clear();
- return result;
- }
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * Create a policy state task reference.
- *
- * @param builder builder for the state task reference
- * @return result of the operation
- */
- public ApexApiResult createPolicyStateTaskRef(CreatePolicyStateTaskRef builder) {
- try {
- Assertions.argumentNotNull(builder.getStateName(), STATE_NAME_MAY_NOT_BE_NULL);
- Assertions.argumentNotNull(builder.getOutputName(), "outputName may not be null");
-
- final AxPolicy policy =
- apexModel.getPolicyModel().getPolicies().get(builder.getName(), builder.getVersion());
- if (policy == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + builder.getName() + ':' + builder.getVersion() + DOES_NOT_EXIST);
- }
-
- final AxState state = policy.getStateMap().get(builder.getStateName());
- if (state == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + policy.getKey().getId() + ':' + builder.getStateName() + DOES_NOT_EXIST);
- }
-
- final AxTask task =
- apexModel.getPolicyModel().getTasks().get(builder.getTaskName(), builder.getTaskVersion());
- if (task == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + builder.getTaskName() + ':' + builder.getTaskVersion() + DOES_NOT_EXIST);
- }
-
- if (state.getTaskReferences().containsKey(task.getKey())) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_EXISTS, "task " + task.getKey().getId()
- + " already has reference with output " + state.getTaskReferences().get(task.getKey()));
- }
-
- AxReferenceKey refKey;
- if (builder.getTaskLocalName() == null) {
- refKey = new AxReferenceKey(state.getKey(), state.getKey().getParentKeyName());
- } else {
- refKey = new AxReferenceKey(state.getKey(), builder.getTaskLocalName());
- }
-
- // The reference to the output we're using here
- final AxReferenceKey outputRefKey = new AxReferenceKey(state.getKey(), builder.getOutputName());
-
- final AxStateTaskOutputType stateTaskOutputType = AxStateTaskOutputType.valueOf(builder.getOutputType());
- if (stateTaskOutputType.equals(AxStateTaskOutputType.DIRECT)) {
- if (!state.getStateOutputs().containsKey(outputRefKey.getLocalName())) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- "state output concept " + outputRefKey.getId() + DOES_NOT_EXIST);
- }
- } else if (stateTaskOutputType.equals(AxStateTaskOutputType.LOGIC)) {
- if (!state.getStateFinalizerLogicMap().containsKey(outputRefKey.getLocalName())) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- "state finalizer logic concept " + outputRefKey.getId() + DOES_NOT_EXIST);
- }
- } else {
- return new ApexApiResult(ApexApiResult.Result.FAILED,
- "output type " + builder.getOutputType() + " invalid");
- }
-
- String outputRefName = outputRefKey.getLocalName();
- // in case of SFL, outgoing event will be same for all state outputs that are part of SFL.So, take any entry
- if (AxStateTaskOutputType.LOGIC.equals(stateTaskOutputType)) {
- outputRefName = state.getStateOutputs().keySet().iterator().next();
- }
-
- // add input and output events to the task based on state definition
- if (state.getStateOutputs().containsKey(outputRefName)) {
- populateIoEventsToTask(state, task, outputRefName);
- }
-
- state.getTaskReferences().put(task.getKey(),
- new AxStateTaskReference(refKey, stateTaskOutputType, outputRefKey));
- return new ApexApiResult();
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- private void populateIoEventsToTask(final AxState state, final AxTask task, final String outputRefName) {
- AxEvent triggerEvent = apexModel.getPolicyModel().getEvents().get(state.getTrigger());
- task.setInputEvent(triggerEvent);
- Map<String, AxEvent> outputEvents = new TreeMap<>();
- if (state.getNextStateSet().isEmpty()
- || state.getNextStateSet().contains(AxReferenceKey.getNullKey().getLocalName())) {
- state.getStateOutputs().get(outputRefName).getOutgoingEventSet().forEach(outgoingEventKey -> outputEvents
- .put(outgoingEventKey.getName(), apexModel.getPolicyModel().getEvents().get(outgoingEventKey)));
- } else {
- AxArtifactKey outgoingEventKey = state.getStateOutputs().get(outputRefName).getOutgoingEvent();
- outputEvents.put(outgoingEventKey.getName(), apexModel.getPolicyModel().getEvents().get(outgoingEventKey));
- }
- task.setOutputEvents(outputEvents);
- }
-
- /**
- * List policy state task references.
- *
- * @param name name of the policy
- * @param version version of the policy, set to null to use the latest version
- * @param stateName of the state
- * @param taskName name of the task, set to null to list all task references
- * @param taskVersion version of the task, set to null to use the latest version
- * @return result of the operation
- */
- public ApexApiResult listPolicyStateTaskRef(final String name, final String version, final String stateName,
- final String taskName, final String taskVersion) {
- try {
- Assertions.argumentNotNull(stateName, STATE_NAME_MAY_NOT_BE_NULL);
-
- final AxPolicy policy = apexModel.getPolicyModel().getPolicies().get(name, version);
- if (policy == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + name + ':' + version + DOES_NOT_EXIST);
- }
-
- final AxState state = policy.getStateMap().get(stateName);
- if (state == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + policy.getKey().getId() + ':' + stateName + DOES_NOT_EXIST);
- }
-
- final ApexApiResult result = new ApexApiResult();
- boolean found = false;
- final Map<AxArtifactKey, AxStateTaskReference> taskReferences = state.getTaskReferences();
- for (final Entry<AxArtifactKey, AxStateTaskReference> taskReferenceEntry : taskReferences.entrySet()) {
- final AxArtifactKey key = taskReferenceEntry.getKey();
- final AxStateTaskReference value = taskReferenceEntry.getValue();
- if ((taskName != null && !key.getName().equals(taskName))
- || (taskVersion != null && !key.getVersion().equals(taskVersion))) {
- continue;
- }
-
- found = true;
- result
- .addMessage(new ApexModelStringWriter<AxArtifactKey>(false).writeString(key, AxArtifactKey.class));
- result.addMessage(new ApexModelStringWriter<AxStateTaskReference>(false).writeString(value,
- AxStateTaskReference.class));
- }
- if (found) {
- return result;
- } else {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- "no task references found for state " + state.getKey().getId());
- }
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * Delete a policy state task reference.
- *
- * @param name name of the policy
- * @param version version of the policy, set to null to use the latest version
- * @param stateName of the state
- * @param taskName name of the task, set to null to delete all task references
- * @param taskVersion version of the task, set to null to use the latest version
- * @return result of the operation
- */
- public ApexApiResult deletePolicyStateTaskRef(final String name, final String version, final String stateName,
- final String taskName, final String taskVersion) {
- try {
- Assertions.argumentNotNull(stateName, STATE_NAME_MAY_NOT_BE_NULL);
-
- final AxPolicy policy = apexModel.getPolicyModel().getPolicies().get(name, version);
- if (policy == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + name + ':' + version + DOES_NOT_EXIST);
- }
-
- final AxState state = policy.getStateMap().get(stateName);
- if (state == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + policy.getKey().getId() + ':' + stateName + DOES_NOT_EXIST);
- }
-
- final Set<AxArtifactKey> deleteSet = new TreeSet<>();
-
- for (final AxArtifactKey taskReferenceKey : state.getTaskReferences().keySet()) {
- if ((taskName != null && !taskReferenceKey.getName().equals(taskName))
- || (taskVersion != null && !taskReferenceKey.getVersion().equals(taskVersion))) {
- continue;
- }
- deleteSet.add(taskReferenceKey);
- }
- if (deleteSet.isEmpty()) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + taskName + ':' + taskVersion + DOES_NOT_EXIST_ON_STATE + state.getKey().getId());
- }
-
- final ApexApiResult result = new ApexApiResult();
- for (final AxArtifactKey keyToDelete : deleteSet) {
- state.getTaskReferences().remove(keyToDelete);
- result.addMessage(
- new ApexModelStringWriter<AxArtifactKey>(false).writeString(keyToDelete, AxArtifactKey.class));
- }
- return result;
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * Create a policy state context album reference.
- *
- * @param name name of the policy
- * @param version version of the policy, set to null to use the latest version
- * @param stateName of the state
- * @param contextAlbumName name of the context album for the context album reference
- * @param contextAlbumVersion version of the context album for the context album reference, set
- * to null to use the latest version
- * @return result of the operation
- */
- public ApexApiResult createPolicyStateContextRef(final String name, final String version, final String stateName,
- final String contextAlbumName, final String contextAlbumVersion) {
- try {
- Assertions.argumentNotNull(stateName, STATE_NAME_MAY_NOT_BE_NULL);
-
- final AxPolicy policy = apexModel.getPolicyModel().getPolicies().get(name, version);
- if (policy == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + name + ':' + version + DOES_NOT_EXIST);
- }
-
- final AxState state = policy.getStateMap().get(stateName);
- if (state == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + policy.getKey().getId() + ':' + stateName + DOES_NOT_EXIST);
- }
-
- final AxContextAlbum contextAlbum =
- apexModel.getPolicyModel().getAlbums().get(contextAlbumName, contextAlbumVersion);
- if (contextAlbum == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + contextAlbumName + ':' + contextAlbumVersion + DOES_NOT_EXIST);
- }
-
- if (state.getContextAlbumReferences().contains(contextAlbum.getKey())) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_EXISTS, "concept album reference for concept "
- + contextAlbum.getKey().getId() + " already exists in state");
- }
-
- state.getContextAlbumReferences().add(contextAlbum.getKey());
- return new ApexApiResult();
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * List policy state context album references.
- *
- * @param name name of the policy
- * @param version version of the policy, set to null to use the latest version
- * @param stateName of the state
- * @param contextAlbumName name of the context album for the context album reference, set to
- * null to list all task context album references
- * @param contextAlbumVersion version of the context album for the context album reference, set
- * to null to use the latest version
- * @return result of the operation
- */
- public ApexApiResult listPolicyStateContextRef(final String name, final String version, final String stateName,
- final String contextAlbumName, final String contextAlbumVersion) {
- try {
- Assertions.argumentNotNull(stateName, STATE_NAME_MAY_NOT_BE_NULL);
-
- final AxPolicy policy = apexModel.getPolicyModel().getPolicies().get(name, version);
- if (policy == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + name + ':' + version + DOES_NOT_EXIST);
- }
-
- final AxState state = policy.getStateMap().get(stateName);
- if (state == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + policy.getKey().getId() + ':' + stateName + DOES_NOT_EXIST);
- }
-
- final ApexApiResult result = new ApexApiResult();
- boolean found = false;
- for (final AxArtifactKey albumKey : state.getContextAlbumReferences()) {
- if ((contextAlbumName != null && !albumKey.getName().equals(contextAlbumName))
- || (contextAlbumVersion != null && !albumKey.getVersion().equals(contextAlbumVersion))) {
- continue;
- }
- result.addMessage(
- new ApexModelStringWriter<AxArtifactKey>(false).writeString(albumKey, AxArtifactKey.class));
- found = true;
- }
- if (!found) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, CONCEPT + contextAlbumName + ':'
- + contextAlbumVersion + DOES_NOT_EXIST_ON_STATE + state.getKey().getId());
- }
- return result;
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * Delete a policy state context album reference.
- *
- * @param name name of the policy
- * @param version version of the policy, set to null to use the default version
- * @param stateName of the state
- * @param contextAlbumName name of the context album for the context album reference, set to
- * null to delete all task context album references
- * @param contextAlbumVersion version of the context album for the context album reference, set
- * to null to use the latest version
- * @return result of the operation
- */
- public ApexApiResult deletePolicyStateContextRef(final String name, final String version, final String stateName,
- final String contextAlbumName, final String contextAlbumVersion) {
- try {
- Assertions.argumentNotNull(stateName, STATE_NAME_MAY_NOT_BE_NULL);
-
- final AxPolicy policy = apexModel.getPolicyModel().getPolicies().get(name, version);
- if (policy == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + name + ':' + version + DOES_NOT_EXIST);
- }
-
- final AxState state = policy.getStateMap().get(stateName);
- if (state == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + policy.getKey().getId() + ':' + stateName + DOES_NOT_EXIST);
- }
-
- final Set<AxArtifactKey> deleteSet = new TreeSet<>();
-
- for (final AxArtifactKey albumKey : state.getContextAlbumReferences()) {
-
- if ((contextAlbumName != null && !albumKey.getName().equals(contextAlbumName))
- || (contextAlbumVersion != null && !albumKey.getVersion().equals(contextAlbumVersion))) {
-
- continue;
- }
- deleteSet.add(albumKey);
- }
- if (deleteSet.isEmpty()) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST, CONCEPT + contextAlbumName + ':'
- + contextAlbumVersion + DOES_NOT_EXIST_ON_STATE + state.getKey().getId());
- }
-
- final ApexApiResult result = new ApexApiResult();
- for (final AxArtifactKey keyToDelete : deleteSet) {
- state.getContextAlbumReferences().remove(keyToDelete);
- result.addMessage(
- new ApexModelStringWriter<AxArtifactKey>(false).writeString(keyToDelete, AxArtifactKey.class));
- }
- return result;
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-}
diff --git a/model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/impl/TaskFacade.java b/model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/impl/TaskFacade.java
deleted file mode 100644
index 6a2ded3e2..000000000
--- a/model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/impl/TaskFacade.java
+++ /dev/null
@@ -1,597 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Copyright (C) 2016-2018 Ericsson. All rights reserved.
- * Modifications Copyright (C) 2019,2022 Nordix Foundation.
- * Modifications Copyright (C) 2021 Bell Canada. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-package org.onap.policy.apex.model.modelapi.impl;
-
-import java.util.Properties;
-import java.util.Set;
-import java.util.TreeSet;
-import org.onap.policy.apex.model.basicmodel.concepts.AxArtifactKey;
-import org.onap.policy.apex.model.basicmodel.concepts.AxKey;
-import org.onap.policy.apex.model.basicmodel.concepts.AxReferenceKey;
-import org.onap.policy.apex.model.basicmodel.concepts.AxValidationResult;
-import org.onap.policy.apex.model.basicmodel.handling.ApexModelStringWriter;
-import org.onap.policy.apex.model.contextmodel.concepts.AxContextAlbum;
-import org.onap.policy.apex.model.modelapi.ApexApiResult;
-import org.onap.policy.apex.model.modelapi.ApexModel;
-import org.onap.policy.apex.model.policymodel.concepts.AxTask;
-import org.onap.policy.apex.model.policymodel.concepts.AxTaskLogic;
-import org.onap.policy.apex.model.policymodel.concepts.AxTaskParameter;
-import org.onap.policy.common.utils.validation.Assertions;
-
-/**
- * This class acts as a facade for operations towards a policy model for task operations.
- *
- * @author Liam Fallon (liam.fallon@ericsson.com)
- */
-public class TaskFacade {
- private static final String CONCEPT = "concept ";
- private static final String CONCEPT_S = "concept(s) ";
- private static final String DOES_NOT_EXIST = " does not exist";
- private static final String DO_ES_NOT_EXIST = " do(es) not exist";
- private static final String ALREADY_EXISTS = " already exists";
-
- // Apex model we're working towards
- private final ApexModel apexModel;
-
- // Properties to use for the model
- private final Properties apexProperties;
-
- // Facade classes for working towards the real Apex model
- private final KeyInformationFacade keyInformationFacade;
-
- /**
- * Constructor that creates a task facade for the Apex Model API.
- *
- * @param apexModel the apex model
- * @param apexProperties Properties for the model
- */
- public TaskFacade(final ApexModel apexModel, final Properties apexProperties) {
- this.apexModel = apexModel;
- this.apexProperties = apexProperties;
-
- keyInformationFacade = new KeyInformationFacade(apexModel, apexProperties);
- }
-
- /**
- * Create a task.
- *
- * @param name name of the task
- * @param version version of the task, set to null to use the default version
- * @param uuid task UUID, set to null to generate a UUID
- * @param description task description, set to null to generate a description
- * @return result of the operation
- */
- public ApexApiResult createTask(final String name, final String version, final String uuid,
- final String description) {
- try {
- final AxArtifactKey key = new AxArtifactKey();
- key.setName(name);
- if (version != null) {
- key.setVersion(version);
- } else {
- key.setVersion(apexProperties.getProperty("DEFAULT_CONCEPT_VERSION"));
- }
-
- if (apexModel.getPolicyModel().getTasks().getTaskMap().containsKey(key)) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_EXISTS, CONCEPT + key.getId() + ALREADY_EXISTS);
- }
-
- apexModel.getPolicyModel().getTasks().getTaskMap().put(key, new AxTask(key));
-
- if (apexModel.getPolicyModel().getKeyInformation().getKeyInfoMap().containsKey(key)) {
- return keyInformationFacade.updateKeyInformation(name, version, uuid, description);
- } else {
- return keyInformationFacade.createKeyInformation(name, version, uuid, description);
- }
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * Update a task.
- *
- * @param name name of the task
- * @param version version of the task, set to null to use the latest version
- * @param uuid task UUID, set to null to not update
- * @param description task description, set to null to not update
- * @return result of the operation
- */
- public ApexApiResult updateTask(final String name, final String version, final String uuid,
- final String description) {
- try {
- final AxTask task = apexModel.getPolicyModel().getTasks().get(name, version);
- if (task == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + name + ':' + version + DOES_NOT_EXIST);
- }
-
- return keyInformationFacade.updateKeyInformation(name, version, uuid, description);
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * List tasks.
- *
- * @param name name of the task, set to null to list all
- * @param version starting version of the task, set to null to list all versions
- * @return result of the operation
- */
- public ApexApiResult listTask(final String name, final String version) {
- try {
- final Set<AxTask> taskSet = apexModel.getPolicyModel().getTasks().getAll(name, version);
- if (name != null && taskSet.isEmpty()) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT_S + name + ':' + version + DO_ES_NOT_EXIST);
- }
-
- final ApexApiResult result = new ApexApiResult();
- for (final AxTask task : taskSet) {
- result.addMessage(new ApexModelStringWriter<AxTask>(false).writeString(task, AxTask.class));
- }
- return result;
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * Delete a task.
- *
- * @param name name of the task
- * @param version version of the task, set to null to use the latest version
- * @return result of the operation
- */
- public ApexApiResult deleteTask(final String name, final String version) {
- try {
- if (version != null) {
- final AxArtifactKey key = new AxArtifactKey(name, version);
- final AxTask removedTask = apexModel.getPolicyModel().getTasks().getTaskMap().remove(key);
- if (removedTask != null) {
- return new ApexApiResult(ApexApiResult.Result.SUCCESS,
- new ApexModelStringWriter<AxTask>(false).writeString(removedTask, AxTask.class));
- } else {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + key.getId() + DOES_NOT_EXIST);
- }
- }
-
- final Set<AxTask> taskSet = apexModel.getPolicyModel().getTasks().getAll(name, version);
- if (taskSet.isEmpty()) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT_S + name + ':' + version + DO_ES_NOT_EXIST);
- }
-
- final ApexApiResult result = new ApexApiResult();
- for (final AxTask task : taskSet) {
- result.addMessage(new ApexModelStringWriter<AxTask>(false).writeString(task, AxTask.class));
- apexModel.getPolicyModel().getTasks().getTaskMap().remove(task.getKey());
- keyInformationFacade.deleteKeyInformation(name, version);
- }
- return result;
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * Validate tasks.
- *
- * @param name name of the task, set to null to list all
- * @param version starting version of the task, set to null to list all versions
- * @return result of the operation
- */
- public ApexApiResult validateTask(final String name, final String version) {
- try {
- final Set<AxTask> taskSet = apexModel.getPolicyModel().getTasks().getAll(name, version);
- if (taskSet.isEmpty()) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT_S + name + ':' + version + DO_ES_NOT_EXIST);
- }
-
- final ApexApiResult result = new ApexApiResult();
- for (final AxTask task : taskSet) {
- final AxValidationResult validationResult = task.validate(new AxValidationResult());
- result.addMessage(
- new ApexModelStringWriter<AxArtifactKey>(false).writeString(task.getKey(), AxArtifactKey.class));
- result.addMessage(validationResult.toString());
- }
- return result;
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * Create logic for a task.
- *
- * @param name name of the task
- * @param version version of the task, set to null to use the latest version
- * @param logicFlavour the task logic flavour for the task, set to null to use the default task
- * logic flavour
- * @param logic the source code for the logic of the task
- * @return result of the operation
- */
- public ApexApiResult createTaskLogic(final String name, final String version, final String logicFlavour,
- final String logic) {
- try {
- final AxTask task = apexModel.getPolicyModel().getTasks().get(name, version);
- if (task == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + name + ':' + version + DOES_NOT_EXIST);
- }
-
- // There is only one logic item associated with a task so we use a hard coded logic name
- final AxReferenceKey refKey = new AxReferenceKey(task.getKey(), "TaskLogic");
-
- if (!task.getTaskLogic().getKey().getLocalName().equals(AxKey.NULL_KEY_NAME)) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_EXISTS,
- CONCEPT + refKey.getId() + ALREADY_EXISTS);
- }
-
- task.setTaskLogic(new AxTaskLogic(refKey, logicFlavour, logic));
- return new ApexApiResult();
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * Update logic for a task.
- *
- * @param name name of the task
- * @param version version of the task, set to null to use the latest version
- * @param logicFlavour the task logic flavour for the task, set to null to not update
- * @param logic the source code for the logic of the task, set to null to not update
- * @return result of the operation
- */
- public ApexApiResult updateTaskLogic(final String name, final String version, final String logicFlavour,
- final String logic) {
- try {
- final AxTask task = apexModel.getPolicyModel().getTasks().get(name, version);
- if (task == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + name + ':' + version + DOES_NOT_EXIST);
- }
-
- if (task.getTaskLogic().getKey().getLocalName().equals(AxKey.NULL_KEY_NAME)) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + task.getTaskLogic().getKey().getId() + DOES_NOT_EXIST);
- }
-
- final AxTaskLogic taskLogic = task.getTaskLogic();
- if (logicFlavour != null) {
- taskLogic.setLogicFlavour(logicFlavour);
- }
- if (logic != null) {
- taskLogic.setLogic(logic);
- }
-
- return new ApexApiResult();
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * List task logic.
- *
- * @param name name of the task
- * @param version version of the task, set to null to list the latest version
- * @return result of the operation
- */
- public ApexApiResult listTaskLogic(final String name, final String version) {
- try {
- final AxTask task = apexModel.getPolicyModel().getTasks().get(name, version);
- if (task == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + name + ':' + version + DOES_NOT_EXIST);
- }
-
- return new ApexApiResult(ApexApiResult.Result.SUCCESS,
- new ApexModelStringWriter<AxTaskLogic>(false).writeString(task.getTaskLogic(), AxTaskLogic.class));
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * Delete logic for a task.
- *
- * @param name name of the task
- * @param version version of the task, set to null to use the latest version
- * @return result of the operation
- */
- public ApexApiResult deleteTaskLogic(final String name, final String version) {
- try {
- final AxTask task = apexModel.getPolicyModel().getTasks().get(name, version);
- if (task == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + name + ':' + version + DOES_NOT_EXIST);
- }
-
- if (task.getTaskLogic().getKey().getLocalName().equals(AxKey.NULL_KEY_NAME)) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + task.getTaskLogic().getKey().getId() + DOES_NOT_EXIST);
- }
-
- final ApexApiResult result = new ApexApiResult();
- result.addMessage(
- new ApexModelStringWriter<AxTaskLogic>(false).writeString(task.getTaskLogic(), AxTaskLogic.class));
- task.setTaskLogic(new AxTaskLogic());
- return result;
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * Create a task parameter.
- *
- * @param name name of the task
- * @param version version of the task, set to null to use the latest version
- * @param parName of the parameter
- * @param defaultValue of the parameter
- * @return result of the operation
- */
- public ApexApiResult createTaskParameter(final String name, final String version, final String parName,
- final String defaultValue) {
- try {
- Assertions.argumentNotNull(parName, "parName may not be null");
-
- final AxTask task = apexModel.getPolicyModel().getTasks().get(name, version);
- if (task == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + name + ':' + version + DOES_NOT_EXIST);
- }
-
- final AxReferenceKey refKey = new AxReferenceKey(task.getKey(), parName);
-
- if (task.getTaskParameters().containsKey(refKey.getLocalName())) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_EXISTS,
- CONCEPT + refKey.getId() + ALREADY_EXISTS);
- }
-
- task.getTaskParameters().put(refKey.getLocalName(), new AxTaskParameter(refKey, defaultValue));
- return new ApexApiResult();
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * List task parameters.
- *
- * @param name name of the task
- * @param version version of the task, set to null to use the latest version
- * @param parName name of the parameter, set to null to list all parameters of the task
- * @return result of the operation
- */
- public ApexApiResult listTaskParameter(final String name, final String version, final String parName) {
- try {
- final AxTask task = apexModel.getPolicyModel().getTasks().get(name, version);
- if (task == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + name + ':' + version + DOES_NOT_EXIST);
- }
-
- if (parName != null) {
- final AxTaskParameter taskParameter = task.getTaskParameters().get(parName);
- if (taskParameter != null) {
- return new ApexApiResult(ApexApiResult.Result.SUCCESS,
- new ApexModelStringWriter<AxTaskParameter>(false).writeString(taskParameter,
- AxTaskParameter.class));
- } else {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + name + ':' + version + ':' + taskParameter + DOES_NOT_EXIST);
- }
- } else {
- if (task.getTaskParameters().size() == 0) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- "no task parameters defined on task " + task.getKey().getId());
- }
-
- final ApexApiResult result = new ApexApiResult();
- for (final AxTaskParameter parameter : task.getTaskParameters().values()) {
- result.addMessage(new ApexModelStringWriter<AxTaskParameter>(false).writeString(parameter,
- AxTaskParameter.class));
- }
- return result;
- }
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * Delete a task parameter.
- *
- * @param name name of the task
- * @param version version of the task, set to null to use the latest version
- * @param parName of the parameter, set to null to delete all task parameters
- * @return result of the operation
- */
- public ApexApiResult deleteTaskParameter(final String name, final String version, final String parName) {
- try {
- final AxTask task = apexModel.getPolicyModel().getTasks().get(name, version);
- if (task == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + name + ':' + version + DOES_NOT_EXIST);
- }
-
- final ApexApiResult result = new ApexApiResult();
- if (parName != null) {
- if (task.getTaskParameters().containsKey(parName)) {
- result.addMessage(new ApexModelStringWriter<AxTaskParameter>(false)
- .writeString(task.getTaskParameters().get(parName), AxTaskParameter.class));
- task.getTaskParameters().remove(parName);
- return result;
- } else {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + name + ':' + version + ':' + parName + DOES_NOT_EXIST);
- }
- } else {
- if (task.getTaskParameters().size() == 0) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- "no task parameters defined on task " + task.getKey().getId());
- }
-
- for (final AxTaskParameter parameter : task.getTaskParameters().values()) {
- result.addMessage(new ApexModelStringWriter<AxTaskParameter>(false).writeString(parameter,
- AxTaskParameter.class));
- }
- task.getTaskParameters().clear();
- return result;
- }
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * Create a task context album reference.
- *
- * @param name name of the task
- * @param version version of the task, set to null to use the latest version
- * @param contextAlbumName name of the context album for the context album reference
- * @param contextAlbumVersion version of the context album for the context album reference, set
- * to null to use the latest version
- * @return result of the operation
- */
- public ApexApiResult createTaskContextRef(final String name, final String version, final String contextAlbumName,
- final String contextAlbumVersion) {
- try {
- final AxTask task = apexModel.getPolicyModel().getTasks().get(name, version);
- if (task == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + name + ':' + version + DOES_NOT_EXIST);
- }
-
- final AxContextAlbum contextAlbum =
- apexModel.getPolicyModel().getAlbums().get(contextAlbumName, contextAlbumVersion);
- if (contextAlbum == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + contextAlbumName + ':' + contextAlbumVersion + DOES_NOT_EXIST);
- }
-
- if (task.getContextAlbumReferences().contains(contextAlbum.getKey())) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_EXISTS,
- "context album reference for concept " + contextAlbum.getKey().getId() + " already exists in task");
- }
-
- task.getContextAlbumReferences().add(contextAlbum.getKey());
- return new ApexApiResult();
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * List task context album references.
- *
- * @param name name of the task
- * @param version version of the task, set to null to use the latest version
- * @param contextAlbumName name of the context album for the context album reference, set to
- * null to list all task context album references
- * @param contextAlbumVersion version of the context album for the context album reference, set
- * to null to use the latest version
- * @return result of the operation
- */
- public ApexApiResult listTaskContextRef(final String name, final String version, final String contextAlbumName,
- final String contextAlbumVersion) {
- try {
- final AxTask task = apexModel.getPolicyModel().getTasks().get(name, version);
- if (task == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + name + ':' + version + DOES_NOT_EXIST);
- }
-
- final ApexApiResult result = new ApexApiResult();
- boolean found = false;
- for (final AxArtifactKey albumKey : task.getContextAlbumReferences()) {
- if ((contextAlbumName != null && !albumKey.getName().equals(contextAlbumName))
- || (contextAlbumVersion != null && !albumKey.getVersion().equals(contextAlbumVersion))) {
- continue;
- }
- result.addMessage(
- new ApexModelStringWriter<AxArtifactKey>(false).writeString(albumKey, AxArtifactKey.class));
- found = true;
- }
- if (!found) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + contextAlbumName + ':' + contextAlbumVersion + DOES_NOT_EXIST);
- }
- return result;
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-
- /**
- * Delete a task context album reference.
- *
- * @param name name of the task
- * @param version version of the task, set to null to use the latest version
- * @param contextAlbumName name of the context album for the context album reference, set to
- * null to delete all task context album references
- * @param contextAlbumVersion version of the context album for the context album reference, set
- * to null to use the latest version
- * @return result of the operation
- */
- public ApexApiResult deleteTaskContextRef(final String name, final String version, final String contextAlbumName,
- final String contextAlbumVersion) {
- try {
- final AxTask task = apexModel.getPolicyModel().getTasks().get(name, version);
- if (task == null) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + name + ':' + version + DOES_NOT_EXIST);
- }
-
- final Set<AxArtifactKey> deleteSet = new TreeSet<>();
-
- for (final AxArtifactKey albumKey : task.getContextAlbumReferences()) {
- if ((contextAlbumName != null && !albumKey.getName().equals(contextAlbumName))
- || (contextAlbumVersion != null && !albumKey.getVersion().equals(contextAlbumVersion))) {
- continue;
- }
- deleteSet.add(albumKey);
- }
-
- if (deleteSet.isEmpty()) {
- return new ApexApiResult(ApexApiResult.Result.CONCEPT_DOES_NOT_EXIST,
- CONCEPT + contextAlbumName + ':' + contextAlbumVersion + DOES_NOT_EXIST);
- }
- final ApexApiResult result = new ApexApiResult();
- for (final AxArtifactKey keyToDelete : deleteSet) {
- task.getContextAlbumReferences().remove(keyToDelete);
- result.addMessage(
- new ApexModelStringWriter<AxArtifactKey>(false).writeString(keyToDelete, AxArtifactKey.class));
- }
- return result;
- } catch (final Exception e) {
- return new ApexApiResult(ApexApiResult.Result.FAILED, e);
- }
- }
-}
diff --git a/model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/impl/package-info.java b/model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/impl/package-info.java
deleted file mode 100644
index f31542044..000000000
--- a/model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/impl/package-info.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Copyright (C) 2016-2018 Ericsson. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-/**
- * Provides an implementation of the APEX Model API that holds an APEX model and manipulates its
- * various parts in response to operations called over the Model API.
- *
- * @author Liam Fallon (liam.fallon@ericsson.com)
- */
-package org.onap.policy.apex.model.modelapi.impl;
diff --git a/model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/package-info.java b/model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/package-info.java
deleted file mode 100644
index 97e8db4ea..000000000
--- a/model/model-api/src/main/java/org/onap/policy/apex/model/modelapi/package-info.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * Copyright (C) 2016-2018 Ericsson. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * SPDX-License-Identifier: Apache-2.0
- * ============LICENSE_END=========================================================
- */
-
-/**
- * Provides an API to APEX models so that they can be manipulated over a common interface by CLI and
- * GUI based editors and other development tools.
- *
- * @author Liam Fallon (liam.fallon@ericsson.com)
- */
-package org.onap.policy.apex.model.modelapi;