Umesh Krishnaswamy | 345ee99 | 2012-12-13 20:29:48 -0800 | [diff] [blame] | 1 | package net.floodlightcontroller.devicemanager.test; |
| 2 | |
| 3 | import static net.floodlightcontroller.devicemanager.IDeviceService.DeviceField.MAC; |
| 4 | import static net.floodlightcontroller.devicemanager.IDeviceService.DeviceField.PORT; |
| 5 | import static net.floodlightcontroller.devicemanager.IDeviceService.DeviceField.SWITCH; |
| 6 | import static net.floodlightcontroller.devicemanager.IDeviceService.DeviceField.VLAN; |
| 7 | |
| 8 | import java.util.EnumSet; |
| 9 | |
| 10 | import net.floodlightcontroller.devicemanager.IDeviceService; |
| 11 | import net.floodlightcontroller.devicemanager.IEntityClass; |
| 12 | import net.floodlightcontroller.devicemanager.IDeviceService.DeviceField; |
| 13 | import net.floodlightcontroller.devicemanager.internal.DefaultEntityClassifier; |
| 14 | import net.floodlightcontroller.devicemanager.internal.Entity; |
| 15 | |
| 16 | /** A simple IEntityClassifier. Useful for tests that need an IEntityClassifier |
| 17 | * with switch/port as key fields. |
| 18 | */ |
| 19 | public class MockEntityClassifierMac extends DefaultEntityClassifier { |
| 20 | public static class TestEntityClassMac implements IEntityClass { |
| 21 | protected String name; |
| 22 | public TestEntityClassMac(String name) { |
| 23 | this.name = name; |
| 24 | } |
| 25 | |
| 26 | @Override |
| 27 | public EnumSet<DeviceField> getKeyFields() { |
| 28 | return EnumSet.of(MAC, VLAN); |
| 29 | } |
| 30 | |
| 31 | @Override |
| 32 | public String getName() { |
| 33 | return name; |
| 34 | } |
| 35 | } |
| 36 | public static IEntityClass testECMac1 = |
| 37 | new MockEntityClassifierMac.TestEntityClassMac("testECMac1"); |
| 38 | public static IEntityClass testECMac2 = |
| 39 | new MockEntityClassifierMac.TestEntityClassMac("testECMac2"); |
| 40 | |
| 41 | @Override |
| 42 | public IEntityClass classifyEntity(Entity entity) { |
| 43 | if (entity.getSwitchDPID() == 1L) { |
| 44 | return testECMac1; |
| 45 | } else if (entity.getSwitchDPID() == 2L) { |
| 46 | return testECMac2; |
| 47 | } else if (entity.getSwitchDPID() == -1L) { |
| 48 | return null; |
| 49 | } |
| 50 | return DefaultEntityClassifier.entityClass; |
| 51 | } |
| 52 | |
| 53 | @Override |
| 54 | public EnumSet<IDeviceService.DeviceField> getKeyFields() { |
| 55 | return EnumSet.of(MAC, VLAN, SWITCH, PORT); |
| 56 | } |
| 57 | } |