Subversion Repositories SmartDukaan

Rev

Rev 45 | Rev 51 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

/**
 * 
 */
package in.shop2020.metamodel.util;

import java.util.ArrayList;
import java.util.List;

import in.shop2020.metamodel.definitions.Catalog;
import in.shop2020.metamodel.definitions.DefinitionsContainer;
import in.shop2020.metamodel.definitions.SlideDefinition;
import in.shop2020.metamodel.definitions.SlideFeatureDefinition;

/**
 * @author naveen
 *
 */
public class ExpandedSlideDefinition extends SlideDefinition {

        /**
         * 
         */
        private static final long serialVersionUID = 1L;
        
        /**
         * 
         */
        private List<ExpandedSlideFeatureDefinition> 
                expandedSlideFeatureDefinitions;
        
        /**
         * 
         */
        private List<ExpandedSlideDefinition> expandedChildrentSlideDefinitions;
        
        /**
         * @param newID
         * @param label
         * @throws Exception 
         */
        public ExpandedSlideDefinition(SlideDefinition slideDefinition) 
                throws Exception {
                super(slideDefinition.getID(), slideDefinition.getLabel());

                // Copy rest of the properties
                this.setChildrenSlideDefinitionIDs(
                                slideDefinition.getChildrenSlideDefinitionIDs());
                
                this.setDescription(slideDefinition.getDescription());
                this.setLabel(slideDefinition.getLabel());
                
                this.setSlideFeatureDefinitions(
                                slideDefinition.getSlideFeatureDefinitions());
                
                // Expand SlideFeatureDefinition
                List<SlideFeatureDefinition> slideFeatureDefs = 
                        slideDefinition.getSlideFeatureDefinitions();
                
                if(slideFeatureDefs != null) {
                        this.expandedSlideFeatureDefinitions = 
                                new ArrayList<ExpandedSlideFeatureDefinition>();
                        
                        for(SlideFeatureDefinition slideFeatureDef : slideFeatureDefs) {
                                this.expandedSlideFeatureDefinitions.add(
                                                new ExpandedSlideFeatureDefinition(slideFeatureDef));
                        }
                }
                
                // Expand children slides
                DefinitionsContainer defs = 
                        Catalog.getInstance().getDefinitionsContainer();
                
                List<Long> childrenSlideIDs = this.getChildrenSlideDefinitionIDs();
                if(childrenSlideIDs != null) {
                        this.expandedChildrentSlideDefinitions = 
                                new ArrayList<ExpandedSlideDefinition>();
                        
                        for(Long childSlideID : childrenSlideIDs) {
                                SlideDefinition childSlideDef = 
                                        defs.getSlideDefinition(childSlideID.longValue());
                                
                                this.expandedChildrentSlideDefinitions.add(
                                                new ExpandedSlideDefinition(childSlideDef));
                        }
                }
        }

        /**
         * @return the expandedSlideFeatureDefinitions
         */
        public List<ExpandedSlideFeatureDefinition> 
                getExpandedSlideFeatureDefinitions() {
                return expandedSlideFeatureDefinitions;
        }

        /**
         * @return the expandedChildrentSlideDefinitions
         */
        public List<ExpandedSlideDefinition> getExpandedChildrentSlideDefinitions(){
                return expandedChildrentSlideDefinitions;
        }

        /* (non-Javadoc)
         * @see java.lang.Object#toString()
         */
        @Override
        public String toString() {
                return "ExpandedSlideDefinition [expandedSlideFeatureDefinitions="
                                + expandedSlideFeatureDefinitions
                                + ", getChildrenSlideDefinitionIDs()="
                                + getChildrenSlideDefinitionIDs() + ", getDescription()="
                                + getDescription() + ", getLabel()=" + getLabel()
                                + ", getSlideFeatureDefinitions()="
                                + getSlideFeatureDefinitions()
                                + ", getExpandedChildrentSlideDefinitions()="
                                + getExpandedChildrentSlideDefinitions() + 
                                ", getID()=" + getID() + "]";
        }

}