Search in sources :

Example 16 with FieldDTO

use of edu.harvard.iq.dataverse.api.dto.FieldDTO in project dataverse by IQSS.

the class DublinCoreExportUtil method writeSubjectElement.

private static void writeSubjectElement(XMLStreamWriter xmlw, DatasetVersionDTO datasetVersionDTO, String dcFlavor) throws XMLStreamException {
    for (Map.Entry<String, MetadataBlockDTO> entry : datasetVersionDTO.getMetadataBlocks().entrySet()) {
        String key = entry.getKey();
        MetadataBlockDTO value = entry.getValue();
        if ("citation".equals(key)) {
            for (FieldDTO fieldDTO : value.getFields()) {
                if (DatasetFieldConstant.subject.equals(fieldDTO.getTypeName())) {
                    for (String subject : fieldDTO.getMultipleVocab()) {
                        xmlw.writeStartElement(dcFlavor + ":" + "subject");
                        xmlw.writeCharacters(subject);
                        // Keyword
                        xmlw.writeEndElement();
                    }
                }
                if (DatasetFieldConstant.keyword.equals(fieldDTO.getTypeName())) {
                    for (HashSet<FieldDTO> foo : fieldDTO.getMultipleCompound()) {
                        String keywordValue = "";
                        for (Iterator<FieldDTO> iterator = foo.iterator(); iterator.hasNext(); ) {
                            FieldDTO next = iterator.next();
                            if (DatasetFieldConstant.keywordValue.equals(next.getTypeName())) {
                                keywordValue = next.getSinglePrimitive();
                            }
                        }
                        if (!keywordValue.isEmpty()) {
                            xmlw.writeStartElement(dcFlavor + ":" + "subject");
                            xmlw.writeCharacters(keywordValue);
                            // Keyword
                            xmlw.writeEndElement();
                        }
                    }
                }
            }
        }
    }
}
Also used : MetadataBlockDTO(edu.harvard.iq.dataverse.api.dto.MetadataBlockDTO) Map(java.util.Map) FieldDTO(edu.harvard.iq.dataverse.api.dto.FieldDTO)

Example 17 with FieldDTO

use of edu.harvard.iq.dataverse.api.dto.FieldDTO in project dataverse by IQSS.

the class DublinCoreExportUtil method writeRelPublElement.

private static void writeRelPublElement(XMLStreamWriter xmlw, DatasetVersionDTO datasetVersionDTO, String dcFlavor) throws XMLStreamException {
    for (Map.Entry<String, MetadataBlockDTO> entry : datasetVersionDTO.getMetadataBlocks().entrySet()) {
        String key = entry.getKey();
        MetadataBlockDTO value = entry.getValue();
        if ("citation".equals(key)) {
            for (FieldDTO fieldDTO : value.getFields()) {
                if (DatasetFieldConstant.publication.equals(fieldDTO.getTypeName())) {
                    for (HashSet<FieldDTO> foo : fieldDTO.getMultipleCompound()) {
                        String pubString = "";
                        String citation = "";
                        String IDType = "";
                        String IDNo = "";
                        String url = "";
                        for (Iterator<FieldDTO> iterator = foo.iterator(); iterator.hasNext(); ) {
                            FieldDTO next = iterator.next();
                            if (DatasetFieldConstant.publicationCitation.equals(next.getTypeName())) {
                                citation = next.getSinglePrimitive();
                            }
                            if (DatasetFieldConstant.publicationIDType.equals(next.getTypeName())) {
                                IDType = next.getSinglePrimitive();
                            }
                            if (DatasetFieldConstant.publicationIDNumber.equals(next.getTypeName())) {
                                IDNo = next.getSinglePrimitive();
                            }
                            if (DatasetFieldConstant.publicationURL.equals(next.getTypeName())) {
                                url = next.getSinglePrimitive();
                            }
                        }
                        pubString = appendCommaSeparatedValue(citation, IDType);
                        pubString = appendCommaSeparatedValue(pubString, IDNo);
                        pubString = appendCommaSeparatedValue(pubString, url);
                        if (!pubString.isEmpty()) {
                            xmlw.writeStartElement(dcFlavor + ":" + "isReferencedBy");
                            xmlw.writeCharacters(pubString);
                            // relPubl
                            xmlw.writeEndElement();
                        }
                    }
                }
            }
        }
    }
}
Also used : MetadataBlockDTO(edu.harvard.iq.dataverse.api.dto.MetadataBlockDTO) Map(java.util.Map) FieldDTO(edu.harvard.iq.dataverse.api.dto.FieldDTO)

Example 18 with FieldDTO

use of edu.harvard.iq.dataverse.api.dto.FieldDTO in project dataverse by IQSS.

the class DdiExportUtil method writeSummaryDescriptionElement.

private static void writeSummaryDescriptionElement(XMLStreamWriter xmlw, DatasetVersionDTO datasetVersionDTO) throws XMLStreamException {
    xmlw.writeStartElement("sumDscr");
    for (Map.Entry<String, MetadataBlockDTO> entry : datasetVersionDTO.getMetadataBlocks().entrySet()) {
        String key = entry.getKey();
        MetadataBlockDTO value = entry.getValue();
        if ("citation".equals(key)) {
            Integer per = 0;
            Integer coll = 0;
            for (FieldDTO fieldDTO : value.getFields()) {
                if (DatasetFieldConstant.timePeriodCovered.equals(fieldDTO.getTypeName())) {
                    String dateValStart = "";
                    String dateValEnd = "";
                    for (HashSet<FieldDTO> foo : fieldDTO.getMultipleCompound()) {
                        per++;
                        for (Iterator<FieldDTO> iterator = foo.iterator(); iterator.hasNext(); ) {
                            FieldDTO next = iterator.next();
                            if (DatasetFieldConstant.timePeriodCoveredStart.equals(next.getTypeName())) {
                                dateValStart = next.getSinglePrimitive();
                            }
                            if (DatasetFieldConstant.timePeriodCoveredEnd.equals(next.getTypeName())) {
                                dateValEnd = next.getSinglePrimitive();
                            }
                        }
                        if (!dateValStart.isEmpty()) {
                            writeDateElement(xmlw, "timePrd", "P" + per.toString(), "start", dateValStart);
                        }
                        if (!dateValEnd.isEmpty()) {
                            writeDateElement(xmlw, "timePrd", "P" + per.toString(), "end", dateValEnd);
                        }
                    }
                }
                if (DatasetFieldConstant.dateOfCollection.equals(fieldDTO.getTypeName())) {
                    String dateValStart = "";
                    String dateValEnd = "";
                    for (HashSet<FieldDTO> foo : fieldDTO.getMultipleCompound()) {
                        coll++;
                        for (Iterator<FieldDTO> iterator = foo.iterator(); iterator.hasNext(); ) {
                            FieldDTO next = iterator.next();
                            if (DatasetFieldConstant.dateOfCollectionStart.equals(next.getTypeName())) {
                                dateValStart = next.getSinglePrimitive();
                            }
                            if (DatasetFieldConstant.dateOfCollectionEnd.equals(next.getTypeName())) {
                                dateValEnd = next.getSinglePrimitive();
                            }
                        }
                        if (!dateValStart.isEmpty()) {
                            writeDateElement(xmlw, "collDate", "P" + coll.toString(), "start", dateValStart);
                        }
                        if (!dateValEnd.isEmpty()) {
                            writeDateElement(xmlw, "collDate", "P" + coll.toString(), "end", dateValEnd);
                        }
                    }
                }
                if (DatasetFieldConstant.kindOfData.equals(fieldDTO.getTypeName())) {
                    writeMultipleElement(xmlw, "dataKind", fieldDTO);
                }
            }
        }
        if ("geospatial".equals(key)) {
            for (FieldDTO fieldDTO : value.getFields()) {
                if (DatasetFieldConstant.geographicCoverage.equals(fieldDTO.getTypeName())) {
                    for (HashSet<FieldDTO> foo : fieldDTO.getMultipleCompound()) {
                        for (Iterator<FieldDTO> iterator = foo.iterator(); iterator.hasNext(); ) {
                            FieldDTO next = iterator.next();
                            if (DatasetFieldConstant.country.equals(next.getTypeName())) {
                                writeFullElement(xmlw, "nation", next.getSinglePrimitive());
                            }
                            if (DatasetFieldConstant.city.equals(next.getTypeName())) {
                                writeFullElement(xmlw, "geogCover", next.getSinglePrimitive());
                            }
                            if (DatasetFieldConstant.state.equals(next.getTypeName())) {
                                writeFullElement(xmlw, "geogCover", next.getSinglePrimitive());
                            }
                            if (DatasetFieldConstant.otherGeographicCoverage.equals(next.getTypeName())) {
                                writeFullElement(xmlw, "geogCover", next.getSinglePrimitive());
                            }
                        }
                    }
                }
                if (DatasetFieldConstant.geographicBoundingBox.equals(fieldDTO.getTypeName())) {
                    for (HashSet<FieldDTO> foo : fieldDTO.getMultipleCompound()) {
                        for (Iterator<FieldDTO> iterator = foo.iterator(); iterator.hasNext(); ) {
                            FieldDTO next = iterator.next();
                            if (DatasetFieldConstant.westLongitude.equals(next.getTypeName())) {
                                writeFullElement(xmlw, "westBL", next.getSinglePrimitive());
                            }
                            if (DatasetFieldConstant.eastLongitude.equals(next.getTypeName())) {
                                writeFullElement(xmlw, "eastBL", next.getSinglePrimitive());
                            }
                            if (DatasetFieldConstant.northLatitude.equals(next.getTypeName())) {
                                writeFullElement(xmlw, "northBL", next.getSinglePrimitive());
                            }
                            if (DatasetFieldConstant.southLatitude.equals(next.getTypeName())) {
                                writeFullElement(xmlw, "southBL", next.getSinglePrimitive());
                            }
                        }
                    }
                }
            }
            writeFullElementList(xmlw, "geogUnit", dto2PrimitiveList(datasetVersionDTO, DatasetFieldConstant.geographicUnit));
        }
        if ("socialscience".equals(key)) {
            for (FieldDTO fieldDTO : value.getFields()) {
                if (DatasetFieldConstant.universe.equals(fieldDTO.getTypeName())) {
                    writeMultipleElement(xmlw, "universe", fieldDTO);
                }
                if (DatasetFieldConstant.unitOfAnalysis.equals(fieldDTO.getTypeName())) {
                    writeMultipleElement(xmlw, "anlyUnit", fieldDTO);
                }
            }
        }
    }
    // sumDscr
    xmlw.writeEndElement();
}
Also used : MetadataBlockDTO(edu.harvard.iq.dataverse.api.dto.MetadataBlockDTO) Map(java.util.Map) FieldDTO(edu.harvard.iq.dataverse.api.dto.FieldDTO)

Example 19 with FieldDTO

use of edu.harvard.iq.dataverse.api.dto.FieldDTO in project dataverse by IQSS.

the class DdiExportUtil method writeProducersElement.

private static void writeProducersElement(XMLStreamWriter xmlw, DatasetVersionDTO version) throws XMLStreamException {
    xmlw.writeStartElement("prodStmt");
    for (Map.Entry<String, MetadataBlockDTO> entry : version.getMetadataBlocks().entrySet()) {
        String key = entry.getKey();
        MetadataBlockDTO value = entry.getValue();
        if ("citation".equals(key)) {
            for (FieldDTO fieldDTO : value.getFields()) {
                if (DatasetFieldConstant.producer.equals(fieldDTO.getTypeName())) {
                    for (HashSet<FieldDTO> foo : fieldDTO.getMultipleCompound()) {
                        String producerName = "";
                        String producerAffiliation = "";
                        String producerAbbreviation = "";
                        String producerLogo = "";
                        String producerURL = "";
                        for (Iterator<FieldDTO> iterator = foo.iterator(); iterator.hasNext(); ) {
                            FieldDTO next = iterator.next();
                            if (DatasetFieldConstant.producerName.equals(next.getTypeName())) {
                                producerName = next.getSinglePrimitive();
                            }
                            if (DatasetFieldConstant.producerAffiliation.equals(next.getTypeName())) {
                                producerAffiliation = next.getSinglePrimitive();
                            }
                            if (DatasetFieldConstant.producerAbbreviation.equals(next.getTypeName())) {
                                producerAbbreviation = next.getSinglePrimitive();
                            }
                            if (DatasetFieldConstant.producerLogo.equals(next.getTypeName())) {
                                producerLogo = next.getSinglePrimitive();
                            }
                            if (DatasetFieldConstant.producerURL.equals(next.getTypeName())) {
                                producerURL = next.getSinglePrimitive();
                            }
                        }
                        if (!producerName.isEmpty()) {
                            xmlw.writeStartElement("producer");
                            if (!producerAffiliation.isEmpty()) {
                                writeAttribute(xmlw, "affiliation", producerAffiliation);
                            }
                            if (!producerAbbreviation.isEmpty()) {
                                writeAttribute(xmlw, "abbr", producerAbbreviation);
                            }
                            if (!producerLogo.isEmpty()) {
                                writeAttribute(xmlw, "role", producerLogo);
                            }
                            if (!producerURL.isEmpty()) {
                                writeAttribute(xmlw, "URI", producerURL);
                            }
                            xmlw.writeCharacters(producerName);
                            // AuthEnty
                            xmlw.writeEndElement();
                        }
                    }
                }
            }
        }
    }
    writeFullElement(xmlw, "prodDate", dto2Primitive(version, DatasetFieldConstant.productionDate));
    writeFullElement(xmlw, "prodPlac", dto2Primitive(version, DatasetFieldConstant.productionPlace));
    writeGrantElement(xmlw, version);
    // prodStmt
    xmlw.writeEndElement();
}
Also used : MetadataBlockDTO(edu.harvard.iq.dataverse.api.dto.MetadataBlockDTO) Map(java.util.Map) FieldDTO(edu.harvard.iq.dataverse.api.dto.FieldDTO)

Example 20 with FieldDTO

use of edu.harvard.iq.dataverse.api.dto.FieldDTO in project dataverse by IQSS.

the class DdiExportUtil method writeGrantElement.

private static void writeGrantElement(XMLStreamWriter xmlw, DatasetVersionDTO datasetVersionDTO) throws XMLStreamException {
    for (Map.Entry<String, MetadataBlockDTO> entry : datasetVersionDTO.getMetadataBlocks().entrySet()) {
        String key = entry.getKey();
        MetadataBlockDTO value = entry.getValue();
        if ("citation".equals(key)) {
            for (FieldDTO fieldDTO : value.getFields()) {
                if (DatasetFieldConstant.grantNumber.equals(fieldDTO.getTypeName())) {
                    String grantNumber = "";
                    String grantAgency = "";
                    for (HashSet<FieldDTO> foo : fieldDTO.getMultipleCompound()) {
                        for (Iterator<FieldDTO> iterator = foo.iterator(); iterator.hasNext(); ) {
                            FieldDTO next = iterator.next();
                            if (DatasetFieldConstant.grantNumberValue.equals(next.getTypeName())) {
                                grantNumber = next.getSinglePrimitive();
                            }
                            if (DatasetFieldConstant.grantNumberAgency.equals(next.getTypeName())) {
                                grantAgency = next.getSinglePrimitive();
                            }
                        }
                        if (!grantNumber.isEmpty()) {
                            xmlw.writeStartElement("grantNo");
                            if (!grantAgency.isEmpty()) {
                                writeAttribute(xmlw, "agency", grantAgency);
                            }
                            xmlw.writeCharacters(grantNumber);
                            // grantno
                            xmlw.writeEndElement();
                        }
                    }
                }
            }
        }
    }
}
Also used : MetadataBlockDTO(edu.harvard.iq.dataverse.api.dto.MetadataBlockDTO) Map(java.util.Map) FieldDTO(edu.harvard.iq.dataverse.api.dto.FieldDTO)

Aggregations

FieldDTO (edu.harvard.iq.dataverse.api.dto.FieldDTO)32 MetadataBlockDTO (edu.harvard.iq.dataverse.api.dto.MetadataBlockDTO)26 Map (java.util.Map)22 Gson (com.google.gson.Gson)2 DatasetFieldCompoundValue (edu.harvard.iq.dataverse.DatasetFieldCompoundValue)2 DatasetFieldType (edu.harvard.iq.dataverse.DatasetFieldType)2 IOException (java.io.IOException)2 ArrayList (java.util.ArrayList)2 HashSet (java.util.HashSet)2 JsonElement (com.google.gson.JsonElement)1 DatasetField (edu.harvard.iq.dataverse.DatasetField)1 ForeignMetadataFieldMapping (edu.harvard.iq.dataverse.ForeignMetadataFieldMapping)1 DatasetVersionDTO (edu.harvard.iq.dataverse.api.dto.DatasetVersionDTO)1 JsonParseException (edu.harvard.iq.dataverse.util.json.JsonParseException)1 File (java.io.File)1 FileNotFoundException (java.io.FileNotFoundException)1 StringReader (java.io.StringReader)1 Scanner (java.util.Scanner)1 EJBException (javax.ejb.EJBException)1 JsonObject (javax.json.JsonObject)1