@Override public UnknownIpV6NeighborDiscoveryOption build() { return new UnknownIpV6NeighborDiscoveryOption(this); } }
@Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("[Type: ") .append(type) .append("] [Length: ") .append(getLengthAsInt()) .append(" bytes] [Data: 0x") .append(ByteArrays.toHexString(data, "")) .append("]"); return sb.toString(); }
@Override public byte[] getRawData() { byte[] rawData = new byte[length()]; rawData[0] = type.value(); rawData[1] = length; System.arraycopy(data, 0, rawData, 2, data.length); return rawData; }
@Override public IpV6NeighborDiscoveryOption newInstance(byte[] rawData, int offset, int length) { try { return UnknownIpV6NeighborDiscoveryOption.newInstance(rawData, offset, length); } catch (IllegalRawDataException e) { return IllegalIpV6NeighborDiscoveryOption.newInstance(rawData, offset, length); } }
@Override public IpV6NeighborDiscoveryOption newInstance(byte[] rawData, int offset, int length) { try { return UnknownIpV6NeighborDiscoveryOption.newInstance(rawData, offset, length); } catch (IllegalRawDataException e) { return IllegalIpV6NeighborDiscoveryOption.newInstance(rawData, offset, length); } }
/** * A static factory method. This method validates the arguments by {@link * ByteArrays#validateBounds(byte[], int, int)}, which may throw exceptions undocumented here. * * @param rawData rawData * @param offset offset * @param length length * @return a new UnknownIpV6NeighborDiscoveryOption object. * @throws IllegalRawDataException if parsing the raw data fails. */ public static UnknownIpV6NeighborDiscoveryOption newInstance( byte[] rawData, int offset, int length) throws IllegalRawDataException { ByteArrays.validateBounds(rawData, offset, length); return new UnknownIpV6NeighborDiscoveryOption(rawData, offset, length); }
private UnknownIpV6NeighborDiscoveryOption(Builder builder) { if (builder == null || builder.type == null || builder.data == null) { StringBuilder sb = new StringBuilder(); sb.append("builder: ") .append(builder) .append(" builder.type: ") .append(builder.type) .append(" builder.data: ") .append(builder.data); throw new NullPointerException(sb.toString()); } this.type = builder.type; this.data = new byte[builder.data.length]; System.arraycopy(builder.data, 0, this.data, 0, builder.data.length); if (builder.correctLengthAtBuild) { this.length = (byte) length(); } else { this.length = builder.length; } }
@Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("[Type: ") .append(type) .append("] [Length: ") .append(getLengthAsInt()) .append(" bytes] [Data: 0x") .append(ByteArrays.toHexString(data, "")) .append("]"); return sb.toString(); }
@Override public UnknownIpV6NeighborDiscoveryOption build() { return new UnknownIpV6NeighborDiscoveryOption(this); } }
@Override public byte[] getRawData() { byte[] rawData = new byte[length()]; rawData[0] = type.value(); rawData[1] = length; System.arraycopy(data, 0, rawData, 2, data.length); return rawData; }
/** * A static factory method. This method validates the arguments by {@link * ByteArrays#validateBounds(byte[], int, int)}, which may throw exceptions undocumented here. * * @param rawData rawData * @param offset offset * @param length length * @return a new UnknownIpV6NeighborDiscoveryOption object. * @throws IllegalRawDataException if parsing the raw data fails. */ public static UnknownIpV6NeighborDiscoveryOption newInstance( byte[] rawData, int offset, int length) throws IllegalRawDataException { ByteArrays.validateBounds(rawData, offset, length); return new UnknownIpV6NeighborDiscoveryOption(rawData, offset, length); }
private UnknownIpV6NeighborDiscoveryOption(Builder builder) { if (builder == null || builder.type == null || builder.data == null) { StringBuilder sb = new StringBuilder(); sb.append("builder: ") .append(builder) .append(" builder.type: ") .append(builder.type) .append(" builder.data: ") .append(builder.data); throw new NullPointerException(sb.toString()); } this.type = builder.type; this.data = new byte[builder.data.length]; System.arraycopy(builder.data, 0, this.data, 0, builder.data.length); if (builder.correctLengthAtBuild) { this.length = (byte) length(); } else { this.length = builder.length; } }