incubator-isis-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kevin Meyer - KMZ" <ke...@kmz.co.za>
Subject Re: Problem with non-support of Collections as arguments.
Date Sat, 09 Jul 2011 17:35:33 GMT
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 <flynni7@cs.man.ac.uk> 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.
> >> 


Mime
View raw message