/*
 * @(#)IDLNameTranslator.java	1.10 05/11/17
 *
 * Copyright 2006 Sun Microsystems, Inc. All rights reserved.
 * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 */

package com.sun.corba.se.spi.presentation.rmi ;

import java.lang.reflect.Method ;

/** Translates between methods on an interface and RMI-IIOP encodings
 * of those methods as names.
 */
public interface IDLNameTranslator 
{
    /** Get the interfaces that this IDLNameTranslator describes.
     */
    Class[] getInterfaces() ;

    /** Get all methods for this remote interface.
     * The methods are returned in a canonical order, that is,
     * they are always in the same order for a particular interface.
     */
    Method[] getMethods() ;

    /** Get the method from this IDLNameTranslator's interfaces that 
     * corresponds to the mangled name idlName.  Returns null
     * if there is no matching method.
     */
    Method getMethod( String idlName )  ;

    /** Get the mangled name that corresponds to the given method 
     * on this IDLNameTranslator's interface.  Returns null
     * if there is no matching name.
     */
    String getIDLName( Method method )  ;
}

