Mega Code Archive

 
Categories / Java / Spring
 

Custom Editor Example

/* Pro Spring By Rob Harrop Jan Machacek ISBN: 1-59059-461-4 Publisher: Apress */ /////////////////////////////////////////////////////////////////////////////////////// //File:custom.xml <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans>     <bean name="customEditorConfigurer" class="org.springframework.beans.factory.config.CustomEditorConfigurer">         <property name="customEditors">             <map>                 <entry key="java.util.regex.Pattern">                     <bean class="PatternPropertyEditor"/>                 </entry>             </map>         </property>     </bean>     <bean id="exampleBean" class="CustomEditorExample">         <property name="searchPattern">             <value>(dog|fox)</value>         </property>         <property name="textToSearch">             <value>The quick brown fox jumped over the lazy dog.</value>         </property>     </bean> </beans> /////////////////////////////////////////////////////////////////////////////////////// import java.beans.PropertyEditorSupport; import java.util.regex.Pattern; public class PatternPropertyEditor extends PropertyEditorSupport {     public void setAsText(String text) throws IllegalArgumentException {         Pattern pattern = Pattern.compile(text);         setValue(pattern);     } } /////////////////////////////////////////////////////////////////////////////////////// import java.util.regex.Matcher; import java.util.regex.Pattern; import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; import org.springframework.beans.factory.config.CustomEditorConfigurer; import org.springframework.beans.factory.xml.XmlBeanFactory; import org.springframework.core.io.FileSystemResource; public class CustomEditorExample {     private Pattern searchPattern;     private String textToSearch;     public static void main(String[] args) {         ConfigurableListableBeanFactory factory = new XmlBeanFactory(                 new FileSystemResource("build/custom.xml"));         CustomEditorConfigurer config = (CustomEditorConfigurer) factory                 .getBean("customEditorConfigurer");         config.postProcessBeanFactory(factory);         CustomEditorExample bean = (CustomEditorExample) factory                 .getBean("exampleBean");         System.out.println(bean.getMatchCount());     }     public void setSearchPattern(Pattern searchPattern) {         this.searchPattern = searchPattern;     }     public void setTextToSearch(String textToSearch) {         this.textToSearch = textToSearch;     }     public int getMatchCount() {         Matcher m = searchPattern.matcher(textToSearch);         int count = 0;         while (m.find()) {             count++;         }         return count;     } }                     CustomEditorExample.zip( 1,477 k)