view src/MPipeline2/src/mpipeline/ltpdapreferences/RepositoryPrefGroup.java @ 5:5a49956df427 database-connection-manager

LTPDAPreferences panel for new LTPDADatabaseConnectionManager
author Daniele Nicolodi <nicolodi@science.unitn.it>
date Mon, 05 Dec 2011 16:20:06 +0100
parents e3c5468b1bfe
children 5e7477b94d94
line wrap: on
line source

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package mpipeline.ltpdapreferences;

import java.util.ArrayList;
import mpipeline.utils.MXMLUtils;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;

/**
 *
 * @author hewitson
 */
public class RepositoryPrefGroup extends LTPDAPrefGroup {

  public static final int REPOSITORY_HOSTNAMES_CHANGED = 1;
  public static final int REPOSITORY_EXPIRY_CHANGED = 2;
  public static final int REPOSITORY_CACHE_PASSWORD_CHANGED = 3;
  public static final int REPOSITORY_MAX_CONNECTIONS_NUMBER_CHANGED = 4;
  
  private Integer expiry = 60;
  private Integer cachePassword = 2;
  private Integer maxConnectionsNumber = 10;

  public RepositoryPrefGroup() {
  }

  public RepositoryPrefGroup(Node node, float version) {

    NamedNodeMap nmap = node.getAttributes();
    expiry = MXMLUtils.getIntegerFromNode("expiry", nmap, version, version);
    cachePassword = MXMLUtils.getIntegerFromNode("cachePassword", nmap, version, version);
    if (cachePassword < 0)
        cachePassword = 2;
    maxConnectionsNumber = MXMLUtils.getIntegerFromNode("maxConnectionsNumber", nmap, version, version);
    if (maxConnectionsNumber < 0)
        maxConnectionsNumber = 10;
  }

  public void attachToDom(Document doc, Element tnode) {

    Element pnode = doc.createElement("Repository");
    pnode.setAttribute("expiry", ""+expiry);
    pnode.setAttribute("cachePassword", ""+cachePassword);
    pnode.setAttribute("maxConnectionsNumber", ""+maxConnectionsNumber);
    tnode.appendChild(pnode);
  }

  public Integer getExpiry() {
    return expiry;
  }

  public void setExpiry(Integer expiry) {
    this.expiry = expiry;
    setChanged();
    notifyObservers(REPOSITORY_EXPIRY_CHANGED);
  }
  
  public Integer getCachePassword() {
      return cachePassword;
  }
  
  public void setCachePassword(Integer value) {
      cachePassword = value;
      setChanged();
      notifyObservers(REPOSITORY_CACHE_PASSWORD_CHANGED);
  }
  
  public Integer getMaxConnectionsNumber() {
      return maxConnectionsNumber;
  }
  
  public void setMaxConnectionsNumber(Integer value) {
      maxConnectionsNumber = value;
      setChanged();
      notifyObservers(REPOSITORY_MAX_CONNECTIONS_NUMBER_CHANGED);
  }
  
  // for backward compatibility
  public ArrayList<String> getHostnames() {
    return new ArrayList<String>();
  }
  
  public void display() {
    System.out.printf(
        "RepositoryPrefGroup(expiry=%d, cachePassword=%d, maxConnectionsNumber=%d)\n",
        expiry, cachePassword, maxConnectionsNumber);
  }
}