Project

General

Profile

« Previous | Next » 

Revision 60200

fixed NPE

View differences:

modules/dnet-isti/trunk/src/main/java/eu/dnetlib/data/utils/BibTexConverter.java
66 66
	}
67 67

  
68 68
	private static void addSourceAndDate(final BibTeXEntry dbEntry, final MdRecord record) {
69
		String year = "" + record.getDate();
69
		String year = Integer.toString(record.getDate());
70 70

  
71
		switch (record.getType().toLowerCase()) {
72
		case "conference object":
73
			addSimpleStringValue(dbEntry, BibTeXEntry.KEY_BOOKTITLE, record.getSource());
74
			break;
75
		case "part of book or chapter of book":
76
			addSimpleStringValue(dbEntry, BibTeXEntry.KEY_BOOKTITLE, record.getSource());
77
			break;
78
		case "report":
79
			addSimpleStringValue(dbEntry, BibTeXEntry.KEY_INSTITUTION, record.getSource());
80
			break;
81
		case "article":
82
			final String regex = "^(.+) (\\d*) \\((\\d{4})\\)(: (\\d+\\–?\\d*))?";
83
			final Pattern pattern = Pattern.compile(regex);
84
			final Matcher matcher = pattern.matcher(record.getSource());
71
		if (record.getSource() != null) {
72
			switch (record.getType().toLowerCase()) {
73
			case "conference object":
74
				addSimpleStringValue(dbEntry, BibTeXEntry.KEY_BOOKTITLE, record.getSource());
75
				break;
76
			case "part of book or chapter of book":
77
				addSimpleStringValue(dbEntry, BibTeXEntry.KEY_BOOKTITLE, record.getSource());
78
				break;
79
			case "report":
80
				addSimpleStringValue(dbEntry, BibTeXEntry.KEY_INSTITUTION, record.getSource());
81
				break;
82
			case "article":
85 83

  
86
			if (matcher.find()) {
87
				if (matcher.groupCount() >= 1) {
88
					addSimpleStringValue(dbEntry, BibTeXEntry.KEY_JOURNAL, matcher.group(1));
84
				final String regex = "^(.+) (\\d*) \\((\\d{4})\\)(: (\\d+\\–?\\d*))?";
85
				final Pattern pattern = Pattern.compile(regex);
86
				final Matcher matcher = pattern.matcher(record.getSource());
87

  
88
				if (matcher.find()) {
89
					if (matcher.groupCount() >= 1) {
90
						addSimpleStringValue(dbEntry, BibTeXEntry.KEY_JOURNAL, matcher.group(1));
91
					}
92
					if (matcher.groupCount() >= 2) {
93
						addSimpleStringValue(dbEntry, BibTeXEntry.KEY_VOLUME, matcher.group(2));
94
					}
95
					if (matcher.groupCount() >= 3) {
96
						year = matcher.group(3);
97
					}
98
					if (matcher.groupCount() >= 5) {
99
						addSimpleStringValue(dbEntry, BibTeXEntry.KEY_PAGES, matcher.group(5));
100
					}
89 101
				}
90
				if (matcher.groupCount() >= 2) {
91
					addSimpleStringValue(dbEntry, BibTeXEntry.KEY_VOLUME, matcher.group(2));
92
				}
93
				if (matcher.groupCount() >= 3) {
94
					year = matcher.group(3);
95
				}
96
				if (matcher.groupCount() >= 5) {
97
					addSimpleStringValue(dbEntry, BibTeXEntry.KEY_PAGES, matcher.group(5));
98
				}
102
				break;
103
			case "patent":
104
				addSimpleStringValue(dbEntry, BibTeXEntry.KEY_HOWPUBLISHED, record.getSource());
105
				break;
99 106
			}
100

  
101
			break;
102
		case "patent":
103
			addSimpleStringValue(dbEntry, BibTeXEntry.KEY_HOWPUBLISHED, record.getSource());
104
			break;
105 107
		}
106 108

  
107 109
		addSimpleStringValue(dbEntry, BibTeXEntry.KEY_YEAR, year);

Also available in: Unified diff