Subversion Repositories SmartDukaan

Rev

Rev 25 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

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

import in.shop2020.metamodel.core.Bullet;
import in.shop2020.metamodel.core.CompositeDataObject;
import in.shop2020.metamodel.core.EnumDataObject;
import in.shop2020.metamodel.definitions.BulletDefinition;
import in.shop2020.metamodel.definitions.Catalog;
import in.shop2020.metamodel.definitions.DefinitionsContainer;
import in.shop2020.metamodel.definitions.EnumValue;

/**
 * @author naveen
 *
 */
public class ExpandedBullet extends Bullet {
        private ExpandedBulletDefinition expandedBulletDefinition;
        private ExpandedEnumDataObject expandedEnumDataObject;
        private boolean primitive;
        private boolean enumerated;
        private boolean composite;
        
        
        /**
         * 
         */
        private static final long serialVersionUID = 1L;

        /**
         * @param dataObject
         * @throws Exception 
         */
        public ExpandedBullet(Bullet bullet, BulletDefinition bulletDefinition) 
                throws Exception {
                super(bullet.getDataObject());
                
                // Copy rest of the properties
                super.setFreeformContent(bullet.getFreeformContent());

                this.expandedBulletDefinition = 
                        new ExpandedBulletDefinition(bulletDefinition);
                
                // Expand enum data object
                if(super.getDataObject() instanceof EnumDataObject) {
                        this.enumerated = true;
                        
                        EnumDataObject enumDataObject = 
                                (EnumDataObject)bullet.getDataObject();
                        
                        DefinitionsContainer defs = 
                                Catalog.getInstance().getDefinitionsContainer();
                        
                        EnumValue enumValue = 
                                defs.getEnumValue(enumDataObject.getEnumValueID());
                        
                        this.expandedEnumDataObject = new ExpandedEnumDataObject(
                                        enumDataObject, enumValue);
                }
                else if(super.getDataObject() instanceof CompositeDataObject) {
                        this.composite = true;
                }
                else {
                        this.primitive = true;
                }
        }

        /**
         * @return the expandedEnumDataObject
         */
        public ExpandedEnumDataObject getExpandedEnumDataObject() {
                return expandedEnumDataObject;
        }
        
        /**
         * @return the expandedBulletDefinition
         */
        public ExpandedBulletDefinition getExpandedBulletDefinition() {
                return expandedBulletDefinition;
        }

        /**
         * @return the primitive
         */
        public boolean isPrimitive() {
                return primitive;
        }

        /**
         * @return the enumerated
         */
        public boolean isEnumerated() {
                return enumerated;
        }

        /**
         * @return the composite
         */
        public boolean isComposite() {
                return composite;
        }

}