diff app/src/main/java/com/five_ten_sg/connectbot/bean/HostBean.java @ 438:d29cce60f393

migrate from Eclipse to Android Studio
author Carl Byington <carl@five-ten-sg.com>
date Thu, 03 Dec 2015 11:23:55 -0800
parents src/com/five_ten_sg/connectbot/bean/HostBean.java@e0f5e706a655
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/src/main/java/com/five_ten_sg/connectbot/bean/HostBean.java	Thu Dec 03 11:23:55 2015 -0800
@@ -0,0 +1,454 @@
+/*
+ * 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 String  delKey = HostDatabase.DELKEY_DEL;
+    private float   fontSize = -1;
+    private boolean fixedSize = false;
+    private int     fixedWidth = 80;
+    private int     fixedHeight = 25;
+    private boolean wantSession = true;
+    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;
+    private String  hostemulation = null;
+    private String  encryption5250 = null;
+    private String  library = null;
+    private String  initialMenu = null;
+    private String  program = 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 boolean isSSH() {
+        return protocol.equals("ssh");
+    }
+
+    public boolean is5250() {
+        return protocol.equals("tn5250");
+    }
+
+    public boolean isTelnet() {
+        return protocol.equals("telnet");
+    }
+
+    public boolean isAsync() {
+        return isSSH() || isTelnet();
+    }
+
+    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(float fontSize) {
+        this.fontSize = fontSize;
+    }
+    public float getFontSize() {
+        return fontSize;
+    }
+    public void setFixedSize(boolean fixedSize) {
+        this.fixedSize = fixedSize;
+    }
+    public boolean getFixedSize() {
+        return fixedSize;
+    }
+    public void setFixedWidth(int fixedWidth) {
+        this.fixedWidth = fixedWidth;
+    }
+    public int getFixedWidth() {
+        return fixedWidth;
+    }
+    public void setFixedHeight(int fixedHeight) {
+        this.fixedHeight = fixedHeight;
+    }
+    public int getFixedHeight() {
+        return fixedHeight;
+    }
+    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;
+    }
+
+    public String getHostEmulation() {
+        return this.hostemulation;
+    }
+
+    public void setHostEmulation(String hostemulation) {
+        this.hostemulation = hostemulation;
+    }
+
+    public String getEncryption5250() {
+        return this.encryption5250;
+    }
+
+    public void setEncryption5250(String encryption5250) {
+        this.encryption5250 = encryption5250;
+    }
+
+    public String getLibrary() {
+        return this.library;
+    }
+
+    public void setLibrary(String library) {
+        this.library = library;
+    }
+
+    public String getInitialMenu() {
+        return this.initialMenu;
+    }
+
+    public void setInitialMenu(String initialMenu) {
+        this.initialMenu = initialMenu;
+    }
+
+    public String getProgram() {
+        return this.program;
+    }
+
+    public void setProgram(String program) {
+        this.program = program;
+    }
+
+    @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_FIXEDSIZE, Boolean.toString(fixedSize));
+        values.put(HostDatabase.FIELD_HOST_FIXEDWIDTH, fixedWidth);
+        values.put(HostDatabase.FIELD_HOST_FIXEDHEIGHT, fixedHeight);
+        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);
+        values.put(HostDatabase.FIELD_HOST_EMULATION, hostemulation);
+        values.put(HostDatabase.FIELD_HOST_ENCRYPTION5250, encryption5250);
+        values.put(HostDatabase.FIELD_HOST_LIBRARY5250, library);
+        values.put(HostDatabase.FIELD_HOST_MENU5250, initialMenu);
+        values.put(HostDatabase.FIELD_HOST_PROGRAM5250, program);
+        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());
+    }
+
+}