/*
* GraphElements.java
*
* Created on March 21, 2007, 9:57 AM
*
* Copyright March 21, 2007 Grotto Networking
*
*/
package Samples.MouseMenu;
import org.apache.commons.collections15.Factory;
/**
*
* @author Dr. Greg M. Bernstein
*/
public class GraphElements {
/** Creates a new instance of GraphElements */
public GraphElements() {
}
public static class MyVertex {
private String name;
private boolean packetSwitchCapable;
private boolean tdmSwitchCapable;
public MyVertex(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public boolean isPacketSwitchCapable() {
return packetSwitchCapable;
}
public void setPacketSwitchCapable(boolean packetSwitchCapable) {
this.packetSwitchCapable = packetSwitchCapable;
}
public boolean isTdmSwitchCapable() {
return tdmSwitchCapable;
}
public void setTdmSwitchCapable(boolean tdmSwitchCapable) {
this.tdmSwitchCapable = tdmSwitchCapable;
}
public String toString() {
return name;
}
}
public static class MyEdge {
private double capacity;
private double weight;
private String name;
public MyEdge(String name) {
this.name = name;
}
public double getCapacity() {
return capacity;
}
public void setCapacity(double capacity) {
this.capacity = capacity;
}
public double getWeight() {
return weight;
}
public void setWeight(double weight) {
this.weight = weight;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String toString() {
return name;
}
}
// Single factory for creating Vertices...
public static class MyVertexFactory implements Factory<MyVertex> {
private static int nodeCount = 0;
private static boolean defaultPSC = false;
private static boolean defaultTDM = true;
private static MyVertexFactory instance = new MyVertexFactory();
private MyVertexFactory() {
}
public static MyVertexFactory getInstance() {
return instance;
}
public GraphElements.MyVertex create() {
String name = "Node" + nodeCount++;
MyVertex v = new MyVertex(name);
v.setPacketSwitchCapable(defaultPSC);
v.setTdmSwitchCapable(defaultTDM);
return v;
}
public static boolean isDefaultPSC() {
return defaultPSC;
}
public static void setDefaultPSC(boolean aDefaultPSC) {
defaultPSC = aDefaultPSC;
}
public static boolean isDefaultTDM() {
return defaultTDM;
}
public static void setDefaultTDM(boolean aDefaultTDM) {
defaultTDM = aDefaultTDM;
}
}
// Singleton factory for creating Edges...
public static class MyEdgeFactory implements Factory<MyEdge> {
private static int linkCount = 0;
private static double defaultWeight;
private static double defaultCapacity;
private static MyEdgeFactory instance = new MyEdgeFactory();
private MyEdgeFactory() {
}
public static MyEdgeFactory getInstance() {
return instance;
}
public GraphElements.MyEdge create() {
String name = "Link" + linkCount++;
MyEdge link = new MyEdge(name);
link.setWeight(defaultWeight);
link.setCapacity(defaultCapacity);
return link;
}
public static double getDefaultWeight() {
return defaultWeight;
}
public static void setDefaultWeight(double aDefaultWeight) {
defaultWeight = aDefaultWeight;
}
public static double getDefaultCapacity() {
return defaultCapacity;
}
public static void setDefaultCapacity(double aDefaultCapacity) {
defaultCapacity = aDefaultCapacity;
}
}
}