X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fnet%2Fpterodactylus%2Fjsite%2Fcore%2FNode.java;h=5a8ec89332037846a83879ad0104b8fde7114ef7;hb=464bd5d54b6b55a84dd7245f48164ec0a72cd49c;hp=e0d61f7a9adedf273fc384e6dd82eb9e1fd62519;hpb=3189829661d3411ba3f79b1199ee5fab5c75aae5;p=jSite2.git diff --git a/src/net/pterodactylus/jsite/core/Node.java b/src/net/pterodactylus/jsite/core/Node.java index e0d61f7..5a8ec89 100644 --- a/src/net/pterodactylus/jsite/core/Node.java +++ b/src/net/pterodactylus/jsite/core/Node.java @@ -19,13 +19,29 @@ package net.pterodactylus.jsite.core; +import java.beans.PropertyChangeListener; + +import net.pterodactylus.util.beans.AbstractBean; + /** - * Container for a Freenet node. + * Container for a Freenet node. A Node is capable of notifying + * {@link PropertyChangeListener}s if any of the contained properties change. * * @author David ‘Bombe’ Roden <bombe@freenetproject.org> - * @version $Id$ */ -public class Node { +public class Node extends AbstractBean { + + /** Name of the “name” property. */ + public static final String PROPERTY_NAME = "name"; + + /** Name of the “hostname” property. */ + public static final String PROPERTY_HOSTNAME = "hostname"; + + /** Name of the “port” property. */ + public static final String PROPERTY_PORT = "port"; + + /** Internal ID. */ + private String id; /** The name of the node. */ private String name; @@ -36,8 +52,24 @@ public class Node { /** The port number of the node. */ private int port; - /** Whether the node is running on the same machine as jSite. */ - private boolean sameMachine; + /** + * Returns the internal ID of the node. + * + * @return The internal ID of the node + */ + String getId() { + return id; + } + + /** + * Sets the internal ID of the node. + * + * @param id + * The internal ID of the node + */ + void setId(String id) { + this.id = id; + } /** * Returns the user-given name of the node. @@ -55,7 +87,9 @@ public class Node { * The name of the node */ public void setName(String name) { + String oldName = this.name; this.name = name; + fireIfPropertyChanged(PROPERTY_NAME, oldName, name); } /** @@ -74,7 +108,9 @@ public class Node { * The hostname of the node */ public void setHostname(String hostname) { + String oldHostname = this.hostname; this.hostname = hostname; + fireIfPropertyChanged(PROPERTY_HOSTNAME, oldHostname, hostname); } /** @@ -93,28 +129,17 @@ public class Node { * The port number of the node */ public void setPort(int port) { + int oldPort = this.port; this.port = port; + fireIfPropertyChanged(PROPERTY_PORT, oldPort, port); } /** - * Returns whether this node is running on the same machine as jSite. - * - * @return the sameMachine true if, and only if, the node is - * running on the same machine as jSite - */ - boolean isSameMachine() { - return sameMachine; - } - - /** - * Sets whether this node is running on the same machine as jSite. - * - * @param sameMachine - * true if the node is running on the same machine - * as jSite, false otherwise + * {@inheritDoc} */ - void setSameMachine(boolean sameMachine) { - this.sameMachine = sameMachine; + @Override + public String toString() { + return name + " (" + hostname + ((port == 9481) ? ("") : (":" + port)) + ")"; } }