Subversion Repositories SmartDukaan

Rev

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

Rev 45 Rev 47
Line 388... Line 388...
388
				
388
				
389
				Long slideDefID = 
389
				Long slideDefID = 
390
					this.slideNameSlideDefID.get(fullSlideName);
390
					this.slideNameSlideDefID.get(fullSlideName);
391
				Utils.info("slideDefID=" + slideDefID);
391
				Utils.info("slideDefID=" + slideDefID);
392
				
392
				
-
 
393
				if(slideDefID == null) {
-
 
394
					Utils.severe("Unexpected slide " + fullSlideName);
-
 
395
					continue;
-
 
396
				}
-
 
397
				
393
				SlideDefinition childSlideDef = 
398
				SlideDefinition childSlideDef = 
394
					defs.getSlideDefinition(slideDefID.longValue());
399
					defs.getSlideDefinition(slideDefID.longValue());
395
				
400
				
396
				String newDisplayTextPrefix = displayTextPrefix + " > " + 
401
				String newDisplayTextPrefix = displayTextPrefix + " > " + 
397
					childSlideDef.getLabel();
402
					childSlideDef.getLabel();
Line 534... Line 539...
534
		
539
		
535
		List<String> featureNames = 
540
		List<String> featureNames = 
536
			this.slideNameFeatureNames.get(slideName);
541
			this.slideNameFeatureNames.get(slideName);
537
		
542
		
538
		Long slideDefID = this.slideNameSlideDefID.get(slideName);
543
		Long slideDefID = this.slideNameSlideDefID.get(slideName);
-
 
544
		
-
 
545
		if(slideDefID == null) {
-
 
546
			Utils.severe("Unexpected slide " + slideName);
-
 
547
			return null;
-
 
548
		}
-
 
549
		
539
		in.shop2020.metamodel.core.Slide slide = 
550
		in.shop2020.metamodel.core.Slide slide = 
540
			new in.shop2020.metamodel.core.Slide(slideDefID.longValue());
551
			new in.shop2020.metamodel.core.Slide(slideDefID.longValue());
541
		
552
		
542
		// Only if there are features
553
		// Only if there are features
543
		if(featureNames != null) {
554
		if(featureNames != null) {
Line 574... Line 585...
574
		if(childrenSlideNames != null) {
585
		if(childrenSlideNames != null) {
575
			for(String childSlideName : childrenSlideNames) {
586
			for(String childSlideName : childrenSlideNames) {
576
				in.shop2020.metamodel.core.Slide childSlide = 
587
				in.shop2020.metamodel.core.Slide childSlide = 
577
					this.constructSlideObject(slideName + "_" + childSlideName);
588
					this.constructSlideObject(slideName + "_" + childSlideName);
578
				
589
				
-
 
590
				if(childSlide != null) {
579
				slide.addChild(childSlide);
591
					slide.addChild(childSlide);
-
 
592
				}
580
			}
593
			}
581
		}
594
		}
582
		
595
		
583
		// Add free-form content is collect above
596
		// Add free-form content is collect above
584
		List<String> slideFFCs = this.containerFCCs.get(slideName);
597
		List<String> slideFFCs = this.containerFCCs.get(slideName);
Line 619... Line 632...
619
			Catalog.getInstance().getDefinitionsContainer();
632
			Catalog.getInstance().getDefinitionsContainer();
620
		
633
		
621
		Long slideDefID = this.slideNameSlideDefID.get(slideName);
634
		Long slideDefID = this.slideNameSlideDefID.get(slideName);
622
		Utils.info("slideName=" + slideName);
635
		Utils.info("slideName=" + slideName);
623
		
636
		
-
 
637
		if(slideDefID == null) {
-
 
638
			Utils.severe("Unexpected slide " + slideName);
-
 
639
			return;
-
 
640
		}
-
 
641
		
624
		List<String> featureLabels = 
642
		List<String> featureLabels = 
625
			this.slideNameFeatureNames.get(slideName);
643
			this.slideNameFeatureNames.get(slideName);
626
		Utils.info("featureLabels=" + featureLabels);
644
		Utils.info("featureLabels=" + featureLabels);
627
		
645
		
628
		// Feature-less slide
646
		// Feature-less slide
629
		if(featureLabels != null && !featureLabels.isEmpty()) {
647
		if(featureLabels != null && !featureLabels.isEmpty()) {
630
			for(String featureLabel : featureLabels) {
648
			for(String featureLabel : featureLabels) {
-
 
649
				Utils.info("defs=" + defs);
-
 
650
				Utils.info("slideDefID=" + slideDefID);
-
 
651
				Utils.info("featureLabel=" + featureLabel);
-
 
652
				
631
				FeatureDefinition featureDef = 
653
				FeatureDefinition featureDef = 
632
					defs.getFeatureDefinition(slideDefID, featureLabel);
654
					defs.getFeatureDefinition(slideDefID, featureLabel);
633
				String key = slideName + "_" + featureLabel;
655
				String key = slideName + "_" + featureLabel;
634
				
656
				
-
 
657
				if(featureDef == null) {
-
 
658
					Utils.severe("Unexpected feature " + key);
-
 
659
					continue;
-
 
660
				}
-
 
661
				
635
				this.slideNameFeatureNameFeatureDefID.put(key, 
662
				this.slideNameFeatureNameFeatureDefID.put(key, 
636
						new Long(featureDef.getID()));
663
						new Long(featureDef.getID()));
637
			}
664
			}
638
		}
665
		}
639
		
666
		
Line 753... Line 780...
753
	 */
780
	 */
754
	private void processFeatures(String slideName, String displayTextPrefix) 
781
	private void processFeatures(String slideName, String displayTextPrefix) 
755
		throws Exception {
782
		throws Exception {
756
		Utils.info("Processing features for " + slideName);
783
		Utils.info("Processing features for " + slideName);
757
		
784
		
-
 
785
		if(this.slideNameSlideDefID.get(slideName) == null) {
-
 
786
			Utils.severe("Unexpected slide \"" + displayTextPrefix + "\"");
-
 
787
			return;
-
 
788
		}
-
 
789
		
758
		long slideDefID = this.slideNameSlideDefID.get(slideName).longValue();
790
		long slideDefID = this.slideNameSlideDefID.get(slideName).longValue();
759
		Utils.info("slideID=" + slideDefID);
791
		Utils.info("slideID=" + slideDefID);
760
		
792
		
761
		List<String> candidateFeatures = 
793
		List<String> candidateFeatures = 
762
			this.slideNameFeatureNames.get(slideName);
794
			this.slideNameFeatureNames.get(slideName);
Line 792... Line 824...
792
		// Missing features check
824
		// Missing features check
793
		if(candidateFeatures == null || candidateFeatures.isEmpty()) {
825
		if(candidateFeatures == null || candidateFeatures.isEmpty()) {
794
			Utils.severe("Missing features " + 
826
			Utils.severe("Missing features " + 
795
					StringUtils.join(validFeatureLabels, ", "));
827
					StringUtils.join(validFeatureLabels, ", "));
796
		}
828
		}
797
		 
829
		
-
 
830
		if(candidateFeatures != null) {
798
		// Discard if feature is not one of the valids
831
			// Discard if feature is not one of the valids
799
		List<String> processedFeatureLabels = new ArrayList<String>();
832
			List<String> processedFeatureLabels = new ArrayList<String>();
800
		for(String featureLabel : candidateFeatures) {
833
			for(String featureLabel : candidateFeatures) {
801
			
834
				
802
			if(validFeatureLabels.contains(featureLabel)) {
835
				if(validFeatureLabels.contains(featureLabel)) {
803
				processedFeatureLabels.add(featureLabel);
836
					processedFeatureLabels.add(featureLabel);
804
			}
837
				}
805
			else {		
838
				else {		
806
				Utils.severe("Invalid feature \"" + displayTextPrefix + 
839
					Utils.severe("Invalid feature \"" + displayTextPrefix + 
807
						" > " + featureLabel + "\"");
840
							" > " + featureLabel + "\"");
-
 
841
				}
-
 
842
				
808
			}
843
			}
-
 
844
			Utils.info("processedFeatureLabels=" + processedFeatureLabels);
809
			
845
			
810
		}
-
 
811
		Utils.info("processedFeatureLabels=" + processedFeatureLabels);
-
 
812
		
-
 
813
		// For all further processing
846
			// For all further processing
814
		this.slideNameFeatureNames.put(slideName, processedFeatureLabels);
847
			this.slideNameFeatureNames.put(slideName, processedFeatureLabels);
815
		
848
			
816
		// Fetch all mandatory features
849
			// Fetch all mandatory features
817
		List<FeatureDefinition> mandatoryFeatureDefs = 
850
			List<FeatureDefinition> mandatoryFeatureDefs = 
818
			defs.getFeatureDefinitions(slideDefID,
851
				defs.getFeatureDefinitions(slideDefID,
819
			EditorialImportance.MANDATORY);
852
				EditorialImportance.MANDATORY);
820
 
853
	
821
		Utils.info("mandatoryFeatureDefs=" + mandatoryFeatureDefs);
854
			Utils.info("mandatoryFeatureDefs=" + mandatoryFeatureDefs);
822
		
855
			
823
		// Severe error if mandatory features are not included
856
			// Severe error if mandatory features are not included
824
		for(FeatureDefinition featureDef : mandatoryFeatureDefs) {
857
			for(FeatureDefinition featureDef : mandatoryFeatureDefs) {
825
			if(!processedFeatureLabels.contains(StringUtils.lowerCase(
858
				if(!processedFeatureLabels.contains(StringUtils.lowerCase(
826
					featureDef.getLabel()))) {
859
						featureDef.getLabel()))) {
827
				Utils.severe("Mandatory feature \"" + displayTextPrefix 
860
					Utils.severe("Mandatory feature \"" + displayTextPrefix 
828
						+ " > " + featureDef.getLabel() + "\" is missing");
861
							+ " > " + featureDef.getLabel() + "\" is missing");
-
 
862
				}
829
			}
863
			}
830
		}
864
			
831
		
-
 
832
		// Fetch all recommended features
865
			// Fetch all recommended features
833
		List<FeatureDefinition> recommendedFeatureDefs = 
866
			List<FeatureDefinition> recommendedFeatureDefs = 
834
			defs.getFeatureDefinitions(slideDef.getID(),
867
				defs.getFeatureDefinitions(slideDef.getID(),
835
			EditorialImportance.RECOMMENDED);
868
				EditorialImportance.RECOMMENDED);
836
 
869
	
837
		Utils.info("recommendedFeatureDefs=" + recommendedFeatureDefs);
870
			Utils.info("recommendedFeatureDefs=" + recommendedFeatureDefs);
838
		
871
			
839
		// Warn if recommended features are not included
872
			// Warn if recommended features are not included
840
		for(FeatureDefinition featureDef : recommendedFeatureDefs) {
873
			for(FeatureDefinition featureDef : recommendedFeatureDefs) {
841
			if(!processedFeatureLabels.contains(StringUtils.lowerCase(
874
				if(!processedFeatureLabels.contains(StringUtils.lowerCase(
842
					featureDef.getLabel()))) {
875
						featureDef.getLabel()))) {
843
				Utils.warning("Recommended feature \"" + displayTextPrefix + 
876
					Utils.warning("Recommended feature \"" + displayTextPrefix + 
844
						" > " + featureDef.getLabel() + 
877
							" > " + featureDef.getLabel() + 
845
						"\" is missing");
878
							"\" is missing");
-
 
879
				}
846
			}
880
			}
847
		}
881
		}
848
		
882
		
849
		// Process features of children slides
883
		// Process features of children slides
850
		List<String> childrenSlideNames = 
884
		List<String> childrenSlideNames =