001: /*
002: * GNetWatch
003: * Copyright 2006, 2007 Alexandre Fenyo
004: * gnetwatch@fenyo.net
005: *
006: * This file is part of GNetWatch.
007: *
008: * GNetWatch is free software; you can redistribute it and/or modify
009: * it under the terms of the GNU General Public License as published by
010: * the Free Software Foundation; either version 2 of the License, or
011: * (at your option) any later version.
012: *
013: * GNetWatch is distributed in the hope that it will be useful,
014: * but WITHOUT ANY WARRANTY; without even the implied warranty of
015: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
016: * GNU General Public License for more details.
017: *
018: * You should have received a copy of the GNU General Public License
019: * along with GNetWatch; if not, write to the Free Software
020: * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
021: */
022:
023: package net.fenyo.gnetwatch.targets;
024:
025: import net.fenyo.gnetwatch.*;
026: import net.fenyo.gnetwatch.GUI.GUI;
027: import net.fenyo.gnetwatch.GUI.VisualElement;
028: import net.fenyo.gnetwatch.actions.ActionPing;
029: import net.fenyo.gnetwatch.data.EventReachable;
030:
031: import org.apache.commons.logging.Log;
032: import org.apache.commons.logging.LogFactory;
033:
034: /**
035: * TargetGroup implements a target that can contain other targets.
036: * @author Alexandre Fenyo
037: * @version $Id: TargetGroup.java,v 1.8 2007/03/03 00:38:19 fenyo Exp $
038: */
039:
040: public class TargetGroup extends Target {
041: private static Log log = LogFactory.getLog(TargetGroup.class);
042:
043: private String group_name; // not null
044:
045: /**
046: * Constructor.
047: * @param name target name.
048: * @param group_name group name.
049: * @throws AlgorithmException exception.
050: */
051: // GUI thread
052: public TargetGroup(final String name, final String group_name)
053: throws AlgorithmException {
054: super (name);
055: this .group_name = group_name;
056: setItem(group_name);
057: }
058:
059: /**
060: * Returns the group name.
061: * @param none.
062: * @return String group name.
063: */
064: protected String getGroupName() {
065: return group_name;
066: }
067:
068: /**
069: * Checks that the parameter can be attached to this target.
070: * @param visual_element parameter to check.
071: * @return true if the parameter can be attached to this target.
072: */
073: public boolean canManageThisChild(final VisualElement visual_element) {
074: if (Target.class.isInstance(visual_element))
075: return true;
076: return false;
077: }
078:
079: /**
080: * Compares two targets.
081: * @param o target to compare to.
082: * @return true if the targets are equal.
083: */
084: // any thread
085: public boolean equals(final Object o) {
086: if (this == o)
087: return true;
088: if ((o == null) || (o.getClass() != getClass()))
089: return false;
090: final TargetGroup target = (TargetGroup) o;
091: return getGroupName().equals(target.getGroupName());
092: }
093:
094: /**
095: * Returns the hashcode for this target.
096: * @param none.
097: * @return int hashcode.
098: */
099: // any thread
100: public int hashCode() {
101: return getGroupName().hashCode();
102: }
103: }
|