use of org.jabref.logic.importer.fileformat.mods.StringPlusLanguage in project jabref by JabRef.
the class ModsExportFormat method addAffiliation.
private void addAffiliation(ModsDefinition mods, String value) {
NameDefinition nameDefinition = new NameDefinition();
StringPlusLanguage affiliation = new StringPlusLanguage();
affiliation.setValue(value);
JAXBElement<StringPlusLanguage> element = new JAXBElement<>(new QName(MODS_NAMESPACE_URI, "affiliation"), StringPlusLanguage.class, affiliation);
nameDefinition.getAffiliationOrRoleOrDescription().add(element);
mods.getModsGroup().add(nameDefinition);
}
use of org.jabref.logic.importer.fileformat.mods.StringPlusLanguage in project jabref by JabRef.
the class ModsExportFormat method addTitle.
private void addTitle(ModsDefinition mods, String value) {
TitleInfoDefinition titleInfo = new TitleInfoDefinition();
StringPlusLanguage title = new StringPlusLanguage();
title.setValue(value);
JAXBElement<StringPlusLanguage> element = new JAXBElement<>(new QName(MODS_NAMESPACE_URI, "title"), StringPlusLanguage.class, title);
titleInfo.getTitleOrSubTitleOrPartNumber().add(element);
mods.getModsGroup().add(titleInfo);
}
use of org.jabref.logic.importer.fileformat.mods.StringPlusLanguage in project jabref by JabRef.
the class ModsExportFormat method addJournal.
private void addJournal(String value, RelatedItemDefinition relatedItem) {
TitleInfoDefinition titleInfo = new TitleInfoDefinition();
StringPlusLanguage title = new StringPlusLanguage();
title.setValue(value);
JAXBElement<StringPlusLanguage> element = new JAXBElement<>(new QName(MODS_NAMESPACE_URI, "title"), StringPlusLanguage.class, title);
titleInfo.getTitleOrSubTitleOrPartNumber().add(element);
relatedItem.getModsGroup().add(titleInfo);
}
use of org.jabref.logic.importer.fileformat.mods.StringPlusLanguage in project jabref by JabRef.
the class ModsImporter method parseRelatedModsGroup.
/**
* Puts the Information from the RelatedModsGroup. It has the same elements like the ModsGroup.
* But Informations like volume, issue and the pages appear here instead of in the ModsGroup.
* Also if there appears a title field, then this indicates that is the name of journal which the article belongs to.
*/
private void parseRelatedModsGroup(Map<String, String> fields, List<Object> relatedModsGroup) {
for (Object groupElement : relatedModsGroup) {
if (groupElement instanceof PartDefinition) {
PartDefinition part = (PartDefinition) groupElement;
List<Object> detailOrExtentOrDate = part.getDetailOrExtentOrDate();
for (Object object : detailOrExtentOrDate) {
if (object instanceof DetailDefinition) {
DetailDefinition detail = (DetailDefinition) object;
List<JAXBElement<StringPlusLanguage>> numberOrCaptionOrTitle = detail.getNumberOrCaptionOrTitle();
//In the for loop should only be the value of the element that belongs to the detail not be null
for (JAXBElement<StringPlusLanguage> jaxbElement : numberOrCaptionOrTitle) {
StringPlusLanguage value = jaxbElement.getValue();
//put details like volume, issue,...
putIfValueNotNull(fields, detail.getType(), value.getValue());
}
} else if (object instanceof ExtentDefinition) {
ExtentDefinition extentDefinition = (ExtentDefinition) object;
putPageInformation(extentDefinition, fields);
}
}
} else if (groupElement instanceof TitleInfoDefinition) {
TitleInfoDefinition titleInfo = (TitleInfoDefinition) groupElement;
List<Object> titleOrSubTitleOrPartNumber = titleInfo.getTitleOrSubTitleOrPartNumber();
for (Object object : titleOrSubTitleOrPartNumber) {
if (object instanceof JAXBElement) {
@SuppressWarnings("unchecked") JAXBElement<StringPlusLanguage> element = (JAXBElement<StringPlusLanguage>) object;
if ("title".equals(element.getName().getLocalPart())) {
StringPlusLanguage journal = element.getValue();
fields.put(FieldName.JOURNAL, journal.getValue());
}
}
}
}
}
}
use of org.jabref.logic.importer.fileformat.mods.StringPlusLanguage in project jabref by JabRef.
the class ModsExportFormat method addStartAndEndPage.
private void addStartAndEndPage(String value, PartDefinition partDefinition, String minus) {
int minusIndex = value.indexOf(minus);
String startPage = value.substring(0, minusIndex);
String endPage = "";
if (MINUS.equals(minus)) {
endPage = value.substring(minusIndex + 1);
} else if (DOUBLE_MINUS.equals(minus)) {
endPage = value.substring(minusIndex + 2);
}
StringPlusLanguage start = new StringPlusLanguage();
start.setValue(startPage);
StringPlusLanguage end = new StringPlusLanguage();
end.setValue(endPage);
ExtentDefinition extent = new ExtentDefinition();
extent.setStart(start);
extent.setEnd(end);
partDefinition.getDetailOrExtentOrDate().add(extent);
}
Aggregations