Subversion Repositories SmartDukaan

Rev

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

Rev 33 Rev 34
Line 6... Line 6...
6
import in.shop2020.metamodel.core.Bullet;
6
import in.shop2020.metamodel.core.Bullet;
7
import in.shop2020.metamodel.core.CompositeDataObject;
7
import in.shop2020.metamodel.core.CompositeDataObject;
8
import in.shop2020.metamodel.core.Entity;
8
import in.shop2020.metamodel.core.Entity;
9
import in.shop2020.metamodel.core.EnumDataObject;
9
import in.shop2020.metamodel.core.EnumDataObject;
10
import in.shop2020.metamodel.core.Feature;
10
import in.shop2020.metamodel.core.Feature;
-
 
11
import in.shop2020.metamodel.core.FreeformContent;
11
import in.shop2020.metamodel.core.PrimitiveDataObject;
12
import in.shop2020.metamodel.core.PrimitiveDataObject;
12
import in.shop2020.metamodel.core.Slide;
13
import in.shop2020.metamodel.core.Slide;
13
import in.shop2020.metamodel.definitions.BulletDefinition;
14
import in.shop2020.metamodel.definitions.BulletDefinition;
14
import in.shop2020.metamodel.definitions.Catalog;
15
import in.shop2020.metamodel.definitions.Catalog;
15
import in.shop2020.metamodel.definitions.Category;
16
import in.shop2020.metamodel.definitions.Category;
Line 20... Line 21...
20
import in.shop2020.metamodel.definitions.EditorialImportance;
21
import in.shop2020.metamodel.definitions.EditorialImportance;
21
import in.shop2020.metamodel.definitions.EntityContainer;
22
import in.shop2020.metamodel.definitions.EntityContainer;
22
import in.shop2020.metamodel.definitions.EnumDefinition;
23
import in.shop2020.metamodel.definitions.EnumDefinition;
23
import in.shop2020.metamodel.definitions.FeatureDefinition;
24
import in.shop2020.metamodel.definitions.FeatureDefinition;
24
import in.shop2020.metamodel.definitions.SlideDefinition;
25
import in.shop2020.metamodel.definitions.SlideDefinition;
-
 
26
import in.shop2020.metamodel.definitions.SlideFeatureDefinition;
25
import in.shop2020.metamodel.definitions.Unit;
27
import in.shop2020.metamodel.definitions.Unit;
26
import in.shop2020.util.Utils;
28
import in.shop2020.util.Utils;
27
 
29
 
28
import java.io.BufferedReader;
30
import java.io.BufferedReader;
29
import java.io.FileReader;
31
import java.io.FileReader;
Line 50... Line 52...
50
		"/home/naveen/workspace/eclipse/content/txt/";
52
		"/home/naveen/workspace/eclipse/content/txt/";
51
	public static final String CONTENT_SRC_HTML_PATH = 
53
	public static final String CONTENT_SRC_HTML_PATH = 
52
		"/home/naveen/workspace/eclipse/content/html/";
54
		"/home/naveen/workspace/eclipse/content/html/";
53
	public static final String CONTENT_SRC_XML_PATH = 
55
	public static final String CONTENT_SRC_XML_PATH = 
54
		"/home/naveen/workspace/eclipse/content/xml/";
56
		"/home/naveen/workspace/eclipse/content/xml/";
-
 
57
	
-
 
58
	//** LOCAL
55
	public static final String CONTENT_DB_PATH =  
59
	public static final String CONTENT_DB_PATH =  
56
		"/home/naveen/workspace/eclipse/db/entities/";
60
		"/home/naveen/workspace/eclipse/db/entities/";
57
	
61
	
-
 
62
	/** WEB
-
 
63
	public static final String CONTENT_DB_PATH =  
-
 
64
		"/var/lib/tomcat6/webapps/shop2020/db/entities/";
-
 
65
	*/
-
 
66
	
-
 
67
	
58
	// Known patterns
68
	// Known patterns
59
	public static final String PATTERN_LEVEL_1 = "* ";
69
	public static final String PATTERN_LEVEL_1 = "* ";
60
	public static final String PATTERN_LEVEL_2 = "   * ";
70
	public static final String PATTERN_LEVEL_2 = "   * ";
61
	public static final String PATTERN_LEVEL_3 = "      * ";
71
	public static final String PATTERN_LEVEL_3 = "      * ";
62
	public static final String PATTERN_LEVEL_4 = "         * ";
72
	public static final String PATTERN_LEVEL_4 = "         * ";
Line 80... Line 90...
80
		new HashMap<String, Long>();
90
		new HashMap<String, Long>();
81
 
91
 
82
	private Map<String, List<Bullet>> slideNameFeatureNameToBullets =
92
	private Map<String, List<Bullet>> slideNameFeatureNameToBullets =
83
		new HashMap<String, List<Bullet>>();
93
		new HashMap<String, List<Bullet>>();
84
	
94
	
-
 
95
	private Map<String, String> slideNameToFreeformContent = 
-
 
96
		new HashMap<String, String>();
-
 
97
		
85
	/**
98
	/**
86
	 * @param args
99
	 * @param args
87
	 */
100
	 */
88
	public static void main(String[] args) throws Exception {
101
	public static void main(String[] args) throws Exception {
89
		String[] commands = new String[] {"show", "import"};
102
		String[] commands = new String[] {"show", "import"};
Line 297... Line 310...
297
				continue;
310
				continue;
298
			} 
311
			} 
299
			
312
			
300
			// RE-VISIT
313
			// RE-VISIT
301
			// Pick the first
314
			// Pick the first
-
 
315
			SlideDefinition slideDef = slideDefs.get(0);
302
			Utils.logger.info("slideDef=" + slideDefs.get(0));
316
			Utils.logger.info("slideDef=" + slideDef);
-
 
317
			
303
			Long slideID = slideDefs.get(0).getID();
318
			Long slideID = slideDef.getID();
304
			this.slideNameToSlideDefID.put(slideName, slideID);
319
			this.slideNameToSlideDefID.put(slideName, slideID);
305
			
320
			
-
 
321
			// If there are NO children slides or features defined for the slide
-
 
322
			// Every under it is free-form content
-
 
323
			List<Long> childrenSlideDefIDs = 
-
 
324
				slideDef.getChildrenSlideDefinitionIDs();
-
 
325
			
-
 
326
			List<SlideFeatureDefinition> slideFeatureDef = 
-
 
327
				slideDef.getSlideFeatureDefinitions();
-
 
328
			
-
 
329
			if((childrenSlideDefIDs == null || childrenSlideDefIDs.size() == 0) 
-
 
330
				&& (slideFeatureDef == null || slideFeatureDef.size() == 0)){
-
 
331
				
-
 
332
				int[] slideFFCRange = 
-
 
333
					featureLineNumberRangePerSlide.get(slideName);
-
 
334
				
-
 
335
				StringBuffer ffcSB = new StringBuffer();
-
 
336
				Utils.logger.info("slideFFCRange[0]=" + slideFFCRange[0]);
-
 
337
				Utils.logger.info("slideFFCRange[1]=" + slideFFCRange[1]);
-
 
338
				
-
 
339
				for(int i=slideFFCRange[0]; i<slideFFCRange[1]; i++) {
-
 
340
					ffcSB.append(allLines.get(i));
-
 
341
				}
-
 
342
				
-
 
343
				Utils.logger.info(slideName + " " + " ffcSB.toString()=" + 
-
 
344
						ffcSB.toString());
-
 
345
				
-
 
346
				this.slideNameToFreeformContent.put(slideName, 
-
 
347
						ffcSB.toString());
-
 
348
				
-
 
349
				continue;
-
 
350
			}
-
 
351
			
306
			Map<Integer, String> featureLabels = 
352
			Map<Integer, String> featureLabels = 
307
				this.processFeature(allLines, slideDefs.get(0), 
353
				this.processFeature(allLines, slideDef, 
308
					featureLineNumberRangePerSlide.get(slideName));
354
					featureLineNumberRangePerSlide.get(slideName));
309
			
355
			
310
			// Find feature definition IDs
356
			// Find feature definition IDs
311
			for(String featureLabel : featureLabels.values()) {
357
			for(String featureLabel : featureLabels.values()) {
312
				FeatureDefinition featureDef = defs.getFeatureDefinition(
358
				FeatureDefinition featureDef = defs.getFeatureDefinition(
Line 378... Line 424...
378
		DBUtils.store(entContainer.getEntities(), this.dbFile);
424
		DBUtils.store(entContainer.getEntities(), this.dbFile);
379
		
425
		
380
		// Store the index separately
426
		// Store the index separately
381
		String entitiesbycategoryDBFile = CN.CONTENT_DB_PATH + 
427
		String entitiesbycategoryDBFile = CN.CONTENT_DB_PATH + 
382
			"entitiesbycategory" + ".ser";
428
			"entitiesbycategory" + ".ser";
-
 
429
		
383
		DBUtils.store(entContainer.getEntities(), entitiesbycategoryDBFile);
430
		DBUtils.store(entContainer.getEntitiesbyCategory(), 
-
 
431
				entitiesbycategoryDBFile);
384
	}
432
	}
385
	
433
	
386
	/**
434
	/**
387
	 * 
435
	 * 
388
	 * @return Entity 
436
	 * @return Entity 
Line 413... Line 461...
413
				this.slideNameToFeatureLabels.get(slideName);
461
				this.slideNameToFeatureLabels.get(slideName);
414
			
462
			
415
			Long slideDefID = this.slideNameToSlideDefID.get(slideName);
463
			Long slideDefID = this.slideNameToSlideDefID.get(slideName);
416
			Slide slide = new Slide(slideDefID.longValue());
464
			Slide slide = new Slide(slideDefID.longValue());
417
			
465
			
-
 
466
			// Only if there are features
-
 
467
			if(featureNames != null) {
418
			List<Feature> features = new ArrayList<Feature>();
468
				List<Feature> features = new ArrayList<Feature>();
419
			
469
				
420
 			for(String featureName : featureNames) {
470
	 			for(String featureName : featureNames) {
421
				Long featureDefID = this.slideNameFeatureNameToFeatureDefID.get(
471
					Long featureDefID = this.slideNameFeatureNameToFeatureDefID.get(
422
						slideName + "_" + featureName);
472
							slideName + "_" + featureName);
423
				
473
					
424
				List<Bullet> bullets = this.slideNameFeatureNameToBullets.get(
474
					List<Bullet> bullets = this.slideNameFeatureNameToBullets.get(
425
						slideName + "_" + featureName);
475
							slideName + "_" + featureName);
426
				
476
					
427
				Feature feature = new Feature(featureDefID.longValue());
477
					Feature feature = new Feature(featureDefID.longValue());
428
				feature.setBullets(bullets);
478
					feature.setBullets(bullets);
-
 
479
					
-
 
480
					features.add(feature);
-
 
481
				}
429
				
482
				
430
				features.add(feature);
483
				slide.setFeatures(features);
-
 
484
			}
-
 
485
			
-
 
486
			// Add free-form content is collect above
-
 
487
			String ffc = this.slideNameToFreeformContent.get(slideName);
-
 
488
			Utils.logger.info("slideName=" + slideName + " ffc=" + ffc);
-
 
489
			
-
 
490
			if(ffc != null) {
-
 
491
				slide.setFreeformContent(new FreeformContent(ffc));
431
			}
492
			}
432
			
493
			
433
			slide.setFeatures(features);
-
 
434
			entity.addSlide(slide);
494
			entity.addSlide(slide);
435
		}
495
		}
436
		
496
		
437
		return entity;
497
		return entity;
438
	}
498
	}
Line 581... Line 641...
581
			else if(isEnum && !bulletDef.isLearned()) {
641
			else if(isEnum && !bulletDef.isLearned()) {
582
				long enumValueID = defs.getEnumValueID(datatypeDef.getID(), 
642
				long enumValueID = defs.getEnumValueID(datatypeDef.getID(), 
583
						bulletValue);
643
						bulletValue);
584
				Utils.logger.info("enumValueID=" + enumValueID);
644
				Utils.logger.info("enumValueID=" + enumValueID);
585
				
645
				
-
 
646
				// Treat it to be free-form
586
				if(enumValueID == -1L) {
647
				if(enumValueID == -1L) {
587
					Utils.logger.severe("Invalid value, " + crumb + " = " + 
648
					Utils.logger.warning("Not one of the valid enum values, " +
-
 
649
							"treating it like free-form content - " + crumb + 
588
							bulletValue);
650
							" = " + bulletValue);
589
					
651
					
590
					continue;
652
					continue;
591
				}
653
				}
592
				
654
				
593
				EnumDataObject enumDataObject = new EnumDataObject(enumValueID);
655
				EnumDataObject enumDataObject = new EnumDataObject(enumValueID);