Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
24 naveen 1
/**
2
 * 
3
 */
4
package in.shop2020.metamodel.util;
5
 
99 naveen 6
import java.util.ArrayList;
7
import java.util.List;
8
 
24 naveen 9
import in.shop2020.metamodel.definitions.BulletDefinition;
10
import in.shop2020.metamodel.definitions.Catalog;
45 naveen 11
import in.shop2020.metamodel.definitions.CompositeDefinition;
24 naveen 12
import in.shop2020.metamodel.definitions.DatatypeDefinition;
13
import in.shop2020.metamodel.definitions.DefinitionsContainer;
45 naveen 14
import in.shop2020.metamodel.definitions.EnumDefinition;
205 naveen 15
import in.shop2020.metamodel.definitions.ExpandedCompositeDefinition;
24 naveen 16
import in.shop2020.metamodel.definitions.Unit;
17
 
18
/**
51 naveen 19
 * Utility class that supports BulletDefinition class. All related objects are fetched 
20
 * from database and aggregated here.
49 naveen 21
 * 
24 naveen 22
 * @author naveen
23
 *
24
 */
25
public class ExpandedBulletDefinition extends BulletDefinition {
26
 
27
	/**
28
	 * 
29
	 */
30
	private static final long serialVersionUID = 1L;
31
 
49 naveen 32
	/**
51 naveen 33
	 * Expanded from DatatypeDefinition ID 
49 naveen 34
	 */
35
	private DatatypeDefinition datatypeDefinition ;
36
 
37
	/**
99 naveen 38
	 * List of Expanded from unit IDs
49 naveen 39
	 */
99 naveen 40
	private List<Unit> units;
49 naveen 41
 
42
	/**
51 naveen 43
	 * Interpreted from type of DatatypeDefinition object. True if its 
44
	 * Composite type.
49 naveen 45
	 */
45 naveen 46
	private boolean isComposite;
49 naveen 47
 
48
	/**
51 naveen 49
	 * Interpreted from type of DatatypeDefinition object. True if its a 
50
	 * enumerated type.
49 naveen 51
	 */
45 naveen 52
	private boolean isEnumerated;
53
 
24 naveen 54
	/**
102 naveen 55
	 * Interpreted from type of DatatypeDefinition object. True if its a 
56
	 * primitive type.
57
	 */
58
	private boolean isPrimitive;
59
 
60
	/**
51 naveen 61
	 * Takes BulletDefinition object as input and converts all references 
62
	 * into corresponding detail objects
45 naveen 63
	 * 
64
	 * @param bulletDefinition
65
	 * @throws Exception
24 naveen 66
	 */
67
	public ExpandedBulletDefinition(BulletDefinition bulletDefinition) 
68
		throws Exception {
69
		super(bulletDefinition.getDatatypeDefinitionID());
70
 
71
		// Copy rest of the properties
72
		this.setDescription(bulletDefinition.getDescription());
99 naveen 73
		this.setUnitIDs(bulletDefinition.getUnitIDs());
47 naveen 74
		this.setLearned(bulletDefinition.isLearned());
75
		this.setMultivalue(bulletDefinition.isMultivalue());
24 naveen 76
 
77
		DefinitionsContainer defs = 
78
			Catalog.getInstance().getDefinitionsContainer();
79
 
80
		// Expand data type definition id
81
		this.datatypeDefinition = defs.getDatatypeDefinition(
82
				bulletDefinition.getDatatypeDefinitionID());
83
 
45 naveen 84
 
76 naveen 85
		//Utils.info("datatypeDefinition.getClass().getName=" + 
86
		//		this.datatypeDefinition.getClass().getName());
25 naveen 87
 
45 naveen 88
		if(this.datatypeDefinition instanceof CompositeDefinition) {
89
			this.isComposite = true;
205 naveen 90
			this.datatypeDefinition = new ExpandedCompositeDefinition(
91
					(CompositeDefinition)this.datatypeDefinition);
45 naveen 92
		}
93
		else if(this.datatypeDefinition instanceof EnumDefinition) {
94
			this.isEnumerated = true;
95
		}
102 naveen 96
		else {
97
			this.isPrimitive = true;
98
		}
45 naveen 99
 
99 naveen 100
		// Expand unit ids
101
		List<Long> unitIDs = bulletDefinition.getUnitIDs();
102
 
103
		if(unitIDs != null) {
104
			this.units = new ArrayList<Unit>();
105
 
106
			for(Long unitID : unitIDs) {
107
				Unit unit = defs.getUnit(unitID);
108
				this.units.add(unit);
109
			}
25 naveen 110
		}
24 naveen 111
	}
112
 
113
	/**
114
	 * @return the datatypeDefinition
115
	 */
116
	public DatatypeDefinition getDatatypeDefinition() {
25 naveen 117
		return this.datatypeDefinition;
24 naveen 118
	}
119
 
120
	/**
121
	 * @return the unit
122
	 */
99 naveen 123
	public List<Unit> getUnits() {
124
		return this.units;
24 naveen 125
	}
126
 
45 naveen 127
	/**
128
	 * @return the isComposite
129
	 */
130
	public boolean isComposite() {
131
		return isComposite;
132
	}
133
 
134
	/**
135
	 * @return the isEnum
136
	 */
137
	public boolean isEnumerated() {
138
		return isEnumerated;
139
	}
140
 
102 naveen 141
	/**
142
	 * @return the isPrimitive
143
	 */
144
	public boolean isPrimitive() {
145
		return isPrimitive;
146
	}
147
 
33 naveen 148
	/* (non-Javadoc)
149
	 * @see java.lang.Object#toString()
150
	 */
151
	@Override
152
	public String toString() {
153
		return "ExpandedBulletDefinition [datatypeDefinition="
45 naveen 154
				+ datatypeDefinition + ", isComposite=" + isComposite
99 naveen 155
				+ ", isEnumerated=" + isEnumerated + ", units=" + units + "]";
33 naveen 156
	}
157
 
24 naveen 158
}