FileDocCategorySizeDatePackage
FVDCodeBaseImpl.javaAPI DocJava SE 5 API4999Fri Aug 26 14:54:22 BST 2005com.sun.corba.se.impl.io

FVDCodeBaseImpl

public class FVDCodeBaseImpl extends com.sun.org.omg.SendingContext._CodeBaseImplBase
This class acts as the remote interface to receivers wishing to retrieve the information of a remote Class.

Fields Summary
private static Hashtable
fvds
private transient org.omg.CORBA.ORB
orb
private transient com.sun.corba.se.impl.logging.OMGSystemException
wrapper
private transient ValueHandlerImpl
vhandler
Constructors Summary
Methods Summary
public java.lang.String[]bases(java.lang.String x)

	try {
	    // default to using the current ORB version in case the
	    // vhandler is not set
	    if (vhandler == null) {
	        vhandler = new ValueHandlerImpl(false);
	    }

	    Stack repIds = new Stack();
	    Class parent = ObjectStreamClass.lookup(vhandler.getClassFromType(x)).forClass().getSuperclass();

	    while (!parent.equals(java.lang.Object.class)) {
		repIds.push(vhandler.createForAnyType(parent));
		parent = parent.getSuperclass();
	    }

	    String result[] = new String[repIds.size()];
	    for (int i = result.length - 1; i >= 0; i++)
		result[i] = (String)repIds.pop();

	    return result;
	} catch (Throwable t) {
	    throw wrapper.missingLocalValueImpl( CompletionStatus.COMPLETED_MAYBE, t );
	}
    
public com.sun.org.omg.CORBA.Repositoryget_ir()

	return null;
    
public java.lang.Stringimplementation(java.lang.String x)

	try{
	    // default to using the current ORB version in case the
	    // vhandler is not set
	    if (vhandler == null) {
	        vhandler = new ValueHandlerImpl(false);
	    }

            // Util.getCodebase may return null which would
            // cause a BAD_PARAM exception.
	    String result = Util.getCodebase(vhandler.getClassFromType(x));
            if (result == null)
                return "";
            else
                return result;
	} catch(ClassNotFoundException cnfe){
	    throw wrapper.missingLocalValueImpl( CompletionStatus.COMPLETED_MAYBE,
		cnfe ) ;
	}
    
public java.lang.String[]implementations(java.lang.String[] x)

	String result[] = new String[x.length];

	for (int i = 0; i < x.length; i++)
	    result[i] = implementation(x[i]);

	return result;
    
public com.sun.org.omg.CORBA.ValueDefPackage.FullValueDescriptionmeta(java.lang.String x)

	try{
	    FullValueDescription result = (FullValueDescription)fvds.get(x);

	    if (result == null) {
	        // default to using the current ORB version in case the
	        // vhandler is not set
	        if (vhandler == null) {
	            vhandler = new ValueHandlerImpl(false);
	        }

		try{
		    result = ValueUtility.translate(_orb(), 
			ObjectStreamClass.lookup(vhandler.getAnyClassFromType(x)), vhandler);
		} catch(Throwable t){
		    if (orb == null)
			orb = ORB.init(); //d11638
		    result = ValueUtility.translate(orb, 
			ObjectStreamClass.lookup(vhandler.getAnyClassFromType(x)), vhandler);		
		}

		if (result != null){
		    fvds.put(x, result);
		} else {
		    throw wrapper.missingLocalValueImpl( CompletionStatus.COMPLETED_MAYBE);
		}
	    }
				
	    return result;
	} catch(Throwable t){
	    throw wrapper.incompatibleValueImpl(CompletionStatus.COMPLETED_MAYBE,t);
	}
    
public com.sun.org.omg.CORBA.ValueDefPackage.FullValueDescription[]metas(java.lang.String[] x)

	FullValueDescription descriptions[] = new FullValueDescription[x.length];

	for (int i = 0; i < x.length; i++)
	    descriptions[i] = meta(x[i]);

	return descriptions;
    
voidsetValueHandler(javax.rmi.CORBA.ValueHandler vh)


      
    
        vhandler = (com.sun.corba.se.impl.io.ValueHandlerImpl) vh;