StoredValueDeserializer.java

  1. package com.syntifi.casper.sdk.jackson.deserializer;

  2. import com.fasterxml.jackson.databind.BeanProperty;
  3. import com.fasterxml.jackson.databind.JavaType;
  4. import com.fasterxml.jackson.databind.jsontype.TypeDeserializer;
  5. import com.fasterxml.jackson.databind.jsontype.TypeIdResolver;
  6. import com.fasterxml.jackson.databind.jsontype.impl.AsPropertyTypeDeserializer;
  7. import com.syntifi.casper.sdk.exception.NoSuchTypeException;
  8. import com.syntifi.casper.sdk.jackson.resolver.CLValueResolver;
  9. import com.syntifi.casper.sdk.model.storedvalue.StoredValue;
  10. import com.syntifi.casper.sdk.model.storedvalue.StoredValueTypeData;

  11. /**
  12.  * Core Deserializer for the CLValue property. This deserializer is used by the
  13.  * {@link CLValueResolver} to return the correct CLType object in Java depending
  14.  * on the cl_type sent over json
  15.  *
  16.  * @author Alexandre Carvalho
  17.  * @author Andre Bertolace
  18.  * @see StoredValue
  19.  * @since 0.0.1
  20.  */
  21. public class StoredValueDeserializer extends AbstractAnyOfDeserializer {

  22.     public StoredValueDeserializer(final JavaType bt, final TypeIdResolver idRes, final String typePropertyName,
  23.                                    final boolean typeIdVisible, JavaType defaultImpl) {
  24.         super(bt, idRes, typePropertyName, typeIdVisible, defaultImpl);
  25.     }

  26.     public StoredValueDeserializer(final AsPropertyTypeDeserializer src, final BeanProperty property) {
  27.         super(src, property);
  28.     }

  29.     @Override
  30.     public TypeDeserializer forProperty(final BeanProperty prop) {
  31.         return (prop == _property) ? this : new StoredValueDeserializer(this, prop);
  32.     }

  33.     @Override
  34.     protected Class<?> getClassByName(String anyOfType) throws NoSuchTypeException {
  35.         return StoredValueTypeData.getClassByName(anyOfType);
  36.     }
  37. }