Merge "Bug 6193 - Change in length of DatapathId of a switch"
[openflowplugin.git] / openflowplugin-impl / src / main / java / org / opendaylight / openflowplugin / impl / common / MultipartRequestInputFactory.java
index a4ead742448af0bf6c16d816b9fcd63d3f5d61ab..263567c54839171e7f9181f40da0f011cace9020 100644 (file)
@@ -24,35 +24,20 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.matc
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartRequestInput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartRequestInputBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.MultipartRequestBody;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestAggregateCase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestAggregateCaseBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestDescCase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestDescCaseBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestExperimenterCase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestExperimenterCaseBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestFlowCase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestFlowCaseBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestGroupCase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestGroupCaseBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestGroupDescCase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestGroupDescCaseBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestGroupFeaturesCase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestGroupFeaturesCaseBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestMeterCase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestMeterCaseBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestMeterConfigCase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestMeterConfigCaseBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestMeterFeaturesCase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestMeterFeaturesCaseBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestPortDescCase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestPortDescCaseBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestPortStatsCase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestPortStatsCaseBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestQueueCase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestQueueCaseBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestTableCase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestTableCaseBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestTableFeaturesCase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestTableFeaturesCaseBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.multipart.request.flow._case.MultipartRequestFlowBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.multipart.request.group._case.MultipartRequestGroupBuilder;
@@ -96,53 +81,7 @@ public final class MultipartRequestInputFactory {
         return maker(xid, type, ofVersion, false, makeDefaultEmptyRequestBody(type, ofVersion));
     }
 
-    /**
-     * Method validate input values and makes {@link MultipartRequestInput} from input values. Method set
-     * a moreRequest marker to false.
-     *
-     * @param xid
-     * @param type
-     * @param ofVersion
-     * @param body
-     * @return
-     */
-    public static MultipartRequestInput makeMultipartRequestInput(final long xid, final short ofVersion,
-                                                                  @Nonnull final MultipartType type, @Nonnull final MultipartRequestBody body) {
-        Preconditions.checkArgument(validationOfMultipartTypeAndRequestBody(type, body));
-        return maker(xid, type, ofVersion, false, body);
-    }
 
-    /**
-     * Method validates input and makes {@link MultipartRequestInput} from input values. Method creates
-     * default empty {@link MultipartRequestBody} by {@link MultipartType}
-     *
-     * @param xid
-     * @param type
-     * @param ofVersion
-     * @param moreRequests
-     * @return
-     */
-    public static MultipartRequestInput makeMultipartRequestInput(final long xid, final short ofVersion,
-                                                                  @Nonnull final MultipartType type, final boolean moreRequests) {
-        return maker(xid, type, ofVersion, moreRequests, makeDefaultEmptyRequestBody(type, ofVersion));
-    }
-
-    /**
-     * Method validates input values and makes {@link MultipartRequestInput} from input values.
-     *
-     * @param xid
-     * @param type
-     * @param ofVersion
-     * @param moreRequests
-     * @param body
-     * @return
-     */
-    public static MultipartRequestInput makeMultipartRequestInput(final long xid, final short ofVersion,
-                                                                  @Nonnull final MultipartType type, final boolean moreRequests,
-                                                                  @Nonnull final MultipartRequestBody body) {
-        Preconditions.checkArgument(validationOfMultipartTypeAndRequestBody(type, body));
-        return maker(xid, type, ofVersion, moreRequests, body);
-    }
 
     /**
      * Method build {@link MultipartRequestInput} from input values. It is private because we would like
@@ -187,6 +126,8 @@ public final class MultipartRequestInputFactory {
                     case OFConstants.OFP_VERSION_1_3:
                         multipartRequestFlowBuilder.setMatch(new MatchBuilder().setType(OxmMatchType.class).build());
                         break;
+                    default:
+                        throw new IllegalArgumentException("Unknown version " + version);
                 }
                 multipartRequestFlowCaseBuilder.setMultipartRequestFlow(multipartRequestFlowBuilder.build());
                 return multipartRequestFlowCaseBuilder.build();
@@ -221,14 +162,14 @@ public final class MultipartRequestInputFactory {
             case OFPMPMETER:
                 MultipartRequestMeterCaseBuilder multipartRequestMeterCaseBuilder = new MultipartRequestMeterCaseBuilder();
                 MultipartRequestMeterBuilder multipartRequestMeterBuilder = new MultipartRequestMeterBuilder();
-                MeterId meterId = new MeterId(OFConstants.OFPP_ANY);
+                MeterId meterId = new MeterId(OFConstants.OFPM_ALL);
                 multipartRequestMeterBuilder.setMeterId(meterId);
                 multipartRequestMeterCaseBuilder.setMultipartRequestMeter(multipartRequestMeterBuilder.build());
                 return multipartRequestMeterCaseBuilder.build();
             case OFPMPMETERCONFIG:
                 MultipartRequestMeterConfigCaseBuilder multipartRequestMeterConfigCaseBuilder = new MultipartRequestMeterConfigCaseBuilder();
                 MultipartRequestMeterConfigBuilder multipartRequestMeterConfigBuilder = new MultipartRequestMeterConfigBuilder();
-                MeterId configMeterId = new MeterId(OFConstants.OFPP_ANY);
+                MeterId configMeterId = new MeterId(OFConstants.OFPM_ALL);
                 multipartRequestMeterConfigBuilder.setMeterId(configMeterId);
                 multipartRequestMeterConfigCaseBuilder.setMultipartRequestMeterConfig(multipartRequestMeterConfigBuilder.build());
                 return multipartRequestMeterConfigCaseBuilder.build();
@@ -246,44 +187,4 @@ public final class MultipartRequestInputFactory {
                 throw new IllegalArgumentException("Unknown MultipartType " + type);
         }
     }
-
-    private static boolean validationOfMultipartTypeAndRequestBody(@CheckForNull final MultipartType type,
-                                                                   @CheckForNull final MultipartRequestBody body) {
-        Preconditions.checkArgument(type != null, "Multipart Request can not by build without type!");
-        Preconditions.checkArgument(body != null, "Multipart Request can not by build without body!");
-        switch (type) {
-            case OFPMPDESC:
-                return body instanceof MultipartRequestDescCase;
-            case OFPMPFLOW:
-                return body instanceof MultipartRequestFlowCase;
-            case OFPMPAGGREGATE:
-                return body instanceof MultipartRequestAggregateCase;
-            case OFPMPTABLE:
-                return body instanceof MultipartRequestTableCase;
-            case OFPMPPORTSTATS:
-                return body instanceof MultipartRequestPortStatsCase;
-            case OFPMPQUEUE:
-                return body instanceof MultipartRequestQueueCase;
-            case OFPMPGROUP:
-                return body instanceof MultipartRequestGroupCase;
-            case OFPMPGROUPDESC:
-                return body instanceof MultipartRequestGroupDescCase;
-            case OFPMPGROUPFEATURES:
-                return body instanceof MultipartRequestGroupFeaturesCase;
-            case OFPMPMETER:
-                return body instanceof MultipartRequestMeterCase;
-            case OFPMPMETERCONFIG:
-                return body instanceof MultipartRequestMeterConfigCase;
-            case OFPMPMETERFEATURES:
-                return body instanceof MultipartRequestMeterFeaturesCase;
-            case OFPMPTABLEFEATURES:
-                return body instanceof MultipartRequestTableFeaturesCase;
-            case OFPMPPORTDESC:
-                return body instanceof MultipartRequestPortDescCase;
-            case OFPMPEXPERIMENTER:
-                return body instanceof MultipartRequestExperimenterCase;
-            default:
-                throw new IllegalArgumentException("Unknown MultipartType " + type);
-        }
-    }
 }