Search in sources :

Example 1 with ExtentDefinition

use of org.jabref.logic.importer.fileformat.mods.ExtentDefinition 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());
                    }
                }
            }
        }
    }
}
Also used : ExtentDefinition(org.jabref.logic.importer.fileformat.mods.ExtentDefinition) TitleInfoDefinition(org.jabref.logic.importer.fileformat.mods.TitleInfoDefinition) DetailDefinition(org.jabref.logic.importer.fileformat.mods.DetailDefinition) StringPlusLanguage(org.jabref.logic.importer.fileformat.mods.StringPlusLanguage) PartDefinition(org.jabref.logic.importer.fileformat.mods.PartDefinition) NamePartDefinition(org.jabref.logic.importer.fileformat.mods.NamePartDefinition) List(java.util.List) ArrayList(java.util.ArrayList) JAXBElement(javax.xml.bind.JAXBElement)

Example 2 with ExtentDefinition

use of org.jabref.logic.importer.fileformat.mods.ExtentDefinition 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);
}
Also used : ExtentDefinition(org.jabref.logic.importer.fileformat.mods.ExtentDefinition) StringPlusLanguage(org.jabref.logic.importer.fileformat.mods.StringPlusLanguage)

Aggregations

ExtentDefinition (org.jabref.logic.importer.fileformat.mods.ExtentDefinition)2 StringPlusLanguage (org.jabref.logic.importer.fileformat.mods.StringPlusLanguage)2 ArrayList (java.util.ArrayList)1 List (java.util.List)1 JAXBElement (javax.xml.bind.JAXBElement)1 DetailDefinition (org.jabref.logic.importer.fileformat.mods.DetailDefinition)1 NamePartDefinition (org.jabref.logic.importer.fileformat.mods.NamePartDefinition)1 PartDefinition (org.jabref.logic.importer.fileformat.mods.PartDefinition)1 TitleInfoDefinition (org.jabref.logic.importer.fileformat.mods.TitleInfoDefinition)1