I am trying to introduce the JsonCreator with extra attributes: animalType.
But it seemed the Factory constructor is never being called?

*@JsonCreator*
*public static Animal factoryDataSource(@JsonProperty("animalType")
AnimalType animalType){*
* if (animalType == AnimalType.Dog){*
* return new Dog();*
* }*
* else{*
* return new Cat();*
* }*
*}*

By the way, I am working on AS 5.3.0. Appreciated for your advice.

Kind Regards, Wenxing

On Fri, Jan 13, 2017 at 9:35 AM, wenxing zheng <wenxing.zh...@gmail.com>
wrote:

> Dear all,
>
> I have an interface to create a object, like the followings. My question
> is: *how to annotate the Animal and Dog/Cat to make sure the input
> "animal" can be the instance of Dog/Cat after de-serialization?*
>
> My expectation is that the service createAnimal can be used for all the
> sub-classes of Animal.
>
> public class Animal { // All animals have names, for our demo purposes...
>      public String name;
>      protected Animal() { }
>   }
>
>   public class Dog extends Animal {
>     public double barkVolume; // in decibels
>     public Dog() { }
>   }
>
>   public class Cat extends Animal {
>     boolean likesCream;
>     public int lives;
>     public Cat() { }
>   }
>
> @Path("/zoo")
> public interface ZooService{
>     @POST
>     @Path("/")
>     @Produces(MediaType.APPLICATION_JSON)
>     @Consumes(MediaType.APPLICATION_JSON)
>     @CSDNSecure
>     Response createAnimal(Animal animal);
> }
>
> Thanks, Wenxing
>
_______________________________________________
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to