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