/* * Copyright (c) 2005-2010 KOM – Multimedia Communications Lab * * This file is part of PeerfactSim.KOM. * * PeerfactSim.KOM is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * PeerfactSim.KOM is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with PeerfactSim.KOM. If not, see . * */ package de.tud.kom.p2psim.impl.topology.waypoints.graph; import de.tud.kom.p2psim.impl.topology.util.PositionVector; /** * Represents a node in the map graph. * * @author Fabio Zöllner * @version 1.0, 09.04.2012 * @param Information object */ public abstract class Waypoint { protected PositionVector position; protected T info = null; // Not included in equals public Waypoint(PositionVector position, T info) { this.position = position; this.info = info; } public Waypoint(PositionVector position) { this.position = position; this.info = null; } public PositionVector getPosition() { return position; } public T getInfo() { return this.info; } public String toString() { return "Waypoint" + (info == null ? "" : "<" + info.getClass().getSimpleName() + ">") + "[" + position.getX() + ", " + position.getY() + ", " + info + "]"; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; Waypoint other = (Waypoint) obj; if (!position.equals(other.getPosition())) return false; return true; } public abstract Waypoint clone(); public void setPosition(PositionVector position) { this.position = position; } }