3 * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
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
10 package org.opendaylight.controller.sal.core;
12 import javax.xml.bind.annotation.XmlAccessType;
13 import javax.xml.bind.annotation.XmlAccessorType;
14 import javax.xml.bind.annotation.XmlElement;
15 import javax.xml.bind.annotation.XmlRootElement;
18 * @file Capabilities.java
20 * @brief Class representing capabilities
22 * Describes supported capabilities
25 @XmlAccessorType(XmlAccessType.NONE)
26 public class Capabilities extends Property {
27 private static final long serialVersionUID = 1L;
28 @XmlElement(name="value")
29 private int capabilitiesValue;
31 public enum CapabilitiesType {
32 FLOW_STATS_CAPABILITY(1<<0),
33 TABLE_STATS_CAPABILITY(1<<1),
34 PORT_STATS_CAPABILITY(1<<2),
36 RSVD_CAPABILITY(1<<4),
37 IP_REASSEM_CAPABILITY(1<<5),
38 QUEUE_STATS_CAPABILITY(1<<6),
39 ARP_MATCH_IP_CAPABILITY(1<<7);
41 CapabilitiesType(int val) {
44 public int getValue() {
49 public static final String CapabilitiesPropName = "capabilities";
51 * Construct a Capabilities property
53 * @param capabilities the Capabilities value
54 * @return Constructed object
56 public Capabilities(int capabilities) {
57 super(CapabilitiesPropName);
58 this.capabilitiesValue = capabilities;
62 * Private constructor used for JAXB mapping
64 private Capabilities() {
65 super(CapabilitiesPropName);
66 this.capabilitiesValue = 0;
70 public Capabilities clone() {
71 return new Capabilities(this.capabilitiesValue);
74 public int getValue() {
75 return this.capabilitiesValue;
79 public int hashCode() {
81 int result = super.hashCode();
82 result = prime * result + capabilitiesValue;
87 public boolean equals(Object obj) {
90 if (!super.equals(obj))
92 if (getClass() != obj.getClass())
94 Capabilities other = (Capabilities) obj;
95 if (capabilitiesValue != other.capabilitiesValue)
101 public String toString() {
102 return "Capabilities[" + capabilitiesValue + "]";
106 public String getStringValue() {
107 return Integer.toHexString(capabilitiesValue);