Subject: Re: multiple aggregates of same class
From: Pierre Bommel (bommel@cirad.fr)
Date: Mon Feb 23 2009 - 16:19:26 CET
Prezado Olivier,
In Cormas, an entity belongs to only one aggregate of a given type : An
instance of Aggregate is a spatial entity made of (connected) components
that have been aggregated because they verify a condition. For ex, a
wood can be an aggregate of entities (Cell or other type of
spatailEntity) covered by the same cover (Tree). In this case, the cell
of trees can belong to only one aggregate (Wood).
If you want that one Cell belongs to 2 or more aggregates at the same
time, you should have some layers of aggregates. For ex, you may have a
"cover" and a "landowner" points of view. One given cell may belongs to
both aggregates at the same time : a Wood (VegetationAggregate) and a
property (TenureAggregate), as illustrated in the following picture :
If you want to use an Aggregate without constraint, you shouldn't use
the predetermine accessor (theCSE at:) but create a specific accessor.
All the best,
Pierre
Olivier Barreteau a écrit :
> Hi,
>
> I would like to be able to control if a given cell is component of several
> aggregates of the same class.
>
> let's say I have cells, which may be part of aggregate entities of class Agg
> (aCell theCSE at: #Agg) provides only one instance of Agg, and not the
> collection of all instances of class Agg which contain aCell
>
> what happens then if aCell is already component of aAgg and is added to bAgg. To
> which instance (aCell theCSE at: #Agg) will be referring?
>
> best regards
>
> Olivier
> ------------------------------------------------------------------------
>
>
> Internal Virus Database is out of date.
> Checked by AVG - http://www.avg.com
> Version: 8.0.176 / Virus Database: 270.10.8/1898 - Release Date: 16/1/2009 15:09
>
>
-- -------------------------------- Pierre Bommel - CIRAD - UR Green UnB - Faculdade de tecnologia. Departamento de engenharia mecânica Campus universitário Darcy Ribeiro Asa norte Brasília - DF tel : (00 55 61) 3208 3405 cel : (00 55 61) 8122 2878 http://www.cirad.fr/ur/green --------------------------------