Rogue Wave Server
API Reference Guide
Product Documentation:

Rogue Wave Server
Documentation Home
List of all members | Public Types | Public Member Functions
IlsUsesFixedArray< UserType, UsedType, size > Class Template Reference

Fixed array of uses relations. More...

#include <ilserver/model.h>

Inheritance diagram for IlsUsesFixedArray< UserType, UsedType, size >:
IlsArrayRelation IlsOptionalRelation

Public Types

typedef IlsUsesFixedArray< UserType, UsedType, size > Myself
 Myself is the type of the instantiated template class.
 
typedef IlsIndexedPartial< UserType, UsedType, MyselfPartial
 This class is an intermediate class that stores array elements.
 

Public Member Functions

 IlsUsesFixedArray (UserType &user, IlsRelationId identifier=IlsDefaultRelationId, IlsActivity activity=IlsModel::GetDefaultActivity(), IlsBoolean mandatory=IlsFalse)
 Constructor. More...
 
virtual ~IlsUsesFixedArray ()
 This destructor breaks all relations stored in the array.
 
Myselfclear ()
 Sets all the array elements to zero. More...
 
virtual void cut (unsigned int rank)
 Is called when a cut is applied to the target of the relation.
 
IlsActivity getActivity () const
 Returns ILS_ACTIVE if the relation has been set as active. Otherwise, it returns ILS_INACTIVE. More...
 
virtual IlsViewedgetIdentifiedElement (const IlsString &id) const
 This virtual member function is used to retrieve an identified object from the relation. More...
 
UsedType ** getRemoved (int &)
 During a notification phase, this member function returns an array of pointers to the objects that have been removed from the array since the last notification phase. More...
 
UserType & getUser () const
 Returns the user of the relation array.
 
virtual IlsBoolean hasElement (IlsViewed &) const
 This virtual member function returns IlsTrue if the element is a target of the relation or IlsFalse otherwise.
 
Partialoperator[] (int rank)
 Returns the i-th array element. More...
 
- Public Member Functions inherited from IlsArrayRelation
int * getAdded (int &s)
 During a notification phase, this member function returns an arrays of indices corresponding to the elements that have been added to the array since the last notification phase. More...
 
IlsBoolean isModified ()
 During a notification phase, this member function returns IlsTrue if the array-relation has been modified since the last notification phase. More...
 
- Public Member Functions inherited from IlsOptionalRelation
IlsRelationId getIdentifier () const
 Returns the relation identifier.
 
IlsBoolean isMandatory ()
 Returns IlsTrue if the relation is mandatory. Otherwise, it returns IlsFalse. When a relation is mandatory, a cut applied to the target of the relation is propagated to its origin. By default, the function returns IlsFalse for n-ary relations and IlsTrue for unary relations.
 

Detailed Description

template<class UserType, class UsedType, int size>
class IlsUsesFixedArray< UserType, UsedType, size >

Fixed array of uses relations.

Template Parameters
UserTypeClass that contains the relation.
UsedTypeClass of the targets of the relation.
sizeSize of the array.

Library: server

See also
IlsEntity, IlsObject, IlsUses, IlsUsesDynamicArray, IlsUsesDynamicArray::Partial, IlsUsesList.

Constructor & Destructor Documentation

§ IlsUsesFixedArray()

template<class UserType , class UsedType , int size>
IlsUsesFixedArray< UserType, UsedType, size >::IlsUsesFixedArray ( UserType &  user,
IlsRelationId  identifier = IlsDefaultRelationId,
IlsActivity  activity = IlsModel::GetDefaultActivity(),
IlsBoolean  mandatory = IlsFalse 
)

Constructor.

Parameters
userA reference to the user object.
identifierRepresents the relation identifier and behaves like a numeric type. Its default value is IlsDefaultRelationId. It is generally used to invert relations.
activitySpecifies whether the relation is active or not. A relation is active if its modification sets off the recomputation of derived data members. The default value is the one returned by the member function IlsModel::GetDefaultActivity(), which is ILS_INACTIVE by default.
mandatorySpecifies whether the relation is mandatory. For details, see the member function isMandatory().

Member Function Documentation

§ clear()

template<class UserType , class UsedType , int size>
Myself& IlsUsesFixedArray< UserType, UsedType, size >::clear ( )

Sets all the array elements to zero.

Exceptions
IlsUpdateForbiddenIf the member function isUpdateAllowed() returns IlsFalse for the type in which the relation is declared.

§ getActivity()

template<class UserType , class UsedType , int size>
IlsActivity IlsUsesFixedArray< UserType, UsedType, size >::getActivity ( ) const

Returns ILS_ACTIVE if the relation has been set as active. Otherwise, it returns ILS_INACTIVE.

For details, see the constructor.

§ getIdentifiedElement()

template<class UserType , class UsedType , int size>
virtual IlsViewed* IlsUsesFixedArray< UserType, UsedType, size >::getIdentifiedElement ( const IlsString id) const
virtual

This virtual member function is used to retrieve an identified object from the relation.

The member function IlsViewed::getKeyIdentifier() is used to retrieve the identifier of the relation element.

Note
On all subclasses of this class, the complexity of this method is always linear, in terms of the number of elements in the relation, even for set relations.

Reimplemented from IlsViewedRel.

§ getRemoved()

template<class UserType , class UsedType , int size>
UsedType** IlsUsesFixedArray< UserType, UsedType, size >::getRemoved ( int &  )

During a notification phase, this member function returns an array of pointers to the objects that have been removed from the array since the last notification phase.

It returns an empty array if no element has been removed from the array. The argument gives the size of the array as a return value.

You must explicitly destroy this array when you no longer use it. To do so, use delete with square brackets [].

§ operator[]()

template<class UserType , class UsedType , int size>
Partial& IlsUsesFixedArray< UserType, UsedType, size >::operator[] ( int  rank)

Returns the i-th array element.

Partial can be assigned the type UsedTypeP.

Exceptions
IlsSizeViolationIf i is greater than the size specified for the array (minus 1).

© Copyright 2018, Rogue Wave Software, Inc. All Rights Reserved.
Rogue Wave is a registered trademark of Rogue Wave Software, Inc. in the United States and other countries. All other trademarks are the property of their respective owners.