Subversion Repositories SmartDukaan

Rev

Rev 21 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 21 Rev 22
Line 1... Line 1...
1
/**
1
/**
2
 * 
2
 * 
3
 */
3
 */
4
package in.shop2020.metamodel.util;
4
package in.shop2020.metamodel.util;
5
 
5
 
6
import java.io.BufferedReader;
-
 
7
import java.io.FileReader;
-
 
8
import java.io.IOException;
-
 
9
import java.io.LineNumberReader;
-
 
10
import java.util.ArrayList;
-
 
11
import java.util.Collection;
-
 
12
import java.util.HashMap;
-
 
13
import java.util.Iterator;
-
 
14
import java.util.List;
-
 
15
import java.util.Map;
-
 
16
import java.util.TreeMap;
-
 
17
import java.util.logging.Level;
-
 
18
 
-
 
19
import in.shop2020.metamodel.core.Bullet;
6
import in.shop2020.metamodel.core.Bullet;
20
import in.shop2020.metamodel.core.BulletDataObject;
-
 
21
import in.shop2020.metamodel.core.CompositeDataObject;
7
import in.shop2020.metamodel.core.CompositeDataObject;
22
import in.shop2020.metamodel.core.Entity;
8
import in.shop2020.metamodel.core.Entity;
23
import in.shop2020.metamodel.core.EnumDataObject;
9
import in.shop2020.metamodel.core.EnumDataObject;
24
import in.shop2020.metamodel.core.Feature;
10
import in.shop2020.metamodel.core.Feature;
25
import in.shop2020.metamodel.core.PrimitiveDataObject;
11
import in.shop2020.metamodel.core.PrimitiveDataObject;
Line 37... Line 23...
37
import in.shop2020.metamodel.definitions.FeatureDefinition;
23
import in.shop2020.metamodel.definitions.FeatureDefinition;
38
import in.shop2020.metamodel.definitions.SlideDefinition;
24
import in.shop2020.metamodel.definitions.SlideDefinition;
39
import in.shop2020.metamodel.definitions.Unit;
25
import in.shop2020.metamodel.definitions.Unit;
40
import in.shop2020.util.Utils;
26
import in.shop2020.util.Utils;
41
 
27
 
-
 
28
import java.io.BufferedReader;
-
 
29
import java.io.FileReader;
-
 
30
import java.io.LineNumberReader;
-
 
31
import java.util.ArrayList;
-
 
32
import java.util.Collection;
-
 
33
import java.util.HashMap;
-
 
34
import java.util.Iterator;
-
 
35
import java.util.List;
-
 
36
import java.util.Map;
-
 
37
import java.util.TreeMap;
-
 
38
 
42
import org.apache.commons.lang.ArrayUtils;
39
import org.apache.commons.lang.ArrayUtils;
43
import org.apache.commons.lang.StringUtils;
40
import org.apache.commons.lang.StringUtils;
44
 
41
 
45
/**
42
/**
46
 * CN - Content Tool
43
 * CN - Content Tool
Line 67... Line 64...
67
 
64
 
68
	private long categoryID;
65
	private long categoryID;
69
	private String srcFile;
66
	private String srcFile;
70
	private String dbFile;
67
	private String dbFile;
71
	
68
	
-
 
69
	private String introductionTitle;
-
 
70
	
72
	private Map<String, Collection> slideNameToFeatureLabels = 
71
	private Map<String, Collection<String>> slideNameToFeatureLabels = 
73
		new HashMap<String, Collection>();
72
		new HashMap<String, Collection<String>>();
74
	
73
	
75
	private Map<String, Long> slideNameToSlideDefID = 
74
	private Map<String, Long> slideNameToSlideDefID = 
76
		new HashMap<String, Long>();
75
		new HashMap<String, Long>();
77
	
76
	
78
	private Map<String, Long> slideNameFeatureNameToFeatureDefID =
77
	private Map<String, Long> slideNameFeatureNameToFeatureDefID =
Line 146... Line 145...
146
		// Order of keys need to be restored
145
		// Order of keys need to be restored
147
		Map<Integer, String> candidateSlideNames = 
146
		Map<Integer, String> candidateSlideNames = 
148
			new TreeMap<Integer, String>();
147
			new TreeMap<Integer, String>();
149
		
148
		
150
		int lineCount = 0;
149
		int lineCount = 0;
-
 
150
		boolean first = true;
151
		while(true) {
151
		while(true) {
152
			String line = reader.readLine();			
152
			String line = reader.readLine();			
153
			if(line == null) {
153
			if(line == null) {
154
				break;
154
				break;
155
			}
155
			}
Line 158... Line 158...
158
			lineCount++;
158
			lineCount++;
159
			
159
			
160
			if(line.isEmpty()) {
160
			if(line.isEmpty()) {
161
				continue;
161
				continue;
162
			}
162
			}
-
 
163
			
163
 
164
 
164
			int lineNumber = reader.getLineNumber();
165
			int lineNumber = reader.getLineNumber();
165
			
166
			
166
			//Utils.logger.info(line);
167
			Utils.logger.info(line);
167
			//Utils.logger.info("lineNumber="+lineNumber);
168
			//Utils.logger.info("lineNumber="+lineNumber);
-
 
169
 
-
 
170
			// First non-empty line is introduction title - brand, model
-
 
171
			if(first) {
-
 
172
				this.introductionTitle = StringUtils.strip(line);
-
 
173
				first = false;
-
 
174
			}
168
			
175
			
169
			// RE-VISIT
176
			// RE-VISIT
170
			// 1.1 Slide names starting with Alpha
177
			// 1.1 Slide names starting with Alpha
171
			//Utils.logger.info(line.substring(0, 1));
178
			//Utils.logger.info(line.substring(0, 1));
172
			if(StringUtils.isAlpha((line.substring(0, 1)))) {
179
			if(StringUtils.isAlpha((line.substring(0, 1)))) {
173
				//Utils.logger.info(line);
180
				//Utils.logger.info(line);
174
				//Utils.logger.info("Level 0");
181
				//Utils.logger.info("Level 0");
175
				
-
 
176
				candidateSlideNames.put(new Integer(lineNumber), line);
182
				candidateSlideNames.put(new Integer(lineNumber), line);
177
			}
183
			}
178
		}
184
		}
-
 
185
		Utils.logger.info("introductionTitle=" + this.introductionTitle);
-
 
186
		//System.exit(0);
179
 
187
 
180
		lineReader.close();
188
		lineReader.close();
181
		
189
		
182
		Utils.logger.info("lineCount=" + lineCount);
190
		Utils.logger.info("lineCount=" + lineCount);
183
		Utils.logger.info(candidateSlideNames.toString());
191
		Utils.logger.info(candidateSlideNames.toString());
Line 240... Line 248...
240
		
248
		
241
		// 6 Filter and validate features
249
		// 6 Filter and validate features
242
		DefinitionsContainer defs = 
250
		DefinitionsContainer defs = 
243
			Catalog.getInstance().getDefinitionsContainer();
251
			Catalog.getInstance().getDefinitionsContainer();
244
		
252
		
245
		Map<String, Map> slideFeatureLabels = 
253
		Map<String, Map<Integer, String>> slideFeatureLabels = 
246
			new HashMap<String, Map>();
254
			new HashMap<String, Map<Integer, String>>();
247
		
255
		
248
		for(String slideName : slideNames.values()) {
256
		for(String slideName : slideNames.values()) {
249
			//Utils.logger.info("slideName=" + slideName);
257
			//Utils.logger.info("slideName=" + slideName);
250
			List<SlideDefinition> slideDefs = 
258
			List<SlideDefinition> slideDefs = 
251
				defs.getSlideDefinition(slideName);
259
				defs.getSlideDefinition(slideName);
Line 331... Line 339...
331
		entContainer.addEntity(entity);
339
		entContainer.addEntity(entity);
332
		
340
		
333
		// RE-VISIT
341
		// RE-VISIT
334
		// Store it back
342
		// Store it back
335
		DBUtils.store(entContainer.getEntities(), this.dbFile);
343
		DBUtils.store(entContainer.getEntities(), this.dbFile);
-
 
344
		
-
 
345
		// Store the index separately
-
 
346
		String entitiesbycategoryDBFile = CN.CONTENT_DB_PATH + 
-
 
347
			"entitiesbycategory" + ".ser";
-
 
348
		DBUtils.store(entContainer.getEntities(), entitiesbycategoryDBFile);
336
	}
349
	}
337
	
350
	
338
	/**
351
	/**
339
	 * 
352
	 * 
340
	 * @throws Exception
353
	 * @throws Exception
Line 350... Line 363...
350
	private Entity contructEntityObject() throws Exception {
363
	private Entity contructEntityObject() throws Exception {
351
		SequenceGenerator sg = SequenceGenerator.getInstance();
364
		SequenceGenerator sg = SequenceGenerator.getInstance();
352
		long entityID = sg.getNextSequence(SequenceGenerator.ENTITY);
365
		long entityID = sg.getNextSequence(SequenceGenerator.ENTITY);
353
		
366
		
354
		Entity entity = new Entity(entityID, this.categoryID);
367
		Entity entity = new Entity(entityID, this.categoryID);
-
 
368
		String brandModel[] = StringUtils.split(this.introductionTitle, " ");
355
		
369
		
-
 
370
		if(brandModel.length == 1) {
-
 
371
			entity.setBrand(StringUtils.strip(brandModel[0]));
-
 
372
		}
-
 
373
		else if(brandModel.length == 2) {
-
 
374
			entity.setBrand(StringUtils.strip(brandModel[0]));
-
 
375
			entity.setModelName(StringUtils.strip(brandModel[1]));
-
 
376
		}
-
 
377
		else if(brandModel.length == 3) {
-
 
378
			entity.setBrand(StringUtils.strip(brandModel[0]));
-
 
379
			entity.setModelNumber(StringUtils.strip(brandModel[1]));
-
 
380
			entity.setModelName(StringUtils.strip(brandModel[2]));
-
 
381
		}
-
 
382
			
356
		for(String slideName : this.slideNameToFeatureLabels.keySet()) {
383
		for(String slideName : this.slideNameToFeatureLabels.keySet()) {
357
			Collection<String> featureNames = 
384
			Collection<String> featureNames = 
358
				this.slideNameToFeatureLabels.get(slideName);
385
				this.slideNameToFeatureLabels.get(slideName);
359
			
386
			
360
			Long slideDefID = this.slideNameToSlideDefID.get(slideName);
387
			Long slideDefID = this.slideNameToSlideDefID.get(slideName);