X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fsal%2Fapi%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Faction%2FAction.java;h=8fc8fc16bf59b9f7248b093070783657f834c066;hb=2d36fc2f0b7691efe2f641beacd146c260676fea;hp=5e4f5f81fa15ef92d044324c667f97c7ddbffccd;hpb=11837100975c9ad113e12668c09ecd78f9433f73;p=controller.git diff --git a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/action/Action.java b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/action/Action.java index 5e4f5f81fa..8fc8fc16bf 100644 --- a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/action/Action.java +++ b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/action/Action.java @@ -1,4 +1,3 @@ - /* * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved. * @@ -9,42 +8,44 @@ package org.opendaylight.controller.sal.action; +import java.io.Serializable; + import javax.xml.bind.annotation.XmlAccessType; import javax.xml.bind.annotation.XmlAccessorType; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlSeeAlso; import javax.xml.bind.annotation.XmlTransient; -import org.apache.commons.lang3.builder.EqualsBuilder; -import org.apache.commons.lang3.builder.HashCodeBuilder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** - * Represents the generic action to be applied to the matched frame/packet/message + * Represents the generic action to be applied to the matched + * frame/packet/message */ @XmlRootElement @XmlAccessorType(XmlAccessType.NONE) -@XmlSeeAlso({Controller.class, Drop.class, Flood.class, FloodAll.class, HwPath.class, Loopback.class, Output.class, - PopVlan.class, PushVlan.class, SetDlDst.class, SetDlSrc.class, SetDlType.class, SetNwDst.class, SetNwSrc.class, - SetNwTos.class, SetTpDst.class, SetTpSrc.class, SetVlanCfi.class, SetVlanId.class, SetVlanPcp.class, SwPath.class}) -public abstract class Action { +@XmlSeeAlso({ Controller.class, Drop.class, Flood.class, FloodAll.class, HwPath.class, Loopback.class, Output.class, + PopVlan.class, PushVlan.class, SetDlDst.class, SetDlSrc.class, SetDlType.class, SetNwDst.class, SetNwSrc.class, + SetNwTos.class, SetTpDst.class, SetTpSrc.class, SetVlanCfi.class, SetVlanId.class, SetVlanPcp.class, + SwPath.class }) +public abstract class Action implements Serializable { + private static final long serialVersionUID = 1L; private static final Logger logger = LoggerFactory.getLogger(Action.class); - private static boolean debug = false; // Enable to find where in the code an invalid assignment is made + private static boolean debug = false; // Enable to find where in the code an + // invalid assignment is made @XmlTransient protected ActionType type; private transient boolean isValid = true; /* Dummy constructor for JAXB */ - public Action () { + public Action() { } /* - public Action (ActionType type, Object value) { - this.type = type; - this.value = value; - this.isValid = true; - } */ + * public Action (ActionType type, Object value) { this.type = type; + * this.value = value; this.isValid = true; } + */ /** * Checks if the passed value is in the valid range for this action @@ -60,8 +61,8 @@ public abstract class Action { } /** - * Checks if the passed value is in the valid range for the passed action type - * This method is used for complex Action types which are + * Checks if the passed value is in the valid range for the passed action + * type This method is used for complex Action types which are * * @param value * @return boolean @@ -80,15 +81,14 @@ public abstract class Action { * @return void */ private void throwValueException(int value) { - String error = "Invalid field value assignement. For type: " - + type.getId() + " Expected: " + type.getRange() + ", Got: 0x" - + Integer.toHexString(value); + String error = "Invalid field value assignement. For type: " + type.getId() + " Expected: " + type.getRange() + + ", Got: 0x" + Integer.toHexString(value); try { throw new Exception(error); } catch (Exception e) { logger.error(e.getMessage()); if (debug) { - logger.error("",e); + logger.error("", e); } } } @@ -114,7 +114,7 @@ public abstract class Action { /** * Returns whether the Action is valid or not * - * @return boolean + * @return boolean */ public boolean isValid() { return isValid; @@ -122,12 +122,28 @@ public abstract class Action { @Override public int hashCode() { - return HashCodeBuilder.reflectionHashCode(this); + final int prime = 31; + int result = 1; + result = prime * result + ((type == null) ? 0 : type.hashCode()); + return result; } @Override public boolean equals(Object obj) { - return EqualsBuilder.reflectionEquals(this, obj); + if (this == obj) { + return true; + } + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + Action other = (Action) obj; + if (type != other.type) { + return false; + } + return true; } @Override