remove some warnings by using java 5 features
[captive-validator.git] / src / com / versign / tat / dnssec / SRRset.java
index 18b16b2..71880a0 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2005 VeriSign. All rights reserved.
+ * Copyright (c) 2009 VeriSign. All rights reserved.
  * 
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions are met:
@@ -34,152 +34,103 @@ import org.xbill.DNS.*;
 /**
  * A version of the RRset class overrides the standard security status.
  */
-public class SRRset extends RRset
-{
-  private SecurityStatus mSecurityStatus;
-  
-  /** Create a new, blank SRRset. */
-  public SRRset()
-  {
-    super();
-    mSecurityStatus = new SecurityStatus();
-  }
-
-  /**
-   * Create a new SRRset from an existing RRset. This SRRset will contain that
-   * same internal Record objects as the original RRset.
-   */
-  @SuppressWarnings("unchecked") // org.xbill.DNS.RRset isn't typesafe-aware.
-public SRRset(RRset r)
-  {
-    this();
-
-    for (Iterator i = r.rrs(); i.hasNext();)
-    {
-      addRR((Record) i.next());
+public class SRRset extends RRset {
+    private SecurityStatus mSecurityStatus;
+
+    /** Create a new, blank SRRset. */
+    public SRRset() {
+        super();
+        mSecurityStatus = new SecurityStatus();
+    }
+
+    
+    /**
+     * Create a new SRRset from an existing RRset. This SRRset will contain that
+     * same internal Record objects as the original RRset.
+     */
+    @SuppressWarnings("unchecked")
+    // org.xbill.DNS.RRset isn't typesafe-aware.
+    public SRRset(RRset r) {
+        this();
+
+        for (Iterator i = r.rrs(); i.hasNext();) {
+            addRR((Record) i.next());
+        }
+
+        for (Iterator i = r.sigs(); i.hasNext();) {
+            addRR((Record) i.next());
+        }
+    }
+
+    /**
+     * Return the current security status (generally: UNCHECKED, BOGUS, or
+     * SECURE).
+     */
+    public int getSecurity() {
+        return getSecurityStatus();
+    }
+
+    /**
+     * Return the current security status (generally: UNCHECKED, BOGUS, or
+     * SECURE).
+     */
+    public byte getSecurityStatus() {
+        return mSecurityStatus.getStatus();
+    }
+
+    /**
+     * Set the current security status for this SRRset. This status will be
+     * shared amongst all copies of this SRRset (created with cloneSRRset())
+     */
+    public void setSecurityStatus(byte status) {
+        mSecurityStatus.setStatus(status);
     }
 
-    for (Iterator i = r.sigs(); i.hasNext();)
-    {
-      addRR((Record) i.next());
+    public Iterator<Record> rrs() {
+        return (Iterator<Record>) rrs();
     }
-  }
-
-  /**
-   * Clone this SRRset, giving the copy a new TTL. The copy is independent
-   * from the original except for the security status.
-   * 
-   * @param withNewTTL The new TTL to apply to the RRset. This applies to
-   *          contained RRsig records as well.
-   * @return The cloned SRRset.
-   */
-//  public SRRset cloneSRRset(long withNewTTL)
-//  {
-//    SRRset nr = new SRRset();
-//
-//    for (Iterator i = rrs(); i.hasNext();)
-//    {
-//      nr.addRR(((Record) i.next()).withTTL(withNewTTL));
-//    }
-//    for (Iterator i = sigs(); i.hasNext();)
-//    {
-//      nr.addRR(((Record) i.next()).withTTL(withNewTTL));
-//    }
-//
-//    nr.mSecurityStatus = mSecurityStatus;
-//
-//    return nr;
-//  }
-
-  public SRRset cloneSRRsetNoSigs()
-  {
-    SRRset nr = new SRRset();
-    for (Iterator i = rrs(); i.hasNext();)
-    {
-      // NOTE: should this clone the records as well?
-      nr.addRR((Record) i.next());
+    
+    public Iterator<RRSIGRecord> sigs() {
+        return (Iterator<RRSIGRecord>) sigs();
     }
-    // Do not copy the SecurityStatus reference
     
-    return nr;
-  }
-  
-  
-  /**
-   * Return the current security status (generally: UNCHECKED, BOGUS, or
-   * SECURE).
-   */
-  public int getSecurity()
-  {
-    return getSecurityStatus();
-  }
-
-  /**
-   * Return the current security status (generally: UNCHECKED, BOGUS, or
-   * SECURE).
-   */
-  public int getSecurityStatus()
-  {
-    return mSecurityStatus.getStatus();
-  }
-
-  /**
-   * Set the current security status for this SRRset. This status will be
-   * shared amongst all copies of this SRRset (created with cloneSRRset())
-   */
-  public void setSecurityStatus(byte status)
-  {
-    mSecurityStatus.setStatus(status);
-  }
-
-  public int totalSize() {
-      int num_sigs = 0;
-      for (Iterator i = sigs(); i.hasNext(); ) {
-          num_sigs++;
-      }
-      return size() + num_sigs;
-  }
-  
-  /**
-   * @return The total number of records (data + sigs) in the SRRset.
-   */
-  public int getNumRecords()
-  {
-    return totalSize();
-  }
-
-  public RRSIGRecord firstSig() {
-      for (Iterator i = sigs(); i.hasNext(); ) {
-          return (RRSIGRecord) i.next();
-      }
-      return null;
-  }
-  /**
-   * @return true if this RRset has RRSIG records that cover data records.
-   *         (i.e., RRSIG SRRsets return false)
-   */
-  public boolean isSigned()
-  {
-    if (getType() == Type.RRSIG) return false;
-    return firstSig() != null;
-  }
-
-  /**
-   * @return The "signer" name for this SRRset, if signed, or null if not.
-   */
-  public Name getSignerName()
-  {
-    RRSIGRecord sig = (RRSIGRecord) firstSig();
-    if (sig == null) return null;
-    return sig.getSigner();
-  }
-  
-//  public void setTTL(long ttl)
-//  {
-//    if (ttl < 0)
-//    {
-//      throw new IllegalArgumentException("ttl can't be less than zero, stupid! was " + ttl);
-//    }
-//    super.setTTL(ttl);
-//  }
+    public int totalSize() {
+        int num_sigs = 0;
+        for (Iterator<RRSIGRecord> i = sigs(); i.hasNext();) {
+            num_sigs++;
+        }
+        return size() + num_sigs;
+    }
+
+    /**
+     * @return The total number of records (data + sigs) in the SRRset.
+     */
+    public int getNumRecords() {
+        return totalSize();
+    }
+
+    public RRSIGRecord firstSig() {
+        for (Iterator<RRSIGRecord> i = sigs(); i.hasNext();) {
+            return i.next();
+        }
+        return null;
+    }
+
+    /**
+     * @return true if this RRset has RRSIG records that cover data records.
+     *         (i.e., RRSIG SRRsets return false)
+     */
+    public boolean isSigned() {
+        if (getType() == Type.RRSIG) return false;
+        return firstSig() != null;
+    }
+
+    /**
+     * @return The "signer" name for this SRRset, if signed, or null if not.
+     */
+    public Name getSignerName() {
+        RRSIGRecord sig = (RRSIGRecord) firstSig();
+        if (sig == null) return null;
+        return sig.getSigner();
+    }
 }