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
 
512 rajveer 88
	public String[] getFreeformLines() {
89
		if(this.freeformTexts != null && this.freeformTexts.size() > 0) {
90
			return this.freeformTexts.get(0).split("\n");
91
		}
92
		return null;
93
	}
199 naveen 94
	/**
512 rajveer 95
	 * Return list of free-form text separeted by new line
96
	 * 
97
	 * @return the freeformTexts
98
	 */
99
	public List<String> getFreeformTextLines() {
100
		List<String> lines = null;
101
		if(this.freeformTexts != null && this.freeformTexts.size() > 0) {
102
			lines = new ArrayList<String>();
103
			StringTokenizer tokenizer = new StringTokenizer(this.freeformTexts.get(0), "\n");
104
			while(tokenizer.hasMoreTokens()){
105
				lines.add(tokenizer.nextToken());
106
			}
107
			return lines;
108
		}
109
 
110
		return null;
111
	}
112
 
113
	/**
211 naveen 114
	 * Convenience method to add new image Refs
115
	 * 
116
	 * @param imgURL
199 naveen 117
	 */
211 naveen 118
	public void addMedia(String type, String mediaRef) {
119
		if(this.mediaRefs == null) {
120
			this.mediaRefs = new HashMap<String, List<String>>();
121
		}
122
 
123
		List<String> typeRefs = this.mediaRefs.get(type);
124
		if(typeRefs == null) {
125
			typeRefs = new ArrayList<String>();
126
			this.mediaRefs.put(type, typeRefs);
457 rajveer 127
		}else {
128
			for(String typeRef: typeRefs){
129
				if(typeRef.compareTo(mediaRef)==0){
130
					return;
131
				}
132
			}
211 naveen 133
		}
134
 
135
		typeRefs.add(mediaRef);
199 naveen 136
	}
137
 
451 rajveer 138
 
139
	/**
140
	 * Convenience method to add new image Refs
141
	 * 
142
	 * @param imgURL
143
	 */
144
	public void removeMedia(String type, String label) {
145
		if(this.mediaRefs == null) {
146
			return;
147
		}
148
 
149
		List<String> typeRefs = this.mediaRefs.get(type);
150
		if(typeRefs == null) {
151
			return;
152
		}
153
		typeRefs.remove(label);
154
	}
211 naveen 155
 
451 rajveer 156
 
199 naveen 157
	/**
211 naveen 158
	 * Convenience method to add new image Refs
199 naveen 159
	 * 
160
	 * @param imgURL
161
	 */
211 naveen 162
	public void setMedia(String type, List<String> mediaRefs) {
163
		if(this.mediaRefs == null) {
164
			this.mediaRefs = new HashMap<String, List<String>>();
199 naveen 165
		}
166
 
211 naveen 167
		this.mediaRefs.put(type, mediaRefs);
199 naveen 168
	}
169
 
170
	/**
211 naveen 171
	 * @return the imageRefs
199 naveen 172
	 */
211 naveen 173
	public List<String> getImageRefs() {
174
		if(this.mediaRefs != null) {
175
			return this.mediaRefs.get("image");
199 naveen 176
		}
177
 
211 naveen 178
		return null;
199 naveen 179
	}
180
 
181
	/**
182
	 * @return the youtubeURLs
183
	 */
211 naveen 184
	public List<String> getYoutubeRefs() {
185
		if(this.mediaRefs != null) {
186
			return this.mediaRefs.get("youtube");
187
		}
188
 
189
		return null;
199 naveen 190
	}
191
 
457 rajveer 192
	public List<String> getImageLabels(){
479 rajveer 193
		return getImageRefs();
194
		/*
457 rajveer 195
		List<String> imageLabels = new ArrayList<String>();
196
		if(this.mediaRefs != null) {
197
			List<String> allDetails = this.mediaRefs.get("image");
198
			if( allDetails != null){
199
				for(String allDetail: allDetails){
200
					StringTokenizer tokenizer = new StringTokenizer(allDetail,"~!~");
201
					String label = tokenizer.nextToken();
202
					imageLabels.add(label);
203
				}
204
			}
205
		}
206
		return imageLabels;
479 rajveer 207
		*/
457 rajveer 208
	}
209
 
210
	public List<String> getYoutubeLabels(){
479 rajveer 211
		return getYoutubeRefs();
212
		/*
457 rajveer 213
		List<String> youtubeLabels = new ArrayList<String>();
214
		if(this.mediaRefs != null) {
215
			List<String> allDetails = this.mediaRefs.get("youtube");
216
			if( allDetails != null){
217
				for(String allDetail: allDetails){
218
					StringTokenizer tokenizer = new StringTokenizer(allDetail,"~!~");
219
					String label = tokenizer.nextToken();
220
					youtubeLabels.add(label);
221
				}
222
			}
223
		}
224
		return youtubeLabels;
479 rajveer 225
		*/
457 rajveer 226
	}
227
 
228
	public List<String> getAllLabels(){
229
		if(this.mediaRefs != null) {
230
			List<String> allDetails = new ArrayList<String>();
231
			List<String> allLabels = new ArrayList<String>();
232
			if(this.mediaRefs.get("youtube") != null)
233
				allDetails.addAll(this.mediaRefs.get("youtube"));
234
			if(this.mediaRefs.get("image") != null)
235
				allDetails.addAll(this.mediaRefs.get("image"));
236
 
237
 
238
			for(String allDetail: allDetails){
239
				StringTokenizer tokenizer = new StringTokenizer(allDetail,"~!~");
240
				String label = tokenizer.nextToken();
241
				allLabels.add(label);
242
			}
243
			return allLabels;
244
		}
245
		return null;
246
	}
247
 
451 rajveer 248
	/**
249
	 * @return the imageRefs
250
	 */
251
	public List<Map<String, String>> getImageDetails() {
252
		if(this.mediaRefs != null) {
253
			List<String> imageDetails = this.mediaRefs.get("image");
254
			List<Map<String, String>> imageDetailsList = new ArrayList<Map<String,String>>();
255
			if(imageDetails == null)
256
				return null;
257
 
258
			for(String imageDetail: imageDetails){
259
				StringTokenizer tokenizer = new StringTokenizer(imageDetail,"~!~");
260
				String label = tokenizer.nextToken();
261
				String name = tokenizer.nextToken();
262
				HashMap<String, String> imageInfoMap = new HashMap<String, String>();
263
				imageInfoMap.put("label", label);
264
				imageInfoMap.put("name", name);
265
				imageDetailsList.add(imageInfoMap);
266
			}
267
			return imageDetailsList;
268
		}
269
 
270
		return null;
271
	}
272
 
273
	/**
274
	 * @return the youtubeURLs
275
	 */
276
	public List<Map<String,String>> getVideoDetails() {
277
		if(this.mediaRefs != null) {
278
			List<String> videoDetails = this.mediaRefs.get("youtube");
279
			if(videoDetails == null)
280
				return null;
281
			List<Map<String, String>> videoDetailsList = new ArrayList<Map<String,String>>();
282
 
283
			for(String videoDetail: videoDetails){
284
				StringTokenizer tokenizer = new StringTokenizer(videoDetail,"~!~");
285
				String label = tokenizer.nextToken();
286
				String url = tokenizer.nextToken();
287
				StringTokenizer urlTokenizer = new StringTokenizer(url,"=");
288
				urlTokenizer.nextToken();
289
				String videoId = urlTokenizer.nextToken();
290
				HashMap<String, String> videoInfoMap = new HashMap<String, String>();
291
				videoInfoMap.put("label", label);
292
				videoInfoMap.put("videoid", videoId);
293
				videoDetailsList.add(videoInfoMap);
294
			}
295
			return videoDetailsList;
296
 
297
		}
298
 
299
		return null;
300
	}
301
 
34 naveen 302
	/* (non-Javadoc)
303
	 * @see java.lang.Object#toString()
304
	 */
305
	@Override
306
	public String toString() {
199 naveen 307
		return "FreeformContent [freeformTexts=" + freeformTexts
211 naveen 308
				+ ", mediaRefs=" + mediaRefs + "]";
34 naveen 309
	}
310
 
10 shop2020 311
}