/** * Adds a record to the Zone * * @param r The record to be added * @see Record */ public void addRecord(Record r) { Name name = r.getName(); short type = r.getRRsetType(); RRset rrset = (RRset) findExactSet(name, type); if (rrset == null) addSet(name, type, rrset = new RRset()); rrset.addRR(r); }
/** * Removes a record from the Zone * * @param r The record to be removed * @see Record */ public void removeRecord(Record r) { Name name = r.getName(); short type = r.getRRsetType(); RRset rrset = (RRset) findExactSet(name, type); if (rrset != null) { rrset.deleteRR(r); if (rrset.size() == 0) removeSet(name, type, rrset); } }
/** * Removes a record from the Zone * * @param r The record to be removed * @see Record */ public void removeRecord(Record r) { Name name = r.getName(); int rtype = r.getRRsetType(); synchronized (this) { RRset rrset = findRRset(name, rtype); if (rrset == null) return; rrset.deleteRR(r); if (rrset.size() == 0) removeRRset(name, rtype); } }
/** * Adds a Record to the Zone * * @param r The record to be added * @see Record */ public void addRecord(Record r) { Name name = r.getName(); int rtype = r.getRRsetType(); synchronized (this) { RRset rrset = findRRset(name, rtype); if (rrset == null) { rrset = new RRset(r); addRRset(name, rrset); } else { rrset.addRR(r); } } }
/** * Adds a record to the Cache. * * @param r The record to be added * @param cred The credibility of the record * @param o The source of the record (this could be a Message, for example) * @see Record */ public void addRecord(Record r, byte cred, Object o) { Name name = r.getName(); short type = r.getRRsetType(); if (!Type.isRR(type)) return; boolean addrrset = false; Element element = (Element) findExactSet(name, type); if (element == null || cred > element.credibility) { RRset rrset = new RRset(); rrset.addRR(r); addRRset(rrset, cred); } else if (cred == element.credibility) { if (element instanceof PositiveElement) { PositiveElement pe = (PositiveElement) element; pe.rrset.addRR(r); } } }
private static boolean sameSet(Record r1, Record r2) { return (r1.getRRsetType() == r2.getRRsetType() && r1.getDClass() == r2.getDClass() && r1.getName().equals(r2.getName())); }
/** * Determines if two Records could be part of the same RRset. This compares the name, type, and * class of the Records; the ttl and rdata are not compared. */ public boolean sameRRset(Record rec) { return (getRRsetType() == rec.getRRsetType() && dclass == rec.dclass && name.equals(rec.name)); }