// Path: com.baloise.egitblit.plugin/src/com/baloise/egitblit/common/GitBlitExplorerException.java
// public class GitBlitExplorerException extends Exception {
// 
// 	private static final long serialVersionUID = 1L;
// 
// 	public GitBlitExplorerException() {
// 		super();
// 	}
// 
// 	public GitBlitExplorerException(String arg0, Throwable arg1) {
// 		super(arg0, arg1);
// 	}
// 
// 	public GitBlitExplorerException(String arg0) {
// 		super(arg0);
// 	}
// 
// 	public GitBlitExplorerException(Throwable arg0) {
// 		super(arg0);
// 	}
// }
// 
// Path: com.baloise.egitblit.plugin/src/com/baloise/egitblit/pref/CloneProtocol.java
// public enum CloneProtocol{
// 	HTTPS("https", 8443, 0), 
// 	HTTP("http", 8080, 1), 
// 	SSH("ssh", 29418, 2), 
// 	GIT("git", 9418, 3), 
// 	File("file", null, 4), 
// 	FTP("ftp", 21, 5), 
// 	SFTP("sftp", 29418, 6);
// 
// 	public final String schema;
// 	public final Integer defaultPort;
// 	public final int index;
// 
// 	CloneProtocol(String schema, Integer defPort, int index){
// 		this.schema = schema;
// 		this.defaultPort = defPort;
// 		this.index = index;
// 	}
// 
// 	public static CloneProtocol getByIndex(int index){
// 		CloneProtocol items[] = values();
// 		if(index < 0 || index > items.length){
// 			return null;
// 		}
// 		for(CloneProtocol item : items){
// 			if(item.index == index){
// 				return item;
// 			}
// 		}
// 		return null;
// 	}
// 
// 	public static String[] getDisplayValues(){
// 		CloneProtocol items[] = values();
// 		String res[] = new String[items.length];
// 		for(CloneProtocol item : items){
// 			res[item.index] = item.schema;
// 		}
// 		return res;
// 	}
// 
// 	public static CloneProtocol getValue(String schema){
// 		if(schema == null || schema.trim().isEmpty()){
// 			return null;
// 		}
// 		CloneProtocol items[] = values();
// 		for(CloneProtocol item : items){
// 			if(item.schema.equalsIgnoreCase(schema)){
// 				return item;
// 			}
// 		}
// 		return null;
// 	}
// }
// 
// Path: com.baloise.egitblit.plugin/src/com/baloise/egitblit/pref/CloneSettings.java
// public class CloneSettings{
// 
// 	private boolean enabled;
// 	private CloneProtocol cloneProtocol;
// 	private Integer port;
// 	public final static Integer NO_PORT = -1;
// 
// 	public CloneSettings(){
// 		this(false);
// 	}
// 
// 	public CloneSettings(CloneProtocol pro, Integer port){
// 		setCloneProtocol(pro);
// 		setPort(port);
// 		setEnabled(true);
// 	}
// 
// 	public CloneSettings(boolean enabled){
// 		this(CloneProtocol.HTTPS, CloneProtocol.HTTPS.defaultPort);
// 		setEnabled(enabled);
// 	}
// 
// 	public boolean isEnabled(){
// 		return this.enabled;
// 	}
// 
// 	public void setEnabled(boolean enabled){
// 		this.enabled = enabled;
// 	}
// 
// 	public CloneProtocol getCloneProtocol(){
// 		return cloneProtocol;
// 	}
// 
// 	public void setCloneProtocol(CloneProtocol cloneProtocol){
// 		this.cloneProtocol = cloneProtocol;
// 	}
// 
// 	public Integer getPort(){
// 		return port;
// 	}
// 
// 	public void setPort(Integer port){
// 		if(port == null || port < 0){
// 			this.port = NO_PORT;
// 			return;
// 		}
//     this.port = port;
// 	}
// }


import java.net.URL;
import java.util.List;
import com.baloise.egitblit.common.GitBlitExplorerException;
import com.baloise.egitblit.pref.CloneProtocol;
import com.baloise.egitblit.pref.CloneSettings;

package com.baloise.egitblit.gitblit;



/**
 * Represents one Config Entry (one GitBlit Repo entry)
 * 
 * @author MicBag
 */
public class GitBlitServer {
  // Static fields
  public static final String GITBLIT_CTX_PATH = "gitblit/r/";

  // Server settings
  // huh?! public & not final?  No getter/setter mania inside the plugin :-) This are plain values which are not computed or validated while assigning
  public String url;
  public String user;
  public String password;
  public CloneSettings cloneSettings;

  // Status / Confiig fields
  public boolean active = true;
  public boolean serverError = false;

  private List<GitBlitRepository> projectList;

  public GitBlitServer(String url, boolean active, String user, String pwd, CloneSettings cls) {
    this.url = url;
    this.user = user;
    this.password = pwd;
    this.active = active;
    this.cloneSettings = cls;
  }

  public GitBlitServer(String url, String user, String pwd, CloneSettings cls) {
    this(url, true, user, pwd, cls);
  }

  public GitBlitServer(String url, boolean active, String user, String pwd) {
    this(url, active, user, pwd, new CloneSettings());
  }

  public GitBlitServer() {
    this(null, true, null, null);
  }


// Path: com.baloise.egitblit.plugin/src/com/baloise/egitblit/common/GitBlitExplorerException.java
// public class GitBlitExplorerException extends Exception {
// 
// 	private static final long serialVersionUID = 1L;
// 
// 	public GitBlitExplorerException() {
// 		super();
// 	}
// 
// 	public GitBlitExplorerException(String arg0, Throwable arg1) {
// 		super(arg0, arg1);
// 	}
// 
// 	public GitBlitExplorerException(String arg0) {
// 		super(arg0);
// 	}
// 
// 	public GitBlitExplorerException(Throwable arg0) {
// 		super(arg0);
// 	}
// }
// 
// Path: com.baloise.egitblit.plugin/src/com/baloise/egitblit/pref/CloneProtocol.java
// public enum CloneProtocol{
// 	HTTPS("https", 8443, 0), 
// 	HTTP("http", 8080, 1), 
// 	SSH("ssh", 29418, 2), 
// 	GIT("git", 9418, 3), 
// 	File("file", null, 4), 
// 	FTP("ftp", 21, 5), 
// 	SFTP("sftp", 29418, 6);
// 
// 	public final String schema;
// 	public final Integer defaultPort;
// 	public final int index;
// 
// 	CloneProtocol(String schema, Integer defPort, int index){
// 		this.schema = schema;
// 		this.defaultPort = defPort;
// 		this.index = index;
// 	}
// 
// 	public static CloneProtocol getByIndex(int index){
// 		CloneProtocol items[] = values();
// 		if(index < 0 || index > items.length){
// 			return null;
// 		}
// 		for(CloneProtocol item : items){
// 			if(item.index == index){
// 				return item;
// 			}
// 		}
// 		return null;
// 	}
// 
// 	public static String[] getDisplayValues(){
// 		CloneProtocol items[] = values();
// 		String res[] = new String[items.length];
// 		for(CloneProtocol item : items){
// 			res[item.index] = item.schema;
// 		}
// 		return res;
// 	}
// 
// 	public static CloneProtocol getValue(String schema){
// 		if(schema == null || schema.trim().isEmpty()){
// 			return null;
// 		}
// 		CloneProtocol items[] = values();
// 		for(CloneProtocol item : items){
// 			if(item.schema.equalsIgnoreCase(schema)){
// 				return item;
// 			}
// 		}
// 		return null;
// 	}
// }
// 
// Path: com.baloise.egitblit.plugin/src/com/baloise/egitblit/pref/CloneSettings.java
// public class CloneSettings{
// 
// 	private boolean enabled;
// 	private CloneProtocol cloneProtocol;
// 	private Integer port;
// 	public final static Integer NO_PORT = -1;
// 
// 	public CloneSettings(){
// 		this(false);
// 	}
// 
// 	public CloneSettings(CloneProtocol pro, Integer port){
// 		setCloneProtocol(pro);
// 		setPort(port);
// 		setEnabled(true);
// 	}
// 
// 	public CloneSettings(boolean enabled){
// 		this(CloneProtocol.HTTPS, CloneProtocol.HTTPS.defaultPort);
// 		setEnabled(enabled);
// 	}
// 
// 	public boolean isEnabled(){
// 		return this.enabled;
// 	}
// 
// 	public void setEnabled(boolean enabled){
// 		this.enabled = enabled;
// 	}
// 
// 	public CloneProtocol getCloneProtocol(){
// 		return cloneProtocol;
// 	}
// 
// 	public void setCloneProtocol(CloneProtocol cloneProtocol){
// 		this.cloneProtocol = cloneProtocol;
// 	}
// 
// 	public Integer getPort(){
// 		return port;
// 	}
// 
// 	public void setPort(Integer port){
// 		if(port == null || port < 0){
// 			this.port = NO_PORT;
// 			return;
// 		}
//     this.port = port;
// 	}
// }


// Path: com.baloise.egitblit.plugin/src/com/baloise/egitblit/gitblit/GitBlitServer.java
import java.net.URL;
import java.util.List;
import com.baloise.egitblit.common.GitBlitExplorerException;
import com.baloise.egitblit.pref.CloneProtocol;
import com.baloise.egitblit.pref.CloneSettings;

package com.baloise.egitblit.gitblit;



/**
 * Represents one Config Entry (one GitBlit Repo entry)
 * 
 * @author MicBag
 */
public class GitBlitServer {
  // Static fields
  public static final String GITBLIT_CTX_PATH = "gitblit/r/";

  // Server settings
  // huh?! public & not final?  No getter/setter mania inside the plugin :-) This are plain values which are not computed or validated while assigning
  public String url;
  public String user;
  public String password;
  public CloneSettings cloneSettings;

  // Status / Confiig fields
  public boolean active = true;
  public boolean serverError = false;

  private List<GitBlitRepository> projectList;

  public GitBlitServer(String url, boolean active, String user, String pwd, CloneSettings cls) {
    this.url = url;
    this.user = user;
    this.password = pwd;
    this.active = active;
    this.cloneSettings = cls;
  }

  public GitBlitServer(String url, String user, String pwd, CloneSettings cls) {
    this(url, true, user, pwd, cls);
  }

  public GitBlitServer(String url, boolean active, String user, String pwd) {
    this(url, active, user, pwd, new CloneSettings());
  }

  public GitBlitServer() {
    this(null, true, null, null);
  }


  public void setCloneSettings(CloneSettings set) {
