diff src/com/five_ten_sg/connectbot/bean/HostBean.java @ 0:0ce5cc452d02

initial version
author Carl Byington <carl@five-ten-sg.com>
date Thu, 22 May 2014 10:41:19 -0700
parents
children ce8f13242339
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/com/five_ten_sg/connectbot/bean/HostBean.java	Thu May 22 10:41:19 2014 -0700
@@ -0,0 +1,364 @@
+/*
+ * ConnectBot: simple, powerful, open-source SSH client for Android
+ * Copyright 2007 Kenny Root, Jeffrey Sharkey
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.five_ten_sg.connectbot.bean;
+
+import com.five_ten_sg.connectbot.util.HostDatabase;
+import android.content.ContentValues;
+import android.net.Uri;
+
+/**
+ * @author Kenny Root
+ *
+ */
+public class HostBean extends AbstractBean {
+    public static final String BEAN_NAME = "host";
+
+    /* Database fields */
+    private long id = -1;
+    private String nickname = null;
+    private String username = null;
+    private String hostname = null;
+    private int port = 22;
+    private String protocol = "ssh";
+    private String hostKeyAlgo = null;
+    private byte[] hostKey = null;
+    private long lastConnect = -1;
+    private String color;
+    private boolean useKeys = true;
+    private String useAuthAgent = HostDatabase.AUTHAGENT_NO;
+    private String postLogin = null;
+    private long pubkeyId = -1;
+    private boolean wantSession = true;
+    private String delKey = HostDatabase.DELKEY_DEL;
+    private int fontSize = -1;
+    private boolean compression = false;
+    private String httpproxy = null;
+    private String encoding = HostDatabase.ENCODING_DEFAULT;
+    private boolean stayConnected = false;
+    private boolean wantX11Forward = false;
+    private String x11Host = "localhost";
+    private int x11Port = 6000;
+    private String monitor = null;
+
+    public HostBean() {
+    }
+
+    @Override
+    public String getBeanName() {
+        return BEAN_NAME;
+    }
+
+    public HostBean(String nickname, String protocol, String username, String hostname, int port) {
+        this.nickname = nickname;
+        this.protocol = protocol;
+        this.username = username;
+        this.hostname = hostname;
+        this.port = port;
+    }
+
+    public void setId(long id) {
+        this.id = id;
+    }
+    public long getId() {
+        return id;
+    }
+    public void setNickname(String nickname) {
+        this.nickname = nickname;
+    }
+    public String getNickname() {
+        return nickname;
+    }
+    public void setUsername(String username) {
+        this.username = username;
+    }
+    public String getUsername() {
+        return username;
+    }
+    public void setHostname(String hostname) {
+        this.hostname = hostname;
+    }
+    public String getHostname() {
+        return hostname;
+    }
+    public void setPort(int port) {
+        this.port = port;
+    }
+    public int getPort() {
+        return port;
+    }
+
+    public void setProtocol(String protocol) {
+        this.protocol = protocol;
+    }
+
+    public String getProtocol() {
+        return protocol;
+    }
+
+    public void setHostKeyAlgo(String hostKeyAlgo) {
+        this.hostKeyAlgo = hostKeyAlgo;
+    }
+    public String getHostKeyAlgo() {
+        return hostKeyAlgo;
+    }
+    public void setHostKey(byte[] hostKey) {
+        if (hostKey == null)
+            this.hostKey = null;
+        else
+            this.hostKey = hostKey.clone();
+    }
+    public byte[] getHostKey() {
+        if (hostKey == null)
+            return null;
+        else
+            return hostKey.clone();
+    }
+    public void setLastConnect(long lastConnect) {
+        this.lastConnect = lastConnect;
+    }
+    public long getLastConnect() {
+        return lastConnect;
+    }
+    public void setColor(String color) {
+        this.color = color;
+    }
+    public String getColor() {
+        return color;
+    }
+    public void setUseKeys(boolean useKeys) {
+        this.useKeys = useKeys;
+    }
+    public boolean getUseKeys() {
+        return useKeys;
+    }
+    public void setUseAuthAgent(String useAuthAgent) {
+        this.useAuthAgent = useAuthAgent;
+    }
+    public String getUseAuthAgent() {
+        return useAuthAgent;
+    }
+    public void setPostLogin(String postLogin) {
+        this.postLogin = postLogin;
+    }
+    public String getPostLogin() {
+        return postLogin;
+    }
+    public void setPubkeyId(long pubkeyId) {
+        this.pubkeyId = pubkeyId;
+    }
+    public long getPubkeyId() {
+        return pubkeyId;
+    }
+    public void setWantSession(boolean wantSession) {
+        this.wantSession = wantSession;
+    }
+    public boolean getWantSession() {
+        return wantSession;
+    }
+    public void setDelKey(String delKey) {
+        this.delKey = delKey;
+    }
+    public String getDelKey() {
+        return delKey;
+    }
+    public void setFontSize(int fontSize) {
+        this.fontSize = fontSize;
+    }
+    public int getFontSize() {
+        return fontSize;
+    }
+    public void setCompression(boolean compression) {
+        this.compression = compression;
+    }
+    public boolean getCompression() {
+        return compression;
+    }
+    public void setHttpproxy(String httpproxy) {
+        this.httpproxy = httpproxy;
+    }
+    public String getHttpproxy() {
+        return httpproxy;
+    }
+
+    public void setEncoding(String encoding) {
+        this.encoding  = encoding;
+    }
+
+    public String getEncoding() {
+        return this.encoding;
+    }
+
+    public void setStayConnected(boolean stayConnected) {
+        this.stayConnected = stayConnected;
+    }
+
+    public boolean getStayConnected() {
+        return stayConnected;
+    }
+
+    public String getDescription() {
+        String description = String.format("%s@%s", username, hostname);
+
+        if (port != 22)
+            description += String.format(":%d", port);
+
+        return description;
+    }
+
+    public boolean getWantX11Forward() {
+        return this.wantX11Forward;
+    }
+
+    public void setWantX11Forward(boolean wantX11Forward) {
+        this.wantX11Forward = wantX11Forward;
+    }
+
+    public String getX11Host() {
+        return this.x11Host;
+    }
+
+    public void setX11Host(String x11Host) {
+        this.x11Host = x11Host;
+    }
+
+    public int getX11Port() {
+        return this.x11Port;
+    }
+
+    public void setX11Port(int x11Port) {
+        this.x11Port = x11Port;
+    }
+
+    public String getMonitor() {
+        return this.monitor;
+    }
+
+    public void setMonitor(String monitor) {
+        this.monitor = monitor;
+    }
+
+    @Override
+    public ContentValues getValues() {
+        ContentValues values = new ContentValues();
+        values.put(HostDatabase.FIELD_HOST_NICKNAME, nickname);
+        values.put(HostDatabase.FIELD_HOST_PROTOCOL, protocol);
+        values.put(HostDatabase.FIELD_HOST_USERNAME, username);
+        values.put(HostDatabase.FIELD_HOST_HOSTNAME, hostname);
+        values.put(HostDatabase.FIELD_HOST_PORT, port);
+        values.put(HostDatabase.FIELD_HOST_HOSTKEYALGO, hostKeyAlgo);
+        values.put(HostDatabase.FIELD_HOST_HOSTKEY, hostKey);
+        values.put(HostDatabase.FIELD_HOST_LASTCONNECT, lastConnect);
+        values.put(HostDatabase.FIELD_HOST_COLOR, color);
+        values.put(HostDatabase.FIELD_HOST_USEKEYS, Boolean.toString(useKeys));
+        values.put(HostDatabase.FIELD_HOST_USEAUTHAGENT, useAuthAgent);
+        values.put(HostDatabase.FIELD_HOST_POSTLOGIN, postLogin);
+        values.put(HostDatabase.FIELD_HOST_PUBKEYID, pubkeyId);
+        values.put(HostDatabase.FIELD_HOST_WANTSESSION, Boolean.toString(wantSession));
+        values.put(HostDatabase.FIELD_HOST_DELKEY, delKey);
+        values.put(HostDatabase.FIELD_HOST_FONTSIZE, fontSize);
+        values.put(HostDatabase.FIELD_HOST_COMPRESSION, Boolean.toString(compression));
+        values.put(HostDatabase.FIELD_HOST_HTTPPROXY, httpproxy);
+        values.put(HostDatabase.FIELD_HOST_ENCODING, encoding);
+        values.put(HostDatabase.FIELD_HOST_STAYCONNECTED, stayConnected);
+        values.put(HostDatabase.FIELD_HOST_WANTX11FORWARD, wantX11Forward);
+        values.put(HostDatabase.FIELD_HOST_X11HOST, x11Host);
+        values.put(HostDatabase.FIELD_HOST_X11PORT, x11Port);
+        values.put(HostDatabase.FIELD_HOST_MONITOR, monitor);
+        return values;
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (o == null || !(o instanceof HostBean))
+            return false;
+
+        HostBean host = (HostBean)o;
+
+        if (id != -1 && host.getId() != -1)
+            return host.getId() == id;
+
+        if (nickname == null) {
+            if (host.getNickname() != null)
+                return false;
+        }
+        else if (!nickname.equals(host.getNickname()))
+            return false;
+
+        if (protocol == null) {
+            if (host.getProtocol() != null)
+                return false;
+        }
+        else if (!protocol.equals(host.getProtocol()))
+            return false;
+
+        if (username == null) {
+            if (host.getUsername() != null)
+                return false;
+        }
+        else if (!username.equals(host.getUsername()))
+            return false;
+
+        if (hostname == null) {
+            if (host.getHostname() != null)
+                return false;
+        }
+        else if (!hostname.equals(host.getHostname()))
+            return false;
+
+        if (port != host.getPort())
+            return false;
+
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        int hash = 7;
+
+        if (id != -1)
+            return (int)id;
+
+        hash = 31 * hash + (null == nickname ? 0 : nickname.hashCode());
+        hash = 31 * hash + (null == protocol ? 0 : protocol.hashCode());
+        hash = 31 * hash + (null == username ? 0 : username.hashCode());
+        hash = 31 * hash + (null == hostname ? 0 : hostname.hashCode());
+        hash = 31 * hash + port;
+        return hash;
+    }
+
+    /**
+     * @return URI identifying this HostBean
+     */
+    public Uri getUri() {
+        StringBuilder sb = new StringBuilder();
+        sb.append(protocol)
+        .append("://");
+
+        if (username != null)
+            sb.append(Uri.encode(username))
+            .append('@');
+
+        sb.append(Uri.encode(hostname))
+        .append(':')
+        .append(port)
+        .append("/#")
+        .append(nickname);
+        return Uri.parse(sb.toString());
+    }
+
+}