blob: 23bc9e851ca6cd87916ee70f881968a99287e4ed [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.plc4x.java.eip.readwrite;
import static org.apache.plc4x.java.spi.codegen.fields.FieldReaderFactory.*;
import static org.apache.plc4x.java.spi.codegen.fields.FieldWriterFactory.*;
import static org.apache.plc4x.java.spi.codegen.io.DataReaderFactory.*;
import static org.apache.plc4x.java.spi.codegen.io.DataWriterFactory.*;
import static org.apache.plc4x.java.spi.generation.StaticHelper.*;
import java.time.*;
import java.util.*;
import org.apache.plc4x.java.api.exceptions.*;
import org.apache.plc4x.java.api.value.*;
import org.apache.plc4x.java.spi.codegen.*;
import org.apache.plc4x.java.spi.codegen.fields.*;
import org.apache.plc4x.java.spi.codegen.io.*;
import org.apache.plc4x.java.spi.generation.*;
// Code generated by code-generation. DO NOT EDIT.
public class ServicesResponse extends TypeId implements Message {
// Accessors for discriminator values.
public Integer getId() {
return (int) 0x0100;
}
// Properties.
protected final int encapsulationProtocol;
protected final boolean supportsCIPEncapsulation;
protected final boolean supportsUDP;
protected final byte[] data;
// Arguments.
protected final IntegerEncoding order;
// Reserved Fields
private Byte reservedField0;
private Integer reservedField1;
public ServicesResponse(
int encapsulationProtocol,
boolean supportsCIPEncapsulation,
boolean supportsUDP,
byte[] data,
IntegerEncoding order) {
super(order);
this.encapsulationProtocol = encapsulationProtocol;
this.supportsCIPEncapsulation = supportsCIPEncapsulation;
this.supportsUDP = supportsUDP;
this.data = data;
this.order = order;
}
public int getEncapsulationProtocol() {
return encapsulationProtocol;
}
public boolean getSupportsCIPEncapsulation() {
return supportsCIPEncapsulation;
}
public boolean getSupportsUDP() {
return supportsUDP;
}
public byte[] getData() {
return data;
}
@Override
protected void serializeTypeIdChild(WriteBuffer writeBuffer) throws SerializationException {
PositionAware positionAware = writeBuffer;
boolean _lastItem = ThreadLocalHelper.lastItemThreadLocal.get();
int startPos = positionAware.getPos();
writeBuffer.pushContext("ServicesResponse");
// Implicit Field (serviceLen) (Used for parsing, but its value is not stored as it's implicitly
// given by the objects content)
int serviceLen = (int) ((getLengthInBytes()) - (4));
writeImplicitField(
"serviceLen",
serviceLen,
writeUnsignedInt(writeBuffer, 16),
WithOption.WithByteOrder(
(((order) == (IntegerEncoding.BIG_ENDIAN))
? ByteOrder.BIG_ENDIAN
: ByteOrder.LITTLE_ENDIAN)));
// Simple Field (encapsulationProtocol)
writeSimpleField(
"encapsulationProtocol",
encapsulationProtocol,
writeUnsignedInt(writeBuffer, 16),
WithOption.WithByteOrder(
(((order) == (IntegerEncoding.BIG_ENDIAN))
? ByteOrder.BIG_ENDIAN
: ByteOrder.LITTLE_ENDIAN)));
// Reserved Field (reserved)
writeReservedField(
"reserved",
reservedField0 != null ? reservedField0 : (byte) 0x00,
writeUnsignedByte(writeBuffer, 2),
WithOption.WithByteOrder(
(((order) == (IntegerEncoding.BIG_ENDIAN))
? ByteOrder.BIG_ENDIAN
: ByteOrder.LITTLE_ENDIAN)));
// Simple Field (supportsCIPEncapsulation)
writeSimpleField(
"supportsCIPEncapsulation",
supportsCIPEncapsulation,
writeBoolean(writeBuffer),
WithOption.WithByteOrder(
(((order) == (IntegerEncoding.BIG_ENDIAN))
? ByteOrder.BIG_ENDIAN
: ByteOrder.LITTLE_ENDIAN)));
// Reserved Field (reserved)
writeReservedField(
"reserved",
reservedField1 != null ? reservedField1 : (int) 0x00,
writeUnsignedInt(writeBuffer, 12),
WithOption.WithByteOrder(
(((order) == (IntegerEncoding.BIG_ENDIAN))
? ByteOrder.BIG_ENDIAN
: ByteOrder.LITTLE_ENDIAN)));
// Simple Field (supportsUDP)
writeSimpleField(
"supportsUDP",
supportsUDP,
writeBoolean(writeBuffer),
WithOption.WithByteOrder(
(((order) == (IntegerEncoding.BIG_ENDIAN))
? ByteOrder.BIG_ENDIAN
: ByteOrder.LITTLE_ENDIAN)));
// Array Field (data)
writeByteArrayField(
"data",
data,
writeByteArray(writeBuffer, 8),
WithOption.WithByteOrder(
(((order) == (IntegerEncoding.BIG_ENDIAN))
? ByteOrder.BIG_ENDIAN
: ByteOrder.LITTLE_ENDIAN)));
writeBuffer.popContext("ServicesResponse");
}
@Override
public int getLengthInBytes() {
return (int) Math.ceil((float) getLengthInBits() / 8.0);
}
@Override
public int getLengthInBits() {
int lengthInBits = super.getLengthInBits();
ServicesResponse _value = this;
boolean _lastItem = ThreadLocalHelper.lastItemThreadLocal.get();
// Implicit Field (serviceLen)
lengthInBits += 16;
// Simple field (encapsulationProtocol)
lengthInBits += 16;
// Reserved Field (reserved)
lengthInBits += 2;
// Simple field (supportsCIPEncapsulation)
lengthInBits += 1;
// Reserved Field (reserved)
lengthInBits += 12;
// Simple field (supportsUDP)
lengthInBits += 1;
// Array field
if (data != null) {
lengthInBits += 8 * data.length;
}
return lengthInBits;
}
public static TypeIdBuilder staticParseTypeIdBuilder(ReadBuffer readBuffer, IntegerEncoding order)
throws ParseException {
readBuffer.pullContext("ServicesResponse");
PositionAware positionAware = readBuffer;
int startPos = positionAware.getPos();
int curPos;
boolean _lastItem = ThreadLocalHelper.lastItemThreadLocal.get();
int serviceLen =
readImplicitField(
"serviceLen",
readUnsignedInt(readBuffer, 16),
WithOption.WithByteOrder(
(((order) == (IntegerEncoding.BIG_ENDIAN))
? ByteOrder.BIG_ENDIAN
: ByteOrder.LITTLE_ENDIAN)));
int encapsulationProtocol =
readSimpleField(
"encapsulationProtocol",
readUnsignedInt(readBuffer, 16),
WithOption.WithByteOrder(
(((order) == (IntegerEncoding.BIG_ENDIAN))
? ByteOrder.BIG_ENDIAN
: ByteOrder.LITTLE_ENDIAN)));
Byte reservedField0 =
readReservedField(
"reserved",
readUnsignedByte(readBuffer, 2),
(byte) 0x00,
WithOption.WithByteOrder(
(((order) == (IntegerEncoding.BIG_ENDIAN))
? ByteOrder.BIG_ENDIAN
: ByteOrder.LITTLE_ENDIAN)));
boolean supportsCIPEncapsulation =
readSimpleField(
"supportsCIPEncapsulation",
readBoolean(readBuffer),
WithOption.WithByteOrder(
(((order) == (IntegerEncoding.BIG_ENDIAN))
? ByteOrder.BIG_ENDIAN
: ByteOrder.LITTLE_ENDIAN)));
Integer reservedField1 =
readReservedField(
"reserved",
readUnsignedInt(readBuffer, 12),
(int) 0x00,
WithOption.WithByteOrder(
(((order) == (IntegerEncoding.BIG_ENDIAN))
? ByteOrder.BIG_ENDIAN
: ByteOrder.LITTLE_ENDIAN)));
boolean supportsUDP =
readSimpleField(
"supportsUDP",
readBoolean(readBuffer),
WithOption.WithByteOrder(
(((order) == (IntegerEncoding.BIG_ENDIAN))
? ByteOrder.BIG_ENDIAN
: ByteOrder.LITTLE_ENDIAN)));
byte[] data =
readBuffer.readByteArray(
"data",
Math.toIntExact((serviceLen) - (4)),
WithOption.WithByteOrder(
(((order) == (IntegerEncoding.BIG_ENDIAN))
? ByteOrder.BIG_ENDIAN
: ByteOrder.LITTLE_ENDIAN)));
readBuffer.closeContext("ServicesResponse");
// Create the instance
return new ServicesResponseBuilderImpl(
encapsulationProtocol,
supportsCIPEncapsulation,
supportsUDP,
data,
order,
reservedField0,
reservedField1);
}
public static class ServicesResponseBuilderImpl implements TypeId.TypeIdBuilder {
private final int encapsulationProtocol;
private final boolean supportsCIPEncapsulation;
private final boolean supportsUDP;
private final byte[] data;
private final IntegerEncoding order;
private final Byte reservedField0;
private final Integer reservedField1;
public ServicesResponseBuilderImpl(
int encapsulationProtocol,
boolean supportsCIPEncapsulation,
boolean supportsUDP,
byte[] data,
IntegerEncoding order,
Byte reservedField0,
Integer reservedField1) {
this.encapsulationProtocol = encapsulationProtocol;
this.supportsCIPEncapsulation = supportsCIPEncapsulation;
this.supportsUDP = supportsUDP;
this.data = data;
this.order = order;
this.reservedField0 = reservedField0;
this.reservedField1 = reservedField1;
}
public ServicesResponse build(IntegerEncoding order) {
ServicesResponse servicesResponse =
new ServicesResponse(
encapsulationProtocol, supportsCIPEncapsulation, supportsUDP, data, order);
servicesResponse.reservedField0 = reservedField0;
servicesResponse.reservedField1 = reservedField1;
return servicesResponse;
}
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (!(o instanceof ServicesResponse)) {
return false;
}
ServicesResponse that = (ServicesResponse) o;
return (getEncapsulationProtocol() == that.getEncapsulationProtocol())
&& (getSupportsCIPEncapsulation() == that.getSupportsCIPEncapsulation())
&& (getSupportsUDP() == that.getSupportsUDP())
&& (getData() == that.getData())
&& super.equals(that)
&& true;
}
@Override
public int hashCode() {
return Objects.hash(
super.hashCode(),
getEncapsulationProtocol(),
getSupportsCIPEncapsulation(),
getSupportsUDP(),
getData());
}
@Override
public String toString() {
WriteBufferBoxBased writeBufferBoxBased = new WriteBufferBoxBased(true, true);
try {
writeBufferBoxBased.writeSerializable(this);
} catch (SerializationException e) {
throw new RuntimeException(e);
}
return "\n" + writeBufferBoxBased.getBox().toString() + "\n";
}
}