1. /*
  2. * @(#)StubFactoryBase.java 1.7 04/07/27
  3. *
  4. * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
  5. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
  6. */
  7. package com.sun.corba.se.impl.presentation.rmi ;
  8. import javax.rmi.CORBA.Tie ;
  9. import java.lang.reflect.InvocationHandler ;
  10. import java.lang.reflect.Proxy ;
  11. import com.sun.corba.se.spi.presentation.rmi.PresentationManager ;
  12. import com.sun.corba.se.spi.presentation.rmi.DynamicStub ;
  13. import com.sun.corba.se.spi.presentation.rmi.StubAdapter ;
  14. import com.sun.corba.se.spi.orbutil.proxy.InvocationHandlerFactory ;
  15. import com.sun.corba.se.spi.orbutil.proxy.LinkedInvocationHandler ;
  16. public abstract class StubFactoryBase implements PresentationManager.StubFactory
  17. {
  18. private String[] typeIds = null ;
  19. protected final PresentationManager.ClassData classData ;
  20. protected StubFactoryBase( PresentationManager.ClassData classData )
  21. {
  22. this.classData = classData ;
  23. }
  24. public synchronized String[] getTypeIds()
  25. {
  26. if (typeIds == null) {
  27. if (classData == null) {
  28. org.omg.CORBA.Object stub = makeStub() ;
  29. typeIds = StubAdapter.getTypeIds( stub ) ;
  30. } else {
  31. typeIds = classData.getTypeIds() ;
  32. }
  33. }
  34. return typeIds ;
  35. }
  36. }