Hi Iain,

It's not terribly clear to me what your actual domain classes are - 
meaning, the classes that you'd want to have available (and interact 
with) using Isis.

I can see some "application domain"-like properties in 
AnidirectoryPackage, e.g.:
public EReference getAdaptationCharacter_BelongingTo()
and
public EAttribute getAdaptationCharacter_Surname()

The references in the comments:
@see dom.anidirectory.AdaptationCharacter#getBelongingTo()
seems a more likely "domain" property, to me...

Sorry if I'm asking you to repeat yourself, but:
I suppose, to take a few steps back, what is your actual application 
domain, i.e. an outline of one or two of the classes that you *want* to 
appear in the Isis viewers, and the kind of actions you want to expose?
And where does Emfatic fit in?  In my mind, I'm imagining something 
like a UML tool, where you use a GUI to draw classes and their 
properties, then a code-generator produces the actual Java classes.
Now you want to use Isis to manage (create) and render these classes 
onto a UI?

And, to go one step more philosophical, what are actually trying to 
achieve with Isis?

Regards,
Kevin


On 9 Jul 2011 at 1:37, Iain Flynn wrote:

> Hi Dan,
> 
> An example of a generated class (and some automatically generated methods) is
> 
> public abstract class Adaptation extends Ancestor {
> 
>       @Override
>       public NotificationChain eInverseAdd(InternalEObject otherEnd, int 
> featureID, NotificationChain msgs) {
>               switch (featureID) {
>                       case AnidirectoryPackage.ADAPTATION__ADAPTATION_OF:
>                               if (adaptationOf != null)
>                                       msgs = 
> ((InternalEObject)adaptationOf).eInverseRemove(this, 
> AnidirectoryPackage.IP__ADAPTATIONS, IP.class, msgs);
>                               return basicSetAdaptationOf((IP)otherEnd, msgs);
>               }
>               return super.eInverseAdd(otherEnd, featureID, msgs);
>       }
> 
>       @Override
>       public NotificationChain eInverseRemove(InternalEObject otherEnd, int 
> featureID, NotificationChain msgs) {
>               switch (featureID) {
>                       case AnidirectoryPackage.ADAPTATION__ADAPTATION_OF:
>                               return basicSetAdaptationOf(null, msgs);
>               }
>               return super.eInverseRemove(otherEnd, featureID, msgs);
>       }
> }
> 
> As you can see, this has some references to AnidirectoryPackage.
> 
> public class AnidirectoryPackage extends EPackageImpl {
> /**
>        * Returns the meta object for the reference '{@link 
> dom.anidirectory.AdaptationCharacter#getBelongingTo <em>Belonging To</em>}'.
>        * <!-- begin-user-doc -->
>        * <!-- end-user-doc -->
>        * @return the meta object for the reference '<em>Belonging To</em>'.
>        * @see dom.anidirectory.AdaptationCharacter#getBelongingTo()
>        * @see #getAdaptationCharacter()
>        * @generated
>        */
>       public EReference getAdaptationCharacter_BelongingTo() {
>               return 
> (EReference)adaptationCharacterEClass.getEStructuralFeatures().get(0);
>       }
> 
>       /**
>        * Returns the meta object for the attribute '{@link 
> dom.anidirectory.AdaptationCharacter#getSurname <em>Surname</em>}'.
>        * <!-- begin-user-doc -->
>        * <!-- end-user-doc -->
>        * @return the meta object for the attribute '<em>Surname</em>'.
>        * @see dom.anidirectory.AdaptationCharacter#getSurname()
>        * @see #getAdaptationCharacter()
>        * @generated
>        */
>       public EAttribute getAdaptationCharacter_Surname() {
>               return 
> (EAttribute)adaptationCharacterEClass.getEStructuralFeatures().get(1);
>       }
> }
> 
> If that doesn't help, just say so.
> 
> Thanks again,
> 
> - Iain
> 
> On 8 Jul 2011, at 22:10, Dan Haywood wrote:
> 
> > Thanks for all the detail, but I can't quite visualise it. Can you paste 
> > some source files with all the different bits (ie a small test case that 
> > exhibits the problem)? 
> > 
> > Thx
> > Dan
> > 
> > Sent from my iPhone
> > 
> > On 8 Jul 2011, at 21:02, Iain Flynn <[email protected]> wrote:
> > 
> >> Hi Kevin,
> >> 
> >> The wrapper is a class containing Isis methods that has an empty subclass 
> >> of AbstractDomainObject has an inner class, an instance of which it has as 
> >> an attribute. The wrapper has the ADO methods and calls the inner object 
> >> to take care of them.
> >> 

Reply via email to