Subversion Repositories SmartDukaan

Rev

Rev 5260 | 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;
19150 amit.gupta 4
import in.shop2020.metamodel.core.Media;
250 naveen 5
import in.shop2020.metamodel.core.Slide;
6
import in.shop2020.metamodel.definitions.Catalog;
7
import in.shop2020.metamodel.definitions.CategorySlideDefinition;
8
import in.shop2020.metamodel.definitions.EditorialImportance;
9
 
5260 amit.gupta 10
import java.util.ArrayList;
11
import java.util.List;
12
 
13
import org.apache.commons.logging.Log;
14
import org.apache.commons.logging.LogFactory;
15
 
250 naveen 16
/**
17
 * 
18
 * @author naveen
19
 *
20
 */
21
public class ContentValidator {
22
	/**
23
	 * 
24
	 * @param entity
25
	 * @return
26
	 * @throws Exception 
27
	 */
5260 amit.gupta 28
 
29
	private static Log log = LogFactory.getLog(ContentValidator.class);
250 naveen 30
	public boolean validate(Entity entity) throws Exception {
31
		List<Long> slideDefIDs = this.getSlideDefinitionIDs(entity);
32
 
33
		if(slideDefIDs == null) {
34
			return false;
35
		}
36
 
1051 rajveer 37
		List<Long> requiredSlideDefIDs = entity.getSlideSequence();
250 naveen 38
 
39
		if(requiredSlideDefIDs == null) {
40
			requiredSlideDefIDs = new ArrayList<Long>();
41
 
42
			List<CategorySlideDefinition> catSlideDefs = 
43
				Catalog.getInstance().getDefinitionsContainer().
44
				getCategorySlideDefinitions(entity.getCategoryID());
45
 
46
			for(CategorySlideDefinition catSlideDef : catSlideDefs) {
47
				if(catSlideDef.getEditorialImportance() == 
48
					EditorialImportance.MANDATORY) {
49
					requiredSlideDefIDs.add(
50
							new Long(catSlideDef.getSlideDefintionID()));
51
				}
52
			}
53
		}
54
 
55
		for(Long requiredSlideDefID : requiredSlideDefIDs) {
56
			if(!slideDefIDs.contains(requiredSlideDefID)) {
5260 amit.gupta 57
				log.info("Could not find required slide: -------- " + requiredSlideDefID);
250 naveen 58
				return false;
59
			}
60
		}
61
 
19150 amit.gupta 62
		List<Slide> slides = entity.getSlides();
63
		Media defaultMedia = null; 
64
		if(slides!=null){
65
			boolean summarySlide = false;
66
			for(Slide slide : slides){
67
				if (slide != null){
68
					if(slide.getSlideDefinitionID() == 130054l){
69
						summarySlide = true;
70
						if(slide.getFreeformContent().getMedias()==null){
71
							log.info("No media in summary for entity:" + entity.getID());
72
							return false;
73
						}
74
						defaultMedia = slide.getFreeformContent().getMedias().get("default");
75
						if(defaultMedia==null){
76
							log.info("Could not find default image in summary for entity:" + entity.getID());
77
							return false;
78
						}
79
					}
80
				}
81
			}
82
			if(!summarySlide) {
83
				log.info("Summary Slide is missing for entity: " + entity.getID());
84
				return false;
85
			}
86
		}
250 naveen 87
 
88
		return true;
89
	}
90
 
91
	/**
92
	 * 
93
	 * @param entity
94
	 * @return
95
	 */
96
	private List<Long> getSlideDefinitionIDs(Entity entity) {
97
		List<Long> slideDefIDs = new ArrayList<Long>();
98
		List<Slide> slides = entity.getSlides();
99
		if(slides == null) {
100
			return null;
101
		}
102
 
103
		for(Slide slide : slides) {
104
			slideDefIDs.add(new Long(slide.getSlideDefinitionID()));
105
		}
106
 
107
		return slideDefIDs;
108
	}
109
}