Using the mix-in properties worked excellently!
All I had to use was:
abstract class ReadOnlyPropertyMixin {
ReadOnlyPropertyMixin(@JsonProperty("bean") Object bean,
@JsonProperty("name") String name,
@JsonProperty("value") Object value) {}
@JsonManagedReference @JsonProperty("bean")
abstract public Object getBean();
@JsonProperty("name")
abstract public String getName();
@JsonProperty("value")
abstract public Object getValue();
}
Thanks for a fast response, too!
Along the same lines, is there a means to access the cache of known
entities when deserializing? I have multiple references to the same managed
references in different classes. The use of BackReference and
ManagedReference doesn't seem to allow for 1-many relationships.
Kevin
On Wednesday, 17 May 2017 13:34:57 UTC-4, Tatu Saloranta wrote:
>
> On Wed, May 17, 2017 at 10:28 AM, Kevin Brightwell
> <[email protected] <javascript:>> wrote:
> > Hello,
> >
> > I'm trying to implement some serializers/deserializers for JavaFX
> properties
> > and have run into several issues:
> >
> > Jackson's annotations are not usable as the classes in JavaFX are all
> part
> > of the JDK not my own code-base
>
> This is something that mix-in annotations should help with: you can
> associate any and all annotations on 3rd party types, without
> modifying source code (or bytecode manipulation).
>
> > There is inherent cycles in properties due to "bean references" in
> > javafx.beans.property.ReadOnlyProperty#getBean() which stores a
> reference to
> > the "owning" bean
> >
> > My question is, how can I utilize repeated references to the bean and
> not
> > reserialize them similar to how @JsonBackReference and
> @JsonManagedReference
> > work without having annotations present?
>
> If it is true parent/child reference, I think using mix-in annotation
> facility would make sense here.
> Either for back/managed reference, or just ignoral.
>
> Alternatively if that does not work, you might need to drop properties
> via BeanSerializerModifier (which gets called and allows
> changing/removing/adding BeanPropertyWriter objects); but that's more
> work unless it's something as simple as just dropping specific
> property that would otherwise be included.
>
> -+ Tatu +-
>
> >
> > Thanks,
> > Kevin
> >
> > --
> > You received this message because you are subscribed to the Google
> Groups
> > "jackson-user" group.
> > To unsubscribe from this group and stop receiving emails from it, send
> an
> > email to [email protected] <javascript:>.
> > To post to this group, send email to [email protected]
> <javascript:>.
> > For more options, visit https://groups.google.com/d/optout.
>
--
You received this message because you are subscribed to the Google Groups
"jackson-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
For more options, visit https://groups.google.com/d/optout.