diff options
author | Pamela Dragosh <pdragosh@research.att.com> | 2020-01-13 13:33:49 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@onap.org> | 2020-01-13 13:33:49 +0000 |
commit | 57fa6609eaac31098f468fde24a9300a38fca7ef (patch) | |
tree | d2e01258b10721b658628c42931844f66a088d56 /controlloop/m2/adapters/src | |
parent | 3a992ae9cbff19d8e8838390d95ab33615560636 (diff) | |
parent | 3e05cb41202145e113853392e9837abf3f6ec12c (diff) |
Merge "Add m2 model, including the LCM application"
Diffstat (limited to 'controlloop/m2/adapters/src')
2 files changed, 115 insertions, 0 deletions
diff --git a/controlloop/m2/adapters/src/main/java/org/onap/policy/m2/adapters/VirtualOnsetAdapter.java b/controlloop/m2/adapters/src/main/java/org/onap/policy/m2/adapters/VirtualOnsetAdapter.java new file mode 100644 index 000000000..e9ca1164d --- /dev/null +++ b/controlloop/m2/adapters/src/main/java/org/onap/policy/m2/adapters/VirtualOnsetAdapter.java @@ -0,0 +1,62 @@ +/*- + * ============LICENSE_START======================================================= + * m2/adapters + * ================================================================================ + * Copyright (C) 2020 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * 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. + * ============LICENSE_END========================================================= + */ + +package org.onap.policy.m2.adapters; + +import java.io.Serializable; + +import org.onap.policy.controlloop.ControlLoopEvent; +import org.onap.policy.controlloop.ControlLoopNotification; +import org.onap.policy.controlloop.VirtualControlLoopEvent; +import org.onap.policy.controlloop.VirtualControlLoopNotification; + +import org.onap.policy.m2.base.OnsetAdapter; + +public class VirtualOnsetAdapter extends OnsetAdapter implements Serializable { + private static final long serialVersionUID = 1L; + + private static VirtualOnsetAdapter instance = new VirtualOnsetAdapter(); + + /** + * This method is called to register the 'VirtualOnsetAdapter' instance + * under the 'VirtualControlLoopEvent' class. This method called in the + * static initialization code of the 'Actor' classes that use this + * adapter -- namely, 'AppcLcmActor'. + */ + public static void register() { + OnsetAdapter.register(VirtualControlLoopEvent.class, instance); + } + + /** + * This method overrides the associated 'OnsetAdapter' method. + */ + @Override + public ControlLoopNotification createNotification(ControlLoopEvent event) { + if (event instanceof VirtualControlLoopEvent) { + return new VirtualControlLoopNotification((VirtualControlLoopEvent)event); + } + + // Right now, the onset event from the transaction is used to locate + // the adapter. It is expected that the 'event' passed here will + // be of the same class, but that isn't always guaranteed. If this + // is not the case, the appropriate adapter is located in this way. + return OnsetAdapter.get(event).createNotification(event); + } +} diff --git a/controlloop/m2/adapters/src/test/java/org/onap/policy/m2/adapters/VirtualOnsetAdapterTest.java b/controlloop/m2/adapters/src/test/java/org/onap/policy/m2/adapters/VirtualOnsetAdapterTest.java new file mode 100644 index 000000000..0ecbda672 --- /dev/null +++ b/controlloop/m2/adapters/src/test/java/org/onap/policy/m2/adapters/VirtualOnsetAdapterTest.java @@ -0,0 +1,53 @@ +/*- + * ============LICENSE_START======================================================= + * adapters + * ================================================================================ + * Copyright (C) 2020 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * 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. + * ============LICENSE_END========================================================= + */ + +package org.onap.policy.m2.adapters; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +import org.junit.Test; + +import org.onap.policy.controlloop.ControlLoopEvent; +import org.onap.policy.controlloop.ControlLoopNotification; +import org.onap.policy.controlloop.VirtualControlLoopEvent; +import org.onap.policy.controlloop.VirtualControlLoopNotification; +import org.onap.policy.m2.base.OnsetAdapter; + +public class VirtualOnsetAdapterTest { + + @Test + public void test() { + VirtualOnsetAdapter.register(); + VirtualControlLoopEvent virtualControlLoopEvent = new VirtualControlLoopEvent(); + VirtualOnsetAdapter virtualOnsetAdapter = + VirtualOnsetAdapter.class.cast(OnsetAdapter.get(virtualControlLoopEvent)); + assertTrue(virtualOnsetAdapter != null); + + ControlLoopNotification notification = virtualOnsetAdapter.createNotification(virtualControlLoopEvent); + assertTrue(notification != null); + // we want an exact class match, so 'instanceOf' is not being used + assertEquals(VirtualControlLoopNotification.class, notification.getClass()); + + ControlLoopEvent controlLoopEvent = new ControlLoopEvent() {}; + notification = virtualOnsetAdapter.createNotification(controlLoopEvent); + assertTrue(notification != null); + } +} |