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 + -
显示快捷键?