com.mirth.connect.connectors.jdbc.DatabaseDispatcherProperties.java Source code

Java tutorial

Introduction

Here is the source code for com.mirth.connect.connectors.jdbc.DatabaseDispatcherProperties.java

Source

/*
 * Copyright (c) Mirth Corporation. All rights reserved.
 * 
 * http://www.mirthcorp.com
 * 
 * The software in this package is published under the terms of the MPL license a copy of which has
 * been included with this distribution in the LICENSE.txt file.
 */

package com.mirth.connect.connectors.jdbc;

import java.util.Map;

import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.builder.EqualsBuilder;

import com.mirth.connect.donkey.model.channel.ConnectorProperties;
import com.mirth.connect.donkey.model.channel.DestinationConnectorProperties;
import com.mirth.connect.donkey.model.channel.DestinationConnectorPropertiesInterface;
import com.mirth.connect.donkey.util.DonkeyElement;
import com.mirth.connect.donkey.util.purge.PurgeUtil;

public class DatabaseDispatcherProperties extends ConnectorProperties
        implements DestinationConnectorPropertiesInterface {
    public static final String NAME = "Database Writer";

    private DestinationConnectorProperties destinationConnectorProperties;

    private String driver;
    private String url;
    private String username;
    private String password;
    private String query;
    private Object[] parameters;
    private boolean useScript;

    public static final String DRIVER_DEFAULT = "Please Select One";

    public DatabaseDispatcherProperties() {
        destinationConnectorProperties = new DestinationConnectorProperties(false);

        this.driver = DRIVER_DEFAULT;
        this.url = "";
        this.username = "";
        this.password = "";
        this.query = "";
        this.useScript = false;
    }

    public DatabaseDispatcherProperties(DatabaseDispatcherProperties props) {
        super(props);
        destinationConnectorProperties = new DestinationConnectorProperties(
                props.getDestinationConnectorProperties());

        this.driver = props.getDriver();
        this.url = props.getUrl();
        this.username = props.getUsername();
        this.password = props.getPassword();
        this.query = props.getQuery();
        this.useScript = props.isUseScript();
    }

    @Override
    public String getProtocol() {
        return "jdbc";
    }

    @Override
    public String getName() {
        return NAME;
    }

    @Override
    public String toFormattedString() {
        StringBuilder builder = new StringBuilder();
        String newLine = "\n";
        builder.append("URL: ");
        builder.append(url);
        builder.append(newLine);

        builder.append("USERNAME: ");
        builder.append(username);
        builder.append(newLine);

        builder.append(newLine);
        builder.append(useScript ? "[SCRIPT]" : "[QUERY]");
        builder.append(newLine);
        builder.append(StringUtils.trim(query));

        for (int i = 0; i < parameters.length; i++) {
            builder.append(newLine);
            builder.append(newLine);
            builder.append("[PARAMETER ");
            builder.append(String.valueOf(i + 1));
            builder.append("]");
            builder.append(newLine);
            builder.append(parameters[i]);
        }

        return builder.toString();
    }

    @Override
    public DestinationConnectorProperties getDestinationConnectorProperties() {
        return destinationConnectorProperties;
    }

    public String getDriver() {
        return driver;
    }

    public void setDriver(String driver) {
        this.driver = driver;
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getQuery() {
        return query;
    }

    public void setQuery(String query) {
        this.query = query;
    }

    public Object[] getParameters() {
        return parameters;
    }

    public void setParameters(Object[] parameters) {
        this.parameters = parameters;
    }

    public boolean isUseScript() {
        return useScript;
    }

    public void setUseScript(boolean useScript) {
        this.useScript = useScript;
    }

    @Override
    public ConnectorProperties clone() {
        return new DatabaseDispatcherProperties(this);
    }

    @Override
    public boolean canValidateResponse() {
        return true;
    }

    @Override
    public boolean equals(Object obj) {
        return EqualsBuilder.reflectionEquals(this, obj);
    }

    @Override
    public void migrate3_0_1(DonkeyElement element) {
    }

    @Override
    public void migrate3_0_2(DonkeyElement element) {
    }

    @Override
    public void migrate3_1_0(DonkeyElement element) {
        super.migrate3_1_0(element);
    }

    @Override
    public void migrate3_2_0(DonkeyElement element) {
    }

    @Override
    public void migrate3_3_0(DonkeyElement element) {
    }

    @Override
    public void migrate3_4_0(DonkeyElement element) {
    }

    @Override
    public void migrate3_5_0(DonkeyElement element) {
    }

    @Override
    public Map<String, Object> getPurgedProperties() {
        Map<String, Object> purgedProperties = super.getPurgedProperties();
        purgedProperties.put("destinationConnectorProperties",
                destinationConnectorProperties.getPurgedProperties());
        purgedProperties.put("driver", driver);
        purgedProperties.put("queryLines", PurgeUtil.countLines(query));
        purgedProperties.put("useScript", useScript);
        return purgedProperties;
    }
}