Subversion Repositories SmartDukaan

Rev

Rev 70 | 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.CMPRuleDefinition;
import in.shop2020.metamodel.definitions.CMPSlideRuleDefinition;
import in.shop2020.metamodel.definitions.Catalog;
import in.shop2020.metamodel.definitions.DefinitionsContainer;
import in.shop2020.metamodel.definitions.SlideDefinition;

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

        /**
         * 
         */
        private static final long serialVersionUID = 1L;
        
        /**
         * Expanded from SlideDefinition ID
         */
        private SlideDefinition slideDefinition;
        
        /**
         * Expanded from RuleDefinition ID
         */
        private CMPRuleDefinition cmpRuleDefinition;

        /**
         * Expands references in CMPSlideRuleDefinition
         * 
         * @param cmpSlideRuleDefinition
         * @throws Exception 
         */
        public ExpandedCMPSlideRuleDefinition(
                        CMPSlideRuleDefinition cmpSlideRuleDefinition) throws Exception {
                super(cmpSlideRuleDefinition.getSlideDefinitionID(), 
                                cmpSlideRuleDefinition.getRuleDefinitionID());
                
                long slideDefinitionID = cmpSlideRuleDefinition.getSlideDefinitionID();
                long ruleDefinitionID = cmpSlideRuleDefinition.getRuleDefinitionID();
                
                // Copy rest of the properties
                this.setDescription(cmpSlideRuleDefinition.getDescription());
                
                DefinitionsContainer defs = 
                        Catalog.getInstance().getDefinitionsContainer();
                
                this.slideDefinition = defs.getSlideDefinition(slideDefinitionID);
                this.cmpRuleDefinition = defs.getComparisonRuleDefinition(
                                ruleDefinitionID);
        }

        /**
         * @return the slideDefinition
         */
        public SlideDefinition getSlideDefinition() {
                return slideDefinition;
        }

        /**
         * @return the cmpRuleDefinition
         */
        public CMPRuleDefinition getCMPRuleDefinition() {
                return cmpRuleDefinition;
        }

}