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;
}
* @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<>();
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<>();
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;
}
* @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<>();
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<>();
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);
}
/**
* @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());
}
}
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);
}
}
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);
}
}
* @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);
}
});
-
+
}
}
* @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);