/** {@inheritDoc} */
  public void print(DnsRecord record) {
    if (record == null) {
      writer.println("Null Resource Record");
      return;
    }

    writer.println("-----------");
    print("Record Name", record.getName());
    print("Type", typeToString(record.getType()));
    print("TTL", String.valueOf(record.getTtl()));
    switch (record.getType()) {
      default:
        break;

      case Type.A:
        print((ARecord) toRecord(record));
        break;

      case Type.SOA:
        print((SOARecord) toRecord(record));
        break;

      case Type.MX:
        print((MXRecord) toRecord(record));
        break;

      case Type.CERT:
        print((CERTRecord) toRecord(record));
        break;
    }

    writer.flush();
  }
  protected Collection<Record> processGenericANYRecordRequest(String name) throws DNSException {
    DnsRecord records[];

    try {
      records = proxy.getDNSByNameAndType(name, Type.ANY);
    } catch (Exception e) {
      throw new DNSException(
          DNSError.newError(Rcode.SERVFAIL),
          "DNS service proxy call for DNS records failed: " + e.getMessage(),
          e);
    }

    if (records == null || records.length == 0) return null;

    Collection<Record> retVal = new ArrayList<Record>();
    try {
      for (DnsRecord record : records) {
        Record rec =
            Record.newRecord(
                Name.fromString(record.getName()),
                record.getType(),
                record.getDclass(),
                record.getTtl(),
                record.getData());

        retVal.add(rec);
      }
    } catch (Exception e) {
      throw new DNSException(
          DNSError.newError(Rcode.SERVFAIL),
          "Failure while parsing generic record data: " + e.getMessage(),
          e);
    }

    return retVal;
  }
 /*
  * converts a configuration service DnsRecord to a dnsjava Record
  */
 private Record toRecord(DnsRecord rec) {
   return Record.newRecord(
       nameFromString(rec.getName()), rec.getType(), rec.getDclass(), rec.getTtl(), rec.getData());
 }