/** * Convenience "constructor" allowing wildcard caller {@link Enum} types. * * @param enumType type for the created converter * @return new converter */ @SuppressWarnings({ "unchecked", "rawtypes" }) public static EnumConverter<?> createEnumConverter(Class<? extends Enum<?>> enumType) { return new EnumConverter(enumType); }
private static <T extends Enum<T>> EnumValue importCoreValue(EnumConverter<T> converter, Object value) { return converter.convert(converter.getEnumType().cast(value)); }
@Override public Converter<EnumValue, ? extends Enum<?>> getConverter(JTransaction jtx) { return this.converter.reverse(); }
@Override boolean isSameAs(JField that0) { if (!super.isSameAs(that0)) return false; final JEnumField that = (JEnumField)that0; if (!this.converter.equals(that.converter)) return false; return true; }
@SuppressWarnings({ "unchecked", "rawtypes" }) JEnumField(Permazen jdb, String name, int storageId, Class<? extends Enum<?>> enumType, io.permazen.annotation.JField annotation, String description, Method getter, Method setter) { super(jdb, name, storageId, TypeToken.of(enumType.asSubclass(Enum.class)), new EnumFieldType((Class)enumType), annotation.indexed(), annotation, description, getter, setter); this.converter = EnumConverter.createEnumConverter(enumType); }
Object exportCoreValue(ExportContext context, Object value) { return this.converter.reverse().convert((EnumValue)value); }