Search in sources :

Example 51 with Config

use of ch.ehi.ili2db.gui.Config in project gretl by sogis.

the class Ili2pgDelete method replaceData.

@TaskAction
public void replaceData() {
    Config settings = createConfig();
    int function = Config.FC_DELETE;
    if (dataset == null) {
        return;
    }
    java.util.List<String> datasetNames = null;
    if (dataset != null) {
        if (dataset instanceof String) {
            datasetNames = new ArrayList<String>();
            datasetNames.add((String) dataset);
        } else {
            datasetNames = (java.util.List) dataset;
        }
    }
    settings.setBasketHandling(settings.BASKET_HANDLING_READWRITE);
    try {
        for (String datasetName : datasetNames) {
            settings.setDatasetName(datasetName);
            run(function, settings);
        }
    } catch (GradleException ge) {
        String msg = ge.getMessage();
        // If dataset does not exist, it will NOT throw an error.
        if (msg.contains("dataset") && msg.contains("doesn") && msg.contains("exist")) {
            return;
        } else {
            throw ge;
        }
    }
}
Also used : Config(ch.ehi.ili2db.gui.Config) GradleException(org.gradle.api.GradleException) TaskAction(org.gradle.api.tasks.TaskAction)

Example 52 with Config

use of ch.ehi.ili2db.gui.Config in project gretl by sogis.

the class Ili2pgImport method importData.

@TaskAction
public void importData() {
    Config settings = createConfig();
    int function = Config.FC_IMPORT;
    if (dataFile == null) {
        return;
    }
    FileCollection dataFilesCollection = null;
    if (dataFile instanceof FileCollection) {
        dataFilesCollection = (FileCollection) dataFile;
    } else {
        dataFilesCollection = getProject().files(dataFile);
    }
    if (dataFilesCollection == null || dataFilesCollection.isEmpty()) {
        return;
    }
    List<String> files = new ArrayList<String>();
    for (java.io.File fileObj : dataFilesCollection) {
        String fileName = fileObj.getPath();
        files.add(fileName);
    }
    java.util.List<String> datasetNames = null;
    if (dataset != null) {
        if (dataset instanceof String) {
            datasetNames = new ArrayList<String>();
            datasetNames.add((String) dataset);
        } else if (dataset instanceof FileCollection) {
            Set<File> datasetFiles = ((FileTree) dataset).getFiles();
            datasetNames = new ArrayList<String>();
            for (File datasetFile : datasetFiles) {
                if (datasetSubstring != null) {
                    if (datasetSubstring.size() > 1) {
                        datasetNames.add(datasetFile.getName().replaceFirst("[.][^.]+$", "").substring(datasetSubstring.getFrom(), datasetSubstring.getTo()));
                    } else {
                        datasetNames.add(datasetFile.getName().replaceFirst("[.][^.]+$", "").substring(datasetSubstring.getFrom()));
                    }
                } else {
                    datasetNames.add(datasetFile.getName().replaceFirst("[.][^.]+$", ""));
                }
            }
        } else {
            datasetNames = new ArrayList<String>();
            if (datasetSubstring != null) {
                List<String> fileNames = (java.util.List) dataset;
                for (String fileName : fileNames) {
                    if (datasetSubstring.size() > 1) {
                        datasetNames.add(fileName.substring(datasetSubstring.getFrom(), datasetSubstring.getTo()));
                    } else {
                        datasetNames.add(fileName.substring(datasetSubstring.getFrom()));
                    }
                }
            } else {
                datasetNames = (java.util.List) dataset;
            }
        }
        if (files.size() != datasetNames.size()) {
            throw new GradleException("number of dataset names (" + datasetNames.size() + ") doesn't match number of files (" + files.size() + ")");
        }
    }
    ch.ehi.basics.logging.FileListener fileLogger = null;
    if (logFile != null) {
        // setup logger here, so that multiple file imports result in one logfile
        java.io.File logFilepath = this.getProject().file(logFile);
        fileLogger = new FileLogger(logFilepath);
        EhiLogger.getInstance().addListener(fileLogger);
    }
    try {
        int i = 0;
        for (String xtfFilename : files) {
            if (Ili2db.isItfFilename(xtfFilename)) {
                settings.setItfTransferfile(true);
            } else {
                settings.setItfTransferfile(false);
            }
            if (datasetNames != null) {
                settings.setDatasetName(datasetNames.get(i));
            }
            settings.setXtffile(xtfFilename);
            run(function, settings);
            i++;
        }
    } finally {
        if (fileLogger != null) {
            EhiLogger.getInstance().removeListener(fileLogger);
            fileLogger.close();
            fileLogger = null;
        }
    }
}
Also used : Set(java.util.Set) Config(ch.ehi.ili2db.gui.Config) ArrayList(java.util.ArrayList) FileCollection(org.gradle.api.file.FileCollection) File(java.io.File) GradleException(org.gradle.api.GradleException) ArrayList(java.util.ArrayList) List(java.util.List) FileLogger(ch.interlis.iox_j.logging.FileLogger) File(java.io.File) InputFile(org.gradle.api.tasks.InputFile) TaskAction(org.gradle.api.tasks.TaskAction)

Example 53 with Config

use of ch.ehi.ili2db.gui.Config in project gretl by sogis.

the class Ili2pgImportSchema method importSchema.

@TaskAction
public void importSchema() {
    Config settings = createConfig();
    int function = Config.FC_SCHEMAIMPORT;
    String iliFilename = null;
    if (iliFile == null) {
    } else {
        if (iliFile instanceof String && ch.ehi.basics.view.GenericFileFilter.getFileExtension((String) iliFile) == null) {
            iliFilename = (String) iliFile;
        } else {
            iliFilename = this.getProject().file(iliFile).getPath();
        }
    }
    settings.setXtffile(iliFilename);
    init(settings);
    run(function, settings);
}
Also used : Config(ch.ehi.ili2db.gui.Config) TaskAction(org.gradle.api.tasks.TaskAction)

Example 54 with Config

use of ch.ehi.ili2db.gui.Config in project gretl by sogis.

the class Ili2pgReplace method replaceData.

@TaskAction
public void replaceData() {
    Config settings = createConfig();
    int function = Config.FC_REPLACE;
    if (dataFile == null) {
        return;
    }
    FileCollection dataFilesCollection = null;
    if (dataFile instanceof FileCollection) {
        dataFilesCollection = (FileCollection) dataFile;
    } else {
        dataFilesCollection = getProject().files(dataFile);
    }
    if (dataFilesCollection == null || dataFilesCollection.isEmpty()) {
        return;
    }
    List<String> files = new ArrayList<String>();
    for (java.io.File fileObj : dataFilesCollection) {
        String fileName = fileObj.getPath();
        files.add(fileName);
    }
    java.util.List<String> datasetNames = null;
    if (dataset != null) {
        if (dataset instanceof String) {
            datasetNames = new ArrayList<String>();
            datasetNames.add((String) dataset);
        } else if (dataset instanceof FileCollection) {
            Set<File> datasetFiles = ((FileTree) dataset).getFiles();
            datasetNames = new ArrayList<String>();
            for (File datasetFile : datasetFiles) {
                if (datasetSubstring != null) {
                    if (datasetSubstring.size() > 1) {
                        datasetNames.add(datasetFile.getName().replaceFirst("[.][^.]+$", "").substring(datasetSubstring.getFrom(), datasetSubstring.getTo()));
                    } else {
                        datasetNames.add(datasetFile.getName().replaceFirst("[.][^.]+$", "").substring(datasetSubstring.getFrom()));
                    }
                } else {
                    datasetNames.add(datasetFile.getName().replaceFirst("[.][^.]+$", ""));
                }
            }
        } else {
            datasetNames = new ArrayList<String>();
            if (datasetSubstring != null) {
                List<String> fileNames = (java.util.List) dataset;
                for (String fileName : fileNames) {
                    if (datasetSubstring.size() > 1) {
                        datasetNames.add(fileName.substring(datasetSubstring.getFrom(), datasetSubstring.getTo()));
                    } else {
                        datasetNames.add(fileName.substring(datasetSubstring.getFrom()));
                    }
                }
            } else {
                datasetNames = (java.util.List) dataset;
            }
        }
        if (files.size() != datasetNames.size()) {
            throw new GradleException("number of dataset names (" + datasetNames.size() + ") doesn't match number of files (" + files.size() + ")");
        }
    }
    ch.ehi.basics.logging.FileListener fileLogger = null;
    if (logFile != null) {
        // setup logger here, so that multiple file imports result in one logfile
        java.io.File logFilepath = this.getProject().file(logFile);
        fileLogger = new FileLogger(logFilepath);
        EhiLogger.getInstance().addListener(fileLogger);
    }
    try {
        int i = 0;
        for (String xtfFilename : files) {
            if (Ili2db.isItfFilename(xtfFilename)) {
                settings.setItfTransferfile(true);
            } else {
                settings.setItfTransferfile(false);
            }
            if (datasetNames != null) {
                settings.setDatasetName(datasetNames.get(i));
            }
            settings.setXtffile(xtfFilename);
            settings.setBasketHandling(Config.BASKET_HANDLING_READWRITE);
            run(function, settings);
            i++;
        }
    } finally {
        if (fileLogger != null) {
            EhiLogger.getInstance().removeListener(fileLogger);
            fileLogger.close();
            fileLogger = null;
        }
    }
}
Also used : Set(java.util.Set) Config(ch.ehi.ili2db.gui.Config) ArrayList(java.util.ArrayList) FileCollection(org.gradle.api.file.FileCollection) File(java.io.File) GradleException(org.gradle.api.GradleException) ArrayList(java.util.ArrayList) List(java.util.List) FileLogger(ch.interlis.iox_j.logging.FileLogger) File(java.io.File) InputFile(org.gradle.api.tasks.InputFile) TaskAction(org.gradle.api.tasks.TaskAction)

Example 55 with Config

use of ch.ehi.ili2db.gui.Config in project gretl by sogis.

the class Ili2gpkgAbstractTask method createConfig.

protected Config createConfig() {
    Config settings = new Config();
    new ch.ehi.ili2gpkg.GpkgMain().initConfig(settings);
    return settings;
}
Also used : Config(ch.ehi.ili2db.gui.Config)

Aggregations

Config (ch.ehi.ili2db.gui.Config)555 File (java.io.File)475 Test (org.junit.Test)469 Connection (java.sql.Connection)364 ResultSet (java.sql.ResultSet)173 Statement (java.sql.Statement)171 HashMap (java.util.HashMap)134 IomObject (ch.interlis.iom.IomObject)133 IoxEvent (ch.interlis.iox.IoxEvent)131 StartBasketEvent (ch.interlis.iox.StartBasketEvent)131 StartTransferEvent (ch.interlis.iox.StartTransferEvent)130 EndTransferEvent (ch.interlis.iox.EndTransferEvent)129 ObjectEvent (ch.interlis.iox.ObjectEvent)129 EndBasketEvent (ch.interlis.iox.EndBasketEvent)128 XtfReader (ch.interlis.iom_j.xtf.XtfReader)118 Ili2dbException (ch.ehi.ili2db.base.Ili2dbException)54 IoxException (ch.interlis.iox.IoxException)44 FgdbDriver (ch.ehi.ili2fgdb.jdbc.FgdbDriver)35 SQLException (java.sql.SQLException)29 ResultSetMetaData (java.sql.ResultSetMetaData)23