Subversion Repositories SmartDukaan

Rev

Rev 323 | Blame | Compare with Previous | Last modification | View Log | RSS feed

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

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

/**
 * Utility class that supports CategorySlideDefinition class. All related 
 * objects are fetched from database and aggregated here.
 *
 * @author naveen
 *
 */
public class ExpandedCategorySlideDefinition extends CategorySlideDefinition {
        
        /**
         * Expanded from SlideDefinition ID
         * 
         */
        private ExpandedSlideDefinition expandedSlideDefinition;

        /**
         * 
         */
        private static final long serialVersionUID = 1L;

        /**
         * Takes CategorySlideDefinition object as input and converts all references 
         * into corresponding detail objects
         * 
         * @param slideDefinitionID Slide Definition ID
         * @throws Exception 
         */
        public ExpandedCategorySlideDefinition(
                        CategorySlideDefinition categorySlideDefinition) throws Exception {
                
                super(categorySlideDefinition.getSlideDefintionID());
                
                // Copy rest of the properties
                this.setDescription(categorySlideDefinition.getDescription());
                this.setEditorialImportance(
                                categorySlideDefinition.getEditorialImportance());
                
                // Expand Slide Definition
                DefinitionsContainer defs = 
                        Catalog.getInstance().getDefinitionsContainer();
                
                SlideDefinition slideDef = 
                        defs.getSlideDefinition(super.getSlideDefintionID());
                
                this.expandedSlideDefinition = new ExpandedSlideDefinition(slideDef);
        }

        /**
         * @return the expandedSlideDefinition Expanded Slide Definition object
         */
        public ExpandedSlideDefinition getExpandedSlideDefinition() {
                return expandedSlideDefinition;
        }

        /* (non-Javadoc)
         * @see java.lang.Object#toString()
         */
        @Override
        public String toString() {
                return "ExpandedCategorySlideDefinition [expandedSlideDefinition="
                                + expandedSlideDefinition + ", getDescription()="
                                + getDescription() + ", getEditorialImportance()="
                                + getEditorialImportance() + ", getSlideDefintionID()="
                                + getSlideDefintionID() + "]";
        }

}