org.omg.CORBA

Class TypeCode

Implemented Interfaces:
IDLEntity, Serializable

public abstract class TypeCode
extends Object
implements IDLEntity, Serializable

An information about a CORBA data type.
See Also:
Serialized Form

Method Summary

abstract TypeCode
concrete_base_type()
For value types that support inheritance this method returns the of the ancestor type code.
abstract TypeCode
content_type()
For sequences, arrays, aliases and value boxes, returns the IDL type for the members of the object.
abstract int
default_index()
For unions, returs the index of the default member.
abstract TypeCode
discriminator_type()
Returs definition of member labels for untions
abstract boolean
equal(TypeCode other)
Test two types for equality.
abstract boolean
equivalent(TypeCode other)
Following the current 1.4 API specifcation, this should just throw NO_IMPLEMENT.
abstract short
fixed_digits()
For the fixed type, returns the number of digits.
abstract short
fixed_scale()
Returns the scale for the fixed type.
abstract TypeCode
get_compact_typecode()
Returns a version of this instance without the optional memeber and member name fields.
abstract String
id()
Returns the RepositoryId globally identifying the type, defined by this TypeCode.
abstract TCKind
kind()
Return the kind of this type code object.
abstract int
length()
Returns the number of elements in the type.
abstract int
member_count()
Returns the number of type memebers.
abstract Any
member_label(int index)
Retrieves the label of the union member at the given index.
abstract String
member_name(int index)
Retrieves the simple name of the member identified by the given index.
abstract TypeCode
member_type(int index)
Retrieves the member type of the member identified by the given index.
abstract short
member_visibility(int index)
Returns the visibility scope of the member at the given index.
abstract String
name()
Retrieves the simple name identifying this TypeCode object within its enclosing scope.
abstract short
type_modifier()
Returns a constant indicating the modifier of the value type.

Methods inherited from class java.lang.Object

clone, equals, extends Object> getClass, finalize, hashCode, notify, notifyAll, toString, wait, wait, wait

Method Details

concrete_base_type

public abstract TypeCode concrete_base_type()
            throws BadKind
For value types that support inheritance this method returns the of the ancestor type code.
Returns:
the ancestor TypeCode.
Throws:
BadKind - for all typecodes except the value type typecodes.

content_type

public abstract TypeCode content_type()
            throws BadKind
For sequences, arrays, aliases and value boxes, returns the IDL type for the members of the object.
Returns:
a TypeCode of the memebers of this type.
Throws:
BadKind - for types other than sequences, arrays, aliases and value boxes.

default_index

public abstract int default_index()
            throws BadKind
For unions, returs the index of the default member.
Returns:
the index of the default member, -1 if there is no default member.
Throws:
BadKind - if this type is not a union.

discriminator_type

public abstract TypeCode discriminator_type()
            throws BadKind
Returs definition of member labels for untions
Returns:
a TypeCode, describing all non-default member labels.
Throws:
BadKind - if this type is not a union.

equal

public abstract boolean equal(TypeCode other)
Test two types for equality.
Parameters:
other - the other type to compere with
Returns:
true if the types are interchangeable.

equivalent

public abstract boolean equivalent(TypeCode other)
Following the current 1.4 API specifcation, this should just throw NO_IMPLEMENT.

fixed_digits

public abstract short fixed_digits()
            throws BadKind
For the fixed type, returns the number of digits.
Returns:
the number of digits for the fixed type
Throws:
BadKind - if this is not a fixed type.

fixed_scale

public abstract short fixed_scale()
            throws BadKind
Returns the scale for the fixed type. The returned value can be either positive (the number of digits to the right of the decimal point) or negative (adds zeros to the left of the decimal point).
Returns:
the scale.
Throws:
BadKind - if this is not a fixed type.

get_compact_typecode

public abstract TypeCode get_compact_typecode()
Returns a version of this instance without the optional memeber and member name fields.
Returns:
the truncated version.

id

public abstract String id()
            throws BadKind
Returns the RepositoryId globally identifying the type, defined by this TypeCode.
Returns:
tje RepositoryId. In some cases, it may be an empty string.
Throws:
BadKind - if the type is other than reference, structure, union, enumeration, alias, exception, valuetype, boxed valuetype and also native and abstract interfaces.

kind

public abstract TCKind kind()
Return the kind of this type code object.
Returns:
one of the TCKind.t_.. fields.

length

public abstract int length()
            throws BadKind
Returns the number of elements in the type. For arrays, this method returns the length of the array. For strings and sequences, it returns the bound of the type, zero indicating the unbounded type.
Returns:
length or bound
Throws:
BadKind - for types other than string, sequence and array.

member_count

public abstract int member_count()
            throws BadKind
Returns the number of type memebers.
Returns:
the number of memebers
Throws:
BadKind - for types other than structure, union, enumeration or exception.

member_label

public abstract Any member_label(int index)
            throws BadKind,
                   Bounds
Retrieves the label of the union member at the given index. For the default member, this label is the zero octet.
Parameters:
index - the index of the union memeber.
Returns:
the label
Throws:
BadKind - if this is not a union type.
Bounds - if the index is out of valid bounds.

member_name

public abstract String member_name(int index)
            throws BadKind,
                   Bounds
Retrieves the simple name of the member identified by the given index.
Parameters:
index - the index of the memeber.
Returns:
the member name that in some cases can be an empty string.
Throws:
BadKind - for types other than structure, union or enumeration.
Bounds - if the index is out of valid bounds.

member_type

public abstract TypeCode member_type(int index)
            throws BadKind,
                   Bounds
Retrieves the member type of the member identified by the given index.
Parameters:
index - the index of the memeber.
Returns:
the member type.
Throws:
BadKind - for types other than structure, union, enumeration or exception.
Bounds - if the index is out of valid bounds.

member_visibility

public abstract short member_visibility(int index)
            throws BadKind,
                   Bounds
Returns the visibility scope of the member at the given index. This operation can only be invoked on non-boxed value types.
Parameters:
index - the index of the member
Returns:
either PRIVATE_MEMBER.value or PUBLIC_MEMBER.value
Throws:
BadKind - if this is not a non boxed value type.
Bounds - if the index is out of valid bounds.

name

public abstract String name()
            throws BadKind
Retrieves the simple name identifying this TypeCode object within its enclosing scope.
Returns:
the name, can be an empty string.
Throws:
BadKind - for typer other than reference, structure, union, enumeration, alias, exception, valuetype, boxed valuetype, native, and abstract interface

type_modifier

public abstract short type_modifier()
            throws BadKind
Returns a constant indicating the modifier of the value type.
Returns:
one of the following constants: VM_NONE.value, VM_ABSTRACT.value, VM_CUSTOM.value, or VM_TRUNCATABLE.value,
Throws:
BadKind - for all types other than value type.

TypeCode.java -- Copyright (C) 2005 Free Software Foundation, Inc. This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU Classpath is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Classpath; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination. As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.