Subversion Repositories SmartDukaan

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

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