Pull out inner-classes from Criteria to be independent classes
Make constructors of sub-types of Criterion package private for
limiting instantiation only from static factory methods in Criteria
Change-Id: I1fb1e9d003288a778a49e758549a92b66bf3cfdf
diff --git a/core/store/serializers/src/main/java/org/onosproject/store/serializers/KryoNamespaces.java b/core/store/serializers/src/main/java/org/onosproject/store/serializers/KryoNamespaces.java
index 7b17109..17eb374 100644
--- a/core/store/serializers/src/main/java/org/onosproject/store/serializers/KryoNamespaces.java
+++ b/core/store/serializers/src/main/java/org/onosproject/store/serializers/KryoNamespaces.java
@@ -73,8 +73,31 @@
import org.onosproject.net.flow.FlowRuleBatchRequest;
import org.onosproject.net.flow.FlowRuleExtPayLoad;
import org.onosproject.net.flow.StoredFlowEntry;
-import org.onosproject.net.flow.criteria.Criteria;
import org.onosproject.net.flow.criteria.Criterion;
+import org.onosproject.net.flow.criteria.EthCriterion;
+import org.onosproject.net.flow.criteria.EthTypeCriterion;
+import org.onosproject.net.flow.criteria.IPCriterion;
+import org.onosproject.net.flow.criteria.IPDscpCriterion;
+import org.onosproject.net.flow.criteria.IPEcnCriterion;
+import org.onosproject.net.flow.criteria.IPProtocolCriterion;
+import org.onosproject.net.flow.criteria.IPv6ExthdrFlagsCriterion;
+import org.onosproject.net.flow.criteria.IPv6FlowLabelCriterion;
+import org.onosproject.net.flow.criteria.IPv6NDLinkLayerAddressCriterion;
+import org.onosproject.net.flow.criteria.IPv6NDTargetAddressCriterion;
+import org.onosproject.net.flow.criteria.IcmpCodeCriterion;
+import org.onosproject.net.flow.criteria.IcmpTypeCriterion;
+import org.onosproject.net.flow.criteria.Icmpv6CodeCriterion;
+import org.onosproject.net.flow.criteria.Icmpv6TypeCriterion;
+import org.onosproject.net.flow.criteria.LambdaCriterion;
+import org.onosproject.net.flow.criteria.MetadataCriterion;
+import org.onosproject.net.flow.criteria.MplsCriterion;
+import org.onosproject.net.flow.criteria.OpticalSignalTypeCriterion;
+import org.onosproject.net.flow.criteria.PortCriterion;
+import org.onosproject.net.flow.criteria.SctpPortCriterion;
+import org.onosproject.net.flow.criteria.TcpPortCriterion;
+import org.onosproject.net.flow.criteria.UdpPortCriterion;
+import org.onosproject.net.flow.criteria.VlanIdCriterion;
+import org.onosproject.net.flow.criteria.VlanPcpCriterion;
import org.onosproject.net.flow.instructions.Instructions;
import org.onosproject.net.flow.instructions.L0ModificationInstruction;
import org.onosproject.net.flow.instructions.L2ModificationInstruction;
@@ -234,30 +257,30 @@
FlowEntry.FlowEntryState.class,
FlowId.class,
DefaultTrafficSelector.class,
- Criteria.PortCriterion.class,
- Criteria.MetadataCriterion.class,
- Criteria.EthCriterion.class,
- Criteria.EthTypeCriterion.class,
- Criteria.VlanIdCriterion.class,
- Criteria.VlanPcpCriterion.class,
- Criteria.IPDscpCriterion.class,
- Criteria.IPEcnCriterion.class,
- Criteria.IPProtocolCriterion.class,
- Criteria.IPCriterion.class,
- Criteria.TcpPortCriterion.class,
- Criteria.UdpPortCriterion.class,
- Criteria.SctpPortCriterion.class,
- Criteria.IcmpTypeCriterion.class,
- Criteria.IcmpCodeCriterion.class,
- Criteria.IPv6FlowLabelCriterion.class,
- Criteria.Icmpv6TypeCriterion.class,
- Criteria.Icmpv6CodeCriterion.class,
- Criteria.IPv6NDTargetAddressCriterion.class,
- Criteria.IPv6NDLinkLayerAddressCriterion.class,
- Criteria.MplsCriterion.class,
- Criteria.IPv6ExthdrFlagsCriterion.class,
- Criteria.LambdaCriterion.class,
- Criteria.OpticalSignalTypeCriterion.class,
+ PortCriterion.class,
+ MetadataCriterion.class,
+ EthCriterion.class,
+ EthTypeCriterion.class,
+ VlanIdCriterion.class,
+ VlanPcpCriterion.class,
+ IPDscpCriterion.class,
+ IPEcnCriterion.class,
+ IPProtocolCriterion.class,
+ IPCriterion.class,
+ TcpPortCriterion.class,
+ UdpPortCriterion.class,
+ SctpPortCriterion.class,
+ IcmpTypeCriterion.class,
+ IcmpCodeCriterion.class,
+ IPv6FlowLabelCriterion.class,
+ Icmpv6TypeCriterion.class,
+ Icmpv6CodeCriterion.class,
+ IPv6NDTargetAddressCriterion.class,
+ IPv6NDLinkLayerAddressCriterion.class,
+ MplsCriterion.class,
+ IPv6ExthdrFlagsCriterion.class,
+ LambdaCriterion.class,
+ OpticalSignalTypeCriterion.class,
Criterion.class,
Criterion.Type.class,
DefaultTrafficTreatment.class,