/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * JavaWorld Library, Copyright 2011 Bryan Chadwick * * * * FILE: ./universe/control/Message.java * * * * This file is part of JavaWorld. * * * * JavaWorld 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 (at your option) any later version. * * * * JavaWorld 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 JavaWorld. If not, see <http://www.gnu.org/licenses/>. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ package universe.control; import java.io.Serializable; /** Represents a Message between World and Universe */ public abstract class Message implements Serializable{ private static final long serialVersionUID = 1; /** The ID Number of the World (should be randomly assigned) */ protected long worldid; /** Create a Message from the given World/Name */ protected Message(long id){ this.worldid = id; } /** Is this a Connect Message? */ public boolean isConnect(){ return false; } /** Is this a Disconnect Message? */ public boolean isDisconnect(){ return false; } /** Is this a Transfer Message? */ public boolean isTransfer(){ return false; } /** Get the name of the World/sender */ public long from(){ return this.worldid; } /** Get the message's payload/content */ public <R> R payload(){ throw new RuntimeException("Message without Payload!"); } }