extensions/net.sf.basedb.opengrid/trunk/src/net/sf/basedb/opengrid/config/NodeConfig.java

Code
Comments
Other
Rev Date Author Line
4275 19 Dec 16 nicklas 1 package net.sf.basedb.opengrid.config;
4275 19 Dec 16 nicklas 2
4275 19 Dec 16 nicklas 3 import org.json.simple.JSONObject;
4275 19 Dec 16 nicklas 4 import net.sf.basedb.opengrid.json.JSONOptions;
4275 19 Dec 16 nicklas 5
4275 19 Dec 16 nicklas 6 /**
4275 19 Dec 16 nicklas 7   Configuration settings related to a single node
4275 19 Dec 16 nicklas 8   in the cluster. So far, we are only interested in the
4275 19 Dec 16 nicklas 9   name of the node so that we can connect to it and
4275 19 Dec 16 nicklas 10   execute commands via SSH.
4275 19 Dec 16 nicklas 11   
4275 19 Dec 16 nicklas 12   @author nicklas
4275 19 Dec 16 nicklas 13   @since 1.0
4275 19 Dec 16 nicklas 14 */
4275 19 Dec 16 nicklas 15 public class NodeConfig 
4275 19 Dec 16 nicklas 16   extends AbstractLockable<NodeConfig>
4275 19 Dec 16 nicklas 17 {
4275 19 Dec 16 nicklas 18   
4275 19 Dec 16 nicklas 19   private String name;
4275 19 Dec 16 nicklas 20   
4275 19 Dec 16 nicklas 21   public NodeConfig()
4275 19 Dec 16 nicklas 22   {}
4275 19 Dec 16 nicklas 23   
4275 19 Dec 16 nicklas 24   /**
4275 19 Dec 16 nicklas 25     Get the name of the node.
4275 19 Dec 16 nicklas 26   */
4275 19 Dec 16 nicklas 27   public String getName()
4275 19 Dec 16 nicklas 28   {
4275 19 Dec 16 nicklas 29     return name;
4275 19 Dec 16 nicklas 30   }
4275 19 Dec 16 nicklas 31   
4275 19 Dec 16 nicklas 32   /**
4275 19 Dec 16 nicklas 33     Set the name of the node.
4275 19 Dec 16 nicklas 34     
4275 19 Dec 16 nicklas 35     @throws IllegalStateException If this instance has been locked
4275 19 Dec 16 nicklas 36   */
4275 19 Dec 16 nicklas 37   public void setName(String name)
4275 19 Dec 16 nicklas 38   {
4275 19 Dec 16 nicklas 39     checkLocked("setName()");
4275 19 Dec 16 nicklas 40     this.name = name;
4275 19 Dec 16 nicklas 41   }
4275 19 Dec 16 nicklas 42
4275 19 Dec 16 nicklas 43   /**
4275 19 Dec 16 nicklas 44     Name is required.
4275 19 Dec 16 nicklas 45    */
4275 19 Dec 16 nicklas 46   @Override
4275 19 Dec 16 nicklas 47   protected void checkValid(boolean forLock) 
4275 19 Dec 16 nicklas 48   {
4275 19 Dec 16 nicklas 49     super.checkValid(forLock);
4275 19 Dec 16 nicklas 50     if (name == null) throw new NullPointerException("name");
4275 19 Dec 16 nicklas 51   }
4275 19 Dec 16 nicklas 52   
4275 19 Dec 16 nicklas 53   /**
4275 19 Dec 16 nicklas 54     Get the configuration information as a JSON object.
4275 19 Dec 16 nicklas 55   */
4275 19 Dec 16 nicklas 56   public JSONObject asJSONObject(JSONOptions options)
4275 19 Dec 16 nicklas 57   {
4275 19 Dec 16 nicklas 58     JSONObject json = new JSONObject();
4275 19 Dec 16 nicklas 59     json.put("name", name);
4275 19 Dec 16 nicklas 60     return json;
4275 19 Dec 16 nicklas 61   }
4275 19 Dec 16 nicklas 62
4275 19 Dec 16 nicklas 63 }