|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.apache.xalan.extensions.MethodResolver
Utility class to help resolve method overloading with Xalan XSLT argument types.
| Nested Class Summary | |
(package private) static class |
MethodResolver.ConversionInfo
Simple class to hold information about allowed conversions and their relative scores, for use by the table below. |
| Field Summary | |
static int |
DYNAMIC
Specifies a Dynamic method search. |
static int |
INSTANCE_ONLY
Specifies a search for instance methods only. |
(package private) static MethodResolver.ConversionInfo[] |
m_booleanConversions
Specification of conversions from XSLT type CLASS_BOOLEAN to allowed Java types. |
(package private) static MethodResolver.ConversionInfo[][] |
m_conversions
Order is significant in the list below, based on XObject.CLASS_XXX values. |
(package private) static MethodResolver.ConversionInfo[] |
m_javaObjConversions
Specification of conversions from XSLT type CLASS_UNKNOWN (i.e. some unknown Java object) to allowed Java types. |
(package private) static MethodResolver.ConversionInfo[] |
m_nodesetConversions
Specification of conversions from XSLT type CLASS_NODESET to allowed Java types. |
(package private) static MethodResolver.ConversionInfo[] |
m_numberConversions
Specification of conversions from XSLT type CLASS_NUMBER to allowed Java types. |
(package private) static MethodResolver.ConversionInfo[] |
m_rtfConversions
Specification of conversions from XSLT type CLASS_RTREEFRAG to allowed Java types. |
(package private) static MethodResolver.ConversionInfo[] |
m_stringConversions
Specification of conversions from XSLT type CLASS_STRING to allowed Java types. |
private static int |
SCOREBASE
|
static int |
STATIC_AND_INSTANCE
Specifies a search for both static and instance methods. |
static int |
STATIC_ONLY
Specifies a search for static methods only. |
| Constructor Summary | |
MethodResolver()
|
|
| Method Summary | |
(package private) static Object |
convert(Object xsltObj,
Class javaClass)
Convert the given XSLT object to an object of the given class. |
(package private) static Object |
convertDoubleToNumber(double num,
Class javaClass)
Do a standard conversion of a double to the specified type. |
static void |
convertParams(Object[] argsIn,
Object[][] argsOut,
Class[] paramTypes,
ExpressionContext exprContext)
Convert a set of parameters based on a set of paramTypes. |
private static String |
errArgs(Object[] xsltArgs,
int startingArg)
|
private static String |
errString(String callType,
String searchType,
Class classObj,
String funcName,
int searchMethod,
Object[] xsltArgs)
Format the message for the NoSuchMethodException containing all the information about the method we're looking for. |
static Constructor |
getConstructor(Class classObj,
Object[] argsIn,
Object[][] argsOut,
ExpressionContext exprContext)
Given a class, figure out the resolution of the Java Constructor from the XSLT argument types, and perform the conversion of the arguments. |
static Method |
getElementMethod(Class classObj,
String name)
Given the name of a method, figure out the resolution of the Java Method |
static Method |
getMethod(Class classObj,
String name,
Object[] argsIn,
Object[][] argsOut,
ExpressionContext exprContext,
int searchMethod)
Given the name of a method, figure out the resolution of the Java Method from the XSLT argument types, and perform the conversion of the arguments. |
private static String |
replaceDash(String name)
To support EXSLT extensions, convert names with dash to allowable Java names: e.g., convert abc-xyz to abcXyz. |
static int |
scoreMatch(Class[] javaParamTypes,
int javaParamsStart,
Object[] xsltArgs,
int score)
Score the conversion of a set of XSLT arguments to a given set of Java parameters. |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
public static final int STATIC_ONLY
public static final int INSTANCE_ONLY
public static final int STATIC_AND_INSTANCE
public static final int DYNAMIC
private static final int SCOREBASE
static MethodResolver.ConversionInfo[] m_javaObjConversions
static MethodResolver.ConversionInfo[] m_booleanConversions
static MethodResolver.ConversionInfo[] m_numberConversions
static MethodResolver.ConversionInfo[] m_stringConversions
static MethodResolver.ConversionInfo[] m_rtfConversions
static MethodResolver.ConversionInfo[] m_nodesetConversions
static MethodResolver.ConversionInfo[][] m_conversions
| Constructor Detail |
public MethodResolver()
| Method Detail |
public static Constructor getConstructor(Class classObj,
Object[] argsIn,
Object[][] argsOut,
ExpressionContext exprContext)
throws NoSuchMethodException,
SecurityException,
javax.xml.transform.TransformerException
classObj - the Class of the object to be constructed.argsIn - An array of XSLT/XPath arguments.argsOut - An array of the exact size as argsIn, which will be
populated with converted arguments if a suitable method is found.
javax.xml.transform.TransformerException - may be thrown for Xalan conversion
exceptions.
NoSuchMethodException
SecurityException
public static Method getMethod(Class classObj,
String name,
Object[] argsIn,
Object[][] argsOut,
ExpressionContext exprContext,
int searchMethod)
throws NoSuchMethodException,
SecurityException,
javax.xml.transform.TransformerException
classObj - The Class of the object that should have the method.name - The name of the method to be invoked.argsIn - An array of XSLT/XPath arguments.argsOut - An array of the exact size as argsIn, which will be
populated with converted arguments if a suitable method is found.
javax.xml.transform.TransformerException - may be thrown for Xalan conversion
exceptions.
NoSuchMethodException
SecurityExceptionprivate static String replaceDash(String name)
public static Method getElementMethod(Class classObj,
String name)
throws NoSuchMethodException,
SecurityException,
javax.xml.transform.TransformerException
classObj - The Class of the object that should have the method.name - The name of the method to be invoked.
javax.xml.transform.TransformerException - may be thrown for Xalan conversion
exceptions.
NoSuchMethodException
SecurityException
public static void convertParams(Object[] argsIn,
Object[][] argsOut,
Class[] paramTypes,
ExpressionContext exprContext)
throws javax.xml.transform.TransformerException
argsIn - An array of XSLT/XPath arguments.argsOut - An array of the exact size as argsIn, which will be
populated with converted arguments.paramTypes - An array of class objects, of the exact same
size as argsIn and argsOut.
javax.xml.transform.TransformerException - may be thrown for Xalan conversion
exceptions.
public static int scoreMatch(Class[] javaParamTypes,
int javaParamsStart,
Object[] xsltArgs,
int score)
javaParamTypes - Must be filled with valid class names, and
of the same length as xsltArgs.xsltArgs - Must be filled with valid object instances, and
of the same length as javeParamTypes.
static Object convert(Object xsltObj,
Class javaClass)
throws javax.xml.transform.TransformerException
xsltObj - The XSLT object that needs conversion.javaClass - The type of object to convert to.
javax.xml.transform.TransformerException - may be thrown for Xalan conversion
exceptions.
static Object convertDoubleToNumber(double num,
Class javaClass)
num - The number to be converted.javaClass - The class type to be converted to.
private static String errString(String callType,
String searchType,
Class classObj,
String funcName,
int searchMethod,
Object[] xsltArgs)
private static String errArgs(Object[] xsltArgs,
int startingArg)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||