code: public void decode(AsnInputStream ais) throws ParseException {
          try {
              tag = ais.getTag();
              primitive = ais.isTagPrimitive();
              tagClass = ais.getTagClass();
              data = ais.readSequence();
              this.encodingLength = data.length;
              if (singleParameterInAsn && ais.available() > 0) { // extra data found after main array
                  byte[] buf = new byte[data.length + ais.available()];
                  System.arraycopy(data, 0, buf, 0, data.length);
                  ais.read(buf, data.length, ais.available());
                  data = buf;
              }
  
          } catch (IOException e) {
              throw new ParseException(RejectProblem.generalBadlyStructuredCompPortion, "IOException while decoding the parameter: " + e.getMessage(), e);
          } catch (AsnException e) {
              throw new ParseException(RejectProblem.generalBadlyStructuredCompPortion, "AsnException while decoding the parameter: " + e.getMessage(), e);
          }
      }
docs: /*
  (non-Javadoc)
  
  @see org.restcomm.protocols.ss7.tcap.asn.Encodable#decode(org.mobicents.protocols .asn.AsnInputStream)