Subversion Repositories SmartDukaan

Rev

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