diff options
Diffstat (limited to 'src/main/java/org/onap/a1pesimulator/data/cell/state')
6 files changed, 209 insertions, 0 deletions
diff --git a/src/main/java/org/onap/a1pesimulator/data/cell/state/CellStateEnum.java b/src/main/java/org/onap/a1pesimulator/data/cell/state/CellStateEnum.java new file mode 100644 index 0000000..a25156a --- /dev/null +++ b/src/main/java/org/onap/a1pesimulator/data/cell/state/CellStateEnum.java @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2021 Samsung Electronics + * 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 + */ + +package org.onap.a1pesimulator.data.cell.state; + +import com.fasterxml.jackson.annotation.JsonFormat; + +@JsonFormat(shape = JsonFormat.Shape.OBJECT) +public enum CellStateEnum { + + INACTIVE("INACTIVE"), ACTIVE("ACTIVE"), GOING_TO_SLEEP("GOING_TO_SLEEP"), SLEEPING("SLEEPING"); + + public final String value; + + CellStateEnum(String stateName) { + this.value = stateName; + } +} diff --git a/src/main/java/org/onap/a1pesimulator/data/cell/state/CellStateMachine.java b/src/main/java/org/onap/a1pesimulator/data/cell/state/CellStateMachine.java new file mode 100644 index 0000000..f3c7bf0 --- /dev/null +++ b/src/main/java/org/onap/a1pesimulator/data/cell/state/CellStateMachine.java @@ -0,0 +1,33 @@ +/* + * Copyright (C) 2021 Samsung Electronics + * 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 + */ + +package org.onap.a1pesimulator.data.cell.state; + +import org.onap.a1pesimulator.data.cell.CellDetails; + +public abstract class CellStateMachine { + + private CellStateEnum state; + + protected CellStateMachine(CellStateEnum state) { + this.state = state; + } + + public abstract void next(CellDetails cell); + + public abstract void prev(CellDetails cell); + + public CellStateEnum getState() { + return state; + } +} diff --git a/src/main/java/org/onap/a1pesimulator/data/cell/state/machine/ActiveState.java b/src/main/java/org/onap/a1pesimulator/data/cell/state/machine/ActiveState.java new file mode 100644 index 0000000..c7d600d --- /dev/null +++ b/src/main/java/org/onap/a1pesimulator/data/cell/state/machine/ActiveState.java @@ -0,0 +1,35 @@ +/* + * Copyright (C) 2021 Samsung Electronics + * 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 + */ + +package org.onap.a1pesimulator.data.cell.state.machine; + +import org.onap.a1pesimulator.data.cell.CellDetails; +import org.onap.a1pesimulator.data.cell.state.CellStateEnum; +import org.onap.a1pesimulator.data.cell.state.CellStateMachine; + +public class ActiveState extends CellStateMachine { + + public ActiveState() { + super(CellStateEnum.ACTIVE); + } + + @Override + public void next(CellDetails cell) { + cell.setCellStateMachine(new GoingToSleepingState()); + } + + @Override + public void prev(CellDetails cell) { + cell.setCellStateMachine(new InactiveState()); + } +} diff --git a/src/main/java/org/onap/a1pesimulator/data/cell/state/machine/GoingToSleepingState.java b/src/main/java/org/onap/a1pesimulator/data/cell/state/machine/GoingToSleepingState.java new file mode 100644 index 0000000..d4bdc48 --- /dev/null +++ b/src/main/java/org/onap/a1pesimulator/data/cell/state/machine/GoingToSleepingState.java @@ -0,0 +1,35 @@ +/* + * Copyright (C) 2021 Samsung Electronics + * 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 + */ + +package org.onap.a1pesimulator.data.cell.state.machine; + +import org.onap.a1pesimulator.data.cell.CellDetails; +import org.onap.a1pesimulator.data.cell.state.CellStateEnum; +import org.onap.a1pesimulator.data.cell.state.CellStateMachine; + +public class GoingToSleepingState extends CellStateMachine { + + public GoingToSleepingState() { + super(CellStateEnum.GOING_TO_SLEEP); + } + + @Override + public void next(CellDetails cell) { + cell.setCellStateMachine(new SleepingState()); + } + + @Override + public void prev(CellDetails cell) { + cell.setCellStateMachine(new InactiveState()); + } +} diff --git a/src/main/java/org/onap/a1pesimulator/data/cell/state/machine/InactiveState.java b/src/main/java/org/onap/a1pesimulator/data/cell/state/machine/InactiveState.java new file mode 100644 index 0000000..e04d5f7 --- /dev/null +++ b/src/main/java/org/onap/a1pesimulator/data/cell/state/machine/InactiveState.java @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 Samsung Electronics + * 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 + */ + +package org.onap.a1pesimulator.data.cell.state.machine; + +import org.onap.a1pesimulator.data.cell.CellDetails; +import org.onap.a1pesimulator.data.cell.state.CellStateEnum; +import org.onap.a1pesimulator.data.cell.state.CellStateMachine; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class InactiveState extends CellStateMachine { + + private static final Logger log = LoggerFactory.getLogger(InactiveState.class); + + public InactiveState() { + super(CellStateEnum.INACTIVE); + } + + @Override + public void next(CellDetails cell) { + cell.setCellStateMachine(new ActiveState()); + } + + @Override + public void prev(CellDetails cell) { + log.info("YOU ARE IN THE INACTIVE STATE, PREVIOUS STATE ISN'T AVAILABLE"); + } +} diff --git a/src/main/java/org/onap/a1pesimulator/data/cell/state/machine/SleepingState.java b/src/main/java/org/onap/a1pesimulator/data/cell/state/machine/SleepingState.java new file mode 100644 index 0000000..7de3230 --- /dev/null +++ b/src/main/java/org/onap/a1pesimulator/data/cell/state/machine/SleepingState.java @@ -0,0 +1,39 @@ +/* + * Copyright (C) 2021 Samsung Electronics + * 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 + */ + +package org.onap.a1pesimulator.data.cell.state.machine; + +import org.onap.a1pesimulator.data.cell.CellDetails; +import org.onap.a1pesimulator.data.cell.state.CellStateEnum; +import org.onap.a1pesimulator.data.cell.state.CellStateMachine; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class SleepingState extends CellStateMachine { + + private static final Logger log = LoggerFactory.getLogger(SleepingState.class); + + public SleepingState() { + super(CellStateEnum.SLEEPING); + } + + @Override + public void next(CellDetails cell) { + log.info("YOU ARE IN THE SLEEPING STATE, NEXT STATE ISN'T AVAILABLE"); + } + + @Override + public void prev(CellDetails cell) { + cell.setCellStateMachine(new InactiveState()); + } +} |