Subversion Repositories SmartDukaan

Rev

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