Search in sources :

Example 1 with MetadatenVerifizierung

use of de.sub.goobi.metadaten.MetadatenVerifizierung in project goobi-workflow by intranda.

the class StepBean method SchrittDurchBenutzerAbschliessen.

public String SchrittDurchBenutzerAbschliessen() {
    if (mySchritt.getValidationPlugin() != null && mySchritt.getValidationPlugin().length() > 0) {
        IValidatorPlugin ivp = (IValidatorPlugin) PluginLoader.getPluginByTitle(PluginType.Validation, mySchritt.getValidationPlugin());
        if (ivp != null) {
            ivp.setStep(mySchritt);
            if (!ivp.validate()) {
                return "";
            }
        } else {
            Helper.setFehlerMeldung("ErrorLoadingValidationPlugin");
        }
    }
    /*
         * -------------------------------- wenn das Resultat des Arbeitsschrittes zunächst verifiziert werden soll, dann ggf. das Abschliessen
         * abbrechen --------------------------------
         */
    if (this.mySchritt.isTypBeimAbschliessenVerifizieren()) {
        /* Metadatenvalidierung */
        if (this.mySchritt.isTypMetadaten() && ConfigurationHelper.getInstance().isUseMetadataValidation()) {
            MetadatenVerifizierung mv = new MetadatenVerifizierung();
            mv.setAutoSave(true);
            if (!mv.validate(this.mySchritt.getProzess())) {
                return "";
            }
        }
        /* Imagevalidierung */
        if (this.mySchritt.isTypImagesSchreiben()) {
            MetadatenImagesHelper mih = new MetadatenImagesHelper(null, null);
            try {
                if (!mih.checkIfImagesValid(this.mySchritt.getProzess().getTitel(), this.mySchritt.getProzess().getImagesOrigDirectory(false))) {
                    return "";
                }
            } catch (Exception e) {
                Helper.setFehlerMeldung("Error on image validation: ", e);
            }
        }
    }
    if (processPropertyList != null) {
        for (ProcessProperty prop : processPropertyList) {
            if (prop.getCurrentStepAccessCondition().equals(AccessCondition.WRITEREQUIRED) && StringUtils.isBlank(prop.getReadValue())) {
                Helper.setFehlerMeldung(Helper.getTranslation("Eigenschaft") + " " + prop.getName() + " " + Helper.getTranslation("requiredValue"));
                return "";
            } else if (!prop.isValid()) {
                Helper.setFehlerMeldung(Helper.getTranslation("PropertyValidation", prop.getName()));
                return "";
            }
        }
    }
    /*
         * wenn das Ergebnis der Verifizierung ok ist, dann weiter, ansonsten schon vorher draussen
         */
    this.myDav.UploadFromHome(this.mySchritt.getProzess());
    this.mySchritt.setEditTypeEnum(StepEditType.MANUAL_SINGLE);
    // Step so = StepObjectManager.getStepById(this.mySchritt.getId());
    new HelperSchritte().CloseStepObjectAutomatic(mySchritt);
    // new HelperSchritte().SchrittAbschliessen(this.mySchritt, true);
    return FilterAlleStart();
}
Also used : IValidatorPlugin(org.goobi.production.plugin.interfaces.IValidatorPlugin) ProcessProperty(org.goobi.production.properties.ProcessProperty) MetadatenImagesHelper(de.sub.goobi.metadaten.MetadatenImagesHelper) HelperSchritte(de.sub.goobi.helper.HelperSchritte) MetadatenVerifizierung(de.sub.goobi.metadaten.MetadatenVerifizierung) DAOException(de.sub.goobi.helper.exceptions.DAOException) SwapException(de.sub.goobi.helper.exceptions.SwapException) IOException(java.io.IOException)

Example 2 with MetadatenVerifizierung

use of de.sub.goobi.metadaten.MetadatenVerifizierung in project goobi-workflow by intranda.

the class ExportDms method startExport.

/**
 * DMS-Export an eine gewünschte Stelle
 *
 * @param myProzess
 * @param zielVerzeichnis
 * @throws InterruptedException
 * @throws IOException
 * @throws WriteException
 * @throws PreferencesException
 * @throws UghHelperException
 * @throws ExportFileException
 * @throws MetadataTypeNotAllowedException
 * @throws DocStructHasNoTypeException
 * @throws DAOException
 * @throws SwapException
 * @throws TypeNotAllowedForParentException
 */
@Override
public boolean startExport(Process myProzess, String inZielVerzeichnis) throws IOException, InterruptedException, WriteException, PreferencesException, DocStructHasNoTypeException, MetadataTypeNotAllowedException, ExportFileException, UghHelperException, SwapException, DAOException, TypeNotAllowedForParentException {
    this.myPrefs = myProzess.getRegelsatz().getPreferences();
    String atsPpnBand = myProzess.getTitel();
    /*
         * -------------------------------- Dokument einlesen --------------------------------
         */
    Fileformat gdzfile;
    // Fileformat newfile;
    ExportFileformat newfile = MetadatenHelper.getExportFileformatByName(myProzess.getProjekt().getFileFormatDmsExport(), myProzess.getRegelsatz());
    try {
        gdzfile = myProzess.readMetadataFile();
        newfile.setDigitalDocument(gdzfile.getDigitalDocument());
        gdzfile = newfile;
    } catch (Exception e) {
        Helper.setFehlerMeldung(Helper.getTranslation("exportError") + myProzess.getTitel(), e);
        log.error("Export abgebrochen, xml-LeseFehler", e);
        problems.add("Export cancelled: " + e.getMessage());
        return false;
    }
    trimAllMetadata(gdzfile.getDigitalDocument().getLogicalDocStruct());
    VariableReplacer replacer = new VariableReplacer(gdzfile.getDigitalDocument(), this.myPrefs, myProzess, null);
    if (ConfigurationHelper.getInstance().isUseMetadataValidation()) {
        MetadatenVerifizierung mv = new MetadatenVerifizierung();
        if (!mv.validate(gdzfile, this.myPrefs, myProzess)) {
            problems.add("Export cancelled because of validation errors");
            problems.addAll(mv.getProblems());
            return false;
        }
    }
    /*
         * -------------------------------- Speicherort vorbereiten und downloaden --------------------------------
         */
    String zielVerzeichnis;
    Path benutzerHome;
    if (myProzess.getProjekt().isUseDmsImport()) {
        zielVerzeichnis = myProzess.getProjekt().getDmsImportImagesPath();
        zielVerzeichnis = replacer.replace(zielVerzeichnis);
        benutzerHome = Paths.get(zielVerzeichnis);
        /* ggf. noch einen Vorgangsordner anlegen */
        if (myProzess.getProjekt().isDmsImportCreateProcessFolder()) {
            benutzerHome = Paths.get(benutzerHome.toString(), myProzess.getTitel());
            zielVerzeichnis = benutzerHome.toString();
            /* alte Import-Ordner löschen */
            if (!StorageProvider.getInstance().deleteDir(benutzerHome)) {
                Helper.setFehlerMeldung("Export canceled, Process: " + myProzess.getTitel(), "Import folder could not be cleared");
                problems.add("Export cancelled: Import folder could not be cleared.");
                return false;
            }
            /* alte Success-Ordner löschen */
            String successPath = myProzess.getProjekt().getDmsImportSuccessPath();
            successPath = replacer.replace(successPath);
            Path successFile = Paths.get(successPath, myProzess.getTitel());
            if (!StorageProvider.getInstance().deleteDir(successFile)) {
                Helper.setFehlerMeldung("Export canceled, Process: " + myProzess.getTitel(), "Success folder could not be cleared");
                problems.add("Export cancelled: Success folder could not be cleared.");
                return false;
            }
            /* alte Error-Ordner löschen */
            String importPath = myProzess.getProjekt().getDmsImportErrorPath();
            importPath = replacer.replace(importPath);
            Path errorfile = Paths.get(importPath, myProzess.getTitel());
            if (!StorageProvider.getInstance().deleteDir(errorfile)) {
                Helper.setFehlerMeldung("Export canceled, Process: " + myProzess.getTitel(), "Error folder could not be cleared");
                problems.add("Export cancelled: Error folder could not be cleared.");
                return false;
            }
            if (!StorageProvider.getInstance().isFileExists(benutzerHome)) {
                StorageProvider.getInstance().createDirectories(benutzerHome);
            }
        }
    } else {
        zielVerzeichnis = inZielVerzeichnis + atsPpnBand;
        zielVerzeichnis = replacer.replace(zielVerzeichnis) + FileSystems.getDefault().getSeparator();
        // wenn das Home existiert, erst löschen und dann neu anlegen
        benutzerHome = Paths.get(zielVerzeichnis);
        if (!StorageProvider.getInstance().deleteDir(benutzerHome)) {
            Helper.setFehlerMeldung("Export canceled: " + myProzess.getTitel(), "Could not delete home directory");
            problems.add("Export cancelled: Could not delete home directory.");
            return false;
        }
        prepareUserDirectory(zielVerzeichnis);
    }
    /*
         * -------------------------------- der eigentliche Download der Images --------------------------------
         */
    try {
        if (this.exportWithImages) {
            imageDownload(myProzess, benutzerHome, atsPpnBand, DIRECTORY_SUFFIX);
        }
        if (this.exportFulltext) {
            fulltextDownload(myProzess, benutzerHome, atsPpnBand, DIRECTORY_SUFFIX);
        }
        String ed = myProzess.getExportDirectory();
        Path exportFolder = Paths.get(ed);
        if (StorageProvider.getInstance().isFileExists(exportFolder) && StorageProvider.getInstance().isDirectory(exportFolder)) {
            List<Path> filesInExportFolder = StorageProvider.getInstance().listFiles(ed);
            for (Path exportFile : filesInExportFolder) {
                if (StorageProvider.getInstance().isDirectory(exportFile) && !StorageProvider.getInstance().list(exportFile.toString()).isEmpty()) {
                    if (!exportFile.getFileName().toString().matches(".+\\.\\d+")) {
                        String suffix = exportFile.getFileName().toString().substring(exportFile.getFileName().toString().lastIndexOf("_"));
                        Path destination = Paths.get(benutzerHome.toString(), atsPpnBand + suffix);
                        if (!StorageProvider.getInstance().isFileExists(destination)) {
                            StorageProvider.getInstance().createDirectories(destination);
                        }
                        List<Path> files = StorageProvider.getInstance().listFiles(exportFile.toString());
                        for (Path file : files) {
                            Path target = Paths.get(destination.toString(), file.getFileName().toString());
                            StorageProvider.getInstance().copyFile(file, target);
                        }
                    }
                } else {
                    // if it is a regular file, export it to source folder
                    Path destination = Paths.get(benutzerHome.toString(), atsPpnBand + "_src");
                    if (!StorageProvider.getInstance().isFileExists(destination)) {
                        StorageProvider.getInstance().createDirectories(destination);
                    }
                    Path target = Paths.get(destination.toString(), exportFile.getFileName().toString());
                    StorageProvider.getInstance().copyFile(exportFile, target);
                }
            }
        }
    } catch (AccessDeniedException e) {
        Helper.setFehlerMeldung("Export canceled, Process: " + myProzess.getTitel(), "Access to " + e.getMessage() + " was denied");
        problems.add("Export cancelled: Access to " + e.getMessage() + " was denied");
        return false;
    } catch (Exception e) {
        Helper.setFehlerMeldung("Export canceled, Process: " + myProzess.getTitel(), e);
        problems.add("Export cancelled: " + e.getMessage());
        return false;
    }
    /*
         * -------------------------------- zum Schluss Datei an gewünschten Ort
         * exportieren entweder direkt in den Import-Ordner oder ins
         * Benutzerhome anschliessend den Import-Thread starten
         * --------------------------------
         */
    boolean externalExport = MetadatenHelper.getExportFileformatByName(myProzess.getProjekt().getFileFormatDmsExport(), myProzess.getRegelsatz()) != null;
    if (myProzess.getProjekt().isUseDmsImport()) {
        Helper.setMeldung(null, myProzess.getTitel() + ": ", "DMS-Export started");
        if (externalExport) {
            /* Wenn METS, dann per writeMetsFile schreiben... */
            writeMetsFile(myProzess, benutzerHome.toString() + "/" + atsPpnBand + ".xml", gdzfile, false);
        } else {
            /* ...wenn nicht, nur ein Fileformat schreiben. */
            gdzfile.write(benutzerHome.toString() + "/" + atsPpnBand + ".xml");
        }
        if (!ConfigurationHelper.getInstance().isExportWithoutTimeLimit()) {
            DmsImportThread agoraThread = new DmsImportThread(myProzess, atsPpnBand);
            agoraThread.start();
            try {
                /* xx Sekunden auf den Thread warten, evtl. killen */
                agoraThread.join(myProzess.getProjekt().getDmsImportTimeOut().longValue());
                if (agoraThread.isAlive()) {
                    agoraThread.stopThread();
                }
            } catch (InterruptedException e) {
                Helper.setFehlerMeldung(myProzess.getTitel() + ": error on export - ", e.getMessage());
                problems.add("Export problems: " + e.getMessage());
                log.error(myProzess.getTitel() + ": error on export", e);
            }
            if (agoraThread.rueckgabe.length() > 0) {
                Helper.setFehlerMeldung(myProzess.getTitel() + ": ", agoraThread.rueckgabe);
            } else {
                Helper.setMeldung(null, myProzess.getTitel() + ": ", "ExportFinished");
                /* Success-Ordner wieder löschen */
                if (myProzess.getProjekt().isDmsImportCreateProcessFolder()) {
                    String sf = myProzess.getProjekt().getDmsImportSuccessPath();
                    sf = replacer.replace(sf);
                    Path successFile = Paths.get(sf, myProzess.getTitel());
                    StorageProvider.getInstance().deleteDir(successFile);
                }
            }
        }
    } else {
        /* ohne Agora-Import die xml-Datei direkt ins Home schreiben */
        if (externalExport) {
            writeMetsFile(myProzess, zielVerzeichnis + atsPpnBand + ".xml", gdzfile, false);
        } else {
            gdzfile.write(zielVerzeichnis + atsPpnBand + ".xml");
        }
        Helper.setMeldung(null, myProzess.getTitel() + ": ", "ExportFinished");
    }
    return true;
}
Also used : Path(java.nio.file.Path) AccessDeniedException(java.nio.file.AccessDeniedException) Fileformat(ugh.dl.Fileformat) ExportFileformat(ugh.dl.ExportFileformat) VariableReplacer(de.sub.goobi.helper.VariableReplacer) ExportFileformat(ugh.dl.ExportFileformat) TypeNotAllowedForParentException(ugh.exceptions.TypeNotAllowedForParentException) DAOException(de.sub.goobi.helper.exceptions.DAOException) SwapException(de.sub.goobi.helper.exceptions.SwapException) ExportFileException(de.sub.goobi.helper.exceptions.ExportFileException) UghHelperException(de.sub.goobi.helper.exceptions.UghHelperException) IOException(java.io.IOException) MetadataTypeNotAllowedException(ugh.exceptions.MetadataTypeNotAllowedException) PreferencesException(ugh.exceptions.PreferencesException) DocStructHasNoTypeException(ugh.exceptions.DocStructHasNoTypeException) WriteException(ugh.exceptions.WriteException) AccessDeniedException(java.nio.file.AccessDeniedException) MetadatenVerifizierung(de.sub.goobi.metadaten.MetadatenVerifizierung)

Example 3 with MetadatenVerifizierung

use of de.sub.goobi.metadaten.MetadatenVerifizierung in project goobi-workflow by intranda.

the class BatchStepHelper method BatchDurchBenutzerAbschliessen.

public String BatchDurchBenutzerAbschliessen() {
    // for (ProcessProperty pp : this.processPropertyList) {
    // this.processProperty = pp;
    // saveCurrentPropertyForAll();
    // }
    HelperSchritte helper = new HelperSchritte();
    for (Step s : this.steps) {
        boolean error = false;
        if (s.getValidationPlugin() != null && s.getValidationPlugin().length() > 0) {
            IValidatorPlugin ivp = (IValidatorPlugin) PluginLoader.getPluginByTitle(PluginType.Validation, s.getValidationPlugin());
            if (ivp != null) {
                ivp.setStep(s);
                if (!ivp.validate()) {
                    error = true;
                }
            } else {
                Helper.setFehlerMeldung("ErrorLoadingValidationPlugin");
            }
        }
        if (s.isTypImagesSchreiben()) {
            try {
                HistoryAnalyserJob.updateHistory(s.getProzess());
            } catch (Exception e) {
                Helper.setFehlerMeldung("Error while calculation of storage and images", e);
            }
        }
        if (s.isTypBeimAbschliessenVerifizieren()) {
            if (s.isTypMetadaten() && ConfigurationHelper.getInstance().isUseMetadataValidation()) {
                MetadatenVerifizierung mv = new MetadatenVerifizierung();
                mv.setAutoSave(true);
                if (!mv.validate(s.getProzess())) {
                    error = true;
                }
            }
            if (s.isTypImagesSchreiben()) {
                MetadatenImagesHelper mih = new MetadatenImagesHelper(null, null);
                try {
                    if (!mih.checkIfImagesValid(s.getProzess().getTitel(), s.getProzess().getImagesOrigDirectory(false))) {
                        error = true;
                    }
                } catch (Exception e) {
                    Helper.setFehlerMeldung("Error on image validation: ", e);
                }
            }
            loadProcessProperties(s);
            for (ProcessProperty prop : processPropertyList) {
                if (prop.getCurrentStepAccessCondition().equals(AccessCondition.WRITEREQUIRED) && (prop.getValue() == null || prop.getValue().equals(""))) {
                    String[] parameter = { prop.getName(), s.getProzess().getTitel() };
                    Helper.setFehlerMeldung(Helper.getTranslation("BatchPropertyEmpty", parameter));
                    error = true;
                } else if (!prop.isValid()) {
                    String[] parameter = { prop.getName(), s.getProzess().getTitel() };
                    Helper.setFehlerMeldung(Helper.getTranslation("BatchPropertyValidation", parameter));
                    error = true;
                }
            }
        }
        if (!error) {
            this.myDav.UploadFromHome(s.getProzess());
            Step so = StepManager.getStepById(s.getId());
            so.setEditTypeEnum(StepEditType.MANUAL_MULTI);
            helper.CloseStepObjectAutomatic(so);
        }
    }
    return sb.FilterAlleStart();
}
Also used : IValidatorPlugin(org.goobi.production.plugin.interfaces.IValidatorPlugin) ProcessProperty(org.goobi.production.properties.ProcessProperty) MetadatenImagesHelper(de.sub.goobi.metadaten.MetadatenImagesHelper) Step(org.goobi.beans.Step) DAOException(de.sub.goobi.helper.exceptions.DAOException) MetadatenVerifizierung(de.sub.goobi.metadaten.MetadatenVerifizierung)

Example 4 with MetadatenVerifizierung

use of de.sub.goobi.metadaten.MetadatenVerifizierung in project goobi-workflow by intranda.

the class CreatePdfFromServletThread method run.

/**
 * Aufruf als Thread ================================================================
 */
@Override
public void run() {
    setStatusProgress(30);
    if (this.getProzess() == null || this.targetFolder == null || this.internalServletPath == null) {
        setStatusMessage("parameters for temporary and final folder and internal servlet path not defined");
        setStatusProgress(-1);
        return;
    }
    CloseableHttpClient httpclient = null;
    HttpGet method = null;
    try {
        httpclient = HttpClientBuilder.create().build();
        /* --------------------------------
             * define path for mets and pdfs
             * --------------------------------*/
        URL goobiContentServerUrl = null;
        String contentServerUrl = ConfigurationHelper.getInstance().getGoobiContentServerUrl();
        Path tempPdf = StorageProvider.getInstance().createTemporaryFile(this.getProzess().getTitel(), ".pdf");
        Path finalPdf = Paths.get(this.targetFolder.toString(), this.getProzess().getTitel() + ".pdf");
        Integer contentServerTimeOut = ConfigurationHelper.getInstance().getGoobiContentServerTimeOut();
        String imageSource = "";
        String pdfSource = "";
        String altoSource = "";
        if (StringUtils.isNotBlank(imageSource)) {
            imageSource = "&imageSource=" + getImagePath().toUri();
        }
        if (StringUtils.isNotBlank(pdfSource)) {
            pdfSource = "&pdfSource=" + getPdfPath().toUri();
        }
        if (StringUtils.isNotBlank(altoSource)) {
            altoSource = "&altoSource=" + getAltoPath().toUri();
        }
        if (new MetadatenVerifizierung().validate(this.getProzess()) && this.metsURL != null) {
            /* if no contentserverurl defined use internal goobiContentServerServlet */
            if (contentServerUrl == null || contentServerUrl.length() == 0) {
                contentServerUrl = this.internalServletPath + "/gcs/gcs?action=pdf&metsFile=";
            }
            goobiContentServerUrl = new URL(contentServerUrl + this.metsURL + imageSource + pdfSource + altoSource);
        /* --------------------------------
                 * mets data does not exist or is invalid
                 * --------------------------------*/
        } else {
            if (contentServerUrl == null || contentServerUrl.length() == 0) {
                contentServerUrl = this.internalServletPath + "/cs/cs?action=pdf&images=";
            }
            String url = "";
            List<Path> meta = StorageProvider.getInstance().listFiles(this.getProzess().getImagesTifDirectory(true), NIOFileUtils.imageNameFilter);
            ArrayList<String> filenames = new ArrayList<String>();
            for (Path data : meta) {
                String file = "";
                file += data.toUri().toURL();
                filenames.add(file);
            }
            Collections.sort(filenames, new MetadatenHelper(null, null));
            for (String f : filenames) {
                url = url + f + "$";
            }
            String imageString = url.substring(0, url.length() - 1);
            String targetFileName = "&targetFileName=" + this.getProzess().getTitel() + ".pdf";
            goobiContentServerUrl = new URL(contentServerUrl + imageString + imageSource + pdfSource + altoSource + targetFileName);
        }
        if (log.isDebugEnabled()) {
            log.debug("Retrieving: " + goobiContentServerUrl.toString());
        }
        method = new HttpGet(goobiContentServerUrl.toString());
        Builder builder = RequestConfig.custom();
        builder.setSocketTimeout(contentServerTimeOut);
        RequestConfig rc = builder.build();
        method.setConfig(rc);
        InputStream istr = null;
        OutputStream ostr = null;
        try {
            byte[] response = httpclient.execute(method, HttpClientHelper.byteArrayResponseHandler);
            istr = new ByteArrayInputStream(response);
            ostr = new FileOutputStream(tempPdf.toFile());
            // Transfer bytes from in to out
            byte[] buf = new byte[1024];
            int len;
            while ((len = istr.read(buf)) > 0) {
                ostr.write(buf, 0, len);
            }
        } catch (IOException e) {
            log.error(e);
        } finally {
            method.releaseConnection();
            if (httpclient != null) {
                httpclient.close();
            }
            if (istr != null) {
                try {
                    istr.close();
                } catch (IOException e) {
                    log.error(e);
                }
            }
            if (ostr != null) {
                try {
                    ostr.close();
                } catch (IOException e) {
                    log.error(e);
                }
            }
        }
        /* --------------------------------
             * copy pdf from temp to final destination
             * --------------------------------*/
        if (log.isDebugEnabled()) {
            log.debug("pdf file created: " + tempPdf.toString() + "; now copy it to " + finalPdf.toString());
        }
        StorageProvider.getInstance().copyFile(tempPdf, finalPdf);
        if (log.isDebugEnabled()) {
            log.debug("pdf copied to " + finalPdf.toString() + "; now start cleaning up");
        }
        StorageProvider.getInstance().deleteDir(tempPdf);
        if (this.metsURL != null) {
            Path tempMets = Paths.get(this.metsURL.toString());
            StorageProvider.getInstance().deleteDir(tempMets);
        }
    } catch (Exception e) {
        log.error("Error while creating pdf for " + this.getProzess().getTitel(), e);
        setStatusMessage("error " + e.getClass().getSimpleName() + " while pdf creation: " + e.getMessage());
        setStatusProgress(-1);
        /* --------------------------------
             * report Error to User as Error-Log
             * --------------------------------*/
        Writer output = null;
        String text = "error while pdf creation: " + e.getMessage();
        Path file = Paths.get(this.targetFolder.toString(), this.getProzess().getTitel() + ".PDF-ERROR.log");
        try {
            output = new BufferedWriter(new FileWriter(file.toFile()));
            output.write(text);
            output.close();
        } catch (IOException e1) {
            log.error("Error while reporting error to user in file " + file.toString(), e);
        }
        return;
    } finally {
        if (method != null) {
            method.releaseConnection();
        }
    }
    setStatusMessage("done");
    setStatusProgress(100);
}
Also used : Path(java.nio.file.Path) CloseableHttpClient(org.apache.http.impl.client.CloseableHttpClient) RequestConfig(org.apache.http.client.config.RequestConfig) ByteArrayInputStream(java.io.ByteArrayInputStream) InputStream(java.io.InputStream) HttpGet(org.apache.http.client.methods.HttpGet) Builder(org.apache.http.client.config.RequestConfig.Builder) HttpClientBuilder(org.apache.http.impl.client.HttpClientBuilder) OutputStream(java.io.OutputStream) FileOutputStream(java.io.FileOutputStream) FileWriter(java.io.FileWriter) ArrayList(java.util.ArrayList) IOException(java.io.IOException) URL(java.net.URL) MetadatenVerifizierung(de.sub.goobi.metadaten.MetadatenVerifizierung) IOException(java.io.IOException) BufferedWriter(java.io.BufferedWriter) MetadatenHelper(de.sub.goobi.metadaten.MetadatenHelper) ByteArrayInputStream(java.io.ByteArrayInputStream) FileOutputStream(java.io.FileOutputStream) BufferedWriter(java.io.BufferedWriter) FileWriter(java.io.FileWriter) Writer(java.io.Writer)

Aggregations

MetadatenVerifizierung (de.sub.goobi.metadaten.MetadatenVerifizierung)4 DAOException (de.sub.goobi.helper.exceptions.DAOException)3 IOException (java.io.IOException)3 SwapException (de.sub.goobi.helper.exceptions.SwapException)2 MetadatenImagesHelper (de.sub.goobi.metadaten.MetadatenImagesHelper)2 Path (java.nio.file.Path)2 IValidatorPlugin (org.goobi.production.plugin.interfaces.IValidatorPlugin)2 ProcessProperty (org.goobi.production.properties.ProcessProperty)2 HelperSchritte (de.sub.goobi.helper.HelperSchritte)1 VariableReplacer (de.sub.goobi.helper.VariableReplacer)1 ExportFileException (de.sub.goobi.helper.exceptions.ExportFileException)1 UghHelperException (de.sub.goobi.helper.exceptions.UghHelperException)1 MetadatenHelper (de.sub.goobi.metadaten.MetadatenHelper)1 BufferedWriter (java.io.BufferedWriter)1 ByteArrayInputStream (java.io.ByteArrayInputStream)1 FileOutputStream (java.io.FileOutputStream)1 FileWriter (java.io.FileWriter)1 InputStream (java.io.InputStream)1 OutputStream (java.io.OutputStream)1 Writer (java.io.Writer)1