[APPC-44] revert license line ending changes
[appc.git] / appc-lifecycle-management / state-machine-lib / src / main / java / org / openecomp / appc / statemachine / impl / readers / VnfMetaDataReader.java
index e3e72f6..8f2a69f 100644 (file)
-/*-\r
+/*-
  * ============LICENSE_START=======================================================
  * ONAP : APPC
  * ================================================================================
  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
- * Copyright (C) 2017 Amdocs\r
- * =============================================================================\r
- * Licensed under the Apache License, Version 2.0 (the "License");\r
- * you may not use this file except in compliance with the License.\r
- * You may obtain a copy of the License at\r
+ * Copyright (C) 2017 Amdocs
+ * =============================================================================
+ * 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\r
+ *      http://www.apache.org/licenses/LICENSE-2.0
  * 
- * Unless required by applicable law or agreed to in writing, software\r
- * distributed under the License is distributed on an "AS IS" BASIS,\r
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * See the License for the specific language governing permissions and\r
- * limitations under the License.\r
+ * 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.
  * 
  * ECOMP is a trademark and service mark of AT&T Intellectual Property.
- * ============LICENSE_END=========================================================\r
- */\r
-\r
-package org.openecomp.appc.statemachine.impl.readers;\r
-\r
-import org.openecomp.appc.statemachine.StateMetaDataReader;\r
-import org.openecomp.appc.lifecyclemanager.objects.VNFOperationOutcome;\r
-import org.openecomp.appc.statemachine.objects.Event;\r
-import org.openecomp.appc.statemachine.objects.State;\r
-import org.openecomp.appc.statemachine.objects.StateMachineMetadata;\r
-\r
-public class VnfMetaDataReader implements StateMetaDataReader {\r
-\r
-    public enum VNFOperation {\r
-\r
-        Configure, Test, HealthCheck, Start, Terminate, Restart, Rebuild, Stop, ConfigModify,\r
-        ConfigScaleOut,ConfigRestore,Backup, Snapshot,\r
-        SoftwareUpload, LiveUpgrade, Rollback, Sync, Audit, Test_lic, Migrate, Evacuate,\r
-        ConfigBackup, ConfigBackupDelete, ConfigExport,\r
-        Lock(true), Unlock(true), CheckLock(true), StartApplication,StopApplication;\r
-\r
-        private boolean builtIn;\r
-\r
-        VNFOperation(boolean builtIn) {\r
-            this.builtIn = builtIn;\r
-        }\r
-\r
-        VNFOperation() {\r
-            this(false);\r
-        }\r
-    }\r
-\r
-    private enum VNFStates {\r
-        Not_Instantiated, Instantiated, Configuring, Configured, Testing, Tested, Rebuilding, Restarting, Starting,\r
-        Error, Running, Unknown, Terminating, Stopping, Stopped,\r
-        Backing_Up, Snapshotting, Software_Uploading, Upgrading, Rollbacking, Licensing, Migrating, Evacuating,\r
-        NOT_ORCHESTRATED("NOT ORCHESTRATED"), Created;\r
-\r
-        String stateName;\r
-\r
-        VNFStates(String name) {\r
-            this.stateName = name;\r
-        }\r
-\r
-        VNFStates() {\r
-            this.stateName = name();\r
-        }\r
-\r
-        @Override\r
-        public String toString() {\r
-            return this.stateName;\r
-        }\r
-    }\r
-\r
-    public StateMachineMetadata readMetadata() {\r
-        {\r
-            State NOT_INSTANTIATED = new State(VNFStates.Not_Instantiated.toString());\r
-            State INSTANTIATED = new State(VNFStates.Instantiated.toString());\r
-            State CONFIGURING = new State(VNFStates.Configuring.toString());\r
-            State CONFIGURED = new State(VNFStates.Configured.toString());\r
-            State TESTING = new State(VNFStates.Testing.toString());\r
-            State TESTED = new State(VNFStates.Tested.toString());\r
-            State REBUILDING = new State(VNFStates.Rebuilding.toString());\r
-            State RESTARTING = new State(VNFStates.Restarting.toString());\r
-            State STARTING = new State(VNFStates.Starting.toString());\r
-            State ERROR = new State(VNFStates.Error.toString());\r
-            State RUNNING = new State(VNFStates.Running.toString());\r
-            State UNKNOWN = new State(VNFStates.Unknown.toString());\r
-            State TERMINATING = new State(VNFStates.Terminating.toString());\r
-            State STOPPING = new State(VNFStates.Stopping.toString());\r
-            State STOPPED = new State(VNFStates.Stopped.toString());\r
-            State NOT_ORCHESTRATED = new State(VNFStates.NOT_ORCHESTRATED.toString());\r
-\r
-            State BACKING_UP = new State(VNFStates.Backing_Up.toString());\r
-            State SNAPSHOTTING = new State(VNFStates.Snapshotting.toString());\r
-            State SOFTWARE_UPLOADING = new State(VNFStates.Software_Uploading.toString());\r
-            State UPGRADING = new State(VNFStates.Upgrading.toString());\r
-            State ROLLBACKING = new State(VNFStates.Rollbacking.toString());\r
-\r
-            State MIGRATING = new State(VNFStates.Migrating.toString());\r
-            State EVACUATING = new State(VNFStates.Evacuating.toString());\r
-            State CREATED= new State(VNFStates.Created.toString());\r
-\r
-            Event START_APPLICATION = new Event(VNFOperation.StartApplication.toString());\r
-            Event CONFIGURE = new Event(VNFOperation.Configure.toString());\r
-            Event HEALTHCHECK = new Event(VNFOperation.HealthCheck.toString());\r
-            Event TEST = new Event(VNFOperation.Test.toString());\r
-            Event START = new Event(VNFOperation.Start.toString());\r
-            Event TERMINATE = new Event(VNFOperation.Terminate.toString());\r
-            Event RESTART = new Event(VNFOperation.Restart.toString());\r
-            Event REBUILD = new Event(VNFOperation.Rebuild.toString());\r
-            Event STOP = new Event(VNFOperation.Stop.toString());\r
-            Event CONFIG_MODIFY = new Event(VNFOperation.ConfigModify.toString());\r
-            Event CONFIG_SCALEOUT = new Event(VNFOperation.ConfigScaleOut.toString());\r
-            Event CONFIG_RESTORE = new Event(VNFOperation.ConfigRestore.toString());\r
-            Event BACKUP = new Event(VNFOperation.Backup.toString());\r
-            Event SNAPSHOT = new Event(VNFOperation.Snapshot.toString());\r
-            Event SOFTWARE_UPLOAD = new Event(VNFOperation.SoftwareUpload.toString());\r
-            Event LIVE_UPGRADE = new Event(VNFOperation.LiveUpgrade.toString());\r
-            Event ROLLBACK = new Event(VNFOperation.Rollback.toString());\r
-            Event SYNC = new Event(VNFOperation.Sync.toString());\r
-            Event AUDIT = new Event(VNFOperation.Audit.toString());\r
-            Event MIGRATE = new Event(VNFOperation.Migrate.toString());\r
-            Event EVACUATE = new Event(VNFOperation.Evacuate.toString());\r
-            Event CONFIG_BACKUP = new Event(VNFOperation.ConfigBackup.toString());\r
-            Event CONFIG_BACKUP_DELETE = new Event(VNFOperation.ConfigBackupDelete.toString());\r
-            Event CONFIG_EXPORT = new Event(VNFOperation.ConfigExport.toString());\r
-            Event STOP_APPLICATION= new Event(VNFOperation.StopApplication.toString());\r
-\r
-            Event LOCK = new Event(VNFOperation.Lock.toString());\r
-            Event UNLOCK = new Event(VNFOperation.Unlock.toString());\r
-            Event CHECKLOCK = new Event(VNFOperation.CheckLock.toString());\r
-\r
-            Event SUCCESS = new Event(VNFOperationOutcome.SUCCESS.toString());\r
-            Event FAILURE = new Event(VNFOperationOutcome.FAILURE.toString());\r
-\r
-\r
-            StateMachineMetadata.StateMachineMetadataBuilder builder = new StateMachineMetadata.StateMachineMetadataBuilder();\r
-\r
-            builder = builder.addState(NOT_INSTANTIATED);\r
-            builder = builder.addState(INSTANTIATED);\r
-            builder = builder.addState(CONFIGURING);\r
-            builder = builder.addState(CONFIGURED);\r
-            builder = builder.addState(TESTING);\r
-            builder = builder.addState(TESTED);\r
-            builder = builder.addState(REBUILDING);\r
-            builder = builder.addState(RESTARTING);\r
-            builder = builder.addState(STARTING);\r
-            builder = builder.addState(ERROR);\r
-            builder = builder.addState(RUNNING);\r
-            builder = builder.addState(UNKNOWN);\r
-            builder = builder.addState(TERMINATING);\r
-            builder = builder.addState(STOPPING);\r
-            builder = builder.addState(STOPPED);\r
-\r
-            builder = builder.addState(BACKING_UP);\r
-            builder = builder.addState(SNAPSHOTTING);\r
-            builder = builder.addState(SOFTWARE_UPLOADING);\r
-            builder = builder.addState(UPGRADING);\r
-            builder = builder.addState(ROLLBACKING);\r
-            builder = builder.addState(MIGRATING);\r
-            builder = builder.addState(EVACUATING);\r
-            builder = builder.addState(NOT_ORCHESTRATED);\r
-            builder = builder.addState(CREATED);\r
-            builder = builder.addEvent(START_APPLICATION);\r
-            builder = builder.addEvent(CONFIGURE);\r
-            builder = builder.addEvent(TEST);\r
-            builder = builder.addEvent(START);\r
-            builder = builder.addEvent(TERMINATE);\r
-            builder = builder.addEvent(RESTART);\r
-            builder = builder.addEvent(REBUILD);\r
-            builder = builder.addEvent(SUCCESS);\r
-            builder = builder.addEvent(FAILURE);\r
-            builder = builder.addEvent(STOP);\r
-            builder = builder.addEvent(CONFIG_MODIFY);\r
-            builder = builder.addEvent(CONFIG_SCALEOUT);\r
-            builder = builder.addEvent(CONFIG_RESTORE);\r
-            builder = builder.addEvent(HEALTHCHECK);\r
-            builder = builder.addEvent(BACKUP);\r
-            builder = builder.addEvent(SNAPSHOT);\r
-            builder = builder.addEvent(SOFTWARE_UPLOAD);\r
-            builder = builder.addEvent(LIVE_UPGRADE);\r
-            builder = builder.addEvent(ROLLBACK);\r
-            builder = builder.addEvent(SYNC);\r
-            builder = builder.addEvent(AUDIT);\r
-            builder = builder.addEvent(MIGRATE);\r
-            builder = builder.addEvent(EVACUATE);\r
-            builder = builder.addEvent(LOCK);\r
-            builder = builder.addEvent(UNLOCK);\r
-            builder = builder.addEvent(CHECKLOCK);\r
-            builder = builder.addEvent(CONFIG_BACKUP);\r
-            builder = builder.addEvent(CONFIG_BACKUP_DELETE);\r
-            builder = builder.addEvent(CONFIG_EXPORT);\r
-            builder = builder.addEvent(STOP_APPLICATION);\r
-\r
-            builder = builder.addTransition(NOT_ORCHESTRATED,CONFIGURE,CONFIGURING);\r
-            builder = builder.addTransition(NOT_ORCHESTRATED,TEST,TESTING);\r
-            builder = builder.addTransition(NOT_ORCHESTRATED,START,STARTING);\r
-            builder = builder.addTransition(NOT_ORCHESTRATED,TERMINATE,TERMINATING);\r
-            builder = builder.addTransition(NOT_ORCHESTRATED,RESTART,RESTARTING);\r
-            builder = builder.addTransition(NOT_ORCHESTRATED,REBUILD,REBUILDING);\r
-            builder = builder.addTransition(NOT_ORCHESTRATED,STOP,STOPPING);\r
-            builder = builder.addTransition(NOT_ORCHESTRATED,CONFIG_MODIFY,CONFIGURING);\r
-            builder = builder.addTransition(NOT_ORCHESTRATED,CONFIG_SCALEOUT,CONFIGURING);\r
-            builder = builder.addTransition(NOT_ORCHESTRATED,CONFIG_RESTORE,CONFIGURING);\r
-            builder = builder.addTransition(NOT_ORCHESTRATED,HEALTHCHECK,TESTING);\r
-            builder = builder.addTransition(NOT_ORCHESTRATED,BACKUP,BACKING_UP);\r
-            builder = builder.addTransition(NOT_ORCHESTRATED,SNAPSHOT,SNAPSHOTTING);\r
-            builder = builder.addTransition(NOT_ORCHESTRATED,SOFTWARE_UPLOAD,SOFTWARE_UPLOADING);\r
-            builder = builder.addTransition(NOT_ORCHESTRATED,LIVE_UPGRADE,UPGRADING);\r
-            builder = builder.addTransition(NOT_ORCHESTRATED,ROLLBACK,ROLLBACKING);\r
-            builder = builder.addTransition(NOT_ORCHESTRATED,MIGRATE,MIGRATING);\r
-            builder = builder.addTransition(NOT_ORCHESTRATED,EVACUATE,EVACUATING);\r
-            builder = builder.addTransition(NOT_ORCHESTRATED,LOCK,NOT_ORCHESTRATED);\r
-            builder = builder.addTransition(NOT_ORCHESTRATED,UNLOCK,NOT_ORCHESTRATED);\r
-            builder = builder.addTransition(NOT_ORCHESTRATED,CHECKLOCK,NOT_ORCHESTRATED);\r
-            builder = builder.addTransition(NOT_ORCHESTRATED,START_APPLICATION,STARTING);\r
-            builder = builder.addTransition(NOT_ORCHESTRATED,STOP_APPLICATION,STOPPING);\r
-            builder = builder.addTransition(NOT_ORCHESTRATED,CONFIG_BACKUP,NOT_ORCHESTRATED);\r
-\r
-            builder = builder.addTransition(CREATED,CONFIGURE,CONFIGURING);\r
-            builder = builder.addTransition(CREATED,TEST,TESTING);\r
-            builder = builder.addTransition(CREATED,START,STARTING);\r
-            builder = builder.addTransition(CREATED,TERMINATE,TERMINATING);\r
-            builder = builder.addTransition(CREATED,RESTART,RESTARTING);\r
-            builder = builder.addTransition(CREATED,REBUILD,REBUILDING);\r
-            builder = builder.addTransition(CREATED,STOP,STOPPING);\r
-            builder = builder.addTransition(CREATED,CONFIG_MODIFY,CONFIGURING);\r
-            builder = builder.addTransition(CREATED,CONFIG_SCALEOUT,CONFIGURING);\r
-            builder = builder.addTransition(CREATED,CONFIG_RESTORE,CONFIGURING);\r
-            builder = builder.addTransition(CREATED,HEALTHCHECK,TESTING);\r
-            builder = builder.addTransition(CREATED,BACKUP,BACKING_UP);\r
-            builder = builder.addTransition(CREATED,SNAPSHOT,SNAPSHOTTING);\r
-            builder = builder.addTransition(CREATED,SOFTWARE_UPLOAD,SOFTWARE_UPLOADING);\r
-            builder = builder.addTransition(CREATED,LIVE_UPGRADE,UPGRADING);\r
-            builder = builder.addTransition(CREATED,ROLLBACK,ROLLBACKING);\r
-            builder = builder.addTransition(CREATED,MIGRATE,MIGRATING);\r
-            builder = builder.addTransition(CREATED,EVACUATE,EVACUATING);\r
-            builder = builder.addTransition(CREATED,LOCK,CREATED);\r
-            builder = builder.addTransition(CREATED,UNLOCK,CREATED);\r
-            builder = builder.addTransition(CREATED,CHECKLOCK,CREATED);\r
-            builder = builder.addTransition(CREATED,START_APPLICATION,STARTING);\r
-            builder = builder.addTransition(CREATED,STOP_APPLICATION,STOPPING);\r
-            builder = builder.addTransition(CREATED,CONFIG_BACKUP,CREATED);\r
-\r
-            builder = builder.addTransition(INSTANTIATED,CONFIGURE,CONFIGURING);\r
-            builder = builder.addTransition(INSTANTIATED,TEST,TESTING);\r
-            builder = builder.addTransition(INSTANTIATED,START,STARTING);\r
-            builder = builder.addTransition(INSTANTIATED,TERMINATE,TERMINATING);\r
-            builder = builder.addTransition(INSTANTIATED,RESTART,RESTARTING);\r
-            builder = builder.addTransition(INSTANTIATED,REBUILD,REBUILDING);\r
-            builder = builder.addTransition(INSTANTIATED,STOP,STOPPING);\r
-            builder = builder.addTransition(INSTANTIATED,CONFIG_MODIFY,CONFIGURING);\r
-            builder = builder.addTransition(INSTANTIATED,CONFIG_SCALEOUT,CONFIGURING);\r
-            builder = builder.addTransition(INSTANTIATED,CONFIG_RESTORE,CONFIGURING);\r
-            builder = builder.addTransition(INSTANTIATED,HEALTHCHECK,TESTING);\r
-            builder = builder.addTransition(INSTANTIATED,BACKUP,BACKING_UP);\r
-            builder = builder.addTransition(INSTANTIATED,SNAPSHOT,SNAPSHOTTING);\r
-            builder = builder.addTransition(INSTANTIATED,SOFTWARE_UPLOAD,SOFTWARE_UPLOADING);\r
-            builder = builder.addTransition(INSTANTIATED,LIVE_UPGRADE,UPGRADING);\r
-            builder = builder.addTransition(INSTANTIATED,ROLLBACK,ROLLBACKING);\r
-            builder = builder.addTransition(INSTANTIATED,MIGRATE,MIGRATING);\r
-            builder = builder.addTransition(INSTANTIATED,EVACUATE,EVACUATING);\r
-            builder = builder.addTransition(INSTANTIATED,LOCK,INSTANTIATED);\r
-            builder = builder.addTransition(INSTANTIATED,UNLOCK,INSTANTIATED);\r
-            builder = builder.addTransition(INSTANTIATED,CHECKLOCK,INSTANTIATED);\r
-\r
-            builder = builder.addTransition(CONFIGURED,CONFIGURE,CONFIGURING);\r
-            builder = builder.addTransition(CONFIGURED,TEST,TESTING);\r
-            builder = builder.addTransition(CONFIGURED,START,STARTING);\r
-            builder = builder.addTransition(CONFIGURED,TERMINATE,TERMINATING);\r
-            builder = builder.addTransition(CONFIGURED,RESTART,RESTARTING);\r
-            builder = builder.addTransition(CONFIGURED,REBUILD,REBUILDING);\r
-            builder = builder.addTransition(CONFIGURED,STOP,STOPPING);\r
-            builder = builder.addTransition(CONFIGURED,CONFIG_MODIFY,CONFIGURING);\r
-            builder = builder.addTransition(CONFIGURED,CONFIG_SCALEOUT,CONFIGURING);\r
-            builder = builder.addTransition(CONFIGURED,CONFIG_RESTORE,CONFIGURING);\r
-            builder = builder.addTransition(CONFIGURED,HEALTHCHECK,TESTING);\r
-            builder = builder.addTransition(CONFIGURED,BACKUP,BACKING_UP);\r
-            builder = builder.addTransition(CONFIGURED,SNAPSHOT,SNAPSHOTTING);\r
-            builder = builder.addTransition(CONFIGURED,SOFTWARE_UPLOAD,SOFTWARE_UPLOADING);\r
-            builder = builder.addTransition(CONFIGURED,LIVE_UPGRADE,UPGRADING);\r
-            builder = builder.addTransition(CONFIGURED,ROLLBACK,ROLLBACKING);\r
-            builder = builder.addTransition(CONFIGURED,SYNC,CONFIGURED);\r
-            builder = builder.addTransition(CONFIGURED,AUDIT,CONFIGURED);\r
-            builder = builder.addTransition(CONFIGURED,MIGRATE,MIGRATING);\r
-            builder = builder.addTransition(CONFIGURED,EVACUATE,EVACUATING);\r
-            builder = builder.addTransition(CONFIGURED,LOCK,CONFIGURED);\r
-            builder = builder.addTransition(CONFIGURED,UNLOCK,CONFIGURED);\r
-            builder = builder.addTransition(CONFIGURED,CHECKLOCK,CONFIGURED);\r
-            builder = builder.addTransition(CONFIGURED,CONFIG_BACKUP,CONFIGURED);\r
-            builder = builder.addTransition(CONFIGURED,CONFIG_BACKUP_DELETE,CONFIGURED);\r
-            builder = builder.addTransition(CONFIGURED,CONFIG_EXPORT,CONFIGURED);\r
-            builder = builder.addTransition(CONFIGURED,STOP_APPLICATION,STOPPING);\r
-\r
-            builder = builder.addTransition(TESTED,CONFIGURE,CONFIGURING);\r
-            builder = builder.addTransition(TESTED,TEST,TESTING);\r
-            builder = builder.addTransition(TESTED,START,STARTING);\r
-            builder = builder.addTransition(TESTED,TERMINATE,TERMINATING);\r
-            builder = builder.addTransition(TESTED,RESTART,RESTARTING);\r
-            builder = builder.addTransition(TESTED,REBUILD,REBUILDING);\r
-            builder = builder.addTransition(TESTED,STOP,STOPPING);\r
-            builder = builder.addTransition(TESTED,CONFIG_MODIFY,CONFIGURING);\r
-            builder = builder.addTransition(TESTED,CONFIG_SCALEOUT,CONFIGURING);\r
-            builder = builder.addTransition(TESTED,CONFIG_RESTORE,CONFIGURING);\r
-            builder = builder.addTransition(TESTED,HEALTHCHECK,TESTING);\r
-            builder = builder.addTransition(TESTED,BACKUP,BACKING_UP);\r
-            builder = builder.addTransition(TESTED,SNAPSHOT,SNAPSHOTTING);\r
-            builder = builder.addTransition(TESTED,SOFTWARE_UPLOAD,SOFTWARE_UPLOADING);\r
-            builder = builder.addTransition(TESTED,LIVE_UPGRADE,UPGRADING);\r
-            builder = builder.addTransition(TESTED,ROLLBACK,ROLLBACKING);\r
-            builder = builder.addTransition(TESTED,SYNC,TESTED);\r
-            builder = builder.addTransition(TESTED,AUDIT,TESTED);\r
-            builder = builder.addTransition(TESTED,MIGRATE,MIGRATING);\r
-            builder = builder.addTransition(TESTED,EVACUATE,EVACUATING);\r
-            builder = builder.addTransition(TESTED,LOCK,TESTED);\r
-            builder = builder.addTransition(TESTED,UNLOCK,TESTED);\r
-            builder = builder.addTransition(TESTED,CHECKLOCK,TESTED);\r
-            builder = builder.addTransition(TESTED,CONFIG_BACKUP,TESTED);\r
-            builder = builder.addTransition(TESTED,CONFIG_BACKUP_DELETE,TESTED);\r
-            builder = builder.addTransition(TESTED,CONFIG_EXPORT,TESTED);\r
-            builder = builder.addTransition(TESTED,STOP_APPLICATION,STOPPING);\r
-\r
-            builder = builder.addTransition(RUNNING,CONFIGURE,CONFIGURING);\r
-            builder = builder.addTransition(RUNNING,TEST,TESTING);\r
-            builder = builder.addTransition(RUNNING,START,STARTING);\r
-            builder = builder.addTransition(RUNNING,TERMINATE,TERMINATING);\r
-            builder = builder.addTransition(RUNNING,RESTART,RESTARTING);\r
-            builder = builder.addTransition(RUNNING,REBUILD,REBUILDING);\r
-            builder = builder.addTransition(RUNNING,STOP,STOPPING);\r
-            builder = builder.addTransition(RUNNING,CONFIG_MODIFY,CONFIGURING);\r
-            builder = builder.addTransition(RUNNING,CONFIG_SCALEOUT,CONFIGURING);\r
-            builder = builder.addTransition(RUNNING,CONFIG_RESTORE,CONFIGURING);\r
-            builder = builder.addTransition(RUNNING,HEALTHCHECK,TESTING);\r
-            builder = builder.addTransition(RUNNING,BACKUP,BACKING_UP);\r
-            builder = builder.addTransition(RUNNING,SNAPSHOT,SNAPSHOTTING);\r
-            builder = builder.addTransition(RUNNING,SOFTWARE_UPLOAD,SOFTWARE_UPLOADING);\r
-            builder = builder.addTransition(RUNNING,LIVE_UPGRADE,UPGRADING);\r
-            builder = builder.addTransition(RUNNING,ROLLBACK,ROLLBACKING);\r
-            builder = builder.addTransition(RUNNING,SYNC,RUNNING);\r
-            builder = builder.addTransition(RUNNING,AUDIT,RUNNING);\r
-            builder = builder.addTransition(RUNNING,MIGRATE,MIGRATING);\r
-            builder = builder.addTransition(RUNNING,EVACUATE,EVACUATING);\r
-            builder = builder.addTransition(RUNNING,LOCK,RUNNING);\r
-            builder = builder.addTransition(RUNNING,UNLOCK,RUNNING);\r
-            builder = builder.addTransition(RUNNING,CHECKLOCK,RUNNING);\r
-            builder = builder.addTransition(RUNNING,CONFIG_BACKUP,RUNNING);\r
-            builder = builder.addTransition(RUNNING,CONFIG_BACKUP_DELETE,RUNNING);\r
-            builder = builder.addTransition(RUNNING,CONFIG_EXPORT,RUNNING);\r
-            builder = builder.addTransition(RUNNING,STOP_APPLICATION,STOPPING);\r
-\r
-            builder = builder.addTransition(ERROR,CONFIGURE,CONFIGURING);\r
-            builder = builder.addTransition(ERROR,TEST,TESTING);\r
-            builder = builder.addTransition(ERROR,START,STARTING);\r
-            builder = builder.addTransition(ERROR,TERMINATE,TERMINATING);\r
-            builder = builder.addTransition(ERROR,RESTART,RESTARTING);\r
-            builder = builder.addTransition(ERROR,REBUILD,REBUILDING);\r
-            builder = builder.addTransition(ERROR,STOP,STOPPING);\r
-            builder = builder.addTransition(ERROR,CONFIG_MODIFY,CONFIGURING);\r
-            builder = builder.addTransition(ERROR,CONFIG_SCALEOUT,CONFIGURING);\r
-            builder = builder.addTransition(ERROR,CONFIG_RESTORE,CONFIGURING);\r
-            builder = builder.addTransition(ERROR,HEALTHCHECK,TESTING);\r
-            builder = builder.addTransition(ERROR,BACKUP,BACKING_UP);\r
-            builder = builder.addTransition(ERROR,SNAPSHOT,SNAPSHOTTING);\r
-            builder = builder.addTransition(ERROR,SOFTWARE_UPLOAD,SOFTWARE_UPLOADING);\r
-            builder = builder.addTransition(ERROR,LIVE_UPGRADE,UPGRADING);\r
-            builder = builder.addTransition(ERROR,ROLLBACK,ROLLBACKING);\r
-            builder = builder.addTransition(ERROR,SYNC,ERROR);\r
-            builder = builder.addTransition(ERROR,AUDIT,ERROR);\r
-            builder = builder.addTransition(ERROR,MIGRATE,MIGRATING);\r
-            builder = builder.addTransition(ERROR,EVACUATE,EVACUATING);\r
-            builder = builder.addTransition(ERROR,LOCK,ERROR);\r
-            builder = builder.addTransition(ERROR,UNLOCK,ERROR);\r
-            builder = builder.addTransition(ERROR,CHECKLOCK,ERROR);\r
-            builder = builder.addTransition(ERROR,CONFIG_BACKUP,ERROR);\r
-            builder = builder.addTransition(ERROR,CONFIG_BACKUP_DELETE,ERROR);\r
-            builder = builder.addTransition(ERROR,CONFIG_EXPORT,ERROR);\r
-            builder = builder.addTransition(ERROR,STOP_APPLICATION,STOPPING);\r
-\r
-            builder = builder.addTransition(UNKNOWN,CONFIGURE,CONFIGURING);\r
-            builder = builder.addTransition(UNKNOWN,TEST,TESTING);\r
-            builder = builder.addTransition(UNKNOWN,START,STARTING);\r
-            builder = builder.addTransition(UNKNOWN,TERMINATE,TERMINATING);\r
-            builder = builder.addTransition(UNKNOWN,RESTART,RESTARTING);\r
-            builder = builder.addTransition(UNKNOWN,REBUILD,REBUILDING);\r
-            builder = builder.addTransition(UNKNOWN,STOP,STOPPING);\r
-            builder = builder.addTransition(UNKNOWN,CONFIG_MODIFY,CONFIGURING);\r
-            builder = builder.addTransition(UNKNOWN,CONFIG_SCALEOUT,CONFIGURING);\r
-            builder = builder.addTransition(UNKNOWN,CONFIG_RESTORE,CONFIGURING);\r
-            builder = builder.addTransition(UNKNOWN,HEALTHCHECK,TESTING);\r
-            builder = builder.addTransition(UNKNOWN,BACKUP,BACKING_UP);\r
-            builder = builder.addTransition(UNKNOWN,SNAPSHOT,SNAPSHOTTING);\r
-            builder = builder.addTransition(UNKNOWN,SOFTWARE_UPLOAD,SOFTWARE_UPLOADING);\r
-            builder = builder.addTransition(UNKNOWN,LIVE_UPGRADE,UPGRADING);\r
-            builder = builder.addTransition(UNKNOWN,ROLLBACK,ROLLBACKING);\r
-            builder = builder.addTransition(UNKNOWN,SYNC,UNKNOWN);\r
-            builder = builder.addTransition(UNKNOWN,AUDIT,UNKNOWN);\r
-            builder = builder.addTransition(UNKNOWN,MIGRATE,MIGRATING);\r
-            builder = builder.addTransition(UNKNOWN,EVACUATE,EVACUATING);\r
-            builder = builder.addTransition(UNKNOWN,LOCK,UNKNOWN);\r
-            builder = builder.addTransition(UNKNOWN,UNLOCK,UNKNOWN);\r
-            builder = builder.addTransition(UNKNOWN,CHECKLOCK,UNKNOWN);\r
-            builder = builder.addTransition(UNKNOWN,CONFIG_BACKUP,UNKNOWN);\r
-            builder = builder.addTransition(UNKNOWN,CONFIG_BACKUP_DELETE,UNKNOWN);\r
-            builder = builder.addTransition(UNKNOWN,CONFIG_EXPORT,UNKNOWN);\r
-            builder = builder.addTransition(UNKNOWN,STOP_APPLICATION,STOPPING);\r
-\r
-            builder = builder.addTransition(STOPPED,CONFIGURE,CONFIGURING);\r
-            builder = builder.addTransition(STOPPED,TEST,TESTING);\r
-            builder = builder.addTransition(STOPPED,START,STARTING);\r
-            builder = builder.addTransition(STOPPED,TERMINATE,TERMINATING);\r
-            builder = builder.addTransition(STOPPED,RESTART,RESTARTING);\r
-            builder = builder.addTransition(STOPPED,REBUILD,REBUILDING);\r
-            builder = builder.addTransition(STOPPED,CONFIG_MODIFY,CONFIGURING);\r
-            builder = builder.addTransition(STOPPED,CONFIG_SCALEOUT,CONFIGURING);\r
-            builder = builder.addTransition(STOPPED,CONFIG_RESTORE,CONFIGURING);\r
-            builder = builder.addTransition(STOPPED,HEALTHCHECK,TESTING);\r
-            builder = builder.addTransition(STOPPED,BACKUP,BACKING_UP);\r
-            builder = builder.addTransition(STOPPED,SNAPSHOT,SNAPSHOTTING);\r
-            builder = builder.addTransition(STOPPED,SOFTWARE_UPLOAD,SOFTWARE_UPLOADING);\r
-            builder = builder.addTransition(STOPPED,LIVE_UPGRADE,UPGRADING);\r
-            builder = builder.addTransition(STOPPED,ROLLBACK,ROLLBACKING);\r
-            builder = builder.addTransition(STOPPED,MIGRATE,MIGRATING);\r
-            builder = builder.addTransition(STOPPED,EVACUATE,EVACUATING);\r
-            builder = builder.addTransition(STOPPED,LOCK,STOPPED);\r
-            builder = builder.addTransition(STOPPED,UNLOCK,STOPPED);\r
-            builder = builder.addTransition(STOPPED,CHECKLOCK,STOPPED);\r
-\r
-            builder = builder.addTransition(CONFIGURING,SUCCESS,CONFIGURED);\r
-            builder = builder.addTransition(CONFIGURING,FAILURE,ERROR);\r
-\r
-            builder = builder.addTransition(TESTING,SUCCESS,TESTED);\r
-            builder = builder.addTransition(TESTING,FAILURE,ERROR);\r
-\r
-            builder = builder.addTransition(RESTARTING,SUCCESS,RUNNING);\r
-            builder = builder.addTransition(RESTARTING,FAILURE,ERROR);\r
-\r
-            builder = builder.addTransition(STARTING,SUCCESS,RUNNING);\r
-            builder = builder.addTransition(STARTING,FAILURE,ERROR);\r
-\r
-            builder = builder.addTransition(TERMINATING,SUCCESS,NOT_INSTANTIATED);\r
-            builder = builder.addTransition(TERMINATING,FAILURE,ERROR);\r
-\r
-            builder = builder.addTransition(REBUILDING,SUCCESS,RUNNING);\r
-            builder = builder.addTransition(REBUILDING,FAILURE,ERROR);\r
-\r
-            builder = builder.addTransition(STOPPING,SUCCESS,STOPPED);\r
-            builder = builder.addTransition(STOPPING,FAILURE,ERROR);\r
-\r
-            builder = builder.addTransition(BACKING_UP,SUCCESS,RUNNING);\r
-            builder = builder.addTransition(BACKING_UP,FAILURE,ERROR);\r
-\r
-            builder = builder.addTransition(SNAPSHOTTING,SUCCESS,RUNNING);\r
-            builder = builder.addTransition(SNAPSHOTTING,FAILURE,ERROR);\r
-\r
-            builder = builder.addTransition(SOFTWARE_UPLOADING,SUCCESS,RUNNING);\r
-            builder = builder.addTransition(SOFTWARE_UPLOADING,FAILURE,ERROR);\r
-\r
-            builder = builder.addTransition(UPGRADING,SUCCESS,RUNNING);\r
-            builder = builder.addTransition(UPGRADING,FAILURE,ERROR);\r
-\r
-            builder = builder.addTransition(ROLLBACKING,SUCCESS,RUNNING);\r
-            builder = builder.addTransition(ROLLBACKING,FAILURE,ERROR);\r
-\r
-            builder = builder.addTransition(MIGRATING,SUCCESS,RUNNING);\r
-            builder = builder.addTransition(MIGRATING,FAILURE,ERROR);\r
-\r
-            builder = builder.addTransition(EVACUATING,SUCCESS,RUNNING);\r
-            builder = builder.addTransition(EVACUATING,FAILURE,ERROR);\r
-\r
-\r
-            builder = builder.addTransition(CONFIGURED,START_APPLICATION,STARTING);\r
-            builder = builder.addTransition(TESTED,START_APPLICATION,STARTING);\r
-            builder = builder.addTransition(ERROR,START_APPLICATION,STARTING);\r
-            builder = builder.addTransition(UNKNOWN,START_APPLICATION,STARTING);\r
-            builder = builder.addTransition(RUNNING,START_APPLICATION,STARTING);\r
-\r
-            return builder.build();\r
-\r
-        }\r
-    }\r
-}\r
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.appc.statemachine.impl.readers;
+
+import org.openecomp.appc.statemachine.StateMetaDataReader;
+import org.openecomp.appc.lifecyclemanager.objects.VNFOperationOutcome;
+import org.openecomp.appc.statemachine.objects.Event;
+import org.openecomp.appc.statemachine.objects.State;
+import org.openecomp.appc.statemachine.objects.StateMachineMetadata;
+
+public class VnfMetaDataReader implements StateMetaDataReader {
+
+    public enum VNFOperation {
+
+        Configure, Test, HealthCheck, Start, Terminate, Restart, Rebuild, Stop, ConfigModify,
+        ConfigScaleOut,ConfigRestore,Backup, Snapshot,
+        SoftwareUpload, LiveUpgrade, Rollback, Sync, Audit, Test_lic, Migrate, Evacuate,
+        ConfigBackup, ConfigBackupDelete, ConfigExport,
+        Lock(true), Unlock(true), CheckLock(true), StartApplication,StopApplication;
+
+        private boolean builtIn;
+
+        VNFOperation(boolean builtIn) {
+            this.builtIn = builtIn;
+        }
+
+        VNFOperation() {
+            this(false);
+        }
+    }
+
+    private enum VNFStates {
+        Not_Instantiated, Instantiated, Configuring, Configured, Testing, Tested, Rebuilding, Restarting, Starting,
+        Error, Running, Unknown, Terminating, Stopping, Stopped,
+        Backing_Up, Snapshotting, Software_Uploading, Upgrading, Rollbacking, Licensing, Migrating, Evacuating,
+        NOT_ORCHESTRATED("NOT ORCHESTRATED"), Created;
+
+        String stateName;
+
+        VNFStates(String name) {
+            this.stateName = name;
+        }
+
+        VNFStates() {
+            this.stateName = name();
+        }
+
+        @Override
+        public String toString() {
+            return this.stateName;
+        }
+    }
+
+    public StateMachineMetadata readMetadata() {
+        {
+            State NOT_INSTANTIATED = new State(VNFStates.Not_Instantiated.toString());
+            State INSTANTIATED = new State(VNFStates.Instantiated.toString());
+            State CONFIGURING = new State(VNFStates.Configuring.toString());
+            State CONFIGURED = new State(VNFStates.Configured.toString());
+            State TESTING = new State(VNFStates.Testing.toString());
+            State TESTED = new State(VNFStates.Tested.toString());
+            State REBUILDING = new State(VNFStates.Rebuilding.toString());
+            State RESTARTING = new State(VNFStates.Restarting.toString());
+            State STARTING = new State(VNFStates.Starting.toString());
+            State ERROR = new State(VNFStates.Error.toString());
+            State RUNNING = new State(VNFStates.Running.toString());
+            State UNKNOWN = new State(VNFStates.Unknown.toString());
+            State TERMINATING = new State(VNFStates.Terminating.toString());
+            State STOPPING = new State(VNFStates.Stopping.toString());
+            State STOPPED = new State(VNFStates.Stopped.toString());
+            State NOT_ORCHESTRATED = new State(VNFStates.NOT_ORCHESTRATED.toString());
+
+            State BACKING_UP = new State(VNFStates.Backing_Up.toString());
+            State SNAPSHOTTING = new State(VNFStates.Snapshotting.toString());
+            State SOFTWARE_UPLOADING = new State(VNFStates.Software_Uploading.toString());
+            State UPGRADING = new State(VNFStates.Upgrading.toString());
+            State ROLLBACKING = new State(VNFStates.Rollbacking.toString());
+
+            State MIGRATING = new State(VNFStates.Migrating.toString());
+            State EVACUATING = new State(VNFStates.Evacuating.toString());
+            State CREATED= new State(VNFStates.Created.toString());
+
+            Event START_APPLICATION = new Event(VNFOperation.StartApplication.toString());
+            Event CONFIGURE = new Event(VNFOperation.Configure.toString());
+            Event HEALTHCHECK = new Event(VNFOperation.HealthCheck.toString());
+            Event TEST = new Event(VNFOperation.Test.toString());
+            Event START = new Event(VNFOperation.Start.toString());
+            Event TERMINATE = new Event(VNFOperation.Terminate.toString());
+            Event RESTART = new Event(VNFOperation.Restart.toString());
+            Event REBUILD = new Event(VNFOperation.Rebuild.toString());
+            Event STOP = new Event(VNFOperation.Stop.toString());
+            Event CONFIG_MODIFY = new Event(VNFOperation.ConfigModify.toString());
+            Event CONFIG_SCALEOUT = new Event(VNFOperation.ConfigScaleOut.toString());
+            Event CONFIG_RESTORE = new Event(VNFOperation.ConfigRestore.toString());
+            Event BACKUP = new Event(VNFOperation.Backup.toString());
+            Event SNAPSHOT = new Event(VNFOperation.Snapshot.toString());
+            Event SOFTWARE_UPLOAD = new Event(VNFOperation.SoftwareUpload.toString());
+            Event LIVE_UPGRADE = new Event(VNFOperation.LiveUpgrade.toString());
+            Event ROLLBACK = new Event(VNFOperation.Rollback.toString());
+            Event SYNC = new Event(VNFOperation.Sync.toString());
+            Event AUDIT = new Event(VNFOperation.Audit.toString());
+            Event MIGRATE = new Event(VNFOperation.Migrate.toString());
+            Event EVACUATE = new Event(VNFOperation.Evacuate.toString());
+            Event CONFIG_BACKUP = new Event(VNFOperation.ConfigBackup.toString());
+            Event CONFIG_BACKUP_DELETE = new Event(VNFOperation.ConfigBackupDelete.toString());
+            Event CONFIG_EXPORT = new Event(VNFOperation.ConfigExport.toString());
+            Event STOP_APPLICATION= new Event(VNFOperation.StopApplication.toString());
+
+            Event LOCK = new Event(VNFOperation.Lock.toString());
+            Event UNLOCK = new Event(VNFOperation.Unlock.toString());
+            Event CHECKLOCK = new Event(VNFOperation.CheckLock.toString());
+
+            Event SUCCESS = new Event(VNFOperationOutcome.SUCCESS.toString());
+            Event FAILURE = new Event(VNFOperationOutcome.FAILURE.toString());
+
+
+            StateMachineMetadata.StateMachineMetadataBuilder builder = new StateMachineMetadata.StateMachineMetadataBuilder();
+
+            builder = builder.addState(NOT_INSTANTIATED);
+            builder = builder.addState(INSTANTIATED);
+            builder = builder.addState(CONFIGURING);
+            builder = builder.addState(CONFIGURED);
+            builder = builder.addState(TESTING);
+            builder = builder.addState(TESTED);
+            builder = builder.addState(REBUILDING);
+            builder = builder.addState(RESTARTING);
+            builder = builder.addState(STARTING);
+            builder = builder.addState(ERROR);
+            builder = builder.addState(RUNNING);
+            builder = builder.addState(UNKNOWN);
+            builder = builder.addState(TERMINATING);
+            builder = builder.addState(STOPPING);
+            builder = builder.addState(STOPPED);
+
+            builder = builder.addState(BACKING_UP);
+            builder = builder.addState(SNAPSHOTTING);
+            builder = builder.addState(SOFTWARE_UPLOADING);
+            builder = builder.addState(UPGRADING);
+            builder = builder.addState(ROLLBACKING);
+            builder = builder.addState(MIGRATING);
+            builder = builder.addState(EVACUATING);
+            builder = builder.addState(NOT_ORCHESTRATED);
+            builder = builder.addState(CREATED);
+            builder = builder.addEvent(START_APPLICATION);
+            builder = builder.addEvent(CONFIGURE);
+            builder = builder.addEvent(TEST);
+            builder = builder.addEvent(START);
+            builder = builder.addEvent(TERMINATE);
+            builder = builder.addEvent(RESTART);
+            builder = builder.addEvent(REBUILD);
+            builder = builder.addEvent(SUCCESS);
+            builder = builder.addEvent(FAILURE);
+            builder = builder.addEvent(STOP);
+            builder = builder.addEvent(CONFIG_MODIFY);
+            builder = builder.addEvent(CONFIG_SCALEOUT);
+            builder = builder.addEvent(CONFIG_RESTORE);
+            builder = builder.addEvent(HEALTHCHECK);
+            builder = builder.addEvent(BACKUP);
+            builder = builder.addEvent(SNAPSHOT);
+            builder = builder.addEvent(SOFTWARE_UPLOAD);
+            builder = builder.addEvent(LIVE_UPGRADE);
+            builder = builder.addEvent(ROLLBACK);
+            builder = builder.addEvent(SYNC);
+            builder = builder.addEvent(AUDIT);
+            builder = builder.addEvent(MIGRATE);
+            builder = builder.addEvent(EVACUATE);
+            builder = builder.addEvent(LOCK);
+            builder = builder.addEvent(UNLOCK);
+            builder = builder.addEvent(CHECKLOCK);
+            builder = builder.addEvent(CONFIG_BACKUP);
+            builder = builder.addEvent(CONFIG_BACKUP_DELETE);
+            builder = builder.addEvent(CONFIG_EXPORT);
+            builder = builder.addEvent(STOP_APPLICATION);
+
+            builder = builder.addTransition(NOT_ORCHESTRATED,CONFIGURE,CONFIGURING);
+            builder = builder.addTransition(NOT_ORCHESTRATED,TEST,TESTING);
+            builder = builder.addTransition(NOT_ORCHESTRATED,START,STARTING);
+            builder = builder.addTransition(NOT_ORCHESTRATED,TERMINATE,TERMINATING);
+            builder = builder.addTransition(NOT_ORCHESTRATED,RESTART,RESTARTING);
+            builder = builder.addTransition(NOT_ORCHESTRATED,REBUILD,REBUILDING);
+            builder = builder.addTransition(NOT_ORCHESTRATED,STOP,STOPPING);
+            builder = builder.addTransition(NOT_ORCHESTRATED,CONFIG_MODIFY,CONFIGURING);
+            builder = builder.addTransition(NOT_ORCHESTRATED,CONFIG_SCALEOUT,CONFIGURING);
+            builder = builder.addTransition(NOT_ORCHESTRATED,CONFIG_RESTORE,CONFIGURING);
+            builder = builder.addTransition(NOT_ORCHESTRATED,HEALTHCHECK,TESTING);
+            builder = builder.addTransition(NOT_ORCHESTRATED,BACKUP,BACKING_UP);
+            builder = builder.addTransition(NOT_ORCHESTRATED,SNAPSHOT,SNAPSHOTTING);
+            builder = builder.addTransition(NOT_ORCHESTRATED,SOFTWARE_UPLOAD,SOFTWARE_UPLOADING);
+            builder = builder.addTransition(NOT_ORCHESTRATED,LIVE_UPGRADE,UPGRADING);
+            builder = builder.addTransition(NOT_ORCHESTRATED,ROLLBACK,ROLLBACKING);
+            builder = builder.addTransition(NOT_ORCHESTRATED,MIGRATE,MIGRATING);
+            builder = builder.addTransition(NOT_ORCHESTRATED,EVACUATE,EVACUATING);
+            builder = builder.addTransition(NOT_ORCHESTRATED,LOCK,NOT_ORCHESTRATED);
+            builder = builder.addTransition(NOT_ORCHESTRATED,UNLOCK,NOT_ORCHESTRATED);
+            builder = builder.addTransition(NOT_ORCHESTRATED,CHECKLOCK,NOT_ORCHESTRATED);
+            builder = builder.addTransition(NOT_ORCHESTRATED,START_APPLICATION,STARTING);
+            builder = builder.addTransition(NOT_ORCHESTRATED,STOP_APPLICATION,STOPPING);
+            builder = builder.addTransition(NOT_ORCHESTRATED,CONFIG_BACKUP,NOT_ORCHESTRATED);
+
+            builder = builder.addTransition(CREATED,CONFIGURE,CONFIGURING);
+            builder = builder.addTransition(CREATED,TEST,TESTING);
+            builder = builder.addTransition(CREATED,START,STARTING);
+            builder = builder.addTransition(CREATED,TERMINATE,TERMINATING);
+            builder = builder.addTransition(CREATED,RESTART,RESTARTING);
+            builder = builder.addTransition(CREATED,REBUILD,REBUILDING);
+            builder = builder.addTransition(CREATED,STOP,STOPPING);
+            builder = builder.addTransition(CREATED,CONFIG_MODIFY,CONFIGURING);
+            builder = builder.addTransition(CREATED,CONFIG_SCALEOUT,CONFIGURING);
+            builder = builder.addTransition(CREATED,CONFIG_RESTORE,CONFIGURING);
+            builder = builder.addTransition(CREATED,HEALTHCHECK,TESTING);
+            builder = builder.addTransition(CREATED,BACKUP,BACKING_UP);
+            builder = builder.addTransition(CREATED,SNAPSHOT,SNAPSHOTTING);
+            builder = builder.addTransition(CREATED,SOFTWARE_UPLOAD,SOFTWARE_UPLOADING);
+            builder = builder.addTransition(CREATED,LIVE_UPGRADE,UPGRADING);
+            builder = builder.addTransition(CREATED,ROLLBACK,ROLLBACKING);
+            builder = builder.addTransition(CREATED,MIGRATE,MIGRATING);
+            builder = builder.addTransition(CREATED,EVACUATE,EVACUATING);
+            builder = builder.addTransition(CREATED,LOCK,CREATED);
+            builder = builder.addTransition(CREATED,UNLOCK,CREATED);
+            builder = builder.addTransition(CREATED,CHECKLOCK,CREATED);
+            builder = builder.addTransition(CREATED,START_APPLICATION,STARTING);
+            builder = builder.addTransition(CREATED,STOP_APPLICATION,STOPPING);
+            builder = builder.addTransition(CREATED,CONFIG_BACKUP,CREATED);
+
+            builder = builder.addTransition(INSTANTIATED,CONFIGURE,CONFIGURING);
+            builder = builder.addTransition(INSTANTIATED,TEST,TESTING);
+            builder = builder.addTransition(INSTANTIATED,START,STARTING);
+            builder = builder.addTransition(INSTANTIATED,TERMINATE,TERMINATING);
+            builder = builder.addTransition(INSTANTIATED,RESTART,RESTARTING);
+            builder = builder.addTransition(INSTANTIATED,REBUILD,REBUILDING);
+            builder = builder.addTransition(INSTANTIATED,STOP,STOPPING);
+            builder = builder.addTransition(INSTANTIATED,CONFIG_MODIFY,CONFIGURING);
+            builder = builder.addTransition(INSTANTIATED,CONFIG_SCALEOUT,CONFIGURING);
+            builder = builder.addTransition(INSTANTIATED,CONFIG_RESTORE,CONFIGURING);
+            builder = builder.addTransition(INSTANTIATED,HEALTHCHECK,TESTING);
+            builder = builder.addTransition(INSTANTIATED,BACKUP,BACKING_UP);
+            builder = builder.addTransition(INSTANTIATED,SNAPSHOT,SNAPSHOTTING);
+            builder = builder.addTransition(INSTANTIATED,SOFTWARE_UPLOAD,SOFTWARE_UPLOADING);
+            builder = builder.addTransition(INSTANTIATED,LIVE_UPGRADE,UPGRADING);
+            builder = builder.addTransition(INSTANTIATED,ROLLBACK,ROLLBACKING);
+            builder = builder.addTransition(INSTANTIATED,MIGRATE,MIGRATING);
+            builder = builder.addTransition(INSTANTIATED,EVACUATE,EVACUATING);
+            builder = builder.addTransition(INSTANTIATED,LOCK,INSTANTIATED);
+            builder = builder.addTransition(INSTANTIATED,UNLOCK,INSTANTIATED);
+            builder = builder.addTransition(INSTANTIATED,CHECKLOCK,INSTANTIATED);
+
+            builder = builder.addTransition(CONFIGURED,CONFIGURE,CONFIGURING);
+            builder = builder.addTransition(CONFIGURED,TEST,TESTING);
+            builder = builder.addTransition(CONFIGURED,START,STARTING);
+            builder = builder.addTransition(CONFIGURED,TERMINATE,TERMINATING);
+            builder = builder.addTransition(CONFIGURED,RESTART,RESTARTING);
+            builder = builder.addTransition(CONFIGURED,REBUILD,REBUILDING);
+            builder = builder.addTransition(CONFIGURED,STOP,STOPPING);
+            builder = builder.addTransition(CONFIGURED,CONFIG_MODIFY,CONFIGURING);
+            builder = builder.addTransition(CONFIGURED,CONFIG_SCALEOUT,CONFIGURING);
+            builder = builder.addTransition(CONFIGURED,CONFIG_RESTORE,CONFIGURING);
+            builder = builder.addTransition(CONFIGURED,HEALTHCHECK,TESTING);
+            builder = builder.addTransition(CONFIGURED,BACKUP,BACKING_UP);
+            builder = builder.addTransition(CONFIGURED,SNAPSHOT,SNAPSHOTTING);
+            builder = builder.addTransition(CONFIGURED,SOFTWARE_UPLOAD,SOFTWARE_UPLOADING);
+            builder = builder.addTransition(CONFIGURED,LIVE_UPGRADE,UPGRADING);
+            builder = builder.addTransition(CONFIGURED,ROLLBACK,ROLLBACKING);
+            builder = builder.addTransition(CONFIGURED,SYNC,CONFIGURED);
+            builder = builder.addTransition(CONFIGURED,AUDIT,CONFIGURED);
+            builder = builder.addTransition(CONFIGURED,MIGRATE,MIGRATING);
+            builder = builder.addTransition(CONFIGURED,EVACUATE,EVACUATING);
+            builder = builder.addTransition(CONFIGURED,LOCK,CONFIGURED);
+            builder = builder.addTransition(CONFIGURED,UNLOCK,CONFIGURED);
+            builder = builder.addTransition(CONFIGURED,CHECKLOCK,CONFIGURED);
+            builder = builder.addTransition(CONFIGURED,CONFIG_BACKUP,CONFIGURED);
+            builder = builder.addTransition(CONFIGURED,CONFIG_BACKUP_DELETE,CONFIGURED);
+            builder = builder.addTransition(CONFIGURED,CONFIG_EXPORT,CONFIGURED);
+            builder = builder.addTransition(CONFIGURED,STOP_APPLICATION,STOPPING);
+
+            builder = builder.addTransition(TESTED,CONFIGURE,CONFIGURING);
+            builder = builder.addTransition(TESTED,TEST,TESTING);
+            builder = builder.addTransition(TESTED,START,STARTING);
+            builder = builder.addTransition(TESTED,TERMINATE,TERMINATING);
+            builder = builder.addTransition(TESTED,RESTART,RESTARTING);
+            builder = builder.addTransition(TESTED,REBUILD,REBUILDING);
+            builder = builder.addTransition(TESTED,STOP,STOPPING);
+            builder = builder.addTransition(TESTED,CONFIG_MODIFY,CONFIGURING);
+            builder = builder.addTransition(TESTED,CONFIG_SCALEOUT,CONFIGURING);
+            builder = builder.addTransition(TESTED,CONFIG_RESTORE,CONFIGURING);
+            builder = builder.addTransition(TESTED,HEALTHCHECK,TESTING);
+            builder = builder.addTransition(TESTED,BACKUP,BACKING_UP);
+            builder = builder.addTransition(TESTED,SNAPSHOT,SNAPSHOTTING);
+            builder = builder.addTransition(TESTED,SOFTWARE_UPLOAD,SOFTWARE_UPLOADING);
+            builder = builder.addTransition(TESTED,LIVE_UPGRADE,UPGRADING);
+            builder = builder.addTransition(TESTED,ROLLBACK,ROLLBACKING);
+            builder = builder.addTransition(TESTED,SYNC,TESTED);
+            builder = builder.addTransition(TESTED,AUDIT,TESTED);
+            builder = builder.addTransition(TESTED,MIGRATE,MIGRATING);
+            builder = builder.addTransition(TESTED,EVACUATE,EVACUATING);
+            builder = builder.addTransition(TESTED,LOCK,TESTED);
+            builder = builder.addTransition(TESTED,UNLOCK,TESTED);
+            builder = builder.addTransition(TESTED,CHECKLOCK,TESTED);
+            builder = builder.addTransition(TESTED,CONFIG_BACKUP,TESTED);
+            builder = builder.addTransition(TESTED,CONFIG_BACKUP_DELETE,TESTED);
+            builder = builder.addTransition(TESTED,CONFIG_EXPORT,TESTED);
+            builder = builder.addTransition(TESTED,STOP_APPLICATION,STOPPING);
+
+            builder = builder.addTransition(RUNNING,CONFIGURE,CONFIGURING);
+            builder = builder.addTransition(RUNNING,TEST,TESTING);
+            builder = builder.addTransition(RUNNING,START,STARTING);
+            builder = builder.addTransition(RUNNING,TERMINATE,TERMINATING);
+            builder = builder.addTransition(RUNNING,RESTART,RESTARTING);
+            builder = builder.addTransition(RUNNING,REBUILD,REBUILDING);
+            builder = builder.addTransition(RUNNING,STOP,STOPPING);
+            builder = builder.addTransition(RUNNING,CONFIG_MODIFY,CONFIGURING);
+            builder = builder.addTransition(RUNNING,CONFIG_SCALEOUT,CONFIGURING);
+            builder = builder.addTransition(RUNNING,CONFIG_RESTORE,CONFIGURING);
+            builder = builder.addTransition(RUNNING,HEALTHCHECK,TESTING);
+            builder = builder.addTransition(RUNNING,BACKUP,BACKING_UP);
+            builder = builder.addTransition(RUNNING,SNAPSHOT,SNAPSHOTTING);
+            builder = builder.addTransition(RUNNING,SOFTWARE_UPLOAD,SOFTWARE_UPLOADING);
+            builder = builder.addTransition(RUNNING,LIVE_UPGRADE,UPGRADING);
+            builder = builder.addTransition(RUNNING,ROLLBACK,ROLLBACKING);
+            builder = builder.addTransition(RUNNING,SYNC,RUNNING);
+            builder = builder.addTransition(RUNNING,AUDIT,RUNNING);
+            builder = builder.addTransition(RUNNING,MIGRATE,MIGRATING);
+            builder = builder.addTransition(RUNNING,EVACUATE,EVACUATING);
+            builder = builder.addTransition(RUNNING,LOCK,RUNNING);
+            builder = builder.addTransition(RUNNING,UNLOCK,RUNNING);
+            builder = builder.addTransition(RUNNING,CHECKLOCK,RUNNING);
+            builder = builder.addTransition(RUNNING,CONFIG_BACKUP,RUNNING);
+            builder = builder.addTransition(RUNNING,CONFIG_BACKUP_DELETE,RUNNING);
+            builder = builder.addTransition(RUNNING,CONFIG_EXPORT,RUNNING);
+            builder = builder.addTransition(RUNNING,STOP_APPLICATION,STOPPING);
+
+            builder = builder.addTransition(ERROR,CONFIGURE,CONFIGURING);
+            builder = builder.addTransition(ERROR,TEST,TESTING);
+            builder = builder.addTransition(ERROR,START,STARTING);
+            builder = builder.addTransition(ERROR,TERMINATE,TERMINATING);
+            builder = builder.addTransition(ERROR,RESTART,RESTARTING);
+            builder = builder.addTransition(ERROR,REBUILD,REBUILDING);
+            builder = builder.addTransition(ERROR,STOP,STOPPING);
+            builder = builder.addTransition(ERROR,CONFIG_MODIFY,CONFIGURING);
+            builder = builder.addTransition(ERROR,CONFIG_SCALEOUT,CONFIGURING);
+            builder = builder.addTransition(ERROR,CONFIG_RESTORE,CONFIGURING);
+            builder = builder.addTransition(ERROR,HEALTHCHECK,TESTING);
+            builder = builder.addTransition(ERROR,BACKUP,BACKING_UP);
+            builder = builder.addTransition(ERROR,SNAPSHOT,SNAPSHOTTING);
+            builder = builder.addTransition(ERROR,SOFTWARE_UPLOAD,SOFTWARE_UPLOADING);
+            builder = builder.addTransition(ERROR,LIVE_UPGRADE,UPGRADING);
+            builder = builder.addTransition(ERROR,ROLLBACK,ROLLBACKING);
+            builder = builder.addTransition(ERROR,SYNC,ERROR);
+            builder = builder.addTransition(ERROR,AUDIT,ERROR);
+            builder = builder.addTransition(ERROR,MIGRATE,MIGRATING);
+            builder = builder.addTransition(ERROR,EVACUATE,EVACUATING);
+            builder = builder.addTransition(ERROR,LOCK,ERROR);
+            builder = builder.addTransition(ERROR,UNLOCK,ERROR);
+            builder = builder.addTransition(ERROR,CHECKLOCK,ERROR);
+            builder = builder.addTransition(ERROR,CONFIG_BACKUP,ERROR);
+            builder = builder.addTransition(ERROR,CONFIG_BACKUP_DELETE,ERROR);
+            builder = builder.addTransition(ERROR,CONFIG_EXPORT,ERROR);
+            builder = builder.addTransition(ERROR,STOP_APPLICATION,STOPPING);
+
+            builder = builder.addTransition(UNKNOWN,CONFIGURE,CONFIGURING);
+            builder = builder.addTransition(UNKNOWN,TEST,TESTING);
+            builder = builder.addTransition(UNKNOWN,START,STARTING);
+            builder = builder.addTransition(UNKNOWN,TERMINATE,TERMINATING);
+            builder = builder.addTransition(UNKNOWN,RESTART,RESTARTING);
+            builder = builder.addTransition(UNKNOWN,REBUILD,REBUILDING);
+            builder = builder.addTransition(UNKNOWN,STOP,STOPPING);
+            builder = builder.addTransition(UNKNOWN,CONFIG_MODIFY,CONFIGURING);
+            builder = builder.addTransition(UNKNOWN,CONFIG_SCALEOUT,CONFIGURING);
+            builder = builder.addTransition(UNKNOWN,CONFIG_RESTORE,CONFIGURING);
+            builder = builder.addTransition(UNKNOWN,HEALTHCHECK,TESTING);
+            builder = builder.addTransition(UNKNOWN,BACKUP,BACKING_UP);
+            builder = builder.addTransition(UNKNOWN,SNAPSHOT,SNAPSHOTTING);
+            builder = builder.addTransition(UNKNOWN,SOFTWARE_UPLOAD,SOFTWARE_UPLOADING);
+            builder = builder.addTransition(UNKNOWN,LIVE_UPGRADE,UPGRADING);
+            builder = builder.addTransition(UNKNOWN,ROLLBACK,ROLLBACKING);
+            builder = builder.addTransition(UNKNOWN,SYNC,UNKNOWN);
+            builder = builder.addTransition(UNKNOWN,AUDIT,UNKNOWN);
+            builder = builder.addTransition(UNKNOWN,MIGRATE,MIGRATING);
+            builder = builder.addTransition(UNKNOWN,EVACUATE,EVACUATING);
+            builder = builder.addTransition(UNKNOWN,LOCK,UNKNOWN);
+            builder = builder.addTransition(UNKNOWN,UNLOCK,UNKNOWN);
+            builder = builder.addTransition(UNKNOWN,CHECKLOCK,UNKNOWN);
+            builder = builder.addTransition(UNKNOWN,CONFIG_BACKUP,UNKNOWN);
+            builder = builder.addTransition(UNKNOWN,CONFIG_BACKUP_DELETE,UNKNOWN);
+            builder = builder.addTransition(UNKNOWN,CONFIG_EXPORT,UNKNOWN);
+            builder = builder.addTransition(UNKNOWN,STOP_APPLICATION,STOPPING);
+
+            builder = builder.addTransition(STOPPED,CONFIGURE,CONFIGURING);
+            builder = builder.addTransition(STOPPED,TEST,TESTING);
+            builder = builder.addTransition(STOPPED,START,STARTING);
+            builder = builder.addTransition(STOPPED,TERMINATE,TERMINATING);
+            builder = builder.addTransition(STOPPED,RESTART,RESTARTING);
+            builder = builder.addTransition(STOPPED,REBUILD,REBUILDING);
+            builder = builder.addTransition(STOPPED,CONFIG_MODIFY,CONFIGURING);
+            builder = builder.addTransition(STOPPED,CONFIG_SCALEOUT,CONFIGURING);
+            builder = builder.addTransition(STOPPED,CONFIG_RESTORE,CONFIGURING);
+            builder = builder.addTransition(STOPPED,HEALTHCHECK,TESTING);
+            builder = builder.addTransition(STOPPED,BACKUP,BACKING_UP);
+            builder = builder.addTransition(STOPPED,SNAPSHOT,SNAPSHOTTING);
+            builder = builder.addTransition(STOPPED,SOFTWARE_UPLOAD,SOFTWARE_UPLOADING);
+            builder = builder.addTransition(STOPPED,LIVE_UPGRADE,UPGRADING);
+            builder = builder.addTransition(STOPPED,ROLLBACK,ROLLBACKING);
+            builder = builder.addTransition(STOPPED,MIGRATE,MIGRATING);
+            builder = builder.addTransition(STOPPED,EVACUATE,EVACUATING);
+            builder = builder.addTransition(STOPPED,LOCK,STOPPED);
+            builder = builder.addTransition(STOPPED,UNLOCK,STOPPED);
+            builder = builder.addTransition(STOPPED,CHECKLOCK,STOPPED);
+
+            builder = builder.addTransition(CONFIGURING,SUCCESS,CONFIGURED);
+            builder = builder.addTransition(CONFIGURING,FAILURE,ERROR);
+
+            builder = builder.addTransition(TESTING,SUCCESS,TESTED);
+            builder = builder.addTransition(TESTING,FAILURE,ERROR);
+
+            builder = builder.addTransition(RESTARTING,SUCCESS,RUNNING);
+            builder = builder.addTransition(RESTARTING,FAILURE,ERROR);
+
+            builder = builder.addTransition(STARTING,SUCCESS,RUNNING);
+            builder = builder.addTransition(STARTING,FAILURE,ERROR);
+
+            builder = builder.addTransition(TERMINATING,SUCCESS,NOT_INSTANTIATED);
+            builder = builder.addTransition(TERMINATING,FAILURE,ERROR);
+
+            builder = builder.addTransition(REBUILDING,SUCCESS,RUNNING);
+            builder = builder.addTransition(REBUILDING,FAILURE,ERROR);
+
+            builder = builder.addTransition(STOPPING,SUCCESS,STOPPED);
+            builder = builder.addTransition(STOPPING,FAILURE,ERROR);
+
+            builder = builder.addTransition(BACKING_UP,SUCCESS,RUNNING);
+            builder = builder.addTransition(BACKING_UP,FAILURE,ERROR);
+
+            builder = builder.addTransition(SNAPSHOTTING,SUCCESS,RUNNING);
+            builder = builder.addTransition(SNAPSHOTTING,FAILURE,ERROR);
+
+            builder = builder.addTransition(SOFTWARE_UPLOADING,SUCCESS,RUNNING);
+            builder = builder.addTransition(SOFTWARE_UPLOADING,FAILURE,ERROR);
+
+            builder = builder.addTransition(UPGRADING,SUCCESS,RUNNING);
+            builder = builder.addTransition(UPGRADING,FAILURE,ERROR);
+
+            builder = builder.addTransition(ROLLBACKING,SUCCESS,RUNNING);
+            builder = builder.addTransition(ROLLBACKING,FAILURE,ERROR);
+
+            builder = builder.addTransition(MIGRATING,SUCCESS,RUNNING);
+            builder = builder.addTransition(MIGRATING,FAILURE,ERROR);
+
+            builder = builder.addTransition(EVACUATING,SUCCESS,RUNNING);
+            builder = builder.addTransition(EVACUATING,FAILURE,ERROR);
+
+
+            builder = builder.addTransition(CONFIGURED,START_APPLICATION,STARTING);
+            builder = builder.addTransition(TESTED,START_APPLICATION,STARTING);
+            builder = builder.addTransition(ERROR,START_APPLICATION,STARTING);
+            builder = builder.addTransition(UNKNOWN,START_APPLICATION,STARTING);
+            builder = builder.addTransition(RUNNING,START_APPLICATION,STARTING);
+
+            return builder.build();
+
+        }
+    }
+}