Subversion Repositories SmartDukaan

Rev

Rev 1061 | Details | Compare with Previous | 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 java.util.ArrayList;
3829 rajveer 7
import java.util.HashMap;
24 naveen 8
import java.util.List;
3829 rajveer 9
import java.util.Map;
24 naveen 10
 
11
import in.shop2020.metamodel.core.Entity;
3829 rajveer 12
import in.shop2020.metamodel.core.FreeformContent;
13
import in.shop2020.metamodel.core.Media;
24 naveen 14
import in.shop2020.metamodel.core.Slide;
15
import in.shop2020.metamodel.definitions.Catalog;
16
import in.shop2020.metamodel.definitions.Category;
17
import in.shop2020.metamodel.definitions.DefinitionsContainer;
3829 rajveer 18
import in.shop2020.util.Utils;
24 naveen 19
 
20
/**
51 naveen 21
 * Utility class that supports core Entity class. All related 
22
 * objects are fetched from database and aggregated here.
23
 *
24 naveen 24
 * @author naveen
25
 *
26
 */
27
public class ExpandedEntity extends Entity {
199 naveen 28
	/**
29
	 * Reference to original entity
30
	 */
31
	private Entity entity;
51 naveen 32
 
49 naveen 33
	/**
51 naveen 34
	 * Expanded from category ID
49 naveen 35
	 */
24 naveen 36
	private Category category;
49 naveen 37
 
38
	/**
51 naveen 39
	 * Expanded from list of slide IDs
49 naveen 40
	 */
24 naveen 41
	private List<ExpandedSlide> expandedSlides;
42
 
43
	/**
44
	 * 
45
	 */
46
	private static final long serialVersionUID = 1L;
47
 
48
	/**
51 naveen 49
	 * Takes Entity object as input and converts all references 
50
	 * into corresponding detail objects
24 naveen 51
	 * 
51 naveen 52
	 * @param entity Entity object
24 naveen 53
	 * @throws Exception 
54
	 */
55
	public ExpandedEntity(Entity entity) throws Exception {
56
		super(entity.getID(), entity.getCategoryID());
57
 
199 naveen 58
		// Original entity
59
		this.setEntity(entity);
60
 
24 naveen 61
		// Copy rest of the properties from entity
62
		super.setBrand(entity.getBrand());
63
		super.setModelName(entity.getModelName());
64
		super.setModelNumber(entity.getModelNumber());
65
		super.setSlides(entity.getSlides());
1050 rajveer 66
		super.setSlideSequence(entity.getSlideSequence());
24 naveen 67
		// Expand category id
68
		DefinitionsContainer defs = 
69
			Catalog.getInstance().getDefinitionsContainer();
70
 
71
		this.category = defs.getCategory(entity.getCategoryID());
72
 
73
		// Expand slides
74
		this.expandedSlides = new ArrayList<ExpandedSlide>();
40 naveen 75
		List<Slide> slides = entity.getSlides();
76
		if(slides != null) {
77
			for(Slide slide : slides) {
78
				ExpandedSlide expSlide = new ExpandedSlide(slide);
79
 
80
				this.expandedSlides.add(expSlide);
81
			}
24 naveen 82
		}
83
	}
84
 
85
	/**
86
	 * @return the category
87
	 */
88
	public Category getCategory() {
89
		return category;
90
	}
91
 
92
	/**
93
	 * @return the expandedSlides
94
	 */
95
	public List<ExpandedSlide> getExpandedSlides() {
96
		return expandedSlides;
97
	}
33 naveen 98
 
199 naveen 99
	/**
100
	 * @param entity the entity to set
101
	 */
102
	public void setEntity(Entity entity) {
103
		this.entity = entity;
104
	}
105
 
106
	/**
107
	 * @return the entity
108
	 */
109
	public Entity getEntity() {
110
		return entity;
111
	}
112
 
113
	/**
114
	 * Returns ExpandedSlide instance given slide definition ID
115
	 * @param slideDefinitionID
116
	 * @return ExpandedSlide 
117
	 */
118
	public ExpandedSlide getExpandedSlide(long slideDefinitionID) {
119
		for(ExpandedSlide expSlide : this.expandedSlides) {
120
			if(expSlide.getSlideDefinitionID() == slideDefinitionID) {
121
				return expSlide;
122
			}
123
		}
124
 
125
		return null;
126
	}
127
 
3829 rajveer 128
 
129
	public Map<String, Media> getAllMedias() {
130
		Map<String, Media> medias = new HashMap<String, Media>();
131
		for(ExpandedSlide expSlide : this.expandedSlides) {
132
			if(expSlide.getSlideDefinitionID() == Utils.SUMMARY_SLIDE_DEFINITION_ID || expSlide.getSlideDefinitionID() == Utils.AFTER_SALES_SLIDE_DEFINITION_ID){
133
				continue;
134
			}
135
			FreeformContent ffc = expSlide.getFreeformContent();
136
			if(ffc != null){
137
				if(ffc.getMedias()!=null){
138
					medias.putAll(ffc.getMedias());
139
				}
140
			}
141
		}
142
		return medias;
143
	}
144
 
145
	public List<String> getAllImageLabels() {
146
		List<String> labels = new ArrayList<String>();
147
		for(ExpandedSlide expSlide : this.expandedSlides) {
148
			if(expSlide.getSlideDefinitionID() == Utils.SUMMARY_SLIDE_DEFINITION_ID || expSlide.getSlideDefinitionID() == Utils.AFTER_SALES_SLIDE_DEFINITION_ID){
149
				continue;
150
			}
151
			FreeformContent ffc = expSlide.getFreeformContent();
152
			if(ffc != null){
153
				labels.addAll(ffc.getImageLabels());
154
			}
155
		}
156
		return labels;
157
	}
158
 
159
	public List<String> getAllYoutubeLabels() {
160
		List<String> labels = new ArrayList<String>();
161
		for(ExpandedSlide expSlide : this.expandedSlides) {
162
			if(expSlide.getSlideDefinitionID() == Utils.SUMMARY_SLIDE_DEFINITION_ID || expSlide.getSlideDefinitionID() == Utils.AFTER_SALES_SLIDE_DEFINITION_ID){
163
				continue;
164
			}
165
			FreeformContent ffc = expSlide.getFreeformContent();
166
			if(ffc != null){
167
				labels.addAll(ffc.getYoutubeLabels());
168
			}
169
		}
170
		return labels;
171
	}
199 naveen 172
 
33 naveen 173
	/* (non-Javadoc)
174
	 * @see java.lang.Object#toString()
175
	 */
176
	@Override
177
	public String toString() {
178
		return "ExpandedEntity [category=" + category + ", expandedSlides="
179
				+ expandedSlides + ", toString()=" + super.toString() + "]";
180
	}
24 naveen 181
}