blob: f05e9d0b1c26c5d3b5ee42bbfff0d5c842bad5f6 [file] [log] [blame]
Pavlin Radoslavovdd08e8c2014-08-14 11:02:57 -07001package net.onrc.onos.core.topology;
2
3import net.onrc.onos.api.batchoperation.BatchOperation;
4import net.onrc.onos.api.batchoperation.BatchOperationEntry;
5
6/**
7 * A list of topology operations.
8 */
9public class TopologyBatchOperation extends
Yuta HIGUCHI7c28ebb2014-08-19 00:29:30 -070010 BatchOperation<BatchOperationEntry<TopologyBatchOperation.Operator, TopologyBatchTarget>> {
11
Pavlin Radoslavovdd08e8c2014-08-14 11:02:57 -070012 /**
13 * The topology operations' operators.
14 */
15 public enum Operator {
16 /**
17 * Adds a new topology event.
18 */
19 ADD,
20
21 /**
22 * Removes an existing topology event.
23 */
24 REMOVE,
25 }
26
27 /**
28 * Adds an add-TopologyEvent operation.
29 *
30 * @param topologyEvent the Topology Event to be added
Yuta HIGUCHI7c28ebb2014-08-19 00:29:30 -070031 * @return the TopologyBatchOperation object
Pavlin Radoslavovdd08e8c2014-08-14 11:02:57 -070032 */
33 public TopologyBatchOperation addAddTopologyOperation(
34 TopologyEvent topologyEvent) {
Yuta HIGUCHI7c28ebb2014-08-19 00:29:30 -070035 return (TopologyBatchOperation) addOperation(
36 new BatchOperationEntry<Operator, TopologyBatchTarget>(
37 Operator.ADD, topologyEvent));
Pavlin Radoslavovdd08e8c2014-08-14 11:02:57 -070038 }
39
40 /**
41 * Adds a remove-TopologyEvent operation.
42 *
43 * @param topologyEvent the Topology Event to be removed
Yuta HIGUCHI7c28ebb2014-08-19 00:29:30 -070044 * @return the TopologyBatchOperation object
Pavlin Radoslavovdd08e8c2014-08-14 11:02:57 -070045 */
46 public TopologyBatchOperation addRemoveTopologyOperation(
47 TopologyEvent topologyEvent) {
Yuta HIGUCHI7c28ebb2014-08-19 00:29:30 -070048 return (TopologyBatchOperation) addOperation(
49 new BatchOperationEntry<Operator, TopologyBatchTarget>(
50 Operator.REMOVE, topologyEvent));
Pavlin Radoslavovdd08e8c2014-08-14 11:02:57 -070051 }
52}