Merge "Bump odlparent 2.0.2 to 2.0.4"
[openflowplugin.git] / openflowplugin / src / main / java / org / opendaylight / openflowplugin / openflow / md / core / extension / ExtensionResolvers.java
1 /**
2  * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8 package org.opendaylight.openflowplugin.openflow.md.core.extension;
9
10 import org.opendaylight.openflowplugin.extension.api.GroupingLooseResolver;
11 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.general.rev140714.GeneralAugMatchNodesNodeGroupBucketsBucketActionsSetField;
12 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.general.rev140714.GeneralAugMatchNodesNodeTableFlow;
13 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.general.rev140714.GeneralAugMatchNodesNodeTableFlowApplyActionsSetField;
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.general.rev140714.GeneralAugMatchNodesNodeTableFlowWriteActionsSetField;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.general.rev140714.GeneralAugMatchNotifFlowsStatisticsUpdateApplyActionsSetField;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.general.rev140714.GeneralAugMatchNotifFlowsStatisticsUpdateWriteActionsSetField;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.general.rev140714.GeneralAugMatchNotifGroupDescStatsUpdatedSetField;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.general.rev140714.GeneralAugMatchNotifPacketIn;
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.general.rev140714.GeneralAugMatchNotifSwitchFlowRemoved;
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.general.rev140714.GeneralAugMatchNotifUpdateFlowStats;
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.general.rev140714.GeneralAugMatchPacketInMessage;
22 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.general.rev140714.GeneralAugMatchRpcAddFlow;
23 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.general.rev140714.GeneralAugMatchRpcAddFlowApplyActionsSetField;
24 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.general.rev140714.GeneralAugMatchRpcAddFlowWriteActionsSetField;
25 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.general.rev140714.GeneralAugMatchRpcAddGroupSetField;
26 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.general.rev140714.GeneralAugMatchRpcRemoveFlow;
27 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.general.rev140714.GeneralAugMatchRpcRemoveFlowApplyActionsSetField;
28 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.general.rev140714.GeneralAugMatchRpcRemoveFlowWriteActionsSetField;
29 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.general.rev140714.GeneralAugMatchRpcRemoveGroupSetField;
30 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.general.rev140714.GeneralAugMatchRpcTransmitPacketSetField;
31 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.general.rev140714.GeneralAugMatchRpcUpdateFlowOriginal;
32 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.general.rev140714.GeneralAugMatchRpcUpdateFlowOriginalApplyActionsSetField;
33 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.general.rev140714.GeneralAugMatchRpcUpdateFlowOriginalWriteActionsSetField;
34 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.general.rev140714.GeneralAugMatchRpcUpdateFlowUpdated;
35 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.general.rev140714.GeneralAugMatchRpcUpdateFlowUpdatedApplyActionsSetField;
36 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.general.rev140714.GeneralAugMatchRpcUpdateFlowUpdatedWriteActionsSetField;
37 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.general.rev140714.GeneralAugMatchRpcUpdateGroupOriginalSetField;
38 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.general.rev140714.GeneralAugMatchRpcUpdateGroupUpdatedSetField;
39 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.general.rev140714.GeneralExtensionListGrouping;
40
41 public class ExtensionResolvers {
42
43     private static GroupingLooseResolver<GeneralExtensionListGrouping> matchExtensionResolver =
44             new GroupingLooseResolver<>(GeneralExtensionListGrouping.class)
45                     .add(GeneralAugMatchRpcAddFlow.class)
46                     .add(GeneralAugMatchRpcRemoveFlow.class)
47                     .add(GeneralAugMatchRpcUpdateFlowOriginal.class)
48                     .add(GeneralAugMatchRpcUpdateFlowUpdated.class)
49                     .add(GeneralAugMatchNodesNodeTableFlow.class)
50                     .add(GeneralAugMatchNotifPacketIn.class)
51                     .add(GeneralAugMatchNotifUpdateFlowStats.class)
52                     .add(GeneralAugMatchNotifSwitchFlowRemoved.class)
53                     .add(GeneralAugMatchPacketInMessage.class)
54                     // SetField extensions
55                     .add(GeneralAugMatchRpcAddFlowWriteActionsSetField.class)
56                     .add(GeneralAugMatchRpcAddFlowApplyActionsSetField.class)
57                     .add(GeneralAugMatchRpcRemoveFlowWriteActionsSetField.class)
58                     .add(GeneralAugMatchRpcRemoveFlowApplyActionsSetField.class)
59                     .add(GeneralAugMatchRpcUpdateFlowOriginalWriteActionsSetField.class)
60                     .add(GeneralAugMatchRpcUpdateFlowOriginalApplyActionsSetField.class)
61                     .add(GeneralAugMatchRpcUpdateFlowUpdatedWriteActionsSetField.class)
62                     .add(GeneralAugMatchRpcUpdateFlowUpdatedApplyActionsSetField.class)
63                     .add(GeneralAugMatchRpcAddGroupSetField.class)
64                     .add(GeneralAugMatchRpcRemoveGroupSetField.class)
65                     .add(GeneralAugMatchRpcUpdateGroupOriginalSetField.class)
66                     .add(GeneralAugMatchRpcUpdateGroupUpdatedSetField.class)
67                     .add(GeneralAugMatchRpcTransmitPacketSetField.class)
68                     .add(GeneralAugMatchNodesNodeTableFlowWriteActionsSetField.class)
69                     .add(GeneralAugMatchNodesNodeTableFlowApplyActionsSetField.class)
70                     .add(GeneralAugMatchNodesNodeGroupBucketsBucketActionsSetField.class)
71                     .add(GeneralAugMatchNotifFlowsStatisticsUpdateWriteActionsSetField.class)
72                     .add(GeneralAugMatchNotifFlowsStatisticsUpdateApplyActionsSetField.class)
73                     .add(GeneralAugMatchNotifGroupDescStatsUpdatedSetField.class);
74
75     /**
76      * @return the matchExtensionResolver (covers match rpcs and inventory augmentations)
77      */
78     public static GroupingLooseResolver<GeneralExtensionListGrouping> getMatchExtensionResolver() {
79         return matchExtensionResolver;
80     }
81
82 }