package org.opennaas.extensions.capability.macbridge.model;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.opennaas.extensions.router.model.ComputerSystem;
import org.opennaas.extensions.router.model.EthernetPort;
import org.opennaas.extensions.router.model.LogicalDevice;
/**
* A class that represents a managed MAC Bridge as specified by the IEEE 802.1d and IEEE 802.1q standards
*
* @author eduardgrasa
*
*/
public class MACBridge extends ComputerSystem {
private static final long serialVersionUID = -5917279387174821799L;
/**
* The VLAN database
*/
private Map<Integer, VLANConfiguration> vlanDatabase = null;
/**
* The filtering database
*/
private FilteringDatabase filteringDatabase = null;
public MACBridge() {
super();
this.vlanDatabase = new HashMap<Integer, VLANConfiguration>();
this.filteringDatabase = new FilteringDatabase();
}
public void clearVLANDatabase() {
this.vlanDatabase.clear();
}
public void createOrUpdateVLANConfiguration(String name, int vlanID) {
this.vlanDatabase.put(new Integer(vlanID), new VLANConfiguration(name, vlanID));
}
public void deleteVLANConfiguration(int vlanID) {
this.vlanDatabase.remove(new Integer(vlanID));
}
public Map<Integer, VLANConfiguration> getVLANDatabase() {
return this.vlanDatabase;
}
public FilteringDatabase getFilteringDatabase() {
return this.filteringDatabase;
}
public EthernetPort getPort(String portName) {
List<LogicalDevice> ports = this.getLogicalDevices();
EthernetPort currentPort = null;
for (int i = 0; i < ports.size(); i++) {
currentPort = (EthernetPort) ports.get(i);
if (currentPort.getName().equals(portName)) {
return currentPort;
}
}
return null;
}
}