001    package org.trails.validation;
002    
003    import org.apache.tapestry.form.translator.DateTranslator;
004    import org.apache.tapestry.form.translator.NumberTranslator;
005    import org.apache.tapestry.form.translator.StringTranslator;
006    import org.apache.tapestry.form.translator.Translator;
007    import org.apache.tapestry.valid.BaseValidator;
008    import org.apache.tapestry.valid.IValidator;
009    import org.apache.tapestry.valid.NumberValidator;
010    import org.apache.tapestry.valid.StringValidator;
011    import org.trails.descriptor.IPropertyDescriptor;
012    
013    public class ValidatorTranslatorService
014    {
015            /**
016             * @param class1
017             * @return
018             */
019            public IValidator getValidator(IPropertyDescriptor descriptor)
020            {
021                    BaseValidator validator = null;
022    
023                    if (descriptor.isNumeric())
024                    {
025                            validator = new NumberValidator();
026                            ((NumberValidator) validator).setValueTypeClass(descriptor.getPropertyType());
027                    } else
028                    {
029                            validator = new StringValidator();
030                    }
031                    validator.setRequired(descriptor.isRequired());
032                    return validator;
033            }
034    
035            public Translator getTranslator(IPropertyDescriptor descriptor)
036            {
037                    if (descriptor.isNumeric())
038                    {
039                            NumberTranslator numberTranslator = new NumberTranslator();
040                            if (descriptor.getFormat() != null) numberTranslator.setPattern(descriptor.getFormat());
041                            return numberTranslator;
042                    } else if (descriptor.isDate())
043                    {
044                            DateTranslator dateTranslator = new DateTranslator();
045                            if (descriptor.getFormat() != null) dateTranslator.setPattern(descriptor.getFormat());
046                            return dateTranslator;
047                    } else
048                    {
049                            return new StringTranslator();
050                    }
051    
052            }
053    }