Subversion Repositories SmartDukaan

Rev

Rev 323 | Blame | Compare with Previous | Last modification | View Log | RSS feed

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

import java.util.ArrayList;
import java.util.List;

/**
 * Defines composite type of data object. 
 * @author naveen
 *
 */
public class CompositeDefinition extends DatatypeDefinition {

        /**
         * 
         */
        private static final long serialVersionUID = 1L;
        
        /**
         * Character or String used to separate different parts
         */
        private String separator;
        
        /**
         * List of parts
         */
        private List<CompositePartDefinition> compositePartDefinitions;
        
        /**
         * 
         * @param newID 
         * @param name
         * @param separator
         */
        public CompositeDefinition(long newID, String name, String separator) {
                super(newID, name);
                this.separator = separator;
        }

        /**
         * @return the separator
         */
        public String getSeparator() {
                return separator;
        }

        /**
         * Handy method to add new parts to existing composite definition
         * 
         * @param partDefinition Composite Part Definition
         */
        public void addCompositePartDefinition(
                        CompositePartDefinition partDefinition) {
                
                if(this.compositePartDefinitions == null) {
                        this.compositePartDefinitions = 
                                new ArrayList<CompositePartDefinition>();
                }
                
                this.compositePartDefinitions.add(partDefinition);
        }
        
        /**
         * @param compositePartDefinitions the compositePartDefinitions to set
         */
        public void setCompositePartDefinitions(List<CompositePartDefinition> compositePartDefinitions) {
                this.compositePartDefinitions = compositePartDefinitions;
        }

        /**
         * @return the compositePartDefinitions
         */
        public List<CompositePartDefinition> getCompositePartDefinitions() {
                return compositePartDefinitions;
        }

        /* (non-Javadoc)
         * @see java.lang.Object#toString()
         */
        @Override
        public String toString() {
                return "CompositeDefinition [compositePartDefinitions="
                                + compositePartDefinitions + ", separator=" + separator
                                + ", getDescription()=" + getDescription() + ", getName()="
                                + getName() + ", getID()=" + getID() + "]";
        }
}