00001 /* 00002 * ################################################################ 00003 * 00004 * ProActive: The Java(TM) library for Parallel, Distributed, 00005 * Concurrent computing with Security and Mobility 00006 * 00007 * Copyright (C) 1997-2007 INRIA/University of Nice-Sophia Antipolis 00008 * Contact: proactive@objectweb.org 00009 * 00010 * This library is free software; you can redistribute it and/or 00011 * modify it under the terms of the GNU Lesser General Public 00012 * License as published by the Free Software Foundation; either 00013 * version 2.1 of the License, or any later version. 00014 * 00015 * This library is distributed in the hope that it will be useful, 00016 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00017 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00018 * Lesser General Public License for more details. 00019 * 00020 * You should have received a copy of the GNU Lesser General Public 00021 * License along with this library; if not, write to the Free Software 00022 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 00023 * USA 00024 * 00025 * Initial developer(s): The ProActive Team 00026 * http://www.inria.fr/oasis/ProActive/contacts.html 00027 * Contributor(s): 00028 * 00029 * ################################################################ 00030 */ 00031 package org.objectweb.proactive.core.component; 00032 00033 import java.io.Serializable; 00034 00035 import org.apache.log4j.Logger; 00036 import org.objectweb.proactive.core.body.UniversalBody; 00037 import org.objectweb.proactive.core.component.representative.ItfID; 00038 import org.objectweb.proactive.core.component.request.Shortcut; 00039 import org.objectweb.proactive.core.util.log.Loggers; 00040 import org.objectweb.proactive.core.util.log.ProActiveLogger; 00041 00042 00043 public class ComponentMethodCallMetadata implements Serializable { 00044 static final transient Logger logger = ProActiveLogger.getLogger(Loggers.COMPONENTS_REQUESTS); 00045 private String componentInterfaceName = null; 00046 private boolean isComponentMethodCall; 00047 protected Shortcut shortcut = null; 00048 protected short priority; 00049 private ItfID senderItfID = null; 00050 00051 public void shortcutNotification(UniversalBody sender, 00052 UniversalBody intermediate) { 00053 if (shortcut == null) { 00054 // store only first sender? 00055 shortcut = new Shortcut(getComponentInterfaceName(), sender, 00056 intermediate); 00057 } else { 00058 shortcut.updateDestination(intermediate); 00059 if (logger.isDebugEnabled()) { 00060 logger.debug("added shortcut : shortcutCounter is now " + 00061 shortcut.length()); 00062 } 00063 } 00064 } 00065 00069 public String getComponentInterfaceName() { 00070 return componentInterfaceName; 00071 } 00072 00076 public void setComponentInterfaceName(String componentInterfaceName) { 00077 this.componentInterfaceName = componentInterfaceName; 00078 } 00079 00083 public boolean isComponentMethodCall() { 00084 return isComponentMethodCall; 00085 } 00086 00090 public void setComponentMethodCall(boolean isComponentMethodCall) { 00091 this.isComponentMethodCall = isComponentMethodCall; 00092 } 00093 00097 public short getPriority() { 00098 return priority; 00099 } 00100 00104 public void setPriority(short priority) { 00105 this.priority = priority; 00106 } 00107 00111 public Shortcut getShortcut() { 00112 return shortcut; 00113 } 00114 00118 public void setShortcut(Shortcut shortcut) { 00119 this.shortcut = shortcut; 00120 } 00121 00125 public ItfID getSenderItfID() { 00126 return senderItfID; 00127 } 00128 00132 public void setSenderItfID(ItfID senderItfID) { 00133 this.senderItfID = senderItfID; 00134 } 00135 }