2  * ============LICENSE_START=======================================================
 
   4  * ================================================================================
 
   5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
 
   6  * ================================================================================
 
   7  * Copyright (C) 2017 Amdocs
 
   8  * =============================================================================
 
   9  * Licensed under the Apache License, Version 2.0 (the "License");
 
  10  * you may not use this file except in compliance with the License.
 
  11  * You may obtain a copy of the License at
 
  13  *      http://www.apache.org/licenses/LICENSE-2.0
 
  15  * Unless required by applicable law or agreed to in writing, software
 
  16  * distributed under the License is distributed on an "AS IS" BASIS,
 
  17  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
  18  * See the License for the specific language governing permissions and
 
  19  * limitations under the License.
 
  21  * ECOMP is a trademark and service mark of AT&T Intellectual Property.
 
  22  * ============LICENSE_END=========================================================
 
  25 package org.onap.appc.statemachine.impl.readers;
 
  27 import org.onap.appc.statemachine.StateMetaDataReader;
 
  28 import org.onap.appc.statemachine.objects.Event;
 
  29 import org.onap.appc.statemachine.objects.State;
 
  30 import org.onap.appc.statemachine.objects.StateMachineMetadata;
 
  33  * Reader for APPC OAM MetaData
 
  35 public class AppcOamMetaDataReader implements StateMetaDataReader {
 
  40     public enum AppcOperation {
 
  48     public StateMachineMetadata readMetadata() {
 
  49         State notInstantiated = new State(AppcOamStates.NotInstantiated.toString());
 
  50         State instantiated = new State(AppcOamStates.Instantiated.toString());
 
  51         State restarting = new State(AppcOamStates.Restarting.toString());
 
  52         State starting = new State(AppcOamStates.Starting.toString());
 
  53         State started = new State(AppcOamStates.Started.toString());
 
  54         State enteringMaintenanceMode = new State(AppcOamStates.EnteringMaintenanceMode.toString());
 
  55         State maintenanceMode = new State(AppcOamStates.MaintenanceMode.toString());
 
  56         State error = new State(AppcOamStates.Error.toString());
 
  57         State unknown = new State(AppcOamStates.Unknown.toString());
 
  58         State stopping = new State(AppcOamStates.Stopping.toString());
 
  59         State stopped = new State(AppcOamStates.Stopped.toString());
 
  61         Event start = new Event(AppcOperation.Start.toString());
 
  62         Event stop = new Event(AppcOperation.Stop.toString());
 
  63         Event maintenanceModeEvent = new Event(AppcOperation.MaintenanceMode.toString());
 
  64         Event restart = new Event(AppcOperation.Restart.toString());
 
  66         StateMachineMetadata.StateMachineMetadataBuilder builder = new StateMachineMetadata
 
  67                 .StateMachineMetadataBuilder();
 
  69         builder = builder.addState(notInstantiated);
 
  70         builder = builder.addState(instantiated);
 
  71         builder = builder.addState(starting);
 
  72         builder = builder.addState(started);
 
  73         builder = builder.addState(error);
 
  74         builder = builder.addState(unknown);
 
  75         builder = builder.addState(stopping);
 
  76         builder = builder.addState(stopped);
 
  77         builder = builder.addState(enteringMaintenanceMode);
 
  78         builder = builder.addState(maintenanceMode);
 
  79         builder = builder.addState(restarting);
 
  81         builder = builder.addEvent(start);
 
  82         builder = builder.addEvent(stop);
 
  83         builder = builder.addEvent(restart);
 
  84         builder = builder.addEvent(maintenanceModeEvent);
 
  88          *  param 1: current state; param 2: received command/request; param 3: new transition state
 
  91         builder = builder.addTransition(stopped,                   start, starting);
 
  92         builder = builder.addTransition(maintenanceMode,          start, starting);
 
  93         builder = builder.addTransition(error,                     start, starting);
 
  95         builder = builder.addTransition(started,                   stop, stopping);
 
  96         builder = builder.addTransition(starting,                  stop, stopping);
 
  97         builder = builder.addTransition(enteringMaintenanceMode, stop, stopping);
 
  98         builder = builder.addTransition(maintenanceMode,          stop, stopping);
 
  99         builder = builder.addTransition(error,                     stop, stopping);
 
 101         builder = builder.addTransition(
 
 102                 started, maintenanceModeEvent, enteringMaintenanceMode);
 
 104         builder = builder.addTransition(stopped,                   restart, restarting);
 
 105         builder = builder.addTransition(starting,                  restart, restarting);
 
 106         builder = builder.addTransition(started,                   restart, restarting);
 
 107         builder = builder.addTransition(enteringMaintenanceMode, restart, restarting);
 
 108         builder = builder.addTransition(maintenanceMode,          restart, restarting);
 
 109         builder = builder.addTransition(error,                     restart, restarting);
 
 111         return builder.build();