JavaTM Platform
Standard Ed. 6

org.omg.CORBA
클래스 ORB

java.lang.Object 
  상위를 확장 org.omg.CORBA.ORB
직계의 기존의 서브 클래스:
ORB


public abstract class ORB
extends Object

CORBA Object Request Broker 기능을 위한 API 를 제공하는 클래스입니다. ORB 클래스는, 다른 벤더의 ORB 구현을 사용할 수 있도록(듯이) 하는 「플러그 인 가능한 ORB 구현」API 도 제공합니다.

ORB 는, 요구를 발행하는 측의 객체 (클라이언트)와 요구를 처리하는 측의 객체 (서버)를 접속하는 것에 의해, CORBA 객체간의 상호통신을 가능하게 합니다.

ORB 클래스는 범용 CORBA 기능을 캡슐화해서 , 다음과 같은 조작을 실시합니다. 항목의 5 로 6 (ORB 클래스의 대부분의 메소드를 포함한다)은, 일반적으로,Dynamic Invocation Interface (DII)와 Dynamic Skeleton Interface (DSI)로 사용됩니다. 이러한 인터페이스는, 개발자가 직접 사용할 수도 있습니다만, 일반적으로은 ORB 로 내부적으로 사용되기 (위해)때문에, 일반의 프로그래머가 볼 것은 없습니다.

  1. 정의 끝난 프로퍼티과 환경 파라미터의 값을 지정해 ORB 구현을 초기화한다
  2. resolve_initial_references 메소드를 사용해, 네임 서비스등의 서비스에의 초기 객체 참조를 취득한다
  3. 객체 참조와 캐릭터 라인의 사이의 변환을 실시한다
  4. ORB 와 서번트 (CORBA 객체 구현의 인스턴스) 사이에서의 접속의 확립과 분리를 실시한다
  5. 다음과 같은 객체를 생성한다
  6. DII 의 복수의 메세지를 송신한다

ORB 클래스를 사용하면(자), 객체가 네트워크상의 어디에 구현되고 있어도, 그 참조를 취득할 수 있습니다.

어플리케이션이나 애플릿은, 3 개의 init 메소드의 1 개를 사용해 그 자체를 ORB 에 대해서 초기화하는 것으로써, CORBA 환경에의 액세스를 가져옵니다. 3 개의 메소드중 2 개(살)은, 다음의 겉(표)에 기재되어 있는 프로퍼티 (이름과 값과의 관련짓고)을 사용합니다.

프로퍼티명 프로퍼티치
표준 Java CORBA 프로퍼티:
org.omg.CORBA.ORBClass ORB 구현의 클래스명
org.omg.CORBA.ORBSingletonClass init() 가 돌려주는 ORB 의 클래스명

이러한 프로퍼티에 의해, 다양한 벤더의 ORB 구현이 플러그 인 가능하게 됩니다.

ORB 인스턴스의 생성시에는, ORB 구현의 클래스명이 다음의 표준 검색순서로 검색됩니다.

  1. Applet 파라미터 또는 어플리케이션 캐릭터 라인 배열이 있으면 체크인 한다
  2. 프로퍼티 파라미터가 있으면 체크인 한다
  3. System 프로퍼티에 체크인 한다
  4. user.home 디렉토리에 있는 orb.properties 파일에 체크인 한다 (존재하는 경우)
  5. java.home/lib 디렉토리에 있는 orb.properties 파일에 체크인 한다 (존재하는 경우)
  6. 하드 코드 된 디폴트 동작하러 돌아온다 (Java IDL 구현을 사용한다)

Java IDL 는 풀 기능의 ORB 와 단체 ORB 에 대해서 디폴트 구현을 제공합니다. init 메소드에 파라미터를 지정하지 않았던 경우는, 디폴트의 단체 ORB 가 돌려주어집니다. init 메소드에 파라미터를 지정했을 경우, ORB 클래스를 지정하지 않았을 때는, Java IDL ORB 구현이 돌려주어집니다.

다음에, 디폴트의 단체 ORB 로 초기화되는 ORB 객체를 작성하는 코드를 나타냅니다. 악의가 있는 애플릿이 형태 코드의 작성 이외의 조작을 할 수 없게, 이 ORB 의 구현은 제한부입니다. 이 구현은, 가상 머신 전체로 인스턴스가 1 개 밖에 없기 때문에, 단체 (singleton)로 불립니다.

    ORB orb = ORB.init();
 

다음에, 어플리케이션의 ORB 객체를 작성하는 코드를 나타냅니다. args 파라미터는, 어플리케이션의 main 메소드로 지정되고 있는 인수를 나타냅니다. 프로퍼티은 ORB 클래스를 「SomeORBImplementation」로서 지정하므로, 새로운 ORB 는 그 ORB 구현으로 초기화됩니다. p 가 null 로 A 인수가 ORB 클래스를 지정하고 있지 않았던 경우, 새로운 ORB 는 디폴트의 Java IDL 구현으로 초기화됩니다.

    Properties p = new Properties();
    p.put("org.omg.CORBA.ORBClass", "SomeORBImplementation");
    ORB orb = ORB.init( args, p );
 

다음에, 1 번째의 파라미터로서 지정된 애플릿의 ORB 객체를 작성하는 코드를 나타냅니다. 지정된 애플릿이 ORB 클래스를 지정하고 있지 않는 경우는, 새로운 ORB 는 디폴트의 Java IDL 구현으로 초기화됩니다.

    ORB orb = ORB.init(myApplet, null);
 

어플리케이션이나 애플릿은, 1 개(살) 이상의 ORB 로 초기화할 수 있습니다. ORB 에서의 초기화는, CORBA 의 세계에 대한 bootstrap 호출입니다.

도입된 버젼:
JDK1. 2

생성자 의 개요
ORB ()
           
 
메소드의 개요
 void connect (Object  obj)
          지정된 서번트 객체 (서버 구현 클래스의 인스턴스인 Java 객체)를 ORB 에 접속합니다.
 TypeCode create_abstract_interface_tc (String  id, String  name)
          IDL 의 추상 인터페이스의 TypeCode 객체를 생성합니다.
abstract  TypeCode create_alias_tc (String  id, String  name, TypeCode  original_type)
          IDL 의 alias (typedef)를 나타내는 TypeCode 객체를 생성합니다.
abstract  Any create_any ()
          kind 필드가 TCKind.tc_null 로 설정된 TypeCode 객체를 포함하도록(듯이) 초기화된, IDL 의 Any 객체를 생성합니다.
abstract  TypeCode create_array_tc (int length, TypeCode  element_type)
          IDL 의 array 를 나타내는 TypeCode 객체를 생성합니다.
 DynAny create_basic_dyn_any (TypeCode  type)
          추천 되고 있지 않습니다.  대신에 새로운 DynAnyFactory API 를 사용해 주세요.
abstract  ContextList create_context_list ()
          빈 상태(empty)의 ContextList 객체를 생성합니다.
 DynAny create_dyn_any (Any  value)
          추천 되고 있지 않습니다.  대신에 새로운 DynAnyFactory API 를 사용해 주세요.
 DynArray create_dyn_array (TypeCode  type)
          추천 되고 있지 않습니다.  대신에 새로운 DynAnyFactory API 를 사용해 주세요.
 DynEnum create_dyn_enum (TypeCode  type)
          추천 되고 있지 않습니다.  대신에 새로운 DynAnyFactory API 를 사용해 주세요.
 DynSequence create_dyn_sequence (TypeCode  type)
          추천 되고 있지 않습니다.  대신에 새로운 DynAnyFactory API 를 사용해 주세요.
 DynStruct create_dyn_struct (TypeCode  type)
          추천 되고 있지 않습니다.  대신에 새로운 DynAnyFactory API 를 사용해 주세요.
 DynUnion create_dyn_union (TypeCode  type)
          추천 되고 있지 않습니다.  대신에 새로운 DynAnyFactory API 를 사용해 주세요.
abstract  TypeCode create_enum_tc (String  id, String  name, String [] members)
          IDL 의 enum 를 나타내는 TypeCode 객체를 생성합니다.
abstract  Environment create_environment ()
          Environment 객체를 생성합니다.
abstract  ExceptionList create_exception_list ()
          빈 상태(empty)의 ExceptionList 객체를 생성합니다.
abstract  TypeCode create_exception_tc (String  id, String  name, StructMember [] members)
          IDL 의 exception 를 나타내는 TypeCode 객체를 생성합니다.
 TypeCode create_fixed_tc (short digits, short scale)
          IDL fixed 형의 TypeCode 객체를 생성합니다.
abstract  TypeCode create_interface_tc (String  id, String  name)
          IDL 의 interface 를 나타내는 TypeCode 객체를 생성합니다.
abstract  NVList create_list (int count)
          지정수의 NamedValue 객체에 있어 (아마) 충분한 공간을 NVList 에 할당합니다.
abstract  NamedValue create_named_value (String  s, Any  any, int flags)
          지정된 이름, 값, 인수 모드 플래그를 사용해,NamedValue 객체를 생성합니다.
 TypeCode create_native_tc (String  id, String  name)
          IDL 네이티브형의 TypeCode 객체를 생성합니다.
 NVList create_operation_list (Object  oper)
          지정된 OperationDef 객체로 기술되는 조작의 인수 기술로 초기화된,NVList 를 생성합니다.
abstract  OutputStream create_output_stream ()
          새로운 org.omg.CORBA.portable.OutputStream 객체를 생성합니다.
 Policy create_policy (int type, Any  val)
          지정된 초기 상태로 특정의 형태의 정책 객체의 인스턴스를 신규 작성하기 위해서 불려 갑니다.
abstract  TypeCode create_recursive_sequence_tc (int bound, int offset)
          추천 되고 있지 않습니다.  대신에 create_recursive_tc 와 create_sequence_tc 의 편성을 사용해 주세요.
 TypeCode create_recursive_tc (String  id)
          재귀를 포함한 TypeCode 를 생성하는 처리 시에, 구상 TypeCode 의 플레이스홀더로서 기능하는 재귀 TypeCode 를 생성합니다.
abstract  TypeCode create_sequence_tc (int bound, TypeCode  element_type)
          IDL 의 sequence 를 나타내는 TypeCode 객체를 생성합니다.
abstract  TypeCode create_string_tc (int bound)
          IDL 의 바운드 형식 string 를 나타내는 TypeCode 객체를 생성합니다.
abstract  TypeCode create_struct_tc (String  id, String  name, StructMember [] members)
          IDL 의 struct 를 나타내는 TypeCode 객체를 생성합니다.
abstract  TypeCode create_union_tc (String  id, String  name, TypeCode  discriminator_type, UnionMember [] members)
          IDL 의 union 를 나타내는 TypeCode 객체를 생성합니다.
 TypeCode create_value_box_tc (String  id, String  name, TypeCode  boxed_type)
          IDL 치 박스의 TypeCode 객체를 생성합니다.
 TypeCode create_value_tc (String  id, String  name, short type_modifier, TypeCode  concrete_base, ValueMember [] members)
          IDL 치 형의 TypeCode 객체를 생성합니다.
abstract  TypeCode create_wstring_tc (int bound)
          IDL 의 바운드 형식 wstring (와이드 캐릭터 라인)를 나타내는 TypeCode 객체를 생성합니다.
 void destroy ()
          자원을 재사용할 수 있도록(듯이) ORB 를 파기합니다.
 void disconnect (Object  obj)
          지정된 서번트 객체를 ORB 로부터 떼어냅니다.
 Current get_current ()
          추천 되고 있지 않습니다.  resolve_initial_references 를 사용해 주세요.
abstract  Context get_default_context ()
          디폴트의 Context 객체를 가져옵니다.
abstract  Request get_next_response ()
          응답을 받아들인 다음의 Request 의 인스턴스를 가져옵니다.
abstract  TypeCode get_primitive_tc (TCKind  tcKind)
          지정된 프리미티브(primitive) IDL 형을 나타내는 TypeCode 객체를 꺼냅니다.
 boolean get_service_information (short service_type, ServiceInformationHolder  service_info)
          이 ORB 가 지원하는 CORBA 의 기능과 서비스에 관한 정보의 취득에 사용됩니다.
static ORB init ()
          ORB 단체 객체를 돌려줍니다.
static ORB init (Applet  app, Properties  props)
          애플릿용으로, 새로운 ORB 의 인스턴스를 생성합니다.
static ORB init (String [] args, Properties  props)
          스탠드얼론 어플리케이션용으로, 새로운 ORB 의 인스턴스를 생성합니다.
abstract  String [] list_initial_services ()
           「네임 서비스」나 「인터페이스 리포지터리(repository)」 등, 사용 가능한 CORBA 초기 서비스의 객체 참조를 돌려줍니다.
abstract  String object_to_string (Object  obj)
          지정된 CORBA 객체 참조를 캐릭터 라인으로 변환합니다.
 void perform_work ()
          메인 thread로부터 불려 가면(자), 구현에 의존하는 처리 단위를 실행합니다.
abstract  boolean poll_next_response ()
          그대로 두어진 (비동기) 호출안에, 응답이 있던 것이 있을지 어떨지를 판정합니다.
abstract  Object resolve_initial_references (String  object_name)
          사용 가능한 일련의 초기 서비스명으로부터, 특정의 객체 참조를 해결합니다.
 void run ()
          이 조작은, ORB 가 종료 프로세스를 완료할 때까지 현행의 thread를 블록 해, 어느 thread가 shutdown 를 호출하면(자) 기동합니다.
abstract  void send_multiple_requests_deferred (Request [] req)
          복수의 동적 (DII) 요구를 비동기적으로 보냅니다.
abstract  void send_multiple_requests_oneway (Request [] req)
          응답을 전제로 하지 못하고 , 복수의 동적 (DII) 요구를 비동기적으로 보냅니다.
protected abstract  void set_parameters (Applet  app, Properties  props)
          ORB 구현을, 지정된 파라미터와 프로퍼티으로 초기화합니다.
protected abstract  void set_parameters (String [] args, Properties  props)
          ORB 구현을, 지정된 파라미터와 프로퍼티으로 초기화합니다.
 void shutdown (boolean wait_for_completion)
          ORB 에 종료을 지시합니다.
abstract  Object string_to_object (String  str)
          object_to_string 메소드에 의해 생성된 캐릭터 라인을 변환해 CORBA 객체 참조에 되돌립니다.
 boolean work_pending ()
          ORB 가 처리를 실행하기 위해서 메인 thread를 필요로 하는 경우는 true, 메인 thread를 필요로 하지 않는 경우는 false 를 돌려줍니다.
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 

생성자 의 상세

ORB

public ORB()
메소드의 상세

init

public static ORB  init()
ORB 단체 객체를 돌려줍니다. 이 메소드는 항상, 같은 ORB 의 인스턴스를 돌려줍니다. 이 인스턴스는,org.omg.CORBA.ORBSingletonClass 시스템 프로퍼티이 기술하는 클래스의 인스턴스입니다.

이 인수 없음의 형식의 init 메소드는 주로,TypeCode 객체의 팩토리로서 사용됩니다. Helper 클래스는 이 객체를 사용해,type 메소드를 구현합니다. 또,unionTypeCode 객체를 작성할 경우에,union 라벨을 기술하기 위해서 사용하는 Any 객체의 작성에도 사용됩니다.

이 메소드는 애플릿으로 사용하는 것은 의도되고 있지 않습니다. 따라서, 애플릿 환경에서 불려 갔을 경우, 반환되는 ORB 는 제약 첨부이며,TypeCode 객체의 팩토리로서 밖에 사용할 수 없습니다. 이 때문에, 이 메소드에 의해 작성되는 TypeCode 객체는 모두, 신뢰할 수 없는 애플릿간이라도 안전하게 공유할 수 있습니다.

애플릿으로부터 이 메소드를 사용해 ORB 를 작성하는 경우,TypeCode 객체의 작성 이외의 목적으로 이 메소드가 불려 가면(자), 시스템 예외가 throw 됩니다.

반환값:
단독 ORB

init

public static ORB  init(String [] args,
                       Properties  props)
스탠드얼론 어플리케이션용으로, 새로운 ORB 의 인스턴스를 생성합니다. 이 메소드를 호출할 수 있는 것은 어플리케이션만입니다. 이 메소드는, 불려 갈 때마다 새로운 풀 기능의 ORB 객체를 돌려줍니다.

파라미터:
args - 어플리케이션의 main 메소드의 커멘드행 인수. null 도 가능
props - 어플리케이션 고유의 프로퍼티. null 도 가능
반환값:
새롭게 생성된 ORB 의 인스턴스

init

public static ORB  init(Applet  app,
                       Properties  props)
애플릿용으로, 새로운 ORB 의 인스턴스를 생성합니다. 이 메소드를 호출할 수 있는 것은 애플릿만입니다. 이 메소드는, 불려 갈 때마다 새로운 풀 기능의 ORB 객체를 돌려줍니다.

파라미터:
app - 애플릿. null 도 가능
props - 애플릿 고유의 프로퍼티. null 도 가능
반환값:
새롭게 생성된 ORB 의 인스턴스

set_parameters

protected abstract void set_parameters(String [] args,
                                       Properties  props)
ORB 구현을, 지정된 파라미터와 프로퍼티으로 초기화합니다. 이 메소드는 어플리케이션 전용입니다. 이 메소드는, 서브 클래스 ORB 구현에 의해 구현되어 적절한 init 메소드로 불려 가면(자), 파라미터를 건네줍니다.

파라미터:
args - 어플리케이션의 main 메소드의 커멘드행 인수. null 도 가능
props - 어플리케이션 고유의 프로퍼티. null 도 가능

set_parameters

protected abstract void set_parameters(Applet  app,
                                       Properties  props)
ORB 구현을, 지정된 파라미터와 프로퍼티으로 초기화합니다. 이 메소드는 애플릿 전용입니다. 이 메소드는, 서브 클래스 ORB 구현에 의해 구현해, 적절한 init 메소드로 불려 가면(자), 파라미터를 건네줍니다.

파라미터:
app - 애플릿. null 도 가능
props - 애플릿 고유의 프로퍼티. null 도 가능

connect

public void connect(Object  obj)
지정된 서번트 객체 (서버 구현 클래스의 인스턴스인 Java 객체)를 ORB 에 접속합니다. 서번트 클래스는, 서버가 지원하는 인터페이스에 대응하는 ImplBase 클래스를 확장할 필요가 있습니다. 이 때문에, 서번트는 CORBA 객체 참조이며,org.omg.CORBA.Object 로부터 상속할 필요가 있습니다. 사용자가 작성한 서번트는,connect 메소드의 호출 후에, 원격 호출을 받을 수가 있게 됩니다. 로컬이 아닌 객체의 IDL 메소드 호출로 IDL 의 파라미터로서 서번트가 건네받았을 경우, 즉 서번트 객체를 정렬화해, 프로세스 address 공간의 범위외에 보낼 필요가 있는 경우는, 서번트를 자동적이고 암묵적으로 ORB 에 접속할 수도 있습니다.

서번트 객체가 벌써 ORB 에 접속되고 있을 때는,connect 메소드를 호출해도 아무것도 변화는 없습니다.

Portable Object Adapter API 를 우선하므로, OMG 에서는 추천 되지 않습니다.

파라미터:
obj - 서번트 객체 참조

destroy

public void destroy()
자원을 재사용할 수 있도록(듯이) ORB 를 파기합니다. 파기된 ORB 참조로 어떠한 조작이 불려 가면(자),OBJECT_NOT_EXIST 예외가 throw 됩니다. ORB 가 파기된 뒤, 같은 ORBid 를 사용해 init 를 호출하면(자) 새롭게 구축된 ORB 에의 참조가 돌려주어집니다.

종료되어 있지 않은 ORB 로 destroy 가 불려 가면(자), 종료 프로세스가 기동해, ORB 가 종료 할 때까지 블록 하고 나서, ORB 를 파기합니다.
현재 호출을 처리하고 있는 thread로 어플리케이션이 destroy 를 호출하면(자), 블록에 의해 데드락이 되기 (위해)때문에, OMG 마이너 코드 3 으로 BAD_INV_ORDER 시스템 예외가 throw 됩니다.

최대한의 이식성을 확보해, 자원 리크를 막기 위해, 어플리케이션은 종료전에 모든 ORB 인스턴스로 shutdowndestroy 를 반드시 호출할 필요가 있습니다.

예외:
BAD_INV_ORDER - 현재의 thread가 호출을 처리하고 있는 경우

disconnect

public void disconnect(Object  obj)
지정된 서번트 객체를 ORB 로부터 떼어냅니다. 이 메소드가 복귀하면(자), ORB 는 떼어내진 서번트로부터의 착신 원격 요구를 거부해,org.omg.CORBA.OBJECT_NOT_EXIST 예외를 원격 클라이언트에 돌려줍니다. 이 때문에, 원격 클라이언트로부터는, 객체가 파기된 것처럼 보입니다. 다만, 서번트를 직접 사용해 발행된 로컬 요구는 ORB 를 개입시켜 건네받을 것은 없습니다. 이 때문에, 서번트에 의한 처리가 계속됩니다.

서번트가 ORB 에 접속되어 있지 않은 경우는,disconnect 메소드를 호출해도 아무것도 변화는 없습니다.

Portable Object Adapter API 를 우선하므로, OMG 에서는 추천 되지 않습니다.

파라미터:
obj - ORB 로부터 떼어내지는 서번트 객체

list_initial_services

public abstract String [] list_initial_services()
「네임 서비스」나 「인터페이스 리포지터리(repository)」 등, 사용 가능한 CORBA 초기 서비스의 객체 참조를 돌려줍니다.

반환값:
이 ORB 로 사용 가능한 CORBA 초기 서비스의 객체 참조를 나타낸다 String 객체의 배열

resolve_initial_references

public abstract Object  resolve_initial_references(String  object_name)
                                           throws InvalidName 
사용 가능한 일련의 초기 서비스명으로부터, 특정의 객체 참조를 해결합니다.

파라미터:
object_name - 캐릭터 라인으로서의 초기 서비스명
반환값:
지정된 이름에 관련하고 있는 객체 참조
예외:
InvalidName - 지정된 이름이 정의 끝난 서비스에 관련하고 있지 않는 경우

object_to_string

public abstract String  object_to_string(Object  obj)
지정된 CORBA 객체 참조를 캐릭터 라인으로 변환합니다. 이 캐릭터 라인의 형식은 IIOP 로 미리 정의되고 있으므로, 다른 ORB 로 생성된 캐릭터 라인을 변환해 객체 참조에 되돌릴 수가 있습니다.

결과의 String 객체는,String 객체를 조작 가능한 방법으로 포함 또는 통신할 수 있습니다.

파라미터:
obj - 캐릭터 라인에 변환되는 객체 참조
반환값:
객체 참조를 나타내는 캐릭터 라인

string_to_object

public abstract Object  string_to_object(String  str)
object_to_string 메소드에 의해 생성된 캐릭터 라인을 변환해 CORBA 객체 참조에 되돌립니다.

파라미터:
str - 변환되어 객체 참조에 되돌려지는 캐릭터 라인. object_to_string 메소드를 사용해 객체 참조를 캐릭터 라인에 변환한 결과가 아니면 안된다
반환값:
객체 참조

create_list

public abstract NVList  create_list(int count)
지정수의 NamedValue 객체에 있어 (아마) 충분한 공간을 NVList 에 할당합니다. 지정된 사이즈는 기억역할당을 위한 단순한 힌트이며, 리스트의 최대 사이즈를 의미하지 않습니다.

파라미터:
count - 공간을 할당하는 NamedValue 객체의 추천수
반환값:
새롭게 생성된 NVList
관련 항목:
NVList

create_operation_list

public NVList  create_operation_list(Object  oper)
지정된 OperationDef 객체로 기술되는 조작의 인수 기술로 초기화된,NVList 를 생성합니다. 이 OperationDef 객체는, 인터페이스 리포지터리(repository)로부터 취득됩니다. 반환된 NVList 객체내의 인수는, 원의 IDL 의 조작 정의와 같은 순서가 됩니다. 이 때문에, 이 리스트를 동적으로 호출하는 요구로 사용할 수 있습니다.

파라미터:
oper - 리스트 작성에 사용되는 OperationDef 객체
반환값:
지정된 OperationDef 객체로 기술되는 메소드의 인수 기술을 포함하고 있는, 새롭게 생성되었다 NVList 객체
관련 항목:
NVList

create_named_value

public abstract NamedValue  create_named_value(String  s,
                                              Any  any,
                                              int flags)
지정된 이름, 값, 인수 모드 플래그를 사용해,NamedValue 객체를 생성합니다.

NamedValue 객체는, (1) 파라미터나 반환값, 또는 (2) 문맥 프로퍼티으로서 기능합니다. NamedValue 객체 자체로 사용하는 일도,NVList 객체내의 요소로서 사용할 수도 있습니다.

파라미터:
s - NamedValue 객체의 이름
any - NamedValue 객체에 삽입된다 Any
flags - NamedValue 의 인수 모드 플래그. 다음의 어떤 것인가 ARG_IN.value,ARG_OUT.value, 또는 ARG_INOUT.value
반환값:
새롭게 생성된 NamedValue 객체
관련 항목:
NamedValue

create_exception_list

public abstract ExceptionList  create_exception_list()
빈 상태(empty)의 ExceptionList 객체를 생성합니다.

반환값:
새롭게 생성된 ExceptionList 객체

create_context_list

public abstract ContextList  create_context_list()
빈 상태(empty)의 ContextList 객체를 생성합니다.

반환값:
새롭게 생성된 ContextList 객체
관련 항목:
ContextList , Context

get_default_context

public abstract Context  get_default_context()
디폴트의 Context 객체를 가져옵니다.

반환값:
디폴트의 Context 객체
관련 항목:
Context

create_environment

public abstract Environment  create_environment()
Environment 객체를 생성합니다.

반환값:
새롭게 생성된 Environment 객체
관련 항목:
Environment

create_output_stream

public abstract OutputStream  create_output_stream()
새로운 org.omg.CORBA.portable.OutputStream 객체를 생성합니다. 메소드 호출시에, 이 객체의 내부에서 IDL 의 메소드의 파라미터를 정렬화할 수 있습니다.

반환값:
새롭게 생성되었다 org.omg.CORBA.portable.OutputStream 객체

send_multiple_requests_oneway

public abstract void send_multiple_requests_oneway(Request [] req)
응답을 전제로 하지 못하고 , 복수의 동적 (DII) 요구를 비동기적으로 보냅니다. 한방향 호출은, 서버에 도달할지 어떨지가 보증되지 않는 것에 주의해 주세요.

파라미터:
req - 요구 객체의 배열

send_multiple_requests_deferred

public abstract void send_multiple_requests_deferred(Request [] req)
복수의 동적 (DII) 요구를 비동기적으로 보냅니다.

파라미터:
req - Request 객체의 배열

poll_next_response

public abstract boolean poll_next_response()
그대로 두어진 (비동기) 호출안에, 응답이 있던 것이 있을지 어떨지를 판정합니다.

반환값:
응답이 있었을 경우는 true, 그렇지 않은 경우는 false

get_next_response

public abstract Request  get_next_response()
                                   throws WrongTransaction 
응답을 받아들인 다음의 Request 의 인스턴스를 가져옵니다.

반환값:
응답의 준비가 되어 있는 다음의 Request 객체
예외:
WrongTransaction - 원의 요구의 송신원과는 다르다 트랜잭션(transaction) 스코프로부터 get_next_response 메소드가 불려 갔을 경우. 자세한 것은, 「OMG Transaction Service 스펙」을 참조

get_primitive_tc

public abstract TypeCode  get_primitive_tc(TCKind  tcKind)
지정된 프리미티브(primitive) IDL 형을 나타내는 TypeCode 객체를 꺼냅니다.

파라미터:
tcKind - 원시형에 대응하는 TCKind 의 인스턴스
반환값:
요구된 TypeCode 객체

create_struct_tc

public abstract TypeCode  create_struct_tc(String  id,
                                          String  name,
                                          StructMember [] members)
IDL 의 struct 를 나타내는 TypeCode 객체를 생성합니다. TypeCode 객체는, 지정된 ID, 이름, 멤버로 초기화됩니다.

파라미터:
id - struct 의 리포지터리(repository) ID
name - struct 의 이름
members - struct 의 멤버를 기술하는 배열
반환값:
IDL 의 struct 를 기술하는 새롭게 생성되었다 TypeCode 객체

create_union_tc

public abstract TypeCode  create_union_tc(String  id,
                                         String  name,
                                         TypeCode  discriminator_type,
                                         UnionMember [] members)
IDL 의 union 를 나타내는 TypeCode 객체를 생성합니다. TypeCode 객체는, 지정된 ID, 이름, 판별자의 형태, 멤버로 초기화됩니다.

파라미터:
id - union 의 리포지터리(repository) ID
name - union 의 이름
discriminator_type - union 판별자의 형태
members - union 의 멤버를 기술하는 배열
반환값:
IDL 의 union 를 기술하는 새롭게 생성되었다 TypeCode 객체

create_enum_tc

public abstract TypeCode  create_enum_tc(String  id,
                                        String  name,
                                        String [] members)
IDL 의 enum 를 나타내는 TypeCode 객체를 생성합니다. TypeCode 객체는, 지정된 ID, 이름, 멤버로 초기화됩니다.

파라미터:
id - enum 의 리포지터리(repository) ID
name - enum 의 이름
members - enum 의 멤버를 기술하는 배열
반환값:
IDL 의 enum 를 기술하는 새롭게 생성되었다 TypeCode 객체

create_alias_tc

public abstract TypeCode  create_alias_tc(String  id,
                                         String  name,
                                         TypeCode  original_type)
IDL 의 alias (typedef)를 나타내는 TypeCode 객체를 생성합니다. TypeCode 객체는, 지정된 ID, 이름, 원의 형태로 초기화됩니다.

파라미터:
id - alias 의 리포지터리(repository) ID
name - alias 의 이름
original_type - alias 인 원의 형태를 기술한다 TypeCode 객체
반환값:
IDL 의 alias 를 기술하는 새롭게 생성되었다 TypeCode 객체

create_exception_tc

public abstract TypeCode  create_exception_tc(String  id,
                                             String  name,
                                             StructMember [] members)
IDL 의 exception 를 나타내는 TypeCode 객체를 생성합니다. TypeCode 객체는, 지정된 ID, 이름, 멤버로 초기화됩니다.

파라미터:
id - exception 의 리포지터리(repository) ID
name - exception 의 이름
members - exception 의 멤버를 기술하는 배열
반환값:
IDL 의 exception 를 기술하는 새롭게 생성되었다 TypeCode 객체

create_interface_tc

public abstract TypeCode  create_interface_tc(String  id,
                                             String  name)
IDL 의 interface 를 나타내는 TypeCode 객체를 생성합니다. TypeCode 객체는, 지정된 ID 와 이름으로 초기화됩니다.

파라미터:
id - interface 의 리포지터리(repository) ID
name - interface 의 이름
반환값:
IDL 의 interface 를 기술하는 새롭게 생성되었다 TypeCode 객체

create_string_tc

public abstract TypeCode  create_string_tc(int bound)
IDL 의 바운드 형식 string 를 나타내는 TypeCode 객체를 생성합니다. TypeCode 객체는, 지정된 바운드로 초기화됩니다. 이 바운드는, 캐릭터 라인의 최대 길이을 나타냅니다. 제로는, 이 형태 코드로 기술되는 캐릭터 라인이 안 바운드 형식인 것을 나타냅니다.

파라미터:
bound - string 의 바운드. 0 보다 작은 값은 불가
반환값:
IDL 의 바운드 형식 string 를 기술하는 새롭게 생성되었다 TypeCode 객체
예외:
BAD_PARAM - 바운드가 0 보다 작은 값의 경우

create_wstring_tc

public abstract TypeCode  create_wstring_tc(int bound)
IDL 의 바운드 형식 wstring (와이드 캐릭터 라인)를 나타내는 TypeCode 객체를 생성합니다. TypeCode 객체는, 지정된 바운드로 초기화됩니다. 이 바운드는, 와이드 캐릭터 라인의 최대 길이을 나타냅니다. 제로는, 이 형태 코드로 기술되는 캐릭터 라인이 안 바운드 형식인 것을 나타냅니다.

파라미터:
bound - wstring 의 바운드. 0 보다 작은 값은 불가
반환값:
IDL 의 바운드 형식 wstring 를 기술하는 새롭게 생성되었다 TypeCode 객체
예외:
BAD_PARAM - 바운드가 0 보다 작은 값의 경우

create_sequence_tc

public abstract TypeCode  create_sequence_tc(int bound,
                                            TypeCode  element_type)
IDL 의 sequence 를 나타내는 TypeCode 객체를 생성합니다. TypeCode 객체는, 지정된 바운드와 요소형으로 초기화됩니다.

파라미터:
bound - sequence 의 바운드. 안 바운드의 경우는 0
element_type - sequence 에 포함되고 있는 요소를 기술한다 TypeCode 객체
반환값:
IDL 의 바운드 형식 sequence 를 기술하는 새롭게 생성되었다 TypeCode 객체

create_recursive_sequence_tc

@Deprecated 
public abstract TypeCode  create_recursive_sequence_tc(int bound,
                                                                 int offset)
추천 되고 있지 않습니다.  대신에 create_recursive_tc 와 create_sequence_tc 의 편성을 사용해 주세요.

IDL 의 재귀적 sequence 를 나타내는 TypeCode 객체를 생성합니다.

다음의 코드에 나타내는 IDL 의 struct Node 에서는, 순서를 작성하는 오프셋(offset) 파라미터는 1 이 됩니다.

    Struct Node {
        long value;
        Sequence <Node> subnodes;
    };
 

파라미터:
bound - 순서의 바운드. 안 바운드의 경우는 0
offset - 이 순서의 요소를 기술하는, 포위 TypeCode 객체의 인덱스
반환값:
재귀적 순서를 기술하는 새롭게 생성되었다 TypeCode 객체
관련 항목:
create_recursive_tc , create_sequence_tc

create_array_tc

public abstract TypeCode  create_array_tc(int length,
                                         TypeCode  element_type)
IDL 의 array 를 나타내는 TypeCode 객체를 생성합니다. TypeCode 객체는, 지정된 길이와 요소형으로 초기화됩니다.

파라미터:
length - array 의 길이
element_type - array 에 포함되고 있는 요소의 형태를 기술하는 TypeCode 객체
반환값:
IDL 의 array 를 기술하는 새롭게 생성되었다 TypeCode 객체

create_native_tc

public TypeCode  create_native_tc(String  id,
                                 String  name)
IDL 네이티브형의 TypeCode 객체를 생성합니다.

파라미터:
id - 네이티브형의 논리 ID
name - 네이티브형의 이름
반환값:
요구된 TypeCode

create_abstract_interface_tc

public TypeCode  create_abstract_interface_tc(String  id,
                                             String  name)
IDL 의 추상 인터페이스의 TypeCode 객체를 생성합니다.

파라미터:
id - 추상 인터페이스형의 논리 ID
name - 추상 인터페이스형의 이름
반환값:
요구된 TypeCode

create_fixed_tc

public TypeCode  create_fixed_tc(short digits,
                                short scale)
IDL fixed 형의 TypeCode 객체를 생성합니다.

파라미터:
digits - 10 진수의 합계수를 숫자로 지정. 1 에서 31 까지의 논리합일 필요가 있는
scale - 소수점의 위치
반환값:
요구된 TypeCode

create_value_tc

public TypeCode  create_value_tc(String  id,
                                String  name,
                                short type_modifier,
                                TypeCode  concrete_base,
                                ValueMember [] members)
IDL 치 형의 TypeCode 객체를 생성합니다. concrete_base 파라미터는, TypeCode 가 생성되는 value 형의 즉시 구상 기저 value 형에 대한 TypeCode 입니다. value 형에 구상 기저가 없는 경우는, null 로 할 수도 있습니다.

파라미터:
id - 치 형의 논리 ID
name - 치 형의 이름
type_modifier - 치 형수식자 정수. VM_NONE, VM_CUSTOM, VM_ABSTRACT, 또는 VM_TRUNCATABLE 가운데 1 개
concrete_base - 구상 기저 value 형을 기술한다 TypeCode 객체
members - 치 형의 멤버를 포함하는 배열
반환값:
요구된 TypeCode

create_recursive_tc

public TypeCode  create_recursive_tc(String  id)
재귀를 포함한 TypeCode 를 생성하는 처리 시에, 구상 TypeCode 의 플레이스홀더로서 기능하는 재귀 TypeCode 를 생성합니다. id 파라미터에 의해, 재귀 TypeCode 가 플레이스홀더로서 기능하는 형태의 리포지터리(repository) ID 가 지정됩니다. 지정한 리포지터리(repository) ID 에 대응하는, 포위 TypeCode 에 재귀 TypeCode 가 올바르게 파묻히면(자), 표준의 TypeCode 로서 기능합니다. 포위 TypeCode 에 파묻히기 전에 재귀 TypeCode 로 조작을 호출하면(자),BAD_TYPECODE 예외가 발생합니다.

예를 들어, 다음의 IDL 형 선언에는 재귀가 포함됩니다.

    Struct Node {
        Sequence <Node> subnodes;
    };
 

구조체 Node 에 TypeCode 를 생성하려면 , 다음에 나타내도록(듯이) TypeCode 생성 오퍼레이션을 호출합니다.

 String nodeID = "IDL:Node:1. 0";
 TypeCode recursiveSeqTC = orb.create_sequence_tc(0, orb.create_recursive_tc(nodeID));
 StructMember[] members = { new StructMember("subnodes", recursiveSeqTC, null) };
 TypeCode structNodeTC = orb.create_struct_tc(nodeID, "Node", members);
 

다음은, 부정한 IDL 형 선언입니다.

    Struct Node {
        Node next;
    };
 

재귀형은, 빈 상태(empty)도 가능한 순서내에서만 사용할 수 있습니다. 이것에 의해 Any 로 구조체를 전송 하는 경우와 같은, 정렬화의 문제가 회피됩니다.

파라미터:
id - 참조형의 논리 ID
반환값:
요구된 TypeCode

create_value_box_tc

public TypeCode  create_value_box_tc(String  id,
                                    String  name,
                                    TypeCode  boxed_type)
IDL 치 박스의 TypeCode 객체를 생성합니다.

파라미터:
id - 치 형의 논리 ID
name - 치 형의 이름
boxed_type - 형의 TypeCode
반환값:
요구된 TypeCode

create_any

public abstract Any  create_any()
kind 필드가 TCKind.tc_null 로 설정된 TypeCode 객체를 포함하도록(듯이) 초기화된, IDL 의 Any 객체를 생성합니다.

반환값:
새롭게 생성된 Any 객체

get_current

@Deprecated 
public Current  get_current()
추천 되고 있지 않습니다.  resolve_initial_references 를 사용해 주세요.

Current 객체를 꺼냅니다. Current 인터페이스는, 트랜잭션(transaction)나 시큐리티등의 서비스로 사용하는 thread 고유의 정보를 관리하기 위해서 사용합니다.

반환값:
새롭게 생성된 Current 객체
관련 항목:
CORBA 패키지에 구현되어 있지 않은 기능에 대한 코멘트

run

public void run()
이 조작은, ORB 가 종료 프로세스를 완료할 때까지 현행의 thread를 블록 해, 어느 thread가 shutdown 를 호출하면(자) 기동합니다. 이것은, ORB 의 종료시에 통지를 받는 복수의 thread로 사용할 수 있습니다.


shutdown

public void shutdown(boolean wait_for_completion)
ORB 에 종료을 지시합니다. 이것에 의해, 파기의 준비로서 모든 객체 어댑터가 종료 됩니다.
wait_for_completion 파라미터가 true 의 경우, 이 조작은 모든 ORB 처리 (현재 실행중의 요구, 객체의 비액티브화, 그 외의 객체 어댑터의 조작등)가 완료할 때까지 블록 됩니다. 어플리케이션이 현재 호출을 처리하고 있는 thread로 이것을 실행했을 경우, 블록에 의해 데드락이 되므로, OMG 마이너 코드 3 으로 BAD_INV_ORDER 시스템 예외가 throw 됩니다.
wait_for_completion 파라미터가 FALSE 의 경우, 복귀시에 종료이 완료하고 있지 않는 경우가 있습니다.

ORB 가 종료의 처리 그 중에서, ORB 는 일반적으로 대로에 동작해, 모든 요구가 완료할 때까지 수신 및 송신 요구를 처리합니다. ORB 가 종료 하면(자), 객체 참조 관리 조작만이 ORB 또는 그리고 취득되는 임의의 객체 참조로 호출할 수가 있습니다. 어플리케이션은, ORB 자체에 대해서 destroy 조작을 호출할 수도 있습니다. 그 외의 조작을 호출하면(자), OMG 마이너 코드 4 로 BAD_INV_ORDER 시스템 예외가 throw 됩니다.

shutdown 가 불려 간 다음에,ORB.run 메소드가 복귀합니다.

파라미터:
wait_for_completion - 종료이 완료할 때까지 호출을 블록 하는 경우는 true, 즉시 복귀하는 경우는 false
예외:
BAD_INV_ORDER - 현재의 thread가 호출을 처리하고 있는 경우

work_pending

public boolean work_pending()
ORB 가 처리를 실행하기 위해서 메인 thread를 필요로 하는 경우는 true, 메인 thread를 필요로 하지 않는 경우는 false 를 돌려줍니다.

반환값:
작업 대기가 있는 경우, 즉 ORB 가 처리를 실행하기 위해서 메인 thread를 필요로 하는 경우는 true, 작업 대기가 없고, 메인 thread를 필요로 하지 않는 경우는 false

perform_work

public void perform_work()
메인 thread로부터 불려 가면(자), 구현에 의존하는 처리 단위를 실행합니다. 그렇지 않은 경우, 처리는 없습니다. work_pending 메소드와 perform_work 메소드를 제휴해 사용하면(자), ORB 와 다른 액티버티의 사이에 메인 thread를 다중화하는 단순한 폴링 루프를 구현할 수 있습니다.


get_service_information

public boolean get_service_information(short service_type,
                                       ServiceInformationHolder  service_info)
이 ORB 가 지원하는 CORBA 의 기능과 서비스에 관한 정보의 취득에 사용됩니다. 정보를 요구하는 서비스 타입은, CORBA 모듈내에서 정수에 의해 정의되는 값인, in 파라미터 service_type 로서 건네받습니다. 서비스 정보를 그 타입으로 이용할 수 있는 경우, out 파라미터 service_info 내에서 돌려주어집니다. 또, 조작은 값 true 를 돌려줍니다. 요구된 서비스 타입의 정보가 없는 경우, 조작은 false 를 돌려줍니다 (즉, 이 ORB 에서는 서비스는 지원되지 않는다).

파라미터:
service_type - 요구하는 정보의 서비스 타입을 가리키는 short
service_info - 이 메소드로 생성된 ServiceInformation 객체를 보관 유지하는 ServiceInformationHolder 객체
반환값:
service_type 의 서비스 정보가 사용할 수 있는 경우는 true, 요구된 서비스 타입의 정보가 없는 경우는 false
관련 항목:
CORBA 패키지에 구현되어 있지 않은 기능에 대한 코멘트

create_dyn_any

@Deprecated 
public DynAny  create_dyn_any(Any  value)
추천 되고 있지 않습니다.  대신에 새로운 DynAnyFactory API 를 사용해 주세요.

지정된 Any 객체로부터 DynAny 객체를 새롭게 생성합니다.

파라미터:
value - 신규 DynAny 객체의 생성원의 Any 객체
반환값:
지정된 Any 객체로부터 생성된 신규 DynAny 객체
관련 항목:
CORBA 패키지에 구현되어 있지 않은 기능에 대한 코멘트

create_basic_dyn_any

@Deprecated 
public DynAny  create_basic_dyn_any(TypeCode  type)
                            throws InconsistentTypeCode 
추천 되고 있지 않습니다.  대신에 새로운 DynAnyFactory API 를 사용해 주세요.

지정된 TypeCode 객체로부터 기본 DynAny 객체를 생성합니다.

파라미터:
type - 신규 DynAny 객체의 생성원의 TypeCode 객체
반환값:
지정된 TypeCode 객체로부터 생성된 신규 DynAny 객체
예외:
InconsistentTypeCode - 지정했다 TypeCode 객체가, 오퍼레이션과의 일관성을 보관 유지하지 않는 경우
관련 항목:
CORBA 패키지에 구현되어 있지 않은 기능에 대한 코멘트

create_dyn_struct

@Deprecated 
public DynStruct  create_dyn_struct(TypeCode  type)
                            throws InconsistentTypeCode 
추천 되고 있지 않습니다.  대신에 새로운 DynAnyFactory API 를 사용해 주세요.

지정된 TypeCode 객체로부터 DynStruct 객체를 새롭게 생성합니다.

파라미터:
type - 신규 DynStruct 객체의 생성원의 TypeCode 객체
반환값:
지정된 TypeCode 객체로부터 생성된 신규 DynStruct 객체
예외:
InconsistentTypeCode - 지정했다 TypeCode 객체가, 오퍼레이션과의 일관성을 보관 유지하지 않는 경우
관련 항목:
CORBA 패키지에 구현되어 있지 않은 기능에 대한 코멘트

create_dyn_sequence

@Deprecated 
public DynSequence  create_dyn_sequence(TypeCode  type)
                                throws InconsistentTypeCode 
추천 되고 있지 않습니다.  대신에 새로운 DynAnyFactory API 를 사용해 주세요.

지정된 TypeCode 객체로부터 DynSequence 객체를 새롭게 생성합니다.

파라미터:
type - 신규 DynStruct 객체의 생성원의 TypeCode 객체
반환값:
지정된 TypeCode 객체로부터 생성된 신규 DynSequence 객체
예외:
InconsistentTypeCode - 지정했다 TypeCode 객체가, 오퍼레이션과의 일관성을 보관 유지하지 않는 경우
관련 항목:
CORBA 패키지에 구현되어 있지 않은 기능에 대한 코멘트

create_dyn_array

@Deprecated 
public DynArray  create_dyn_array(TypeCode  type)
                          throws InconsistentTypeCode 
추천 되고 있지 않습니다.  대신에 새로운 DynAnyFactory API 를 사용해 주세요.

지정된 TypeCode 객체로부터 DynArray 객체를 새롭게 생성합니다.

파라미터:
type - 신규 DynArray 객체의 생성원의 TypeCode 객체
반환값:
지정된 TypeCode 객체로부터 생성된 신규 DynArray 객체
예외:
InconsistentTypeCode - 지정했다 TypeCode 객체가, 오퍼레이션과의 일관성을 보관 유지하지 않는 경우
관련 항목:
CORBA 패키지에 구현되어 있지 않은 기능에 대한 코멘트

create_dyn_union

@Deprecated 
public DynUnion  create_dyn_union(TypeCode  type)
                          throws InconsistentTypeCode 
추천 되고 있지 않습니다.  대신에 새로운 DynAnyFactory API 를 사용해 주세요.

지정된 TypeCode 객체로부터 DynUnion 객체를 새롭게 생성합니다.

파라미터:
type - 신규 DynUnion 객체의 생성원의 TypeCode 객체
반환값:
지정된 TypeCode 객체로부터 생성된 신규 DynUnion 객체
예외:
InconsistentTypeCode - 지정했다 TypeCode 객체가, 오퍼레이션과의 일관성을 보관 유지하지 않는 경우
관련 항목:
CORBA 패키지에 구현되어 있지 않은 기능에 대한 코멘트

create_dyn_enum

@Deprecated 
public DynEnum  create_dyn_enum(TypeCode  type)
                        throws InconsistentTypeCode 
추천 되고 있지 않습니다.  대신에 새로운 DynAnyFactory API 를 사용해 주세요.

지정된 TypeCode 객체로부터 DynEnum 객체를 새롭게 생성합니다.

파라미터:
type - 신규 DynEnum 객체의 생성원의 TypeCode 객체
반환값:
지정된 TypeCode 객체로부터 생성된 신규 DynEnum 객체
예외:
InconsistentTypeCode - 지정했다 TypeCode 객체가, 오퍼레이션과의 일관성을 보관 유지하지 않는 경우
관련 항목:
CORBA 패키지에 구현되어 있지 않은 기능에 대한 코멘트

create_policy

public Policy  create_policy(int type,
                            Any  val)
                     throws PolicyError 
지정된 초기 상태로 특정의 형태의 정책 객체의 인스턴스를 신규 작성하기 위해서 불려 갑니다. create_policy 가, 정책의 요구된 타입과 내용을 해석할 수 없기 위해(때문에) 새로운 정책 객체의 인스턴스화에 실패했을 경우, 적절한 이유를 보관 유지하는 PolicyError 예외가 throw 됩니다.

파라미터:
type - 생성하는 정책 객체의 PolicyType
val - 생성하는 Policy 객체의 초기 상태 설정에 사용되는 값
반환값:
type 파라미터로 지정된 타입으로 val 파라미터로 지정된 상태에 초기화되는, 신규 작성된 Policy 객체에의 참조
예외:
org.omg.CORBA.PolicyError - 요구된 정책가 지원되지 않는가, 정책의 요구되었다 초기 상태가 지원되지 않는 경우
PolicyError

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.