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();