Rev 8865 | Blame | Compare with Previous | Last modification | View Log | RSS feed
/****/package in.shop2020.metamodel.core;import in.shop2020.metamodel.core.Media.Type;import in.shop2020.metamodel.util.MetaModelComponent;import java.util.ArrayList;import java.util.LinkedHashMap;import java.util.List;import java.util.Map;import java.util.StringTokenizer;/*** 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, Media> medias;/****/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;}public void setMedias(Map<String, Media> medias) {this.medias = medias;}public Map<String, Media> getMedias() {return medias;}public void addMedia(Media media) {if(this.medias == null){this.medias = new LinkedHashMap<String, Media>();}if(media.getLabel().equals("default")){this.medias.put("default", media);}else {this.medias.put(Long.toString(System.currentTimeMillis()), media);}}public void removeMedia(String label) {if(this.medias != null){medias.remove(label);}}public List<String> getImageLabels(){List<String> imageLabels = new ArrayList<String>();if(this.medias != null){for(Map.Entry<String, Media> mediaE: medias.entrySet()){Media media = mediaE.getValue();if(media.getType().equals(Type.IMAGE)){imageLabels.add(mediaE.getKey());}}}return imageLabels;}public List<String> getYoutubeLabels(){List<String> youtubeLabels = new ArrayList<String>();if(this.medias != null){for(Map.Entry<String, Media> mediaE: medias.entrySet()){Media media = mediaE.getValue();if(media.getType().equals(Type.VIDEO_WITH_SKIN) ||media.getType().equals(Type.VIDEO_WITHOUT_SKIN)){youtubeLabels.add(mediaE.getKey());}}}return youtubeLabels;}public List<String> getDocumentLabels(){List<String> documentLabels = new ArrayList<String>();if(this.medias != null){for(Map.Entry<String, Media> mediaE: medias.entrySet()){Media media = mediaE.getValue();if(media.getType().equals(Type.DOCUMENT)){documentLabels.add(mediaE.getKey());}}}return documentLabels;}}