Subversion Repositories SmartDukaan

Rev

Rev 1081 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
250 naveen 1
package in.shop2020.creation.util;
2
 
3
import in.shop2020.metamodel.core.Entity;
4
import in.shop2020.metamodel.core.Slide;
5
import in.shop2020.metamodel.definitions.Catalog;
6
import in.shop2020.metamodel.definitions.CategorySlideDefinition;
7
import in.shop2020.metamodel.definitions.EditorialImportance;
8
 
5260 amit.gupta 9
import java.util.ArrayList;
10
import java.util.List;
11
 
12
import org.apache.commons.logging.Log;
13
import org.apache.commons.logging.LogFactory;
14
 
250 naveen 15
/**
16
 * 
17
 * @author naveen
18
 *
19
 */
20
public class ContentValidator {
21
	/**
22
	 * 
23
	 * @param entity
24
	 * @return
25
	 * @throws Exception 
26
	 */
5260 amit.gupta 27
 
28
	private static Log log = LogFactory.getLog(ContentValidator.class);
250 naveen 29
	public boolean validate(Entity entity) throws Exception {
30
		List<Long> slideDefIDs = this.getSlideDefinitionIDs(entity);
31
 
32
		if(slideDefIDs == null) {
33
			return false;
34
		}
35
 
1051 rajveer 36
		List<Long> requiredSlideDefIDs = entity.getSlideSequence();
250 naveen 37
 
38
		if(requiredSlideDefIDs == null) {
39
			requiredSlideDefIDs = new ArrayList<Long>();
40
 
41
			List<CategorySlideDefinition> catSlideDefs = 
42
				Catalog.getInstance().getDefinitionsContainer().
43
				getCategorySlideDefinitions(entity.getCategoryID());
44
 
45
			for(CategorySlideDefinition catSlideDef : catSlideDefs) {
46
				if(catSlideDef.getEditorialImportance() == 
47
					EditorialImportance.MANDATORY) {
48
					requiredSlideDefIDs.add(
49
							new Long(catSlideDef.getSlideDefintionID()));
50
				}
51
			}
52
		}
53
 
54
		for(Long requiredSlideDefID : requiredSlideDefIDs) {
55
			if(!slideDefIDs.contains(requiredSlideDefID)) {
5260 amit.gupta 56
				log.info("Could not find required slide: -------- " + requiredSlideDefID);
250 naveen 57
				return false;
58
			}
59
		}
60
 
61
		// Validate required features per slide
62
		// TODO
63
 
64
		// Validate bullets per feature
65
		// TODO
66
		return true;
67
	}
68
 
69
	/**
70
	 * 
71
	 * @param entity
72
	 * @return
73
	 */
74
	private List<Long> getSlideDefinitionIDs(Entity entity) {
75
		List<Long> slideDefIDs = new ArrayList<Long>();
76
		List<Slide> slides = entity.getSlides();
77
		if(slides == null) {
78
			return null;
79
		}
80
 
81
		for(Slide slide : slides) {
82
			slideDefIDs.add(new Long(slide.getSlideDefinitionID()));
83
		}
84
 
85
		return slideDefIDs;
86
	}
87
}