package me.lortseam.completeconfig.data; import lombok.AccessLevel; import lombok.Getter; import lombok.RequiredArgsConstructor; import org.apache.commons.lang3.ClassUtils; @RequiredArgsConstructor(access = AccessLevel.PACKAGE) public class Extras { private final Entry entry; @Getter private Bounds bounds; @Getter private EnumOptions enumOptions; void setBounds(N min, N max, boolean slider) { if (!ClassUtils.isAssignable(entry.getType(), min.getClass()) || !ClassUtils.isAssignable(entry.getType(), max.getClass())) { throw new IllegalArgumentException(); } bounds = new Bounds<>((T) min, (T) max, slider); } void setEnumOptions(EnumOptions.DisplayType displayType) { enumOptions = new EnumOptions(entry, displayType); } }