| package net.onrc.onos.intent; |
| |
| import net.onrc.onos.ofcontroller.networkgraph.Path; |
| |
| /** |
| * @author Toshio Koide (t-koide@onlab.us) |
| */ |
| public class PathIntent extends Intent { |
| protected Path path; |
| protected double bandwidth; |
| protected Intent parentIntent; |
| |
| public static String createFirstId(String parentId) { |
| return String.format("%s___0", parentId); |
| } |
| |
| public static String createNextId(String currentId) { |
| String parts[] = currentId.split("___"); |
| return String.format("%s___%d", parts[0], Long.valueOf(parts[1])+1); |
| } |
| |
| /** |
| * Default constructor for Kryo deserialization |
| */ |
| protected PathIntent() { |
| } |
| |
| /** |
| * |
| * @param graph |
| * @param path |
| * @param bandwidth bandwidth which should be allocated for the path. |
| * If 0, no intent for bandwidth allocation (best effort). |
| * @param parentIntent parent intent. If null, this is root intent. |
| * @param id |
| */ |
| public PathIntent(String id, Path path, double bandwidth, Intent parentIntent) { |
| super(id); |
| this.path = path; |
| this.bandwidth = bandwidth; |
| this.parentIntent = parentIntent; |
| } |
| |
| public double getBandwidth() { |
| return bandwidth; |
| } |
| |
| public Path getPath() { |
| return path; |
| } |
| |
| public Intent getParentIntent() { |
| return parentIntent; |
| } |
| |
| @Override |
| public String toString() { |
| return String.format("%s, %s, %s", getId(), getState(), getPath()); |
| } |
| } |