Subversion Repositories SmartDukaan

Rev

Rev 4653 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
10 shop2020 1
/**
2
 * 
3
 */
4
package in.shop2020.metamodel.core;
5
 
6
 
7
import in.shop2020.metamodel.util.ReusableMetaModelComponent;
8
 
21 naveen 9
import java.util.ArrayList;
299 naveen 10
import java.util.HashMap;
10 shop2020 11
import java.util.List;
299 naveen 12
import java.util.Map;
10 shop2020 13
 
14
/**
45 naveen 15
 * Entity class is the center of shop2020 content meta-model. Represents 
16
 * a Product that is part of shop2020 online shopping catalog. 
10 shop2020 17
 * 
45 naveen 18
 * It is composed of other classes in meta-model core package, 
19
 * classes in meta-model definition package define its structure.
20
 * 
10 shop2020 21
 * @author naveen
22
 *
23
 */
24
public class Entity extends ReusableMetaModelComponent {
8758 amit.gupta 25
    public Entity() {
26
	}
27
 
28
	/**
1050 rajveer 29
	 * This is serial versionId. Need to put corresponding to the svn checkout version. 
30
	 * So that code can be retrieved for the version and Objects can be restored.
10 shop2020 31
	 */
1050 rajveer 32
	//FIXME to be decided
10 shop2020 33
	private static final long serialVersionUID = 1L;
45 naveen 34
 
35
	/**
36
	 * Pointer to entity's category 
37
	 */
21 naveen 38
	private long categoryID;
45 naveen 39
 
40
	/**
41
	 * Manufacturer brand
42
	 */
10 shop2020 43
	private String brand;
45 naveen 44
 
45
	/**
46
	 * Manufacturer provided Model Number
47
	 */
10 shop2020 48
	private String modelNumber;
45 naveen 49
 
50
	/**
51
	 * Manufacturer provided Model Name
52
	 */
10 shop2020 53
	private String modelName;
45 naveen 54
 
55
	/**
56
	 * List of slides that describe the entity
57
	 */
10 shop2020 58
	private List<Slide> slides;
21 naveen 59
 
1050 rajveer 60
 
61
	private List<Long> slideSequence;
62
 
21 naveen 63
	/**
64
	 * 
45 naveen 65
	 * @param newID Unique identifier
66
	 * @param categoryID Category ID
21 naveen 67
	 */
68
    public Entity(long newID, long categoryID) {
10 shop2020 69
    	super(newID);
21 naveen 70
    	this.categoryID = categoryID;
10 shop2020 71
    }
72
 
1050 rajveer 73
    public List<Long> getSlideSequence() {
74
		return slideSequence;
75
	}
76
 
77
	public void setSlideSequence(List<Long> slideSequence) {
78
		if(this.slideSequence==null){
79
			this.slideSequence = new ArrayList<Long>();
80
		}
81
		this.slideSequence = slideSequence;
82
	}
83
 
84
	/**
10 shop2020 85
     * 
86
     * @return categoryID
87
     *     
88
     */
21 naveen 89
    public long getCategoryID() {
10 shop2020 90
        return this.categoryID;
91
    }
92
 
93
    /**
94
     * 
45 naveen 95
     * @param value Category ID to set
10 shop2020 96
     *     
97
     */
199 naveen 98
    public void setCategoryID(long value) {
10 shop2020 99
        this.categoryID = value;
100
    }
101
 
102
    /**
103
     * 
104
     * @return brand
105
     *     
106
     */
107
    public String getBrand() {
108
        return this.brand;
109
    }
110
 
111
    /**
112
     * 
45 naveen 113
     * @param value Brand to set
10 shop2020 114
     *     
115
     */
116
    public void setBrand(String value) {
117
        this.brand = value;
118
    }
119
 
120
    /**
121
     * 
45 naveen 122
     * @return modelNumber Model Number 
10 shop2020 123
     *     
124
     */
125
    public String getModelNumber() {
126
        return this.modelNumber;
127
    }
128
 
129
    /**
130
     * 
45 naveen 131
     * @param value Model Number to set
10 shop2020 132
     *     
133
     */
134
    public void setModelNumber(String value) {
135
        this.modelNumber = value;
136
    }
137
 
138
    /**
139
     * 
45 naveen 140
     * @return modelName Model Name
10 shop2020 141
     *     
142
     */
143
    public String getModelName() {
144
        return this.modelName;
145
    }
146
 
147
    /**
148
     * 
45 naveen 149
     * @param value Model Name to set
10 shop2020 150
     *     
151
     */
152
    public void setModelName(String value) {
153
        this.modelName = value;
154
    }
155
 
156
    /**
157
     * 
158
     * @return slides
159
     *     
160
     */
161
    public List<Slide> getSlides() {
162
        return this.slides;
163
    }
21 naveen 164
 
10 shop2020 165
    /**
166
     * 
45 naveen 167
     * @param slide to add new slides to an entity
21 naveen 168
     */
169
    public void addSlide(Slide slide) {
170
    	if(this.slides == null) {
171
    		this.slides = new ArrayList<Slide>();
172
    	}
214 naveen 173
    	else {
174
	    	Slide currentSlide = this.getSlide(slide.getSlideDefinitionID());
175
	    	this.slides.remove(currentSlide);
176
    	}
177
 
21 naveen 178
    	this.slides.add(slide);
179
    }
180
 
181
    /**
182
     * 
299 naveen 183
     * @param slideIDsNewOrder
184
     */
185
    public void reorderSlides(List<Long> slideIDsNewOrder) {
186
    	if(this.slides == null) {
187
    		return;
188
    	}
189
 
190
    	Map<Long, Slide> slideIDSlide = new HashMap<Long, Slide>();
191
 
192
    	for(Slide slide : this.slides) {
193
    		slideIDSlide.put(new Long(slide.getSlideDefinitionID()), slide);
194
    	}
195
 
196
    	List<Slide> orderedSlides = new ArrayList<Slide>();
197
    	for(Long slideID : slideIDsNewOrder) {
198
    		Slide slide = slideIDSlide.get(slideID);
199
 
200
    		if(slide != null) {
201
    			orderedSlides.add(slide);
202
    		}
203
    	}
204
 
205
    	this.slides = orderedSlides;
206
    }
207
 
208
    /**
209
     * 
216 naveen 210
     * @param slideDefinitionID
211
     */
212
    public void removeSlide(long slideDefinitionID) {
213
    	if(this.slides != null) {
214
    		Slide slide = this.getSlide(slideDefinitionID);
215
    		if(slide != null) {
216
    			this.slides.remove(slide);
217
    		}
218
    	}
219
    }
220
 
221
    /**
222
     * 
45 naveen 223
     * @param value list of slides to set
10 shop2020 224
     *     
225
     */
226
    public void setSlides(List<Slide> value) {
227
        this.slides = value;
228
    }
21 naveen 229
 
199 naveen 230
	/**
231
	 * Returns ExpandedSlide instance given slide definition ID
232
	 * @param slideDefinitionID
233
	 * @return ExpandedSlide 
234
	 */
235
	public Slide getSlide(long slideDefinitionID) {
457 rajveer 236
		if(this.slides!=null){
237
			for(Slide slide : this.slides) {
238
				if(slide.getSlideDefinitionID() == slideDefinitionID) {
239
					return slide;
240
				}
199 naveen 241
			}
457 rajveer 242
		}		
199 naveen 243
		return null;
244
	}
245
 
4653 amit.gupta 246
	@Override
247
	public int hashCode() {
248
		final int prime = 31;
249
		int result = 1;
250
		result = prime * result + (int) (this.getID() ^ (this.getID() >>> 32));
251
		return result;
252
	}
253
 
21 naveen 254
	/* (non-Javadoc)
248 naveen 255
	 * @see java.lang.Object#equals(java.lang.Object)
256
	 */
257
	@Override
258
	public boolean equals(Object obj) {
259
		return this.getID() == ((Entity)obj).getID();
260
	}
261
 
262
	/* (non-Javadoc)
21 naveen 263
	 * @see java.lang.Object#toString()
264
	 */
265
	@Override
266
	public String toString() {
267
		return "Entity [brand=" + brand + ", categoryID=" + categoryID
268
				+ ", modelName=" + modelName + ", modelNumber=" + modelNumber
1050 rajveer 269
				+ ", slideSequence=" + slideSequence
21 naveen 270
				+ ", slides=" + slides + ", getID()=" + getID() + "]";
271
	}
272
 
10 shop2020 273
}