Project

General

Profile

« Previous | Next » 

Revision b9e54ec8

Added by Andreas Müller almost 8 years ago

#5960 Use abbrevTitle for reference parsing

View differences:

cdmlib-model/src/main/java/eu/etaxonomy/cdm/strategy/parser/NonViralNameParserImpl.java
296 296

  
297 297
		//don't parse if name can't be separated
298 298
		nameToBeFilled.addParsingProblem(ParserProblem.NameReferenceSeparation);
299
		nameToBeFilled.setTitleCache(fullReferenceString,true);
300
		nameToBeFilled.setFullTitleCache(fullReferenceString,true);
299
		nameToBeFilled.setTitleCache(fullReferenceString, true);
300
		nameToBeFilled.setFullTitleCache(fullReferenceString, true);
301 301
		// FIXME Quick fix, otherwise search would not deliver results for unparsable names
302
		nameToBeFilled.setNameCache(fullReferenceString,true);
302
		nameToBeFilled.setNameCache(fullReferenceString, true);
303 303
		// END
304 304
		nameToBeFilled.setProblemStarts(start);
305 305
		nameToBeFilled.setProblemEnds(fullReferenceString.length());
......
484 484
		//parse title and author
485 485
		ref = parseReferenceTitle(strReference, yearPart, isInReference);
486 486
		if (ref.hasProblem()){
487
		    //we need to protect both caches otherwise the titleCache is incorrectly build from atomized parts
487 488
			ref.setTitleCache( (isInReference ? "in ":"") +  originalStrReference, true);
488 489
			ref.setAbbrevTitleCache( (isInReference ? "in ":"") +  originalStrReference, true);
489 490
		}
......
497 498
	 * @param strReference
498 499
	 * @return
499 500
	 */
500
	private INomenclaturalReference makeDetailYearUnparsable(NonViralName<?> nameToBeFilled, String strReference) {
501
		INomenclaturalReference ref;
502
		//ref = Generic.NewInstance();
501
	private Reference makeDetailYearUnparsable(NonViralName<?> nameToBeFilled, String strReference) {
502
		Reference ref;
503 503

  
504 504
		ref = ReferenceFactory.newGeneric();
505
		ref.setTitleCache(strReference,true);
505
		ref.setTitleCache(strReference, true);
506
        ref.setAbbrevTitleCache(strReference, true);
506 507
		ref.setProblemEnds(strReference.length());
507 508
		ref.addParsingProblem(ParserProblem.CheckDetailOrYear);
508 509
		nameToBeFilled.addParsingProblem(ParserProblem.CheckDetailOrYear);
......
563 564
	}
564 565

  
565 566
	private void makeUnparsableRefTitle(INomenclaturalReference result, String reference){
566
		result.setTitleCache(reference,true);
567
		result.setAbbrevTitleCache(reference,true);
567
	    //need to set both to protected otherwise titleCache is created from atomized parts
568
	    result.setTitleCache(reference, true);
569
		result.setAbbrevTitleCache(reference, true);
568 570
		result.addParsingProblem(ParserProblem.UnparsableReferenceTitle);
569 571
	}
570 572

  
......
661 663
		IBook result = ReferenceFactory.newBook();
662 664
		reference = makeEdition(result, reference);
663 665
		reference = makeVolume(result, reference);
664
		result.setTitle(reference);
666
		result.setAbbrevTitle(reference);
665 667
		return result;
666 668
	}
667 669

  
......
672 674
		Reference result = ReferenceFactory.newArticle();
673 675
		reference = makeVolume(result, reference);
674 676
		Reference inJournal = ReferenceFactory.newJournal();
675
		inJournal.setTitle(reference);
677
		inJournal.setAbbrevTitle(reference);
676 678
		result.setInReference(inJournal);
677 679
		return result;
678 680
	}
......
695 697
		}else{
696 698
			logger.warn("Unexpected non matching book section author part");
697 699
			//TODO do we want to record a 'problem' here?
698
			result.setTitleCache(reference,true);
700
			result.setTitleCache(reference, true);
701
			result.setAbbrevTitleCache(reference, true);
699 702
		}
700 703

  
701 704
		return result;
......
895 898
					authorString = fullNameString.substring(epi[0].length()+ 1 + epi[1].length() +1 + epi[2].length() + 1 + epi[3].length());
896 899
				}else{
897 900
					nameToBeFilled.addParsingProblem(ParserProblem.OldInfraSpeciesNotSupported);
898
					nameToBeFilled.setTitleCache(fullNameString,true);
901
					nameToBeFilled.setTitleCache(fullNameString, true);
899 902
					// FIXME Quick fix, otherwise search would not deilver results for unparsable names
900 903
					nameToBeFilled.setNameCache(fullNameString,true);
901 904
					// END
......
956 959
		    //none
957 960
			else{
958 961
				nameToBeFilled.addParsingProblem(ParserProblem.UnparsableNamePart);
959
				nameToBeFilled.setTitleCache(fullNameString,true);
962
				nameToBeFilled.setTitleCache(fullNameString, true);
960 963
				// FIXME Quick fix, otherwise search would not deilver results for unparsable names
961 964
				nameToBeFilled.setNameCache(fullNameString, true);
962 965
				// END
......
980 983
		    return;
981 984
		} catch (UnknownCdmTypeException e) {
982 985
			nameToBeFilled.addParsingProblem(ParserProblem.RankNotSupported);
983
			nameToBeFilled.setTitleCache(fullNameString,true);
986
			nameToBeFilled.setTitleCache(fullNameString, true);
984 987
			// FIXME Quick fix, otherwise search would not deilver results for unparsable names
985 988
			nameToBeFilled.setNameCache(fullNameString,true);
986 989
			// END

Also available in: Unified diff