JavaTM Platform
Standard Ed. 6

org.omg.DynamicAny
인터페이스 DynAnyOperations

기존의 서브 인터페이스의 일람:
DynAny , DynArray , DynArrayOperations , DynEnum , DynEnumOperations , DynFixed , DynFixedOperations , DynSequence , DynSequenceOperations , DynStruct , DynStructOperations , DynUnion , DynUnionOperations , DynValue , DynValueBox , DynValueBoxOperations , DynValueCommon , DynValueCommonOperations , DynValueOperations
기존의 구현 클래스의 일람:
_DynAnyStub , _DynArrayStub , _DynEnumStub , _DynFixedStub , _DynSequenceStub , _DynStructStub , _DynUnionStub , _DynValueStub


public interface DynAnyOperations

Any 의 값은, DynAny 객체를 통해 동적으로 해석 (횡단(traverse)) 및 구축할 수 있습니다. DynAny 객체는, any 에 삽입되는 값의 카피에 대응하는 데이터값에 관련지을 수 있습니다.

DynAny 객체는, 컴퍼넌트의 DynAny 의 순서 붙일 수 있었던 컬렉션이라고 볼 수가 있습니다. DynAny 가 long 등의 기본형을 나타내는 경우, 또는 빈 상태(empty)의 예외와 같이 컴퍼넌트가 없는 형태를 나타내는 경우는, 컴퍼넌트의 순서 붙일 수 있었던 컬렉션은 비웁니다. 각각의 DynAny 객체로, 그 DynAny 의 컴퍼넌트의 컬렉션내에 있어서의 현재 위치가 파악됩니다. 현재 위치는, 0 으로부터 n-1 의 인덱스치로 나타납니다 (n 는 컴퍼넌트의 수). -1 그렇다고 하는 특별한 인덱스치도 있어, 이것은 현재 위치가 어디도 지시하지 않은 것을 의미합니다. 현재 위치를 가질 수 없는 값 (빈 상태(empty)의 예외등)의 경우, 인덱스치는 -1 으로 고정됩니다. DynAny 가 컴퍼넌트를 가지는 값으로 초기화되었을 경우, 인덱스도 0 에 초기화됩니다. 초기화되어 있지 않은 DynAny (DynAny 에 값이 없지만, 컴퍼넌트를 가질 수 있는 TypeCode 가 있다)가 작성되었을 경우는, 현재 위치는 DynAny 에 의해 나타내지는 값의 형태에 따라서 달라, 신규 작성된 DynAny 의 컴퍼넌트가 디폴트 값를 가질 수 있을지 어떨지에 의해 0 또는 -1 이 됩니다.

rewind, seek, 및 next 의 반복 조작을 사용하면(자), 현재 위치를 변경할 수 있습니다. current_component 조작은, 현재 위치의 컴퍼넌트를 돌려줍니다. component_count 조작은 DynAny 의 컴퍼넌트의 수를 돌려줍니다. 이러한 조작을 아울러 사용하면(자), 컴퍼넌트의 내용을 (재귀적으로) 조사하는 등, DynAny 의 컴퍼넌트에 대해서 반복 처리를 실시할 수 있습니다.

구축형과 관련지을 수 있었던 DynAny 객체를, 구축형 DynAny 객체라고 합니다. IDL 의 각종 구축형 (fixed, enum, struct, sequence, union, array, exception, 치 형)의 각각 붙어, DynAny 인터페이스로부터 상속된 인터페이스가 있습니다.

구축형 DynAny 객체는, DynAny 객체를 신규 작성하기 위한 조작을 export 합니다. 작성되는 객체는 각각 구축형의 데이터값의 컴퍼넌트에 관련지을 수 있습니다. 예를 들어, DynStruct 는 struct 치와 관련지을 수 있습니다. 즉, DynStruct 는, 구조체의 멤버 마다 컴퍼넌트가 1 개씩 있는 것 같은, 순서 붙일 수 있었던 컬렉션을 소유한다고 볼 수가 있습니다. DynStruct 객체는, struct 의 멤버가 관련지을 수 있는 DynAny 객체를 신규 작성하기 위한 조작을 export 합니다.

다른 (구축형) DynAny 로부터 DynAny 객체를 얻었을 경우, 예를 들어 DynStruct 로부터 작성된, 구조체 멤버를 나타내는 DynAny 는, DynStruct 에 논리적으로 포함되게 됩니다. insert 또는 get 조작을 호출해도, 현재 위치는 변경되지 않습니다. 최상정도의 DynAny 객체 (다른 DynAny 의 컴퍼넌트는 아닌 것)를 파기하면(자), 그 컴퍼넌트의 DynAny 도 파기됩니다. 최상정도가 아닌 DynAny 를 파기했을 경우는 아무것도 일어나지 않습니다. 파기된 최상정도의 DynAny, 또는 그 하위 객체에 대해서 조작을 호출하면(자), OBJECT_NOT_EXIST 가 throw 됩니다. DynAny 를 파기한 뒤도, 거기에 관련지을 수 있는 데이터값의 컴퍼넌트를 조작하려면 , 우선 컴퍼넌트의 DynAny 를 작성하고 나서, 작성한 DynAny 객체의 카피를 작성합니다.

DynAny 객체의 동작은, 할당할 수 있었던 메모리 공간과 액세스 속도에 관해서 효과적인 구현을 실현할 수 있도록(듯이) 정의되고 있습니다. DynAny 객체는, 실행시에 any 로부터 추출된 값의 횡단(traverse)이나, any 의 값의 구축을 실시하기 위해서(때문에) 사용하는 것이 상정되고 있습니다. 다른 용도에서의 사용은 추천할 수 없습니다.

insert 와 get 의 각 조작은, 기본 DynAny 객체의 조작에 필요합니다만, 구축형 DynAny 객체의 조작에도 도움이 됩니다. 구축형 DynAny 객체에 기본 데이터형의 값을 삽입하면(자), DynAny 객체에 관련지을 수 있었던 구축형 데이터값의 현재의 컴퍼넌트를 초기화하게 됩니다. 예를 들어, DynStruct 로 insert_boolean 를 호출하면(자), 관련하는 struct 의 데이터값의 현재 위치에 boolean 의 데이터값가 삽입됩니다. 값의 TypeCode 가 DynAny 에 포함되는 TypeCode 와 같은 경우, 값의 삽입과 추출을 통해 형태는 같게 됩니다. DynAny 에 컴퍼넌트가 있는 경우는, 값의 삽입과 추출에 있어서의 형태는 현재 위치의 DynAny 의 TypeCode 와 같게 됩니다.

DynAny 객체와 DynAnyFactory 객체는, 그것들이 작성 및 사용되는 프로세스에 대해서 로컬이라고 상정되고 있습니다. 즉, DynAny 및 DynAnyFactory 객체에의 참조를 다른 프로세스에 export 하거나 ORB.object_to_string()로 외부화하거나 할 수 없습니다. 실행을 시도하면(자) MARSHAL 시스템 예외가 발생합니다. IDL 에 인터페이스가 지정되고 있기 (위해)때문에, DynAny 객체에서는 표준의 org.omg.CORBA.Object 인터페이스에 정의되고 있는 조작을 export 할 수 있습니다. 다만, Object 인터페이스를 통해 export 한 조작을 호출하려고 하면(자), 표준 NO_IMPLEMENT 예외가 발생하는 일이 있습니다. DynAny 객체를 DII 와 사용하려고 하면(자), NO_IMPLEMENT 예외가 발생하는 경우가 있습니다.


메소드의 개요
 void assign (DynAny  dyn_any)
          DynAny 객체에 관련지을 수 있었던 값을, 다른 DynAny 객체에 관련지을 수 있었던 값으로 초기화합니다.
 int component_count ()
          DynAny 의 컴퍼넌트의 수를 돌려줍니다.
 DynAny copy ()
          호출한 DynAny 의 딥 카피인 값을 가지는 DynAny 를 신규 작성합니다.
 DynAny current_component ()
          현재 위치의 컴퍼넌트의 DynAny 를 돌려줍니다.
 void destroy ()
          DynAny 객체를 파기합니다.
 boolean equal (DynAny  dyn_any)
          2 개의 DynAny 치가 동일한지 어떤지 비교합니다.
 void from_any (Any  value)
          DynAny 객체에 관련지을 수 있었던 값을, any 에 포함되는 값으로 초기화합니다.
 Any get_any ()
          이 DynAny 가 나타내는 Any 에 포함되어 있는 Any 치를 추출합니다.
 boolean get_boolean ()
          이 DynAny 로부터 boolean 치를 추출합니다.
 char get_char ()
          이 DynAny 로부터 char 값를 추출합니다.
 double get_double ()
          이 DynAny 로부터 double 치를 추출합니다.
 DynAny get_dyn_any ()
          이 DynAny 가 나타내는 Any 에 포함되어 있는 Any 치를 추출해, 그것을 새로운 DynAny 에 랩 해 돌려줍니다.
 float get_float ()
          이 DynAny 로부터 float 치를 추출합니다.
 int get_long ()
          이 DynAny 로부터 정수치를 추출합니다.
 long get_longlong ()
          이 DynAny 로부터 long 치를 추출합니다.
 byte get_octet ()
          이 DynAny 로부터 byte 치를 추출합니다.
 Object get_reference ()
          이 DynAny 로부터 CORBA 객체에의 참조를 추출합니다.
 short get_short ()
          이 DynAny 로부터 short 치를 추출합니다.
 String get_string ()
          이 DynAny 로부터 캐릭터 라인치를 추출합니다.
 TypeCode get_typecode ()
          이 DynAny 로부터 TypeCode 객체를 추출합니다.
 int get_ulong ()
          이 DynAny 로부터 정수치를 추출합니다.
 long get_ulonglong ()
          이 DynAny 로부터 long 치를 추출합니다.
 short get_ushort ()
          이 DynAny 로부터 short 치를 추출합니다.
 Serializable get_val ()
          이 DynAny 로부터 직렬화 가능 객체를 추출합니다.
 char get_wchar ()
          이 DynAny 로부터 long 치를 추출합니다.
 String get_wstring ()
          이 DynAny 로부터 캐릭터 라인치를 추출합니다.
 void insert_any (Any  value)
          이 DynAny 가 나타내는 Any 에 Any 치를 삽입합니다.
 void insert_boolean (boolean value)
          DynAny 에 boolean 치를 삽입합니다.
 void insert_char (char value)
          DynAny 에 char 값를 삽입합니다.
 void insert_double (double value)
          DynAny 에 double 치를 삽입합니다.
 void insert_dyn_any (DynAny  value)
          이 DynAny 가 나타내는 Any 에, 파라미터 DynAny 내의 Any 치를 삽입합니다.
 void insert_float (float value)
          DynAny 에 float 치를 삽입합니다.
 void insert_long (int value)
          DynAny 에 정수치를 삽입합니다.
 void insert_longlong (long value)
          DynAny 에 long 치를 삽입합니다.
 void insert_octet (byte value)
          DynAny 에 byte 치를 삽입합니다.
 void insert_reference (Object  value)
          DynAny 에 CORBA 객체에의 참조를 삽입합니다.
 void insert_short (short value)
          DynAny 에 short 치를 삽입합니다.
 void insert_string (String  value)
          DynAny 에 캐릭터 라인치를 삽입합니다.
 void insert_typecode (TypeCode  value)
          DynAny 에 TypeCode 객체를 삽입합니다.
 void insert_ulong (int value)
          DynAny 에 정수치를 삽입합니다.
 void insert_ulonglong (long value)
          DynAny 에 long 치를 삽입합니다.
 void insert_ushort (short value)
          DynAny 에 short 치를 삽입합니다.
 void insert_val (Serializable  value)
          이 DynAny 에 직렬화 가능 객체에 대한 참조를 삽입합니다.
 void insert_wchar (char value)
          DynAny 에 char 값를 삽입합니다.
 void insert_wstring (String  value)
          DynAny 에 캐릭터 라인치를 삽입합니다.
 boolean next ()
          현재 위치를 다음의 컴퍼넌트에 진행합니다.
 void rewind ()
          seek(0)와 같습니다.
 boolean seek (int index)
          현재 위치를 index 로 설정합니다.
 Any to_any ()
          DynAny 객체로부터 any 치를 작성합니다.
 TypeCode type ()
          이 DynAny 객체에 관련지을 수 있었던 TypeCode 를 돌려줍니다.
 

메소드의 상세

type

TypeCode  type()
이 DynAny 객체에 관련지을 수 있었던 TypeCode 를 돌려줍니다. DynAny 객체는, 작성시에 TypeCode 치를 할당할 수 있습니다. 이 TypeCode 의 값에 의해, DynAny 객체를 통해 다루어지는 값의 형태가 정해집니다. DynAny 객체에 관련지을 수 있는 TypeCode 는, DynAny 의 작성시에 초기화되어 그 DynAny 의 존속 기간중은 변경할 수 없는 것에 주의해 주세요.

반환값:
이 DynAny 객체에 관련지을 수 있었던 TypeCode

assign

void assign(DynAny  dyn_any)
            throws TypeMismatch 
DynAny 객체에 관련지을 수 있었던 값을, 다른 DynAny 객체에 관련지을 수 있었던 값으로 초기화합니다. 초기화되는 DynAny 의 현재 위치는, 값이 컴퍼넌트를 가지는 경우는 0 에, 컴퍼넌트를 가지지 않는 경우는 -1 으로 설정됩니다.

파라미터:
dyn_any -
예외:
TypeMismatch - 건네받은 DynAny 의 형태가, 초기화되는 DynAny 의 형태에 일치하지 않는 경우

from_any

void from_any(Any  value)
              throws TypeMismatch ,
                     InvalidValue 
DynAny 객체에 관련지을 수 있었던 값을, any 에 포함되는 값으로 초기화합니다. 초기화되는 DynAny 의 현재 위치는, 값이 컴퍼넌트를 가지는 경우는 0 에, 컴퍼넌트를 가지지 않는 경우는 -1 으로 설정됩니다.

예외:
TypeMismatch - 건네받은 Any 의 형태가, 초기화되는 DynAny 의 형태에 일치하지 않는 경우
InvalidValue - 건네받은 Any 에 정당한 값이 포함되지 않는 경우 (null 의 캐릭터 라인 등)

to_any

Any  to_any()
DynAny 객체로부터 any 치를 작성합니다. DynAny 객체에 관련지을 수 있었던 TypeCode 의 카피가, 결과적으로 작성되는 any 에 할당할 수 있습니다. DynAny 객체에 관련지을 수 있었던 값이 any 에 카피됩니다.

반환값:
같은 값과 TypeCode 를 가지는 Any 객체

equal

boolean equal(DynAny  dyn_any)
2 개의 DynAny 치가 동일한지 어떤지 비교합니다. DynAny 치는, TypeCode 가 동일하고, 재귀적으로 모든 DynAny 가 동일한 값을 가지는 경우에, 동일하게 됩니다. 비교 대상의 2 개의 DynAny 의 현재 위치는, 동일한지 어떤지에는 관계하지 않습니다.

반환값:
2 개의 DynAny 가 동일한 경우는 true, 그렇지 않은 경우는 false

destroy

void destroy()
DynAny 객체를 파기합니다. 이 조작에 의해, DynAny 객체에 관련지을 수 있는 데이터값를 나타내기 위해서(때문에) 사용되는 자원은 모두 해제됩니다. ORB 인터페이스의 작성 조작으로 취득한 참조나, DynAny.copy()로부터 반환된 참조에 대해서는 반드시 호출해, 자원의 리크를 막을 필요가 있습니다. 컴퍼넌트의 DynAny 객체 (예를 들어, current_component 조작으로 반환된 객체등)로 파기 조작을 호출해도 아무것도 일어나지 않습니다. DynAny 객체를 파기하면(자), 그 객체로부터 얻을 수 있는 모든 DynAny 객체가 파기되게 됩니다. 즉, 파기된 DynAny 의 컴퍼넌트에의 참조는 무효가 됩니다. 이러한 참조로 호출을 실시하면, OBJECT_NOT_EXIST 가 발생합니다. DynAny 의 컴퍼넌트를 그 DynAny 의 파기 후도 조작하려면 , DynAny 를 파기하기 전에, 카피 조작으로 컴퍼넌트의 카피를 작성합니다.


copy

DynAny  copy()
호출한 DynAny 의 딥 카피인 값을 가지는 DynAny 를 신규 작성합니다. 이 조작은 다양형입니다. 즉, DynAny 로부터 파생한 DynStruct 등의 형태로 호출하면(자), 파생형이 작성됩니다만, 참조는 기저형의 DynAny 로 돌려주어집니다.

반환값:
DynAny 객체의 딥 카피

insert_boolean

void insert_boolean(boolean value)
                    throws TypeMismatch ,
                           InvalidValue 
DynAny 에 boolean 치를 삽입합니다.

예외:
InvalidValue - 이 DynAny 가 컴퍼넌트를 가지지만, 현재 위치가 -1 인 경우
TypeMismatch - 현재의 컴퍼넌트 자체가 컴퍼넌트를 가지는 것 같은 DynAny 로 불려 갔을 경우

insert_octet

void insert_octet(byte value)
                  throws TypeMismatch ,
                         InvalidValue 
DynAny 에 byte 치를 삽입합니다. IDL 의 데이터형 octet 는, Java 의 데이터형 byte 에 맵 됩니다.

예외:
InvalidValue - 이 DynAny 가 컴퍼넌트를 가지지만, 현재 위치가 -1 인 경우
TypeMismatch - 현재의 컴퍼넌트 자체가 컴퍼넌트를 가지는 것 같은 DynAny 로 불려 갔을 경우

insert_char

void insert_char(char value)
                 throws TypeMismatch ,
                        InvalidValue 
DynAny 에 char 값를 삽입합니다.

예외:
InvalidValue - 이 DynAny 가 컴퍼넌트를 가지지만, 현재 위치가 -1 인 경우
TypeMismatch - 현재의 컴퍼넌트 자체가 컴퍼넌트를 가지는 것 같은 DynAny 로 불려 갔을 경우

insert_short

void insert_short(short value)
                  throws TypeMismatch ,
                         InvalidValue 
DynAny 에 short 치를 삽입합니다.

예외:
InvalidValue - 이 DynAny 가 컴퍼넌트를 가지지만, 현재 위치가 -1 인 경우
TypeMismatch - 현재의 컴퍼넌트 자체가 컴퍼넌트를 가지는 것 같은 DynAny 로 불려 갔을 경우

insert_ushort

void insert_ushort(short value)
                   throws TypeMismatch ,
                          InvalidValue 
DynAny 에 short 치를 삽입합니다. IDL 의 데이터형 ushort 는, Java 의 데이터형 short 에 맵 됩니다.

예외:
InvalidValue - 이 DynAny 가 컴퍼넌트를 가지지만, 현재 위치가 -1 인 경우
TypeMismatch - 현재의 컴퍼넌트 자체가 컴퍼넌트를 가지는 것 같은 DynAny 로 불려 갔을 경우

insert_long

void insert_long(int value)
                 throws TypeMismatch ,
                        InvalidValue 
DynAny 에 정수치를 삽입합니다. IDL 의 데이터형 long 는, Java 의 데이터형 int 에 맵 됩니다.

예외:
InvalidValue - 이 DynAny 가 컴퍼넌트를 가지지만, 현재 위치가 -1 인 경우
TypeMismatch - 현재의 컴퍼넌트 자체가 컴퍼넌트를 가지는 것 같은 DynAny 로 불려 갔을 경우

insert_ulong

void insert_ulong(int value)
                  throws TypeMismatch ,
                         InvalidValue 
DynAny 에 정수치를 삽입합니다. IDL 의 데이터형 ulong 는, Java 의 데이터형 int 에 맵 됩니다.

예외:
InvalidValue - 이 DynAny 가 컴퍼넌트를 가지지만, 현재 위치가 -1 인 경우
TypeMismatch - 현재의 컴퍼넌트 자체가 컴퍼넌트를 가지는 것 같은 DynAny 로 불려 갔을 경우

insert_float

void insert_float(float value)
                  throws TypeMismatch ,
                         InvalidValue 
DynAny 에 float 치를 삽입합니다.

예외:
InvalidValue - 이 DynAny 가 컴퍼넌트를 가지지만, 현재 위치가 -1 인 경우
TypeMismatch - 현재의 컴퍼넌트 자체가 컴퍼넌트를 가지는 것 같은 DynAny 로 불려 갔을 경우

insert_double

void insert_double(double value)
                   throws TypeMismatch ,
                          InvalidValue 
DynAny 에 double 치를 삽입합니다.

예외:
InvalidValue - 이 DynAny 가 컴퍼넌트를 가지지만, 현재 위치가 -1 인 경우
TypeMismatch - 현재의 컴퍼넌트 자체가 컴퍼넌트를 가지는 것 같은 DynAny 로 불려 갔을 경우

insert_string

void insert_string(String  value)
                   throws TypeMismatch ,
                          InvalidValue 
DynAny 에 캐릭터 라인치를 삽입합니다. 바운드 형식과 안 바운드 형식의 어느 쪽의 캐릭터 라인의 경우도 이 메소드를 사용해 삽입합니다.

예외:
InvalidValue - 이 DynAny 가 컴퍼넌트를 가지지만, 현재 위치가 -1 인 경우
InvalidValue - 삽입되는 캐릭터 라인이 바운드 형식의 캐릭터 라인의 경계보다 긴 경우
TypeMismatch - 현재의 컴퍼넌트 자체가 컴퍼넌트를 가지는 것 같은 DynAny 로 불려 갔을 경우

insert_reference

void insert_reference(Object  value)
                      throws TypeMismatch ,
                             InvalidValue 
DynAny 에 CORBA 객체에의 참조를 삽입합니다.

예외:
InvalidValue - 이 DynAny 가 컴퍼넌트를 가지지만, 현재 위치가 -1 인 경우
TypeMismatch - 현재의 컴퍼넌트 자체가 컴퍼넌트를 가지는 것 같은 DynAny 로 불려 갔을 경우

insert_typecode

void insert_typecode(TypeCode  value)
                     throws TypeMismatch ,
                            InvalidValue 
DynAny 에 TypeCode 객체를 삽입합니다.

예외:
InvalidValue - 이 DynAny 가 컴퍼넌트를 가지지만, 현재 위치가 -1 인 경우
TypeMismatch - 현재의 컴퍼넌트 자체가 컴퍼넌트를 가지는 것 같은 DynAny 로 불려 갔을 경우

insert_longlong

void insert_longlong(long value)
                     throws TypeMismatch ,
                            InvalidValue 
DynAny 에 long 치를 삽입합니다. IDL 의 데이터형 long long 는, Java 의 데이터형 long 에 맵 됩니다.

예외:
InvalidValue - 이 DynAny 가 컴퍼넌트를 가지지만, 현재 위치가 -1 인 경우
TypeMismatch - 현재의 컴퍼넌트 자체가 컴퍼넌트를 가지는 것 같은 DynAny 로 불려 갔을 경우

insert_ulonglong

void insert_ulonglong(long value)
                      throws TypeMismatch ,
                             InvalidValue 
DynAny 에 long 치를 삽입합니다. IDL 의 데이터형의 부호 없음 long long 는, Java 의 데이터형 long 에 맵 됩니다.

예외:
InvalidValue - 이 DynAny 가 컴퍼넌트를 가지지만, 현재 위치가 -1 인 경우
TypeMismatch - 현재의 컴퍼넌트 자체가 컴퍼넌트를 가지는 것 같은 DynAny 로 불려 갔을 경우

insert_wchar

void insert_wchar(char value)
                  throws TypeMismatch ,
                         InvalidValue 
DynAny 에 char 값를 삽입합니다. IDL 의 데이터형 wchar 는, Java 의 데이터형 char 에 맵 됩니다.

예외:
InvalidValue - 이 DynAny 가 컴퍼넌트를 가지지만, 현재 위치가 -1 인 경우
TypeMismatch - 현재의 컴퍼넌트 자체가 컴퍼넌트를 가지는 것 같은 DynAny 로 불려 갔을 경우

insert_wstring

void insert_wstring(String  value)
                    throws TypeMismatch ,
                           InvalidValue 
DynAny 에 캐릭터 라인치를 삽입합니다. 바운드 형식과 안 바운드 형식의 어느 쪽의 캐릭터 라인의 경우도 이 메소드를 사용해 삽입합니다.

예외:
InvalidValue - 이 DynAny 가 컴퍼넌트를 가지지만, 현재 위치가 -1 인 경우
InvalidValue - 삽입되는 캐릭터 라인이 바운드 형식의 캐릭터 라인의 경계보다 긴 경우
TypeMismatch

insert_any

void insert_any(Any  value)
                throws TypeMismatch ,
                       InvalidValue 
이 DynAny 가 나타내는 Any 에 Any 치를 삽입합니다.

예외:
InvalidValue - 이 DynAny 가 컴퍼넌트를 가지지만, 현재 위치가 -1 인 경우
TypeMismatch - 현재의 컴퍼넌트 자체가 컴퍼넌트를 가지는 것 같은 DynAny 로 불려 갔을 경우

insert_dyn_any

void insert_dyn_any(DynAny  value)
                    throws TypeMismatch ,
                           InvalidValue 
이 DynAny 가 나타내는 Any 에, 파라미터 DynAny 내의 Any 치를 삽입합니다.

예외:
InvalidValue - 이 DynAny 가 컴퍼넌트를 가지지만, 현재 위치가 -1 인 경우
TypeMismatch - 현재의 컴퍼넌트 자체가 컴퍼넌트를 가지는 것 같은 DynAny 로 불려 갔을 경우

insert_val

void insert_val(Serializable  value)
                throws TypeMismatch ,
                       InvalidValue 
이 DynAny 에 직렬화 가능 객체에 대한 참조를 삽입합니다. IDL 의 ValueBase 형은 Java 의 Serializable 형에 맵 됩니다.

예외:
InvalidValue - 이 DynAny 가 컴퍼넌트를 가지지만, 현재 위치가 -1 인 경우
TypeMismatch - 현재의 컴퍼넌트 자체가 컴퍼넌트를 가지는 것 같은 DynAny 로 불려 갔을 경우

get_boolean

boolean get_boolean()
                    throws TypeMismatch ,
                           InvalidValue 
이 DynAny 로부터 boolean 치를 추출합니다.

예외:
TypeMismatch - DynAny 의 액세스 대상의 컴퍼넌트가, 요구된 형태와 같은 형태가 아닌 경우
TypeMismatch - 현재의 컴퍼넌트 자체가 컴퍼넌트를 가지는 것 같은 DynAny 로 불려 갔을 경우
InvalidValue - 이 DynAny 가 컴퍼넌트를 가지지만, 현재 위치가 -1 인 경우

get_octet

byte get_octet()
               throws TypeMismatch ,
                      InvalidValue 
이 DynAny 로부터 byte 치를 추출합니다. IDL 의 데이터형 octet 는, Java 의 데이터형 byte 에 맵 됩니다.

예외:
TypeMismatch - DynAny 의 액세스 대상의 컴퍼넌트가, 요구된 형태와 같은 형태가 아닌 경우
TypeMismatch - 현재의 컴퍼넌트 자체가 컴퍼넌트를 가지는 것 같은 DynAny 로 불려 갔을 경우
InvalidValue - 이 DynAny 가 컴퍼넌트를 가지지만, 현재 위치가 -1 인 경우

get_char

char get_char()
              throws TypeMismatch ,
                     InvalidValue 
이 DynAny 로부터 char 값를 추출합니다.

예외:
TypeMismatch - DynAny 의 액세스 대상의 컴퍼넌트가, 요구된 형태와 같은 형태가 아닌 경우
TypeMismatch - 현재의 컴퍼넌트 자체가 컴퍼넌트를 가지는 것 같은 DynAny 로 불려 갔을 경우
InvalidValue - 이 DynAny 가 컴퍼넌트를 가지지만, 현재 위치가 -1 인 경우

get_short

short get_short()
                throws TypeMismatch ,
                       InvalidValue 
이 DynAny 로부터 short 치를 추출합니다.

예외:
TypeMismatch - DynAny 의 액세스 대상의 컴퍼넌트가, 요구된 형태와 같은 형태가 아닌 경우
TypeMismatch - 현재의 컴퍼넌트 자체가 컴퍼넌트를 가지는 것 같은 DynAny 로 불려 갔을 경우
InvalidValue - 이 DynAny 가 컴퍼넌트를 가지지만, 현재 위치가 -1 인 경우

get_ushort

short get_ushort()
                 throws TypeMismatch ,
                        InvalidValue 
이 DynAny 로부터 short 치를 추출합니다. IDL 의 데이터형 ushort 는, Java 의 데이터형 short 에 맵 됩니다.

예외:
TypeMismatch - DynAny 의 액세스 대상의 컴퍼넌트가, 요구된 형태와 같은 형태가 아닌 경우
TypeMismatch - 현재의 컴퍼넌트 자체가 컴퍼넌트를 가지는 것 같은 DynAny 로 불려 갔을 경우
InvalidValue - 이 DynAny 가 컴퍼넌트를 가지지만, 현재 위치가 -1 인 경우

get_long

int get_long()
             throws TypeMismatch ,
                    InvalidValue 
이 DynAny 로부터 정수치를 추출합니다. IDL 의 데이터형 long 는, Java 의 데이터형 int 에 맵 됩니다.

예외:
TypeMismatch - DynAny 의 액세스 대상의 컴퍼넌트가, 요구된 형태와 같은 형태가 아닌 경우
TypeMismatch - 현재의 컴퍼넌트 자체가 컴퍼넌트를 가지는 것 같은 DynAny 로 불려 갔을 경우
InvalidValue - 이 DynAny 가 컴퍼넌트를 가지지만, 현재 위치가 -1 인 경우

get_ulong

int get_ulong()
              throws TypeMismatch ,
                     InvalidValue 
이 DynAny 로부터 정수치를 추출합니다. IDL 의 데이터형 ulong 는, Java 의 데이터형 int 에 맵 됩니다.

예외:
TypeMismatch - DynAny 의 액세스 대상의 컴퍼넌트가, 요구된 형태와 같은 형태가 아닌 경우
TypeMismatch - 현재의 컴퍼넌트 자체가 컴퍼넌트를 가지는 것 같은 DynAny 로 불려 갔을 경우
InvalidValue - 이 DynAny 가 컴퍼넌트를 가지지만, 현재 위치가 -1 인 경우

get_float

float get_float()
                throws TypeMismatch ,
                       InvalidValue 
이 DynAny 로부터 float 치를 추출합니다.

예외:
TypeMismatch - DynAny 의 액세스 대상의 컴퍼넌트가, 요구된 형태와 같은 형태가 아닌 경우
TypeMismatch - 현재의 컴퍼넌트 자체가 컴퍼넌트를 가지는 것 같은 DynAny 로 불려 갔을 경우
InvalidValue - 이 DynAny 가 컴퍼넌트를 가지지만, 현재 위치가 -1 인 경우

get_double

double get_double()
                  throws TypeMismatch ,
                         InvalidValue 
이 DynAny 로부터 double 치를 추출합니다.

예외:
TypeMismatch - DynAny 의 액세스 대상의 컴퍼넌트가, 요구된 형태와 같은 형태가 아닌 경우
TypeMismatch - 현재의 컴퍼넌트 자체가 컴퍼넌트를 가지는 것 같은 DynAny 로 불려 갔을 경우
InvalidValue - 이 DynAny 가 컴퍼넌트를 가지지만, 현재 위치가 -1 인 경우

get_string

String  get_string()
                  throws TypeMismatch ,
                         InvalidValue 
이 DynAny 로부터 캐릭터 라인치를 추출합니다. 바운드 형식과 안 바운드 형식의 어느 쪽의 캐릭터 라인의 경우도 이 메소드를 사용해 추출합니다.

예외:
TypeMismatch - DynAny 의 액세스 대상의 컴퍼넌트가, 요구된 형태와 같은 형태가 아닌 경우
TypeMismatch - 현재의 컴퍼넌트 자체가 컴퍼넌트를 가지는 것 같은 DynAny 로 불려 갔을 경우
InvalidValue - 이 DynAny 가 컴퍼넌트를 가지지만, 현재 위치가 -1 인 경우

get_reference

Object  get_reference()
                     throws TypeMismatch ,
                            InvalidValue 
이 DynAny 로부터 CORBA 객체에의 참조를 추출합니다.

예외:
TypeMismatch - DynAny 의 액세스 대상의 컴퍼넌트가, 요구된 형태와 같은 형태가 아닌 경우
TypeMismatch - 현재의 컴퍼넌트 자체가 컴퍼넌트를 가지는 것 같은 DynAny 로 불려 갔을 경우
InvalidValue - 이 DynAny 가 컴퍼넌트를 가지지만, 현재 위치가 -1 인 경우

get_typecode

TypeCode  get_typecode()
                      throws TypeMismatch ,
                             InvalidValue 
이 DynAny 로부터 TypeCode 객체를 추출합니다.

예외:
TypeMismatch - DynAny 의 액세스 대상의 컴퍼넌트가, 요구된 형태와 같은 형태가 아닌 경우
TypeMismatch - 현재의 컴퍼넌트 자체가 컴퍼넌트를 가지는 것 같은 DynAny 로 불려 갔을 경우
InvalidValue - 이 DynAny 가 컴퍼넌트를 가지지만, 현재 위치가 -1 인 경우

get_longlong

long get_longlong()
                  throws TypeMismatch ,
                         InvalidValue 
이 DynAny 로부터 long 치를 추출합니다. IDL 의 데이터형 long long 는, Java 의 데이터형 long 에 맵 됩니다.

예외:
TypeMismatch - DynAny 의 액세스 대상의 컴퍼넌트가, 요구된 형태와 같은 형태가 아닌 경우
TypeMismatch - 현재의 컴퍼넌트 자체가 컴퍼넌트를 가지는 것 같은 DynAny 로 불려 갔을 경우
InvalidValue - 이 DynAny 가 컴퍼넌트를 가지지만, 현재 위치가 -1 인 경우

get_ulonglong

long get_ulonglong()
                   throws TypeMismatch ,
                          InvalidValue 
이 DynAny 로부터 long 치를 추출합니다. IDL 의 데이터형의 부호 없음 long long 는, Java 의 데이터형 long 에 맵 됩니다.

예외:
TypeMismatch - DynAny 의 액세스 대상의 컴퍼넌트가, 요구된 형태와 같은 형태가 아닌 경우
TypeMismatch - 현재의 컴퍼넌트 자체가 컴퍼넌트를 가지는 것 같은 DynAny 로 불려 갔을 경우
InvalidValue - 이 DynAny 가 컴퍼넌트를 가지지만, 현재 위치가 -1 인 경우

get_wchar

char get_wchar()
               throws TypeMismatch ,
                      InvalidValue 
이 DynAny 로부터 long 치를 추출합니다. IDL 의 데이터형 wchar 는, Java 의 데이터형 char 에 맵 됩니다.

예외:
TypeMismatch - DynAny 의 액세스 대상의 컴퍼넌트가, 요구된 형태와 같은 형태가 아닌 경우
TypeMismatch - 현재의 컴퍼넌트 자체가 컴퍼넌트를 가지는 것 같은 DynAny 로 불려 갔을 경우
InvalidValue - 이 DynAny 가 컴퍼넌트를 가지지만, 현재 위치가 -1 인 경우

get_wstring

String  get_wstring()
                   throws TypeMismatch ,
                          InvalidValue 
이 DynAny 로부터 캐릭터 라인치를 추출합니다. 바운드 형식과 안 바운드 형식의 어느 쪽의 캐릭터 라인의 경우도 이 메소드를 사용해 추출합니다.

예외:
TypeMismatch - DynAny 의 액세스 대상의 컴퍼넌트가, 요구된 형태와 같은 형태가 아닌 경우
TypeMismatch - 현재의 컴퍼넌트 자체가 컴퍼넌트를 가지는 것 같은 DynAny 로 불려 갔을 경우
InvalidValue

get_any

Any  get_any()
            throws TypeMismatch ,
                   InvalidValue 
이 DynAny 가 나타내는 Any 에 포함되어 있는 Any 치를 추출합니다.

예외:
TypeMismatch - DynAny 의 액세스 대상의 컴퍼넌트가, 요구된 형태와 같은 형태가 아닌 경우
TypeMismatch - 현재의 컴퍼넌트 자체가 컴퍼넌트를 가지는 것 같은 DynAny 로 불려 갔을 경우
InvalidValue - 이 DynAny 가 컴퍼넌트를 가지지만, 현재 위치가 -1 인 경우

get_dyn_any

DynAny  get_dyn_any()
                   throws TypeMismatch ,
                          InvalidValue 
이 DynAny 가 나타내는 Any 에 포함되어 있는 Any 치를 추출해, 그것을 새로운 DynAny 에 랩 해 돌려줍니다.

예외:
TypeMismatch - DynAny 의 액세스 대상의 컴퍼넌트가, 요구된 형태와 같은 형태가 아닌 경우
TypeMismatch - 현재의 컴퍼넌트 자체가 컴퍼넌트를 가지는 것 같은 DynAny 로 불려 갔을 경우
InvalidValue - 이 DynAny 가 컴퍼넌트를 가지지만, 현재 위치가 -1 인 경우

get_val

Serializable  get_val()
                     throws TypeMismatch ,
                            InvalidValue 
이 DynAny 로부터 직렬화 가능 객체를 추출합니다. IDL 의 ValueBase 형은 Java 의 Serializable 형에 맵 됩니다.

예외:
TypeMismatch - DynAny 의 액세스 대상의 컴퍼넌트가, 요구된 형태와 같은 형태가 아닌 경우
TypeMismatch - 현재의 컴퍼넌트 자체가 컴퍼넌트를 가지는 것 같은 DynAny 로 불려 갔을 경우
InvalidValue - 이 DynAny 가 컴퍼넌트를 가지지만, 현재 위치가 -1 인 경우

seek

boolean seek(int index)
현재 위치를 index 로 설정합니다. 현재 위치에는 0 으로부터 n-1 라고 하는 인덱스가 붙습니다. 즉, 0 이라고 하는 인덱스는 최초의 컴퍼넌트에 대응합니다. 이 조작은, 결과의 현재 위치가 DynAny 의 컴퍼넌트를 나타내는 경우는 true, 컴퍼넌트에 대응하지 않는 위치를 나타내는 경우는 false 를 돌려줍니다. seek 는, 부의 인덱스에서도 호출할 수 있습니다. 이 경우, 현재 위치는 -1 으로 설정되어 어느 컴퍼넌트도 지시하지 않게 되어, false 가 돌려주어집니다. 현재 위치에 컴퍼넌트가 없는 DynAny 에 대해 부 이외의 인덱스치를 건네주면(자), 현재 위치가 -1 로 설정되어 false 가 돌려주어집니다.


rewind

void rewind()
seek(0)와 같습니다.


next

boolean next()
현재 위치를 다음의 컴퍼넌트에 진행합니다. 조작은, 결과의 현재 위치가 컴퍼넌트를 나타내는 경우는 true, 그렇지 않은 경우는 false 를 돌려줍니다. false 가 돌려주어졌을 경우, 현재 위치는 -1 대로 됩니다. 컴퍼넌트를 가지지 않는 DynAny 로 next 를 호출하면(자), 현재 위치는 -1 인 채로 false 가 돌려주어집니다.


component_count

int component_count()
DynAny 의 컴퍼넌트의 수를 돌려줍니다. DynAny 가 컴퍼넌트를 가지지 않는 경우는 0 을 돌려줍니다. 컴퍼넌트수의 카운트는, 최상정도인 만큼 대해 행해집니다. 예를 들어, 멤버가 1 개 밖에 없는 DynStruct 로 component_count 를 호출하면(자), 그것이 어떠한 멤버여도 반환값은 1 이 됩니다.


current_component

DynAny  current_component()
                         throws TypeMismatch 
현재 위치의 컴퍼넌트의 DynAny 를 돌려줍니다. 현재 위치는 진행하지 않기 때문에, rewind, next, seek 의 어떤 것인지를 호출하지 않고 current_component 를 반복해 호출하면(자), 같은 컴퍼넌트가 돌려주어지게 됩니다. 반환된 DynAny 객체 참조는, 현재의 컴퍼넌트의 값의 취득이나 설정에 사용할 수 있습니다. 현재의 컴퍼넌트가 복합형을 나타내는 경우, 반환된 참조를 TypeCode 에 근거해 네로우 변환해, 그 복합형에 대응하는 인터페이스를 취득할 수 있습니다. DynEnum 또는 빈 상태(empty)의 예외와 같이 컴퍼넌트를 가질 수 없는 DynAny 로 current_component 를 호출하면(자), TypeMismatch 가 발생합니다. 현재 위치가 -1 인 DynAny 로 current_component 를 호출하면(자), nil 의 참조가 돌려주어집니다. current_component 와 함께 반복해 조작을 사용하면(자), any 치를 동적으로 작성할 수 있습니다. DynStruct 등이 동적인 any 를 작성 후, current_component 와 next 를 사용해, 값의 모든 컴퍼넌트를 초기화할 수 있습니다. 동적인 값이 완전하게 초기화되면(자), 대응하는 any 치를 to_any 로 작성할 수 있습니다.

예외:
TypeMismatch - DynEnum 나 빈 상태(empty)의 예외와 같이 컴퍼넌트를 가질 수 없는 DynAny 로 불려 갔을 경우

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 도 참조해 주세요.