org.openmuc.jdlms.internal.asn1.cosem.SetRequestWithDatablock Maven / Gradle / Ivy
/**
* This class file was automatically generated by the AXDR compiler that is part of jDLMS (http://www.openmuc.org)
*/
package org.openmuc.jdlms.internal.asn1.cosem;
import java.io.IOException;
import java.io.InputStream;
import org.openmuc.jasn1.ber.ReverseByteArrayOutputStream;
import org.openmuc.jdlms.internal.asn1.axdr.AxdrType;
public class SetRequestWithDatablock implements AxdrType {
public byte[] code = null;
public InvokeIdAndPriority invokeIdAndPriority = null;
public DataBlockSA datablock = null;
public SetRequestWithDatablock() {
}
public SetRequestWithDatablock(byte[] code) {
this.code = code;
}
public SetRequestWithDatablock(InvokeIdAndPriority invokeIdAndPriority, DataBlockSA datablock) {
this.invokeIdAndPriority = invokeIdAndPriority;
this.datablock = datablock;
}
@Override
public int encode(ReverseByteArrayOutputStream axdrOStream) throws IOException {
int codeLength;
if (code != null) {
codeLength = code.length;
for (int i = code.length - 1; i >= 0; i--) {
axdrOStream.write(code[i]);
}
}
else {
codeLength = 0;
codeLength += datablock.encode(axdrOStream);
codeLength += invokeIdAndPriority.encode(axdrOStream);
}
return codeLength;
}
@Override
public int decode(InputStream iStream) throws IOException {
int codeLength = 0;
invokeIdAndPriority = new InvokeIdAndPriority();
codeLength += invokeIdAndPriority.decode(iStream);
datablock = new DataBlockSA();
codeLength += datablock.decode(iStream);
return codeLength;
}
public void encodeAndSave(int encodingSizeGuess) throws IOException {
ReverseByteArrayOutputStream axdrOStream = new ReverseByteArrayOutputStream(encodingSizeGuess);
encode(axdrOStream);
code = axdrOStream.getArray();
}
@Override
public String toString() {
return "sequence: {" + "invokeIdAndPriority: " + invokeIdAndPriority + ", datablock: " + datablock + "}";
}
}