KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > infoglue > cms > util > validators > ContentVersionValidator


1 package org.infoglue.cms.util.validators;
2
3 import java.io.ByteArrayInputStream JavaDoc;
4 import java.io.InputStream JavaDoc;
5 import java.util.Iterator JavaDoc;
6 import java.util.Set JavaDoc;
7
8 import org.apache.commons.validator.Field;
9 import org.apache.commons.validator.Msg;
10 import org.apache.commons.validator.Validator;
11 import org.apache.commons.validator.ValidatorResources;
12 import org.apache.commons.validator.ValidatorResult;
13 import org.apache.commons.validator.ValidatorResults;
14 import org.infoglue.cms.entities.content.ContentVersionVO;
15 import org.infoglue.cms.entities.management.ContentTypeDefinitionVO;
16 import org.infoglue.cms.exception.ConstraintException;
17 import org.infoglue.cms.util.ConstraintExceptionBuffer;
18
19 public class ContentVersionValidator {
20     /**
21      *
22      */

23     public ContentVersionValidator() {}
24
25     /**
26      *
27      */

28     public ConstraintExceptionBuffer validate(ContentTypeDefinitionVO contentType, ContentVersionVO contentVersionVO) {
29         try {
30             ContentVersionBean bean = new ContentVersionBean(contentType, contentVersionVO);
31             ValidatorResources resources = loadResources(contentType);
32             Validator validator = new Validator(resources, "requiredForm");
33             validator.setOnlyReturnErrors(true);
34             validator.setParameter(Validator.BEAN_PARAM, bean);
35             ValidatorResults results = validator.validate();
36             if(results.isEmpty())
37                 return new ConstraintExceptionBuffer();
38             else
39                 return populateConstraintExceptionBuffer(results);
40         } catch(Exception JavaDoc e) {
41             return new ConstraintExceptionBuffer();
42         }
43     }
44
45     /**
46      *
47      */

48     private static ConstraintExceptionBuffer populateConstraintExceptionBuffer(ValidatorResults results) {
49         ConstraintExceptionBuffer ceb = new ConstraintExceptionBuffer();
50         Set JavaDoc s = results.getPropertyNames();
51         for(Iterator JavaDoc i=s.iterator(); i.hasNext(); ) {
52             ValidatorResult r = results.getValidatorResult((String JavaDoc) i.next());
53             Field field = r.getField();
54             String JavaDoc name = "ContentVersion" + "." + field.getKey();
55             for(Iterator JavaDoc messages=field.getMessages().values().iterator(); messages.hasNext();) {
56                 Msg m = (Msg) messages.next();
57                 ceb.add(new ConstraintException(name, m.getKey()));
58             }
59         }
60         return ceb;
61     }
62
63     /**
64      *
65      */

66     private ValidatorResources loadResources(ContentTypeDefinitionVO contentType) {
67         try {
68             InputStream JavaDoc is = readValidatorXML(contentType);
69             return new ValidatorResources(is);
70         } catch(Exception JavaDoc e) {
71             System.out.println(e.toString());
72         }
73         return null;
74     }
75     
76     /**
77      * TODO: remove - read from ContentTypeDefinition
78      */

79     private InputStream JavaDoc readValidatorXML(ContentTypeDefinitionVO contentTypeDefinition) throws Exception JavaDoc
80     {
81         String JavaDoc xml = contentTypeDefinition.getSchemaValue();
82         String JavaDoc validationSchema = xml.substring(xml.indexOf("<form-validation>"), xml.indexOf("</form-validation>") + 18);
83         
84         return new ByteArrayInputStream JavaDoc(validationSchema.getBytes("UTF-8"));
85     }
86 }
87
Popular Tags