org.openorb.ir.impl
Class RepositoryImpl
public
class
RepositoryImpl
extends RepositoryPOA
This class is the Repository implementation.
Author: Olivier Modica
Method Summary |
Contained[] | contents(DefinitionKind limit_type, boolean exclude_inherited)
The contents operation returns the list of objects directly
contained by or inherited into the object. |
AbstractInterfaceDef | create_abstract_interface(String id, String name, String version, AbstractInterfaceDef[] base_interfaces)
The create_abstract_interface operation returns a new AbstractInterfaceDef with the
specified name and base interfaces. |
AliasDef | create_alias(String id, String name, String version, IDLType original_type)
The create_alias operation returns a new AliasDef with the
specified original_type. |
ArrayDef | create_array(int bound, IDLType element_type)
The create_array operation returns a new ArrayDef with the
specified length and element_type. |
ConstantDef | create_constant(String id, String name, String version, IDLType type, Any value)
The create_constant operation returns a new ConstantDef with
the specified type and value. |
EnumDef | create_enum(String id, String name, String version, String[] members)
The create_enum operation returns a new EnumDef with the
specified members. |
ExceptionDef | create_exception(String id, String name, String version, StructMember[] members)
The create_exception operation returns a new ExceptionDef with
the specified members. |
FixedDef | create_fixed(short digits, short scale)
The create_fixed operation returns a new FixedDef with the
specified number of digits and scale. |
InterfaceDef | create_interface(String id, String name, String version, InterfaceDef[] base_interfaces)
The create_interface operation returns a new empty InterfaceDef
with the specified base_interfaces. |
LocalInterfaceDef | create_local_interface(String id, String name, String version, LocalInterfaceDef[] base_interfaces)
The create_local_interface operation returns a new LocalInterfaceDef with the
specified name and base interfaces. |
ModuleDef | create_module(String id, String name, String version)
The create_module operation returns a new empty
ModuleDef. |
NativeDef | create_native(String id, String name, String version)
The create_native operation returns a new NativeDef with the
specified name. |
SequenceDef | create_sequence(int bound, IDLType element_type)
The create_sequence operation returns a new SequenceDef with
the specified bound and element_type. |
StringDef | create_string(int bound)
The create_string operation returns a new StringDef with the
specified bound, which must be non-zero. |
StructDef | create_struct(String id, String name, String version, StructMember[] members)
The create_struct operation returns a new StructDef with the
specified members. |
UnionDef | create_union(String id, String name, String version, IDLType discriminator_type, UnionMember[] members)
The create_union operation returns a new UnionDef with the specified
discriminator_type and members. |
ValueDef | create_value(String id, String name, String version, boolean is_custom, boolean is_abstract, ValueDef base_value, boolean is_truncatable, ValueDef[] abstract_base_value, InterfaceDef[] supported_interfaces, Initializer[] initializers)
The create_value operation returns a new empty ValueDef with
the specified base interfaces and values (base_value,
supported_interfaces, and abstract_base_values) as well as the
other information describing the new values characteristics
(is_custom, is_abstract, is_truncatable, and
initializers). |
ValueBoxDef | create_value_box(String id, String name, String version, IDLType original_type_def)
The create_value_box operation returns a new ValueBoxDef with
the specified original_type_def. |
WstringDef | create_wstring(int bound)
The create_wstring operation returns a new WstringDef with the
specified bound, which must be non-zero. |
DefinitionKind | def_kind()
The def_kind type_name attribute identifies the type of the definition. |
Description[] | describe_contents(DefinitionKind limit_type, boolean exclude_inherited, int max_returned_objs)
The describe_contents operation combines the contents operation
and the describe operation. |
void | destroy()
The destroy operation causes the object to cease to exist. |
TypeCode | get_canonical_typecode(TypeCode tc)
The get_canonical_typecode operation looks up the TypeCode in
the Interface Repository and returns an equivalent TypeCode
that includes all repository ids, names, and member_names. |
PrimitiveDef | get_primitive(PrimitiveKind kind)
The get_primitive operation returns a PrimitiveDef reference
that describes a primitive type |
Contained | lookup(String search_name)
The lookup operation locates a definition relative to this
container given a scoped name using OMG IDL's name scoping
rules. |
Contained | lookup_id(String search_id)
The lookup_id operation is used to lookup an object in a
Repository given its RepositoryId. |
Contained[] | lookup_name(String search_name, int levels_to_search, DefinitionKind limit_type, boolean exclude_inherited)
The lookup_name operation is used to locate an object by name
within a particular object or within the objects contained by
that object. |
public RepositoryImpl(ORB orb, POA poa,
RepositoryHome home, String name)
Constructor
public Contained[] contents(DefinitionKind limit_type, boolean exclude_inherited)
The contents operation returns the list of objects directly
contained by or inherited into the object. The operation is
used to navigate through the hierarchy of objects. Starting
with the Repository object, a client uses this operation to
list all of the objects contained by the Repository, all of the
objects contained by the modules within the Repository, and
then all of the interfaces and value types within a specific
module, and so on.
Parameters: limit_type If limit_type is set to dk_all "all", objects
of all interface types are returned. For example, if
this is an InterfaceDef, the attribute, operation,
and exception objects are all returned. If
limit_type is set to a specific interface, only
objects of that interface type are returned. For
example, only attribute objects are returned if
limit_type is set to dk_Attribute "AttributeDef".
exclude_inherited If set to TRUE, inherited objects (if
there are any) are not returned. If set to FALSE,
all contained objects,whether contained due to
inheritance or because they were defined within
the object,are returned.
public AbstractInterfaceDef create_abstract_interface(String id, String name, String version, AbstractInterfaceDef[] base_interfaces)
The create_abstract_interface operation returns a new AbstractInterfaceDef with the
specified name and base interfaces.
public AliasDef create_alias(String id, String name, String version, IDLType original_type)
The create_alias operation returns a new AliasDef with the
specified original_type.
public ArrayDef create_array(int bound, IDLType element_type)
The create_array operation returns a new ArrayDef with the
specified length and element_type.
public ConstantDef create_constant(String id, String name, String version, IDLType type, Any value)
The create_constant operation returns a new ConstantDef with
the specified type and value.
public EnumDef create_enum(String id, String name, String version, String[] members)
The create_enum operation returns a new EnumDef with the
specified members.
public ExceptionDef create_exception(String id, String name, String version, StructMember[] members)
The create_exception operation returns a new ExceptionDef with
the specified members. The type member of the StructMember
structures should be set to TC_void.
public FixedDef create_fixed(short digits, short scale)
The create_fixed operation returns a new FixedDef with the
specified number of digits and scale. The number of digits must
be from 1 to 31, inclusive.
public InterfaceDef create_interface(String id, String name, String version, InterfaceDef[] base_interfaces)
The create_interface operation returns a new empty InterfaceDef
with the specified base_interfaces. Type, exception, and
constant definitions can be added using
Container::create_ operations on the new
InterfaceDef. OperationDefs can be added using
InterfaceDef::create_operation and AttributeDefs can be added
using Interface::create_attribute. Definitions can also be
added using the Contained::move operation.
public LocalInterfaceDef create_local_interface(String id, String name, String version, LocalInterfaceDef[] base_interfaces)
The create_local_interface operation returns a new LocalInterfaceDef with the
specified name and base interfaces.
public ModuleDef create_module(String id, String name, String version)
The create_module operation returns a new empty
ModuleDef. Definitions can be added using
Container::create_ operations on the new module, or by
using the Contained::move operation.
public NativeDef create_native(String id, String name, String version)
The create_native operation returns a new NativeDef with the
specified name.
public SequenceDef create_sequence(int bound, IDLType element_type)
The create_sequence operation returns a new SequenceDef with
the specified bound and element_type.
public StringDef create_string(int bound)
The create_string operation returns a new StringDef with the
specified bound, which must be non-zero. The get_primitive
operation is used for unbounded strings.
public StructDef create_struct(String id, String name, String version, StructMember[] members)
The create_struct operation returns a new StructDef with the
specified members. The type member of the StructMember
structures is ignored, and should be set to TC_void.
public UnionDef create_union(String id, String name, String version, IDLType discriminator_type, UnionMember[] members)
The create_union operation returns a new UnionDef with the specified
discriminator_type and members. The type member of the UnionMember
structures is ignored, and should be set to TC_void.
public ValueDef create_value(String id, String name, String version, boolean is_custom, boolean is_abstract, ValueDef base_value, boolean is_truncatable, ValueDef[] abstract_base_value, InterfaceDef[] supported_interfaces, Initializer[] initializers)
The create_value operation returns a new empty ValueDef with
the specified base interfaces and values (base_value,
supported_interfaces, and abstract_base_values) as well as the
other information describing the new values characteristics
(is_custom, is_abstract, is_truncatable, and
initializers). Type, exception, and constant definitions can be
added using Container::create_ operations on the new
ValueDef. OperationDefs can be added using
ValueDef::create_operation and AttributeDefs can be added using
Value::create_attribute. Definitions can also be added using
the Contained::move operation.
public ValueBoxDef create_value_box(String id, String name, String version, IDLType original_type_def)
The create_value_box operation returns a new ValueBoxDef with
the specified original_type_def.
public WstringDef create_wstring(int bound)
The create_wstring operation returns a new WstringDef with the
specified bound, which must be non-zero. The get_primitive
operation is used for unbounded strings.
public DefinitionKind def_kind()
The def_kind type_name attribute identifies the type of the definition.
public Description[] describe_contents(DefinitionKind limit_type, boolean exclude_inherited, int max_returned_objs)
The describe_contents operation combines the contents operation
and the describe operation. For each object returned by the
contents operation, the description of the object is returned
(i.e., the object?s describe operation is invoked and the
results returned).
Parameters: limit_type If limit_type is set to dk_all "all", objects
of all interface types are returned. For example, if
this is an InterfaceDef, the attribute, operation,
and exception objects are all returned. If
limit_type is set to a specific interface, only
objects of that interface type are returned. For
example, only attribute objects are returned if
limit_type is set to dk_Attribute "AttributeDef".
exclude_inherited If set to TRUE, inherited objects (if
there are any) are not returned. If set to FALSE,
all contained objects,whether contained due to
inheritance or because they were defined within
the object,are returned.
max_returned_objs max_returned_objs Limits the number of
objects that can be returned in an invocation of
the call to the number provided. Setting the
parameter to -1 means return all contained
objects.
public void destroy()
The destroy operation causes the object to cease to exist. If
the object is a Container, destroy is applied to all its
contents. If the object contains an IDLType attribute for an
anonymous type, that IDLType is destroyed. If the object is
currently contained in some other object, it is removed. If
destroy is invoked on a Repository or on a PrimitiveDef then
the BAD_INV_ORDER exception is raised with minor value 2.
Implementations may vary in their handling of references to an
object that is being destroyed, but the Repository should not
be left in an incoherent state. Attempt to destroy an object
that would leave the repository in an incoherent state shall
cause BAD_INV_ORDER exception to be raised with the minor code
1.
public TypeCode get_canonical_typecode(TypeCode tc)
The get_canonical_typecode operation looks up the TypeCode in
the Interface Repository and returns an equivalent TypeCode
that includes all repository ids, names, and member_names. If
the top level TypeCode does not contain a RepositoryId, such as
array and sequence TypeCodes, or TypeCodes from older ORBs,
or if it contains a RepositoryId that is not found in the
target Repository, then a new TypeCode is constructed by
recursively calling get_canonical_typecode on each member
TypeCode of the original TypeCode.
public PrimitiveDef get_primitive(PrimitiveKind kind)
The get_primitive operation returns a PrimitiveDef reference
that describes a primitive type
public Contained lookup(String search_name)
The lookup operation locates a definition relative to this
container given a scoped name using OMG IDL's name scoping
rules. An absolute scoped name (beginning with "::") locates
the definition relative to the enclosing Repository. If no
object is found, a nil object reference is returned.
public Contained lookup_id(String search_id)
The lookup_id operation is used to lookup an object in a
Repository given its RepositoryId. If the Repository does not
contain a definition for search_id, a nil object reference is
returned.
public Contained[] lookup_name(String search_name, int levels_to_search, DefinitionKind limit_type, boolean exclude_inherited)
The lookup_name operation is used to locate an object by name
within a particular object or within the objects contained by
that object. Use of values of levels_to_search of 0 or of
negative numbers other than -1 is undefined.
Parameters: search_name Specified which name is to be searched for.
levels_to_search Controls whether the lookup is
constrained to the object the operation is invoked
on or whether it should search through objects
contained by the object as well.
limit_type If limit_type is set to dk_all "all", objects
of all interface types are returned. For example, if
this is an InterfaceDef, the attribute, operation,
and exception objects are all returned. If
limit_type is set to a specific interface, only
objects of that interface type are returned. For
example, only attribute objects are returned if
limit_type is set to dk_Attribute "AttributeDef".
exclude_inherited If set to TRUE, inherited objects (if
there are any) are not returned. If set to FALSE,
all contained objects,whether contained due to
inheritance or because they were defined within
the object,are returned.