class JcrValue implements javax.jcr.Value {

    @Override
    public Calendar getDate() throws ValueFormatException {
        if (value == null) return null;
        try {
            Calendar convertedValue = factories().getDateFactory().create(value).toCalendar();
            return convertedValue;
        } catch (RuntimeException error) {
            throw createValueFormatException(Calendar.class);
        }
    }

      JcrValue( ValueFactories factories,
              int type,
              Object value );
      JcrValue( ValueFactories factories,
              Value value );

}