Subversion Repositories SmartDukaan

Rev

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