- /*
- * @(#)DynValueCommonImpl.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;
-
- abstract class DynValueCommonImpl extends DynAnyComplexImpl implements DynValueCommon
- {
- //
- // Constructors
- //
-
- protected boolean isNull;
-
- private DynValueCommonImpl() {
- this(null, (Any)null, false);
- isNull = true;
- }
-
- protected DynValueCommonImpl(ORB orb, Any any, boolean copyValue) {
- super(orb, any, copyValue);
- isNull = checkInitComponents();
- }
-
- protected DynValueCommonImpl(ORB orb, TypeCode typeCode) {
- super(orb, typeCode);
- isNull = true;
- }
-
- //
- // DynValueCommon methods
- //
-
- // Returns TRUE if this object represents a null valuetype
- public boolean is_null() {
- return isNull;
- }
-
- // Changes the representation to a null valuetype.
- public void set_to_null() {
- isNull = true;
- clearData();
- }
-
- // If this object represents a null valuetype then this operation
- // replaces it with a newly constructed value with its components
- // initialized to default values as in DynAnyFactory::create_dyn_any_from_type_code.
- // If this object represents a non-null valuetype, then this operation has no effect.
- public void set_to_value() {
- if (isNull) {
- isNull = false;
- // the rest is done lazily
- }
- // else: there is nothing to do
- }
-
- //
- // Methods differing from DynStruct
- //
-
- // Required to raise InvalidValue if this is a null value type.
- public org.omg.DynamicAny.NameValuePair[] get_members ()
- throws org.omg.DynamicAny.DynAnyPackage.InvalidValue
- {
- if (status == STATUS_DESTROYED) {
- throw new OBJECT_NOT_EXIST();
- }
- if (isNull) {
- throw new InvalidValue();
- }
- checkInitComponents();
- return nameValuePairs;
- }
-
- // Required to raise InvalidValue if this is a null value type.
- public org.omg.DynamicAny.NameDynAnyPair[] get_members_as_dyn_any ()
- throws org.omg.DynamicAny.DynAnyPackage.InvalidValue
- {
- if (status == STATUS_DESTROYED) {
- throw new OBJECT_NOT_EXIST();
- }
- if (isNull) {
- throw new InvalidValue();
- }
- checkInitComponents();
- return nameDynAnyPairs;
- }
-
- //
- // Overridden methods
- //
-
- // Overridden to change to non-null status.
- public void set_members (org.omg.DynamicAny.NameValuePair[] value)
- throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch,
- org.omg.DynamicAny.DynAnyPackage.InvalidValue
- {
- super.set_members(value);
- // If we didn't get an exception then this must be a valid non-null value
- isNull = false;
- }
-
- // Overridden to change to non-null status.
- public void set_members_as_dyn_any (org.omg.DynamicAny.NameDynAnyPair[] value)
- throws org.omg.DynamicAny.DynAnyPackage.TypeMismatch,
- org.omg.DynamicAny.DynAnyPackage.InvalidValue
- {
- super.set_members_as_dyn_any(value);
- // If we didn't get an exception then this must be a valid non-null value
- isNull = false;
- }
- }