public static MessageClass parseDataCoding(byte dataCoding) { byte value = (byte)(dataCoding & MASK_MESSAGE_CLASS); for (MessageClass val : values()) { if (val.value == value) return val; } throw new IllegalArgumentException( "No enum const MessageClass with value " + value + " from dataCoding " + dataCoding); } }
/** * Get the message class of current data coding. * * @return the {@link MessageClass}. */ public MessageClass getMessageClass() { return MessageClass.valueOf((byte)(value & MASK_MESSAGE_CLASS)); }
/** * Compose data coding with specified message class. * * @param messageClass is the message class. */ public void setMessageClass(MessageClass messageClass) { byte tmp = cleanMessageClass(value); value = (byte)(tmp | messageClass.value()); }
public DataCoding newInstance(byte dataCoding) { // bit 3 is reserved, and set to 0 byte fixedDataCoding = (byte)(MASK_BIT3_REMOVAL & dataCoding); Alphabet alphabet = Alphabet.parseDataCoding(fixedDataCoding); MessageClass messageClass = MessageClass.parseDataCoding(fixedDataCoding); return new SimpleDataCoding(alphabet, messageClass); } }
@Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; SimpleDataCoding other = (SimpleDataCoding)obj; if (alphabet == null) { if (other.alphabet != null) return false; } else if (!alphabet.equals(other.alphabet)) return false; if (messageClass == null) { if (other.messageClass != null) return false; } else if (!messageClass.equals(other.messageClass)) return false; return true; }
public byte toByte() { // base byte is 11110xxx or 0xf0, others injected byte value = (byte)0xf0; value |= alphabet.value(); value |= messageClass.value(); return value; }
public DataCoding newInstance(byte dataCoding) { // bit 3 is reserved, and set to 0 byte fixedDataCoding = (byte)(MASK_BIT3_REMOVAL & dataCoding); Alphabet alphabet = Alphabet.parseDataCoding(fixedDataCoding); MessageClass messageClass = MessageClass.parseDataCoding(fixedDataCoding); return new SimpleDataCoding(alphabet, messageClass); } }
@Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; SimpleDataCoding other = (SimpleDataCoding)obj; if (alphabet == null) { if (other.alphabet != null) return false; } else if (!alphabet.equals(other.alphabet)) return false; if (messageClass == null) { if (other.messageClass != null) return false; } else if (!messageClass.equals(other.messageClass)) return false; return true; }
public static MessageClass valueOf(byte value) { for (MessageClass val : values()) { if (val.value == value) return val; } throw new IllegalArgumentException( "No enum const MessageClass with value " + value); } }
public byte toByte() { byte value = compressed ? DataCodingFactory00xx.MASK_COMPRESSED : 0; value |= alphabet.value(); if (messageClass != null) { value |= DataCodingFactory00xx.MASK_CONTAIN_MESSAGE_CLASS; value |= messageClass.value(); } return value; }
public DataCoding newInstance(byte dataCoding) { // bit 3 is reserved, and set to 0 byte fixedDataCoding = (byte)(MASK_BIT3_REMOVAL & dataCoding); Alphabet alphabet = Alphabet.parseDataCoding(fixedDataCoding); MessageClass messageClass = MessageClass.parseDataCoding(fixedDataCoding); return new SimpleDataCoding(alphabet, messageClass); } }
@Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; SimpleDataCoding other = (SimpleDataCoding)obj; if (alphabet == null) { if (other.alphabet != null) return false; } else if (!alphabet.equals(other.alphabet)) return false; if (messageClass == null) { if (other.messageClass != null) return false; } else if (!messageClass.equals(other.messageClass)) return false; return true; }
public static MessageClass parseDataCoding(byte dataCoding) { byte value = (byte)(dataCoding & MASK_MESSAGE_CLASS); for (MessageClass val : values()) { if (val.value == value) return val; } throw new IllegalArgumentException( "No enum const MessageClass with value " + value + " from dataCoding " + dataCoding); } }
public byte toByte() { // base byte is 11110xxx or 0xf0, others injected byte value = (byte)0xf0; value |= alphabet.value(); value |= messageClass.value(); return value; }
@Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((alphabet == null) ? 0 : alphabet.hashCode()); result = prime * result + (compressed ? 1231 : 1237); result = prime * result + ((messageClass == null) ? 0 : messageClass.hashCode()); return result; }
public DataCoding newInstance(byte dataCoding) { boolean compressed = isCompressed(dataCoding); boolean containMessageClass = DataCodings.containsMessageClass(dataCoding); MessageClass messageClass = null; if (containMessageClass) { // ignore Message Class if the PDU has tell us no Message Class messageClass = MessageClass.parseDataCoding(dataCoding); } Alphabet alphabet = Alphabet.parseDataCoding(dataCoding); return new GeneralDataCoding(alphabet, messageClass, compressed); }
@Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; GeneralDataCoding other = (GeneralDataCoding)obj; if (alphabet == null) { if (other.alphabet != null) return false; } else if (!alphabet.equals(other.alphabet)) return false; if (compressed != other.compressed) return false; if (messageClass == null) { if (other.messageClass != null) return false; } else if (!messageClass.equals(other.messageClass)) return false; return true; }
public static MessageClass valueOf(byte value) { for (MessageClass val : values()) { if (val.value == value) return val; } throw new IllegalArgumentException( "No enum const MessageClass with value " + value); }