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
 
31
		List<Long> requiredSlideDefIDs = 
310 rajveer 32
			CreationUtils.getSlideSequence(entity.getID(), entity.getCategoryID());
250 naveen 33
 
34
		if(requiredSlideDefIDs == null) {
35
			requiredSlideDefIDs = new ArrayList<Long>();
36
 
37
			List<CategorySlideDefinition> catSlideDefs = 
38
				Catalog.getInstance().getDefinitionsContainer().
39
				getCategorySlideDefinitions(entity.getCategoryID());
40
 
41
			for(CategorySlideDefinition catSlideDef : catSlideDefs) {
42
				if(catSlideDef.getEditorialImportance() == 
43
					EditorialImportance.MANDATORY) {
44
					requiredSlideDefIDs.add(
45
							new Long(catSlideDef.getSlideDefintionID()));
46
				}
47
			}
48
		}
49
 
50
		for(Long requiredSlideDefID : requiredSlideDefIDs) {
51
			if(!slideDefIDs.contains(requiredSlideDefID)) {
52
				return false;
53
			}
54
		}
55
 
56
		// Validate required features per slide
57
		// TODO
58
 
59
		// Validate bullets per feature
60
		// TODO
61
		return true;
62
	}
63
 
64
	/**
65
	 * 
66
	 * @param entity
67
	 * @return
68
	 */
69
	private List<Long> getSlideDefinitionIDs(Entity entity) {
70
		List<Long> slideDefIDs = new ArrayList<Long>();
71
		List<Slide> slides = entity.getSlides();
72
		if(slides == null) {
73
			return null;
74
		}
75
 
76
		for(Slide slide : slides) {
77
			slideDefIDs.add(new Long(slide.getSlideDefinitionID()));
78
		}
79
 
80
		return slideDefIDs;
81
	}
82
}