Subversion Repositories SmartDukaan

Rev

Rev 51 | Go to most recent revision | 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.DefinitionsContainer;
import in.shop2020.metamodel.definitions.FeatureDefinition;
import in.shop2020.metamodel.definitions.SlideFeatureDefinition;

/**
 * Utility class that supports SlideFeatureDefinition class. All related 
 * objects are fetched from database and aggregated here.
 * 
 * @author naveen
 *
 */
public class ExpandedSlideFeatureDefinition extends SlideFeatureDefinition {

        /**
         * 
         */
        private static final long serialVersionUID = 1L;
        
        /**
         * Expanded from FeatureDefinition ID
         */
        private ExpandedFeatureDefinition expandedFeatureDefinition;

        /**
         * Takes slideFeatureDefinition object as input and converts all references 
         * into corresponding detail objects
         * 
         * @param slideFeatureDefinition SlideFeatureDefinition object
         * @throws Exception 
         */
        public ExpandedSlideFeatureDefinition(
                        SlideFeatureDefinition slideFeatureDefinition) throws Exception {
                
                super(slideFeatureDefinition.getFeatureDefintionID());

                // Copy rest of the properties
                this.setDescription(slideFeatureDefinition.getDescription());
                this.setEditorialImportance(
                                slideFeatureDefinition.getEditorialImportance());
                
                // Expand FeatureDefinition
                DefinitionsContainer defs = 
                        Catalog.getInstance().getDefinitionsContainer();
                
                FeatureDefinition featureDefinition = defs.getFeatureDefinition(
                                this.getFeatureDefintionID());
                
                this.expandedFeatureDefinition = 
                        new ExpandedFeatureDefinition(featureDefinition);
        }

        /**
         * @return the expandedFeatureDefinition ExpandedFeatureDefinition object
         */
        public ExpandedFeatureDefinition getExpandedFeatureDefinition() {
                return expandedFeatureDefinition;
        }

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

}