同步操作将从 Stefan/Java8Source 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
/** Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.* ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.*********************/package javax.naming;import java.util.Vector;import java.util.Enumeration;/*** This class represents a reference to an object that is found outside of* the naming/directory system.*<p>* Reference provides a way of recording address information about* objects which themselves are not directly bound to the naming/directory system.*<p>* A Reference consists of an ordered list of addresses and class information* about the object being referenced.* Each address in the list identifies a communications endpoint* for the same conceptual object. The "communications endpoint"* is information that indicates how to contact the object. It could* be, for example, a network address, a location in memory on the* local machine, another process on the same machine, etc.* The order of the addresses in the list may be of significance* to object factories that interpret the reference.*<p>* Multiple addresses may arise for* various reasons, such as replication or the object offering interfaces* over more than one communication mechanism. The addresses are indexed* starting with zero.*<p>* A Reference also contains information to assist in creating an instance* of the object to which this Reference refers. It contains the class name* of that object, and the class name and location of the factory to be used* to create the object.* The class factory location is a space-separated list of URLs representing* the class path used to load the factory. When the factory class (or* any class or resource upon which it depends) needs to be loaded,* each URL is used (in order) to attempt to load the class.*<p>* A Reference instance is not synchronized against concurrent access by multiple* threads. Threads that need to access a single Reference concurrently should* synchronize amongst themselves and provide the necessary locking.** @author Rosanna Lee* @author Scott Seligman** @see RefAddr* @see StringRefAddr* @see BinaryRefAddr* @since 1.3*//*<p>* The serialized form of a Reference object consists of the class* name of the object being referenced (a String), a Vector of the* addresses (each a RefAddr), the name of the class factory (a* String), and the location of the class factory (a String).*/public class Reference implements Cloneable, java.io.Serializable {/*** Contains the fully-qualified name of the class of the object to which* this Reference refers.* @serial* @see java.lang.Class#getName*/protected String className;/*** Contains the addresses contained in this Reference.* Initialized by constructor.* @serial*/protected Vector<RefAddr> addrs = null;/*** Contains the name of the factory class for creating* an instance of the object to which this Reference refers.* Initialized to null.* @serial*/protected String classFactory = null;/*** Contains the location of the factory class.* Initialized to null.* @serial*/protected String classFactoryLocation = null;/*** Constructs a new reference for an object with class name 'className'.* Class factory and class factory location are set to null.* The newly created reference contains zero addresses.** @param className The non-null class name of the object to which* this reference refers.*/public Reference(String className) {this.className = className;addrs = new Vector<>();}/*** Constructs a new reference for an object with class name 'className' and* an address.* Class factory and class factory location are set to null.** @param className The non-null class name of the object to* which this reference refers.* @param addr The non-null address of the object.*/public Reference(String className, RefAddr addr) {this.className = className;addrs = new Vector<>();addrs.addElement(addr);}/*** Constructs a new reference for an object with class name 'className',* and the class name and location of the object's factory.** @param className The non-null class name of the object to which* this reference refers.* @param factory The possibly null class name of the object's factory.* @param factoryLocation* The possibly null location from which to load* the factory (e.g. URL)* @see javax.naming.spi.ObjectFactory* @see javax.naming.spi.NamingManager#getObjectInstance*/public Reference(String className, String factory, String factoryLocation) {this(className);classFactory = factory;classFactoryLocation = factoryLocation;}/*** Constructs a new reference for an object with class name 'className',* the class name and location of the object's factory, and the address for* the object.** @param className The non-null class name of the object to* which this reference refers.* @param factory The possibly null class name of the object's factory.* @param factoryLocation The possibly null location from which* to load the factory (e.g. URL)* @param addr The non-null address of the object.* @see javax.naming.spi.ObjectFactory* @see javax.naming.spi.NamingManager#getObjectInstance*/public Reference(String className, RefAddr addr,String factory, String factoryLocation) {this(className, addr);classFactory = factory;classFactoryLocation = factoryLocation;}/*** Retrieves the class name of the object to which this reference refers.** @return The non-null fully-qualified class name of the object.* (e.g. "java.lang.String")*/public String getClassName() {return className;}/*** Retrieves the class name of the factory of the object* to which this reference refers.** @return The possibly null fully-qualified class name of the factory.* (e.g. "java.lang.String")*/public String getFactoryClassName() {return classFactory;}/*** Retrieves the location of the factory of the object* to which this reference refers.* If it is a codebase, then it is an ordered list of URLs,* separated by spaces, listing locations from where the factory* class definition should be loaded.** @return The possibly null string containing the* location for loading in the factory's class.*/public String getFactoryClassLocation() {return classFactoryLocation;}/*** Retrieves the first address that has the address type 'addrType'.* String.compareTo() is used to test the equality of the address types.** @param addrType The non-null address type for which to find the address.* @return The address in this reference with address type 'addrType;* null if no such address exist.*/public RefAddr get(String addrType) {int len = addrs.size();RefAddr addr;for (int i = 0; i < len; i++) {addr = addrs.elementAt(i);if (addr.getType().compareTo(addrType) == 0)return addr;}return null;}/*** Retrieves the address at index posn.* @param posn The index of the address to retrieve.* @return The address at the 0-based index posn. It must be in the* range [0,getAddressCount()).* @exception ArrayIndexOutOfBoundsException If posn not in the specified* range.*/public RefAddr get(int posn) {return addrs.elementAt(posn);}/*** Retrieves an enumeration of the addresses in this reference.* When addresses are added, changed or removed from this reference,* its effects on this enumeration are undefined.** @return An non-null enumeration of the addresses* (<tt>RefAddr</tt>) in this reference.* If this reference has zero addresses, an enumeration with* zero elements is returned.*/public Enumeration<RefAddr> getAll() {return addrs.elements();}/*** Retrieves the number of addresses in this reference.** @return The nonnegative number of addresses in this reference.*/public int size() {return addrs.size();}/*** Adds an address to the end of the list of addresses.** @param addr The non-null address to add.*/public void add(RefAddr addr) {addrs.addElement(addr);}/*** Adds an address to the list of addresses at index posn.* All addresses at index posn or greater are shifted up* the list by one (away from index 0).** @param posn The 0-based index of the list to insert addr.* @param addr The non-null address to add.* @exception ArrayIndexOutOfBoundsException If posn not in the specified* range.*/public void add(int posn, RefAddr addr) {addrs.insertElementAt(addr, posn);}/*** Deletes the address at index posn from the list of addresses.* All addresses at index greater than posn are shifted down* the list by one (towards index 0).** @param posn The 0-based index of in address to delete.* @return The address removed.* @exception ArrayIndexOutOfBoundsException If posn not in the specified* range.*/public Object remove(int posn) {Object r = addrs.elementAt(posn);addrs.removeElementAt(posn);return r;}/*** Deletes all addresses from this reference.*/public void clear() {addrs.setSize(0);}/*** Determines whether obj is a reference with the same addresses* (in same order) as this reference.* The addresses are checked using RefAddr.equals().* In addition to having the same addresses, the Reference also needs to* have the same class name as this reference.* The class factory and class factory location are not checked.* If obj is null or not an instance of Reference, null is returned.** @param obj The possibly null object to check.* @return true if obj is equal to this reference; false otherwise.*/public boolean equals(Object obj) {if ((obj != null) && (obj instanceof Reference)) {Reference target = (Reference)obj;// ignore factory informationif (target.className.equals(this.className) &&target.size() == this.size()) {Enumeration<RefAddr> mycomps = getAll();Enumeration<RefAddr> comps = target.getAll();while (mycomps.hasMoreElements())if (!(mycomps.nextElement().equals(comps.nextElement())))return false;return true;}}return false;}/*** Computes the hash code of this reference.* The hash code is the sum of the hash code of its addresses.** @return A hash code of this reference as an int.*/public int hashCode() {int hash = className.hashCode();for (Enumeration<RefAddr> e = getAll(); e.hasMoreElements();)hash += e.nextElement().hashCode();return hash;}/*** Generates the string representation of this reference.* The string consists of the class name to which this reference refers,* and the string representation of each of its addresses.* This representation is intended for display only and not to be parsed.** @return The non-null string representation of this reference.*/public String toString() {StringBuffer buf = new StringBuffer("Reference Class Name: " +className + "\n");int len = addrs.size();for (int i = 0; i < len; i++)buf.append(get(i).toString());return buf.toString();}/*** Makes a copy of this reference using its class name* list of addresses, class factory name and class factory location.* Changes to the newly created copy does not affect this Reference* and vice versa.*/public Object clone() {Reference r = new Reference(className, classFactory, classFactoryLocation);Enumeration<RefAddr> a = getAll();r.addrs = new Vector<>();while (a.hasMoreElements())r.addrs.addElement(a.nextElement());return r;}/*** Use serialVersionUID from JNDI 1.1.1 for interoperability*/private static final long serialVersionUID = -1673475790065791735L;};
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。