57 class r_Collection :
public r_Object
59 friend class r_Iterator<T>;
63 r_Collection() throw(r_Error);
65 r_Collection( const r_Collection<T>& collection ) throw(r_Error);
67 virtual ~r_Collection();
70 virtual
void r_deactivate();
73 inline
unsigned long cardinality() const;
76 inline
int is_empty() const;
78 inline
int is_ordered() const;
80 inline
int allows_duplicates() const;
83 int contains_element( const T& element ) const;
85 virtual
void insert_element( const T& element,
int no_modification = 0 );
91 virtual
void remove_element( const T& element );
97 const r_Collection<T>& operator=( const r_Collection<T>& collection );
100 r_Iterator<T> create_iterator();
103 const
r_Type* get_element_type_schema();
110 virtual
void insert_obj_into_db();
113 virtual
void insert_obj_into_db( const
char* )
122 virtual void update_obj_in_db();
133 r_Collection(
const void* node1 );
135 inline void* get_internal_representation()
const;
137 void set_internal_representation(
const void* node1 );
155 r_Iterator<T> create_removed_iterator();
159 CNode* removed_objects;
170 int allowsDuplicates;
203 void add_node( CNode* &root,
const T& element );
205 int remove_node( CNode* &root,
const T& element );
207 void remove_all_nodes( CNode* &root );
209 void init_node_list( CNode* &root );
218 #include "rasodmg/collection.icc"
220 #ifdef EARLY_TEMPLATE
221 #ifdef __EXECUTABLE__
223 #include "collection.cpp"
225 #include "collection.cc"