Subversion Repositories SmartDukaan

Rev

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

/**
 * Utility class to support FacetRuleDefinition
 * 
 * @author naveen
 *
 */
public class ExpandedFacetRuleDefinition extends FacetRuleDefinition {
        
        /**
         * Expanded Facet Definition ID
         */
        private FacetDefinition facetDefinition;
        
        /**
         * Expanded IR Data Rule Definition ID 
         */
        private RuleDefinition irDataRuleDefinition;
        
        /**
         * Expanded Feature Definition ID
         */
        private FeatureDefinition featureDefinition;
        
        /**
         * Expanded Slide Definition ID
         */
        private SlideDefinition slideDefinition;

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

        /**
         * Expands all references
         * 
         * @param facetDefinitionID
         * @param irDataRuleID
         * @throws Exception 
         */
        public ExpandedFacetRuleDefinition(FacetRuleDefinition facetRuleDefinition)
                throws Exception{
                super(facetRuleDefinition.getFacetDefinitionID(), 
                                facetRuleDefinition.getIRDataRuleID());
                
                // Copy rest of the attributes
                this.setDescription(facetRuleDefinition.getDescription());
                
                this.setFacetDefinitionID(facetRuleDefinition.getFacetDefinitionID());
                
                this.setFeatureDefinitionID(
                                facetRuleDefinition.getFeatureDefinitionID());
                
                this.setSlideDefinitionID(facetRuleDefinition.getSlideDefinitionID());
                
                // Expand
                DefinitionsContainer defs = 
                        Catalog.getInstance().getDefinitionsContainer();
                
                this.facetDefinition = defs.getFacetDefinition(
                                facetRuleDefinition.getFacetDefinitionID());
                
                this.irDataRuleDefinition = 
                        defs.getIrDataRuleDefinition(facetRuleDefinition.getIRDataRuleID());
                
                if(facetRuleDefinition.getFeatureDefinitionID() != 0L) {
                        this.featureDefinition = defs.getFeatureDefinition(
                                        facetRuleDefinition.getFeatureDefinitionID());
                }
                
                if(facetRuleDefinition.getSlideDefinitionID() != 0L) {
                        this.slideDefinition = defs.getSlideDefinition(
                                        facetRuleDefinition.getSlideDefinitionID());
                }
        }

        /**
         * Expanded IR Data Rule Definition ID to set
         * 
         * @param irDataRule the irDataRule to set
         */
        public void setIRDataRuleDefinition(RuleDefinition irDataRuleDefinition) {
                this.irDataRuleDefinition = irDataRuleDefinition;
        }

        /**
         * Returns expanded IR Data Rule Definition ID
         *  
         * @return the irDataRule
         */
        public RuleDefinition getIRDataRuleDefinition() {
                return irDataRuleDefinition;
        }

        /**
         * Expanded Feature Definition ID to set
         * 
         * @param featureDefinition the featureDefinition to set
         */
        public void setFeatureDefinition(FeatureDefinition featureDefinition) {
                this.featureDefinition = featureDefinition;
        }

        /**
         * Returns Expanded Feature Definition ID
         * 
         * @return the featureDefinition
         */
        public FeatureDefinition getFeatureDefinition() {
                return featureDefinition;
        }

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

        /**
         * Returns expanded Slide Definition ID
         *  
         * @return the slideDefinition
         */
        public SlideDefinition getSlideDefinition() {
                return slideDefinition;
        }

        /**
         * Expanded Facet Definition ID to set
         * 
         * @param facetDefinition the facetDefinition to set
         */
        public void setFacetDefinition(FacetDefinition facetDefinition) {
                this.facetDefinition = facetDefinition;
        }

        /**
         * Returns Expanded Facet Definition ID
         * 
         * @return the facetDefinition
         */
        public FacetDefinition getFacetDefinition() {
                return facetDefinition;
        }

        /* (non-Javadoc)
         * @see java.lang.Object#toString()
         */
        @Override
        public String toString() {
                return "ExpandedFacetRuleDefinition [facetDefinition="
                                + facetDefinition + ", featureDefinition=" + featureDefinition
                                + ", irDataRuleDefinition=" + irDataRuleDefinition
                                + ", slideDefinition=" + slideDefinition
                                + ", getDescription()=" + getDescription()
                                + ", getFacetDefinitionID()=" + getFacetDefinitionID()
                                + ", getFeatureDefinitionID()=" + getFeatureDefinitionID()
                                + ", getIRDataRuleID()=" + getIRDataRuleID()
                                + ", getSlideDefinitionID()=" + getSlideDefinitionID() + "]";
        }

}