Subversion Repositories SmartDukaan

Rev

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

Rev 26 Rev 28
Line 66... Line 66...
66
	private String srcFile;
66
	private String srcFile;
67
	private String dbFile;
67
	private String dbFile;
68
	
68
	
69
	private String introductionTitle;
69
	private String introductionTitle;
70
	
70
	
-
 
71
	// Slide names in sequence
-
 
72
	private List<String> slideNames = new ArrayList<String>();
-
 
73
	
71
	private Map<String, Collection<String>> slideNameToFeatureLabels = 
74
	private Map<String, Collection<String>> slideNameToFeatureLabels = 
72
		new HashMap<String, Collection<String>>();
75
		new HashMap<String, Collection<String>>();
73
	
76
	
74
	private Map<String, Long> slideNameToSlideDefID = 
77
	private Map<String, Long> slideNameToSlideDefID = 
75
		new HashMap<String, Long>();
78
		new HashMap<String, Long>();
Line 203... Line 206...
203
			// 1.1 Slide names starting with Alpha
206
			// 1.1 Slide names starting with Alpha
204
			//Utils.logger.info(line.substring(0, 1));
207
			//Utils.logger.info(line.substring(0, 1));
205
			if(StringUtils.isAlpha((line.substring(0, 1)))) {
208
			if(StringUtils.isAlpha((line.substring(0, 1)))) {
206
				//Utils.logger.info(line);
209
				//Utils.logger.info(line);
207
				//Utils.logger.info("Level 0");
210
				//Utils.logger.info("Level 0");
208
				candidateSlideNames.put(new Integer(lineNumber), line);
211
				candidateSlideNames.put(new Integer(lineNumber), 
-
 
212
						StringUtils.strip(line));
209
			}
213
			}
210
		}
214
		}
211
		Utils.logger.info("introductionTitle=" + this.introductionTitle);
215
		Utils.logger.info("introductionTitle=" + this.introductionTitle);
212
		//System.exit(0);
216
		//System.exit(0);
213
 
217
 
Line 280... Line 284...
280
			new HashMap<String, Map<Integer, String>>();
284
			new HashMap<String, Map<Integer, String>>();
281
		
285
		
282
		for(String slideName : slideNames.values()) {
286
		for(String slideName : slideNames.values()) {
283
			//Utils.logger.info("slideName=" + slideName);
287
			//Utils.logger.info("slideName=" + slideName);
284
			List<SlideDefinition> slideDefs = 
288
			List<SlideDefinition> slideDefs = 
285
				defs.getSlideDefinition(slideName);
289
				defs.getSlideDefinitions(slideName);
286
			
290
			
287
			if(slideDefs == null) {
291
			if(slideDefs == null) {
288
				continue;
292
				continue;
289
			}
293
			}
290
			
294
			
Line 397... Line 401...
397
			entity.setBrand(StringUtils.strip(brandModel[0]));
401
			entity.setBrand(StringUtils.strip(brandModel[0]));
398
			entity.setModelNumber(StringUtils.strip(brandModel[1]));
402
			entity.setModelNumber(StringUtils.strip(brandModel[1]));
399
			entity.setModelName(StringUtils.strip(brandModel[2]));
403
			entity.setModelName(StringUtils.strip(brandModel[2]));
400
		}
404
		}
401
			
405
			
402
		for(String slideName : this.slideNameToFeatureLabels.keySet()) {
406
		for(String slideName : this.slideNames) {
403
			Collection<String> featureNames = 
407
			Collection<String> featureNames = 
404
				this.slideNameToFeatureLabels.get(slideName);
408
				this.slideNameToFeatureLabels.get(slideName);
405
			
409
			
406
			Long slideDefID = this.slideNameToSlideDefID.get(slideName);
410
			Long slideDefID = this.slideNameToSlideDefID.get(slideName);
407
			Slide slide = new Slide(slideDefID.longValue());
411
			Slide slide = new Slide(slideDefID.longValue());
Line 469... Line 473...
469
		DatatypeDefinition datatypeDef = 
473
		DatatypeDefinition datatypeDef = 
470
			defs.getDatatypeDefinition(datatypeDefID);
474
			defs.getDatatypeDefinition(datatypeDefID);
471
		Utils.logger.info("datatypeDef=" + datatypeDef);
475
		Utils.logger.info("datatypeDef=" + datatypeDef);
472
 
476
 
473
		
477
		
-
 
478
		String key = StringUtils.lowerCase(slideDef.getLabel()) + "_" + 
474
		String key = slideDef.getLabel() + "_" + featureDef.getLabel();
479
			StringUtils.lowerCase(featureDef.getLabel());
-
 
480
		
475
		List<Bullet> bullets = 
481
		List<Bullet> bullets = 
476
			this.slideNameFeatureNameToBullets.get(key);
482
			this.slideNameFeatureNameToBullets.get(key);
477
		
483
		
478
		if(bullets == null) {
484
		if(bullets == null) {
479
			bullets = new ArrayList<Bullet>();
485
			bullets = new ArrayList<Bullet>();
Line 789... Line 795...
789
			defs.getFeatureDefinitions(slideDef.getID());
795
			defs.getFeatureDefinitions(slideDef.getID());
790
		Utils.logger.info("featureDefs=" + featureDefs);
796
		Utils.logger.info("featureDefs=" + featureDefs);
791
		
797
		
792
		List<String> validFeatureLabels = new ArrayList<String>();
798
		List<String> validFeatureLabels = new ArrayList<String>();
793
		for(int i=0; i<featureDefs.size(); i++) {
799
		for(int i=0; i<featureDefs.size(); i++) {
-
 
800
			validFeatureLabels.add(
794
			validFeatureLabels.add(featureDefs.get(i).getLabel());
801
					StringUtils.lowerCase(featureDefs.get(i).getLabel()));
795
		}
802
		}
796
		Utils.logger.info("validFeatureLabels=" + validFeatureLabels);
803
		Utils.logger.info("validFeatureLabels=" + validFeatureLabels);
797
		
804
		
798
		// Filter valid features
805
		// Filter valid features
799
		Map<Integer, String> featureLabels = new TreeMap<Integer, String>();
806
		Map<Integer, String> featureLabels = new TreeMap<Integer, String>();
800
 
807
 
801
		// Discard if feature is not one of the valids
808
		// Discard if feature is not one of the valids
802
		// RE-VISIT
809
		// RE-VISIT
803
		for(Integer lineNumber : candidateFeatures.keySet()) {
810
		for(Integer lineNumber : candidateFeatures.keySet()) {
804
			if(validFeatureLabels.contains(candidateFeatures.get(lineNumber))) {
811
			if(validFeatureLabels.contains(StringUtils.lowerCase(
-
 
812
					candidateFeatures.get(lineNumber)))) {
805
				featureLabels.put(lineNumber, 
813
				featureLabels.put(lineNumber, StringUtils.lowerCase(
806
						candidateFeatures.get(lineNumber));
814
						candidateFeatures.get(lineNumber)));
807
			}
815
			}
808
		}
816
		}
809
		Utils.logger.info("featureLabels=" + featureLabels);
817
		Utils.logger.info("featureLabels=" + featureLabels);
810
		
818
		
811
		// Fetch all mandatory features
819
		// Fetch all mandatory features
Line 815... Line 823...
815
 
823
 
816
		Utils.logger.info("mandatoryFeatureDefs=" + mandatoryFeatureDefs);
824
		Utils.logger.info("mandatoryFeatureDefs=" + mandatoryFeatureDefs);
817
		
825
		
818
		// Severe error if mandatory features are not included
826
		// Severe error if mandatory features are not included
819
		for(FeatureDefinition featureDef : mandatoryFeatureDefs) {
827
		for(FeatureDefinition featureDef : mandatoryFeatureDefs) {
820
			if(!featureLabels.values().contains(featureDef.getLabel())) {
828
			if(!featureLabels.values().contains(StringUtils.lowerCase(
-
 
829
					featureDef.getLabel()))) {
821
				Utils.logger.severe("Mandatory feature \"" + 
830
				Utils.logger.severe("Mandatory feature \"" + slideDef.getLabel() 
822
						featureDef.getLabel() + "\" is missing");
831
						+ " > " + featureDef.getLabel() + "\" is missing");
823
			}
832
			}
824
		}
833
		}
825
		
834
		
826
		// Fetch all recommended features
835
		// Fetch all recommended features
827
		List<FeatureDefinition> recommendedFeatureDefs = 
836
		List<FeatureDefinition> recommendedFeatureDefs = 
Line 830... Line 839...
830
 
839
 
831
		Utils.logger.info("recommendedFeatureDefs=" + recommendedFeatureDefs);
840
		Utils.logger.info("recommendedFeatureDefs=" + recommendedFeatureDefs);
832
		
841
		
833
		// Warn if recommended features are not included
842
		// Warn if recommended features are not included
834
		for(FeatureDefinition featureDef : recommendedFeatureDefs) {
843
		for(FeatureDefinition featureDef : recommendedFeatureDefs) {
835
			if(!featureLabels.values().contains(featureDef.getLabel())) {
844
			if(!featureLabels.values().contains(StringUtils.lowerCase(
-
 
845
					featureDef.getLabel()))) {
836
				Utils.logger.warning("Recommended feature \"" + 
846
				Utils.logger.warning("Recommended feature \"" + 
837
						featureDef.getLabel() + "\" is missing");
847
						featureDef.getLabel() + "\" is missing");
838
			}
848
			}
839
		}
849
		}
840
		
850
		
Line 867... Line 877...
867
		while(itSlideDefs.hasNext()) {
877
		while(itSlideDefs.hasNext()) {
868
			SlideDefinition slideDef = itSlideDefs.next();
878
			SlideDefinition slideDef = itSlideDefs.next();
869
			
879
			
870
			// To avoid Introduction slide
880
			// To avoid Introduction slide
871
			if(!slideDef.getLabel().isEmpty()) {
881
			if(!slideDef.getLabel().isEmpty()) {
872
				validSlideNames.add(slideDef.getLabel());
882
				validSlideNames.add(StringUtils.lowerCase(slideDef.getLabel()));
873
			}
883
			}
874
		}
884
		}
875
		Utils.logger.info("validSlideNames=" + validSlideNames.toString());
885
		Utils.logger.info("validSlideNames=" + validSlideNames.toString());
876
		
886
		
877
		// 2 Rules
887
		// 2 Rules
878
		// 2.1 Discard if slide is not one of the valids
888
		// 2.1 Discard if slide is not one of the valids
879
		// REVISIT
889
		// REVISIT
880
		for(Integer lineNumber : candidateSlideLines.keySet()) {
890
		for(Integer lineNumber : candidateSlideLines.keySet()) {
-
 
891
			if(validSlideNames.contains(StringUtils.lowerCase(
881
			if(validSlideNames.contains(candidateSlideLines.get(lineNumber))) {
892
					candidateSlideLines.get(lineNumber)))) {
-
 
893
				
-
 
894
				processedSlideLines.put(lineNumber, StringUtils.lowerCase(
882
				processedSlideLines.put(lineNumber, 
895
								candidateSlideLines.get(lineNumber)));
-
 
896
				
-
 
897
				this.slideNames.add(StringUtils.lowerCase(
883
						candidateSlideLines.get(lineNumber));
898
						candidateSlideLines.get(lineNumber)));
884
			}
899
			}
885
		}
900
		}
886
		
901
		
887
		Utils.logger.info("processedSlideLines=" + 
902
		Utils.logger.info("processedSlideLines=" + 
888
				processedSlideLines.toString());
903
				processedSlideLines.toString());
Line 901... Line 916...
901
			if(mandatorySlideDef.getLabel().isEmpty()) {
916
			if(mandatorySlideDef.getLabel().isEmpty()) {
902
				continue;
917
				continue;
903
			}
918
			}
904
			
919
			
905
			if(!processedSlideLines.values().contains(
920
			if(!processedSlideLines.values().contains(
906
					mandatorySlideDef.getLabel())) {
921
					StringUtils.lowerCase(mandatorySlideDef.getLabel()))) {
907
				Utils.logger.severe("Mandatory slide \"" + 
922
				Utils.logger.severe("Mandatory slide \"" + 
908
						mandatorySlideDef.getLabel() + "\" is missing");
923
						mandatorySlideDef.getLabel() + "\" is missing");
909
			}
924
			}
910
		}
925
		}
911
 
926
 
Line 917... Line 932...
917
				recommendedSlideDefs.toString());
932
				recommendedSlideDefs.toString());
918
		
933
		
919
		// 4.1 All recommended slides exist - Warn	
934
		// 4.1 All recommended slides exist - Warn	
920
		for(SlideDefinition recommendedSlideDef : recommendedSlideDefs) {
935
		for(SlideDefinition recommendedSlideDef : recommendedSlideDefs) {
921
			if(!processedSlideLines.values().contains(
936
			if(!processedSlideLines.values().contains(
922
					recommendedSlideDef.getLabel())) {
937
					StringUtils.lowerCase(recommendedSlideDef.getLabel()))) {
923
				Utils.logger.warning("Recommended slide \"" + 
938
				Utils.logger.warning("Recommended slide \"" + 
924
						recommendedSlideDef.getLabel() + "\" is missing");
939
						recommendedSlideDef.getLabel() + "\" is missing");
925
			}
940
			}
926
		}
941
		}
927
		
942