Xindice API

org.apache.xindice.core.objects
Interface Reflectable

All Known Subinterfaces:
XMLObject
All Known Implementing Classes:
SimpleReflectable

public interface Reflectable

Reflectable is the base interface for XMLObjects, allowing them to expose a Reflector for performing method introspection and execution against the Object.

Xindice will expose all public methods that match a valid signature. The rules of this signature follow:

    Result/Params: void                              (result only)
                   org.w3c.dom.Element               (result only)
                   org.w3c.dom.Document              (result only)
                   org.w3c.dom.DocumentFragment      (result only)
                   native types (long, int, etc...)
                   java.lang.String
                   org.apache.xindice.core.objects.Variant

    *NOTE: String, Variant, and all of the Java native types (long,
           int, etc...) can also be passed as arrays of those types.
 
XMLObjects need to expose meta data so that a URI Query String (or any other type of parameter set can be mapped to a method's arguments. This is accomplished through the getReflector() method.

A typical URI for an Reflectable might be:
    /Database/Collection/1234567/XMLObject/Method(Blah, Blah)
    /Database/Collection/1234567/XMLObject/Method?red=Blah&green=Blah
 
Both forms will create a new Reflectable if neccessary, set any required context information, and call a method in that object. The first form passes the two arguments as-is, and the second maps the 'red' parameter to the red argument, and the blue parameter to the blue argument (regardless of method ordering).


Field Summary
static java.lang.String[] NO_PARAMS
           
 
Method Summary
 Reflector getReflector()
          getReflector returns the Reflectable Object's Reflector instance.
 org.w3c.dom.Document queryInterface()
          queryInterface allows a client to query the Reflectable Object for exposed methods.
 

Field Detail

NO_PARAMS

public static final java.lang.String[] NO_PARAMS
Method Detail

getReflector

public Reflector getReflector()
getReflector returns the Reflectable Object's Reflector instance.
Returns:
The Object's Reflector

queryInterface

public org.w3c.dom.Document queryInterface()
queryInterface allows a client to query the Reflectable Object for exposed methods.
Returns:
The Object's interface

Xindice API

Copyright (c) 1999-2001 The Apache Software Foundation