basicattributes.java

来自「gcc3.2.1源代码」· Java 代码 · 共 195 行

JAVA
195
字号
/* Copyright (C) 2000, 2001 Free Software Foundation   This file is part of libgcj.This software is copyrighted work licensed under the terms of theLibgcj License.  Please consult the file "LIBGCJ_LICENSE" fordetails.  */package javax.naming.directory;import javax.naming.*;import java.util.*;/** * @author Tom Tromey <tromey@redhat.com> * @date June 22, 2001 */public class BasicAttributes implements Attributes{  public BasicAttributes ()  {    this (false);  }  public BasicAttributes (boolean ignoreCase)  {    this.ignoreCase = ignoreCase;    this.attributes = new Vector ();  }  public BasicAttributes (String attrID, Object val)  {    this (attrID, val, false);  }  public BasicAttributes (String attrID, Object val, boolean ignoreCase)  {    this.ignoreCase = ignoreCase;    attributes = new Vector ();    attributes.add (new BasicAttribute (attrID, val));  }  public Object clone ()  {    // Slightly inefficient as we make a garbage Vector here.    BasicAttributes ba = new BasicAttributes (ignoreCase);    ba.attributes = (Vector) attributes.clone ();    return ba;  }  public boolean equals (Object obj)  {    if (! (obj instanceof BasicAttributes))      return false;    BasicAttributes b = (BasicAttributes) obj;    if (ignoreCase != b.ignoreCase	|| attributes.size () != b.attributes.size ())      return false;    // Does order matter?    for (int i = 0; i < attributes.size (); ++i)      {	if (! attributes.get (i).equals (b.attributes.get (i)))	  return false;      }    return true;  }  public Attribute get (String attrID)  {    for (int i = 0; i < attributes.size (); ++i)      {	Attribute at = (Attribute) attributes.get (i);	if ((ignoreCase && attrID.equalsIgnoreCase (at.getID ()))	    || (! ignoreCase && attrID.equals (at.getID ())))	  return at;      }    return null;  }  public NamingEnumeration getAll ()  {    return new BasicAttributesEnumeration (false);  }  public NamingEnumeration getIDs ()  {    return new BasicAttributesEnumeration (true);  }  public int hashCode ()  {    int val = 0;    for (int i = 0; i < attributes.size (); ++i)      val += attributes.get (i).hashCode ();    return val;  }  public boolean isCaseIgnored ()  {    return ignoreCase;  }  public Attribute put (Attribute attr)  {    Attribute r = remove (attr.getID ());    attributes.add (attr);    return r;  }  public Attribute put (String attrID, Object val)  {    return put (new BasicAttribute (attrID, val));  }  public Attribute remove (String attrID)  {    for (int i = 0; i < attributes.size (); ++i)      {	Attribute at = (Attribute) attributes.get (i);	if ((ignoreCase && attrID.equalsIgnoreCase (at.getID ()))	    || (! ignoreCase && attrID.equals (at.getID ())))	  {	    attributes.remove (i);	    return at;	  }      }    return null;  }  public int size ()  {    return attributes.size ();  }  public String toString ()  {    String r = "";    for (int i = 0; i < attributes.size (); ++i)      {	if (i > 0)	  r += "; ";	r += attributes.get (i).toString ();      }    return r;  }  // This is set by the serialization spec.  private boolean ignoreCase;  private transient Vector attributes;  // Used when enumerating.  private class BasicAttributesEnumeration implements NamingEnumeration  {    int where = -1;    boolean id;    public BasicAttributesEnumeration (boolean id)    {      this.id = id;    }    public void close () throws NamingException    {    }    public boolean hasMore () throws NamingException    {      return hasMoreElements ();    }    public Object next () throws NamingException    {      return nextElement ();    }    public boolean hasMoreElements ()    {      return where < attributes.size ();    }    public Object nextElement () throws NoSuchElementException    {      if (where + 1 >= attributes.size ())	throw new NoSuchElementException ("no more elements");      ++where;      Attribute at = (Attribute) attributes.get (where);      return id ? (Object) at.getID () : (Object) at;    }  }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?