/** * This class file was automatically generated by jASN1 v1.9.0 (http://www.openmuc.org) */ package org.openmuc.openiec61850.internal.mms.asn1; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.Serializable; import org.openmuc.jasn1.ber.BerLength; import org.openmuc.jasn1.ber.BerTag; import org.openmuc.jasn1.ber.ReverseByteArrayOutputStream; public class ConfirmedServiceRequest implements Serializable { private static final long serialVersionUID = 1L; public byte[] code = null; private GetNameListRequest getNameList = null; private ReadRequest read = null; private WriteRequest write = null; private GetVariableAccessAttributesRequest getVariableAccessAttributes = null; private DefineNamedVariableListRequest defineNamedVariableList = null; private GetNamedVariableListAttributesRequest getNamedVariableListAttributes = null; private DeleteNamedVariableListRequest deleteNamedVariableList = null; public ConfirmedServiceRequest() { } public ConfirmedServiceRequest(byte[] code) { this.code = code; } public void setGetNameList(GetNameListRequest getNameList) { this.getNameList = getNameList; } public GetNameListRequest getGetNameList() { return getNameList; } public void setRead(ReadRequest read) { this.read = read; } public ReadRequest getRead() { return read; } public void setWrite(WriteRequest write) { this.write = write; } public WriteRequest getWrite() { return write; } public void setGetVariableAccessAttributes(GetVariableAccessAttributesRequest getVariableAccessAttributes) { this.getVariableAccessAttributes = getVariableAccessAttributes; } public GetVariableAccessAttributesRequest getGetVariableAccessAttributes() { return getVariableAccessAttributes; } public void setDefineNamedVariableList(DefineNamedVariableListRequest defineNamedVariableList) { this.defineNamedVariableList = defineNamedVariableList; } public DefineNamedVariableListRequest getDefineNamedVariableList() { return defineNamedVariableList; } public void setGetNamedVariableListAttributes( GetNamedVariableListAttributesRequest getNamedVariableListAttributes) { this.getNamedVariableListAttributes = getNamedVariableListAttributes; } public GetNamedVariableListAttributesRequest getGetNamedVariableListAttributes() { return getNamedVariableListAttributes; } public void setDeleteNamedVariableList(DeleteNamedVariableListRequest deleteNamedVariableList) { this.deleteNamedVariableList = deleteNamedVariableList; } public DeleteNamedVariableListRequest getDeleteNamedVariableList() { return deleteNamedVariableList; } public int encode(OutputStream os) throws IOException { if (code != null) { for (int i = code.length - 1; i >= 0; i--) { os.write(code[i]); } return code.length; } int codeLength = 0; int sublength; if (deleteNamedVariableList != null) { codeLength += deleteNamedVariableList.encode(os, false); // write tag: CONTEXT_CLASS, CONSTRUCTED, 13 os.write(0xAD); codeLength += 1; return codeLength; } if (getNamedVariableListAttributes != null) { sublength = getNamedVariableListAttributes.encode(os); codeLength += sublength; codeLength += BerLength.encodeLength(os, sublength); // write tag: CONTEXT_CLASS, CONSTRUCTED, 12 os.write(0xAC); codeLength += 1; return codeLength; } if (defineNamedVariableList != null) { codeLength += defineNamedVariableList.encode(os, false); // write tag: CONTEXT_CLASS, CONSTRUCTED, 11 os.write(0xAB); codeLength += 1; return codeLength; } if (getVariableAccessAttributes != null) { sublength = getVariableAccessAttributes.encode(os); codeLength += sublength; codeLength += BerLength.encodeLength(os, sublength); // write tag: CONTEXT_CLASS, CONSTRUCTED, 6 os.write(0xA6); codeLength += 1; return codeLength; } if (write != null) { codeLength += write.encode(os, false); // write tag: CONTEXT_CLASS, CONSTRUCTED, 5 os.write(0xA5); codeLength += 1; return codeLength; } if (read != null) { codeLength += read.encode(os, false); // write tag: CONTEXT_CLASS, CONSTRUCTED, 4 os.write(0xA4); codeLength += 1; return codeLength; } if (getNameList != null) { codeLength += getNameList.encode(os, false); // write tag: CONTEXT_CLASS, CONSTRUCTED, 1 os.write(0xA1); codeLength += 1; return codeLength; } throw new IOException("Error encoding CHOICE: No element of CHOICE was selected."); } public int decode(InputStream is) throws IOException { return decode(is, null); } public int decode(InputStream is, BerTag berTag) throws IOException { int codeLength = 0; BerTag passedTag = berTag; if (berTag == null) { berTag = new BerTag(); codeLength += berTag.decode(is); } if (berTag.equals(BerTag.CONTEXT_CLASS, BerTag.CONSTRUCTED, 1)) { getNameList = new GetNameListRequest(); codeLength += getNameList.decode(is, false); return codeLength; } if (berTag.equals(BerTag.CONTEXT_CLASS, BerTag.CONSTRUCTED, 4)) { read = new ReadRequest(); codeLength += read.decode(is, false); return codeLength; } if (berTag.equals(BerTag.CONTEXT_CLASS, BerTag.CONSTRUCTED, 5)) { write = new WriteRequest(); codeLength += write.decode(is, false); return codeLength; } if (berTag.equals(BerTag.CONTEXT_CLASS, BerTag.CONSTRUCTED, 6)) { codeLength += BerLength.skip(is); getVariableAccessAttributes = new GetVariableAccessAttributesRequest(); codeLength += getVariableAccessAttributes.decode(is, null); return codeLength; } if (berTag.equals(BerTag.CONTEXT_CLASS, BerTag.CONSTRUCTED, 11)) { defineNamedVariableList = new DefineNamedVariableListRequest(); codeLength += defineNamedVariableList.decode(is, false); return codeLength; } if (berTag.equals(BerTag.CONTEXT_CLASS, BerTag.CONSTRUCTED, 12)) { codeLength += BerLength.skip(is); getNamedVariableListAttributes = new GetNamedVariableListAttributesRequest(); codeLength += getNamedVariableListAttributes.decode(is, null); return codeLength; } if (berTag.equals(BerTag.CONTEXT_CLASS, BerTag.CONSTRUCTED, 13)) { deleteNamedVariableList = new DeleteNamedVariableListRequest(); codeLength += deleteNamedVariableList.decode(is, false); return codeLength; } if (passedTag != null) { return 0; } throw new IOException("Error decoding CHOICE: Tag " + berTag + " matched to no item."); } public void encodeAndSave(int encodingSizeGuess) throws IOException { ReverseByteArrayOutputStream os = new ReverseByteArrayOutputStream(encodingSizeGuess); encode(os); code = os.getArray(); } @Override public String toString() { StringBuilder sb = new StringBuilder(); appendAsString(sb, 0); return sb.toString(); } public void appendAsString(StringBuilder sb, int indentLevel) { if (getNameList != null) { sb.append("getNameList: "); getNameList.appendAsString(sb, indentLevel + 1); return; } if (read != null) { sb.append("read: "); read.appendAsString(sb, indentLevel + 1); return; } if (write != null) { sb.append("write: "); write.appendAsString(sb, indentLevel + 1); return; } if (getVariableAccessAttributes != null) { sb.append("getVariableAccessAttributes: "); getVariableAccessAttributes.appendAsString(sb, indentLevel + 1); return; } if (defineNamedVariableList != null) { sb.append("defineNamedVariableList: "); defineNamedVariableList.appendAsString(sb, indentLevel + 1); return; } if (getNamedVariableListAttributes != null) { sb.append("getNamedVariableListAttributes: "); getNamedVariableListAttributes.appendAsString(sb, indentLevel + 1); return; } if (deleteNamedVariableList != null) { sb.append("deleteNamedVariableList: "); deleteNamedVariableList.appendAsString(sb, indentLevel + 1); return; } sb.append(""); } }