After the call, I had this idea:
1. Let's say IEntity.getEntityIds() returns an array of Objects (in Java: Object[]). These Objects can either be Strings or IAttributeValues. If the EntityId is not exposed as an attribute, it's just a String. If it is exposed as an attribute, then it's an IAttributeValue.
2. IEntity.getCanonicalEntityId() returns a single Object. As before, if the canonical EntityId is not exposed as an attribute, then the Object is a String. Otherwise it's an IAttributeValue.
3. IContext.getEntity() has two overloaded versions. One that takes a String, and one that takes an IAttributeValue.
So in total:
public Object[] IEntityId.getEntityIds(); // Objects can either be String or IAttributeValue
public Object IEntity.getCanonicalEntityId(); // Object can either be String or IAttributeValue
public IEntity IContext.getEntity(String);
public IEntity IContext.getEntity(IAttributeValue);
You don't invent something new for typing such as key-value pairs. You simply use the existing IAttributeValue interface. IAttributeValue already includes the type. And it can be complex, so you can do multi-part keys too.
All the IAttributeValue instances returned by IEntityId.getEntityIds() are guaranteed to also show up somewhere on the IEntity in an IAttribute that is a sub-attribute of higgins:synonym.
Would that work?
Markus
On Thu, Sep 18, 2008 at 4:26 PM, Paul Trevithick
<paul@xxxxxxxxxxxxxxxxx> wrote:
Yesterday I created a strawman solution that we can kick around on the call today. It is described here:
And here is Tony/Mike's use case:
Shown in a diagram below a case of using N=2 identifiers: ssn and mobile telephone number:
![]()
On 9/18/08 2:31 AM, "Anthony Nadalin" <drsecure@xxxxxxxxxx> wrote:
Yes that is true, the issue is there just 1 enitityID or multiple an what is the entityID, is it an identifier, is it a reference within a context
Anthony Nadalin | Work 512.838.0085 | Cell 512.289.4122
---09/18/2008 12:41:18 AM---yeah, but are those in the same context?
![]()
From:![]()
<jimse@xxxxxxxxxx>
![]()
To:![]()
"<higgins-dev" <higgins-dev@xxxxxxxxxxx>
![]()
Date:![]()
09/18/2008 12:41 AM
![]()
Subject:![]()
Re: [higgins-dev] My position on EntityId
yeah, but are those in the same context?
>>> Michael McIntosh <mikemci@xxxxxxxxxx> 09/17/08 12:14 PM >>>
higgins-dev-bounces@xxxxxxxxxxx wrote on 09/17/2008 10:26:05 AM:
>
> Please respond to "Higgins \(Trust Framework\) Project developer discussions"
>
> I have added my thoughts here:
> http://wiki.eclipse.org/EntityId_Requirements <http://wiki.eclipse.org/EntityId_Requirements>
>
> Here is a summary of my position (expressed in more detail on the wiki page):
> I am open to supporting the "moral equivalent" of 0..n EntityIds
> that Tony desires but I need someone to present at least one real-
> world use-case to motivate it (I've not been able to come up with one).
> By "moral equivalent" I mean:
> 0..1 "canonical" EntityId. This EntityId is unique AT LEAST within
> the scope of its containing Context. This EntityId MUST be immutable.
> 0..n synonyms. These are represented as 0..n values of a new defined
> Attribute type called something like higgins:synonym
In Entity that represents me, I can have AT LEAST the following EntityIds:
0: SSN:123-45-6789
1: IBM Employee Id: ABCDEF_______________________________________________
higgins-dev mailing list
higgins-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/higgins-dev
_______________________________________________
higgins-dev mailing list
higgins-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/higgins-dev