Skip to main content

[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


Back to the top