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(){
479 rajveer 168
		return getImageRefs();
169
		/*
457 rajveer 170
		List<String> imageLabels = new ArrayList<String>();
171
		if(this.mediaRefs != null) {
172
			List<String> allDetails = this.mediaRefs.get("image");
173
			if( allDetails != null){
174
				for(String allDetail: allDetails){
175
					StringTokenizer tokenizer = new StringTokenizer(allDetail,"~!~");
176
					String label = tokenizer.nextToken();
177
					imageLabels.add(label);
178
				}
179
			}
180
		}
181
		return imageLabels;
479 rajveer 182
		*/
457 rajveer 183
	}
184
 
185
	public List<String> getYoutubeLabels(){
479 rajveer 186
		return getYoutubeRefs();
187
		/*
457 rajveer 188
		List<String> youtubeLabels = new ArrayList<String>();
189
		if(this.mediaRefs != null) {
190
			List<String> allDetails = this.mediaRefs.get("youtube");
191
			if( allDetails != null){
192
				for(String allDetail: allDetails){
193
					StringTokenizer tokenizer = new StringTokenizer(allDetail,"~!~");
194
					String label = tokenizer.nextToken();
195
					youtubeLabels.add(label);
196
				}
197
			}
198
		}
199
		return youtubeLabels;
479 rajveer 200
		*/
457 rajveer 201
	}
202
 
203
	public List<String> getAllLabels(){
204
		if(this.mediaRefs != null) {
205
			List<String> allDetails = new ArrayList<String>();
206
			List<String> allLabels = new ArrayList<String>();
207
			if(this.mediaRefs.get("youtube") != null)
208
				allDetails.addAll(this.mediaRefs.get("youtube"));
209
			if(this.mediaRefs.get("image") != null)
210
				allDetails.addAll(this.mediaRefs.get("image"));
211
 
212
 
213
			for(String allDetail: allDetails){
214
				StringTokenizer tokenizer = new StringTokenizer(allDetail,"~!~");
215
				String label = tokenizer.nextToken();
216
				allLabels.add(label);
217
			}
218
			return allLabels;
219
		}
220
		return null;
221
	}
222
 
451 rajveer 223
	/**
224
	 * @return the imageRefs
225
	 */
226
	public List<Map<String, String>> getImageDetails() {
227
		if(this.mediaRefs != null) {
228
			List<String> imageDetails = this.mediaRefs.get("image");
229
			List<Map<String, String>> imageDetailsList = new ArrayList<Map<String,String>>();
230
			if(imageDetails == null)
231
				return null;
232
 
233
			for(String imageDetail: imageDetails){
234
				StringTokenizer tokenizer = new StringTokenizer(imageDetail,"~!~");
235
				String label = tokenizer.nextToken();
236
				String name = tokenizer.nextToken();
237
				HashMap<String, String> imageInfoMap = new HashMap<String, String>();
238
				imageInfoMap.put("label", label);
239
				imageInfoMap.put("name", name);
240
				imageDetailsList.add(imageInfoMap);
241
			}
242
			return imageDetailsList;
243
		}
244
 
245
		return null;
246
	}
247
 
248
	/**
249
	 * @return the youtubeURLs
250
	 */
251
	public List<Map<String,String>> getVideoDetails() {
252
		if(this.mediaRefs != null) {
253
			List<String> videoDetails = this.mediaRefs.get("youtube");
254
			if(videoDetails == null)
255
				return null;
256
			List<Map<String, String>> videoDetailsList = new ArrayList<Map<String,String>>();
257
 
258
			for(String videoDetail: videoDetails){
259
				StringTokenizer tokenizer = new StringTokenizer(videoDetail,"~!~");
260
				String label = tokenizer.nextToken();
261
				String url = tokenizer.nextToken();
262
				StringTokenizer urlTokenizer = new StringTokenizer(url,"=");
263
				urlTokenizer.nextToken();
264
				String videoId = urlTokenizer.nextToken();
265
				HashMap<String, String> videoInfoMap = new HashMap<String, String>();
266
				videoInfoMap.put("label", label);
267
				videoInfoMap.put("videoid", videoId);
268
				videoDetailsList.add(videoInfoMap);
269
			}
270
			return videoDetailsList;
271
 
272
		}
273
 
274
		return null;
275
	}
276
 
34 naveen 277
	/* (non-Javadoc)
278
	 * @see java.lang.Object#toString()
279
	 */
280
	@Override
281
	public String toString() {
199 naveen 282
		return "FreeformContent [freeformTexts=" + freeformTexts
211 naveen 283
				+ ", mediaRefs=" + mediaRefs + "]";
34 naveen 284
	}
285
 
10 shop2020 286
}