Rev 3887 | Blame | Compare with Previous | Last modification | View Log | RSS feed
/****/package in.shop2020.metamodel.util;import in.shop2020.metamodel.core.Feature;import in.shop2020.metamodel.core.Slide;import in.shop2020.metamodel.definitions.Catalog;import in.shop2020.metamodel.definitions.DefinitionsContainer;import in.shop2020.metamodel.definitions.SlideDefinition;import java.util.ArrayList;import java.util.LinkedHashMap;import java.util.List;import java.util.Map;/*** Utility class that supports core Slide class. All related* objects are fetched from database and aggregated here.** @author naveen**/public class ExpandedSlide extends Slide {/*** Expanded from SlideDefinition ID*/private SlideDefinition slideDefinition;/*** Expanded from list of children Slide IDs*/private List<ExpandedSlide> expandedChildrenSlides;/*** Expanded from Feature objects, Map for faster lookups*/private Map<Long, ExpandedFeature> expandedFeatures;/****/private static final long serialVersionUID = 1L;/*** Takes Slide object as input and converts all references* into corresponding detail objects** @param slide* @throws Exception*/public ExpandedSlide(Slide slide) throws Exception {super(slide.getSlideDefinitionID());// Copy rest of the propertiessuper.setChildrenSlides(slide.getChildrenSlides());super.setFeatures(slide.getFeatures());super.setFreeformContent(slide.getFreeformContent());//super.setBorrowedCategoryID(slide.getBorrowedCategoryID());// Expand slide definition idDefinitionsContainer defs =Catalog.getInstance().getDefinitionsContainer();this.slideDefinition =defs.getSlideDefinition(slide.getSlideDefinitionID());// Expand children slidesList<Slide> childrenSlides = slide.getChildrenSlides();if(childrenSlides != null) {this.expandedChildrenSlides = new ArrayList<ExpandedSlide>();for(Slide childSlide : childrenSlides) {ExpandedSlide expChildSlide = new ExpandedSlide(childSlide);this.expandedChildrenSlides.add(expChildSlide);}}// Expand featuresList<Feature> features = slide.getFeatures();if(features != null) {this.expandedFeatures = new LinkedHashMap<Long, ExpandedFeature>();for(Feature feature : features) {ExpandedFeature expFeature = new ExpandedFeature(feature);this.expandedFeatures.put(expFeature.getFeatureDefinitionID(), expFeature);}}}/*** @return the slideDefinition Slide Definition object*/public SlideDefinition getSlideDefinition() {return slideDefinition;}/*** @return the expandedChildrenSlides List of children ExpandedSlide objects*/public List<ExpandedSlide> getExpandedChildrenSlides() {return expandedChildrenSlides;}/*** @return the expandedFeatures*/public List<ExpandedFeature> getExpandedFeatures() {if (expandedFeatures == null) {return null;}return new ArrayList<ExpandedFeature>(expandedFeatures.values());}/*** @param featureId id of the given feature to be looked up in the slide* @return the expandedFeature*/public ExpandedFeature getExpandedFeature(long featureId) {return expandedFeatures.get(featureId);}/* (non-Javadoc)* @see java.lang.Object#toString()*/@Overridepublic String toString() {return "ExpandedSlide [expandedChildrenSlides="+ expandedChildrenSlides + ", expandedFeatures="+ expandedFeatures + ", slideDefinition=" + slideDefinition+ ", toString()=" + super.toString() + "]";}}