Added reserved port descriptions to comments matching them to the OF Spec in NodeConn...
[controller.git] / opendaylight / sal / api / src / main / java / org / opendaylight / controller / sal / core / Actions.java
1
2 /*
3  * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
4  *
5  * This program and the accompanying materials are made available under the
6  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
7  * and is available at http://www.eclipse.org/legal/epl-v10.html
8  */
9
10 package org.opendaylight.controller.sal.core;
11
12 import javax.xml.bind.annotation.XmlElement;
13 import javax.xml.bind.annotation.XmlRootElement;
14
15 import org.apache.commons.lang3.builder.EqualsBuilder;
16 import org.apache.commons.lang3.builder.HashCodeBuilder;
17 import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
18
19 /**
20  * @file   Actions.java
21  *
22  * @brief  Class representing actions
23  *
24  * Describes supported actions
25  */
26
27 @XmlRootElement
28 public class Actions extends Property {
29         private static final long serialVersionUID = 1L;
30     @XmlElement
31     private int actionsValue;
32     
33     public enum ActionType { 
34         OUTPUT_PORT_ACTION(1<<0),
35         VLAN_VID_ACTION(1<<1),
36         VLAN_PCP_ACTION(1<<2),
37         VLAN_STRIP_ACTION(1<<3),
38         DLSRC_ACTION(1<<4),
39         DLDST_ACTION(1<<5),
40         NWSRC_ACTION(1<<6),
41         NWDST_ACTION(1<<7),
42         NWTOS_ACTION(1<<8),
43         TPTSRC_ACTION(1<<9),
44         TPTDST_ACTION(1<<10),
45         ENQUEUE_ACTION(1<<11),
46         VENDOR_ACTION(0xffff);
47         private final int at;
48         ActionType(int val) {
49                 this.at = val;
50         }
51         public int getValue() {
52                 return at;
53         }
54     }
55     
56     public static final String ActionsPropName = "actions";
57     /**
58      * Construct a actions property
59      *
60      * @param actions the actions value
61      * @return Constructed object
62      */
63     public Actions(int actions) {
64         super(ActionsPropName);
65         this.actionsValue = actions;
66     }
67
68     /*
69      * Private constructor used for JAXB mapping
70      */
71     private Actions() {
72         super(ActionsPropName);
73         this.actionsValue = 0;
74     }
75
76     public Actions clone() {
77         return new Actions(this.actionsValue);
78     }
79     
80     public int getValue() {
81         return this.actionsValue;
82     }
83     
84     
85     @Override
86     public int hashCode() {
87         return HashCodeBuilder.reflectionHashCode(this);
88     }
89
90     @Override
91     public boolean equals(Object obj) {
92         return EqualsBuilder.reflectionEquals(this, obj);
93     }
94
95     @Override
96     public String toString() {
97         return "Actions[" + ReflectionToStringBuilder.toString(this) + "]";
98     }
99 }