Jasper schrieb:
Using an XMIResource, I can look up an object based on its intrinsic
ID, by calling Resource.getEObject(String uriFragment).
If I try the same with a CDOResourceImpl, that fails because, as I've
discovered, CDO uses CDOID's to encode the object's CDOID.Type...
Yes, internally CDO always uses CDOIDs to identify objects. They are
guaranteed to be unique ina whole repository (as opposed to only a
resource). You can think of it as an opaque token that is valid only in
the associated session (you even can't compare them between sessions).
You can use it in any view of the session: getObject(CDOID).
Does this mean that CDO does not honor the intrinsic ID's declared in
the model? Or if it does, how can one find an EObject based on the
intrinsic ID?
I don't think that CDOResource honors *intrinsic* IDs. But if the CDO
native apporach, i.e. CDOView.getObject(CDOID), doesn't suit your needs
there should now (HEAD) be the possibility to call
CDOResource.getURIFragment(EObject) to receive a fragment that you can
use with CDOResource.getEObject(String). The fragment will possibly not
contain the value of the ID attribute of your model but rather an
encoded CDOID.
Maybe the URI gurus want to add something?
Cheers
/Eike