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(CommandExecutor).
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
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
|