blob: 398b6c0e74c7403e71f0d523d1b9fb670b5f836e [file] [log] [blame]
Umesh Krishnaswamy345ee992012-12-13 20:29:48 -08001package net.floodlightcontroller.devicemanager.test;
2
3import static net.floodlightcontroller.devicemanager.IDeviceService.DeviceField.MAC;
4import static net.floodlightcontroller.devicemanager.IDeviceService.DeviceField.PORT;
5import static net.floodlightcontroller.devicemanager.IDeviceService.DeviceField.SWITCH;
6import static net.floodlightcontroller.devicemanager.IDeviceService.DeviceField.VLAN;
7
8import java.util.EnumSet;
9
10import net.floodlightcontroller.devicemanager.IDeviceService;
11import net.floodlightcontroller.devicemanager.IEntityClass;
12import net.floodlightcontroller.devicemanager.IDeviceService.DeviceField;
13import net.floodlightcontroller.devicemanager.internal.DefaultEntityClassifier;
14import 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 */
19public 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}