JavaTM Platform
Standard Ed. 6

패키지 org.omg.DynamicAny

실행시에 any 에 관련지을 수 있었던 데이터값의 횡단(traverse), 및 데이터값의 기본적인 원가요소를 추출하기 위한 클래스와 인터페이스를 제공합니다.

참조처:
          설명

인터페이스의 개요
DynAny Any 의 값은, DynAny 객체를 통해 동적으로 해석 (횡단(traverse)) 및 구축할 수 있습니다.
DynAnyFactory DynAny 객체는, DynAnyFactory 객체로 오퍼레이션을 호출하는 것으로 작성할 수 있습니다.
DynAnyFactoryOperations DynAny 객체는, DynAnyFactory 객체로 오퍼레이션을 호출하는 것으로 작성할 수 있습니다.
DynAnyOperations Any 의 값은, DynAny 객체를 통해 동적으로 해석 (횡단(traverse)) 및 구축할 수 있습니다.
DynArray DynArray 객체에 의해, IDL 의 배열의 조작이 지원됩니다.
DynArrayOperations DynArray 객체에 의해, IDL 의 배열의 조작이 지원됩니다.
DynEnum DynEnum 객체에 의해, IDL 의 열거치의 조작이 지원됩니다.
DynEnumOperations DynEnum 객체에 의해, IDL 의 열거치의 조작이 지원됩니다.
DynFixed DynFixed 객체에 의해, IDL 의 fixed 치의 조작이 지원됩니다.
DynFixedOperations DynFixed 객체에 의해, IDL 의 fixed 치의 조작이 지원됩니다.
DynSequence DynSequence 객체에 의해, IDL 의 순서의 조작이 지원됩니다.
DynSequenceOperations DynSequence 객체에 의해, IDL 의 순서의 조작이 지원됩니다.
DynStruct DynStruct 객체에 의해, IDL 구조체 및 예외치의 조작이 지원됩니다.
DynStructOperations DynStruct 객체에 의해, IDL 구조체 및 예외치의 조작이 지원됩니다.
DynUnion DynUnion 객체에 의해, IDL 의 공용체의 조작이 지원됩니다.
DynUnionOperations DynUnion 객체에 의해, IDL 의 공용체의 조작이 지원됩니다.
DynValue DynValue 객체에 의해, IDL 의 비 boxed 치 형의 조작이 지원됩니다.
DynValueBox DynValueBox 객체에 의해, IDL 의 boxed 치 형의 조작이 지원됩니다.
DynValueBoxOperations DynValueBox 객체에 의해, IDL 의 boxed 치 형의 조작이 지원됩니다.
DynValueCommon DynValueCommon 는, DynValue 및 DynValueBox 인터페이스로 지원되는 오퍼레이션을 제공합니다.
DynValueCommonOperations DynValueCommon 는, DynValue 및 DynValueBox 인터페이스로 지원되는 오퍼레이션을 제공합니다.
DynValueOperations DynValue 객체에 의해, IDL 의 비 boxed 치 형의 조작이 지원됩니다.
 

클래스의 개요
_DynAnyFactoryStub DynAny 객체는, DynAnyFactory 객체로 오퍼레이션을 호출하는 것으로 작성할 수 있습니다.
_DynAnyStub Any 의 값은, DynAny 객체를 통해 동적으로 해석 (횡단(traverse)) 및 구축할 수 있습니다.
_DynArrayStub DynArray 객체에 의해, IDL 의 배열의 조작이 지원됩니다.
_DynEnumStub DynEnum 객체에 의해, IDL 의 열거치의 조작이 지원됩니다.
_DynFixedStub DynFixed 객체에 의해, IDL 의 fixed 치의 조작이 지원됩니다.
_DynSequenceStub DynSequence 객체에 의해, IDL 의 순서의 조작이 지원됩니다.
_DynStructStub DynStruct 객체에 의해, IDL 구조체 및 예외치의 조작이 지원됩니다.
_DynUnionStub DynUnion 객체에 의해, IDL 의 공용체의 조작이 지원됩니다.
_DynValueStub DynValue 객체에 의해, IDL 의 비 boxed 치 형의 조작이 지원됩니다.
AnySeqHelper org/omg/DynamicAny/AnySeqHelper.java.
DynAnyFactoryHelper DynAny 객체는, DynAnyFactory 객체로 오퍼레이션을 호출하는 것으로 작성할 수 있습니다.
DynAnyHelper Any 의 값은, DynAny 객체를 통해 동적으로 해석 (횡단(traverse)) 및 구축할 수 있습니다.
DynAnySeqHelper org/omg/DynamicAny/DynAnySeqHelper.java.
DynArrayHelper DynArray 객체에 의해, IDL 의 배열의 조작이 지원됩니다.
DynEnumHelper DynEnum 객체에 의해, IDL 의 열거치의 조작이 지원됩니다.
DynFixedHelper DynFixed 객체에 의해, IDL 의 fixed 치의 조작이 지원됩니다.
DynSequenceHelper DynSequence 객체에 의해, IDL 의 순서의 조작이 지원됩니다.
DynStructHelper DynStruct 객체에 의해, IDL 구조체 및 예외치의 조작이 지원됩니다.
DynUnionHelper DynUnion 객체에 의해, IDL 의 공용체의 조작이 지원됩니다.
DynValueHelper DynValue 객체에 의해, IDL 의 비 boxed 치 형의 조작이 지원됩니다.
FieldNameHelper org/omg/DynamicAny/FieldNameHelper.java.
NameDynAnyPair org/omg/DynamicAny/NameDynAnyPair.java.
NameDynAnyPairHelper org/omg/DynamicAny/NameDynAnyPairHelper.java.
NameDynAnyPairSeqHelper org/omg/DynamicAny/NameDynAnyPairSeqHelper.java.
NameValuePair org/omg/DynamicAny/NameValuePair.java.
NameValuePairHelper org/omg/DynamicAny/NameValuePairHelper.java.
NameValuePairSeqHelper org/omg/DynamicAny/NameValuePairSeqHelper.java.
 

패키지 org.omg.DynamicAny 의 설명

실행시에 any 에 관련지을 수 있었던 데이터값의 횡단(traverse), 및 데이터값의 기본적인 원가요소를 추출하기 위한 클래스와 인터페이스를 제공합니다.

any 는, 그 any 의 형태에 대해 정적인 정보가 없는 (IDL 컴파일러가 그 형태에 대해 생성한 코드가, 객체 구현을 포함해 컴파일되어 있지 않다) 프로그램에 건네줄 수가 있습니다. 이 때문에, 객체는 any 를 받아도, 그것을 사용하기 위한 이식성이 있는 메소드가 없게 됩니다.

DynAny 를 사용하면(자),any 의 데이터값의 횡단(traverse)을 실행시에 실시해, 데이터값의 기본적인 원가요소를 추출할 수가 있습니다. 이것은, 강력한 총칭 서버 (브릿지, 필터링을 지원하는 이벤트 채널)를 작성하는 경우에 도움이 됩니다. 또, 형태에 관한 정적인 정보를 가지지 않고 , 실행시에 any 를 구축할 수도 있습니다. 이것은, 총칭 클라이언트 (브릿지, 브라우저, 디버거, 사용자 인터페이스 툴)를 작성하는 경우에 도움이 됩니다.

Any 의 값은,DynAny 객체를 통해 동적으로 해석 (횡단(traverse)) 및 구축할 수 있습니다. DynAny 객체는 데이터값에 관련지을 수 있습니다만, 이 데이터값는 Any 에 삽입된 값의 카피에 대응합니다. DynAny 객체는, 컴퍼넌트의 DynAny 의 순서 붙일 수 있었던 컬렉션이라고 볼 수가 있습니다. DynAnylong 등의 기본형을 나타내는 경우, 또는 빈 상태(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 합니다. 작성되는 객체는 각각 구축형의 데이터값의 컴퍼넌트에 관련지을 수 있습니다. 예를 들어,DynStructstruct 치와 관련지을 수 있습니다. 즉,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 의 값의 구축을 실시하기 위해서(때문에) 사용하는 것이 상정되고 있습니다. 다른 용도에서의 사용은 추천할 수 없습니다.

DynAny 객체의 조작

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

기본적인 오퍼레이션에는 다음의 것이 있습니다.  

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

패키지의 스펙

Java(TM) Platform, Standard Edition 6 ORB 가 준거하는 공식의 스펙의 지원 섹션의 정확한 리스트는,「Java(TM) SE 6 에서의 정식적 CORBA 지원 스펙」을 참조해 주세요.

도입된 버젼:
1.4

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