- /*
- * @(#)DynStructImpl.java 1.6 03/01/23
- *
- * Copyright 2003 Sun Microsystems, Inc. All rights reserved.
- * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
- */
-
- package com.sun.corba.se.internal.DynamicAny;
-
- import org.omg.CORBA.ORB;
- import org.omg.CORBA.TypeCode;
- import org.omg.CORBA.TCKind;
- import org.omg.CORBA.Any;
- import org.omg.CORBA.NO_IMPLEMENT;
- import org.omg.CORBA.OBJECT_NOT_EXIST;
- import org.omg.CORBA.TypeCodePackage.BadKind;
- import org.omg.CORBA.TypeCodePackage.Bounds;
- import org.omg.DynamicAny.*;
- import org.omg.DynamicAny.DynAnyPackage.TypeMismatch;
- import org.omg.DynamicAny.DynAnyPackage.InvalidValue;
- import org.omg.DynamicAny.DynAnyFactoryPackage.InconsistentTypeCode;
-
- public class DynStructImpl extends DynAnyComplexImpl implements DynStruct
- {
- //
- // Constructors
- //
-
- private DynStructImpl() {
- this(null, (Any)null, false);
- }
-
- protected DynStructImpl(ORB orb, Any any, boolean copyValue) {
- // We can be sure that typeCode is of kind tk_struct
- super(orb, any, copyValue);
- // Initialize components lazily, on demand.
- // This is an optimization in case the user is only interested in storing Anys.
- }
-
- protected DynStructImpl(ORB orb, TypeCode typeCode) {
- // We can be sure that typeCode is of kind tk_struct
- super(orb, typeCode);
- // For DynStruct, the operation sets the current position to -1
- // for empty exceptions and to zero for all other TypeCodes.
- // The members (if any) are (recursively) initialized to their default values.
- index = 0;
- }
-
- //
- // Methods differing from DynValues
- //
-
- public org.omg.DynamicAny.NameValuePair[] get_members () {
- if (status == STATUS_DESTROYED) {
- throw new OBJECT_NOT_EXIST();
- }
- checkInitComponents();
- return nameValuePairs;
- }
-
- public org.omg.DynamicAny.NameDynAnyPair[] get_members_as_dyn_any () {
- if (status == STATUS_DESTROYED) {
- throw new OBJECT_NOT_EXIST();
- }
- checkInitComponents();
- return nameDynAnyPairs;
- }
- }