[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
RE: [dali-dev] Manipulate java resources via resource model
|
Hi Karen,
Thabk you for the answer and the suggestion. I will follow it, because
it looks more clear in the code. Just another question about this stuff:
How I could annotate the inverse side of bidirectional relation? I have
to annotate it with attribute @OneToOne(mappedBy="owner_side_attr_name")
and would be fine if this is editable via API?
Best Regards,
Dimiter
-----Original Message-----
From: dali-dev-bounces@xxxxxxxxxxx [mailto:dali-dev-bounces@xxxxxxxxxxx]
On Behalf Of Karen Moore
Sent: Wednesday, July 23, 2008 10:14 PM
To: General Dali EJB ORM developer discussion.
Subject: Re: [dali-dev] Manipulate java resources via resource model
Hi Dimiter,
There is not a way to create the attribute using our API, you will have
to continue using the JDT API and then accessing the newly created
JavaPersistentAttribute.
Using JavaPersistentAtribute.setSpecifiedMappingKey(String) is the
correct approach for what you are doing. There is an interface
org.eclipse.jpt.core.MappingKeys that has static strings for all the
mappings types. So you could call
setSpecifiedMappingKey(MappingKeys.ONE_TO_ONE_ATTRIBUTE_MAPPING_KEY) if
you wanted to, obviously just a matter of preference.
Karen
Dimitrov, Dimiter wrote:
> Hello Brian,
> Thank you for the attention and for the question. I'm doing the
> following: In an entity I'm creating attribute(via JDT API). I do
> this, obtaining (org.eclipse.jdt.internal.core)CompilationUnit and
> IType.createField(...). After the save, the change is propagated to
> the model. On the created JavaPersistentAttribute I set annotation
> @OneToOne via method
>
setSpecifiedMappingKey(JavaOneToOneMappingProvider.instance().getKey()).
> Could you comment my approach? Is there way to create attribute via
> context API? If I'm in mistake, could you show me the proper way to
> create attribute in some JavaPersistentType and to annotate as
> OneToOne unidirectional (@OneToOne) via context (or via resource API)
> Thank you in advance.
> Best Regards,
> Dimiter
>
------------------------------------------------------------------------
> *From:* dali-dev-bounces@xxxxxxxxxxx
> [mailto:dali-dev-bounces@xxxxxxxxxxx] *On Behalf Of *Brian Vosburgh
> *Sent:* Tuesday, July 22, 2008 8:07 PM
> *To:* General Dali EJB ORM developer discussion.
> *Subject:* Re: [dali-dev] Manipulate java resources via resource model
>
> Dimiter,
>
> changes to the model are propagated directly to the source. If the
> modified file is also open in an editor in the UI, the modified file
> will be changed but /not/ saved. The user will need to save the file.
>
> If you are changing the model outside the UI thread you will need to
> configure the JPA project to make modifications on the UI thread as
> necessary. See
>
JpaProject#setThreadLocalModifySharedDocumentCommandExecutor(CommandExec
utor).
>
> Also note the model is "updated" asynchronously with every change. If
> you want these updates to happen synchronously, you will need to set
> the JPA project's "updater". See JpaProject#setUpdater(Updater). Note
> the comments in SynchronousJpaProjectUpdater.
>
> All of this is mildly complicated; so I have to ask: What are you
> trying to do? If you are manipulating JPA annotations, you could use
> the "context" model. Is there a reason you want to use the "resource"
> model?
>
> Brian
>
> Dimitrov, Dimiter wrote:
>
>> Hi Brian,
>> I will take a look and I will ask you if something is not clear to
>> me. Just another question at this stage. When I change the model,
>> whether change will be propagated directly in the source, or I have
>> to save the explicitly. If I have to do it explicitly, is there
>> special API provided from DALI, or I have to use JDT API?
>> Best Regards,
>> Dimiter
>>
------------------------------------------------------------------------
>> *From:* dali-dev-bounces@xxxxxxxxxxx
>> [mailto:dali-dev-bounces@xxxxxxxxxxx] *On Behalf Of *Brian Vosburgh
>> *Sent:* Thursday, July 17, 2008 9:11 PM
>> *To:* General Dali EJB ORM developer discussion.
>> *Subject:* Re: [dali-dev] Manipulate java resources via resource
model
>>
>> Yes, Member is the interface Dali uses to manipulate annotations in
>> Java source code.
>> We use implementations of AnnotationAdapter and
>> DeclarationAnnotationAdapter to
>> add, remove, and change annotations on a member (type, field, or
method).
>> These adapters are public while the implementations are still
>> internal; but you can look
>> at the implementations to see how we manipulate annotations
ourselves.
>>
>> Ask, if something is not clear, and I will try to remember how it
>> works. :)
>>
>> Brian
>>
>> Dimitrov, Dimiter wrote:
>>
>>> Hello,
>>>
>>> In our work with new JPA model, we have necessity to manipulate java
>>> entity class, adding new fields and annotations. We could do this
>>> via JDT API, but I'm wondering whether will be possible to do this
>>> via java resource model? I mean if we have reference to
>>> JavaResourcePersistentType (respectively to its fields and
>>> properties) could we manipulate them? For instance is it possible to
>>> add relation one to one on attribute with name attribute? I hope
>>> that the presented API provide such opportunities, because I noticed
>>> method getMember() (for type, field or property), which returns
>>> Member. From own side Member (in accordance with Java Doc) offers
>>> manipulating of annotations on members. Is this manipulation
>>> provides modifying (reflected in the code), or it is read-only?
>>>
>>> Any help, information or hint will be appreciated.
>>>
>>
>>----------------------------------------------------------------------
--
>>
>>_______________________________________________
>>dali-dev mailing list
>>dali-dev@xxxxxxxxxxx
>>https://dev.eclipse.org/mailman/listinfo/dali-dev
>>
>>
>
>-----------------------------------------------------------------------
-
>
>_______________________________________________
>dali-dev mailing list
>dali-dev@xxxxxxxxxxx
>https://dev.eclipse.org/mailman/listinfo/dali-dev
>
>
_______________________________________________
dali-dev mailing list
dali-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/dali-dev