Committed by
Gerrit Code Review
changes for getting the previous subject of the modified interface.
Change-Id: I7dffe0598dee92dfb8a458cb01b819df7e6a5e57
Showing
2 changed files
with
53 additions
and
3 deletions
| ... | @@ -17,12 +17,16 @@ | ... | @@ -17,12 +17,16 @@ |
| 17 | package org.onosproject.incubator.net.intf; | 17 | package org.onosproject.incubator.net.intf; |
| 18 | 18 | ||
| 19 | import org.onosproject.event.AbstractEvent; | 19 | import org.onosproject.event.AbstractEvent; |
| 20 | +import org.joda.time.LocalDateTime; | ||
| 21 | +import static com.google.common.base.MoreObjects.toStringHelper; | ||
| 20 | 22 | ||
| 21 | /** | 23 | /** |
| 22 | * Describes an interface event. | 24 | * Describes an interface event. |
| 23 | */ | 25 | */ |
| 24 | public class InterfaceEvent extends AbstractEvent<InterfaceEvent.Type, Interface> { | 26 | public class InterfaceEvent extends AbstractEvent<InterfaceEvent.Type, Interface> { |
| 25 | 27 | ||
| 28 | + private final Interface prevSubject; | ||
| 29 | + | ||
| 26 | public enum Type { | 30 | public enum Type { |
| 27 | /** | 31 | /** |
| 28 | * Indicates a new interface has been added. | 32 | * Indicates a new interface has been added. |
| ... | @@ -47,18 +51,64 @@ public class InterfaceEvent extends AbstractEvent<InterfaceEvent.Type, Interface | ... | @@ -47,18 +51,64 @@ public class InterfaceEvent extends AbstractEvent<InterfaceEvent.Type, Interface |
| 47 | * @param subject subject interface | 51 | * @param subject subject interface |
| 48 | */ | 52 | */ |
| 49 | public InterfaceEvent(Type type, Interface subject) { | 53 | public InterfaceEvent(Type type, Interface subject) { |
| 50 | - super(type, subject); | 54 | + this(type, subject, null); |
| 51 | } | 55 | } |
| 52 | 56 | ||
| 53 | /** | 57 | /** |
| 54 | - * Creates an interface event with type, subject and time. | 58 | + * Creates an interface event with type, subject and time of event. |
| 55 | * | 59 | * |
| 56 | * @param type event type | 60 | * @param type event type |
| 57 | * @param subject subject interface | 61 | * @param subject subject interface |
| 58 | * @param time time of event | 62 | * @param time time of event |
| 59 | */ | 63 | */ |
| 60 | public InterfaceEvent(Type type, Interface subject, long time) { | 64 | public InterfaceEvent(Type type, Interface subject, long time) { |
| 65 | + this(type, subject, null, time); | ||
| 66 | + } | ||
| 67 | + | ||
| 68 | + /** | ||
| 69 | + * Creates an interface event with type, subject and previous subject. | ||
| 70 | + * | ||
| 71 | + * @param type event type | ||
| 72 | + * @param subject subject interface | ||
| 73 | + * @param subject previous interface subject | ||
| 74 | + */ | ||
| 75 | + public InterfaceEvent(Type type, Interface subject, Interface prevSubject) { | ||
| 76 | + super(type, subject); | ||
| 77 | + this.prevSubject = prevSubject; | ||
| 78 | + } | ||
| 79 | + | ||
| 80 | + /** | ||
| 81 | + * Creates an interface event with type, subject, previous subject and time. | ||
| 82 | + * | ||
| 83 | + * @param type event type | ||
| 84 | + * @param subject subject interface | ||
| 85 | + * @param subject previous interface subject | ||
| 86 | + * @param time time of event | ||
| 87 | + */ | ||
| 88 | + public InterfaceEvent(Type type, Interface subject, Interface prevSubject, long time) { | ||
| 61 | super(type, subject, time); | 89 | super(type, subject, time); |
| 90 | + this.prevSubject = prevSubject; | ||
| 91 | + } | ||
| 92 | + | ||
| 93 | + /** | ||
| 94 | + * Returns the previous interface subject. | ||
| 95 | + * | ||
| 96 | + * @return previous subject of interface or null if the event is not interface specific. | ||
| 97 | + */ | ||
| 98 | + public Interface prevSubject() { | ||
| 99 | + return prevSubject; | ||
| 62 | } | 100 | } |
| 63 | 101 | ||
| 102 | + @Override | ||
| 103 | + public String toString() { | ||
| 104 | + if (prevSubject == null) { | ||
| 105 | + return super.toString(); | ||
| 106 | + } | ||
| 107 | + return toStringHelper(this) | ||
| 108 | + .add("time", new LocalDateTime(time())) | ||
| 109 | + .add("type", type()) | ||
| 110 | + .add("subject", subject()) | ||
| 111 | + .add("prevSubject", prevSubject) | ||
| 112 | + .toString(); | ||
| 113 | + } | ||
| 64 | } | 114 | } | ... | ... |
| ... | @@ -171,7 +171,7 @@ public class InterfaceManager extends ListenerRegistry<InterfaceEvent, Interface | ... | @@ -171,7 +171,7 @@ public class InterfaceManager extends ListenerRegistry<InterfaceEvent, Interface |
| 171 | if (oldIntf.isPresent()) { | 171 | if (oldIntf.isPresent()) { |
| 172 | old.remove(oldIntf.get()); | 172 | old.remove(oldIntf.get()); |
| 173 | if (!oldIntf.get().equals(intf)) { | 173 | if (!oldIntf.get().equals(intf)) { |
| 174 | - process(new InterfaceEvent(InterfaceEvent.Type.INTERFACE_UPDATED, intf)); | 174 | + process(new InterfaceEvent(InterfaceEvent.Type.INTERFACE_UPDATED, intf, oldIntf.get())); |
| 175 | } | 175 | } |
| 176 | } else { | 176 | } else { |
| 177 | process(new InterfaceEvent(InterfaceEvent.Type.INTERFACE_ADDED, intf)); | 177 | process(new InterfaceEvent(InterfaceEvent.Type.INTERFACE_ADDED, intf)); | ... | ... |
-
Please register or login to post a comment