Revision 71614d18
Added by Katja Luther over 7 years ago
cdm-pesi/src/main/java/eu/etaxonomy/cdm/io/pesi/faunaEuropaea/FaunaEuropaeaAuthorImport.java | ||
---|---|---|
39 | 39 |
private static int modCount = 1000; |
40 | 40 |
private final static String authorSeparator = ", "; |
41 | 41 |
private final static String lastAuthorSeparator = " & "; |
42 |
protected static String fWs = "\\s*"; |
|
43 |
protected static String oWs = "\\s+"; |
|
44 |
protected static String finalTeamSplitter = "(" + fWs + "(&)" + fWs + "|" + oWs + "et" + oWs + ")"; |
|
45 |
protected static String notFinalTeamSplitter = "((?:" + fWs + "," + fWs + ")(?!([A-Z][\\.]))"+"|" + finalTeamSplitter + ")"; |
|
46 |
protected static String test = "(,\\s(?![A-Z][.|\\s|$]))|" + finalTeamSplitter ; |
|
42 | 47 |
|
43 | 48 |
|
44 | 49 |
/* (non-Javadoc) |
... | ... | |
199 | 204 |
return author; |
200 | 205 |
} |
201 | 206 |
|
207 |
/** |
|
208 |
* @param refAuthor |
|
209 |
* @return |
|
210 |
*/ |
|
211 |
public static TeamOrPersonBase<?> parseNomAuthorString(String refAuthor) { |
|
212 |
TeamOrPersonBase<?> author = null; |
|
213 |
//possible strings: Lastname, A., Lastname B. & Lastname C. |
|
214 |
//Lastname A, Lastname B & Lastname |
|
215 |
//Lastname A Lastname B & Lastname C |
|
216 |
String[] teamMembers = refAuthor.split(test); |
|
217 |
|
|
218 |
String lastMember; |
|
219 |
|
|
220 |
Person teamMember; |
|
221 |
author = Team.NewInstance(); |
|
222 |
if (teamMembers.length>1){ |
|
223 |
for(String member:teamMembers){ |
|
224 |
if (!member.trim().equals("")){ |
|
225 |
teamMember = Person.NewInstance(); |
|
226 |
teamMember.setTitleCache(member, true); |
|
227 |
((Team)author).addTeamMember(teamMember); |
|
228 |
} |
|
229 |
} |
|
230 |
}else{ |
|
231 |
author = Person.NewInstance(); |
|
232 |
author.setTitleCache(refAuthor, true); |
|
233 |
|
|
234 |
} |
|
235 |
author.getTitleCache(); |
|
236 |
return author; |
|
237 |
} |
|
238 |
|
|
202 | 239 |
} |
Also available in: Unified diff
fix #5893: fauna europaea reference import with more atomized data