Extras.java 840 B

12345678910111213141516171819202122232425262728
  1. package me.lortseam.completeconfig.data;
  2. import lombok.AccessLevel;
  3. import lombok.Getter;
  4. import lombok.RequiredArgsConstructor;
  5. import org.apache.commons.lang3.ClassUtils;
  6. @RequiredArgsConstructor(access = AccessLevel.PACKAGE)
  7. public class Extras<T> {
  8. private final Entry<T> entry;
  9. @Getter
  10. private Bounds<T> bounds;
  11. @Getter
  12. private EnumOptions enumOptions;
  13. <N extends Number> void setBounds(N min, N max, boolean slider) {
  14. if (!ClassUtils.isAssignable(entry.getType(), min.getClass()) || !ClassUtils.isAssignable(entry.getType(), max.getClass())) {
  15. throw new IllegalArgumentException();
  16. }
  17. bounds = new Bounds<>((T) min, (T) max, slider);
  18. }
  19. void setEnumOptions(EnumOptions.DisplayType displayType) {
  20. enumOptions = new EnumOptions(entry, displayType);
  21. }
  22. }