Rev 479 | Rev 1050 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
/****/package in.shop2020.metamodel.core;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.StringTokenizer;import in.shop2020.metamodel.util.MetaModelComponent;/*** Represents un-structured data about Slide, Feature and Bullet. It is used* judiciously by content developers to store multi-media content in support* component they are attached to.** @author naveen**/public class FreeformContent extends MetaModelComponent {/****/private static final long serialVersionUID = 1L;// Un-structured text onlyprivate List<String> freeformTexts;private Map<String, List<String>> mediaRefs;/****/public FreeformContent() {}/**** @param freeformText*/public FreeformContent(String freeformText) {this.addFreeformText(freeformText);}/*** @param freeformTexts the freeformTexts to set*/public void setFreeformTexts(List<String> freeformTexts) {this.freeformTexts = freeformTexts;}/**** @param fft*/public void addFreeformText(String fft) {if(this.freeformTexts == null) {this.freeformTexts = new ArrayList<String>();}this.freeformTexts.add(fft);}/*** @return the freeformTexts*/public List<String> getFreeformTexts() {return freeformTexts;}/*** Return first free-form text** @return the freeformTexts*/public String getFreeformText() {if(this.freeformTexts != null && this.freeformTexts.size() > 0) {return this.freeformTexts.get(0);}return null;}public String[] getFreeformLines() {if(this.freeformTexts != null && this.freeformTexts.size() > 0) {return this.freeformTexts.get(0).split("\n");}return null;}/*** Return list of free-form text separeted by new line** @return the freeformTexts*/public List<String> getFreeformTextLines() {List<String> lines = null;if(this.freeformTexts != null && this.freeformTexts.size() > 0) {lines = new ArrayList<String>();StringTokenizer tokenizer = new StringTokenizer(this.freeformTexts.get(0), "\n");while(tokenizer.hasMoreTokens()){lines.add(tokenizer.nextToken());}return lines;}return null;}/*** Convenience method to add new image Refs** @param imgURL*/public void addMedia(String type, String mediaRef) {if(this.mediaRefs == null) {this.mediaRefs = new HashMap<String, List<String>>();}List<String> typeRefs = this.mediaRefs.get(type);if(typeRefs == null) {typeRefs = new ArrayList<String>();this.mediaRefs.put(type, typeRefs);}else {for(String typeRef: typeRefs){if(typeRef.compareTo(mediaRef)==0){return;}}}typeRefs.add(mediaRef);}/*** Convenience method to add new image Refs** @param imgURL*/public void removeMedia(String type, String label) {if(this.mediaRefs == null) {return;}List<String> typeRefs = this.mediaRefs.get(type);if(typeRefs == null) {return;}typeRefs.remove(label);}/*** Convenience method to add new image Refs** @param imgURL*/public void setMedia(String type, List<String> mediaRefs) {if(this.mediaRefs == null) {this.mediaRefs = new HashMap<String, List<String>>();}this.mediaRefs.put(type, mediaRefs);}/*** @return the imageRefs*/public List<String> getImageRefs() {if(this.mediaRefs != null) {return this.mediaRefs.get("image");}return null;}/*** @return the youtubeURLs*/public List<String> getYoutubeRefs() {if(this.mediaRefs != null) {return this.mediaRefs.get("youtube");}return null;}public List<String> getImageLabels(){return getImageRefs();/*List<String> imageLabels = new ArrayList<String>();if(this.mediaRefs != null) {List<String> allDetails = this.mediaRefs.get("image");if( allDetails != null){for(String allDetail: allDetails){StringTokenizer tokenizer = new StringTokenizer(allDetail,"~!~");String label = tokenizer.nextToken();imageLabels.add(label);}}}return imageLabels;*/}public List<String> getYoutubeLabels(){return getYoutubeRefs();/*List<String> youtubeLabels = new ArrayList<String>();if(this.mediaRefs != null) {List<String> allDetails = this.mediaRefs.get("youtube");if( allDetails != null){for(String allDetail: allDetails){StringTokenizer tokenizer = new StringTokenizer(allDetail,"~!~");String label = tokenizer.nextToken();youtubeLabels.add(label);}}}return youtubeLabels;*/}public List<String> getAllLabels(){if(this.mediaRefs != null) {List<String> allDetails = new ArrayList<String>();List<String> allLabels = new ArrayList<String>();if(this.mediaRefs.get("youtube") != null)allDetails.addAll(this.mediaRefs.get("youtube"));if(this.mediaRefs.get("image") != null)allDetails.addAll(this.mediaRefs.get("image"));for(String allDetail: allDetails){StringTokenizer tokenizer = new StringTokenizer(allDetail,"~!~");String label = tokenizer.nextToken();allLabels.add(label);}return allLabels;}return null;}/*** @return the imageRefs*/public List<Map<String, String>> getImageDetails() {if(this.mediaRefs != null) {List<String> imageDetails = this.mediaRefs.get("image");List<Map<String, String>> imageDetailsList = new ArrayList<Map<String,String>>();if(imageDetails == null)return null;for(String imageDetail: imageDetails){StringTokenizer tokenizer = new StringTokenizer(imageDetail,"~!~");String label = tokenizer.nextToken();String name = tokenizer.nextToken();HashMap<String, String> imageInfoMap = new HashMap<String, String>();imageInfoMap.put("label", label);imageInfoMap.put("name", name);imageDetailsList.add(imageInfoMap);}return imageDetailsList;}return null;}/*** @return the youtubeURLs*/public List<Map<String,String>> getVideoDetails() {if(this.mediaRefs != null) {List<String> videoDetails = this.mediaRefs.get("youtube");if(videoDetails == null)return null;List<Map<String, String>> videoDetailsList = new ArrayList<Map<String,String>>();for(String videoDetail: videoDetails){StringTokenizer tokenizer = new StringTokenizer(videoDetail,"~!~");String label = tokenizer.nextToken();String url = tokenizer.nextToken();StringTokenizer urlTokenizer = new StringTokenizer(url,"=");urlTokenizer.nextToken();String videoId = urlTokenizer.nextToken();HashMap<String, String> videoInfoMap = new HashMap<String, String>();videoInfoMap.put("label", label);videoInfoMap.put("videoid", videoId);videoDetailsList.add(videoInfoMap);}return videoDetailsList;}return null;}/* (non-Javadoc)* @see java.lang.Object#toString()*/@Overridepublic String toString() {return "FreeformContent [freeformTexts=" + freeformTexts+ ", mediaRefs=" + mediaRefs + "]";}}