Package com.dci.intellij.dbn.execution.compiler

Source Code of com.dci.intellij.dbn.execution.compiler.CompilerResult

package com.dci.intellij.dbn.execution.compiler;

import com.dci.intellij.dbn.common.message.MessageType;
import com.dci.intellij.dbn.connection.ConnectionHandler;
import com.dci.intellij.dbn.connection.ConnectionUtil;
import com.dci.intellij.dbn.object.common.DBSchemaObject;
import com.intellij.openapi.Disposable;
import com.intellij.openapi.project.Project;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class CompilerResult implements Disposable {
    private DBSchemaObject object;
    private List<CompilerMessage> compilerMessages = new ArrayList<CompilerMessage>();
    private boolean isError = false;

    public CompilerResult(DBSchemaObject object) {
        this.object = object;
        Connection connection = null;
        ResultSet resultSet = null;
        List<CompilerMessage> echoMessages = new ArrayList<CompilerMessage>();
        ConnectionHandler connectionHandler = object.getConnectionHandler();
        try {
            connection = connectionHandler.getPoolConnection();
            resultSet = connectionHandler.getInterfaceProvider().getMetadataInterface().loadCompileObjectErrors(
                    object.getSchema().getName(),
                    object.getName(),
                    connection);

            while (resultSet != null && resultSet.next()) {
                CompilerMessage errorMessage = new CompilerMessage(this, resultSet);
                isError = true;
                if (errorMessage.isEcho()) {
                    echoMessages.add(errorMessage);
                } else {
                    compilerMessages.add(errorMessage);
                }

            }

        } catch (SQLException e) {
            e.printStackTrace();
        } finally{
            connectionHandler.freePoolConnection(connection);
            ConnectionUtil.closeResultSet(resultSet);
        }

        if (compilerMessages.size() == 0) {
            if (echoMessages.size() > 0) {
                compilerMessages.addAll(echoMessages);
                isError = true;
            } else {
                compilerMessages.add(new CompilerMessage(this, "The " + getObject().getQualifiedNameWithType() + " was updated successfully."));
            }
        }
    }

    public boolean isError() {
        return isError;
    }

    public CompilerResult(DBSchemaObject object, String errorMessage) {
        this.object = object;
        CompilerMessage message = new CompilerMessage(this, errorMessage, MessageType.ERROR);
        compilerMessages.add(message);
    }

    public List<CompilerMessage> getCompilerMessages() {
        return compilerMessages;
    }

    public DBSchemaObject getObject() {
        return object;
    }

    public Project getProject() {
        return object.getProject();
    }

    public void dispose() {
        compilerMessages.clear();
        object = null;
    }
}
TOP

Related Classes of com.dci.intellij.dbn.execution.compiler.CompilerResult

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.