blob: eb363a7c35d89c92623255d33a503e3ed0c0e577 [file] [log] [blame]
package net.floodlightcontroller.core;
import org.codehaus.jackson.annotate.JsonIgnore;
import org.codehaus.jackson.annotate.JsonProperty;
import com.tinkerpop.blueprints.Direction;
import com.tinkerpop.frames.Adjacency;
import com.tinkerpop.frames.Incidence;
import com.tinkerpop.frames.Property;
import com.tinkerpop.frames.annotations.gremlin.GremlinGroovy;
import com.tinkerpop.frames.VertexFrame;
public interface INetMapTopologyObjects {
public interface IBaseObject extends VertexFrame {
@JsonProperty("state")
@Property("state")
public String getState();
@Property("state")
public void setState(final String state);
@JsonIgnore
@Property("type")
public String getType();
@Property("type")
public void setType(final String type);
}
public interface ISwitchObject extends IBaseObject{
@JsonProperty("dpid")
@Property("dpid")
public String getDPID();
@Property("dpid")
public void setDPID(String dpid);
@JsonProperty("ports")
@Adjacency(label="on")
public Iterable<IPortObject> getPorts();
@Adjacency(label="on")
public void addPort(final IPortObject port);
@Adjacency(label="on")
public void removePort(final IPortObject port);
@JsonIgnore
@GremlinGroovy("_().out('on').out('host')")
public Iterable<IDeviceObject> getDevices();
}
public interface IPortObject extends IBaseObject{
@JsonProperty("number")
@Property("number")
public Short getNumber();
@JsonProperty("desc")
@Property("desc")
public String getDesc();
@JsonIgnore
@Incidence(label="on",direction = Direction.IN)
public ISwitchObject getSwitch();
@JsonIgnore
@Adjacency(label="host")
public Iterable<IDeviceObject> getDevices();
@Adjacency(label="host")
public void setDevice(final IDeviceObject device);
@Adjacency(label="host")
public void removeDevice(final IDeviceObject device);
// @JsonIgnore
// @Adjacency(label="link")
// public Iterable<ILinkObject> getLinks();
}
public interface IDeviceObject extends IBaseObject {
@JsonProperty("mac")
@Property("dl_addr")
public String getMACAddress();
@Property("dl_addr")
public void setMACAddress();
@JsonProperty("ipv4")
@Property("nw_addr")
public String getIPAddress();
@Property("dl_addr")
public void setIPAddress();
@JsonIgnore
@Incidence(label="host",direction = Direction.IN)
public IPortObject getPort();
@JsonIgnore
@GremlinGroovy("_().in('host').in('on')")
public ISwitchObject getSwitch();
public interface AttachmentPoint {
@GremlinGroovy("_().in('host').in('on').dpid")
public String getDPID();
@GremlinGroovy("_().in('host').number")
public Short getPortNumber();
}
}
}