public ReflectionProvider(T target) {
try {
ReflectFactory reflectFactory = CoreRegistry.get(ReflectFactory.class);
CopyStrategyLibrary copyStrategies = CoreRegistry.get(CopyStrategyLibrary.class);
ClassMetadata<T, ?> classMetadata = new DefaultClassMetadata<>(new SimpleUri(), (Class<T>) target.getClass(), reflectFactory, copyStrategies);
for (Field field : getAllFields(target.getClass(), and(withAnnotation(EditorRange.class), or(withType(Float.TYPE), withType(Float.class))))) {
EditorRange range = field.getAnnotation(EditorRange.class);
FieldMetadata<T, Float> fieldMetadata = (FieldMetadata<T, Float>) classMetadata.getField(field.getName());
Property property = new FloatProperty(target, fieldMetadata, range.min(), range.max());
properties.add(property);