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
 
25 naveen 6
import java.util.List;
7
 
24 naveen 8
import in.shop2020.metamodel.core.Bullet;
9
import in.shop2020.metamodel.core.CompositeDataObject;
10
import in.shop2020.metamodel.core.EnumDataObject;
25 naveen 11
import in.shop2020.metamodel.core.PrimitiveDataObject;
24 naveen 12
import in.shop2020.metamodel.definitions.BulletDefinition;
13
import in.shop2020.metamodel.definitions.Catalog;
25 naveen 14
import in.shop2020.metamodel.definitions.CompositeDefinition;
24 naveen 15
import in.shop2020.metamodel.definitions.DefinitionsContainer;
16
import in.shop2020.metamodel.definitions.EnumValue;
17
 
18
/**
19
 * @author naveen
20
 *
21
 */
22
public class ExpandedBullet extends Bullet {
23
	private ExpandedBulletDefinition expandedBulletDefinition;
24
	private ExpandedEnumDataObject expandedEnumDataObject;
25
	private boolean primitive;
26
	private boolean enumerated;
27
	private boolean composite;
28
 
29
 
30
	/**
31
	 * 
32
	 */
33
	private static final long serialVersionUID = 1L;
34
 
35
	/**
36
	 * @param dataObject
37
	 * @throws Exception 
38
	 */
39
	public ExpandedBullet(Bullet bullet, BulletDefinition bulletDefinition) 
40
		throws Exception {
41
		super(bullet.getDataObject());
42
 
43
		// Copy rest of the properties
44
		super.setFreeformContent(bullet.getFreeformContent());
45
 
46
		this.expandedBulletDefinition = 
47
			new ExpandedBulletDefinition(bulletDefinition);
48
 
49
		// Expand enum data object
50
		if(super.getDataObject() instanceof EnumDataObject) {
51
			this.enumerated = true;
52
 
53
			EnumDataObject enumDataObject = 
54
				(EnumDataObject)bullet.getDataObject();
55
 
56
			DefinitionsContainer defs = 
57
				Catalog.getInstance().getDefinitionsContainer();
58
 
59
			EnumValue enumValue = 
60
				defs.getEnumValue(enumDataObject.getEnumValueID());
61
 
62
			this.expandedEnumDataObject = new ExpandedEnumDataObject(
63
					enumDataObject, enumValue);
64
		}
65
		else if(super.getDataObject() instanceof CompositeDataObject) {
66
			this.composite = true;
67
		}
68
		else {
69
			this.primitive = true;
70
		}
71
	}
72
 
73
	/**
74
	 * @return the expandedEnumDataObject
75
	 */
76
	public ExpandedEnumDataObject getExpandedEnumDataObject() {
77
		return expandedEnumDataObject;
78
	}
79
 
80
	/**
81
	 * @return the expandedBulletDefinition
82
	 */
83
	public ExpandedBulletDefinition getExpandedBulletDefinition() {
84
		return expandedBulletDefinition;
85
	}
86
 
87
	/**
88
	 * @return the primitive
89
	 */
90
	public boolean isPrimitive() {
91
		return primitive;
92
	}
93
 
94
	/**
95
	 * @return the enumerated
96
	 */
97
	public boolean isEnumerated() {
98
		return enumerated;
99
	}
100
 
101
	/**
102
	 * @return the composite
103
	 */
104
	public boolean isComposite() {
105
		return composite;
106
	}
107
 
25 naveen 108
	/**
109
	 * 
110
	 * @return String
111
	 */
112
	public String displayText() {
113
		String displayText = "";
114
 
115
		// Enumerated
116
		if(this.isEnumerated()) {
117
			displayText = 
118
				this.getExpandedEnumDataObject().getEnumValue().getValue();
119
		}
120
 
121
		// Composite
122
		else if (this.isComposite()) {
123
			CompositeDefinition compositeDef = (CompositeDefinition)
124
				this.expandedBulletDefinition.getDatatypeDefinition();
125
 
126
			String separator = compositeDef.getSeparator();
127
 
128
			List<PrimitiveDataObject> primitivedataobjects = 
129
				((CompositeDataObject)this.getDataObject()
130
						).getPrimitiveDataObjects();
131
 
132
			for(int i=0;i<primitivedataobjects.size();i++) {
133
				PrimitiveDataObject primitivedataobject = 
134
					primitivedataobjects.get(i);
135
 
136
				displayText += primitivedataobject.getValue();
137
 
138
				if(i != (primitivedataobjects.size() - 1)) {
139
					displayText += separator;
140
				}
141
			}
142
 
143
			if(this.expandedBulletDefinition.getUnit() != null) { 
144
				displayText += " " + 
145
					this.expandedBulletDefinition.getUnit().getShortForm();
146
			}
147
		}
148
 
149
		// Primitive
150
		else {
151
			displayText += ((PrimitiveDataObject)this.getDataObject()
152
					).getValue();
153
 
154
            if (this.getExpandedBulletDefinition().getUnit() != null) {
155
				displayText += " " + 
156
                	this.getExpandedBulletDefinition().getUnit().getShortForm();
157
            }
158
		}
159
 
160
		return displayText;
161
	}
33 naveen 162
 
163
	/* (non-Javadoc)
164
	 * @see java.lang.Object#toString()
165
	 */
166
	@Override
167
	public String toString() {
168
		return "ExpandedBullet [composite=" + composite + ", enumerated="
169
				+ enumerated + ", expandedBulletDefinition="
170
				+ expandedBulletDefinition + ", expandedEnumDataObject="
171
				+ expandedEnumDataObject + ", primitive=" + primitive
172
				+ ", toString()=" + super.toString() + "]";
173
	}
24 naveen 174
}