/**
  * Method toString.
  *
  * @return String
  */
 @Override
 public String toString() {
   FASCN myFascn = null;
   try {
     myFascn = this.getFASCN();
   } catch (IOException e) {
     e.printStackTrace();
   }
   StringBuffer sb = new StringBuffer();
   sb.append("Card Holder Unique ID:FASC-N:Agency Code:\t\t\t" + myFascn.getAgencyCode());
   sb.append("\nCard Holder Unique ID:FASC-N:System Code:\t\t\t" + myFascn.getSystemCode());
   sb.append(
       "\nCard Holder Unique ID:FASC-N:Credential Number:\t\t\t" + myFascn.getCredentialNumber());
   sb.append(
       "\nCard Holder Unique ID:FASC-N:Credential Series:\t\t\t" + myFascn.getCredentialSeries());
   sb.append(
       "\nCard Holder Unique ID:FASC-N:Individual Credential Issue:\t"
           + myFascn.getIndividualCredentialIssue());
   sb.append(
       "\nCard Holder Unique ID:FASC-N:Person Identifier:\t\t\t" + myFascn.getPersonIdentifier());
   sb.append(
       "\nCard Holder Unique ID:FASC-N:Organizational Category:\t\t"
           + myFascn.getOrganizationalCategory());
   sb.append(
       "\nCard Holder Unique ID:FASC-N:Organizational Identifier:\t\t"
           + myFascn.getOrganizationalIdentifier());
   sb.append(
       "\nCard Holder Unique ID:FASC-N:Per/Org Association Category:\t"
           + myFascn.getAssociationCategory());
   sb.append("\nCard Holder Unique ID:Agency Code:\t\t\t\t" + this.getAgencyCode());
   sb.append(
       "\nCard Holder Unique ID:Organization Identifier:\t\t\t"
           + this.getOrganizationalIdentifier());
   sb.append("\nCard Holder Unique ID:DUNS:\t\t\t\t\t" + this.getDUNS());
   sb.append("\nCard Holder Unique ID:GUID:\t\t\t\t\t" + this.getGUID().toString());
   sb.append(
       "\nCard Holder Unique ID:Expiration Date:\t\t\t\t" + this.getExpirationDate().toString());
   sb.append(
       "\nCard Holder Unique ID:Signature Bytes:\t\t\t\t"
           + DataUtil.byteArrayToString(this.signature));
   sb.append(
       "\nCard Holder Unique ID:Error Detection Code:\t\t\t"
           + DataUtil.byteArrayToString(this.edc));
   sb.append('\n');
   return sb.toString();
 }
  /**
   * Constructor for PIVCardHolderUniqueID.
   *
   * @param FASCN FASCN (Required)
   * @param agencyCode byte[] (May be null)
   * @param organizationalIdentifier byte[] (May be null)
   * @param DUNS byte[] (May be null)
   * @param GUID byte[] (Required)
   * @param expirationDate String (Required)
   * @throws UnsupportedEncodingException
   */
  public PIVCardHolderUniqueID(
      FASCN FASCN,
      byte[] agencyCode,
      byte[] organizationalIdentifier,
      byte[] DUNS,
      byte[] GUID,
      String expirationDate)
      throws UnsupportedEncodingException {

    setFASCN(FASCN.toByteArray());
    setAgencyCode(agencyCode);
    setOrganizationalIdentifier(organizationalIdentifier);
    setDUNS(DUNS);
    setGUID(GUID);
    setExpirationDate(expirationDate);

    encode();
  }
 /**
  * Method setFASCN.
  *
  * @param fascn FASCN
  */
 public void setFASCN(FASCN fascn) {
   this.setFASCN(fascn.toByteArray());
 }