1   package jsdsi;
2   
3   /***
4    * Selects all certificates whose subject is a name that starts with the
5    * specified issuer and local name.  That is, if the issuer is
6    * <code>K</code> and the local name is <code>S</code>, this selects all
7    * certificates of the form <code>(LHS -> "K S ...")</code>,
8    * where <code>LHS</code> is the left-hand-side of the certificate and
9    * <code>"K S ..."</code> is a name.
10   * 
11   * @author Sameer Ajmani
12   * @version $Revision: 1.2.6.1 $ $Date: 2005/11/08 03:12:52 $
13   */
14  public class CompatibleCertSelector extends CertSelector {
15      Principal issuer;
16      String name;
17      
18      /***
19       * Creates a new <code>CompatibleCertSelector</code> that matches
20       * certificates whose subject is a name issued by <code>i</code>
21       * whose first local name is <code>n</code>.
22       */
23      public CompatibleCertSelector(Principal i, String n) {
24          issuer = i;
25          name = n;
26      }
27      
28      /***
29       * @see java.lang.Object#clone()
30       */
31      public Object clone() {
32          return new CompatibleCertSelector(issuer, name);
33      }
34      
35      /***
36       * @return true if cert.subject is a Name whose issuer
37       * is the same principal as this.issuer and whose first
38       * local name is this.name.
39       * 
40       * @see java.security.cert.CertSelector#match(Certificate)
41       */
42      public boolean match(jsdsi.Certificate cert) {
43          return (cert.getCert().getSubject() instanceof Name)
44          && ((Name) cert.getCert().getSubject())
45              .getIssuer().samePrincipalAs(issuer)
46          && ((Name) cert.getCert().getSubject())
47              .getNames()[0].equals(name);
48      }
49      
50      /***
51       * @return the issuer matched by this selector.
52       */
53      public Principal getIssuer() {
54          return issuer;
55      }
56      
57      /***
58       * @return the local name matched by this selector.
59       */
60      public String getName() {
61          return name;
62      }
63      
64      /***
65       * @return the fully-qualified name matched by this selector.
66       */
67      public Name getFullName() {
68          return new Name(issuer, name);
69      }
70  }
This page was automatically generated by Maven