Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [eclipselink-users] MOXy: mapping constant values?

Hi James and Matt,

Thank you for the helpful responses.  I had guessed that I could do what
Matt suggested with the empty setter, but I wanted to keep the domain
objects as clean as possible.  Since I have four "constants" that I want to
write out to the XML file, I did not want to have four getters and four
setters that were not used for anything except integrating with EclipseLink.  

I researched the ConstantTransformer that James suggested and found some
sample code in the EclipseLink source code.  It would be nice if I can
specify this using the Workbench and therefore put it in XML.  As it is, it
seems that I can tell the Workbench to create a Transformation mapping using
ConstantTransformer, but there's no way for me to set the constant value
that I want it to use.  But this is what I ended up using because it at
least allows me to stick the glue code in a separate class and set it in the
afterLoad method.

Matt:  thanks for the update on the bugs that I reported.  I appreciate all
your hard work and quick responses to my questions.  :)

Thanks,
Polly



Matt MacIvor wrote:
> 
> Hi Polly,
> 
> EclipseLink handles read-only mappings, but not really write-only 
> mappings. The easiest thing to do here would be to set up a mapping for 
> your constant value using method-access. Then in the getter you can just 
> return your constant value, and in the setter you can do nothing. For 
> example:
> 
> public String getMyConstant() {
>   return "My Constant String";
> }
> 
> public void setMyConstant() {
>   //do nothing
> }
> 
> When using method access for a mapping it's not required by the runtime 
> that the variable actually exist on the class, but you may need to add 
> the instance variable in order to create the mapping in the workbench.
> 
> A couple of updates about other issues you were seeing:
> The default namespace issue has been fixed in the runtime, so you no 
> longer need a prefix for each namespace. You can now set a default 
> namespace on a NamespaceResolver. There's a separate bug that has been 
> created for Workbench support (236491).
> 
> The bug about error handling in JAXBContext (236525) is being looked at
> now.
> 
> Hope this helps,
> 
> -Matt
> 
> amphoras wrote:
> 
>>Hi,
>>
>>The situation I have is that there are some constant values that I want to
>>appear in my XML output document (like application=Foo).  I don't want
this
>>value to be affected by unmarshalling.  How does one map this kind of
>>"constant"?
>>
>>After playing around with EclipseLink, it looks like even though this
value
>>is supposed to be a constant, I need to create a variable for it in my
>>domain object in order to create a mapping to the proper XPath.  But then
>>what should I do?  I don't want this variable's value to change by
>>unmarshalling.  I can write an afterLoad method to reset the variable back
>>to its original value.  That way when I marshall the object, the correct
>>value will be output in the XML.  But is there a better way to do this? 
>>Does EclipseLink support one-way mappings or marshalling constants?
>>
>>Thanks!
>>--Polly
>>  
>>
> _______________________________________________
> eclipselink-users mailing list
> eclipselink-users@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/eclipselink-users
> 
> 

-- 
View this message in context: http://www.nabble.com/MOXy%3A-mapping-constant-values--tp17763195p17788115.html
Sent from the EclipseLink - Users mailing list archive at Nabble.com.



Back to the top