All Downloads are FREE. Search and download functionalities are using the official Maven repository.

eu.clarussecure.proxy.protocol.plugins.pgsql.message.PgsqlReadyForQueryMessage Maven / Gradle / Ivy

The newest version!
package eu.clarussecure.proxy.protocol.plugins.pgsql.message;

import io.netty.util.internal.StringUtil;

public class PgsqlReadyForQueryMessage extends PgsqlDetailedQueryResponseMessage {

    public static final byte TYPE = (byte) 'Z';

    private byte transactionStatus;

    public PgsqlReadyForQueryMessage(byte transactionStatus) {
        this.transactionStatus = transactionStatus;
    }

    public String getTransactionStatusAsString() {
        switch ((char) transactionStatus) {
        case 'T':
            return "In a transaction";
        case 'I':
            return "Idle-not in transaction";
        case 'E':
            return "Failed transaction block";
        default:
            throw new IllegalArgumentException(
                    String.format("Invalid transaction status indicator '%c'", (char) transactionStatus));
        }
    }

    public byte getTransactionStatus() {
        return transactionStatus;
    }

    public void setTransactionStatus(byte trxStatus) {
        this.transactionStatus = trxStatus;
    }

    @Override
    public byte getType() {
        return TYPE;
    }

    @Override
    public String toString() {
        StringBuilder builder = new StringBuilder(StringUtil.simpleClassName(this));
        builder.append(" [");
        builder.append("transactionStatus=").append(transactionStatus).append(':')
                .append(getTransactionStatusAsString());
        builder.append("]");
        return builder.toString();
    }

    @Override
    public Byte getDetails() {
        return getTransactionStatus();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy