@Override public void convertValue( final ValueConversionContext conversionContext, final Object value, final JavaTypeInfo<?> type) { if (type.getRawClass() == ViewClientKey.class) { final ViewClientHandle viewClient = (ViewClientHandle) value; conversionContext.setResult(viewClient.get().getViewClientKey()); viewClient.unlock(); } else { final ViewClientKey key = (ViewClientKey) value; conversionContext.setResult( conversionContext.getUserContext().getViewClients().lockViewClient(key)); } }
@Override public void convertValue( final ValueConversionContext conversionContext, final Object value, final JavaTypeInfo<?> type) { if ((value == null) && type.isAllowNull()) { conversionContext.setResult(null); return; } final Class<?> clazz = type.getRawClass(); if (clazz == Value.class) { if (value instanceof LocalDate) { conversionContext.setResult(ValueUtils.of(((LocalDate) value).toString())); } else if (value instanceof InstantProvider) { conversionContext.setResult( ValueUtils.of((double) ((InstantProvider) value).toInstant().getEpochSeconds())); } else { conversionContext.setFail(); } } else if (clazz == LocalDate.class) { final String str = ((Value) value).getStringValue(); if (str != null) { try { conversionContext.setResult(LocalDate.parse(str)); } catch (CalendricalException e) { conversionContext.setFail(); } } else { conversionContext.setFail(); } } else if (clazz == Instant.class) { final Double epochSeconds = ((Value) value).getDoubleValue(); if (epochSeconds != null) { conversionContext.setResult(Instant.ofEpochSeconds(epochSeconds.longValue())); } else { conversionContext.setFail(); } } else if (clazz == ZonedDateTime.class) { final ZonedDateTime zdt = valueToZonedDateTime((Value) value); if (zdt != null) { conversionContext.setResult(zdt); } else { conversionContext.setFail(); } } else if (clazz == Expiry.class) { final ZonedDateTime zdt = valueToZonedDateTime((Value) value); if (zdt != null) { conversionContext.setResult(new Expiry(zdt)); } else { conversionContext.setFail(); } } else { conversionContext.setFail(); } }