org.openorb.ir.impl

Class RepositoryImpl

public class RepositoryImpl extends RepositoryPOA

This class is the Repository implementation.

Author: Olivier Modica

Constructor Summary
RepositoryImpl(ORB orb, POA poa, RepositoryHome home, String name)
Constructor
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.
AbstractInterfaceDefcreate_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.
AliasDefcreate_alias(String id, String name, String version, IDLType original_type)
The create_alias operation returns a new AliasDef with the specified original_type.
ArrayDefcreate_array(int bound, IDLType element_type)
The create_array operation returns a new ArrayDef with the specified length and element_type.
ConstantDefcreate_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.
EnumDefcreate_enum(String id, String name, String version, String[] members)
The create_enum operation returns a new EnumDef with the specified members.
ExceptionDefcreate_exception(String id, String name, String version, StructMember[] members)
The create_exception operation returns a new ExceptionDef with the specified members.
FixedDefcreate_fixed(short digits, short scale)
The create_fixed operation returns a new FixedDef with the specified number of digits and scale.
InterfaceDefcreate_interface(String id, String name, String version, InterfaceDef[] base_interfaces)
The create_interface operation returns a new empty InterfaceDef with the specified base_interfaces.
LocalInterfaceDefcreate_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.
ModuleDefcreate_module(String id, String name, String version)
The create_module operation returns a new empty ModuleDef.
NativeDefcreate_native(String id, String name, String version)
The create_native operation returns a new NativeDef with the specified name.
SequenceDefcreate_sequence(int bound, IDLType element_type)
The create_sequence operation returns a new SequenceDef with the specified bound and element_type.
StringDefcreate_string(int bound)
The create_string operation returns a new StringDef with the specified bound, which must be non-zero.
StructDefcreate_struct(String id, String name, String version, StructMember[] members)
The create_struct operation returns a new StructDef with the specified members.
UnionDefcreate_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.
ValueDefcreate_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).
ValueBoxDefcreate_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.
WstringDefcreate_wstring(int bound)
The create_wstring operation returns a new WstringDef with the specified bound, which must be non-zero.
DefinitionKinddef_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.
voiddestroy()
The destroy operation causes the object to cease to exist.
TypeCodeget_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.
PrimitiveDefget_primitive(PrimitiveKind kind)
The get_primitive operation returns a PrimitiveDef reference that describes a primitive type
Containedlookup(String search_name)
The lookup operation locates a definition relative to this container given a scoped name using OMG IDL's name scoping rules.
Containedlookup_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.

Constructor Detail

RepositoryImpl

public RepositoryImpl(ORB orb, POA poa, RepositoryHome home, String name)
Constructor

Method Detail

contents

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.

create_abstract_interface

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.

create_alias

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.

create_array

public ArrayDef create_array(int bound, IDLType element_type)
The create_array operation returns a new ArrayDef with the specified length and element_type.

create_constant

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.

create_enum

public EnumDef create_enum(String id, String name, String version, String[] members)
The create_enum operation returns a new EnumDef with the specified members.

create_exception

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.

create_fixed

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.

create_interface

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.

create_local_interface

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.

create_module

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.

create_native

public NativeDef create_native(String id, String name, String version)
The create_native operation returns a new NativeDef with the specified name.

create_sequence

public SequenceDef create_sequence(int bound, IDLType element_type)
The create_sequence operation returns a new SequenceDef with the specified bound and element_type.

create_string

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.

create_struct

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.

create_union

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.

create_value

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.

create_value_box

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.

create_wstring

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.

def_kind

public DefinitionKind def_kind()
The def_kind type_name attribute identifies the type of the definition.

describe_contents

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.

destroy

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.

get_canonical_typecode

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.

get_primitive

public PrimitiveDef get_primitive(PrimitiveKind kind)
The get_primitive operation returns a PrimitiveDef reference that describes a primitive type

lookup

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.

lookup_id

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.

lookup_name

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.