blob: 7fcb2e65799b5c1f0b340137a4b4643b3ab90204 [file] [log] [blame]
package net.floodlightcontroller.util;
import net.floodlightcontroller.util.CallerId;
import net.floodlightcontroller.util.DataPath;
import net.floodlightcontroller.util.FlowId;
import org.codehaus.jackson.annotate.JsonProperty;
/**
* The class representing the Flow Path.
*/
public class FlowPath implements Comparable<FlowPath> {
private FlowId flowId; // The Flow ID
private CallerId installerId; // The Caller ID of the path installer
private DataPath dataPath; // The data path
/**
* Default constructor.
*/
public FlowPath() {
dataPath = new DataPath();
}
/**
* Get the flow path Flow ID.
*
* @return the flow path Flow ID.
*/
@JsonProperty("flowId")
public FlowId flowId() { return flowId; }
/**
* Set the flow path Flow ID.
*
* @param flowId the flow path Flow ID to set.
*/
@JsonProperty("flowId")
public void setFlowId(FlowId flowId) {
this.flowId = flowId;
}
/**
* Get the Caller ID of the flow path installer.
*
* @return the Caller ID of the flow path installer.
*/
@JsonProperty("installerId")
public CallerId installerId() { return installerId; }
/**
* Set the Caller ID of the flow path installer.
*
* @param installerId the Caller ID of the flow path installer.
*/
@JsonProperty("installerId")
public void setInstallerId(CallerId installerId) {
this.installerId = installerId;
}
/**
* Get the flow path's data path.
*
* @return the flow path's data path.
*/
@JsonProperty("dataPath")
public DataPath dataPath() { return dataPath; }
/**
* Set the flow path's data path.
*
* @param dataPath the flow path's data path to set.
*/
@JsonProperty("dataPath")
public void setDataPath(DataPath dataPath) {
this.dataPath = dataPath;
}
/**
* Convert the flow path to a string.
*
* The string has the following form:
* [flowId=XXX installerId=XXX dataPath=XXX]
*
* @return the flow path as a string.
*/
@Override
public String toString() {
String ret = "[flowId=" + this.flowId.toString();
ret += " installerId=" + this.installerId.toString();
ret += " dataPath=" + this.dataPath.toString();
ret += "]";
return ret;
}
/**
* CompareTo method to order flowPath by Id
*/
@Override
public int compareTo(FlowPath f) {
return (int) (this.flowId.value() - f.flowId.value());
}
}