public int dump(DumpContext dc) throws IOException {
   dc.indent();
   dc.getPs().print("StatusfieldCheck\n");
   dc.increaseIndent();
   int retVal = 0;
   // write caPmtCmdId
   dc.indent();
   dc.getPs()
       .println("caPmtCmdId=" + caPmtCmdId + "(0x" + Integer.toHexString(caPmtCmdId) + ")");
   // write programInfoLength
   {
     ArrayList<CaDescriptor> temp1 = programInfoLength;
     for (int iIdx = 0; iIdx < temp1.getCount(); iIdx++) {
       CaDescriptor element = temp1.get(iIdx);
       dc.indent();
       dc.getPs().println(iIdx);
       if (element != null) {
         dc.indent();
         dc.getPs().println("element");
         retVal += element.dump(dc);
       }
     }
   }
   dc.decreaseIndent();
   return retVal;
 }
    public int read(DataInputStream istream) throws IOException {
      preRead();
      int retVal = 0;

      // read prgmInfoLength
      for (; istream.available() > 0; ) {
        CaDescriptor temp;
        temp = new CaDescriptor();
        retVal += temp.read(istream);
        prgmInfoLength.add(temp);
      }

      postRead();
      return retVal;
    }
    public int write(DataOutputStream ostream) throws IOException {
      preWrite();
      int retVal = 0;

      {
        /** fix dependent sizes for prgmInfoLength* */
      }

      // write prgmInfoLength
      {
        ArrayList<CaDescriptor> temp1 = prgmInfoLength;
        for (int iIdx = 0; iIdx < temp1.getCount(); iIdx++) {
          CaDescriptor temp2 = temp1.get(iIdx);
          if (temp2 != null) retVal += temp2.write(ostream);
        }
      }
      postWrite();
      return retVal;
    }
    public int read(DataInputStream istream) throws IOException {
      preRead();
      int retVal = 0;

      // read caPmtCmdId
      {
        caPmtCmdId = (short) (istream.readUnsignedByte());
        retVal += 1;
      }
      // read programInfoLength
      for (; istream.available() > 0; ) {
        CaDescriptor temp;
        temp = new CaDescriptor();
        retVal += temp.read(istream);
        programInfoLength.add(temp);
      }

      postRead();
      return retVal;
    }