in resolver/src/main/java/org/apache/james/jspf/impl/DNSServiceXBillImpl.java [208:266]
public static List<String> convertRecordsToList(Record[] rr) {
List<String> records;
if (rr != null && rr.length > 0) {
records = new ArrayList<String>();
for (int i = 0; i < rr.length; i++) {
switch (rr[i].getType()) {
case Type.A:
ARecord a = (ARecord) rr[i];
records.add(a.getAddress().getHostAddress());
break;
case Type.AAAA:
AAAARecord aaaa = (AAAARecord) rr[i];
records.add(aaaa.getAddress().getHostAddress());
break;
case Type.MX:
MXRecord mx = (MXRecord) rr[i];
records.add(mx.getTarget().toString());
break;
case Type.PTR:
PTRRecord ptr = (PTRRecord) rr[i];
records.add(IPAddr.stripDot(ptr.getTarget().toString()));
break;
case Type.TXT:
TXTRecord txt = (TXTRecord) rr[i];
if (txt.getStrings().size() == 1) {
records.add((String)txt.getStrings().get(0));
} else {
StringBuffer sb = new StringBuffer();
for (Iterator<String> it = txt.getStrings().iterator(); it
.hasNext();) {
String k = (String) it.next();
sb.append(k);
}
records.add(sb.toString());
}
break;
case Type.SPF:
SPFRecord spf = (SPFRecord) rr[i];
if (spf.getStrings().size() == 1) {
records.add((String)spf.getStrings().get(0));
} else {
StringBuffer sb = new StringBuffer();
for (Iterator<String> it = spf.getStrings().iterator(); it
.hasNext();) {
String k = (String) it.next();
sb.append(k);
}
records.add(sb.toString());
}
break;
default:
return null;
}
}
} else {
records = null;
}
return records;
}