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