Subversion Repositories SmartDukaan

Rev

Rev 8777 | Rev 8785 | 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)){
8784 amit.gupta 123
	    	Map<String, Media> m = new LinkedHashMap<String, Media>(); 
8749 amit.gupta 124
	    	for(Map.Entry<String, Media> m1 : medias.entrySet()) {
125
	    		if(m1.getKey().contains(".")){
126
	    			m.put(m1.getKey().replaceAll("\\.", "-"),m1.getValue());
8777 amit.gupta 127
	    		}else {
128
	    			m.put(m1.getKey(), m1.getValue());
8749 amit.gupta 129
	    		}
130
	    	}
131
	    	medias = m;
132
    	}
133
    	return medias;
2720 mandeep.dh 134
    }
135
 
136
    public void addMedia(Media media) {
137
        if(this.medias == null){
138
            this.medias = new LinkedHashMap<String, Media>();
139
        }
140
        this.medias.put(media.getLabel(), media);
141
    }
211 naveen 142
 
2720 mandeep.dh 143
    public void removeMedia(String label) {
144
        if(this.medias != null){
145
            medias.remove(label);
146
        }
147
    }
148
 
149
    public List<String> getImageLabels(){
150
        List<String> imageLabels = new ArrayList<String>();
151
        if(this.medias != null){
152
            for(Media media: medias.values()){
153
                if(media.getType().equals(Type.IMAGE)){
154
                    imageLabels.add(media.getLabel());
155
                }
156
            }
157
        }
158
        return imageLabels;
159
    }
1050 rajveer 160
 
2720 mandeep.dh 161
    public List<String> getYoutubeLabels(){
162
        List<String> youtubeLabels = new ArrayList<String>();
163
        if(this.medias != null){
164
            for(Media media: medias.values()){
165
                if(media.getType().equals(Type.VIDEO_WITH_SKIN) || 
166
                   media.getType().equals(Type.VIDEO_WITHOUT_SKIN))
167
                {
168
                    youtubeLabels.add(media.getLabel());
169
                }
170
            }
171
        }
172
        return youtubeLabels;
173
    }
457 rajveer 174
 
3018 rajveer 175
    public List<String> getDocumentLabels(){
176
        List<String> documentLabels = new ArrayList<String>();
177
        if(this.medias != null){
178
            for(Media media: medias.values()){
179
                if(media.getType().equals(Type.DOCUMENT))
180
                {
181
                    documentLabels.add(media.getLabel());
182
                }
183
            }
184
        }
185
        return documentLabels;
186
    }
187
 
10 shop2020 188
}