com.tesora.dve.comms.client.messages.ConnectRequest.java Source code

Java tutorial

Introduction

Here is the source code for com.tesora.dve.comms.client.messages.ConnectRequest.java

Source

package com.tesora.dve.comms.client.messages;

/*
 * #%L
 * Tesora Inc.
 * Database Virtualization Engine
 * %%
 * Copyright (C) 2011 - 2014 Tesora Inc.
 * %%
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License, version 3,
 * as published by the Free Software Foundation.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU Affero General Public License for more details.
 * 
 * You should have received a copy of the GNU Affero General Public License
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
 * #L%
 */

import io.netty.util.CharsetUtil;

import java.nio.charset.Charset;

import com.tesora.dve.exceptions.PEException;

public class ConnectRequest extends RequestMessage {
    private static final long serialVersionUID = 1L;

    protected String userID;
    protected Object password;
    protected String project;
    protected boolean isPlain = true;
    protected String charset;

    public ConnectRequest() {
    }

    public ConnectRequest(String userID, String password) {
        this.userID = userID;
        this.password = password;
    }

    public String getUserID() {
        return this.userID;
    }

    public String getPassword() throws PEException {
        if (password == null)
            return null;

        if (password instanceof String)
            return (String) password;

        if (password instanceof byte[])
            return new String((byte[]) password, getCharset());

        throw new PEException("Invalid object type as password in ConnectRequest " + password.getClass().getName());
    }

    public String getProject() {
        return this.project;
    }

    public void setProject(String project) {
        this.project = project;
    }

    public Charset getCharset() {
        // if the Charset wasn't provided, default to ISO_8859_1
        if (charset != null)
            return Charset.forName(charset);

        return CharsetUtil.ISO_8859_1;
    }

    public void setCharset(Charset charset) {
        this.charset = charset.name();
    }

    public boolean getIsPlaintext() {
        return isPlain;
    }

    public void setIsPlaintext(boolean isPlaintext) {
        this.isPlain = isPlaintext;
    }

    @Override
    public void marshallMessage() {
        if (!getIsPlaintext()) {
            if (this.password != null && this.password instanceof String) {
                password = ((String) password).getBytes(getCharset());
            }
        }
    }

    @Override
    public MessageType getMessageType() {
        return MessageType.CONNECT_REQUEST;
    }

    @Override
    public MessageVersion getVersion() {
        return MessageVersion.VERSION1;
    }

}