package net.glowstone.util.loot; import lombok.Data; import net.glowstone.util.ReflectionProcessor; import java.util.Optional; @Data public class ReflectiveValue<T> { private final Optional<String> line; private final Optional<T> value; public ReflectiveValue(T value) { this.value = Optional.of(value); this.line = Optional.empty(); } public ReflectiveValue(String line) { this.value = Optional.empty(); this.line = Optional.of(line); } public Object process(Object... context) { if (line.isPresent()) { return new ReflectionProcessor(line.get(), context).process(); } else { return value.get(); } } }