Improve InjectionKey performance 43/7643/1
authorRobert Varga <robert.varga@pantheon.sk>
Tue, 3 Jun 2014 12:12:01 +0000 (14:12 +0200)
committerRobert Varga <robert.varga@pantheon.sk>
Tue, 3 Jun 2014 13:54:55 +0000 (15:54 +0200)
As it turns out we put these into a HashMap, so not dispersing on class
name is actively hurting us. The trade-off here is between hashCode()
performance and its effectiveness.

The design of this class called for Strings to be used as identifiers,
and hashCode() of strings is generally slow. As it turns out, though,
all the strings used were derived from classes -- which is good news.

This patch switches to using Class<?> objects as identifiers, as they
have fast hashCode/equals and the lookups are equivalent.

Change-Id: I51e572dc98088733eca15c35ee6d0bac991c5da7
Signed-off-by: Robert Varga <robert.varga@pantheon.sk>
openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/action/ActionSetNwDstReactor.java
openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/action/ActionSetNwDstReactorMappingFactory.java
openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/action/ActionSetNwSrcReactor.java
openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/action/ActionSetNwSrcReactorMappingFactory.java
openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/common/ConvertReactor.java
openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/common/InjectionKey.java
openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/common/InjectionResultTargetKey.java
openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/flowflag/FlowFlagReactorMappingFactory.java
openflowplugin/src/main/java/org/opendaylight/openflowplugin/openflow/md/core/sal/convertor/match/MatchReactorMappingFactory.java

index 1e5f8637987836eab3bcb44a43bdc8b592d5ae93..887ed4fadfcb4e1636867d5b7349161973ee127d 100644 (file)
@@ -47,7 +47,7 @@ public class ActionSetNwDstReactor extends ConvertReactor<SetNwDstActionCase> {
             final Object convertedItem, final Object target) {
         InjectionResultTargetKey key = null;
         if (convertedItem != null) {
-             key = new InjectionResultTargetKey(version, target.getClass().getName(), convertedItem.getClass().getName());
+             key = new InjectionResultTargetKey(version, target.getClass(), convertedItem.getClass());
         }
         return key;
     }
index 4185c19191209a2c5129e6c5565e7b15ec5ae9a5..b3639a8682eff692497143508112a70c6c60039e 100644 (file)
@@ -42,38 +42,38 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.
  * @see ActionSetNwSrcReactor
  */
 public class ActionSetNwDstReactorMappingFactory {
-    
+
     /**
      * @param conversionMapping
      */
-    public static void addSetNwDstConvertors(Map<Short, Convertor<SetNwDstActionCase, ?>> conversionMapping) {
+    public static void addSetNwDstConvertors(final Map<Short, Convertor<SetNwDstActionCase, ?>> conversionMapping) {
         conversionMapping.put(OFConstants.OFP_VERSION_1_0, new ActionSetNwDstConvertorV10Impl());
         conversionMapping.put(OFConstants.OFP_VERSION_1_3, new ActionSetNwDstConvertorImpl());
     }
-    
+
     /**
-     * @param injectionMapping 
+     * @param injectionMapping
      */
-    public static void addSetNwDstInjectors(Map<InjectionKey, ResultInjector<?, ?>> injectionMapping) {
+    public static void addSetNwDstInjectors(final Map<InjectionKey, ResultInjector<?, ?>> injectionMapping) {
         // OF-1.0| Ipv4Address -> ActionBuilder; SetNwSrc
-        injectionMapping.put(new InjectionResultTargetKey(OFConstants.OFP_VERSION_1_0, 
-                ActionBuilder.class.getName(), Ipv4Address.class.getName()), 
+        injectionMapping.put(new InjectionResultTargetKey(OFConstants.OFP_VERSION_1_0,
+                ActionBuilder.class, Ipv4Address.class),
                 new ResultInjector<Ipv4Address, ActionBuilder>() {
             @Override
-            public void inject(Ipv4Address result, ActionBuilder target) {
+            public void inject(final Ipv4Address result, final ActionBuilder target) {
                 IpAddressActionBuilder ipvaddress = new IpAddressActionBuilder();
                 ipvaddress.setIpAddress(result);
                 target.setType(SetNwDst.class);
                 target.addAugmentation(IpAddressAction.class, ipvaddress.build());
             }
         });
-        
+
         // OF-1.3| Ipv4Address -> ActionBuilder; SetNwSrc
-        injectionMapping.put(new InjectionResultTargetKey(OFConstants.OFP_VERSION_1_3, 
-                ActionBuilder.class.getName(), Ipv4Address.class.getName()), 
+        injectionMapping.put(new InjectionResultTargetKey(OFConstants.OFP_VERSION_1_3,
+                ActionBuilder.class, Ipv4Address.class),
                 new ResultInjector<Ipv4Address, ActionBuilder>() {
             @Override
-            public void inject(Ipv4Address result, ActionBuilder target) {
+            public void inject(final Ipv4Address result, final ActionBuilder target) {
                 OxmFieldsActionBuilder oxmFieldsActionBuilder = new OxmFieldsActionBuilder();
                 target.setType(SetField.class);
                 List<MatchEntries> matchEntriesList = new ArrayList<>();
@@ -89,13 +89,13 @@ public class ActionSetNwDstReactorMappingFactory {
                 target.addAugmentation(OxmFieldsAction.class, oxmFieldsActionBuilder.build());
             }
         });
-        
+
         // OF-1.3| Ipv6Address -> ActionBuilder; SetNwSrc
-        injectionMapping.put(new InjectionResultTargetKey(OFConstants.OFP_VERSION_1_3, 
-                ActionBuilder.class.getName(), Ipv6Address.class.getName()), 
+        injectionMapping.put(new InjectionResultTargetKey(OFConstants.OFP_VERSION_1_3,
+                ActionBuilder.class, Ipv6Address.class),
                 new ResultInjector<Ipv6Address, ActionBuilder>() {
             @Override
-            public void inject(Ipv6Address result, ActionBuilder target) {
+            public void inject(final Ipv6Address result, final ActionBuilder target) {
                 OxmFieldsActionBuilder oxmFieldsActionBuilder = new OxmFieldsActionBuilder();
                 target.setType(SetField.class);
                 List<MatchEntries> matchEntriesList = new ArrayList<>();
index e9d55f875e2907eb719a1dab41bcdfc3630f0a87..a704458afb61c2accc9adb7af962310516c4ec5e 100644 (file)
@@ -47,7 +47,7 @@ public class ActionSetNwSrcReactor extends ConvertReactor<SetNwSrcActionCase> {
             final Object convertedItem, final Object target) {
         InjectionResultTargetKey key = null;
         if (convertedItem != null) {
-             key = new InjectionResultTargetKey(version, target.getClass().getName(), convertedItem.getClass().getName());
+             key = new InjectionResultTargetKey(version, target.getClass(), convertedItem.getClass());
         }
         return key;
     }
index b13496148544663a2001986ff8f184dd1b927480..3b51cf0d6f079d02f9fd63cfd086c68464022b56 100644 (file)
@@ -42,38 +42,38 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.oxm.
  * @see ActionSetNwSrcReactor
  */
 public class ActionSetNwSrcReactorMappingFactory {
-    
+
     /**
      * @param conversionMapping
      */
-    public static void addSetNwSrcConvertors(Map<Short, Convertor<SetNwSrcActionCase, ?>> conversionMapping) {
+    public static void addSetNwSrcConvertors(final Map<Short, Convertor<SetNwSrcActionCase, ?>> conversionMapping) {
         conversionMapping.put(OFConstants.OFP_VERSION_1_0, new ActionSetNwSrcConvertorV10Impl());
         conversionMapping.put(OFConstants.OFP_VERSION_1_3, new ActionSetNwSrcConvertorImpl());
     }
-    
+
     /**
-     * @param injectionMapping 
+     * @param injectionMapping
      */
-    public static void addSetNwSrcInjectors(Map<InjectionKey, ResultInjector<?, ?>> injectionMapping) {
+    public static void addSetNwSrcInjectors(final Map<InjectionKey, ResultInjector<?, ?>> injectionMapping) {
         // OF-1.0| Ipv4Address -> ActionBuilder; SetNwSrc
-        injectionMapping.put(new InjectionResultTargetKey(OFConstants.OFP_VERSION_1_0, 
-                ActionBuilder.class.getName(), Ipv4Address.class.getName()), 
+        injectionMapping.put(new InjectionResultTargetKey(OFConstants.OFP_VERSION_1_0,
+                ActionBuilder.class, Ipv4Address.class),
                 new ResultInjector<Ipv4Address, ActionBuilder>() {
             @Override
-            public void inject(Ipv4Address result, ActionBuilder target) {
+            public void inject(final Ipv4Address result, final ActionBuilder target) {
                 IpAddressActionBuilder ipvaddress = new IpAddressActionBuilder();
                 ipvaddress.setIpAddress(result);
                 target.setType(SetNwSrc.class);
                 target.addAugmentation(IpAddressAction.class, ipvaddress.build());
             }
         });
-        
+
         // OF-1.3| Ipv4Address -> ActionBuilder; SetNwSrc
-        injectionMapping.put(new InjectionResultTargetKey(OFConstants.OFP_VERSION_1_3, 
-                ActionBuilder.class.getName(), Ipv4Address.class.getName()), 
+        injectionMapping.put(new InjectionResultTargetKey(OFConstants.OFP_VERSION_1_3,
+                ActionBuilder.class, Ipv4Address.class),
                 new ResultInjector<Ipv4Address, ActionBuilder>() {
             @Override
-            public void inject(Ipv4Address result, ActionBuilder target) {
+            public void inject(final Ipv4Address result, final ActionBuilder target) {
                 OxmFieldsActionBuilder oxmFieldsActionBuilder = new OxmFieldsActionBuilder();
                 target.setType(SetField.class);
                 List<MatchEntries> matchEntriesList = new ArrayList<>();
@@ -89,13 +89,13 @@ public class ActionSetNwSrcReactorMappingFactory {
                 target.addAugmentation(OxmFieldsAction.class, oxmFieldsActionBuilder.build());
             }
         });
-        
+
         // OF-1.3| Ipv6Address -> ActionBuilder; SetNwSrc
-        injectionMapping.put(new InjectionResultTargetKey(OFConstants.OFP_VERSION_1_3, 
-                ActionBuilder.class.getName(), Ipv6Address.class.getName()), 
+        injectionMapping.put(new InjectionResultTargetKey(OFConstants.OFP_VERSION_1_3,
+                ActionBuilder.class, Ipv6Address.class),
                 new ResultInjector<Ipv6Address, ActionBuilder>() {
             @Override
-            public void inject(Ipv6Address result, ActionBuilder target) {
+            public void inject(final Ipv6Address result, final ActionBuilder target) {
                 OxmFieldsActionBuilder oxmFieldsActionBuilder = new OxmFieldsActionBuilder();
                 target.setType(SetField.class);
                 List<MatchEntries> matchEntriesList = new ArrayList<>();
index df33256e4b2b23297e0ef8393fd086b878fab160..0c96de60383978760d0d262a0f5b9f71b85f79f2 100644 (file)
@@ -24,11 +24,12 @@ public abstract class ConvertReactor<FROM> {
 
     protected ConvertReactor() {
         final Map<Short, Convertor<FROM, ?>> conversions = new HashMap<>();
-        injectionMapping = new HashMap<>();
-        initMappings(conversions, injectionMapping);
+        final Map<InjectionKey, ResultInjector<?, ?>> injections = new HashMap<>();
+        initMappings(conversions, injections);
 
-        // Create optimized view of conversion mapping
+        // Create optimized view of mappings
         this.conversionMapping = ImmutableMap.copyOf(conversions);
+        this.injectionMapping = ImmutableMap.copyOf(injections);
     }
 
     /**
@@ -71,7 +72,7 @@ public abstract class ConvertReactor<FROM> {
      * @return
      */
     protected InjectionKey buildInjectionKey(final short version, final Object convertedItem, final Object target) {
-        return new InjectionKey(version, target.getClass().getName());
+        return new InjectionKey(version, target.getClass());
     }
 
 }
index 6934d4fa2228329b6fd3abbab704e4b172d784b1..ee4c0a9505e900b30709fb6141bd9391398a1ab6 100644 (file)
@@ -8,53 +8,57 @@
 
 package org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.common;
 
+import com.google.common.base.Objects;
+import com.google.common.base.Objects.ToStringHelper;
+import com.google.common.base.Preconditions;
+
+
 /**
  * injection lookup key based on version and target object
  */
 public class InjectionKey {
 
-    private int version;
-    private String targetClazz;
-    
+    private final int version;
+    private final Class<?> targetClazz;
+
     /**
      * @param version
      * @param targetClazz
      */
-    public InjectionKey(int version, String targetClazz) {
+    public InjectionKey(final int version, final Class<?> targetClazz) {
         this.version = version;
-        this.targetClazz = targetClazz;
+        this.targetClazz = Preconditions.checkNotNull(targetClazz);
     }
 
     @Override
     public int hashCode() {
-        final int prime = 31;
-        int result = 1;
-        result = prime * result + version;
-        return result;
+        return 31 * version + targetClazz.hashCode();
     }
 
     @Override
-    public boolean equals(Object obj) {
-        if (this == obj)
+    public boolean equals(final Object obj) {
+        if (this == obj) {
             return true;
-        if (obj == null)
+        }
+        if (obj == null) {
             return false;
-        if (getClass() != obj.getClass())
+        }
+        if (getClass() != obj.getClass()) {
             return false;
-        InjectionKey other = (InjectionKey) obj;
-        if (targetClazz == null) {
-            if (other.targetClazz != null)
-                return false;
-        } else if (!targetClazz.equals(other.targetClazz))
+        }
+        final InjectionKey other = (InjectionKey) obj;
+        if (version != other.version) {
             return false;
-        if (version != other.version)
-            return false;
-        return true;
+        }
+        return targetClazz.equals(other.targetClazz);
     }
 
     @Override
-    public String toString() {
-        return "InjectionKey [version=" + version + ", targetClazz="
-                + targetClazz + "]";
+    public final String toString() {
+        return addToStringAttributes(Objects.toStringHelper(this)).toString();
+    }
+
+    protected ToStringHelper addToStringAttributes(final ToStringHelper toStringHelper) {
+        return toStringHelper.add("version", version).add("targetClazz", targetClazz);
     }
 }
index 624935e6e87b8b11c9c5fae33732d6efd650e962..20e430df84068362790864aba14fdd7f71efbc06 100644 (file)
@@ -8,46 +8,45 @@
 
 package org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.common;
 
+import com.google.common.base.Objects.ToStringHelper;
+import com.google.common.base.Preconditions;
+
 /**
- * 
+ *
  */
 public class InjectionResultTargetKey extends InjectionKey {
 
-    private String resultClazz;
-    
+    private final Class<?> resultClazz;
+
     /**
      * @param version
      * @param targetClazz
-     * @param resultClazz 
+     * @param resultClazz
      */
-    public InjectionResultTargetKey(int version, String targetClazz, String resultClazz) {
+    public InjectionResultTargetKey(final int version, final Class<?> targetClazz, final Class<?> resultClazz) {
         super(version, targetClazz);
-        this.resultClazz = resultClazz;
+        this.resultClazz = Preconditions.checkNotNull(resultClazz);
     }
 
     @Override
     public int hashCode() {
-        final int prime = 31;
-        int result = super.hashCode();
-        result = prime * result
-                + ((resultClazz == null) ? 0 : resultClazz.hashCode());
-        return result;
+        return super.hashCode() ^ resultClazz.hashCode();
     }
 
     @Override
-    public boolean equals(Object obj) {
-        if (this == obj)
+    public boolean equals(final Object obj) {
+        if (this == obj) {
             return true;
-        if (!super.equals(obj))
-            return false;
-        if (getClass() != obj.getClass())
+        }
+        if (!super.equals(obj)) {
             return false;
-        InjectionResultTargetKey other = (InjectionResultTargetKey) obj;
-        if (resultClazz == null) {
-            if (other.resultClazz != null)
-                return false;
-        } else if (!resultClazz.equals(other.resultClazz))
-            return false;
-        return true;
+        }
+        final InjectionResultTargetKey other = (InjectionResultTargetKey) obj;
+        return resultClazz.equals(other.resultClazz);
+    }
+
+    @Override
+    protected ToStringHelper addToStringAttributes(final ToStringHelper toStringHelper) {
+        return super.addToStringAttributes(toStringHelper).add("resultClazz", resultClazz);
     }
 }
index 75caf3d5425c031de464f65d3421183963a5d7c7..920b83dfa8a82efcff795f0bba43c6b57e482cb6 100644 (file)
@@ -23,39 +23,39 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
  * @see FlowFlagReactor
  */
 public class FlowFlagReactorMappingFactory {
-    
+
     /**
      * @param conversionMapping
      */
-    public static void addFlowFlagsConvertors(Map<Short, Convertor<org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.FlowModFlags, ?>> conversionMapping) {
+    public static void addFlowFlagsConvertors(final Map<Short, Convertor<org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.FlowModFlags, ?>> conversionMapping) {
         conversionMapping.put(OFConstants.OFP_VERSION_1_3, new FlowFlagsConvertorImpl());
         conversionMapping.put(OFConstants.OFP_VERSION_1_0, new FlowFlagsConvertorV10Impl());
     }
-    
+
     /**
-     * @param injectionMapping 
+     * @param injectionMapping
      */
-    public static void addFlowFlagsIjectors(Map<InjectionKey, ResultInjector<?, ?>> injectionMapping) {
+    public static void addFlowFlagsIjectors(final Map<InjectionKey, ResultInjector<?, ?>> injectionMapping) {
         // OF-1.3|FlowModFlags --> FlowModInputBuilder
-        injectionMapping.put(new InjectionKey(OFConstants.OFP_VERSION_1_3, FlowModInputBuilder.class.getName()), 
+        injectionMapping.put(new InjectionKey(OFConstants.OFP_VERSION_1_3, FlowModInputBuilder.class),
                 new ResultInjector<FlowModFlags, FlowModInputBuilder>() {
             @Override
-            public void inject(FlowModFlags value,
-                    FlowModInputBuilder target) {
+            public void inject(final FlowModFlags value,
+                    final FlowModInputBuilder target) {
                 target.setFlags(value);
             }
         });
-        
+
         // OF-1.3|FlowModFlagsV10 --> FlowModInputBuilder
-        injectionMapping.put(new InjectionKey(OFConstants.OFP_VERSION_1_0, FlowModInputBuilder.class.getName()), 
+        injectionMapping.put(new InjectionKey(OFConstants.OFP_VERSION_1_0, FlowModInputBuilder.class),
                 new ResultInjector<FlowModFlagsV10, FlowModInputBuilder>() {
             @Override
-            public void inject(FlowModFlagsV10 value,
-                    FlowModInputBuilder target) {
+            public void inject(final FlowModFlagsV10 value,
+                    final FlowModInputBuilder target) {
                 target.setFlagsV10(value);
             }
         });
-        
+
     }
 
 }
index ef4bbf722348db7a979814c18239757a66ebf826..43e4b2fd755e52f21783b2b8a9e630267ea6f613 100644 (file)
@@ -30,96 +30,96 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731
  * @see MatchReactor
  */
 public class MatchReactorMappingFactory {
-    
+
     /**
      * @param conversionMapping
      */
-    public static void addMatchConvertors(Map<Short, Convertor<Match, ?>> conversionMapping) {
+    public static void addMatchConvertors(final Map<Short, Convertor<Match, ?>> conversionMapping) {
         conversionMapping.put(OFConstants.OFP_VERSION_1_3, new MatchConvertorImpl());
         conversionMapping.put(OFConstants.OFP_VERSION_1_0, new MatchConvertorV10Impl());
     }
-    
+
     /**
-     * @param injectionMapping 
+     * @param injectionMapping
      */
-    public static void addMatchIjectors(Map<InjectionKey, ResultInjector<?, ?>> injectionMapping) {
+    public static void addMatchIjectors(final Map<InjectionKey, ResultInjector<?, ?>> injectionMapping) {
         // OF-1.3|List<MatchEntries> --> FlowModInputBuilder
-        injectionMapping.put(new InjectionKey(OFConstants.OFP_VERSION_1_3, FlowModInputBuilder.class.getName()), 
+        injectionMapping.put(new InjectionKey(OFConstants.OFP_VERSION_1_3, FlowModInputBuilder.class),
                 new ResultInjector<List<MatchEntries>, FlowModInputBuilder>() {
             @Override
-            public void inject(List<MatchEntries> value,
-                    FlowModInputBuilder target) {
+            public void inject(final List<MatchEntries> value,
+                    final FlowModInputBuilder target) {
                 target.setMatch(wrapMatchV13(value).build());
             }
         });
-        
+
         // OF-1.3|List<MatchEntries> --> OxmFieldsActionBuilder
-        injectionMapping.put(new InjectionKey(OFConstants.OFP_VERSION_1_3, OxmFieldsActionBuilder.class.getName()), 
+        injectionMapping.put(new InjectionKey(OFConstants.OFP_VERSION_1_3, OxmFieldsActionBuilder.class),
                 new ResultInjector<List<MatchEntries>, OxmFieldsActionBuilder>() {
             @Override
-            public void inject(List<MatchEntries> value,
-                    OxmFieldsActionBuilder target) {
+            public void inject(final List<MatchEntries> value,
+                    final OxmFieldsActionBuilder target) {
                 target.setMatchEntries(value);
             }
         });
-        
+
         // OF-1.0|MatchV10Builder --> FlowModInputBuilder
-        injectionMapping.put(new InjectionKey(OFConstants.OFP_VERSION_1_0, FlowModInputBuilder.class.getName()), 
+        injectionMapping.put(new InjectionKey(OFConstants.OFP_VERSION_1_0, FlowModInputBuilder.class),
                 new ResultInjector<MatchV10, FlowModInputBuilder>() {
             @Override
-            public void inject(MatchV10 value,
-                    FlowModInputBuilder target) {
+            public void inject(final MatchV10 value,
+                    final FlowModInputBuilder target) {
                 target.setMatchV10(value);
             }
         });
-        
+
         // OF-1.3|List<MatchEntries> --> MultipartRequestFlowBuilder
-        injectionMapping.put(new InjectionKey(OFConstants.OFP_VERSION_1_3, MultipartRequestFlowBuilder.class.getName()), 
+        injectionMapping.put(new InjectionKey(OFConstants.OFP_VERSION_1_3, MultipartRequestFlowBuilder.class),
                 new ResultInjector<List<MatchEntries>, MultipartRequestFlowBuilder>() {
             @Override
-            public void inject(List<MatchEntries> value,
-                    MultipartRequestFlowBuilder target) {
+            public void inject(final List<MatchEntries> value,
+                    final MultipartRequestFlowBuilder target) {
                 target.setMatch(wrapMatchV13(value).build());
             }
         });
-        
+
         // OF-1.0|List<MatchEntries> --> MultipartRequestFlowBuilder
-        injectionMapping.put(new InjectionKey(OFConstants.OFP_VERSION_1_0, MultipartRequestFlowBuilder.class.getName()), 
+        injectionMapping.put(new InjectionKey(OFConstants.OFP_VERSION_1_0, MultipartRequestFlowBuilder.class),
                 new ResultInjector<MatchV10, MultipartRequestFlowBuilder>() {
             @Override
-            public void inject(MatchV10 value,
-                    MultipartRequestFlowBuilder target) {
+            public void inject(final MatchV10 value,
+                    final MultipartRequestFlowBuilder target) {
                 target.setMatchV10(value);
             }
         });
-        
+
         // OF-1.3|List<MatchEntries> --> MultipartRequestAggregateBuilder
-        injectionMapping.put(new InjectionKey(OFConstants.OFP_VERSION_1_3, MultipartRequestAggregateBuilder.class.getName()), 
+        injectionMapping.put(new InjectionKey(OFConstants.OFP_VERSION_1_3, MultipartRequestAggregateBuilder.class),
                 new ResultInjector<List<MatchEntries>, MultipartRequestAggregateBuilder>() {
             @Override
-            public void inject(List<MatchEntries> value,
-                    MultipartRequestAggregateBuilder target) {
+            public void inject(final List<MatchEntries> value,
+                    final MultipartRequestAggregateBuilder target) {
                 target.setMatch(wrapMatchV13(value).build());
             }
         });
-        
+
         // OF-1.0|List<MatchEntries> --> MultipartRequestAggregateBuilder
-        injectionMapping.put(new InjectionKey(OFConstants.OFP_VERSION_1_0, MultipartRequestAggregateBuilder.class.getName()), 
+        injectionMapping.put(new InjectionKey(OFConstants.OFP_VERSION_1_0, MultipartRequestAggregateBuilder.class),
                 new ResultInjector<MatchV10, MultipartRequestAggregateBuilder>() {
             @Override
-            public void inject(MatchV10 value,
-                    MultipartRequestAggregateBuilder target) {
+            public void inject(final MatchV10 value,
+                    final MultipartRequestAggregateBuilder target) {
                 target.setMatchV10(value);
             }
         });
     }
-    
+
     /**
      * @param value pure match
      * @return wrapped match
      */
-    public static MatchBuilder wrapMatchV13(List<MatchEntries> value) {
-        MatchBuilder matchBuilder = new MatchBuilder(); 
+    public static MatchBuilder wrapMatchV13(final List<MatchEntries> value) {
+        MatchBuilder matchBuilder = new MatchBuilder();
         matchBuilder.setType(FlowConvertor.DEFAULT_MATCH_TYPE);
         if (value == null) {
             matchBuilder.setMatchEntries(FlowConvertor.DEFAULT_MATCH_ENTRIES);