reference.java

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

JAVA
165
字号
/* 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;import java.io.Serializable;import java.util.Enumeration;import java.util.Vector;/** * @author Tom Tromey <tromey@redhat.com> * @date May 16, 2001 */public class Reference implements Cloneable, Serializable{  public Reference (String className)  {    this.className = className;    addrs = new Vector ();  }  public Reference (String className, RefAddr addr)  {    this.className = className;    addrs = new Vector ();    addrs.add (addr);  }  public Reference (String className, String factory, String factoryLocation)  {    this.className = className;    this.classFactory = factory;    this.classFactoryLocation = factoryLocation;    addrs = new Vector ();  }  public Reference (String className, RefAddr addr,		    String factory, String factoryLocation)  {    this.className = className;    this.classFactory = factory;    this.classFactoryLocation = factoryLocation;    addrs = new Vector ();    addrs.add (addr);  }  public void add (int posn, RefAddr addr)  {    addrs.add (posn, addr);  }  public void add (RefAddr addr)  {    addrs.add (addr);  }  public void clear ()  {    addrs.clear ();  }  public Object clone ()  {    Reference r = new Reference (className, classFactory,				 classFactoryLocation);    r.addrs = (Vector) addrs.clone ();    return r;  }  // Convenience function.  private boolean equals (String a, String b)  {    return (a == null) ? (b == null) : a.equals (b);  }  public boolean equals (Object obj)  {    if (! (obj instanceof Reference))      return false;    Reference r = (Reference) obj;    return (equals (classFactory, r.classFactory)	    && equals (classFactoryLocation, r.classFactoryLocation)	    && equals (className, r.className)	    && addrs.equals (r.addrs));  }  public RefAddr get (int posn)  {    return (RefAddr) addrs.get (posn);  }  public RefAddr get (String addrType)  {    for (int i = 0; i < addrs.size (); ++i)      {	RefAddr r = (RefAddr) addrs.get (i);	if (addrType.equals (r.getType ()))	  return r;      }    return null;  }  public Enumeration getAll ()  {    return addrs.elements ();  }  public String getClassName ()  {    return className;  }  public String getFactoryClassLocation ()  {    return classFactoryLocation;  }  public String getFactoryClassName ()  {    return classFactory;  }  public int hashCode ()  {    // The spec says the hash code is the sum of the hash codes of the    // addresses.  It does not mention the other fields.    int h = 0;    for (int i = 0; i < addrs.size (); ++i)      h += addrs.get (i).hashCode ();    return h;  }  public Object remove (int posn)  {    return addrs.remove (posn);  }  public int size ()  {    return addrs.size ();  }  public String toString ()  {    String x = getClass ().toString () + "[";    for (int i = 0; i < addrs.size (); ++i)      {	if (i > 0)	  x += ",";	x += addrs.get (i).toString ();      }    return x + "]";  }  protected Vector addrs;  protected String classFactory;  protected String classFactoryLocation;  protected String className;}

⌨️ 快捷键说明

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