diff options
Diffstat (limited to 'model/model-api/src/main')
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; |