Subversion Repositories SmartDukaan

Rev

Rev 8865 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
10 shop2020 1
/**
2
 * 
3
 */
4
package in.shop2020.metamodel.core;
5
 
8865 amit.gupta 6
import in.shop2020.metamodel.core.Media.Type;
7
import in.shop2020.metamodel.util.MetaModelComponent;
8
 
199 naveen 9
import java.util.ArrayList;
1069 rajveer 10
import java.util.LinkedHashMap;
199 naveen 11
import java.util.List;
211 naveen 12
import java.util.Map;
451 rajveer 13
import java.util.StringTokenizer;
199 naveen 14
 
10 shop2020 15
/**
45 naveen 16
 * Represents un-structured data about Slide, Feature and Bullet. It is used
17
 * judiciously by content developers to store multi-media content in support
18
 * component they are attached to.
10 shop2020 19
 * 
20
 * @author naveen
21
 *
22
 */
23
public class FreeformContent extends MetaModelComponent {
2720 mandeep.dh 24
 
25
    /**
26
     * 
27
     */
28
    private static final long serialVersionUID = 1L;
29
 
8865 amit.gupta 30
 
2720 mandeep.dh 31
    // Un-structured text only
32
    private List<String> freeformTexts;
10 shop2020 33
 
2720 mandeep.dh 34
    private Map<String, Media> medias;
35
 
36
    /**
10 shop2020 37
     * 
38
     */
199 naveen 39
    public FreeformContent() {
10 shop2020 40
    }
41
 
42
    /**
43
     * 
199 naveen 44
     * @param freeformText
10 shop2020 45
     */
199 naveen 46
    public FreeformContent(String freeformText) {
2720 mandeep.dh 47
        this.addFreeformText(freeformText);
10 shop2020 48
    }
49
 
2720 mandeep.dh 50
    /**
51
     * @param freeformTexts the freeformTexts to set
52
     */
53
    public void setFreeformTexts(List<String> freeformTexts) {
54
        this.freeformTexts = freeformTexts;
55
    }
56
 
57
    /**
58
     * 
59
     * @param fft
60
     */
61
    public void addFreeformText(String fft) {
62
        if(this.freeformTexts == null) {
63
            this.freeformTexts = new ArrayList<String>();
64
        }
65
 
66
        this.freeformTexts.add(fft);
67
    }
68
 
69
    /**
70
     * @return the freeformTexts
71
     */
72
    public List<String> getFreeformTexts() {
73
        return freeformTexts;
74
    }
199 naveen 75
 
2720 mandeep.dh 76
 
77
    /**
78
     * Return first free-form text
79
     * 
80
     * @return the freeformTexts
81
     */
82
    public String getFreeformText() {
83
        if(this.freeformTexts != null && this.freeformTexts.size() > 0) {
84
            return this.freeformTexts.get(0);
85
        }
86
 
87
        return null;
88
    }
211 naveen 89
 
2720 mandeep.dh 90
    public String[] getFreeformLines() {
91
        if(this.freeformTexts != null && this.freeformTexts.size() > 0) {
92
            return this.freeformTexts.get(0).split("\n");
93
        }
94
        return null;
95
    }
96
    /**
97
     * Return list of free-form text separeted by new line
98
     * 
99
     * @return the freeformTexts
100
     */
101
    public List<String> getFreeformTextLines() {
102
        List<String> lines = null;
103
        if(this.freeformTexts != null && this.freeformTexts.size() > 0) {
104
            lines = new ArrayList<String>();
105
            StringTokenizer tokenizer = new StringTokenizer(this.freeformTexts.get(0), "\n");
106
            while(tokenizer.hasMoreTokens()){
107
                lines.add(tokenizer.nextToken());
108
            }
109
            return lines;
110
        }
111
 
112
        return null;
113
    }
1050 rajveer 114
 
2720 mandeep.dh 115
    public void setMedias(Map<String, Media> medias) {
116
        this.medias = medias;
117
    }
199 naveen 118
 
2720 mandeep.dh 119
    public Map<String, Media> getMedias() {
8785 amit.gupta 120
        return medias;
2720 mandeep.dh 121
    }
122
 
123
    public void addMedia(Media media) {
124
        if(this.medias == null){
125
            this.medias = new LinkedHashMap<String, Media>();
126
        }
8913 amit.gupta 127
        if(media.getLabel().equals("default")){
128
        	this.medias.put("default", media);
129
        }else { 
130
        	this.medias.put(Long.toString(System.currentTimeMillis()), media);
131
        }
2720 mandeep.dh 132
    }
211 naveen 133
 
2720 mandeep.dh 134
    public void removeMedia(String label) {
135
        if(this.medias != null){
136
            medias.remove(label);
137
        }
138
    }
139
 
140
    public List<String> getImageLabels(){
141
        List<String> imageLabels = new ArrayList<String>();
142
        if(this.medias != null){
8865 amit.gupta 143
        	for(Map.Entry<String, Media> mediaE: medias.entrySet()){
144
            	Media media = mediaE.getValue();
2720 mandeep.dh 145
                if(media.getType().equals(Type.IMAGE)){
8865 amit.gupta 146
                    imageLabels.add(mediaE.getKey());
2720 mandeep.dh 147
                }
148
            }
149
        }
150
        return imageLabels;
151
    }
1050 rajveer 152
 
2720 mandeep.dh 153
    public List<String> getYoutubeLabels(){
154
        List<String> youtubeLabels = new ArrayList<String>();
155
        if(this.medias != null){
8865 amit.gupta 156
            for(Map.Entry<String, Media> mediaE: medias.entrySet()){
157
            	Media media = mediaE.getValue();
2720 mandeep.dh 158
                if(media.getType().equals(Type.VIDEO_WITH_SKIN) || 
159
                   media.getType().equals(Type.VIDEO_WITHOUT_SKIN))
160
                {
8865 amit.gupta 161
                    youtubeLabels.add(mediaE.getKey());
2720 mandeep.dh 162
                }
163
            }
164
        }
165
        return youtubeLabels;
166
    }
457 rajveer 167
 
3018 rajveer 168
    public List<String> getDocumentLabels(){
169
        List<String> documentLabels = new ArrayList<String>();
170
        if(this.medias != null){
8865 amit.gupta 171
        	for(Map.Entry<String, Media> mediaE: medias.entrySet()){
172
            	Media media = mediaE.getValue();
3018 rajveer 173
                if(media.getType().equals(Type.DOCUMENT))
174
                {
8865 amit.gupta 175
                    documentLabels.add(mediaE.getKey());
3018 rajveer 176
                }
177
            }
178
        }
179
        return documentLabels;
180
    }
181
 
10 shop2020 182
}