Subversion Repositories SmartDukaan

Rev

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