This documentation differs from the official API. Jadeite adds extra features to the API including: variable font sizes, constructions examples, placeholders for classes and methods, and auto-generated “See Also” links. Additionally it is missing some items found in standard Javadoc documentation, including: generics type information, “Deprecated” tags and comments, “See Also” links, along with other minor differences. Please send any questions or feedback to bam@cs.cmu.edu.


javax.management.openmbean
class CompositeDataInvocationHandler

java.lang.Object extended by javax.management.openmbean.CompositeDataInvocationHandler
All Implemented Interfaces:
InvocationHandler

public class CompositeDataInvocationHandler
extends Object
implements InvocationHandler

An {@link InvocationHandler} that forwards getter methods to a {@link CompositeData}. If you have an interface that contains only getter methods (such as {@code String getName()} or {@code boolean isActive()}) then you can use this class in conjunction with the {@link Proxy} class to produce an implementation of the interface where each getter returns the value of the corresponding item in a {@code CompositeData}.

For example, suppose you have an interface like this:

   public interface NamedNumber {
       public int getNumber();
       public String getName();
   }
   
and a {@code CompositeData} constructed like this:
   CompositeData cd =
       new {@link CompositeDataSupport}(
           someCompositeType,
           new String[] {"number", "name"},
           new Object[] {5, "five"}
       );
   
then you can construct an object implementing {@code NamedNumber} and backed by the object {@code cd} like this:
   InvocationHandler handler =
       new CompositeDataInvocationHandler(cd);
   NamedNumber nn = (NamedNumber)
       Proxy.newProxyInstance(NamedNumber.class.getClassLoader(),
                              new Class[] {NamedNumber.class},
                              handler);
   
A call to {@code nn.getNumber()} will then return 5.

If the first letter of the property defined by a getter is a capital, then this handler will look first for an item in the {@code CompositeData} beginning with a capital, then, if that is not found, for an item beginning with the corresponding lowercase letter or code point. For a getter called {@code getNumber()}, the handler will first look for an item called {@code Number}, then for {@code number}. If the getter is called {@code getnumber()}, then the item must be called {@code number}.

If the method given to {@link #invoke invoke} is the method {@code boolean equals(Object)} inherited from {@code Object}, then it will return true if and only if the argument is a {@code Proxy} whose {@code InvocationHandler} is also a {@code CompositeDataInvocationHandler} and whose backing {@code CompositeData} is equal (not necessarily identical) to this object's. If the method given to {@code invoke} is the method {@code int hashCode()} inherited from {@code Object}, then it will return a value that is consistent with this definition of {@code equals}: if two objects are equal according to {@code equals}, then they will have the same {@code hashCode}.


Constructor Summary

          Construct a handler backed by the given .
 
Method Summary
 CompositeData

          Return the that was supplied to the constructor.
 Object
invoke(Object proxy, Method method, Object[] args)

          
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CompositeDataInvocationHandler

public CompositeDataInvocationHandler(CompositeData compositeData)

Construct a handler backed by the given {@code CompositeData}.

Parameters:
compositeData - the {@code CompositeData} that will supply information to getters.
Method Detail

getCompositeData

public CompositeData getCompositeData()
Return the {@code CompositeData} that was supplied to the constructor.

Returns:
the {@code CompositeData} that this handler is backed by. This is never null.

invoke

public Object invoke(Object proxy,
                     Method method,
                     Object[] args)
              throws Throwable
Parameters:
proxy
method
args
Throws:
Throwable


This documentation differs from the official API. Jadeite adds extra features to the API including: variable font sizes, constructions examples, placeholders for classes and methods, and auto-generated “See Also” links. Additionally it is missing some items found in standard Javadoc documentation, including: generics type information, “Deprecated” tags and comments, “See Also” links, along with other minor differences. Please send any questions or feedback to bam@cs.cmu.edu.
This page displays the Jadeite version of the documention, which is derived from the offical documentation that contains this copyright notice:
Copyright 2008 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.
The official Sun™ documentation can be found here at http://java.sun.com/javase/6/docs/api/.