|
From: Leandro R. S. C. <bas...@us...> - 2004-03-22 21:34:23
|
Update of /cvsroot/xingu/xingu/exintake/src/java/br/com/ibnetwork/xingu/exintake/model/rule/impl In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31708/exintake/src/java/br/com/ibnetwork/xingu/exintake/model/rule/impl Added Files: MaskRule.java AbstractRule.java MinLengthRule.java RuleNullImpl.java RuleSetDefaultImpl.java MaxLengthRule.java RuleSetNullImpl.java RequiredRule.java FormatRule.java Log Message: adding Extensible input taker --- NEW FILE: MaxLengthRule.java --- package br.com.ibnetwork.xingu.exintake.model.rule.impl; /** * @author neto * * To change the template for this generated type comment go to * Window>Preferences>Java>Code Generation>Code and Comments */ public class MaxLengthRule extends AbstractRule { /** * @param value */ public MaxLengthRule(String value) { super(value); // TODO Auto-generated constructor stub } public String getMaxLength() { return value; } } --- NEW FILE: MinLengthRule.java --- package br.com.ibnetwork.xingu.exintake.model.rule.impl; /** * @author neto * * To change the template for this generated type comment go to * Window>Preferences>Java>Code Generation>Code and Comments */ public class MinLengthRule extends AbstractRule { /** * @param value */ public MinLengthRule(String value) { super(value); // TODO Auto-generated constructor stub } } --- NEW FILE: RuleSetNullImpl.java --- package br.com.ibnetwork.xingu.exintake.model.rule.impl; import java.util.ArrayList; import java.util.List; import br.com.ibnetwork.xingu.exintake.IntakeException; import br.com.ibnetwork.xingu.exintake.model.rule.Rule; import br.com.ibnetwork.xingu.exintake.model.rule.RuleSet; /** * @author <a href="mailto:le...@ib...">Leandro Rodrigo Saad Cruz</a> * */ public class RuleSetNullImpl implements RuleSet { /* (non-Javadoc) * @see br.com.ibnetwork.xingu.exintake.model.rule.RuleSet#isValid(java.lang.Object) */ public boolean isValid(Object value) throws IntakeException { return true; } /* (non-Javadoc) * @see br.com.ibnetwork.xingu.exintake.model.rule.RuleSet#getRules() */ public List getRules() { return new ArrayList(0); } /* (non-Javadoc) * @see br.com.ibnetwork.xingu.exintake.model.rule.RuleSet#getFieldName() */ public String getFieldName() { return "RuleSet null impl field"; } /* (non-Javadoc) * @see br.com.ibnetwork.xingu.exintake.model.rule.RuleSet#getRuleByType(java.lang.Class) */ public Rule getRuleByType(Class type) { return new RuleNullImpl(); } /* (non-Javadoc) * @see br.com.ibnetwork.xingu.exintake.model.rule.RuleSet#getRuleByName(java.lang.String) */ public Rule getRuleByName(String ruleName) { // TODO Auto-generated method stub return null; } } --- NEW FILE: FormatRule.java --- package br.com.ibnetwork.xingu.exintake.model.rule.impl; import java.text.Format; import java.text.ParseException; import java.text.SimpleDateFormat; /** * @author neto * * To change the template for this generated type comment go to * Window>Preferences>Java>Code Generation>Code and Comments */ public class FormatRule extends AbstractRule { Format format; /** * @param value */ public FormatRule(String value) { super(value); format = new SimpleDateFormat(value); } public String getFormat() { return value; } public Object parse(String source) throws ParseException { return format.parseObject(source); } public String format(Object obj) { return format.format(obj); } } --- NEW FILE: MaskRule.java --- package br.com.ibnetwork.xingu.exintake.model.rule.impl; import br.com.ibnetwork.xingu.exintake.model.rule.Rule; /** * @author neto * * To change the template for this generated type comment go to * Window>Preferences>Java>Code Generation>Code and Comments */ public class MaskRule extends AbstractRule { /** * @param value */ public MaskRule(String value) { super(value); } public String getMask() { return value; } public String toString() { return "MaskRule: mask("+value+")"; } } --- NEW FILE: RequiredRule.java --- package br.com.ibnetwork.xingu.exintake.model.rule.impl; import java.lang.reflect.InvocationTargetException; import org.apache.commons.beanutils.MethodUtils; import br.com.ibnetwork.xingu.exintake.IntakeException; /** * @author neto * * To change the template for this generated type comment go to * Window>Preferences>Java>Code Generation>Code and Comments */ public class RequiredRule extends AbstractRule { /** * @param value */ public RequiredRule(String value) { super(value); } public String getRequired() { return value; } /* (non-Javadoc) * @see br.com.ibnetwork.xingu.exintake.model.rule.Rule#isValid(java.lang.Object) */ public boolean isValid(Object bean) throws IntakeException { try { Object result = MethodUtils.invokeMethod(bean,getGetterName(),null); return result != null; } catch(Exception e) { throw new IntakeException(e); } } public String toString() { return "RequiredRule"; } } --- NEW FILE: RuleSetDefaultImpl.java --- package br.com.ibnetwork.xingu.exintake.model.rule.impl; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import br.com.ibnetwork.xingu.exintake.IntakeException; import br.com.ibnetwork.xingu.exintake.model.rule.Rule; /** * @author <a href="mailto:le...@ib...">Leandro Rodrigo Saad Cruz</a> * */ public class RuleSetDefaultImpl implements br.com.ibnetwork.xingu.exintake.model.rule.RuleSet { private List rules = new ArrayList(); private String fieldName; /** * @param rules */ public RuleSetDefaultImpl(String fieldName,List rules) { this.fieldName = fieldName; this.rules = rules; for (Iterator iter = rules.iterator(); iter.hasNext();) { Rule rule = (Rule) iter.next(); rule.setRuleSet(this); } } /* (non-Javadoc) * @see br.com.ibnetwork.xingu.exintake.model.rule.RuleSet#isValid() */ public boolean isValid(Object value) throws IntakeException { boolean flag = true; for (Iterator iter = rules.iterator(); iter.hasNext();) { Rule element = (Rule) iter.next(); flag = flag && element.isValid(value); } return flag; } /* (non-Javadoc) * @see br.com.ibnetwork.xingu.exintake.model.rule.RuleSet#getRules() */ public List getRules() { return rules; } /* (non-Javadoc) * @see br.com.ibnetwork.xingu.exintake.model.rule.RuleSet#getFieldName() */ public String getFieldName() { return fieldName; } /* (non-Javadoc) * @see br.com.ibnetwork.xingu.exintake.model.rule.RuleSet#getRuleByType(java.lang.Class) */ public Rule getRuleByType(Class type) { for (Iterator iter = rules.iterator(); iter.hasNext();) { Rule rule = (Rule) iter.next(); if(rule.getClass().equals(type)) { return rule; } } return null; } /* (non-Javadoc) * @see br.com.ibnetwork.xingu.exintake.model.rule.RuleSet#getRuleByName(java.lang.String) */ public Rule getRuleByName(String ruleName) { for (Iterator iter = rules.iterator(); iter.hasNext();) { Rule rule = (Rule) iter.next(); if(rule.getName().equals(ruleName)) { return rule; } } return null; } } --- NEW FILE: RuleNullImpl.java --- /* * Created on Feb 13, 2004 * * To change the template for this generated file go to * Window>Preferences>Java>Code Generation>Code and Comments */ package br.com.ibnetwork.xingu.exintake.model.rule.impl; import br.com.ibnetwork.xingu.exintake.IntakeException; import br.com.ibnetwork.xingu.exintake.model.rule.Rule; import br.com.ibnetwork.xingu.exintake.model.rule.RuleSet; /** * @author <a href="mailto:le...@ib...">Leandro Rodrigo Saad Cruz</a> * */ public class RuleNullImpl implements Rule { /* (non-Javadoc) * @see br.com.ibnetwork.xingu.exintake.model.rule.Rule#isValid(java.lang.Object) */ public boolean isValid(Object bean) throws IntakeException { return true; } /* (non-Javadoc) * @see br.com.ibnetwork.xingu.exintake.model.rule.Rule#setMessage(java.lang.String) */ public void setMessage(String ruleMessage) { // TODO Auto-generated method stub } /* (non-Javadoc) * @see br.com.ibnetwork.xingu.exintake.model.rule.Rule#getMessage() */ public String getMessage() { // TODO Auto-generated method stub return null; } /* (non-Javadoc) * @see br.com.ibnetwork.xingu.exintake.model.rule.Rule#setRuleSet(br.com.ibnetwork.xingu.exintake.model.rule.RuleSet) */ public void setRuleSet(RuleSet impl) { // TODO Auto-generated method stub } /* (non-Javadoc) * @see br.com.ibnetwork.xingu.exintake.model.rule.Rule#getFieldName() */ public String getFieldName() { // TODO Auto-generated method stub return null; } /* (non-Javadoc) * @see br.com.ibnetwork.xingu.exintake.model.rule.Rule#getName() */ public String getName() { // TODO Auto-generated method stub return null; } } --- NEW FILE: AbstractRule.java --- /* * Created on Jan 7, 2004 * * To change the template for this generated file go to * Window>Preferences>Java>Code Generation>Code and Comments */ package br.com.ibnetwork.xingu.exintake.model.rule.impl; import br.com.ibnetwork.xingu.exintake.IntakeException; import br.com.ibnetwork.xingu.exintake.model.rule.Rule; import br.com.ibnetwork.xingu.exintake.model.rule.RuleSet; import br.com.ibnetwork.xingu.utils.StringUtils; /** * @author neto * * To change the template for this generated type comment go to * Window>Preferences>Java>Code Generation>Code and Comments */ public abstract class AbstractRule implements Rule { protected RuleSet set; protected String ruleMessage; protected String value; public AbstractRule(String value) { this.value = value; } public void setRuleSet(RuleSet set) { this.set = set; } /* (non-Javadoc) * @see br.com.ibnetwork.xingu.exintake.model.rule.Rule#isValid() */ public boolean isValid(Object bean) throws IntakeException { return false; } /* (non-Javadoc) * @see br.com.ibnetwork.xingu.exintake.model.rule.Rule#setMessage(java.lang.String) */ public void setMessage(String ruleMessage) { this.ruleMessage = ruleMessage; } /* (non-Javadoc) * @see br.com.ibnetwork.xingu.exintake.model.rule.Rule#getMessage() */ public String getMessage() { // TODO Auto-generated method stub return ruleMessage; } /* (non-Javadoc) * @see br.com.ibnetwork.xingu.exintake.model.rule.Rule#getFieldName() */ public String getFieldName() { return set.getFieldName(); } protected String getGetterName() { return "get" + StringUtils.firstLetterCaps(set.getFieldName()); } /* (non-Javadoc) * @see br.com.ibnetwork.xingu.exintake.model.rule.Rule#getName() */ public String getName() { String className = this.getClass().getName(); int lastDot = className.lastIndexOf("."); return className.substring(lastDot + 1); } } |