This also entailed fixing equals and HashCodeBuilder for Packet.
Change-Id: I5497a719d51becfd0019fada2c7f171fadfbdb13
Signed-off-by: Ed Warnicke <eaw@cisco.com>
import java.util.LinkedHashMap;
import java.util.Map;
-import org.apache.commons.lang3.builder.EqualsBuilder;
-import org.apache.commons.lang3.builder.HashCodeBuilder;
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.lang3.tuple.Pair;
@Override
public int hashCode() {
- return HashCodeBuilder.reflectionHashCode(this);
+ final int prime = 31;
+ int result = super.hashCode();
+ result = prime * result
+ + ((fieldValues == null) ? 0 : fieldValues.hashCode());
+ return result;
}
@Override
public boolean equals(Object obj) {
- return EqualsBuilder.reflectionEquals(this, obj);
+ if (this == obj)
+ return true;
+ if (!super.equals(obj))
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ ARP other = (ARP) obj;
+ if (fieldValues == null) {
+ if (other.fieldValues != null)
+ return false;
+ } else if (!fieldValues.equals(other.fieldValues))
+ return false;
+ return true;
}
}
import java.io.UnsupportedEncodingException;
import java.nio.charset.Charset;
-import java.util.HashMap;
-
import java.util.Arrays;
+import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
-import org.apache.commons.lang3.builder.EqualsBuilder;
-import org.apache.commons.lang3.builder.HashCodeBuilder;
+
import org.apache.commons.lang3.tuple.MutablePair;
import org.apache.commons.lang3.tuple.Pair;
import org.opendaylight.controller.sal.utils.HexEncode;
@Override
public int hashCode() {
- return HashCodeBuilder.reflectionHashCode(this);
+ final int prime = 31;
+ int result = super.hashCode();
+ result = prime * result
+ + ((fieldValues == null) ? 0 : fieldValues.hashCode());
+ return result;
}
@Override
public boolean equals(Object obj) {
- return EqualsBuilder.reflectionEquals(this, obj);
+ if (this == obj)
+ return true;
+ if (!super.equals(obj))
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ LLDPTLV other = (LLDPTLV) obj;
+ if (fieldValues == null) {
+ if (other.fieldValues != null)
+ return false;
+ } else if (!fieldValues.equals(other.fieldValues))
+ return false;
+ return true;
}
@Override
/**
* Returns the size in bits of the whole TLV
- *
+ *
* @return int - size in bits of full TLV
*/
public int getTLVSize() {
/**
* Creates the ChassisID TLV value including the subtype and ChassisID
* string
- *
+ *
* @param nodeId
* node identifier string
* @return the ChassisID TLV value in byte array
/**
* Creates the PortID TLV value including the subtype and PortID string
- *
+ *
* @param portId
* port identifier string
* @return the PortID TLV value in byte array
/**
* Creates the custom TLV value including OUI, subtype and custom string
- *
+ *
* @param portId
* port identifier string
* @return the custom TLV value in byte array
/**
* Retrieves the string from TLV value and returns it in HexString format
- *
+ *
* @param tlvValue
* the TLV value
* @param tlvLen
/**
* Retrieves the string from TLV value
- *
+ *
* @param tlvValue
* the TLV value
* @param tlvLen
/**
* Retrieves the custom string from the Custom TLV value which includes OUI,
* subtype and custom string
- *
+ *
* @param customTlvValue
* the custom TLV value
* @param customTlvLen
/**
* This method deserializes the data bits obtained from the wire into the
* respective header and payload which are of type Packet
- *
+ *
* @param byte[] data - data from wire to deserialize
* @param int bitOffset bit position where packet header starts in data
* array
/**
* This method serializes the header and payload from the respective
* packet class, into a single stream of bytes to be sent on the wire
- *
+ *
* @return The byte array representing the serialized Packet
* @throws PacketException
*/
* byte stream which cannot be done or cannot be done efficiently during the
* normal Packet.serialize() path. An example is the checksum computation
* for IPv4
- *
+ *
* @param byte[] - serialized bytes
* @throws PacketException
*/
* of checksum varies based on the protocol, this method is overridden.
* Currently only IPv4 and ICMP do checksum computation and validation. TCP
* and UDP need to implement these if required.
- *
+ *
* @param byte[] data The byte stream representing the Ethernet frame
* @param int startBitOffset The bit offset from where the byte array corresponding to this Packet starts in the frame
* @throws PacketException
/**
* Gets the header length in bits
- *
+ *
* @return int the header length in bits
*/
public int getHeaderSize() {
* This method fetches the start bit offset for header field specified by
* 'fieldname'. The offset is present in the hdrFieldCoordMap of the
* respective packet class
- *
+ *
* @param String
* fieldName
* @return Integer - startOffset of the requested field
* This method fetches the number of bits for header field specified by
* 'fieldname'. The numBits are present in the hdrFieldCoordMap of the
* respective packet class
- *
+ *
* @param String
* fieldName
* @return Integer - number of bits of the requested field
/**
* Returns the raw payload carried by this packet in case payload was not
* parsed. Caller can call this function in case the getPaylod() returns null.
- *
+ *
* @return The raw payload if not parsable as an array of bytes, null otherwise
*/
public byte[] getRawPayload() {
/**
* Set a raw payload in the packet class
- *
+ *
* @param payload The raw payload as byte array
*/
public void setRawPayload(byte[] payload) {
* packet received from wire is not equal to the checksum read from the
* stream. For the Packet class which do not have a checksum field, this
* function will always return false.
- *
- *
+ *
+ *
* @return true if the deserialized packet's recomputed checksum is not
* equal to the packet carried checksum
*/