Subversion Repositories SmartDukaan

Rev

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

Rev 200 Rev 201
Line 8... Line 8...
8
import java.util.Collection;
8
import java.util.Collection;
9
import java.util.HashMap;
9
import java.util.HashMap;
10
import java.util.List;
10
import java.util.List;
11
import java.util.Map;
11
import java.util.Map;
12
 
12
 
-
 
13
import in.shop2020.metamodel.core.Bullet;
13
import in.shop2020.metamodel.core.Entity;
14
import in.shop2020.metamodel.core.Entity;
-
 
15
import in.shop2020.metamodel.core.Feature;
14
import in.shop2020.metamodel.core.FreeformContent;
16
import in.shop2020.metamodel.core.FreeformContent;
-
 
17
import in.shop2020.metamodel.core.PrimitiveDataObject;
15
import in.shop2020.metamodel.core.Slide;
18
import in.shop2020.metamodel.core.Slide;
16
import in.shop2020.metamodel.definitions.Category;
19
import in.shop2020.metamodel.definitions.Category;
17
import in.shop2020.metamodel.definitions.DefinitionsContainer;
20
import in.shop2020.metamodel.definitions.DefinitionsContainer;
18
import in.shop2020.metamodel.definitions.EntityContainer;
21
import in.shop2020.metamodel.definitions.EntityContainer;
-
 
22
import in.shop2020.metamodel.definitions.FeatureDefinition;
-
 
23
import in.shop2020.metamodel.definitions.SlideDefinition;
-
 
24
import in.shop2020.metamodel.definitions.SlideFeatureDefinition;
19
import in.shop2020.metamodel.util.ExpandedBullet;
25
import in.shop2020.metamodel.util.ExpandedBullet;
-
 
26
import in.shop2020.metamodel.util.ExpandedBulletDefinition;
20
import in.shop2020.metamodel.util.ExpandedEntity;
27
import in.shop2020.metamodel.util.ExpandedEntity;
-
 
28
import in.shop2020.metamodel.util.ExpandedFeature;
-
 
29
import in.shop2020.metamodel.util.ExpandedFeatureDefinition;
21
import in.shop2020.metamodel.util.ExpandedSlide;
30
import in.shop2020.metamodel.util.ExpandedSlide;
22
import in.shop2020.metamodel.util.ExpandedSlideDefinition;
31
import in.shop2020.metamodel.util.ExpandedSlideDefinition;
23
import in.shop2020.metamodel.util.SequenceGenerator;
32
import in.shop2020.metamodel.util.SequenceGenerator;
24
import in.shop2020.util.DBUtils;
33
import in.shop2020.util.DBUtils;
25
import in.shop2020.util.Utils;
34
import in.shop2020.util.Utils;
Line 256... Line 265...
256
				
265
				
257
				// Update Entity Record
266
				// Update Entity Record
258
				Slide currentSlide = entity.getSlide(currentSlideID);
267
				Slide currentSlide = entity.getSlide(currentSlideID);
259
				
268
				
260
				// Slide free-form content
269
				// Slide free-form content
261
				FreeformContent slideFFC = new FreeformContent();
270
				FreeformContent slideFFC = this.getFreeformContent("slide");
262
				String[] slideFFTs = this.reqparams.get("slide_fft");
-
 
263
				if(slideFFTs != null) {
-
 
264
					slideFFC.setFreeformTexts(Arrays.asList(slideFFTs));
-
 
265
				}
-
 
266
				
-
 
267
				String[] slideImgURLs = this.reqparams.get("slide_image_url");
-
 
268
				if(slideImgURLs != null) {
-
 
269
					slideFFC.setImageURLs(Arrays.asList(slideImgURLs));
-
 
270
				}
-
 
271
				
-
 
272
				String[] slideYoutubeURLs = 
-
 
273
					this.reqparams.get("slide_youtube_url");
-
 
274
				if(slideYoutubeURLs != null) {
-
 
275
					slideFFC.setYoutubeURLs(Arrays.asList(slideYoutubeURLs));
-
 
276
				}
-
 
277
				log.info("slideFFC:" + slideFFC);
271
				log.info("slideFFC:" + slideFFC);
278
				
272
				
279
				currentSlide.setFreeformContent(slideFFC);
273
				currentSlide.setFreeformContent(slideFFC);
280
				//log.info("currentSlide:" + currentSlide);
274
				//log.info("currentSlide:" + currentSlide);
281
				
275
				
-
 
276
				// Collect Feature bullets
-
 
277
				List<Feature> features = this.createFeatures(currentSlide);
-
 
278
				log.info("features:" + features);
-
 
279
				
-
 
280
				currentSlide.setFeatures(features);
-
 
281
				
282
				// Store
282
				// Store
283
				this.updateEntity(entity);
283
				this.updateEntity(entity);
284
				//log.info("entity:" + entity);
284
				//log.info("entity:" + entity);
285
			}
285
			}
286
			
286
			
Line 390... Line 390...
390
    	
390
    	
391
        return "success";
391
        return "success";
392
    }
392
    }
393
    
393
    
394
    /**
394
    /**
-
 
395
     * 
-
 
396
     * @param slide
-
 
397
     * @return
-
 
398
     * @throws Exception
-
 
399
     */
-
 
400
    private List<Feature> createFeatures(Slide slide) throws Exception {
-
 
401
		
-
 
402
		long slideDefID = slide.getSlideDefinitionID();
-
 
403
		SlideDefinition slideDef = defs.getSlideDefinition(slideDefID);
-
 
404
		
-
 
405
		List<SlideFeatureDefinition> slideFeatureDefs = 
-
 
406
			slideDef.getSlideFeatureDefinitions();
-
 
407
		
-
 
408
		DefinitionsContainer defs = this.getDefinitionsContainer();
-
 
409
		
-
 
410
		List<Feature> features = new ArrayList<Feature>();	
-
 
411
		for(SlideFeatureDefinition slideFeatureDef : slideFeatureDefs) {
-
 
412
			long featureDefinitionID = slideFeatureDef.getFeatureDefintionID();
-
 
413
 
-
 
414
			String featureDefIDString = 
-
 
415
				new Long(featureDefinitionID).toString();
-
 
416
 
-
 
417
			String[] bulletValues = this.reqparams.get(featureDefIDString);
-
 
418
			if(bulletValues == null || bulletValues.length == 0) {
-
 
419
				continue;
-
 
420
			}
-
 
421
			
-
 
422
			Feature feature = new Feature(featureDefinitionID);
-
 
423
			
-
 
424
			// Bullets
-
 
425
			List<Bullet> bullets = new ArrayList<Bullet>();
-
 
426
			FeatureDefinition featureDef = defs.getFeatureDefinition(
-
 
427
					featureDefinitionID);
-
 
428
			
-
 
429
			ExpandedFeatureDefinition expFeatureDef = 
-
 
430
				new ExpandedFeatureDefinition(featureDef);
-
 
431
			
-
 
432
			ExpandedBulletDefinition expBulletDef = 
-
 
433
				expFeatureDef.getExpandedBulletDefinition();
-
 
434
			
-
 
435
			// Composite
-
 
436
			if(expBulletDef.isComposite()) {
-
 
437
				
-
 
438
			}
-
 
439
			
-
 
440
			// Enumerated
-
 
441
			else if(expBulletDef.isEnumerated()) {
-
 
442
				
-
 
443
			}
-
 
444
			
-
 
445
			// Primitive
-
 
446
			else {
-
 
447
				Bullet bullet = new Bullet(
-
 
448
						new PrimitiveDataObject(bulletValues[0]));
-
 
449
				
-
 
450
				bullets.add(bullet);
-
 
451
			}
-
 
452
			
-
 
453
			feature.setBullets(bullets);
-
 
454
			
-
 
455
			// FFC
-
 
456
			FreeformContent featureFFC = 
-
 
457
				this.getFreeformContent(featureDefIDString);
-
 
458
			
-
 
459
			feature.setFreeformContent(featureFFC);
-
 
460
			
-
 
461
			features.add(feature);
-
 
462
		}
-
 
463
		
-
 
464
		return features;
-
 
465
	}
-
 
466
 
-
 
467
	/**
-
 
468
     * 
-
 
469
     * @param ID
-
 
470
     * @return
-
 
471
     */
-
 
472
    private FreeformContent getFreeformContent(String ID) {
-
 
473
		FreeformContent ffc = new FreeformContent();
-
 
474
		String[] ffts = this.reqparams.get(ID + "_fft");
-
 
475
		if(ffts != null) {
-
 
476
			ffc.setFreeformTexts(Arrays.asList(ffts));
-
 
477
		}
-
 
478
		
-
 
479
		String[] imgURLs = this.reqparams.get(ID + "_image_url");
-
 
480
		if(imgURLs != null) {
-
 
481
			ffc.setImageURLs(Arrays.asList(imgURLs));
-
 
482
		}
-
 
483
		
-
 
484
		String[] youtubeURLs = 
-
 
485
			this.reqparams.get(ID + "_youtube_url");
-
 
486
		if(youtubeURLs != null) {
-
 
487
			ffc.setYoutubeURLs(Arrays.asList(youtubeURLs));
-
 
488
		}
-
 
489
		
-
 
490
		log.info("ffc:" + ffc);
-
 
491
		return ffc;
-
 
492
	}
-
 
493
 
-
 
494
	/**
395
	 * @return the entities
495
	 * @return the entities
396
	 */
496
	 */
397
	public Collection<Entity> getEntities() {
497
	public Collection<Entity> getEntities() {
398
		return entities;
498
		return entities;
399
	}
499
	}
Line 625... Line 725...
625
			throws Exception {
725
			throws Exception {
626
		EntityContainer ents = this.getEntityContainer();
726
		EntityContainer ents = this.getEntityContainer();
627
		List<ExpandedBullet> learnedBullets = 
727
		List<ExpandedBullet> learnedBullets = 
628
			ents.getLearnedBullets(featureDefinitionID);
728
			ents.getLearnedBullets(featureDefinitionID);
629
		
729
		
-
 
730
		if(learnedBullets == null) {
-
 
731
			return "";
-
 
732
		}
-
 
733
		
630
		List<String> learnedValues = new ArrayList<String>();
734
		List<String> learnedValues = new ArrayList<String>();
631
		for(ExpandedBullet expBullet : learnedBullets) {
735
		for(ExpandedBullet expBullet : learnedBullets) {
632
			learnedValues.add(expBullet.getValue());
736
			learnedValues.add(expBullet.getValue());
633
		}
737
		}
634
		
738
		
635
		return "\"" + StringUtils.join(learnedValues, "\", \"") + "\"";
739
		return "\"" + StringUtils.join(learnedValues, "\", \"") + "\"";
636
	}
740
	}
637
 
741
 
638
	/**
742
	/**
639
	 * 
743
	 * 
-
 
744
	 * @param featureDefinitionID
-
 
745
	 * @return
-
 
746
	 * @throws Exception
-
 
747
	 */
-
 
748
	public ExpandedFeature getFeature(long featureDefinitionID) 
-
 
749
		throws Exception {
-
 
750
		EntityContainer ents = this.getEntityContainer();
-
 
751
		
-
 
752
		Feature feature = ents.getFeature(this.expSlide, featureDefinitionID);
-
 
753
		if(feature == null) {
-
 
754
			return null;
-
 
755
		}
-
 
756
		
-
 
757
		return new ExpandedFeature(feature);
-
 
758
	}
-
 
759
	
-
 
760
	/**
-
 
761
	 * 
640
	 * @param aThrowable
762
	 * @param aThrowable
641
	 * @return
763
	 * @return
642
	 */
764
	 */
643
	private String getStackTrace(Throwable aThrowable) {
765
	private String getStackTrace(Throwable aThrowable) {
644
	    final Writer result = new StringWriter();
766
	    final Writer result = new StringWriter();