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
	/**
51 naveen 54
	 * Takes BulletDefinition object as input and converts all references 
55
	 * into corresponding detail objects
45 naveen 56
	 * 
57
	 * @param bulletDefinition
58
	 * @throws Exception
24 naveen 59
	 */
60
	public ExpandedBulletDefinition(BulletDefinition bulletDefinition) 
61
		throws Exception {
62
		super(bulletDefinition.getDatatypeDefinitionID());
63
 
64
		// Copy rest of the properties
65
		this.setDescription(bulletDefinition.getDescription());
99 naveen 66
		this.setUnitIDs(bulletDefinition.getUnitIDs());
47 naveen 67
		this.setLearned(bulletDefinition.isLearned());
68
		this.setMultivalue(bulletDefinition.isMultivalue());
24 naveen 69
 
70
		DefinitionsContainer defs = 
71
			Catalog.getInstance().getDefinitionsContainer();
72
 
73
		// Expand data type definition id
74
		this.datatypeDefinition = defs.getDatatypeDefinition(
75
				bulletDefinition.getDatatypeDefinitionID());
76
 
45 naveen 77
 
76 naveen 78
		//Utils.info("datatypeDefinition.getClass().getName=" + 
79
		//		this.datatypeDefinition.getClass().getName());
25 naveen 80
 
45 naveen 81
		if(this.datatypeDefinition instanceof CompositeDefinition) {
82
			this.isComposite = true;
83
		}
84
		else if(this.datatypeDefinition instanceof EnumDefinition) {
85
			this.isEnumerated = true;
86
		}
87
 
99 naveen 88
		// Expand unit ids
89
		List<Long> unitIDs = bulletDefinition.getUnitIDs();
90
 
91
		if(unitIDs != null) {
92
			this.units = new ArrayList<Unit>();
93
 
94
			for(Long unitID : unitIDs) {
95
				Unit unit = defs.getUnit(unitID);
96
				this.units.add(unit);
97
			}
25 naveen 98
		}
24 naveen 99
	}
100
 
101
	/**
102
	 * @return the datatypeDefinition
103
	 */
104
	public DatatypeDefinition getDatatypeDefinition() {
25 naveen 105
		return this.datatypeDefinition;
24 naveen 106
	}
107
 
108
	/**
109
	 * @return the unit
110
	 */
99 naveen 111
	public List<Unit> getUnits() {
112
		return this.units;
24 naveen 113
	}
114
 
45 naveen 115
	/**
116
	 * @return the isComposite
117
	 */
118
	public boolean isComposite() {
119
		return isComposite;
120
	}
121
 
122
	/**
123
	 * @return the isEnum
124
	 */
125
	public boolean isEnumerated() {
126
		return isEnumerated;
127
	}
128
 
33 naveen 129
	/* (non-Javadoc)
130
	 * @see java.lang.Object#toString()
131
	 */
132
	@Override
133
	public String toString() {
134
		return "ExpandedBulletDefinition [datatypeDefinition="
45 naveen 135
				+ datatypeDefinition + ", isComposite=" + isComposite
99 naveen 136
				+ ", isEnumerated=" + isEnumerated + ", units=" + units + "]";
33 naveen 137
	}
138
 
24 naveen 139
}