From 3afa4e3d471e2c6178c4f8a5600003a53288b34f Mon Sep 17 00:00:00 2001 From: Maros Marsalek Date: Tue, 8 Nov 2016 12:34:36 +0100 Subject: HONEYCOMB-270 Remove read (presence) workarounds for nat Change-Id: Ia0986dbe173123a4dca4f7f3bf65e7ba4851b1b7 Signed-off-by: Maros Marsalek --- .../read/ifc/InterfaceOutboundNatCustomizer.java | 59 +--------------------- 1 file changed, 1 insertion(+), 58 deletions(-) (limited to 'nat/nat2vpp/src/main/java/io/fd/honeycomb/nat/read/ifc/InterfaceOutboundNatCustomizer.java') diff --git a/nat/nat2vpp/src/main/java/io/fd/honeycomb/nat/read/ifc/InterfaceOutboundNatCustomizer.java b/nat/nat2vpp/src/main/java/io/fd/honeycomb/nat/read/ifc/InterfaceOutboundNatCustomizer.java index b08a636ca..da940c835 100644 --- a/nat/nat2vpp/src/main/java/io/fd/honeycomb/nat/read/ifc/InterfaceOutboundNatCustomizer.java +++ b/nat/nat2vpp/src/main/java/io/fd/honeycomb/nat/read/ifc/InterfaceOutboundNatCustomizer.java @@ -32,8 +32,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang._interfa import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang._interface.nat.rev161214._interface.nat.attributes.nat.Outbound; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang._interface.nat.rev161214._interface.nat.attributes.nat.OutboundBuilder; import org.opendaylight.yangtools.concepts.Builder; -import org.opendaylight.yangtools.yang.binding.Augmentation; -import org.opendaylight.yangtools.yang.binding.DataContainer; import org.opendaylight.yangtools.yang.binding.DataObject; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.slf4j.Logger; @@ -54,11 +52,6 @@ final class InterfaceOutboundNatCustomizer extends AbstractInterfaceNatCustomize return LOG; } - @Override - void setBuilderPresence(@Nonnull final OutboundBuilder builder) { - ((PresenceOutboundBuilder) builder).setPresent(true); - } - @Override boolean isExpectedNatType(final SnatInterfaceDetails snatInterfaceDetails) { return snatInterfaceDetails.isInside == 0; @@ -67,7 +60,7 @@ final class InterfaceOutboundNatCustomizer extends AbstractInterfaceNatCustomize @Nonnull @Override public OutboundBuilder getBuilder(@Nonnull final InstanceIdentifier id) { - return new PresenceOutboundBuilder(false); + return new OutboundBuilder(); } @Override @@ -90,54 +83,4 @@ final class InterfaceOutboundNatCustomizer extends AbstractInterfaceNatCustomize .child(Outbound.class); return Initialized.create(cfgId, readValue); } - - // TODO HONEYCOMB-270, make this better, having to fake a builder + value is just exploitation. - - /** - * Special Builder to also propagate empty container into the resulting data. - */ - private static final class PresenceOutboundBuilder extends OutboundBuilder { - - private volatile boolean isPresent = false; - - PresenceOutboundBuilder(final boolean isPresent) { - this.isPresent = isPresent; - } - - void setPresent(final boolean present) { - this.isPresent = present; - } - - @Override - public Outbound build() { - final Outbound build = super.build(); - return isPresent - ? build - : NotPresentOutbound.NOT_PRESENT_OUTBOUND; - } - } - - /** - * Fake container that returns false on equals. - */ - private static final class NotPresentOutbound implements Outbound { - - private static final NotPresentOutbound NOT_PRESENT_OUTBOUND = new NotPresentOutbound(); - - @Override - public > E getAugmentation(final Class augmentationType) { - throw new UnsupportedOperationException(); - } - - @Override - public Class getImplementedInterface() { - return Outbound.class; - } - - @Override - public boolean equals(final Object obj) { - // This is necessary to fake this.equals(something) - return obj == NOT_PRESENT_OUTBOUND; - } - } } -- cgit 1.2.3-korg