Search in sources :

Example 1 with TitleInfoDefinition

use of org.jabref.logic.importer.fileformat.mods.TitleInfoDefinition 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);
}
Also used : TitleInfoDefinition(org.jabref.logic.importer.fileformat.mods.TitleInfoDefinition) StringPlusLanguage(org.jabref.logic.importer.fileformat.mods.StringPlusLanguage) QName(javax.xml.namespace.QName) JAXBElement(javax.xml.bind.JAXBElement)

Example 2 with TitleInfoDefinition

use of org.jabref.logic.importer.fileformat.mods.TitleInfoDefinition 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);
}
Also used : TitleInfoDefinition(org.jabref.logic.importer.fileformat.mods.TitleInfoDefinition) StringPlusLanguage(org.jabref.logic.importer.fileformat.mods.StringPlusLanguage) QName(javax.xml.namespace.QName) JAXBElement(javax.xml.bind.JAXBElement)

Example 3 with TitleInfoDefinition

use of org.jabref.logic.importer.fileformat.mods.TitleInfoDefinition 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)

Aggregations

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