home *** CD-ROM | disk | FTP | other *** search
- package netscape.ldap;
-
- import java.util.Enumeration;
- import java.util.Hashtable;
- import java.util.StringTokenizer;
- import java.util.Vector;
-
- public class LDAPAttributeSet {
- private int current;
- private Vector attrs;
- Hashtable attrHash;
-
- public LDAPAttributeSet() {
- this.attrs = new Vector();
- this.attrHash = new Hashtable();
- this.current = 0;
- }
-
- LDAPAttributeSet(LDAPAttribute[] var1) {
- this.attrs = new Vector();
- this.attrHash = new Hashtable();
- this.current = 0;
-
- for(int var2 = 0; var2 < var1.length; ++var2) {
- this.attrs.addElement(var1[var2]);
- this.attrHash.put(var1[var2].getName().toLowerCase(), var1[var2]);
- }
-
- }
-
- protected LDAPAttributeSet(LDAPAttributeSet var1) {
- synchronized(this){}
-
- try {
- this.attrs = (Vector)var1.attrs.clone();
- } catch (Throwable var5) {
- throw var5;
- }
-
- this.attrHash = new Hashtable();
-
- for(int var2 = 0; var2 < this.attrs.size(); ++var2) {
- LDAPAttribute var3 = (LDAPAttribute)this.attrs.elementAt(var2);
- this.attrHash.put(var3.getName().toLowerCase(), var3);
- }
-
- this.current = 0;
- }
-
- public Enumeration getAttributes() {
- return this.attrs.elements();
- }
-
- public LDAPAttributeSet getSubset(String var1) {
- LDAPAttributeSet var2 = new LDAPAttributeSet();
- if (var1 == null) {
- return var2;
- } else {
- StringTokenizer var3 = new StringTokenizer(var1, ";");
- if (var3.countTokens() < 1) {
- return var2;
- } else {
- String[] var4 = new String[var3.countTokens()];
-
- for(int var5 = 0; var3.hasMoreElements(); ++var5) {
- var4[var5] = (String)var3.nextElement();
- }
-
- Enumeration var6 = this.getAttributes();
-
- while(var6.hasMoreElements()) {
- LDAPAttribute var7 = (LDAPAttribute)var6.nextElement();
- if (var7.hasSubtypes(var4)) {
- var2.add(new LDAPAttribute(var7));
- }
- }
-
- return var2;
- }
- }
- }
-
- public LDAPAttribute getAttribute(String var1) {
- return (LDAPAttribute)this.attrHash.get(var1.toLowerCase());
- }
-
- public LDAPAttribute getAttribute(String var1, String var2) {
- if (var2 != null && var2.length() >= 1) {
- String var3 = var2.toLowerCase();
- if (!var3.substring(0, 5).equals("lang-")) {
- return null;
- } else {
- StringTokenizer var4 = new StringTokenizer(var3, "-");
- var4.nextToken();
- String[] var5 = new String[var4.countTokens()];
-
- for(int var6 = 0; var4.hasMoreTokens(); ++var6) {
- var5[var6] = var4.nextToken();
- }
-
- String var7 = LDAPAttribute.getBaseName(var1);
- String[] var8 = LDAPAttribute.getSubtypes(var1);
- LDAPAttribute var9 = null;
- int var10 = 0;
-
- for(int var16 = 0; var16 < this.attrs.size(); ++var16) {
- boolean var11 = false;
- LDAPAttribute var12 = (LDAPAttribute)this.attrs.elementAt(var16);
- if (var12.getBaseName().equalsIgnoreCase(var7)) {
- if (var8 != null && var8.length >= 1) {
- if (var12.hasSubtypes(var8)) {
- var11 = true;
- }
- } else {
- var11 = true;
- }
- }
-
- Object var13 = null;
- if (var11) {
- String var17 = var12.getLangSubtype();
- if (var17 == null) {
- var9 = var12;
- } else {
- var4 = new StringTokenizer(var17.toLowerCase(), "-");
- var4.nextToken();
- if (var4.countTokens() <= var5.length) {
- int var14;
- for(var14 = 0; var4.hasMoreTokens(); ++var14) {
- if (!var5[var14].equals(var4.nextToken())) {
- var14 = 0;
- break;
- }
- }
-
- if (var14 > var10) {
- var9 = var12;
- var10 = var14;
- }
- }
- }
- }
- }
-
- return var9;
- }
- } else {
- return this.getAttribute(var1);
- }
- }
-
- public LDAPAttribute elementAt(int var1) {
- return (LDAPAttribute)this.attrs.elementAt(var1);
- }
-
- public void removeElementAt(int var1) {
- this.attrs.removeElementAt(var1);
- }
-
- public int size() {
- return this.attrs.size();
- }
-
- public synchronized void add(LDAPAttribute var1) {
- this.attrs.addElement(var1);
- this.attrHash.put(var1.getName().toLowerCase(), var1);
- }
-
- public synchronized void remove(String var1) {
- for(int var2 = 0; var2 < this.attrs.size(); ++var2) {
- LDAPAttribute var3 = (LDAPAttribute)this.attrs.elementAt(var2);
- if (var1.equalsIgnoreCase(var3.getName())) {
- this.attrs.removeElementAt(var2);
- return;
- }
- }
-
- }
-
- public String toString() {
- String var1 = "LDAPAttributeSet: ";
- if (this.attrs.size() > 0) {
- for(int var2 = 0; var2 < this.attrs.size(); ++var2) {
- var1 = var1 + this.attrs.elementAt(var2).toString();
- }
- }
-
- return var1;
- }
- }
-