Added Javadocs and README

This commit is contained in:
Abhinav Sarkar 2010-05-27 01:51:03 +05:30
parent bf09c40c7f
commit b23635776e
32 changed files with 4197 additions and 58 deletions

78
README.mdown Normal file
View File

@ -0,0 +1,78 @@
SpelHelper provides additional functionalities to work with
[Spring Expression Language (SpEL)][1].
The addition functionalities provided are:
1. Implicit methods
2. Implicit properties
3. Simplified extension functions
4. Simplified constructors
**Implicit Methods**
Implicit methods allow one to registers methods with SpelHelper and attach
them to particular classes. After that, when that method is called on an
object of that particular class inside a SpEL expression, SpelHelper
redirects the method call to the registered method.
Example: [ImplicitMethods#sorted(List)][4] method is automatically
registered by SpelHelper. The class that the method should be invoked for
is the type of the first parameter of the method. In this case, the class is
java.util.List.
So when an expression like `"#list(1,4,2).sorted()"` is evaluated, the
[ImplicitMethods#sorted(List)][4] method is invoked with the list as its
first parameter and its return value is used in further evaluation of the
expression.
**Implicit Properties**
Implicit properties allow one to treat no argument methods of an object
as properties of the object. SpelHelper intercepts the property resolution
of SpEL and if the property name is same as some no-arg method of the target
object then it invokes the method on the object and provides its return value
as the property value for further evaluation of the expression.
Example: Using implicit properties, the example of implicit methods can be
written as: `"#list(1,4,2).sorted"` - dropping the parens - and it will return
the same value as the last example.
Implicit property resolution considers both the actual methods of the object
and the implicit methods registered on the object's class.
**Simplified extension functions**
SpEL [allows][2] to register extension function on the context by providing a
name and a java.lang.reflect.Method object. SpelHelper simplifies this by taking a class
and registering all the `public static` methods of the class which do not
have a `void` return type. The methods are registered by their simple name.
Example: All the methods of [ExtensionFunctions][5] class are automatically
registered by SpelHelper. Hence the method [ExtensionFunctions#list(Object...)][5]
can be called from inside a SpEL expression using the function call syntax:
`"#list(1,2,3)`".
**Simplified constructors**
SpEL [allows][3] calling constructors from inside a SpEL expression using the
`new` operator. But they have to be called with their full name like:
`"new org.example.Foo('bar')"`. SpelHelper simplifies this by taking a class
and registering all its public constructors to the SpEL context by their
simple name.
Example: After registering the `org.example.Foo` class with SpelHelper, its
constructor can be called from inside a SpEL expression by: `"new Foo('bar')"`.
In addition to all the above functionalities, SpelHelper automatically registers
some extension functions and implicit methods which are always available in
the SpEL expressions evaluated through SpelHelper. See [ExtensionFunctions][5]
and [ImplicitMethods][4] for further details.
For more details see the [API Javadocs][6].
[1]: http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/expressions.html
[2]: http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/expressions.html#expressions-ref-functions
[3]: http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/expressions.html#d0e11927
[4]: http://github.com/abhin4v/spelhelper/blob/master/src/main/java/net/abhinavsarkar/spelhelper/ImplicitMethods.java
[5]: http://github.com/abhin4v/spelhelper/blob/master/src/main/java/net/abhinavsarkar/spelhelper/ExtensionFunctions.java
[6]: http://github.com/abhin4v/spelhelper/raw/master/apidocs/net/abhinavsarkar/spelhelper/package-summary.html

View File

@ -0,0 +1,36 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.6.0) on Thu May 27 01:34:44 IST 2010 -->
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>
All Classes (SpelHelper 1.0 API)
</TITLE>
<META NAME="date" CONTENT="2010-05-27">
<LINK REL ="stylesheet" TYPE="text/css" HREF="spring-javadoc.css" TITLE="Style">
</HEAD>
<BODY BGCOLOR="white">
<FONT size="+1" CLASS="FrameHeadingFont">
<B>All Classes</B></FONT>
<BR>
<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
<TR>
<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="net/abhinavsarkar/spelhelper/ExtensionFunctions.html" title="class in net.abhinavsarkar.spelhelper" target="classFrame">ExtensionFunctions</A>
<BR>
<A HREF="net/abhinavsarkar/spelhelper/ImplicitMethods.html" title="class in net.abhinavsarkar.spelhelper" target="classFrame">ImplicitMethods</A>
<BR>
<A HREF="net/abhinavsarkar/spelhelper/SpelHelper.html" title="class in net.abhinavsarkar.spelhelper" target="classFrame">SpelHelper</A>
<BR>
</FONT></TD>
</TR>
</TABLE>
</BODY>
</HTML>

View File

@ -0,0 +1,36 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.6.0) on Thu May 27 01:34:44 IST 2010 -->
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>
All Classes (SpelHelper 1.0 API)
</TITLE>
<META NAME="date" CONTENT="2010-05-27">
<LINK REL ="stylesheet" TYPE="text/css" HREF="spring-javadoc.css" TITLE="Style">
</HEAD>
<BODY BGCOLOR="white">
<FONT size="+1" CLASS="FrameHeadingFont">
<B>All Classes</B></FONT>
<BR>
<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
<TR>
<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="net/abhinavsarkar/spelhelper/ExtensionFunctions.html" title="class in net.abhinavsarkar.spelhelper">ExtensionFunctions</A>
<BR>
<A HREF="net/abhinavsarkar/spelhelper/ImplicitMethods.html" title="class in net.abhinavsarkar.spelhelper">ImplicitMethods</A>
<BR>
<A HREF="net/abhinavsarkar/spelhelper/SpelHelper.html" title="class in net.abhinavsarkar.spelhelper">SpelHelper</A>
<BR>
</FONT></TD>
</TR>
</TABLE>
</BODY>
</HTML>

View File

@ -0,0 +1,145 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.6.0) on Thu May 27 01:34:44 IST 2010 -->
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>
Constant Field Values (SpelHelper 1.0 API)
</TITLE>
<META NAME="date" CONTENT="2010-05-27">
<LINK REL ="stylesheet" TYPE="text/css" HREF="spring-javadoc.css" TITLE="Style">
<SCRIPT type="text/javascript">
function windowTitle()
{
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="Constant Field Values (SpelHelper 1.0 API)";
}
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>
</HEAD>
<BODY BGCOLOR="white" onload="windowTitle();">
<HR>
<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="net/abhinavsarkar/spelhelper/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="net/abhinavsarkar/spelhelper/package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;PREV&nbsp;
&nbsp;NEXT</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="index.html?constant-values.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="constant-values.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->
<HR>
<CENTER>
<H1>
Constant Field Values</H1>
</CENTER>
<HR SIZE="4" NOSHADE>
<B>Contents</B><UL>
</UL>
<HR>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="net/abhinavsarkar/spelhelper/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="net/abhinavsarkar/spelhelper/package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
Code hosted at <a target='_blank' href='http://github.com/abhin4v/spelhelper/'>github</a></EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;PREV&nbsp;
&nbsp;NEXT</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="index.html?constant-values.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="constant-values.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<HR>
Copyright &#169; 2010. All Rights Reserved.
</BODY>
</HTML>

View File

@ -0,0 +1,145 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.6.0) on Thu May 27 01:34:44 IST 2010 -->
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>
Deprecated List (SpelHelper 1.0 API)
</TITLE>
<META NAME="date" CONTENT="2010-05-27">
<LINK REL ="stylesheet" TYPE="text/css" HREF="spring-javadoc.css" TITLE="Style">
<SCRIPT type="text/javascript">
function windowTitle()
{
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="Deprecated List (SpelHelper 1.0 API)";
}
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>
</HEAD>
<BODY BGCOLOR="white" onload="windowTitle();">
<HR>
<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="net/abhinavsarkar/spelhelper/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="net/abhinavsarkar/spelhelper/package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Deprecated</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;PREV&nbsp;
&nbsp;NEXT</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="index.html?deprecated-list.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="deprecated-list.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->
<HR>
<CENTER>
<H2>
<B>Deprecated API</B></H2>
</CENTER>
<HR SIZE="4" NOSHADE>
<B>Contents</B><UL>
</UL>
<HR>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="net/abhinavsarkar/spelhelper/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="net/abhinavsarkar/spelhelper/package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Deprecated</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
Code hosted at <a target='_blank' href='http://github.com/abhin4v/spelhelper/'>github</a></EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;PREV&nbsp;
&nbsp;NEXT</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="index.html?deprecated-list.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="deprecated-list.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<HR>
Copyright &#169; 2010. All Rights Reserved.
</BODY>
</HTML>

216
apidocs/help-doc.html Normal file
View File

@ -0,0 +1,216 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.6.0) on Thu May 27 01:34:44 IST 2010 -->
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>
API Help (SpelHelper 1.0 API)
</TITLE>
<META NAME="date" CONTENT="2010-05-27">
<LINK REL ="stylesheet" TYPE="text/css" HREF="spring-javadoc.css" TITLE="Style">
<SCRIPT type="text/javascript">
function windowTitle()
{
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="API Help (SpelHelper 1.0 API)";
}
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>
</HEAD>
<BODY BGCOLOR="white" onload="windowTitle();">
<HR>
<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="net/abhinavsarkar/spelhelper/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="net/abhinavsarkar/spelhelper/package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Help</B></FONT>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;PREV&nbsp;
&nbsp;NEXT</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="index.html?help-doc.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="help-doc.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->
<HR>
<CENTER>
<H1>
How This API Document Is Organized</H1>
</CENTER>
This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.<H3>
Package</H3>
<BLOCKQUOTE>
<P>
Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain four categories:<UL>
<LI>Interfaces (italic)<LI>Classes<LI>Enums<LI>Exceptions<LI>Errors<LI>Annotation Types</UL>
</BLOCKQUOTE>
<H3>
Class/Interface</H3>
<BLOCKQUOTE>
<P>
Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:<UL>
<LI>Class inheritance diagram<LI>Direct Subclasses<LI>All Known Subinterfaces<LI>All Known Implementing Classes<LI>Class/interface declaration<LI>Class/interface description
<P>
<LI>Nested Class Summary<LI>Field Summary<LI>Constructor Summary<LI>Method Summary
<P>
<LI>Field Detail<LI>Constructor Detail<LI>Method Detail</UL>
Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.</BLOCKQUOTE>
</BLOCKQUOTE>
<H3>
Annotation Type</H3>
<BLOCKQUOTE>
<P>
Each annotation type has its own separate page with the following sections:<UL>
<LI>Annotation Type declaration<LI>Annotation Type description<LI>Required Element Summary<LI>Optional Element Summary<LI>Element Detail</UL>
</BLOCKQUOTE>
</BLOCKQUOTE>
<H3>
Enum</H3>
<BLOCKQUOTE>
<P>
Each enum has its own separate page with the following sections:<UL>
<LI>Enum declaration<LI>Enum description<LI>Enum Constant Summary<LI>Enum Constant Detail</UL>
</BLOCKQUOTE>
<H3>
Use</H3>
<BLOCKQUOTE>
Each documented package, class and interface has its own Use page. This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its Use page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A. You can access this page by first going to the package, class or interface, then clicking on the "Use" link in the navigation bar.</BLOCKQUOTE>
<H3>
Tree (Class Hierarchy)</H3>
<BLOCKQUOTE>
There is a <A HREF="overview-tree.html">Class Hierarchy</A> page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with <code>java.lang.Object</code>. The interfaces do not inherit from <code>java.lang.Object</code>.<UL>
<LI>When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.<LI>When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.</UL>
</BLOCKQUOTE>
<H3>
Deprecated API</H3>
<BLOCKQUOTE>
The <A HREF="deprecated-list.html">Deprecated API</A> page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.</BLOCKQUOTE>
<H3>
Index</H3>
<BLOCKQUOTE>
The <A HREF="index-all.html">Index</A> contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.</BLOCKQUOTE>
<H3>
Prev/Next</H3>
These links take you to the next or previous class, interface, package, or related page.<H3>
Frames/No Frames</H3>
These links show and hide the HTML frames. All pages are available with or without frames.
<P>
<H3>
Serialized Form</H3>
Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.
<P>
<H3>
Constant Field Values</H3>
The <a href="constant-values.html">Constant Field Values</a> page lists the static final fields and their values.
<P>
<FONT SIZE="-1">
<EM>
This help file applies to API documentation generated using the standard doclet.</EM>
</FONT>
<BR>
<HR>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="net/abhinavsarkar/spelhelper/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="net/abhinavsarkar/spelhelper/package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Help</B></FONT>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
Code hosted at <a target='_blank' href='http://github.com/abhin4v/spelhelper/'>github</a></EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;PREV&nbsp;
&nbsp;NEXT</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="index.html?help-doc.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="help-doc.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<HR>
Copyright &#169; 2010. All Rights Reserved.
</BODY>
</HTML>

260
apidocs/index-all.html Normal file
View File

@ -0,0 +1,260 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.6.0) on Thu May 27 01:34:44 IST 2010 -->
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>
Index (SpelHelper 1.0 API)
</TITLE>
<META NAME="date" CONTENT="2010-05-27">
<LINK REL ="stylesheet" TYPE="text/css" HREF="./spring-javadoc.css" TITLE="Style">
<SCRIPT type="text/javascript">
function windowTitle()
{
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="Index (SpelHelper 1.0 API)";
}
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>
</HEAD>
<BODY BGCOLOR="white" onload="windowTitle();">
<HR>
<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="./net/abhinavsarkar/spelhelper/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="./net/abhinavsarkar/spelhelper/package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="./deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="./help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;PREV&nbsp;
&nbsp;NEXT</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="./index.html?index-all.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="index-all.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="./allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="./allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->
<A HREF="#_D_">D</A> <A HREF="#_E_">E</A> <A HREF="#_G_">G</A> <A HREF="#_I_">I</A> <A HREF="#_L_">L</A> <A HREF="#_M_">M</A> <A HREF="#_N_">N</A> <A HREF="#_R_">R</A> <A HREF="#_S_">S</A> <A HREF="#_T_">T</A> <HR>
<A NAME="_D_"><!-- --></A><H2>
<B>D</B></H2>
<DL>
<DT><A HREF="./net/abhinavsarkar/spelhelper/ImplicitMethods.html#distinct(java.util.List)"><B>distinct(List&lt;? extends T&gt;)</B></A> -
Static method in class net.abhinavsarkar.spelhelper.<A HREF="./net/abhinavsarkar/spelhelper/ImplicitMethods.html" title="class in net.abhinavsarkar.spelhelper">ImplicitMethods</A>
<DD>Provides implicit method <code>distinct</code> on the <a href="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code> </a>class.
<DT><A HREF="./net/abhinavsarkar/spelhelper/ImplicitMethods.html#drop(java.util.List, int)"><B>drop(List&lt;T&gt;, int)</B></A> -
Static method in class net.abhinavsarkar.spelhelper.<A HREF="./net/abhinavsarkar/spelhelper/ImplicitMethods.html" title="class in net.abhinavsarkar.spelhelper">ImplicitMethods</A>
<DD>Provides implicit method <code>drop</code> on the <a href="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code> </a>class.
</DL>
<HR>
<A NAME="_E_"><!-- --></A><H2>
<B>E</B></H2>
<DL>
<DT><A HREF="./net/abhinavsarkar/spelhelper/SpelHelper.html#evalExpression(java.lang.String, java.lang.Object, java.lang.Class)"><B>evalExpression(String, Object, Class&lt;T&gt;)</B></A> -
Method in class net.abhinavsarkar.spelhelper.<A HREF="./net/abhinavsarkar/spelhelper/SpelHelper.html" title="class in net.abhinavsarkar.spelhelper">SpelHelper</A>
<DD>Evaluates a SpEL expression <code>expressionString</code> in the context
of root element <code>rootElement</code> and gives back a result of type
<code>desiredType</code>.
<DT><A HREF="./net/abhinavsarkar/spelhelper/SpelHelper.html#evalExpression(java.lang.String, org.springframework.expression.EvaluationContext, java.lang.Class)"><B>evalExpression(String, EvaluationContext, Class&lt;T&gt;)</B></A> -
Method in class net.abhinavsarkar.spelhelper.<A HREF="./net/abhinavsarkar/spelhelper/SpelHelper.html" title="class in net.abhinavsarkar.spelhelper">SpelHelper</A>
<DD>Evaluates a SpEL expression <code>expressionString</code> in the provided
context <code>evaluationContext</code> and gives back a result of type
<code>desiredType</code>.
<DT><A HREF="./net/abhinavsarkar/spelhelper/SpelHelper.html#evalExpressions(java.lang.String[], java.lang.Object, java.lang.Class)"><B>evalExpressions(String[], Object, Class&lt;T&gt;)</B></A> -
Method in class net.abhinavsarkar.spelhelper.<A HREF="./net/abhinavsarkar/spelhelper/SpelHelper.html" title="class in net.abhinavsarkar.spelhelper">SpelHelper</A>
<DD>Evaluates multiple SpEL expressions and returns the result of the last
expression.
<DT><A HREF="./net/abhinavsarkar/spelhelper/SpelHelper.html#evalExpressions(java.lang.String[], org.springframework.expression.EvaluationContext, java.lang.Class)"><B>evalExpressions(String[], EvaluationContext, Class&lt;T&gt;)</B></A> -
Method in class net.abhinavsarkar.spelhelper.<A HREF="./net/abhinavsarkar/spelhelper/SpelHelper.html" title="class in net.abhinavsarkar.spelhelper">SpelHelper</A>
<DD>Evaluates multiple SpEL expressions and returns the result of the last
expression.
<DT><A HREF="./net/abhinavsarkar/spelhelper/ExtensionFunctions.html" title="class in net.abhinavsarkar.spelhelper"><B>ExtensionFunctions</B></A> - Class in <A HREF="./net/abhinavsarkar/spelhelper/package-summary.html">net.abhinavsarkar.spelhelper</A><DD>Provides some extension functions to create some basic collection types
inline in SpEL expressions.</DL>
<HR>
<A NAME="_G_"><!-- --></A><H2>
<B>G</B></H2>
<DL>
<DT><A HREF="./net/abhinavsarkar/spelhelper/SpelHelper.html#getCurrentContext()"><B>getCurrentContext()</B></A> -
Static method in class net.abhinavsarkar.spelhelper.<A HREF="./net/abhinavsarkar/spelhelper/SpelHelper.html" title="class in net.abhinavsarkar.spelhelper">SpelHelper</A>
<DD>Returns the current evaluation context.
</DL>
<HR>
<A NAME="_I_"><!-- --></A><H2>
<B>I</B></H2>
<DL>
<DT><A HREF="./net/abhinavsarkar/spelhelper/ImplicitMethods.html" title="class in net.abhinavsarkar.spelhelper"><B>ImplicitMethods</B></A> - Class in <A HREF="./net/abhinavsarkar/spelhelper/package-summary.html">net.abhinavsarkar.spelhelper</A><DD>Provides some implicit methods which can be invoked on the instances of
class of the first parameter of the method inside a SpEL expression.<DT><A HREF="./net/abhinavsarkar/spelhelper/ImplicitMethods.html#ImplicitMethods()"><B>ImplicitMethods()</B></A> -
Constructor for class net.abhinavsarkar.spelhelper.<A HREF="./net/abhinavsarkar/spelhelper/ImplicitMethods.html" title="class in net.abhinavsarkar.spelhelper">ImplicitMethods</A>
<DD>&nbsp;
</DL>
<HR>
<A NAME="_L_"><!-- --></A><H2>
<B>L</B></H2>
<DL>
<DT><A HREF="./net/abhinavsarkar/spelhelper/ExtensionFunctions.html#list(T...)"><B>list(T...)</B></A> -
Static method in class net.abhinavsarkar.spelhelper.<A HREF="./net/abhinavsarkar/spelhelper/ExtensionFunctions.html" title="class in net.abhinavsarkar.spelhelper">ExtensionFunctions</A>
<DD>Creates an unmodifiable <a href="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code> </a>of the arguments provided.
<DT><A HREF="./net/abhinavsarkar/spelhelper/SpelHelper.html#lookupImplicitConstructor(java.lang.String)"><B>lookupImplicitConstructor(String)</B></A> -
Method in class net.abhinavsarkar.spelhelper.<A HREF="./net/abhinavsarkar/spelhelper/SpelHelper.html" title="class in net.abhinavsarkar.spelhelper">SpelHelper</A>
<DD>Looks up an implicit constructor registered with this instance.
<DT><A HREF="./net/abhinavsarkar/spelhelper/SpelHelper.html#lookupImplicitMethod(java.lang.String)"><B>lookupImplicitMethod(String)</B></A> -
Method in class net.abhinavsarkar.spelhelper.<A HREF="./net/abhinavsarkar/spelhelper/SpelHelper.html" title="class in net.abhinavsarkar.spelhelper">SpelHelper</A>
<DD>Looks up an implicit method registered with this instance.
</DL>
<HR>
<A NAME="_M_"><!-- --></A><H2>
<B>M</B></H2>
<DL>
<DT><A HREF="./net/abhinavsarkar/spelhelper/ExtensionFunctions.html#map(java.util.List, java.util.List)"><B>map(List&lt;? extends K&gt;, List&lt;? extends V&gt;)</B></A> -
Static method in class net.abhinavsarkar.spelhelper.<A HREF="./net/abhinavsarkar/spelhelper/ExtensionFunctions.html" title="class in net.abhinavsarkar.spelhelper">ExtensionFunctions</A>
<DD>Creates an unmodifiable <a href="http://java.sun.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util"><code>Map</code> </a>using the <a href="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code> </a>of keys
provided as the first argument and the <a href="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code> </a>of values provided
as the second argument.
</DL>
<HR>
<A NAME="_N_"><!-- --></A><H2>
<B>N</B></H2>
<DL>
<DT><A HREF="./net/abhinavsarkar/spelhelper/package-summary.html"><B>net.abhinavsarkar.spelhelper</B></A> - package net.abhinavsarkar.spelhelper<DD>&nbsp;</DL>
<HR>
<A NAME="_R_"><!-- --></A><H2>
<B>R</B></H2>
<DL>
<DT><A HREF="./net/abhinavsarkar/spelhelper/SpelHelper.html#registerConstructorsFromClass(java.lang.Class)"><B>registerConstructorsFromClass(Class&lt;?&gt;)</B></A> -
Method in class net.abhinavsarkar.spelhelper.<A HREF="./net/abhinavsarkar/spelhelper/SpelHelper.html" title="class in net.abhinavsarkar.spelhelper">SpelHelper</A>
<DD>Registers the public constructors of the class <code>clazz</code> so that they
can be called by their simple name from SpEL expressions.
<DT><A HREF="./net/abhinavsarkar/spelhelper/SpelHelper.html#registerFunctionsFromClass(java.lang.Class)"><B>registerFunctionsFromClass(Class&lt;?&gt;)</B></A> -
Method in class net.abhinavsarkar.spelhelper.<A HREF="./net/abhinavsarkar/spelhelper/SpelHelper.html" title="class in net.abhinavsarkar.spelhelper">SpelHelper</A>
<DD>Registers the public static methods in the class <code>clazz</code> as functions
which can be called from SpEL expressions.
<DT><A HREF="./net/abhinavsarkar/spelhelper/SpelHelper.html#registerImplicitMethodsFromClass(java.lang.Class)"><B>registerImplicitMethodsFromClass(Class&lt;?&gt;)</B></A> -
Method in class net.abhinavsarkar.spelhelper.<A HREF="./net/abhinavsarkar/spelhelper/SpelHelper.html" title="class in net.abhinavsarkar.spelhelper">SpelHelper</A>
<DD>Registers the public static methods in the class <code>clazz</code> as implicit
methods for the class of the first parameter of the methods.
<DT><A HREF="./net/abhinavsarkar/spelhelper/ImplicitMethods.html#reversed(java.util.List)"><B>reversed(List&lt;? extends T&gt;)</B></A> -
Static method in class net.abhinavsarkar.spelhelper.<A HREF="./net/abhinavsarkar/spelhelper/ImplicitMethods.html" title="class in net.abhinavsarkar.spelhelper">ImplicitMethods</A>
<DD>Provides implicit method <code>reversed</code> on the <a href="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code> </a>class.
</DL>
<HR>
<A NAME="_S_"><!-- --></A><H2>
<B>S</B></H2>
<DL>
<DT><A HREF="./net/abhinavsarkar/spelhelper/ExtensionFunctions.html#set(T...)"><B>set(T...)</B></A> -
Static method in class net.abhinavsarkar.spelhelper.<A HREF="./net/abhinavsarkar/spelhelper/ExtensionFunctions.html" title="class in net.abhinavsarkar.spelhelper">ExtensionFunctions</A>
<DD>Creates an unmodifiable <a href="http://java.sun.com/javase/6/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util"><code>Set</code> </a>of the arguments provided.
<DT><A HREF="./net/abhinavsarkar/spelhelper/ImplicitMethods.html#sorted(java.util.List)"><B>sorted(List&lt;? extends T&gt;)</B></A> -
Static method in class net.abhinavsarkar.spelhelper.<A HREF="./net/abhinavsarkar/spelhelper/ImplicitMethods.html" title="class in net.abhinavsarkar.spelhelper">ImplicitMethods</A>
<DD>Provides implicit method <code>sorted</code> on the <a href="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code> </a>class.
<DT><A HREF="./net/abhinavsarkar/spelhelper/SpelHelper.html" title="class in net.abhinavsarkar.spelhelper"><B>SpelHelper</B></A> - Class in <A HREF="./net/abhinavsarkar/spelhelper/package-summary.html">net.abhinavsarkar.spelhelper</A><DD>SpelHelper provides additional functionalities to work with
[Spring Expression Language (SpEL)][1].<DT><A HREF="./net/abhinavsarkar/spelhelper/SpelHelper.html#SpelHelper()"><B>SpelHelper()</B></A> -
Constructor for class net.abhinavsarkar.spelhelper.<A HREF="./net/abhinavsarkar/spelhelper/SpelHelper.html" title="class in net.abhinavsarkar.spelhelper">SpelHelper</A>
<DD>Creates an instance of SpelHelper.
</DL>
<HR>
<A NAME="_T_"><!-- --></A><H2>
<B>T</B></H2>
<DL>
<DT><A HREF="./net/abhinavsarkar/spelhelper/ImplicitMethods.html#take(java.util.List, int)"><B>take(List&lt;T&gt;, int)</B></A> -
Static method in class net.abhinavsarkar.spelhelper.<A HREF="./net/abhinavsarkar/spelhelper/ImplicitMethods.html" title="class in net.abhinavsarkar.spelhelper">ImplicitMethods</A>
<DD>Provides implicit method <code>take</code> on the <a href="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code> </a>class.
</DL>
<HR>
<A HREF="#_D_">D</A> <A HREF="#_E_">E</A> <A HREF="#_G_">G</A> <A HREF="#_I_">I</A> <A HREF="#_L_">L</A> <A HREF="#_M_">M</A> <A HREF="#_N_">N</A> <A HREF="#_R_">R</A> <A HREF="#_S_">S</A> <A HREF="#_T_">T</A>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="./net/abhinavsarkar/spelhelper/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="./net/abhinavsarkar/spelhelper/package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="./deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="./help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
Code hosted at <a target='_blank' href='http://github.com/abhin4v/spelhelper/'>github</a></EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;PREV&nbsp;
&nbsp;NEXT</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="./index.html?index-all.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="index-all.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="./allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="./allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<HR>
Copyright &#169; 2010. All Rights Reserved.
</BODY>
</HTML>

37
apidocs/index.html Normal file
View File

@ -0,0 +1,37 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc on Thu May 27 01:34:44 IST 2010-->
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>
SpelHelper 1.0 API
</TITLE>
<SCRIPT type="text/javascript">
targetPage = "" + window.location.search;
if (targetPage != "" && targetPage != "undefined")
targetPage = targetPage.substring(1);
if (targetPage.indexOf(":") != -1)
targetPage = "undefined";
function loadFrames() {
if (targetPage != "" && targetPage != "undefined")
top.classFrame.location = top.targetPage;
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>
</HEAD>
<FRAMESET cols="20%,80%" title="" onLoad="top.loadFrames()">
<FRAME src="allclasses-frame.html" name="packageFrame" title="All classes and interfaces (except non-static nested types)">
<FRAME src="net/abhinavsarkar/spelhelper/package-summary.html" name="classFrame" title="Package, class and interface descriptions" scrolling="yes">
<NOFRAMES>
<H2>
Frame Alert</H2>
<P>
This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client.
<BR>
Link to<A HREF="net/abhinavsarkar/spelhelper/package-summary.html">Non-frame version.</A>
</NOFRAMES>
</FRAMESET>
</HTML>

View File

@ -0,0 +1,314 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.6.0) on Thu May 27 01:34:43 IST 2010 -->
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>
ExtensionFunctions (SpelHelper 1.0 API)
</TITLE>
<META NAME="date" CONTENT="2010-05-27">
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../spring-javadoc.css" TITLE="Style">
<SCRIPT type="text/javascript">
function windowTitle()
{
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="ExtensionFunctions (SpelHelper 1.0 API)";
}
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>
</HEAD>
<BODY BGCOLOR="white" onload="windowTitle();">
<HR>
<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../net/abhinavsarkar/spelhelper/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/ExtensionFunctions.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;PREV CLASS&nbsp;
&nbsp;<A HREF="../../../net/abhinavsarkar/spelhelper/ImplicitMethods.html" title="class in net.abhinavsarkar.spelhelper"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../index.html?net/abhinavsarkar/spelhelper/ExtensionFunctions.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="ExtensionFunctions.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->
<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
net.abhinavsarkar.spelhelper</FONT>
<BR>
Class ExtensionFunctions</H2>
<PRE>
<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
<IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>net.abhinavsarkar.spelhelper.ExtensionFunctions</B>
</PRE>
<HR>
<DL>
<DT><PRE>public final class <B>ExtensionFunctions</B><DT>extends <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
</PRE>
<P>
<p>Provides some extension functions to create some basic collection types
inline in SpEL expressions.
These functions are automatically registered with <a href="../../../net/abhinavsarkar/spelhelper/SpelHelper.html" title="class in net.abhinavsarkar.spelhelper"><code>SpelHelper</code> </a>.</p>
<p><strong>See Also:</strong>
<a href="http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/expressions.html#expressions-ref-functions">Spring Docs on extension functions</a></p>
<P>
<P>
<DL>
<DT><B>Author:</B></DT>
<DD>Abhinav Sarkar <em>abhinav@abhinavsarkar.net</em></DD>
</DL>
<HR>
<P>
<!-- ========== METHOD SUMMARY =========== -->
<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Method Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
<TR ALIGN="right" VALIGN="">
<TD NOWRAP><FONT SIZE="-1">
<CODE>&lt;T&gt; <A HREF="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;T&gt;</CODE></FONT></TD>
</TR>
</TABLE>
</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../net/abhinavsarkar/spelhelper/ExtensionFunctions.html#list(T...)">list</A></B>(T...&nbsp;args)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates an unmodifiable <a href="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code> </a>of the arguments provided.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
<TR ALIGN="right" VALIGN="">
<TD NOWRAP><FONT SIZE="-1">
<CODE>&lt;K,V&gt; <A HREF="http://java.sun.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;K,V&gt;</CODE></FONT></TD>
</TR>
</TABLE>
</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../net/abhinavsarkar/spelhelper/ExtensionFunctions.html#map(java.util.List, java.util.List)">map</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;? extends K&gt;&nbsp;keys,
<A HREF="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;? extends V&gt;&nbsp;values)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates an unmodifiable <a href="http://java.sun.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util"><code>Map</code> </a>using the <a href="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code> </a>of keys
provided as the first argument and the <a href="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code> </a>of values provided
as the second argument.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
<TR ALIGN="right" VALIGN="">
<TD NOWRAP><FONT SIZE="-1">
<CODE>&lt;T&gt; <A HREF="http://java.sun.com/javase/6/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A>&lt;T&gt;</CODE></FONT></TD>
</TR>
</TABLE>
</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../net/abhinavsarkar/spelhelper/ExtensionFunctions.html#set(T...)">set</A></B>(T...&nbsp;args)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates an unmodifiable <a href="http://java.sun.com/javase/6/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util"><code>Set</code> </a>of the arguments provided.</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>
<!-- ============ METHOD DETAIL ========== -->
<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Method Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="list(java.lang.Object[])"><!-- --></A><A NAME="list(T...)"><!-- --></A><H3>
list</H3>
<PRE>
public static &lt;T&gt; <A HREF="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;T&gt; <B>list</B>(T...&nbsp;args)</PRE>
<DL>
<DD><p>Creates an unmodifiable <a href="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code> </a>of the arguments provided.</p>
<p>Example use: <code>"#list('one', 'two', 'three')"</code></p>
<P>
<DD><DL>
<DT><B>Type Parameters:</B><DD><CODE>T</CODE> - Type of the arguments provided.<DT><B>Parameters:</B><DD><CODE>args</CODE> - Arguments to create list of.
<DT><B>Returns:</B><DD>An unmodifiable list of the arguments provided.</DL>
</DD>
</DL>
<HR>
<A NAME="set(java.lang.Object[])"><!-- --></A><A NAME="set(T...)"><!-- --></A><H3>
set</H3>
<PRE>
public static &lt;T&gt; <A HREF="http://java.sun.com/javase/6/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A>&lt;T&gt; <B>set</B>(T...&nbsp;args)</PRE>
<DL>
<DD><p>Creates an unmodifiable <a href="http://java.sun.com/javase/6/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util"><code>Set</code> </a>of the arguments provided.</p>
<p>Example use: <code>"#set('one', 'two', 'three')"</code></p>
<P>
<DD><DL>
<DT><B>Type Parameters:</B><DD><CODE>T</CODE> - Type of the arguments provided.<DT><B>Parameters:</B><DD><CODE>args</CODE> - Arguments to create set of.
<DT><B>Returns:</B><DD>An unmodifiable set of the arguments provided.</DL>
</DD>
</DL>
<HR>
<A NAME="map(java.util.List, java.util.List)"><!-- --></A><H3>
map</H3>
<PRE>
public static &lt;K,V&gt; <A HREF="http://java.sun.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</A>&lt;K,V&gt; <B>map</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;? extends K&gt;&nbsp;keys,
<A HREF="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;? extends V&gt;&nbsp;values)</PRE>
<DL>
<DD><p>Creates an unmodifiable <a href="http://java.sun.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util"><code>Map</code> </a>using the <a href="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code> </a>of keys
provided as the first argument and the <a href="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code> </a>of values provided
as the second argument.</p>
<p>Example use: <code>"#map(#list('one', 'two', 'three'), #list(1, 2, 3))"</code></p>
<P>
<DD><DL>
<DT><B>Type Parameters:</B><DD><CODE>K</CODE> - Type of the keys of the map.<DD><CODE>V</CODE> - Type of the values of map.<DT><B>Parameters:</B><DD><CODE>keys</CODE> - List of the keys.<DD><CODE>values</CODE> - List of the values.
<DT><B>Returns:</B><DD>A unmodifiable map created from the key and value lists.
<DT><B>Throws:</B>
<DD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/IllegalArgumentException.html?is-external=true" title="class or interface in java.lang">IllegalArgumentException</A></CODE> - if the number of keys and the number of
values is not equal.</DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../net/abhinavsarkar/spelhelper/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/ExtensionFunctions.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
Code hosted at <a target='_blank' href='http://github.com/abhin4v/spelhelper/'>github</a></EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;PREV CLASS&nbsp;
&nbsp;<A HREF="../../../net/abhinavsarkar/spelhelper/ImplicitMethods.html" title="class in net.abhinavsarkar.spelhelper"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../index.html?net/abhinavsarkar/spelhelper/ExtensionFunctions.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="ExtensionFunctions.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;CONSTR&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<HR>
Copyright &#169; 2010. All Rights Reserved.
</BODY>
</HTML>

View File

@ -0,0 +1,421 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.6.0) on Thu May 27 01:34:44 IST 2010 -->
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>
ImplicitMethods (SpelHelper 1.0 API)
</TITLE>
<META NAME="date" CONTENT="2010-05-27">
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../spring-javadoc.css" TITLE="Style">
<SCRIPT type="text/javascript">
function windowTitle()
{
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="ImplicitMethods (SpelHelper 1.0 API)";
}
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>
</HEAD>
<BODY BGCOLOR="white" onload="windowTitle();">
<HR>
<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../net/abhinavsarkar/spelhelper/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/ImplicitMethods.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../net/abhinavsarkar/spelhelper/ExtensionFunctions.html" title="class in net.abhinavsarkar.spelhelper"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../net/abhinavsarkar/spelhelper/SpelHelper.html" title="class in net.abhinavsarkar.spelhelper"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../index.html?net/abhinavsarkar/spelhelper/ImplicitMethods.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="ImplicitMethods.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->
<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
net.abhinavsarkar.spelhelper</FONT>
<BR>
Class ImplicitMethods</H2>
<PRE>
<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
<IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>net.abhinavsarkar.spelhelper.ImplicitMethods</B>
</PRE>
<HR>
<DL>
<DT><PRE>public final class <B>ImplicitMethods</B><DT>extends <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
</PRE>
<P>
Provides some implicit methods which can be invoked on the instances of
class of the first parameter of the method inside a SpEL expression.
<P>
<P>
<DL>
<DT><B>Author:</B></DT>
<DD>Abhinav Sarkar <em>abhinav@abhinavsarkar.net</em></DD>
</DL>
<HR>
<P>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<A NAME="constructor_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Constructor Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../net/abhinavsarkar/spelhelper/ImplicitMethods.html#ImplicitMethods()">ImplicitMethods</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
<!-- ========== METHOD SUMMARY =========== -->
<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Method Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
<TR ALIGN="right" VALIGN="">
<TD NOWRAP><FONT SIZE="-1">
<CODE>&lt;T&gt; <A HREF="http://java.sun.com/javase/6/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A>&lt;T&gt;</CODE></FONT></TD>
</TR>
</TABLE>
</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../net/abhinavsarkar/spelhelper/ImplicitMethods.html#distinct(java.util.List)">distinct</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;? extends T&gt;&nbsp;list)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Provides implicit method <code>distinct</code> on the <a href="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code> </a>class.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
<TR ALIGN="right" VALIGN="">
<TD NOWRAP><FONT SIZE="-1">
<CODE>&lt;T&gt; <A HREF="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;T&gt;</CODE></FONT></TD>
</TR>
</TABLE>
</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../net/abhinavsarkar/spelhelper/ImplicitMethods.html#drop(java.util.List, int)">drop</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;T&gt;&nbsp;list,
int&nbsp;n)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Provides implicit method <code>drop</code> on the <a href="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code> </a>class.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
<TR ALIGN="right" VALIGN="">
<TD NOWRAP><FONT SIZE="-1">
<CODE>&lt;T&gt; <A HREF="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;T&gt;</CODE></FONT></TD>
</TR>
</TABLE>
</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../net/abhinavsarkar/spelhelper/ImplicitMethods.html#reversed(java.util.List)">reversed</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;? extends T&gt;&nbsp;list)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Provides implicit method <code>reversed</code> on the <a href="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code> </a>class.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
<TR ALIGN="right" VALIGN="">
<TD NOWRAP><FONT SIZE="-1">
<CODE>&lt;T extends <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</A>&lt;? super T&gt;&gt;
<BR>
<A HREF="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;T&gt;</CODE></FONT></TD>
</TR>
</TABLE>
</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../net/abhinavsarkar/spelhelper/ImplicitMethods.html#sorted(java.util.List)">sorted</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;? extends T&gt;&nbsp;list)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Provides implicit method <code>sorted</code> on the <a href="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code> </a>class.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
<TR ALIGN="right" VALIGN="">
<TD NOWRAP><FONT SIZE="-1">
<CODE>&lt;T&gt; <A HREF="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;T&gt;</CODE></FONT></TD>
</TR>
</TABLE>
</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../net/abhinavsarkar/spelhelper/ImplicitMethods.html#take(java.util.List, int)">take</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;T&gt;&nbsp;list,
int&nbsp;n)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Provides implicit method <code>take</code> on the <a href="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code> </a>class.</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<A NAME="constructor_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Constructor Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="ImplicitMethods()"><!-- --></A><H3>
ImplicitMethods</H3>
<PRE>
public <B>ImplicitMethods</B>()</PRE>
<DL>
</DL>
<!-- ============ METHOD DETAIL ========== -->
<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Method Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="distinct(java.util.List)"><!-- --></A><H3>
distinct</H3>
<PRE>
public static &lt;T&gt; <A HREF="http://java.sun.com/javase/6/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</A>&lt;T&gt; <B>distinct</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;? extends T&gt;&nbsp;list)</PRE>
<DL>
<DD><p>Provides implicit method <code>distinct</code> on the <a href="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code> </a>class.</p>
<p>Example: <code>"#list('a','b','a').distinct()" //should return List('a','b')</code></p>
<p>With implicit property support provided by <a href="../../../net/abhinavsarkar/spelhelper/SpelHelper.html" title="class in net.abhinavsarkar.spelhelper"><code>SpelHelper</code> </a>this can
also be written as:</p>
<p><code>"#list('a','b','a').distinct" //same output as earlier</code></p>
<P>
<DD><DL>
<DT><B>Type Parameters:</B><DD><CODE>T</CODE> - Type of the list's elements.<DT><B>Parameters:</B><DD><CODE>list</CODE> - The list to call this method upon.
<DT><B>Returns:</B><DD>An unmodifiable <a href="http://java.sun.com/javase/6/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util"><code>Set</code> </a>containing the distinct items of the list.</DL>
</DD>
</DL>
<HR>
<A NAME="sorted(java.util.List)"><!-- --></A><H3>
sorted</H3>
<PRE>
public static &lt;T extends <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Comparable.html?is-external=true" title="class or interface in java.lang">Comparable</A>&lt;? super T&gt;&gt; <A HREF="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;T&gt; <B>sorted</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;? extends T&gt;&nbsp;list)</PRE>
<DL>
<DD><p>Provides implicit method <code>sorted</code> on the <a href="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code> </a>class.</p>
<p>Example: <code>"#list('c','b','a').sorted()" //should return List('a','b','c')</code></p>
<p>With implicit property support provided by <a href="../../../net/abhinavsarkar/spelhelper/SpelHelper.html" title="class in net.abhinavsarkar.spelhelper"><code>SpelHelper</code> </a>this can
also be written as:</p>
<p><code>"#list('c','b','a').sorted" //same output as earlier</code></p>
<P>
<DD><DL>
<DT><B>Type Parameters:</B><DD><CODE>T</CODE> - Type of the list's elements.<DT><B>Parameters:</B><DD><CODE>list</CODE> - The list to call this method upon.
<DT><B>Returns:</B><DD>An unmodifiable <a href="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code> </a>containing the sorted items
of the list.<DT><B>See Also:</B><DD><A HREF="http://java.sun.com/javase/6/docs/api/java/util/Collections.html?is-external=true#sort(java.util.List)" title="class or interface in java.util"><CODE>Collections.sort(List)</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="reversed(java.util.List)"><!-- --></A><H3>
reversed</H3>
<PRE>
public static &lt;T&gt; <A HREF="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;T&gt; <B>reversed</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;? extends T&gt;&nbsp;list)</PRE>
<DL>
<DD><p>Provides implicit method <code>reversed</code> on the <a href="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code> </a>class.</p>
<p>Example: <code>"#list('c','b','a').reversed()" //should return List('a','b','c')</code></p>
<p>With implicit property support provided by <a href="../../../net/abhinavsarkar/spelhelper/SpelHelper.html" title="class in net.abhinavsarkar.spelhelper"><code>SpelHelper</code> </a>this can
also be written as:</p>
<p><code>"#list('c','b','a').reversed" //same output as earlier</code></p>
<P>
<DD><DL>
<DT><B>Type Parameters:</B><DD><CODE>T</CODE> - Type of the list's elements.<DT><B>Parameters:</B><DD><CODE>list</CODE> - The list to call this method upon.
<DT><B>Returns:</B><DD>An unmodifiable <a href="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code> </a>containing the items of the
list in reverse order.<DT><B>See Also:</B><DD><A HREF="http://java.sun.com/javase/6/docs/api/java/util/Collections.html?is-external=true#reverse(java.util.List)" title="class or interface in java.util"><CODE>Collections.reverse(List)</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="take(java.util.List, int)"><!-- --></A><H3>
take</H3>
<PRE>
public static &lt;T&gt; <A HREF="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;T&gt; <B>take</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;T&gt;&nbsp;list,
int&nbsp;n)</PRE>
<DL>
<DD><p>Provides implicit method <code>take</code> on the <a href="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code> </a>class.</p>
<p>Example: <code>"#list('c','b','a').take(2)" //should return List('a','b')</code></p>
<P>
<DD><DL>
<DT><B>Type Parameters:</B><DD><CODE>T</CODE> - Type of the list's elements.<DT><B>Parameters:</B><DD><CODE>list</CODE> - The list to call this method upon.<DD><CODE>n</CODE> - Number of items to <em>take</em> from the list.
<DT><B>Returns:</B><DD>An unmodifiable <a href="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code> </a>containing the first <code>n</code> items
of the list.</DL>
</DD>
</DL>
<HR>
<A NAME="drop(java.util.List, int)"><!-- --></A><H3>
drop</H3>
<PRE>
public static &lt;T&gt; <A HREF="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;T&gt; <B>drop</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</A>&lt;T&gt;&nbsp;list,
int&nbsp;n)</PRE>
<DL>
<DD><p>Provides implicit method <code>drop</code> on the <a href="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code> </a>class.</p>
<p>Example: <code>"#list('c','b','a').drop(2)" //should return List('a')</code></p>
<P>
<DD><DL>
<DT><B>Type Parameters:</B><DD><CODE>T</CODE> - Type of the list's elements.<DT><B>Parameters:</B><DD><CODE>list</CODE> - The list to call this method upon.<DD><CODE>n</CODE> - Number of items to <em>drop</em> from the list.
<DT><B>Returns:</B><DD>An unmodifiable <a href="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code> </a>containing the items after the
first <code>n</code> items of the list.</DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../net/abhinavsarkar/spelhelper/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/ImplicitMethods.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
Code hosted at <a target='_blank' href='http://github.com/abhin4v/spelhelper/'>github</a></EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../net/abhinavsarkar/spelhelper/ExtensionFunctions.html" title="class in net.abhinavsarkar.spelhelper"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../net/abhinavsarkar/spelhelper/SpelHelper.html" title="class in net.abhinavsarkar.spelhelper"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../index.html?net/abhinavsarkar/spelhelper/ImplicitMethods.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="ImplicitMethods.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<HR>
Copyright &#169; 2010. All Rights Reserved.
</BODY>
</HTML>

View File

@ -0,0 +1,618 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.6.0) on Thu May 27 01:34:44 IST 2010 -->
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>
SpelHelper (SpelHelper 1.0 API)
</TITLE>
<META NAME="date" CONTENT="2010-05-27">
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../spring-javadoc.css" TITLE="Style">
<SCRIPT type="text/javascript">
function windowTitle()
{
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="SpelHelper (SpelHelper 1.0 API)";
}
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>
</HEAD>
<BODY BGCOLOR="white" onload="windowTitle();">
<HR>
<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../net/abhinavsarkar/spelhelper/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/SpelHelper.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../net/abhinavsarkar/spelhelper/ImplicitMethods.html" title="class in net.abhinavsarkar.spelhelper"><B>PREV CLASS</B></A>&nbsp;
&nbsp;NEXT CLASS</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../index.html?net/abhinavsarkar/spelhelper/SpelHelper.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="SpelHelper.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->
<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
net.abhinavsarkar.spelhelper</FONT>
<BR>
Class SpelHelper</H2>
<PRE>
<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
<IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>net.abhinavsarkar.spelhelper.SpelHelper</B>
</PRE>
<HR>
<DL>
<DT><PRE>public final class <B>SpelHelper</B><DT>extends <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
</PRE>
<P>
<p>SpelHelper provides additional functionalities to work with
<a href="http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/expressions.html">Spring Expression Language (SpEL)</a>.</p>
<p>The addition functionalities provided are:</p>
<ol>
<li>Implicit methods</li>
<li>Implicit properties</li>
<li>Simplified extension functions</li>
<li>Simplified constructors</li>
</ol>
<p><strong>Implicit Methods</strong></p>
<p>Implicit methods allow one to registers methods with SpelHelper and attach
them to particular classes. After that, when that method is called on an
object of that particular class inside a SpEL expression, SpelHelper
redirects the method call to the registered method.</p>
<p>Example: <a href="../../../net/abhinavsarkar/spelhelper/ImplicitMethods.html#sorted(java.util.List)"><code>ImplicitMethods.sorted(List)</code> </a>method is automatically
registered by SpelHelper. The class that the method should be invoked for
is the type of the first parameter of the method. In this case, the class is
<a href="http://java.sun.com/javase/6/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util"><code>List</code> </a>.</p>
<p>So when an expression like <code>"#list(1,4,2).sorted()"</code> is evaluated, the
<a href="../../../net/abhinavsarkar/spelhelper/ImplicitMethods.html#sorted(java.util.List)"><code>ImplicitMethods.sorted(List)</code> </a>method is invoked with the list as its
first parameter and its return value is used in further evaluation of the
expression.</p>
<p>See <a href="../../../net/abhinavsarkar/spelhelper/SpelHelper.html#registerImplicitMethodsFromClass(java.lang.Class)"><code>registerImplicitMethodsFromClass(Class)</code> </a>.</p>
<p><strong>Implicit Properties</strong></p>
<p>Implicit properties allow one to treat no argument methods of an object
as properties of the object. SpelHelper intercepts the property resolution
of SpEL and if the property name is same as some no-arg method of the target
object then it invokes the method on the object and provides its return value
as the property value for further evaluation of the expression.</p>
<p>Example: Using implicit properties, the example of implicit methods can be
written as: <code>"#list(1,4,2).sorted"</code> - dropping the parens - and it will return
the same value as the last example.</p>
<p>Implicit property resolution considers both the actual methods of the object
and the implicit methods registered on the object's class.</p>
<p><strong>Simplified extension functions</strong></p>
<p>SpEL <a href="http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/expressions.html#expressions-ref-functions">allows</a> to register extension function on the context by providing a
name and a <a href="http://java.sun.com/javase/6/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect"><code>Method</code> </a>object. SpelHelper simplifies this by taking a class
and registering all the <code>public static</code> methods of the class which do not
have a <code>void</code> return type. The methods are registered by their simple name.</p>
<p>Example: All the methods of <a href="../../../net/abhinavsarkar/spelhelper/ExtensionFunctions.html" title="class in net.abhinavsarkar.spelhelper"><code>ExtensionFunctions</code> </a>class are automatically
registered by SpelHelper. Hence the method <a href="../../../net/abhinavsarkar/spelhelper/ExtensionFunctions.html#list(T...)"><code>ExtensionFunctions.list(Object...)</code> </a>
can be called from inside a SpEL expression using the function call syntax:
<code>"#list(1,2,3)</code>".</p>
<p>See <a href="../../../net/abhinavsarkar/spelhelper/SpelHelper.html#registerFunctionsFromClass(java.lang.Class)"><code>registerFunctionsFromClass(Class)</code> </a>.</p>
<p><strong>Simplified constructors</strong></p>
<p>SpEL <a href="http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/expressions.html#d0e11927">allows</a> calling constructors from inside a SpEL expression using the
<code>new</code> operator. But they have to be called with their full name like:
<code>"new org.example.Foo('bar')"</code>. SpelHelper simplifies this by taking a class
and registering all its public constructors to the SpEL context by their
simple name.</p>
<p>Example: After registering the <code>org.example.Foo</code> class with SpelHelper, its
constructor can be called from inside a SpEL expression by: <code>"new Foo('bar')"</code>.</p>
<p>See <a href="../../../net/abhinavsarkar/spelhelper/SpelHelper.html#registerConstructorsFromClass(java.lang.Class)"><code>registerConstructorsFromClass(Class)</code> </a>.</p>
<p>In addition to all the above functionalities, SpelHelper automatically registers
some extension functions and implicit methods which are always available in
the SpEL expressions evaluated through SpelHelper. See <a href="../../../net/abhinavsarkar/spelhelper/ExtensionFunctions.html" title="class in net.abhinavsarkar.spelhelper"><code>ExtensionFunctions</code> </a>
and <a href="../../../net/abhinavsarkar/spelhelper/ImplicitMethods.html" title="class in net.abhinavsarkar.spelhelper"><code>ImplicitMethods</code> </a>for further details.</p>
<P>
<P>
<DL>
<DT><B>Author:</B></DT>
<DD>Abhinav Sarkar <em>abhinav@abhinavsarkar.net</em></DD>
</DL>
<HR>
<P>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<A NAME="constructor_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Constructor Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../net/abhinavsarkar/spelhelper/SpelHelper.html#SpelHelper()">SpelHelper</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Creates an instance of SpelHelper.</TD>
</TR>
</TABLE>
&nbsp;
<!-- ========== METHOD SUMMARY =========== -->
<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Method Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
<TR ALIGN="right" VALIGN="">
<TD NOWRAP><FONT SIZE="-1">
<CODE>&lt;T&gt; T</CODE></FONT></TD>
</TR>
</TABLE>
</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../net/abhinavsarkar/spelhelper/SpelHelper.html#evalExpression(java.lang.String, org.springframework.expression.EvaluationContext, java.lang.Class)">evalExpression</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;expressionString,
<A HREF="http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/expression/EvaluationContext.html?is-external=true" title="class or interface in org.springframework.expression">EvaluationContext</A>&nbsp;evaluationContext,
<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;T&gt;&nbsp;desiredType)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Evaluates a SpEL expression <code>expressionString</code> in the provided
context <code>evaluationContext</code> and gives back a result of type
<code>desiredType</code>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
<TR ALIGN="right" VALIGN="">
<TD NOWRAP><FONT SIZE="-1">
<CODE>&lt;T&gt; T</CODE></FONT></TD>
</TR>
</TABLE>
</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../net/abhinavsarkar/spelhelper/SpelHelper.html#evalExpression(java.lang.String, java.lang.Object, java.lang.Class)">evalExpression</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;expressionString,
<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;rootElement,
<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;T&gt;&nbsp;desiredType)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Evaluates a SpEL expression <code>expressionString</code> in the context
of root element <code>rootElement</code> and gives back a result of type
<code>desiredType</code>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
<TR ALIGN="right" VALIGN="">
<TD NOWRAP><FONT SIZE="-1">
<CODE>&lt;T&gt; T</CODE></FONT></TD>
</TR>
</TABLE>
</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../net/abhinavsarkar/spelhelper/SpelHelper.html#evalExpressions(java.lang.String[], org.springframework.expression.EvaluationContext, java.lang.Class)">evalExpressions</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;expressionStrings,
<A HREF="http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/expression/EvaluationContext.html?is-external=true" title="class or interface in org.springframework.expression">EvaluationContext</A>&nbsp;evaluationContext,
<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;T&gt;&nbsp;desiredType)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Evaluates multiple SpEL expressions and returns the result of the last
expression.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" SUMMARY="">
<TR ALIGN="right" VALIGN="">
<TD NOWRAP><FONT SIZE="-1">
<CODE>&lt;T&gt; T</CODE></FONT></TD>
</TR>
</TABLE>
</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../net/abhinavsarkar/spelhelper/SpelHelper.html#evalExpressions(java.lang.String[], java.lang.Object, java.lang.Class)">evalExpressions</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;expressionStrings,
<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;rootElement,
<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;T&gt;&nbsp;desiredType)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Evaluates multiple SpEL expressions and returns the result of the last
expression.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/expression/EvaluationContext.html?is-external=true" title="class or interface in org.springframework.expression">EvaluationContext</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../net/abhinavsarkar/spelhelper/SpelHelper.html#getCurrentContext()">getCurrentContext</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the current evaluation context.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/reflect/Constructor.html?is-external=true" title="class or interface in java.lang.reflect">Constructor</A>&lt;?&gt;</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../net/abhinavsarkar/spelhelper/SpelHelper.html#lookupImplicitConstructor(java.lang.String)">lookupImplicitConstructor</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;lookup)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Looks up an implicit constructor registered with this instance.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../net/abhinavsarkar/spelhelper/SpelHelper.html#lookupImplicitMethod(java.lang.String)">lookupImplicitMethod</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;lookup)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Looks up an implicit method registered with this instance.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../net/abhinavsarkar/spelhelper/SpelHelper.html" title="class in net.abhinavsarkar.spelhelper">SpelHelper</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../net/abhinavsarkar/spelhelper/SpelHelper.html#registerConstructorsFromClass(java.lang.Class)">registerConstructorsFromClass</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;?&gt;&nbsp;clazz)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Registers the public constructors of the class <code>clazz</code> so that they
can be called by their simple name from SpEL expressions.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../net/abhinavsarkar/spelhelper/SpelHelper.html" title="class in net.abhinavsarkar.spelhelper">SpelHelper</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../net/abhinavsarkar/spelhelper/SpelHelper.html#registerFunctionsFromClass(java.lang.Class)">registerFunctionsFromClass</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;?&gt;&nbsp;clazz)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Registers the public static methods in the class <code>clazz</code> as functions
which can be called from SpEL expressions.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../net/abhinavsarkar/spelhelper/SpelHelper.html" title="class in net.abhinavsarkar.spelhelper">SpelHelper</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../net/abhinavsarkar/spelhelper/SpelHelper.html#registerImplicitMethodsFromClass(java.lang.Class)">registerImplicitMethodsFromClass</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;?&gt;&nbsp;clazz)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Registers the public static methods in the class <code>clazz</code> as implicit
methods for the class of the first parameter of the methods.</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<A NAME="constructor_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Constructor Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="SpelHelper()"><!-- --></A><H3>
SpelHelper</H3>
<PRE>
public <B>SpelHelper</B>()</PRE>
<DL>
<DD>Creates an instance of SpelHelper.
<P>
</DL>
<!-- ============ METHOD DETAIL ========== -->
<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Method Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="registerImplicitMethodsFromClass(java.lang.Class)"><!-- --></A><H3>
registerImplicitMethodsFromClass</H3>
<PRE>
public <A HREF="../../../net/abhinavsarkar/spelhelper/SpelHelper.html" title="class in net.abhinavsarkar.spelhelper">SpelHelper</A> <B>registerImplicitMethodsFromClass</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;?&gt;&nbsp;clazz)</PRE>
<DL>
<DD><p>Registers the public static methods in the class <code>clazz</code> as implicit
methods for the class of the first parameter of the methods.</p>
<p>Only registers the public static methods with non void return type and at
least one argument.</p>
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>clazz</CODE> - The class to register the methods from.
<DT><B>Returns:</B><DD>The current instance of SpelHelper. This is for chaining
the methods calls.<DT><B>See Also:</B><DD><A HREF="../../../net/abhinavsarkar/spelhelper/ImplicitMethods.html" title="class in net.abhinavsarkar.spelhelper"><CODE>ImplicitMethods</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="registerFunctionsFromClass(java.lang.Class)"><!-- --></A><H3>
registerFunctionsFromClass</H3>
<PRE>
public <A HREF="../../../net/abhinavsarkar/spelhelper/SpelHelper.html" title="class in net.abhinavsarkar.spelhelper">SpelHelper</A> <B>registerFunctionsFromClass</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;?&gt;&nbsp;clazz)</PRE>
<DL>
<DD><p>Registers the public static methods in the class <code>clazz</code> as functions
which can be called from SpEL expressions.
The functions are registered with the simple name of the methods.</p>
<p>Only registers the public static methods with non void return type.</p>
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>clazz</CODE> - The class to register the functions from.
<DT><B>Returns:</B><DD>The current instance of SpelHelper. This is for chaining
the methods calls.<DT><B>See Also:</B><DD><A HREF="../../../net/abhinavsarkar/spelhelper/ExtensionFunctions.html" title="class in net.abhinavsarkar.spelhelper"><CODE>ExtensionFunctions</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="registerConstructorsFromClass(java.lang.Class)"><!-- --></A><H3>
registerConstructorsFromClass</H3>
<PRE>
public <A HREF="../../../net/abhinavsarkar/spelhelper/SpelHelper.html" title="class in net.abhinavsarkar.spelhelper">SpelHelper</A> <B>registerConstructorsFromClass</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;?&gt;&nbsp;clazz)</PRE>
<DL>
<DD>Registers the public constructors of the class <code>clazz</code> so that they
can be called by their simple name from SpEL expressions.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>clazz</CODE> - The class to register the constructors from.
<DT><B>Returns:</B><DD>The current instance of SpelHelper. This is for chaining
the methods calls.</DL>
</DD>
</DL>
<HR>
<A NAME="evalExpression(java.lang.String, java.lang.Object, java.lang.Class)"><!-- --></A><H3>
evalExpression</H3>
<PRE>
public &lt;T&gt; T <B>evalExpression</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;expressionString,
<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;rootElement,
<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;T&gt;&nbsp;desiredType)</PRE>
<DL>
<DD>Evaluates a SpEL expression <code>expressionString</code> in the context
of root element <code>rootElement</code> and gives back a result of type
<code>desiredType</code>.
<P>
<DD><DL>
<DT><B>Type Parameters:</B><DD><CODE>T</CODE> - The type of the result desired.<DT><B>Parameters:</B><DD><CODE>expressionString</CODE> - The SpEL expression to evaluate.<DD><CODE>rootElement</CODE> - The root element in context of which the expression
is to be evaluated.<DD><CODE>desiredType</CODE> - The class of the result desired.
<DT><B>Returns:</B><DD>The result of the evaluation of the expression.<DT><B>See Also:</B><DD><A HREF="http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/expression/ExpressionParser.html?is-external=true#parseExpression(java.lang.String)" title="class or interface in org.springframework.expression"><CODE>ExpressionParser.parseExpression(String)</CODE></A>,
<A HREF="http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/expression/Expression.html?is-external=true#getValue(org.springframework.expression.EvaluationContext, java.lang.Class)" title="class or interface in org.springframework.expression"><CODE>Expression.getValue(EvaluationContext, Class)</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="evalExpression(java.lang.String, org.springframework.expression.EvaluationContext, java.lang.Class)"><!-- --></A><H3>
evalExpression</H3>
<PRE>
public &lt;T&gt; T <B>evalExpression</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;expressionString,
<A HREF="http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/expression/EvaluationContext.html?is-external=true" title="class or interface in org.springframework.expression">EvaluationContext</A>&nbsp;evaluationContext,
<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;T&gt;&nbsp;desiredType)</PRE>
<DL>
<DD>Evaluates a SpEL expression <code>expressionString</code> in the provided
context <code>evaluationContext</code> and gives back a result of type
<code>desiredType</code>.
<P>
<DD><DL>
<DT><B>Type Parameters:</B><DD><CODE>T</CODE> - The type of the result desired.<DT><B>Parameters:</B><DD><CODE>expressionString</CODE> - The SpEL expression to evaluate.<DD><CODE>evaluationContext</CODE> - The context in which the expression is to be evaluated.<DD><CODE>desiredType</CODE> - The class of the result desired.
<DT><B>Returns:</B><DD>The result of the evaluation of the expression.<DT><B>See Also:</B><DD><A HREF="http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/expression/ExpressionParser.html?is-external=true#parseExpression(java.lang.String)" title="class or interface in org.springframework.expression"><CODE>ExpressionParser.parseExpression(String)</CODE></A>,
<A HREF="http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/expression/Expression.html?is-external=true#getValue(org.springframework.expression.EvaluationContext, java.lang.Class)" title="class or interface in org.springframework.expression"><CODE>Expression.getValue(EvaluationContext, Class)</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="evalExpressions(java.lang.String[], java.lang.Object, java.lang.Class)"><!-- --></A><H3>
evalExpressions</H3>
<PRE>
public &lt;T&gt; T <B>evalExpressions</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;expressionStrings,
<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A>&nbsp;rootElement,
<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;T&gt;&nbsp;desiredType)</PRE>
<DL>
<DD>Evaluates multiple SpEL expressions and returns the result of the last
expression.
<P>
<DD><DL>
<DT><B>Type Parameters:</B><DD><CODE>T</CODE> - The type of the result desired.<DT><B>Parameters:</B><DD><CODE>expressionStrings</CODE> - The SpEL expressions to evaluate.<DD><CODE>rootElement</CODE> - The root element in context of which the expressions
are to be evaluated.<DD><CODE>desiredType</CODE> - The class of the result desired.
<DT><B>Returns:</B><DD>The result of the evaluation of the last expression.<DT><B>See Also:</B><DD><A HREF="../../../net/abhinavsarkar/spelhelper/SpelHelper.html#evalExpression(java.lang.String, org.springframework.expression.EvaluationContext, java.lang.Class)"><CODE>evalExpression(String, EvaluationContext, Class)</CODE></A>,
<A HREF="../../../net/abhinavsarkar/spelhelper/SpelHelper.html#evalExpression(java.lang.String, java.lang.Object, java.lang.Class)"><CODE>evalExpression(String, Object, Class)</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="evalExpressions(java.lang.String[], org.springframework.expression.EvaluationContext, java.lang.Class)"><!-- --></A><H3>
evalExpressions</H3>
<PRE>
public &lt;T&gt; T <B>evalExpressions</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;expressionStrings,
<A HREF="http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/expression/EvaluationContext.html?is-external=true" title="class or interface in org.springframework.expression">EvaluationContext</A>&nbsp;evaluationContext,
<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;T&gt;&nbsp;desiredType)</PRE>
<DL>
<DD>Evaluates multiple SpEL expressions and returns the result of the last
expression.
<P>
<DD><DL>
<DT><B>Type Parameters:</B><DD><CODE>T</CODE> - The type of the result desired.<DT><B>Parameters:</B><DD><CODE>expressionStrings</CODE> - The SpEL expressions to evaluate.<DD><CODE>evaluationContext</CODE> - The context in which the expression is to be evaluated.<DD><CODE>desiredType</CODE> - The class of the result desired.
<DT><B>Returns:</B><DD>The result of the evaluation of the last expression.<DT><B>See Also:</B><DD><A HREF="../../../net/abhinavsarkar/spelhelper/SpelHelper.html#evalExpression(java.lang.String, org.springframework.expression.EvaluationContext, java.lang.Class)"><CODE>evalExpression(String, EvaluationContext, Class)</CODE></A>,
<A HREF="../../../net/abhinavsarkar/spelhelper/SpelHelper.html#evalExpression(java.lang.String, java.lang.Object, java.lang.Class)"><CODE>evalExpression(String, Object, Class)</CODE></A></DL>
</DD>
</DL>
<HR>
<A NAME="lookupImplicitMethod(java.lang.String)"><!-- --></A><H3>
lookupImplicitMethod</H3>
<PRE>
public <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/reflect/Method.html?is-external=true" title="class or interface in java.lang.reflect">Method</A> <B>lookupImplicitMethod</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;lookup)</PRE>
<DL>
<DD>Looks up an implicit method registered with this instance.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>lookup</CODE> - key to lookup which should be of form:
<code>method.getParameterTypes()[0].getName() + "." + method.getName()</code>
<DT><B>Returns:</B><DD>The registered method if found, else null.</DL>
</DD>
</DL>
<HR>
<A NAME="lookupImplicitConstructor(java.lang.String)"><!-- --></A><H3>
lookupImplicitConstructor</H3>
<PRE>
public <A HREF="http://java.sun.com/javase/6/docs/api/java/lang/reflect/Constructor.html?is-external=true" title="class or interface in java.lang.reflect">Constructor</A>&lt;?&gt; <B>lookupImplicitConstructor</B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>&nbsp;lookup)</PRE>
<DL>
<DD>Looks up an implicit constructor registered with this instance.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>lookup</CODE> - key to lookup which should be of form:
<code>constructor.getDeclaringClass().getSimpleName()</code>
<code>+ Arrays.toString(constructor.getParameterTypes())</code>
<DT><B>Returns:</B><DD>The registered constructor if found, else null.</DL>
</DD>
</DL>
<HR>
<A NAME="getCurrentContext()"><!-- --></A><H3>
getCurrentContext</H3>
<PRE>
public static <A HREF="http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/expression/EvaluationContext.html?is-external=true" title="class or interface in org.springframework.expression">EvaluationContext</A> <B>getCurrentContext</B>()</PRE>
<DL>
<DD>Returns the current evaluation context. Null if there is no context.
<P>
<DD><DL>
<DT><B>Returns:</B><DD>The current evaluation context.</DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../net/abhinavsarkar/spelhelper/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/SpelHelper.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
Code hosted at <a target='_blank' href='http://github.com/abhin4v/spelhelper/'>github</a></EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../net/abhinavsarkar/spelhelper/ImplicitMethods.html" title="class in net.abhinavsarkar.spelhelper"><B>PREV CLASS</B></A>&nbsp;
&nbsp;NEXT CLASS</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../index.html?net/abhinavsarkar/spelhelper/SpelHelper.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="SpelHelper.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;FIELD&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<HR>
Copyright &#169; 2010. All Rights Reserved.
</BODY>
</HTML>

View File

@ -0,0 +1,143 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.6.0) on Thu May 27 01:34:44 IST 2010 -->
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>
Uses of Class net.abhinavsarkar.spelhelper.ExtensionFunctions (SpelHelper 1.0 API)
</TITLE>
<META NAME="date" CONTENT="2010-05-27">
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../spring-javadoc.css" TITLE="Style">
<SCRIPT type="text/javascript">
function windowTitle()
{
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="Uses of Class net.abhinavsarkar.spelhelper.ExtensionFunctions (SpelHelper 1.0 API)";
}
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>
</HEAD>
<BODY BGCOLOR="white" onload="windowTitle();">
<HR>
<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../net/abhinavsarkar/spelhelper/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../net/abhinavsarkar/spelhelper/ExtensionFunctions.html" title="class in net.abhinavsarkar.spelhelper"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;PREV&nbsp;
&nbsp;NEXT</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../index.html?net/abhinavsarkar/spelhelper/\class-useExtensionFunctions.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="ExtensionFunctions.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->
<HR>
<CENTER>
<H2>
<B>Uses of Class<br>net.abhinavsarkar.spelhelper.ExtensionFunctions</B></H2>
</CENTER>
No usage of net.abhinavsarkar.spelhelper.ExtensionFunctions
<P>
<HR>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../net/abhinavsarkar/spelhelper/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../net/abhinavsarkar/spelhelper/ExtensionFunctions.html" title="class in net.abhinavsarkar.spelhelper"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
Code hosted at <a target='_blank' href='http://github.com/abhin4v/spelhelper/'>github</a></EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;PREV&nbsp;
&nbsp;NEXT</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../index.html?net/abhinavsarkar/spelhelper/\class-useExtensionFunctions.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="ExtensionFunctions.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<HR>
Copyright &#169; 2010. All Rights Reserved.
</BODY>
</HTML>

View File

@ -0,0 +1,143 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.6.0) on Thu May 27 01:34:44 IST 2010 -->
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>
Uses of Class net.abhinavsarkar.spelhelper.ImplicitMethods (SpelHelper 1.0 API)
</TITLE>
<META NAME="date" CONTENT="2010-05-27">
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../spring-javadoc.css" TITLE="Style">
<SCRIPT type="text/javascript">
function windowTitle()
{
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="Uses of Class net.abhinavsarkar.spelhelper.ImplicitMethods (SpelHelper 1.0 API)";
}
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>
</HEAD>
<BODY BGCOLOR="white" onload="windowTitle();">
<HR>
<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../net/abhinavsarkar/spelhelper/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../net/abhinavsarkar/spelhelper/ImplicitMethods.html" title="class in net.abhinavsarkar.spelhelper"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;PREV&nbsp;
&nbsp;NEXT</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../index.html?net/abhinavsarkar/spelhelper/\class-useImplicitMethods.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="ImplicitMethods.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->
<HR>
<CENTER>
<H2>
<B>Uses of Class<br>net.abhinavsarkar.spelhelper.ImplicitMethods</B></H2>
</CENTER>
No usage of net.abhinavsarkar.spelhelper.ImplicitMethods
<P>
<HR>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../net/abhinavsarkar/spelhelper/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../net/abhinavsarkar/spelhelper/ImplicitMethods.html" title="class in net.abhinavsarkar.spelhelper"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
Code hosted at <a target='_blank' href='http://github.com/abhin4v/spelhelper/'>github</a></EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;PREV&nbsp;
&nbsp;NEXT</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../index.html?net/abhinavsarkar/spelhelper/\class-useImplicitMethods.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="ImplicitMethods.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<HR>
Copyright &#169; 2010. All Rights Reserved.
</BODY>
</HTML>

View File

@ -0,0 +1,185 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.6.0) on Thu May 27 01:34:44 IST 2010 -->
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>
Uses of Class net.abhinavsarkar.spelhelper.SpelHelper (SpelHelper 1.0 API)
</TITLE>
<META NAME="date" CONTENT="2010-05-27">
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../spring-javadoc.css" TITLE="Style">
<SCRIPT type="text/javascript">
function windowTitle()
{
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="Uses of Class net.abhinavsarkar.spelhelper.SpelHelper (SpelHelper 1.0 API)";
}
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>
</HEAD>
<BODY BGCOLOR="white" onload="windowTitle();">
<HR>
<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../net/abhinavsarkar/spelhelper/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../net/abhinavsarkar/spelhelper/SpelHelper.html" title="class in net.abhinavsarkar.spelhelper"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;PREV&nbsp;
&nbsp;NEXT</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../index.html?net/abhinavsarkar/spelhelper/\class-useSpelHelper.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="SpelHelper.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->
<HR>
<CENTER>
<H2>
<B>Uses of Class<br>net.abhinavsarkar.spelhelper.SpelHelper</B></H2>
</CENTER>
<A NAME="net.abhinavsarkar.spelhelper"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
Uses of <A HREF="../../../../net/abhinavsarkar/spelhelper/SpelHelper.html" title="class in net.abhinavsarkar.spelhelper">SpelHelper</A> in <A HREF="../../../../net/abhinavsarkar/spelhelper/package-summary.html">net.abhinavsarkar.spelhelper</A></FONT></TH>
</TR>
</TABLE>
&nbsp;
<P>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../net/abhinavsarkar/spelhelper/package-summary.html">net.abhinavsarkar.spelhelper</A> that return <A HREF="../../../../net/abhinavsarkar/spelhelper/SpelHelper.html" title="class in net.abhinavsarkar.spelhelper">SpelHelper</A></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../net/abhinavsarkar/spelhelper/SpelHelper.html" title="class in net.abhinavsarkar.spelhelper">SpelHelper</A></CODE></FONT></TD>
<TD><CODE><B>SpelHelper.</B><B><A HREF="../../../../net/abhinavsarkar/spelhelper/SpelHelper.html#registerConstructorsFromClass(java.lang.Class)">registerConstructorsFromClass</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;?&gt;&nbsp;clazz)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Registers the public constructors of the class <code>clazz</code> so that they
can be called by their simple name from SpEL expressions.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../net/abhinavsarkar/spelhelper/SpelHelper.html" title="class in net.abhinavsarkar.spelhelper">SpelHelper</A></CODE></FONT></TD>
<TD><CODE><B>SpelHelper.</B><B><A HREF="../../../../net/abhinavsarkar/spelhelper/SpelHelper.html#registerFunctionsFromClass(java.lang.Class)">registerFunctionsFromClass</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;?&gt;&nbsp;clazz)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Registers the public static methods in the class <code>clazz</code> as functions
which can be called from SpEL expressions.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;<A HREF="../../../../net/abhinavsarkar/spelhelper/SpelHelper.html" title="class in net.abhinavsarkar.spelhelper">SpelHelper</A></CODE></FONT></TD>
<TD><CODE><B>SpelHelper.</B><B><A HREF="../../../../net/abhinavsarkar/spelhelper/SpelHelper.html#registerImplicitMethodsFromClass(java.lang.Class)">registerImplicitMethodsFromClass</A></B>(<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</A>&lt;?&gt;&nbsp;clazz)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Registers the public static methods in the class <code>clazz</code> as implicit
methods for the class of the first parameter of the methods.</TD>
</TR>
</TABLE>
&nbsp;
<P>
<HR>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../net/abhinavsarkar/spelhelper/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../net/abhinavsarkar/spelhelper/SpelHelper.html" title="class in net.abhinavsarkar.spelhelper"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
Code hosted at <a target='_blank' href='http://github.com/abhin4v/spelhelper/'>github</a></EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;PREV&nbsp;
&nbsp;NEXT</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../../index.html?net/abhinavsarkar/spelhelper/\class-useSpelHelper.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="SpelHelper.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<HR>
Copyright &#169; 2010. All Rights Reserved.
</BODY>
</HTML>

View File

@ -0,0 +1,37 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.6.0) on Thu May 27 01:34:44 IST 2010 -->
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>
net.abhinavsarkar.spelhelper (SpelHelper 1.0 API)
</TITLE>
<META NAME="date" CONTENT="2010-05-27">
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../spring-javadoc.css" TITLE="Style">
</HEAD>
<BODY BGCOLOR="white">
<FONT size="+1" CLASS="FrameTitleFont">
<A HREF="../../../net/abhinavsarkar/spelhelper/package-summary.html" target="classFrame">net.abhinavsarkar.spelhelper</A></FONT>
<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
<TR>
<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
Classes</FONT>&nbsp;
<FONT CLASS="FrameItemFont">
<BR>
<A HREF="ExtensionFunctions.html" title="class in net.abhinavsarkar.spelhelper" target="classFrame">ExtensionFunctions</A>
<BR>
<A HREF="ImplicitMethods.html" title="class in net.abhinavsarkar.spelhelper" target="classFrame">ImplicitMethods</A>
<BR>
<A HREF="SpelHelper.html" title="class in net.abhinavsarkar.spelhelper" target="classFrame">SpelHelper</A></FONT></TD>
</TR>
</TABLE>
</BODY>
</HTML>

View File

@ -0,0 +1,167 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.6.0) on Thu May 27 01:34:44 IST 2010 -->
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>
net.abhinavsarkar.spelhelper (SpelHelper 1.0 API)
</TITLE>
<META NAME="date" CONTENT="2010-05-27">
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../spring-javadoc.css" TITLE="Style">
<SCRIPT type="text/javascript">
function windowTitle()
{
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="net.abhinavsarkar.spelhelper (SpelHelper 1.0 API)";
}
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>
</HEAD>
<BODY BGCOLOR="white" onload="windowTitle();">
<HR>
<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../net/abhinavsarkar/spelhelper/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;PREV PACKAGE&nbsp;
&nbsp;NEXT PACKAGE</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../index.html?net/abhinavsarkar/spelhelper/package-summary.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->
<HR>
<H2>
Package net.abhinavsarkar.spelhelper
</H2>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Class Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../net/abhinavsarkar/spelhelper/ExtensionFunctions.html" title="class in net.abhinavsarkar.spelhelper">ExtensionFunctions</A></B></TD>
<TD>Provides some extension functions to create some basic collection types
inline in SpEL expressions.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../net/abhinavsarkar/spelhelper/ImplicitMethods.html" title="class in net.abhinavsarkar.spelhelper">ImplicitMethods</A></B></TD>
<TD>Provides some implicit methods which can be invoked on the instances of
class of the first parameter of the method inside a SpEL expression.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../net/abhinavsarkar/spelhelper/SpelHelper.html" title="class in net.abhinavsarkar.spelhelper">SpelHelper</A></B></TD>
<TD>SpelHelper provides additional functionalities to work with
[Spring Expression Language (SpEL)][1].</TD>
</TR>
</TABLE>
&nbsp;
<P>
<DL>
</DL>
<HR>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../net/abhinavsarkar/spelhelper/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
Code hosted at <a target='_blank' href='http://github.com/abhin4v/spelhelper/'>github</a></EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;PREV PACKAGE&nbsp;
&nbsp;NEXT PACKAGE</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../index.html?net/abhinavsarkar/spelhelper/package-summary.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<HR>
Copyright &#169; 2010. All Rights Reserved.
</BODY>
</HTML>

View File

@ -0,0 +1,149 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.6.0) on Thu May 27 01:34:44 IST 2010 -->
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>
net.abhinavsarkar.spelhelper Class Hierarchy (SpelHelper 1.0 API)
</TITLE>
<META NAME="date" CONTENT="2010-05-27">
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../spring-javadoc.css" TITLE="Style">
<SCRIPT type="text/javascript">
function windowTitle()
{
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="net.abhinavsarkar.spelhelper Class Hierarchy (SpelHelper 1.0 API)";
}
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>
</HEAD>
<BODY BGCOLOR="white" onload="windowTitle();">
<HR>
<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../net/abhinavsarkar/spelhelper/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;PREV&nbsp;
&nbsp;NEXT</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../index.html?net/abhinavsarkar/spelhelper/package-tree.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->
<HR>
<CENTER>
<H2>
Hierarchy For Package net.abhinavsarkar.spelhelper
</H2>
</CENTER>
<H2>
Class Hierarchy
</H2>
<UL>
<LI TYPE="circle">java.lang.<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><B>Object</B></A><UL>
<LI TYPE="circle">net.abhinavsarkar.spelhelper.<A HREF="../../../net/abhinavsarkar/spelhelper/ExtensionFunctions.html" title="class in net.abhinavsarkar.spelhelper"><B>ExtensionFunctions</B></A><LI TYPE="circle">net.abhinavsarkar.spelhelper.<A HREF="../../../net/abhinavsarkar/spelhelper/ImplicitMethods.html" title="class in net.abhinavsarkar.spelhelper"><B>ImplicitMethods</B></A><LI TYPE="circle">net.abhinavsarkar.spelhelper.<A HREF="../../../net/abhinavsarkar/spelhelper/SpelHelper.html" title="class in net.abhinavsarkar.spelhelper"><B>SpelHelper</B></A></UL>
</UL>
<HR>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../net/abhinavsarkar/spelhelper/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
Code hosted at <a target='_blank' href='http://github.com/abhin4v/spelhelper/'>github</a></EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;PREV&nbsp;
&nbsp;NEXT</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../index.html?net/abhinavsarkar/spelhelper/package-tree.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<HR>
Copyright &#169; 2010. All Rights Reserved.
</BODY>
</HTML>

View File

@ -0,0 +1,157 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.6.0) on Thu May 27 01:34:44 IST 2010 -->
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>
Uses of Package net.abhinavsarkar.spelhelper (SpelHelper 1.0 API)
</TITLE>
<META NAME="date" CONTENT="2010-05-27">
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../spring-javadoc.css" TITLE="Style">
<SCRIPT type="text/javascript">
function windowTitle()
{
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="Uses of Package net.abhinavsarkar.spelhelper (SpelHelper 1.0 API)";
}
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>
</HEAD>
<BODY BGCOLOR="white" onload="windowTitle();">
<HR>
<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../net/abhinavsarkar/spelhelper/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;PREV&nbsp;
&nbsp;NEXT</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../index.html?net/abhinavsarkar/spelhelper/package-use.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->
<HR>
<CENTER>
<H2>
<B>Uses of Package<br>net.abhinavsarkar.spelhelper</B></H2>
</CENTER>
<A NAME="net.abhinavsarkar.spelhelper"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
Classes in <A HREF="../../../net/abhinavsarkar/spelhelper/package-summary.html">net.abhinavsarkar.spelhelper</A> used by <A HREF="../../../net/abhinavsarkar/spelhelper/package-summary.html">net.abhinavsarkar.spelhelper</A></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><B><A HREF="../../../net/abhinavsarkar/spelhelper/class-use/SpelHelper.html#net.abhinavsarkar.spelhelper"><B>SpelHelper</B></A></B>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SpelHelper provides additional functionalities to work with
[Spring Expression Language (SpEL)][1].</TD>
</TR>
</TABLE>
&nbsp;
<P>
<HR>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../net/abhinavsarkar/spelhelper/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
Code hosted at <a target='_blank' href='http://github.com/abhin4v/spelhelper/'>github</a></EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;PREV&nbsp;
&nbsp;NEXT</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../index.html?net/abhinavsarkar/spelhelper/package-use.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<HR>
Copyright &#169; 2010. All Rights Reserved.
</BODY>
</HTML>

151
apidocs/overview-tree.html Normal file
View File

@ -0,0 +1,151 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.6.0) on Thu May 27 01:34:44 IST 2010 -->
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<TITLE>
Class Hierarchy (SpelHelper 1.0 API)
</TITLE>
<META NAME="date" CONTENT="2010-05-27">
<LINK REL ="stylesheet" TYPE="text/css" HREF="spring-javadoc.css" TITLE="Style">
<SCRIPT type="text/javascript">
function windowTitle()
{
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="Class Hierarchy (SpelHelper 1.0 API)";
}
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>
</HEAD>
<BODY BGCOLOR="white" onload="windowTitle();">
<HR>
<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="net/abhinavsarkar/spelhelper/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;PREV&nbsp;
&nbsp;NEXT</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="index.html?overview-tree.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="overview-tree.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->
<HR>
<CENTER>
<H2>
Hierarchy For All Packages</H2>
</CENTER>
<DL>
<DT><B>Package Hierarchies:</B><DD><A HREF="net/abhinavsarkar/spelhelper/package-tree.html">net.abhinavsarkar.spelhelper</A></DL>
<HR>
<H2>
Class Hierarchy
</H2>
<UL>
<LI TYPE="circle">java.lang.<A HREF="http://java.sun.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><B>Object</B></A><UL>
<LI TYPE="circle">net.abhinavsarkar.spelhelper.<A HREF="net/abhinavsarkar/spelhelper/ExtensionFunctions.html" title="class in net.abhinavsarkar.spelhelper"><B>ExtensionFunctions</B></A><LI TYPE="circle">net.abhinavsarkar.spelhelper.<A HREF="net/abhinavsarkar/spelhelper/ImplicitMethods.html" title="class in net.abhinavsarkar.spelhelper"><B>ImplicitMethods</B></A><LI TYPE="circle">net.abhinavsarkar.spelhelper.<A HREF="net/abhinavsarkar/spelhelper/SpelHelper.html" title="class in net.abhinavsarkar.spelhelper"><B>SpelHelper</B></A></UL>
</UL>
<HR>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="net/abhinavsarkar/spelhelper/package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
Code hosted at <a target='_blank' href='http://github.com/abhin4v/spelhelper/'>github</a></EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;PREV&nbsp;
&nbsp;NEXT</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="index.html?overview-tree.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="overview-tree.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<HR>
Copyright &#169; 2010. All Rights Reserved.
</BODY>
</HTML>

1
apidocs/package-list Normal file
View File

@ -0,0 +1 @@
net.abhinavsarkar.spelhelper

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 B

178
apidocs/spring-javadoc.css Normal file
View File

@ -0,0 +1,178 @@
/* stylesheet.css 2008/04/22 nicolekonicki */
/*
*
* Spring-specific Javadoc style sheet
*
*/
.code
{
border: 1px solid black;
background-color: #F4F4F4;
padding: 5px;
}
body
{
font: 12px Verdana, Arial, Helvetica, "Bitstream Vera Sans", sans-serif;
background-color: #fff;
color: #333;
}
/* Link colors */
a
{
color:#2c7b14;
text-decoration:none;
}
a:hover
{
text-decoration:underline;
}
/* Headings */
h1
{
font-size:28px;
color:#007c00;
}
/* Table colors */
table
{
border:none;
}
td
{
border:none;
border-bottom:1px dotted #ddd;
}
th
{
border:none;
}
.TableHeadingColor th
{
background-color: #064F52;
background-image: url(http://static.springsource.org/spring/docs/3.0.x/javadoc-api/resources/TableHeading-background.png);
background-repeat: repeat-x;
color:#fff;
font-size:14px;
height:26px;
}
.TableSubHeadingColor
{
background: #f7ffee;
}
.TableRowColor
{
background: #fff;
}
.TableRowColor a
{
border-bottom:none;
color:#2c7b14;
font-weight:normal;
}
tr.TableRowColor:hover
{
background:#eef2e1;
}
/* Font used in left-hand frame lists */
.FrameTitleFont
{
font-size: 120%;
font-weight:bold;
}
.FrameTitleFont a
{
color: #333;
}
.FrameHeadingFont
{
font-weight: bold;
font-size:95%;
}
.FrameItemFont
{
line-height:130%;
font-size: 95%;
}
.FrameItemFont a
{
color:#333;
}
.FrameItemFont a:hover
{
color:#249901;
border-bottom:none;
text-decoration:underline;
}
/* Navigation bar fonts and colors */
.NavBarCell1
{
background-color:#fff;
border:none;
}
.NavBarCell1Rev
{
background-color:#e3faa5;
border:1px solid #9ad00c;
padding:0;
margin:0;
}
.NavBarCell1 a
{
color:#333;
text-decoration:none;
}
.NavBarFont1Rev
{
}
.NavBarCell2
{
border:none;
}
.NavBarCell2 a
{
color:#249901;
font-size:90%;
}
.NavBarCell3
{
border:none;
}
/* Override sizes in font tags */
font
{
font: inherit !important;
}

BIN
lib/markdown-doclet-3.0.jar Normal file

Binary file not shown.

110
pom.xml
View File

@ -1,47 +1,75 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>net.abhinavsarkar.spelhelper</groupId>
<artifactId>SpelHelper</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<groupId>net.abhinavsarkar.spelhelper</groupId>
<artifactId>SpelHelper</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<name>SpelHelper</name>
<url>http://maven.apache.org</url>
<name>SpelHelper</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
</plugins>
</build>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.4</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>3.0.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>3.0.2.RELEASE</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.7</version>
<executions>
<execution>
<id>javadoc</id>
<phase>process-sources</phase>
<goals>
<goal>javadoc</goal>
</goals>
</execution>
</executions>
<configuration>
<reportOutputDirectory>${basedir}/apidocs</reportOutputDirectory>
<footer>Code hosted at &lt;a target='_blank' href='http://github.com/abhin4v/spelhelper/'&gt;github&lt;/a&gt;</footer>
<links>
<link>http://static.springsource.org/spring/docs/3.0.x/javadoc-api/</link>
</links>
<show>protected</show>
<stylesheetfile>spring-javadoc.css</stylesheetfile>
<doclet>com.visural.doclets.markdown.standard.Standard</doclet>
<docletPath>${basedir}/lib/markdown-doclet-3.0.jar</docletPath>
<useStandardDocletOptions>true</useStandardDocletOptions>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.1</version>
<configuration>
<source>1.6</source>
<target>1.5</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.4</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>3.0.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>3.0.2.RELEASE</version>
</dependency>
</dependencies>
</project>

View File

@ -13,16 +13,58 @@ import java.util.Set;
import org.springframework.util.Assert;
final class ExtensionFunctions {
/**
* Provides some extension functions to create some basic collection types
* inline in SpEL expressions.
* These functions are automatically registered with {@link SpelHelper}.
*
* **See Also:**
* [Spring Docs on extension functions](http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/expressions.html#expressions-ref-functions)
* @author Abhinav Sarkar _abhinav@abhinavsarkar.net_
*/
public final class ExtensionFunctions {
private ExtensionFunctions() {
}
/**
* Creates an unmodifiable {@link List} of the arguments provided.
*
* Example use: `"#list('one', 'two', 'three')"`
* @param <T> Type of the arguments provided.
* @param args Arguments to create list of.
* @return An unmodifiable list of the arguments provided.
*/
public static <T> List<T> list(final T... args) {
return unmodifiableList(Arrays.asList(args));
}
/**
* Creates an unmodifiable {@link Set} of the arguments provided.
*
* Example use: `"#set('one', 'two', 'three')"`
* @param <T> Type of the arguments provided.
* @param args Arguments to create set of.
* @return An unmodifiable set of the arguments provided.
*/
public static <T> Set<T> set(final T... args) {
return unmodifiableSet(new HashSet<T>(list(args)));
}
/**
* Creates an unmodifiable {@link Map} using the {@link List} of keys
* provided as the first argument and the {@link List} of values provided
* as the second argument.
*
* Example use: `"#map(#list('one', 'two', 'three'), #list(1, 2, 3))"`
* @param <K> Type of the keys of the map.
* @param <V> Type of the values of map.
* @param keys List of the keys.
* @param values List of the values.
* @return A unmodifiable map created from the key and value lists.
* @throws IllegalArgumentException if the number of keys and the number of
* values is not equal.
*/
public static <K,V> Map<K,V> map(final List<? extends K> keys,
final List<? extends V> values) {
Assert.isTrue(keys.size() == values.size(),

View File

@ -14,7 +14,7 @@ import org.springframework.expression.MethodResolver;
import org.springframework.expression.TypedValue;
import org.springframework.expression.spel.support.ReflectiveMethodResolver;
public final class ImplicitMethodResolver implements MethodResolver {
final class ImplicitMethodResolver implements MethodResolver {
private static final ConcurrentHashMap<String, MethodExecutor> cache =
new ConcurrentHashMap<String, MethodExecutor>();

View File

@ -9,12 +9,45 @@ import java.util.HashSet;
import java.util.List;
import java.util.Set;
final class ImplicitMethods {
/**
* Provides some implicit methods which can be invoked on the instances of
* class of the first parameter of the method inside a SpEL expression.
* @author Abhinav Sarkar _abhinav@abhinavsarkar.net_
*/
public final class ImplicitMethods {
/**
* Provides implicit method `distinct` on the {@link List} class.
*
* Example: `"#list('a','b','a').distinct()" //should return List('a','b')`
*
* With implicit property support provided by {@link SpelHelper} this can
* also be written as:
*
* `"#list('a','b','a').distinct" //same output as earlier`
* @param <T> Type of the list's elements.
* @param list The list to call this method upon.
* @return An unmodifiable {@link Set} containing the distinct items of the list.
*/
public static <T> Set<T> distinct(final List<? extends T> list) {
return unmodifiableSet(new HashSet<T>(list));
}
/**
* Provides implicit method `sorted` on the {@link List} class.
*
* Example: `"#list('c','b','a').sorted()" //should return List('a','b','c')`
*
* With implicit property support provided by {@link SpelHelper} this can
* also be written as:
*
* `"#list('c','b','a').sorted" //same output as earlier`
* @param <T> Type of the list's elements.
* @param list The list to call this method upon.
* @return An unmodifiable {@link List} containing the sorted items
* of the list.
* @see Collections#sort(List)
*/
public static <T extends Comparable<? super T>> List<T> sorted(
final List<? extends T> list) {
List<T> temp = new ArrayList<T>(list);
@ -22,16 +55,53 @@ final class ImplicitMethods {
return unmodifiableList(temp);
}
/**
* Provides implicit method `reversed` on the {@link List} class.
*
* Example: `"#list('c','b','a').reversed()" //should return List('a','b','c')`
*
* With implicit property support provided by {@link SpelHelper} this can
* also be written as:
*
* `"#list('c','b','a').reversed" //same output as earlier`
* @param <T> Type of the list's elements.
* @param list The list to call this method upon.
* @return An unmodifiable {@link List} containing the items of the
* list in reverse order.
* @see Collections#reverse(List)
*/
public static <T> List<T> reversed(final List<? extends T> list) {
List<T> temp = new ArrayList<T>(list);
Collections.reverse(temp);
return unmodifiableList(temp);
}
/**
* Provides implicit method `take` on the {@link List} class.
*
* Example: `"#list('c','b','a').take(2)" //should return List('a','b')`
*
* @param <T> Type of the list's elements.
* @param list The list to call this method upon.
* @param n Number of items to _take_ from the list.
* @return An unmodifiable {@link List} containing the first `n` items
* of the list.
*/
public static <T> List<T> take(final List<T> list, final int n) {
return unmodifiableList(list.subList(0, n));
}
/**
* Provides implicit method `drop` on the {@link List} class.
*
* Example: `"#list('c','b','a').drop(2)" //should return List('a')`
*
* @param <T> Type of the list's elements.
* @param list The list to call this method upon.
* @param n Number of items to _drop_ from the list.
* @return An unmodifiable {@link List} containing the items after the
* first `n` items of the list.
*/
public static <T> List<T> drop(final List<T> list, final int n) {
return unmodifiableList(list.subList(n, list.size()));
}

View File

@ -1,5 +1,5 @@
/**
*
*
*/
package net.abhinavsarkar.spelhelper;
@ -13,11 +13,11 @@ import org.springframework.expression.MethodResolver;
import org.springframework.expression.TypedValue;
import org.springframework.util.Assert;
public final class ImplicitPropertyAccessor extends ReadOnlyGenericPropertyAccessor {
final class ImplicitPropertyAccessor extends ReadOnlyGenericPropertyAccessor {
private static final ConcurrentHashMap<String, MethodExecutor> cache =
new ConcurrentHashMap<String, MethodExecutor>();
public boolean canRead(final EvaluationContext context,
final Object target, final String name)
throws AccessException {
@ -26,7 +26,7 @@ public final class ImplicitPropertyAccessor extends ReadOnlyGenericPropertyAcces
if (cache.containsKey(cacheKey)) {
return cache.get(cacheKey) != null;
}
for (MethodResolver mr : context.getMethodResolvers()) {
MethodExecutor me = mr.resolve(context, target, name, new Class[0]);
if (me != null) {
@ -34,7 +34,7 @@ public final class ImplicitPropertyAccessor extends ReadOnlyGenericPropertyAcces
return true;
}
}
cache.putIfAbsent(cacheKey, null);
return false;
}
@ -49,5 +49,5 @@ public final class ImplicitPropertyAccessor extends ReadOnlyGenericPropertyAcces
throw new AccessException(MessageFormat.format(
"Cannot read property: {0} of target: {1}", name, target));
}
}

View File

@ -6,7 +6,7 @@ import org.springframework.expression.AccessException;
import org.springframework.expression.EvaluationContext;
import org.springframework.expression.PropertyAccessor;
public abstract class ReadOnlyGenericPropertyAccessor implements
abstract class ReadOnlyGenericPropertyAccessor implements
PropertyAccessor {
public final boolean canWrite(final EvaluationContext context,

View File

@ -15,14 +15,98 @@ import java.util.concurrent.ConcurrentHashMap;
import org.springframework.expression.ConstructorResolver;
import org.springframework.expression.EvaluationContext;
import org.springframework.expression.Expression;
import org.springframework.expression.ExpressionParser;
import org.springframework.expression.spel.standard.SpelExpressionParser;
import org.springframework.expression.spel.support.StandardEvaluationContext;
import org.springframework.util.Assert;
/**
* SpelHelper provides additional functionalities to work with
* [Spring Expression Language (SpEL)][1].
*
* The addition functionalities provided are:
*
* 1. Implicit methods
* 2. Implicit properties
* 3. Simplified extension functions
* 4. Simplified constructors
*
* **Implicit Methods**
*
* Implicit methods allow one to registers methods with SpelHelper and attach
* them to particular classes. After that, when that method is called on an
* object of that particular class inside a SpEL expression, SpelHelper
* redirects the method call to the registered method.
*
* Example: {@link ImplicitMethods#sorted(List)} method is automatically
* registered by SpelHelper. The class that the method should be invoked for
* is the type of the first parameter of the method. In this case, the class is
* {@link List}.
*
* So when an expression like `"#list(1,4,2).sorted()"` is evaluated, the
* {@link ImplicitMethods#sorted(List)} method is invoked with the list as its
* first parameter and its return value is used in further evaluation of the
* expression.
*
* See {@link SpelHelper#registerImplicitMethodsFromClass(Class)}.
*
* **Implicit Properties**
*
* Implicit properties allow one to treat no argument methods of an object
* as properties of the object. SpelHelper intercepts the property resolution
* of SpEL and if the property name is same as some no-arg method of the target
* object then it invokes the method on the object and provides its return value
* as the property value for further evaluation of the expression.
*
* Example: Using implicit properties, the example of implicit methods can be
* written as: `"#list(1,4,2).sorted"` - dropping the parens - and it will return
* the same value as the last example.
*
* Implicit property resolution considers both the actual methods of the object
* and the implicit methods registered on the object's class.
*
* **Simplified extension functions**
*
* SpEL [allows][2] to register extension function on the context by providing a
* name and a {@link Method} object. SpelHelper simplifies this by taking a class
* and registering all the `public static` methods of the class which do not
* have a `void` return type. The methods are registered by their simple name.
*
* Example: All the methods of {@link ExtensionFunctions} class are automatically
* registered by SpelHelper. Hence the method {@link ExtensionFunctions#list(Object...)}
* can be called from inside a SpEL expression using the function call syntax:
* `"#list(1,2,3)`".
*
* See {@link SpelHelper#registerFunctionsFromClass(Class)}.
*
* **Simplified constructors**
*
* SpEL [allows][3] calling constructors from inside a SpEL expression using the
* `new` operator. But they have to be called with their full name like:
* `"new org.example.Foo('bar')"`. SpelHelper simplifies this by taking a class
* and registering all its public constructors to the SpEL context by their
* simple name.
*
* Example: After registering the `org.example.Foo` class with SpelHelper, its
* constructor can be called from inside a SpEL expression by: `"new Foo('bar')"`.
*
* See {@link SpelHelper#registerConstructorsFromClass(Class)}.
*
* In addition to all the above functionalities, SpelHelper automatically registers
* some extension functions and implicit methods which are always available in
* the SpEL expressions evaluated through SpelHelper. See {@link ExtensionFunctions}
* and {@link ImplicitMethods} for further details.
*
* [1]: http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/expressions.html
* [2]: http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/expressions.html#expressions-ref-functions
* [3]: http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/expressions.html#d0e11927
*
* @author Abhinav Sarkar _abhinav@abhinavsarkar.net_
*/
public final class SpelHelper {
public static final String CONTEXT_LOOKUP_KEY = SpelHelper.class.getName();
static final String CONTEXT_LOOKUP_KEY = SpelHelper.class.getName();
private static final ExpressionParser PARSER = new SpelExpressionParser();
private static final ThreadLocal<EvaluationContext> currentContext =
@ -35,11 +119,25 @@ public final class SpelHelper {
private final Map<String,Constructor<?>> registeredConstructors =
new ConcurrentHashMap<String, Constructor<?>>();
{
/**
* Creates an instance of SpelHelper.
*/
public SpelHelper() {
registerFunctionsFromClass(ExtensionFunctions.class);
registerImplicitMethodsFromClass(ImplicitMethods.class);
}
/**
* Registers the public static methods in the class `clazz` as implicit
* methods for the class of the first parameter of the methods.
*
* Only registers the public static methods with non void return type and at
* least one argument.
* @see ImplicitMethods
* @param clazz The class to register the methods from.
* @return The current instance of SpelHelper. This is for chaining
* the methods calls.
*/
public SpelHelper registerImplicitMethodsFromClass(final Class<?> clazz) {
for (Method method : filterMethods(clazz)) {
registeredMethods.put(String.format(
@ -49,13 +147,31 @@ public final class SpelHelper {
return this;
}
/**
* Registers the public static methods in the class `clazz` as functions
* which can be called from SpEL expressions.
* The functions are registered with the simple name of the methods.
*
* Only registers the public static methods with non void return type.
* @see ExtensionFunctions
* @param clazz The class to register the functions from.
* @return The current instance of SpelHelper. This is for chaining
* the methods calls.
*/
public SpelHelper registerFunctionsFromClass(final Class<?> clazz) {
registeredFunctions.addAll(filterMethods(clazz));
registeredFunctions.addAll(filterFunctions(clazz));
context = null;
return this;
}
public SpelHelper registerImplicitConstructorsFromClass(final Class<?> clazz) {
/**
* Registers the public constructors of the class `clazz` so that they
* can be called by their simple name from SpEL expressions.
* @param clazz The class to register the constructors from.
* @return The current instance of SpelHelper. This is for chaining
* the methods calls.
*/
public SpelHelper registerConstructorsFromClass(final Class<?> clazz) {
for (Constructor<?> constructor : asList(clazz.getConstructors())) {
registeredConstructors.put(
constructor.getDeclaringClass().getSimpleName()
@ -65,22 +181,58 @@ public final class SpelHelper {
return this;
}
/**
* Evaluates a SpEL expression `expressionString` in the context
* of root element `rootElement` and gives back a result of type
* `desiredType`.
* @param <T> The type of the result desired.
* @param expressionString The SpEL expression to evaluate.
* @param rootElement The root element in context of which the expression
* is to be evaluated.
* @param desiredType The class of the result desired.
* @return The result of the evaluation of the expression.
* @see ExpressionParser#parseExpression(String)
* @see Expression#getValue(EvaluationContext, Class)
*/
public <T> T evalExpression(final String expressionString,
final Object rootElement, final Class<T> desiredType) {
EvaluationContext evaluationContext = getEvaluationContext(rootElement);
currentContext.set(evaluationContext);
T value = evalExpression(expressionString, evaluationContext, desiredType);
currentContext.set(null);
return value;
}
/**
* Evaluates a SpEL expression `expressionString` in the provided
* context `evaluationContext` and gives back a result of type
* `desiredType`.
* @param <T> The type of the result desired.
* @param expressionString The SpEL expression to evaluate.
* @param evaluationContext The context in which the expression is to be evaluated.
* @param desiredType The class of the result desired.
* @return The result of the evaluation of the expression.
* @see ExpressionParser#parseExpression(String)
* @see Expression#getValue(EvaluationContext, Class)
*/
public <T> T evalExpression(final String expressionString,
final EvaluationContext evaluationContext, final Class<T> desiredType) {
return PARSER.parseExpression(expressionString)
.getValue(evaluationContext, desiredType);
}
/**
* Evaluates multiple SpEL expressions and returns the result of the last
* expression.
* @param <T> The type of the result desired.
* @param expressionStrings The SpEL expressions to evaluate.
* @param rootElement The root element in context of which the expressions
* are to be evaluated.
* @param desiredType The class of the result desired.
* @return The result of the evaluation of the last expression.
* @see SpelHelper#evalExpression(String, EvaluationContext, Class)
* @see SpelHelper#evalExpression(String, Object, Class)
*/
public <T> T evalExpressions(final String[] expressionStrings,
final Object rootElement, final Class<T> desiredType) {
int length = expressionStrings.length;
@ -93,6 +245,29 @@ public final class SpelHelper {
rootElement, desiredType);
}
/**
* Evaluates multiple SpEL expressions and returns the result of the last
* expression.
* @param <T> The type of the result desired.
* @param expressionStrings The SpEL expressions to evaluate.
* @param evaluationContext The context in which the expression is to be evaluated.
* @param desiredType The class of the result desired.
* @return The result of the evaluation of the last expression.
* @see SpelHelper#evalExpression(String, EvaluationContext, Class)
* @see SpelHelper#evalExpression(String, Object, Class)
*/
public <T> T evalExpressions(final String[] expressionStrings,
final EvaluationContext evaluationContext, final Class<T> desiredType) {
int length = expressionStrings.length;
Assert.isTrue(length > 0,
"expressionStrings should have length more than 0");
for (int i = 0; i < length - 1; i++) {
evalExpression(expressionStrings[i], evaluationContext, Object.class);
}
return evalExpression(expressionStrings[length - 1],
evaluationContext, desiredType);
}
private EvaluationContext getEvaluationContext(final Object rootObject) {
if (context == null) {
synchronized (PARSER) {
@ -113,16 +288,33 @@ public final class SpelHelper {
return context;
}
/**
* Looks up an implicit method registered with this instance.
* @param lookup key to lookup which should be of form:
* `method.getParameterTypes()[0].getName() + "." + method.getName()`
* @return The registered method if found, else null.
*/
public Method lookupImplicitMethod(final String lookup) {
Assert.notNull(lookup);
return registeredMethods.get(lookup);
}
/**
* Looks up an implicit constructor registered with this instance.
* @param lookup key to lookup which should be of form:
* `constructor.getDeclaringClass().getSimpleName()`
* `+ Arrays.toString(constructor.getParameterTypes())`
* @return The registered constructor if found, else null.
*/
public Constructor<?> lookupImplicitConstructor(final String lookup) {
Assert.notNull(lookup);
return registeredConstructors.get(lookup);
}
/**
* Returns the current evaluation context. Null if there is no context.
* @return The current evaluation context.
*/
public static EvaluationContext getCurrentContext() {
return currentContext.get();
}
@ -140,4 +332,16 @@ public final class SpelHelper {
return allowedMethods;
}
private static List<Method> filterFunctions(final Class<?> clazz) {
List<Method> allowedMethods = new ArrayList<Method>();
for (Method method : clazz.getMethods()) {
int modifiers = method.getModifiers();
if (Modifier.isPublic(modifiers) && Modifier.isStatic(modifiers)
&& !method.getReturnType().equals(Void.TYPE)) {
allowedMethods.add(method);
}
}
return allowedMethods;
}
}

View File

@ -0,0 +1,178 @@
/* stylesheet.css 2008/04/22 nicolekonicki */
/*
*
* Spring-specific Javadoc style sheet
*
*/
.code
{
border: 1px solid black;
background-color: #F4F4F4;
padding: 5px;
}
body
{
font: 12px Verdana, Arial, Helvetica, "Bitstream Vera Sans", sans-serif;
background-color: #fff;
color: #333;
}
/* Link colors */
a
{
color:#2c7b14;
text-decoration:none;
}
a:hover
{
text-decoration:underline;
}
/* Headings */
h1
{
font-size:28px;
color:#007c00;
}
/* Table colors */
table
{
border:none;
}
td
{
border:none;
border-bottom:1px dotted #ddd;
}
th
{
border:none;
}
.TableHeadingColor th
{
background-color: #064F52;
background-image: url(http://static.springsource.org/spring/docs/3.0.x/javadoc-api/resources/TableHeading-background.png);
background-repeat: repeat-x;
color:#fff;
font-size:14px;
height:26px;
}
.TableSubHeadingColor
{
background: #f7ffee;
}
.TableRowColor
{
background: #fff;
}
.TableRowColor a
{
border-bottom:none;
color:#2c7b14;
font-weight:normal;
}
tr.TableRowColor:hover
{
background:#eef2e1;
}
/* Font used in left-hand frame lists */
.FrameTitleFont
{
font-size: 120%;
font-weight:bold;
}
.FrameTitleFont a
{
color: #333;
}
.FrameHeadingFont
{
font-weight: bold;
font-size:95%;
}
.FrameItemFont
{
line-height:130%;
font-size: 95%;
}
.FrameItemFont a
{
color:#333;
}
.FrameItemFont a:hover
{
color:#249901;
border-bottom:none;
text-decoration:underline;
}
/* Navigation bar fonts and colors */
.NavBarCell1
{
background-color:#fff;
border:none;
}
.NavBarCell1Rev
{
background-color:#e3faa5;
border:1px solid #9ad00c;
padding:0;
margin:0;
}
.NavBarCell1 a
{
color:#333;
text-decoration:none;
}
.NavBarFont1Rev
{
}
.NavBarCell2
{
border:none;
}
.NavBarCell2 a
{
color:#249901;
font-size:90%;
}
.NavBarCell3
{
border:none;
}
/* Override sizes in font tags */
font
{
font: inherit !important;
}

View File

@ -36,7 +36,7 @@ public class SpelHelperTest {
Assert.assertEquals(
new ConstructorTest(),
new SpelHelper()
.registerImplicitConstructorsFromClass(ConstructorTest.class)
.registerConstructorsFromClass(ConstructorTest.class)
.evalExpression("new ConstructorTest()", new Object(), ConstructorTest.class));
}