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