package org.jabref.logic.layout.format;
import org.jabref.logic.layout.LayoutFormatter;
/**
* @author $author$
* @version $Revision: 2268 $
*/
public class CreateBibORDFAuthors implements LayoutFormatter {
//~ Methods ////////////////////////////////////////////////////////////////
@Override
public String format(String fieldText) {
// Yeah, the format is quite verbose... sorry about that :)
// <bibo:contribution>
// <bibo:Contribution>
// <bibo:role rdf:resource="http://purl.org/ontology/bibo/roles/author" />
// <bibo:contributor><foaf:Person foaf:name="Ola Spjuth"/></bibo:contributor>
// <bibo:position>1</bibo:position>
// </bibo:Contribution>
// </bibo:contribution>
StringBuilder sb = new StringBuilder(100);
if (!fieldText.contains(" and ")) {
singleAuthor(sb, fieldText, 1);
} else {
String[] names = fieldText.split(" and ");
for (int i = 0; i < names.length; i++) {
singleAuthor(sb, names[i], i + 1);
if (i < (names.length - 1)) {
sb.append('\n');
}
}
}
return sb.toString();
}
/**
* @param sb
* @param author
* @param position
*/
private static void singleAuthor(StringBuilder sb, String author, int position) {
sb.append("<bibo:contribution>\n");
sb.append(" <bibo:Contribution>\n");
sb.append(" <bibo:role rdf:resource=\"http://purl.org/ontology/bibo/roles/author\" />\n");
sb.append(" <bibo:contributor><foaf:Person foaf:name=\"").append(author).append("\"/></bibo:contributor>\n");
sb.append(" <bibo:position>").append(position).append("</bibo:position>\n");
sb.append(" </bibo:Contribution>\n");
sb.append("</bibo:contribution>\n");
}
}