src/share/classes/javax/naming/ldap/Rfc2253Parser.java

Print this page




  37 
  38         private final String name;      // DN being parsed
  39         private final char[] chars;     // characters in LDAP name being parsed
  40         private final int len;  // length of "chars"
  41         private int cur = 0;    // index of first unconsumed char in "chars"
  42 
  43         /*
  44          * Given an LDAP DN in string form, returns a parser for it.
  45          */
  46         Rfc2253Parser(String name) {
  47             this.name = name;
  48             len = name.length();
  49             chars = name.toCharArray();
  50         }
  51 
  52         /*
  53          * Parses the DN, returning a List of its RDNs.
  54          */
  55         // public List<Rdn> getDN() throws InvalidNameException {
  56 
  57         List parseDn() throws InvalidNameException {
  58             cur = 0;
  59 
  60             // ArrayList<Rdn> rdns =
  61             //  new ArrayList<Rdn>(len / 3 + 10);  // leave room for growth
  62 
  63             ArrayList rdns =
  64                 new ArrayList(len / 3 + 10);  // leave room for growth
  65 
  66             if (len == 0) {
  67                 return rdns;
  68             }
  69 
  70             rdns.add(doParse(new Rdn()));
  71             while (cur < len) {
  72                 if (chars[cur] == ',' || chars[cur] == ';') {
  73                     ++cur;
  74                     rdns.add(0, doParse(new Rdn()));
  75                 } else {
  76                     throw new InvalidNameException("Invalid name: " + name);
  77                 }
  78             }
  79             return rdns;
  80         }
  81 
  82         /*
  83          * Parses the DN, if it is known to contain a single RDN.
  84          */




  37 
  38         private final String name;      // DN being parsed
  39         private final char[] chars;     // characters in LDAP name being parsed
  40         private final int len;  // length of "chars"
  41         private int cur = 0;    // index of first unconsumed char in "chars"
  42 
  43         /*
  44          * Given an LDAP DN in string form, returns a parser for it.
  45          */
  46         Rfc2253Parser(String name) {
  47             this.name = name;
  48             len = name.length();
  49             chars = name.toCharArray();
  50         }
  51 
  52         /*
  53          * Parses the DN, returning a List of its RDNs.
  54          */
  55         // public List<Rdn> getDN() throws InvalidNameException {
  56 
  57         List<Rdn> parseDn() throws InvalidNameException {
  58             cur = 0;
  59 
  60             // ArrayList<Rdn> rdns =
  61             //  new ArrayList<Rdn>(len / 3 + 10);  // leave room for growth
  62 
  63             ArrayList<Rdn> rdns =
  64                 new ArrayList<>(len / 3 + 10);  // leave room for growth
  65 
  66             if (len == 0) {
  67                 return rdns;
  68             }
  69 
  70             rdns.add(doParse(new Rdn()));
  71             while (cur < len) {
  72                 if (chars[cur] == ',' || chars[cur] == ';') {
  73                     ++cur;
  74                     rdns.add(0, doParse(new Rdn()));
  75                 } else {
  76                     throw new InvalidNameException("Invalid name: " + name);
  77                 }
  78             }
  79             return rdns;
  80         }
  81 
  82         /*
  83          * Parses the DN, if it is known to contain a single RDN.
  84          */