org.openorb.ir.impl

Class ModuleDefImpl

public class ModuleDefImpl extends ModuleDefPOA

This class is the ModuleDef implementation.

Author: Olivier Modica

Constructor Summary
ModuleDefImpl(ORB orb, POA parentPOA, ModuleDefHome home)
Constructor
Method Summary
Stringabsolute_name()
The absolute_name attribute is an absolute ScopedName that identifies a Contained object uniquely within its enclosing Repository.
Repositorycontaining_repository()
The containing_repository attribute identifies the Repository that is eventually reached by recursively following the object's defined_in attribute.
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 empty AbstractInterfaceDef with the specified 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.
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.
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 empty LocalInterfaceDef with the specified 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.
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.
Containerdefined_in()
Contained objects also have a defined_in attribute that identifies the Container within which they are defined.
DefinitionKinddef_kind()
The def_kind type_name attribute identifies the type of the definition.
Descriptiondescribe()
The describe operation returns a structure containing information about the interface.
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.
ModuleDefHomegetHome()
Get the ModuleDef home
Stringid()
An object that is contained by another object has an id attribute that identifies it globally.
voidid(String value)
An object that is contained by another object has an id attribute that identifies it globally.
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.
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.
voidmove(Container new_contained, String new_name, String new_version)
The move operation atomically removes this object from its current Container, and adds it to the Container specified by new_container must satisfy the following conditions: It must be in the same Repository.
Stringname()
An object that is contained by another object has a name attribute that identifies it uniquely within the enclosing Container object.
voidname(String value)
An object that is contained by another object has a name attribute that identifies it uniquely within the enclosing Container object.
Stringversion()
An object that is contained by another object has a version attribute that distinguishes it from other versioned objects with the same name.
voidversion(String value)
An object that is contained by another object has a version attribute that distinguishes it from other versioned objects with the same name.

Constructor Detail

ModuleDefImpl

public ModuleDefImpl(ORB orb, POA parentPOA, ModuleDefHome home)
Constructor

Method Detail

absolute_name

public String absolute_name()
The absolute_name attribute is an absolute ScopedName that identifies a Contained object uniquely within its enclosing Repository. If this object?s defined_in attribute references a Repository, the absolute_name is formed by concatenating the string "::" and this object?s name attribute. Otherwise, the absolute_name is formed by concatenating the absolute_name attribute of the object referenced by this object?s defined_in attribute, the string "::", and this object?s name attribute.

containing_repository

public Repository containing_repository()
The containing_repository attribute identifies the Repository that is eventually reached by recursively following the object's defined_in attribute.

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 empty AbstractInterfaceDef with the specified base_interfaces. Type, exception, and constant definitions can be added using Container::create_ operations on the new AbstractInterfaceDef. OperationDefs can be added using AbstractInterfaceDef::create_operation and AttributeDefs can be added using AbstractInterfaceDef::create_attribute. Definitions can also be added using the Contained::move operation.

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_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_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 empty LocalInterfaceDef with the specified base_interfaces. Type, exception, and constant definitions can be added using Container::create_ operations on the new LocalInterfaceDef. OperationDefs can be added using LocalInterfaceDef::create_operation and AttributeDefs can be added using LocalInterfaceDef::create_attribute. Definitions can also be added using the Contained::move operation.

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_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.

defined_in

public Container defined_in()
Contained objects also have a defined_in attribute that identifies the Container within which they are defined. Objects can be contained either because they are defined within the containing object (for example, an interface is defined within a module) or because they are inherited by the containing object (for example, an operation may be contained by an interface because the interface inherits the operation from another interface). If an object is contained through inheritance, the defined_in attribute identifies the InterfaceDef or ValueDef from which the object is inherited.

def_kind

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

describe

public Description describe()
The describe operation returns a structure containing information about the interface. This operation is overloaded in each sub interface. For example, if the describe operation is invoked on an attribute object, the kind field contains dk_Attribute name field contains "AttributeDescription" and the value field contains an any, which contains the AttributeDescription structure. The kind field in this must contain dk_attribute and not the kind of any IRObject from which the attribute object is derived. For example returning dk_all would be an error.

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.

getHome

public ModuleDefHome getHome()
Get the ModuleDef home

id

public String id()
An object that is contained by another object has an id attribute that identifies it globally.

id

public void id(String value)
An object that is contained by another object has an id attribute that identifies it globally.

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_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.

move

public void move(Container new_contained, String new_name, String new_version)
The move operation atomically removes this object from its current Container, and adds it to the Container specified by new_container must satisfy the following conditions: It must be in the same Repository. If it is not, then BAD_PARAM exception is raised with minor code 4. It must be capable of containing this object?s type. If it is not, then BAD_PARAM exception is raised with minor code 4. It must not already contain an object with this object?s name (unless multiple versions are supported by the IR). If this condition is not satisfied, then BAD_PARAM exception is raised with minor code 3.

name

public String name()
An object that is contained by another object has a name attribute that identifies it uniquely within the enclosing Container object.

name

public void name(String value)
An object that is contained by another object has a name attribute that identifies it uniquely within the enclosing Container object.

version

public String version()
An object that is contained by another object has a version attribute that distinguishes it from other versioned objects with the same name.

version

public void version(String value)
An object that is contained by another object has a version attribute that distinguishes it from other versioned objects with the same name.