diff options
author | Sonsino, Ofir (os0695) <os0695@intl.att.com> | 2018-07-10 14:20:54 +0300 |
---|---|---|
committer | Sonsino, Ofir (os0695) <os0695@intl.att.com> | 2018-07-10 14:20:54 +0300 |
commit | c72d565bb58226b20625b2bce5f0019046bee649 (patch) | |
tree | 8658e49595705b02e47ddc14afa20d6bb7123547 /vid-app-common/src/main/java/org/onap/vid/job/JobCommand.java | |
parent | ef8a6b47847012fd59ea20da21d8d3d7c4a301ed (diff) |
Merge 1806 code of vid-common
Change-Id: I75d52abed4a24dfe3827d79edc4a2938726aa87a
Issue-ID: VID-208
Signed-off-by: Sonsino, Ofir (os0695) <os0695@intl.att.com>
Diffstat (limited to 'vid-app-common/src/main/java/org/onap/vid/job/JobCommand.java')
-rw-r--r-- | vid-app-common/src/main/java/org/onap/vid/job/JobCommand.java | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/vid-app-common/src/main/java/org/onap/vid/job/JobCommand.java b/vid-app-common/src/main/java/org/onap/vid/job/JobCommand.java new file mode 100644 index 000000000..c32645cad --- /dev/null +++ b/vid-app-common/src/main/java/org/onap/vid/job/JobCommand.java @@ -0,0 +1,41 @@ +package org.onap.vid.job; + +import java.util.Map; +import java.util.UUID; + + +/** + * A callable instance, with serializable characteristics. + * Represents a step in a chain of steps, which eventualy + * resides into a packing Job. + */ +public interface JobCommand { + + /** + * Initialize the command state + * @param jobUuid Parent job's uuid + * @param data An input to be set into the command. Each implementation may expect different keys in the map. + * @return Returns itself + */ + default JobCommand init(UUID jobUuid, Map<String, Object> data) { + return this; + } + + /** + * @return Returns the inner state of the command. This state, once passed into init(), should + * bring the command back to it's state. + */ + Map<String, Object> getData(); + + /** + * Execute the command represented by this instance. Assumes the instance is already init(). + * @return A NextCommand containing the next command in chain of commands, or null if chain + * should be terminated. Might return itself (packed in a NextCommand). + */ + NextCommand call(); + + default JobType getType() { + return JobType.jobTypeOf(this.getClass()); + } + +} |