Subversion Repositories SmartDukaan

Rev

Rev 1678 | Rev 4218 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1678 rajveer 1
package in.shop2020.util;
2
 
3
import in.shop2020.metamodel.core.Bullet;
4
import in.shop2020.metamodel.core.Entity;
5
import in.shop2020.metamodel.core.Feature;
6
import in.shop2020.metamodel.core.Slide;
7
import in.shop2020.metamodel.definitions.Catalog;
1917 rajveer 8
import in.shop2020.metamodel.definitions.DefinitionsContainer;
9
import in.shop2020.metamodel.definitions.FeatureDefinition;
10
import in.shop2020.metamodel.definitions.SlideDefinition;
11
import in.shop2020.metamodel.definitions.SlideFeatureDefinition;
1678 rajveer 12
import in.shop2020.metamodel.util.CreationUtils;
13
import in.shop2020.metamodel.util.ExpandedBullet;
14
import in.shop2020.metamodel.util.ExpandedFeature;
15
 
16
 
17
import java.io.File;
18
import java.io.FileOutputStream;
19
import java.io.FileWriter;
20
import java.util.ArrayList;
21
import java.util.HashMap;
22
import java.util.List;
23
import java.util.Map;
24
 
25
public class FeatureValueExtractor {
26
	List<Long> featureIds = new ArrayList<Long>();
27
 
28
	public Map<Long, String> extractFeatureValuesForEntity(Entity entity) throws Exception{
29
		Map<Long, String> featureIdValuesMap = new HashMap<Long, String>();
30
 
31
		for(Slide slide: entity.getSlides()){
32
			if(slide.hasChildrenSlides()){
33
				for(Slide sl: slide.getChildrenSlides()){
34
					if(sl.getFeatures()!=null){
35
						slide.getFeatures().addAll(sl.getFeatures());
36
					}
37
					if(sl.hasChildrenSlides()){
38
						for(Slide sl2: sl.getChildrenSlides()){
39
							if(sl2.getFeatures()!=null){
40
								slide.getFeatures().addAll(sl2.getFeatures());
41
							}
42
						}
43
					}
44
				}
45
 
46
			}
47
			for(Feature feature: slide.getFeatures()){
48
				if(featureIds.contains(feature.getFeatureDefinitionID())){
49
					String value = "";
50
					ExpandedFeature expFeature = new ExpandedFeature(feature);
51
					if(expFeature.getExpandedBullets()!=null){
52
						int count = 0;
53
						for(ExpandedBullet expBullet: expFeature.getExpandedBullets()){
54
							if(count==0){
55
								value = value + expBullet.displayText();
56
							}else{
57
								value = value + " -- " + expBullet.displayText();
58
							}
59
							count++;
60
						}
61
					}
62
					featureIdValuesMap.put(feature.getFeatureDefinitionID(), value);
63
				}
64
			}
65
		}
66
		return featureIdValuesMap;
67
	}
68
 
69
	public StringBuffer printFeatureValues() throws Exception{
70
		StringBuffer featureValuesString = new StringBuffer();
71
		featureValuesString.append("Category Name" + "\t");
72
		featureValuesString.append("Entity Name" + "\t");
73
		featureValuesString.append("EntityID" + "\t");
74
 
75
		for(Long featureId : featureIds){
76
			featureValuesString.append(Catalog.getInstance().getDefinitionsContainer().getFeatureDefinition(featureId).getLabel() + "\t");
77
		}
78
		featureValuesString.append("\n");
79
 
80
		for(Entity entity: CreationUtils.getEntities().values()){
81
			if(entity == null || entity.getSlides() == null || Catalog.getInstance().getDefinitionsContainer().getCategory(entity.getCategoryID()).getParentCategory().getID() != 10001){
82
				continue;
83
			}
84
			featureValuesString.append(Catalog.getInstance().getDefinitionsContainer().getCategory(entity.getCategoryID()).getLabel() + "\t");
85
			featureValuesString.append(entity.getBrand()+ " " + entity.getModelName() + " " + entity.getModelNumber() + "\t");
86
			featureValuesString.append(entity.getID() + "\t");
87
			Map<Long, String> fvalues = extractFeatureValuesForEntity(entity);
88
			for(Long featureId : featureIds){
89
				if(fvalues.get(featureId)!=null){
90
					featureValuesString.append(fvalues.get(featureId).trim() + "\t");
91
				}else{
92
					featureValuesString.append("\t");
93
				}
94
			}
95
			featureValuesString.append("\n");
96
		}
97
		return featureValuesString;
98
	}
99
 
100
	public static void main(String[] args) throws Exception{
1917 rajveer 101
 
102
	    FeatureValueExtractor extractor = new FeatureValueExtractor();
103
		DefinitionsContainer dfc = Catalog.getInstance().getDefinitionsContainer();
104
		List<SlideDefinition> slideDefs = dfc.getSlideDefinitions(10002);
105
		for(SlideDefinition slideDef: slideDefs){
106
		    for(SlideFeatureDefinition sfDef: slideDef.getSlideFeatureDefinitions()){
107
		        long fid = sfDef.getFeatureDefintionID();
108
		        if(!extractor.featureIds.contains(fid)){
109
		            extractor.featureIds.add(fid);
110
		        }
111
		    }
112
		    if(slideDef.hasChildren()){
113
		        for(long slideid: slideDef.getChildrenSlideDefinitionIDs()){
114
		            for(SlideFeatureDefinition sfDef: dfc.getSlideDefinition(slideid).getSlideFeatureDefinitions()){
115
		                long fid = sfDef.getFeatureDefintionID();
116
		                if(!extractor.featureIds.contains(fid)){
117
		                    extractor.featureIds.add(fid);
118
		                }        
119
		            }
120
		            if(dfc.getSlideDefinition(slideid).hasChildren()){
121
		                for(long slideid2: dfc.getSlideDefinition(slideid).getChildrenSlideDefinitionIDs()){
122
		                    for(SlideFeatureDefinition sfDef: dfc.getSlideDefinition(slideid2).getSlideFeatureDefinitions()){
123
		                        long fid = sfDef.getFeatureDefintionID();
124
		                        if(!extractor.featureIds.contains(fid)){
125
		                            extractor.featureIds.add(fid);
126
		                        }        
127
		                    }
128
		                }
129
		            }
130
		        }
131
 
132
		    }
133
		}
1678 rajveer 134
 
1917 rajveer 135
		for(long fid: Catalog.getInstance().getDefinitionsContainer().getFeatureDefinitionIDs(10002)){
136
		    if(!extractor.featureIds.contains(fid)){
137
		        extractor.featureIds.add(fid);
138
		    }
139
		}
140
		for(long fid: Catalog.getInstance().getDefinitionsContainer().getFeatureDefinitionIDs(10003)){
141
            if(!extractor.featureIds.contains(fid)){
142
                extractor.featureIds.add(fid);
143
            }
144
        }
145
		for(long fid: Catalog.getInstance().getDefinitionsContainer().getFeatureDefinitionIDs(10004)){
146
            if(!extractor.featureIds.contains(fid)){
147
                extractor.featureIds.add(fid);
148
            }
149
        }
150
		for(long fid: Catalog.getInstance().getDefinitionsContainer().getFeatureDefinitionIDs(10005)){
151
            if(!extractor.featureIds.contains(fid)){
152
                extractor.featureIds.add(fid);
153
            }
154
        }
155
 
1678 rajveer 156
	/*	
157
	    extractor.featureIds.add(120001L);
158
		extractor.featureIds.add(120002L);
159
		extractor.featureIds.add(120003L);
160
		extractor.featureIds.add(120008L);
161
		extractor.featureIds.add(120005L);
162
		extractor.featureIds.add(120006L);
163
		extractor.featureIds.add(120007L);
164
		extractor.featureIds.add(120009L);
165
		extractor.featureIds.add(120010L);
166
		extractor.featureIds.add(120082L);
167
		extractor.featureIds.add(120048L);
168
		extractor.featureIds.add(120049L);
169
		extractor.featureIds.add(120127L);
170
		extractor.featureIds.add(120011L);
171
		extractor.featureIds.add(120014L);
172
		extractor.featureIds.add(120015L);
173
		extractor.featureIds.add(120016L);
174
		extractor.featureIds.add(120017L);
175
		extractor.featureIds.add(120018L);
176
		extractor.featureIds.add(120019L);
177
		extractor.featureIds.add(120021L);
178
		extractor.featureIds.add(120023L);
179
		extractor.featureIds.add(120051L);
180
		extractor.featureIds.add(120022L);
181
		extractor.featureIds.add(120052L);
182
		extractor.featureIds.add(120020L);
183
		extractor.featureIds.add(120024L);
184
		extractor.featureIds.add(120025L);
185
		extractor.featureIds.add(120053L);
186
		extractor.featureIds.add(120026L);
187
		extractor.featureIds.add(120027L);
188
		extractor.featureIds.add(120028L);
189
		extractor.featureIds.add(120056L);
190
		extractor.featureIds.add(120058L);
191
		extractor.featureIds.add(120029L);
192
		extractor.featureIds.add(120030L);
193
		extractor.featureIds.add(120031L);
194
		extractor.featureIds.add(120032L);
195
		extractor.featureIds.add(120033L);
196
		extractor.featureIds.add(120072L);
197
		extractor.featureIds.add(120073L);
198
		extractor.featureIds.add(120076L);
199
		extractor.featureIds.add(120043L);
200
		extractor.featureIds.add(120044L);
201
		extractor.featureIds.add(120045L);
202
		extractor.featureIds.add(120122L);
203
		extractor.featureIds.add(120046L);
204
*/
205
		StringBuffer featureValuesString = extractor.printFeatureValues();
206
		File f = new File("/home/rajveer/Desktop/cms/featurevalues.txt");
207
		FileWriter writer = new FileWriter(f);
208
		writer.write(featureValuesString.toString());
209
		writer.close();
210
	}
211
}