Mercurial > hg > ltpda
view src/MPipeline2/src/mpipeline/ltpdapreferences/RepositoryPrefGroup.java @ 33:5e7477b94d94 database-connection-manager
Add known repositories list to LTPDAPreferences
author | Daniele Nicolodi <nicolodi@science.unitn.it> |
---|---|
date | Mon, 05 Dec 2011 16:20:06 +0100 |
parents | 5a49956df427 |
children |
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.List; 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; private ArrayList<String[]> repositories = new ArrayList<String[]>(0); 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; org.w3c.dom.NodeList nodes = node.getChildNodes(); for (int i = 0; i < nodes.getLength(); i++) { try { if (nodes.item(i).getNodeName().equals("Entry")) { NamedNodeMap map = nodes.item(i).getAttributes(); String hostname = map.getNamedItem("hostname").getNodeValue(); String database = map.getNamedItem("database").getNodeValue(); String username = map.getNamedItem("username").getNodeValue(); repositories.add(new String[]{hostname, database, username}); } } catch (NullPointerException ex) { // continue } } } 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); for (String[] repo : repositories) { Element node = doc.createElement("Entry"); node.setAttribute("hostname", repo[0]); node.setAttribute("database", repo[1]); node.setAttribute("username", repo[2]); pnode.appendChild(node); } } 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); } public ArrayList<String[]> getRepositories() { return repositories; } public void setRepositories(ArrayList<String[]> value) { repositories.clear(); for (String[] repo : value) { repositories.add(repo); } setChanged(); } public void display() { System.out.printf( "RepositoryPrefGroup(expiry=%d, cachePassword=%d, maxConnectionsNumber=%d)\n", expiry, cachePassword, maxConnectionsNumber); } }