Rev 5260 | Blame | Compare with Previous | Last modification | View Log | RSS feed
package in.shop2020.creation.util;import in.shop2020.metamodel.core.Entity;import in.shop2020.metamodel.core.Media;import in.shop2020.metamodel.core.Slide;import in.shop2020.metamodel.definitions.Catalog;import in.shop2020.metamodel.definitions.CategorySlideDefinition;import in.shop2020.metamodel.definitions.EditorialImportance;import java.util.ArrayList;import java.util.List;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;/**** @author naveen**/public class ContentValidator {/**** @param entity* @return* @throws Exception*/private static Log log = LogFactory.getLog(ContentValidator.class);public boolean validate(Entity entity) throws Exception {List<Long> slideDefIDs = this.getSlideDefinitionIDs(entity);if(slideDefIDs == null) {return false;}List<Long> requiredSlideDefIDs = entity.getSlideSequence();if(requiredSlideDefIDs == null) {requiredSlideDefIDs = new ArrayList<Long>();List<CategorySlideDefinition> catSlideDefs =Catalog.getInstance().getDefinitionsContainer().getCategorySlideDefinitions(entity.getCategoryID());for(CategorySlideDefinition catSlideDef : catSlideDefs) {if(catSlideDef.getEditorialImportance() ==EditorialImportance.MANDATORY) {requiredSlideDefIDs.add(new Long(catSlideDef.getSlideDefintionID()));}}}for(Long requiredSlideDefID : requiredSlideDefIDs) {if(!slideDefIDs.contains(requiredSlideDefID)) {log.info("Could not find required slide: -------- " + requiredSlideDefID);return false;}}List<Slide> slides = entity.getSlides();Media defaultMedia = null;if(slides!=null){boolean summarySlide = false;for(Slide slide : slides){if (slide != null){if(slide.getSlideDefinitionID() == 130054l){summarySlide = true;if(slide.getFreeformContent().getMedias()==null){log.info("No media in summary for entity:" + entity.getID());return false;}defaultMedia = slide.getFreeformContent().getMedias().get("default");if(defaultMedia==null){log.info("Could not find default image in summary for entity:" + entity.getID());return false;}}}}if(!summarySlide) {log.info("Summary Slide is missing for entity: " + entity.getID());return false;}}return true;}/**** @param entity* @return*/private List<Long> getSlideDefinitionIDs(Entity entity) {List<Long> slideDefIDs = new ArrayList<Long>();List<Slide> slides = entity.getSlides();if(slides == null) {return null;}for(Slide slide : slides) {slideDefIDs.add(new Long(slide.getSlideDefinitionID()));}return slideDefIDs;}}