Subversion Repositories SmartDukaan

Rev

Rev 1061 | 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.FacetDefinition;
import in.shop2020.metamodel.definitions.FacetSlideDefinition;
import in.shop2020.metamodel.definitions.FeatureDefinition;
import in.shop2020.metamodel.definitions.RuleDefinition;
import in.shop2020.metamodel.definitions.SlideDefinition;

/**
 * Utility class to support FacetSlideDefinition class. All references are expanded 
 * into respective detail objects
 * 
 * @author rajveer
 *
 */
public class ExpandedFacetSlideDefinition extends FacetSlideDefinition {
        
        /**
         * Expanded slide definition ID 
         */
        private SlideDefinition slideDefinition;

        /**
         * Expanded IR Data Rule ID
         */
        private RuleDefinition irDataRuleDefinition;
        
        /**
         * Expanded IR Meta Data Rule ID
         */
        private RuleDefinition irMetaDataRuleDefinition;

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

        /**
         * Constructs Expanded version from FacetDefintion instance
         * 
         * @param facetSlideDefinition
         * @throws Exception 
         */
        public ExpandedFacetSlideDefinition(FacetSlideDefinition facetSlideDefinition) 
                throws Exception {
                super(facetSlideDefinition.getSlideDefinitionID(), facetSlideDefinition.getIRMetaDataRuleID(), facetSlideDefinition.getIRDataRuleID());
                
                // Add expanded objects
                DefinitionsContainer defs = 
                        Catalog.getInstance().getDefinitionsContainer();
                
                
                // SlideDefinition
                if(facetSlideDefinition.getSlideDefinitionID() != 0L) {
                        SlideDefinition slideDefinition = 
                                defs.getSlideDefinition(facetSlideDefinition.getSlideDefinitionID());
                        
                        this.setSlideDefinition(slideDefinition);
                }
                
                // IrDataRuleID
                RuleDefinition irDataRuleDef = defs.getIrDataRuleDefinition(
                                facetSlideDefinition.getIRDataRuleID());
                
                this.setIrDataRuleDefinition(irDataRuleDef);
                
                // IrMetaDataRuleID
                RuleDefinition irMetaDataRuleDef = defs.getIrMetaDataRuleDefinition(
                                facetSlideDefinition.getIRMetaDataRuleID());
                
                this.setIrMetadataRuleDefinition(irMetaDataRuleDef);
        }



        /**
         * @param slideDefinition the slideDefinition to set
         */
        public void setSlideDefinition(SlideDefinition slideDefinition) {
                this.slideDefinition = slideDefinition;
        }

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

        /**
         * @param irdataRuleDefinition the irdataRuleDefinition to set
         */
        public void setIrDataRuleDefinition(RuleDefinition irDataRuleDefinition) {
                this.irDataRuleDefinition = irDataRuleDefinition;
        }

        /**
         * @return the irdataRuleDefinition
         */
        public RuleDefinition getIrDataRuleDefinition() {
                return irDataRuleDefinition;
        }

        /**
         * @param irmetadataRuleDefinition the irmetadataRuleDefinition to set
         */
        public void setIrMetadataRuleDefinition(RuleDefinition irmetadataRuleDefinition) {
                this.irMetaDataRuleDefinition = irmetadataRuleDefinition;
        }

        /**
         * @return the irmetadataRuleDefinition
         */
        public RuleDefinition getIrMetadataRuleDefinition() {
                return irMetaDataRuleDefinition;
        }

}