blob: f8a25cb1c1b6b56a08a5bfd2ca9647cb4300b7de [file] [log] [blame]
Madan Jampani117aaae2014-10-23 10:04:05 -07001package org.onlab.onos.net.flow;
2
3import java.util.Collections;
4import java.util.List;
5
6import org.onlab.onos.net.flow.FlowRuleBatchEntry.FlowRuleOperation;
7
8import com.google.common.collect.Lists;
9
10public class FlowRuleBatchRequest {
11
Yuta HIGUCHI9def0472014-10-23 15:51:10 -070012 private final int batchId;
Madan Jampani117aaae2014-10-23 10:04:05 -070013 private final List<FlowEntry> toAdd;
14 private final List<FlowEntry> toRemove;
15
Yuta HIGUCHI92891d12014-10-27 20:04:38 -070016 public FlowRuleBatchRequest(int batchId, List<? extends FlowEntry> toAdd, List<? extends FlowEntry> toRemove) {
Yuta HIGUCHI9def0472014-10-23 15:51:10 -070017 this.batchId = batchId;
Madan Jampani117aaae2014-10-23 10:04:05 -070018 this.toAdd = Collections.unmodifiableList(toAdd);
19 this.toRemove = Collections.unmodifiableList(toRemove);
20 }
21
22 public List<FlowEntry> toAdd() {
23 return toAdd;
24 }
25
26 public List<FlowEntry> toRemove() {
27 return toRemove;
28 }
29
30 public FlowRuleBatchOperation asBatchOperation() {
31 List<FlowRuleBatchEntry> entries = Lists.newArrayList();
32 for (FlowEntry e : toAdd) {
33 entries.add(new FlowRuleBatchEntry(FlowRuleOperation.ADD, e));
34 }
35 for (FlowEntry e : toRemove) {
36 entries.add(new FlowRuleBatchEntry(FlowRuleOperation.REMOVE, e));
37 }
38 return new FlowRuleBatchOperation(entries);
39 }
Yuta HIGUCHI9def0472014-10-23 15:51:10 -070040
41 public int batchId() {
42 return batchId;
43 }
Madan Jampani117aaae2014-10-23 10:04:05 -070044}