⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xmlobjectinputstream.java

📁 pastry的java实现的2.0b版
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
          READ_RESOLVES.put(cl, meth);          return meth;        } else {          READ_RESOLVES.put(cl, null);          return null;        }      } else {        READ_RESOLVES.put(cl, meth);        return meth;      }    }  }  /**   * This method returns the readResolve() method of a given class, if such a   * method exists. This method searches the class's heirarchy for a   * readResolve() method which is assessible by the given class. If no such   * method is found, null is returned.   *   * @param cl The class to find the readResolve() of   * @return The method, or null if none was found   */  private static Method getReadObject(Class cl) {    synchronized (READ_OBJECTS) {      if (READ_OBJECTS.containsKey(cl)) {        return (Method) READ_OBJECTS.get(cl);      }      try {        Method method = cl.getDeclaredMethod("readObject", new Class[]{ObjectInputStream.class});        method.setAccessible(true);        READ_OBJECTS.put(cl, method);        return method;      } catch (NoSuchMethodException e) {        READ_OBJECTS.put(cl, null);        return null;      }    }  }  // ----- Implementation of GetField -----  /**   * This class is an implementation of GetField which is compatible with the   * XMLObjectInputStreamm. It works in the same manner as the   * ObjectInputStreamm.GetField.   *   * @version $Id: pretty.settings 2305 2005-03-11 20:22:33Z jeffh $   * @author jeffh   */  public class GetField extends ObjectInputStream.GetField {    /**     * DESCRIBE THE FIELD     */    protected HashMap primitives = new HashMap();    /**     * DESCRIBE THE FIELD     */    protected HashMap objects = new HashMap();    /**     * DESCRIBE THE METHOD     *     * @param name DESCRIBE THE PARAMETER     * @param value DESCRIBE THE PARAMETER     * @return DESCRIBE THE RETURN VALUE     */    public boolean get(String name, boolean value) {      if (primitives.get(name) == null) {        return value;      }      return ((Boolean) primitives.get(name)).booleanValue();    }    /**     * DESCRIBE THE METHOD     *     * @param name DESCRIBE THE PARAMETER     * @param value DESCRIBE THE PARAMETER     * @return DESCRIBE THE RETURN VALUE     */    public byte get(String name, byte value) {      if (primitives.get(name) == null) {        return value;      }      return ((Byte) primitives.get(name)).byteValue();    }    /**     * DESCRIBE THE METHOD     *     * @param name DESCRIBE THE PARAMETER     * @param value DESCRIBE THE PARAMETER     * @return DESCRIBE THE RETURN VALUE     */    public char get(String name, char value) {      if (primitives.get(name) == null) {        return value;      }      return ((Character) primitives.get(name)).charValue();    }    /**     * DESCRIBE THE METHOD     *     * @param name DESCRIBE THE PARAMETER     * @param value DESCRIBE THE PARAMETER     * @return DESCRIBE THE RETURN VALUE     */    public double get(String name, double value) {      if (primitives.get(name) == null) {        return value;      }      return ((Double) primitives.get(name)).doubleValue();    }    /**     * DESCRIBE THE METHOD     *     * @param name DESCRIBE THE PARAMETER     * @param value DESCRIBE THE PARAMETER     * @return DESCRIBE THE RETURN VALUE     */    public float get(String name, float value) {      if (primitives.get(name) == null) {        return value;      }      return ((Float) primitives.get(name)).floatValue();    }    /**     * DESCRIBE THE METHOD     *     * @param name DESCRIBE THE PARAMETER     * @param value DESCRIBE THE PARAMETER     * @return DESCRIBE THE RETURN VALUE     */    public int get(String name, int value) {      if (primitives.get(name) == null) {        return value;      }      return ((Integer) primitives.get(name)).intValue();    }    /**     * DESCRIBE THE METHOD     *     * @param name DESCRIBE THE PARAMETER     * @param value DESCRIBE THE PARAMETER     * @return DESCRIBE THE RETURN VALUE     */    public long get(String name, long value) {      if (primitives.get(name) == null) {        return value;      }      return ((Long) primitives.get(name)).longValue();    }    /**     * DESCRIBE THE METHOD     *     * @param name DESCRIBE THE PARAMETER     * @param value DESCRIBE THE PARAMETER     * @return DESCRIBE THE RETURN VALUE     */    public short get(String name, short value) {      if (primitives.get(name) == null) {        return value;      }      return ((Short) primitives.get(name)).shortValue();    }    /**     * DESCRIBE THE METHOD     *     * @param name DESCRIBE THE PARAMETER     * @param value DESCRIBE THE PARAMETER     * @return DESCRIBE THE RETURN VALUE     */    public Object get(String name, Object value) {      if (objects.get(name) == null) {        return value;      }      return objects.get(name);    }    /**     * Gets the ObjectStreamClass attribute of the GetField object     *     * @return The ObjectStreamClass value     */    public ObjectStreamClass getObjectStreamClass() {      throw new UnsupportedOperationException("CANNOT GET THE OBJECT STREAM CLASS!");    }    /**     * DESCRIBE THE METHOD     *     * @param name DESCRIBE THE PARAMETER     * @return DESCRIBE THE RETURN VALUE     */    public boolean defaulted(String name) {      return (!(primitives.containsKey(name) || objects.containsKey(name)));    }    /**     * DESCRIBE THE METHOD     *     * @param name DESCRIBE THE PARAMETER     * @param value DESCRIBE THE PARAMETER     */    protected void put(String name, boolean value) {      primitives.put(name, new Boolean(value));    }    /**     * DESCRIBE THE METHOD     *     * @param name DESCRIBE THE PARAMETER     * @param value DESCRIBE THE PARAMETER     */    protected void put(String name, byte value) {      primitives.put(name, new Byte(value));    }    /**     * DESCRIBE THE METHOD     *     * @param name DESCRIBE THE PARAMETER     * @param value DESCRIBE THE PARAMETER     */    protected void put(String name, char value) {      primitives.put(name, new Character(value));    }    /**     * DESCRIBE THE METHOD     *     * @param name DESCRIBE THE PARAMETER     * @param value DESCRIBE THE PARAMETER     */    protected void put(String name, double value) {      primitives.put(name, new Double(value));    }    /**     * DESCRIBE THE METHOD     *     * @param name DESCRIBE THE PARAMETER     * @param value DESCRIBE THE PARAMETER     */    protected void put(String name, float value) {      primitives.put(name, new Float(value));    }    /**     * DESCRIBE THE METHOD     *     * @param name DESCRIBE THE PARAMETER     * @param value DESCRIBE THE PARAMETER     */    protected void put(String name, int value) {      primitives.put(name, new Integer(value));    }    /**     * DESCRIBE THE METHOD     *     * @param name DESCRIBE THE PARAMETER     * @param value DESCRIBE THE PARAMETER     */    protected void put(String name, long value) {      primitives.put(name, new Long(value));    }    /**     * DESCRIBE THE METHOD     *     * @param name DESCRIBE THE PARAMETER     * @param value DESCRIBE THE PARAMETER     */    protected void put(String name, short value) {      primitives.put(name, new Short(value));    }    /**     * DESCRIBE THE METHOD     *     * @param name DESCRIBE THE PARAMETER     * @param value DESCRIBE THE PARAMETER     */    protected void put(String name, Object value) {      objects.put(name, value);    }  }  // ----- VALIDATION LIST IMPLEMENTATION ----  /**   * Prioritized list of callbacks to be performed once object graph has been   * completely deserialized.   *   * @version $Id: pretty.settings 2305 2005-03-11 20:22:33Z jeffh $   * @author jeffh   */  private static class ValidationList {    /**     * linked list of callbacks     */    private Callback list;    /**     * Creates new (empty) ValidationList.     */    ValidationList() {    }    /**     * Registers callback. Throws InvalidObjectException if callback object is     * null.     *     * @param obj DESCRIBE THE PARAMETER     * @param priority DESCRIBE THE PARAMETER     * @exception InvalidObjectException DESCRIBE THE EXCEPTION     */    void register(ObjectInputValidation obj, int priority) throws InvalidObjectException {      if (obj == null) {        throw new InvalidObjectException("null callback");      }      Callback prev = null;      Callback cur = list;      while (cur != null && priority < cur.priority) {        prev = cur;        cur = cur.next;      }      if (prev != null) {        prev.next = new Callback(obj, priority, cur);      } else {        list = new Callback(obj, priority, list);      }    }    /**     * Invokes all registered callbacks and clears the callback list. Callbacks     * with higher priorities are called first; those with equal priorities may     * be called in any order. If any of the callbacks throws an     * InvalidObjectException, the callback process is terminated and the     * exception propagated upwards.     *     * @exception InvalidObjectException DESCRIBE THE EXCEPTION     */    void doCallbacks() throws InvalidObjectException {      try {        while (list != null) {          list.obj.validateObject();          list = list.next;        }      } catch (InvalidObjectException ex) {        list = null;        throw ex;      }    }    /**     * Resets the callback list to its initial (empty) state.     */    public void clear() {      list = null;    }    /**     * DESCRIBE THE CLASS     *     * @version $Id: pretty.settings 2305 2005-03-11 20:22:33Z jeffh $     * @author jeffh     */    private static class Callback {      final ObjectInputValidation obj;      final int priority;      Callback next;      /**       * Constructor for Callback.       *       * @param obj DESCRIBE THE PARAMETER       * @param priority DESCRIBE THE PARAMETER       * @param next DESCRIBE THE PARAMETER       */      Callback(ObjectInputValidation obj, int priority, Callback next) {        this.obj = obj;        this.priority = priority;        this.next = next;      }    }  }}

⌨️ 快捷键说明

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