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
 
199 naveen 6
import java.util.ArrayList;
211 naveen 7
import java.util.HashMap;
199 naveen 8
import java.util.List;
211 naveen 9
import java.util.Map;
451 rajveer 10
import java.util.StringTokenizer;
199 naveen 11
 
10 shop2020 12
import in.shop2020.metamodel.util.MetaModelComponent;
13
 
14
/**
45 naveen 15
 * Represents un-structured data about Slide, Feature and Bullet. It is used
16
 * judiciously by content developers to store multi-media content in support
17
 * component they are attached to.
10 shop2020 18
 * 
19
 * @author naveen
20
 *
21
 */
22
public class FreeformContent extends MetaModelComponent {
23
 
24
	/**
25
	 * 
26
	 */
27
	private static final long serialVersionUID = 1L;
28
 
199 naveen 29
	// Un-structured text only
30
	private List<String> freeformTexts;
10 shop2020 31
 
211 naveen 32
	private Map<String, List<String>> mediaRefs;
33
 
10 shop2020 34
    /**
35
     * 
36
     */
199 naveen 37
    public FreeformContent() {
10 shop2020 38
    }
39
 
40
    /**
41
     * 
199 naveen 42
     * @param freeformText
10 shop2020 43
     */
199 naveen 44
    public FreeformContent(String freeformText) {
45
    	this.addFreeformText(freeformText);
10 shop2020 46
    }
47
 
199 naveen 48
	/**
49
	 * @param freeformTexts the freeformTexts to set
50
	 */
51
	public void setFreeformTexts(List<String> freeformTexts) {
52
		this.freeformTexts = freeformTexts;
53
	}
54
 
55
	/**
56
	 * 
57
	 * @param fft
58
	 */
59
	public void addFreeformText(String fft) {
60
		if(this.freeformTexts == null) {
61
			this.freeformTexts = new ArrayList<String>();
62
		}
63
 
64
		this.freeformTexts.add(fft);
65
	}
66
 
67
	/**
68
	 * @return the freeformTexts
69
	 */
70
	public List<String> getFreeformTexts() {
71
		return freeformTexts;
72
	}
73
 
74
 
75
	/**
76
	 * Return first free-form text
77
	 * 
78
	 * @return the freeformTexts
79
	 */
80
	public String getFreeformText() {
81
		if(this.freeformTexts != null && this.freeformTexts.size() > 0) {
82
			return this.freeformTexts.get(0);
83
		}
84
 
85
		return null;
86
	}
211 naveen 87
 
199 naveen 88
	/**
211 naveen 89
	 * Convenience method to add new image Refs
90
	 * 
91
	 * @param imgURL
199 naveen 92
	 */
211 naveen 93
	public void addMedia(String type, String mediaRef) {
94
		if(this.mediaRefs == null) {
95
			this.mediaRefs = new HashMap<String, List<String>>();
96
		}
97
 
98
		List<String> typeRefs = this.mediaRefs.get(type);
99
		if(typeRefs == null) {
100
			typeRefs = new ArrayList<String>();
101
			this.mediaRefs.put(type, typeRefs);
457 rajveer 102
		}else {
103
			for(String typeRef: typeRefs){
104
				if(typeRef.compareTo(mediaRef)==0){
105
					return;
106
				}
107
			}
211 naveen 108
		}
109
 
110
		typeRefs.add(mediaRef);
199 naveen 111
	}
112
 
451 rajveer 113
 
114
	/**
115
	 * Convenience method to add new image Refs
116
	 * 
117
	 * @param imgURL
118
	 */
119
	public void removeMedia(String type, String label) {
120
		if(this.mediaRefs == null) {
121
			return;
122
		}
123
 
124
		List<String> typeRefs = this.mediaRefs.get(type);
125
		if(typeRefs == null) {
126
			return;
127
		}
128
		typeRefs.remove(label);
129
	}
211 naveen 130
 
451 rajveer 131
 
199 naveen 132
	/**
211 naveen 133
	 * Convenience method to add new image Refs
199 naveen 134
	 * 
135
	 * @param imgURL
136
	 */
211 naveen 137
	public void setMedia(String type, List<String> mediaRefs) {
138
		if(this.mediaRefs == null) {
139
			this.mediaRefs = new HashMap<String, List<String>>();
199 naveen 140
		}
141
 
211 naveen 142
		this.mediaRefs.put(type, mediaRefs);
199 naveen 143
	}
144
 
145
	/**
211 naveen 146
	 * @return the imageRefs
199 naveen 147
	 */
211 naveen 148
	public List<String> getImageRefs() {
149
		if(this.mediaRefs != null) {
150
			return this.mediaRefs.get("image");
199 naveen 151
		}
152
 
211 naveen 153
		return null;
199 naveen 154
	}
155
 
156
	/**
157
	 * @return the youtubeURLs
158
	 */
211 naveen 159
	public List<String> getYoutubeRefs() {
160
		if(this.mediaRefs != null) {
161
			return this.mediaRefs.get("youtube");
162
		}
163
 
164
		return null;
199 naveen 165
	}
166
 
457 rajveer 167
	public List<String> getImageLabels(){
168
		List<String> imageLabels = new ArrayList<String>();
169
		if(this.mediaRefs != null) {
170
			List<String> allDetails = this.mediaRefs.get("image");
171
			if( allDetails != null){
172
				for(String allDetail: allDetails){
173
					StringTokenizer tokenizer = new StringTokenizer(allDetail,"~!~");
174
					String label = tokenizer.nextToken();
175
					imageLabels.add(label);
176
				}
177
			}
178
		}
179
		return imageLabels;
180
	}
181
 
182
	public List<String> getYoutubeLabels(){
183
		List<String> youtubeLabels = new ArrayList<String>();
184
		if(this.mediaRefs != null) {
185
			List<String> allDetails = this.mediaRefs.get("youtube");
186
			if( allDetails != null){
187
				for(String allDetail: allDetails){
188
					StringTokenizer tokenizer = new StringTokenizer(allDetail,"~!~");
189
					String label = tokenizer.nextToken();
190
					youtubeLabels.add(label);
191
				}
192
			}
193
		}
194
		return youtubeLabels;
195
	}
196
 
197
	public List<String> getAllLabels(){
198
		if(this.mediaRefs != null) {
199
			List<String> allDetails = new ArrayList<String>();
200
			List<String> allLabels = new ArrayList<String>();
201
			if(this.mediaRefs.get("youtube") != null)
202
				allDetails.addAll(this.mediaRefs.get("youtube"));
203
			if(this.mediaRefs.get("image") != null)
204
				allDetails.addAll(this.mediaRefs.get("image"));
205
 
206
 
207
			for(String allDetail: allDetails){
208
				StringTokenizer tokenizer = new StringTokenizer(allDetail,"~!~");
209
				String label = tokenizer.nextToken();
210
				allLabels.add(label);
211
			}
212
			return allLabels;
213
		}
214
		return null;
215
	}
216
 
451 rajveer 217
	/**
218
	 * @return the imageRefs
219
	 */
220
	public List<Map<String, String>> getImageDetails() {
221
		if(this.mediaRefs != null) {
222
			List<String> imageDetails = this.mediaRefs.get("image");
223
			List<Map<String, String>> imageDetailsList = new ArrayList<Map<String,String>>();
224
			if(imageDetails == null)
225
				return null;
226
 
227
			for(String imageDetail: imageDetails){
228
				StringTokenizer tokenizer = new StringTokenizer(imageDetail,"~!~");
229
				String label = tokenizer.nextToken();
230
				String name = tokenizer.nextToken();
231
				HashMap<String, String> imageInfoMap = new HashMap<String, String>();
232
				imageInfoMap.put("label", label);
233
				imageInfoMap.put("name", name);
234
				imageDetailsList.add(imageInfoMap);
235
			}
236
			return imageDetailsList;
237
		}
238
 
239
		return null;
240
	}
241
 
242
	/**
243
	 * @return the youtubeURLs
244
	 */
245
	public List<Map<String,String>> getVideoDetails() {
246
		if(this.mediaRefs != null) {
247
			List<String> videoDetails = this.mediaRefs.get("youtube");
248
			if(videoDetails == null)
249
				return null;
250
			List<Map<String, String>> videoDetailsList = new ArrayList<Map<String,String>>();
251
 
252
			for(String videoDetail: videoDetails){
253
				StringTokenizer tokenizer = new StringTokenizer(videoDetail,"~!~");
254
				String label = tokenizer.nextToken();
255
				String url = tokenizer.nextToken();
256
				StringTokenizer urlTokenizer = new StringTokenizer(url,"=");
257
				urlTokenizer.nextToken();
258
				String videoId = urlTokenizer.nextToken();
259
				HashMap<String, String> videoInfoMap = new HashMap<String, String>();
260
				videoInfoMap.put("label", label);
261
				videoInfoMap.put("videoid", videoId);
262
				videoDetailsList.add(videoInfoMap);
263
			}
264
			return videoDetailsList;
265
 
266
		}
267
 
268
		return null;
269
	}
270
 
34 naveen 271
	/* (non-Javadoc)
272
	 * @see java.lang.Object#toString()
273
	 */
274
	@Override
275
	public String toString() {
199 naveen 276
		return "FreeformContent [freeformTexts=" + freeformTexts
211 naveen 277
				+ ", mediaRefs=" + mediaRefs + "]";
34 naveen 278
	}
279
 
10 shop2020 280
}