2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017-2018 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 * ============LICENSE_END=========================================================
24 package org.onap.appc.statemachine.impl.readers;
26 import org.onap.appc.statemachine.StateMetaDataReader;
27 import org.onap.appc.statemachine.objects.Event;
28 import org.onap.appc.statemachine.objects.State;
29 import org.onap.appc.statemachine.objects.StateMachineMetadata;
32 * Reader for APPC OAM MetaData
34 public class AppcOamMetaDataReader implements StateMetaDataReader {
39 public enum AppcOperation {
47 public StateMachineMetadata readMetadata() {
48 State notInstantiated = new State(AppcOamStates.NotInstantiated.toString());
49 State instantiated = new State(AppcOamStates.Instantiated.toString());
50 State restarting = new State(AppcOamStates.Restarting.toString());
51 State starting = new State(AppcOamStates.Starting.toString());
52 State started = new State(AppcOamStates.Started.toString());
53 State enteringMaintenanceMode = new State(AppcOamStates.EnteringMaintenanceMode.toString());
54 State maintenanceMode = new State(AppcOamStates.MaintenanceMode.toString());
55 State error = new State(AppcOamStates.Error.toString());
56 State unknown = new State(AppcOamStates.Unknown.toString());
57 State stopping = new State(AppcOamStates.Stopping.toString());
58 State stopped = new State(AppcOamStates.Stopped.toString());
60 Event start = new Event(AppcOperation.Start.toString());
61 Event stop = new Event(AppcOperation.Stop.toString());
62 Event maintenanceModeEvent = new Event(AppcOperation.MaintenanceMode.toString());
63 Event restart = new Event(AppcOperation.Restart.toString());
65 StateMachineMetadata.StateMachineMetadataBuilder builder = new StateMachineMetadata
66 .StateMachineMetadataBuilder();
68 builder = builder.addState(notInstantiated);
69 builder = builder.addState(instantiated);
70 builder = builder.addState(starting);
71 builder = builder.addState(started);
72 builder = builder.addState(error);
73 builder = builder.addState(unknown);
74 builder = builder.addState(stopping);
75 builder = builder.addState(stopped);
76 builder = builder.addState(enteringMaintenanceMode);
77 builder = builder.addState(maintenanceMode);
78 builder = builder.addState(restarting);
80 builder = builder.addEvent(start);
81 builder = builder.addEvent(stop);
82 builder = builder.addEvent(restart);
83 builder = builder.addEvent(maintenanceModeEvent);
87 * param 1: current state; param 2: received command/request; param 3: new transition state
90 builder = builder.addTransition(stopped, start, starting);
91 builder = builder.addTransition(maintenanceMode, start, starting);
92 builder = builder.addTransition(error, start, starting);
94 builder = builder.addTransition(started, stop, stopping);
95 builder = builder.addTransition(starting, stop, stopping);
96 builder = builder.addTransition(enteringMaintenanceMode, stop, stopping);
97 builder = builder.addTransition(maintenanceMode, stop, stopping);
98 builder = builder.addTransition(error, stop, stopping);
100 builder = builder.addTransition(
101 started, maintenanceModeEvent, enteringMaintenanceMode);
103 builder = builder.addTransition(stopped, restart, restarting);
104 builder = builder.addTransition(starting, restart, restarting);
105 builder = builder.addTransition(started, restart, restarting);
106 builder = builder.addTransition(enteringMaintenanceMode, restart, restarting);
107 builder = builder.addTransition(maintenanceMode, restart, restarting);
108 builder = builder.addTransition(error, restart, restarting);
110 return builder.build();