<rdf:RDF
    xmlns:s='http://snipsnap.org/rdf/snip-schema#'
    xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'
    xml:base='http://wiki.marandcustomsolutions.com/rdf'>
    <s:Snip rdf:about='http://wiki.marandcustomsolutions.com/rdf#Development/Java+%26+J2EE/Spring/Enums'
         s:cUser='mpecher'
         s:oUser=''
         s:mUser='mpecher'>
        <s:name>Development/Java &amp; J2EE/Spring/Enums</s:name>
        <s:content>----&#xD;&#xA;1 Injecting enums in Spring&#xD;&#xA;To inject java.commons.lang.Enum, we need to use the static method and pass in the String. ie given:&#xD;&#xA;{code:java}&#xD;&#xA;import org.apache.commons.lang.enum.Enum;&#xD;&#xA;&#xD;&#xA;public final class SortEnum extends Enum {&#xD;&#xA;&#xD;&#xA;    /** ascending sort order. */&#xD;&#xA;    public static final SortEnum ASC = new SortEnum(&quot;ASC&quot;);&#xD;&#xA;&#xD;&#xA;    /** descending sort. */&#xD;&#xA;    public static final SortEnum DESC = new SortEnum(&quot;DESC&quot;);&#xD;&#xA;&#xD;&#xA;    /** no sort order specified. */&#xD;&#xA;    public static final SortEnum NO_SORT = new SortEnum(&quot;NO_SORT&quot;);&#xD;&#xA;&#xD;&#xA;    /**&#xD;&#xA;     * callers should use convience methods.&#xD;&#xA;     * @param dir to sort&#xD;&#xA;     */&#xD;&#xA;    private SortEnum(String dir) {&#xD;&#xA;        super(dir);&#xD;&#xA;    }&#xD;&#xA;&#xD;&#xA;    /**&#xD;&#xA;     * SortEnum to use.&#xD;&#xA;     * @param dir requied&#xD;&#xA;     * @return enum represention for the dir&#xD;&#xA;     */&#xD;&#xA;    public static SortEnum getEnum(String dir) {&#xD;&#xA;        return (SortEnum) getEnum(SortEnum.class, dir);&#xD;&#xA;    }&#xD;&#xA;}&#xD;&#xA;{code}&#xD;&#xA;{code:xml}&#xD;&#xA;&lt;beans&gt;&#xD;&#xA;  &lt;bean id=&quot;ASC&quot;&#xD;&#xA;        class=&quot;com.marandcustomsolutions.SortOrder&quot;&#xD;&#xA;&#9;factory-method=&quot;getEnum&quot; singleton=&quot;true&quot;&gt;&#9;&#9;&#xD;&#xA;    &lt;constructor-arg&gt;&lt;value&gt;ASC&lt;/value&gt; &lt;/constructor-arg&gt;&#xD;&#xA;  &lt;/bean&gt;&#xD;&#xA;&lt;/beans&gt;&#xD;&#xA;{code}&#xD;&#xA;&#xD;&#xA;----&#xD;&#xA;1 Injecting list, set, map, and props&#xD;&#xA;{code:xml}&#xD;&#xA;&lt;bean id=&quot;moreComplexObject&quot; class=&quot;example.ComplexObject&quot;&gt;&#xD;&#xA;&lt;!-- results in a setPeople(java.util.Properties) call --&gt;&#xD;&#xA;&lt;property name=&quot;people&quot;&gt;&#xD;&#xA;&lt;props&gt;&#xD;&#xA;&lt;prop key=&quot;HarryPotter&quot;&gt;The magic property&lt;/prop&gt;&#xD;&#xA;&lt;prop key=&quot;JerrySeinfeld&quot;&gt;The funny property&lt;/prop&gt;&#xD;&#xA;&lt;/props&gt;&#xD;&#xA;&lt;/property&gt;&#xD;&#xA;&lt;!-- results in a setSomeList(java.util.List) call --&gt;&#xD;&#xA;&lt;property name=&quot;someList&quot;&gt;&#xD;&#xA;&lt;list&gt;&#xD;&#xA;&lt;value&gt;a list element followed by a reference&lt;/value&gt;&#xD;&#xA;&lt;ref bean=&quot;myDataSource&quot;/&gt;&#xD;&#xA;&lt;/list&gt;&#xD;&#xA;&lt;/property&gt;&#xD;&#xA;&lt;!-- results in a setSomeMap(java.util.Map) call --&gt;&#xD;&#xA;&lt;property name=&quot;someMap&quot;&gt;&#xD;&#xA;&lt;map&gt;&#xD;&#xA;&lt;entry&gt;&#xD;&#xA;&lt;key&gt;&lt;value&gt;yup an entry&lt;/value&gt;&lt;/key&gt;&#xD;&#xA;&lt;value&gt;just some string&lt;/value&gt;&#xD;&#xA;&lt;/entry&gt;&#xD;&#xA;&lt;entry&gt;&#xD;&#xA;&lt;key&gt;&lt;value&gt;yup a ref&lt;/value&gt;&lt;/key&gt;&#xD;&#xA;&lt;ref bean=&quot;myDataSource&quot;/&gt;&#xD;&#xA;&lt;/entry&gt;&#xD;&#xA;&lt;/map&gt;&#xD;&#xA;&lt;/property&gt;&#xD;&#xA;&lt;!-- results in a setSomeSet(java.util.Set) call --&gt;&#xD;&#xA;&lt;property name=&quot;someSet&quot;&gt;&#xD;&#xA;&lt;set&gt;&#xD;&#xA;&lt;value&gt;just some string&lt;/value&gt;&#xD;&#xA;&lt;ref bean=&quot;myDataSource&quot;/&gt;&#xD;&#xA;&lt;/set&gt;&#xD;&#xA;&lt;/property&gt;&#xD;&#xA;{code}</s:content>
        <s:mTime>2006-07-22 11:48:39.0</s:mTime>
        <s:cTime>2006-07-22 11:48:39.0</s:cTime>
        <s:comments
             rdf:type='http://www.w3.org/1999/02/22-rdf-syntax-ns#Bag'/>
        <s:snipLinks>
            <rdf:Bag>
                <rdf:li rdf:resource='http://wiki.marandcustomsolutions.com/rdf#Development/Java &amp; J2EE/Spring'/>
                <rdf:li rdf:resource='#snipsnap-index'/>
                <rdf:li rdf:resource='http://wiki.marandcustomsolutions.com/rdf#Development/Java+&amp;+J2EE/Spring/Enums'/>
                <rdf:li rdf:resource='http://wiki.marandcustomsolutions.com/rdf#Development/Java &amp; J2EE/Hibernate/Mapping'/>
                <rdf:li rdf:resource='http://wiki.marandcustomsolutions.com/rdf#Development/Java &amp; J2EE'/>
                <rdf:li rdf:resource='http://wiki.marandcustomsolutions.com/rdf#Development/Java &amp; J2EE/Websphere/WebSEAL/WebSEAL Junctions'/>
                <rdf:li>
                    <s:Snip rdf:about='http://wiki.marandcustomsolutions.com/rdf#Development/Java+%26+J2EE/Spring/Enums'>
                        <s:attachments
                             rdf:type='http://www.w3.org/1999/02/22-rdf-syntax-ns#Bag'/>
                    </s:Snip>
                </rdf:li>
                <rdf:li rdf:resource='http://wiki.marandcustomsolutions.com/rdf#Development/Java &amp; J2EE/Tomcat'/>
                <rdf:li rdf:resource='#snipsnap-search'/>
                <rdf:li rdf:resource='http://wiki.marandcustomsolutions.com/rdf#Development/Java &amp; J2EE/Spring/Enums/'/>
                <rdf:li rdf:resource='#Development'/>
            </rdf:Bag>
        </s:snipLinks>
    </s:Snip>
</rdf:RDF>

