1 /* 2 * Copyright (c) 2009-2010 jMonkeyEngine 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: 8 * 9 * * Redistributions of source code must retain the above copyright 10 * notice, this list of conditions and the following disclaimer. 11 * 12 * * Redistributions in binary form must reproduce the above copyright 13 * notice, this list of conditions and the following disclaimer in the 14 * documentation and/or other materials provided with the distribution. 15 * 16 * * Neither the name of 'jMonkeyEngine' nor the names of its contributors 17 * may be used to endorse or promote products derived from this software 18 * without specific prior written permission. 19 * 20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 21 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 22 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 23 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 24 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 25 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 26 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 27 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 28 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 29 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 30 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 */ 32 33 package com.jme3.network.rmi; 34 35 import com.jme3.network.AbstractMessage; 36 import com.jme3.network.serializing.Serializable; 37 38 /** 39 * Sent to a remote client to make a remote method invocation. 40 * 41 * @author Kirill Vainer 42 */ 43 @Serializable 44 public class RemoteMethodCallMessage extends AbstractMessage { 45 46 public RemoteMethodCallMessage(){ 47 super(true); 48 } 49 50 /** 51 * The object ID on which the call is being made. 52 */ 53 public int objectId; 54 55 /** 56 * The method ID used for look-up in the LocalObject.methods array. 57 */ 58 public short methodId; 59 60 /** 61 * Invocation ID is used to identify a particular call if the calling 62 * client needs the return value of the called RMI method. 63 * This is set to zero if the method does not return a value. 64 */ 65 public short invocationId; 66 67 /** 68 * Arguments of the remote method invocation. 69 */ 70 public Object[] args; 71 72 73 @Override 74 public String toString(){ 75 StringBuilder sb = new StringBuilder(); 76 sb.append("RemoteMethodCallMessage[objectID=").append(objectId).append(", methodID=") 77 .append(methodId); 78 if (args != null && args.length > 0){ 79 sb.append(", args={"); 80 for (Object arg : args){ 81 sb.append(arg.toString()).append(", "); 82 } 83 sb.setLength(sb.length()-2); 84 sb.append("}"); 85 } 86 sb.append("]"); 87 return sb.toString(); 88 } 89 } 90