Class SeedAccessor<T extends Number>

java.lang.Object
io.github.enxign.core.seed.SeedAccessor<T>
Type Parameters:
T - 권한값의 자료형
Direct Known Subclasses:
MenuPermission, UserPrivileges

public abstract class SeedAccessor<T extends Number> extends Object
SeedAccessor는 권한값을 관리하는 추상 클래스입니다. 이 클래스는 다양한 자료형(long, int, short, byte 등)의 권한값을 처리할 수 있도록 설계되었습니다.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected T
    권한값 자료형이 long, int, short, byte 중 하나로 변환하여 저장
  • Constructor Summary

    Constructors
    Constructor
    Description
    SeedAccessor(T value, Class<T> type)
    SeedAccessor 생성자
  • Method Summary

    Modifier and Type
    Method
    Description
    final <E extends Enum<E> & SeedMasking<T>>
    void
    addEnums(E... enums)
    Adds the specified enum constants to the current set used for masking logic.
    boolean
    containsOf(T target)
    현재 seedAccess 값이 지정된 위치의 비트가 1인지 확인합니다
    final long
    지정된 enum 상수들의 비트 마스크와 현재 seedAccess의 비트 마스크의 차이를 계산합니다.
    현재 권한값을 반환합니다.
    <E extends Enum<E> & SeedMasking<T>>
    E[]
    getIncludedEnums(Class<E> enumClass)
    지정된 enum 클래스에 포함된 모든 enum 상수를 반환합니다.
    final boolean
    지정된 enum 상수들의 비트 마스크가 현재 seedAccess에 모두 포함되어 있는지 확인합니다.
    final boolean
    지정된 enum 상수들의 비트 마스크가 현재 seedAccess에 포함되어 있는지 확인합니다.
    final boolean
    지정된 enum 상수들의 비트 마스크가 현재 seedAccess에 포함되어 있는지 확인합니다.
    boolean
    includedOf(T target)
    현재 seedAccess 값이 지정된 위치의 비트가 1인지 확인합니다
    abstract boolean
    inspectAccess(int position)
    현재 권한값의 자료형을 반환합니다.
    boolean
    현재 seedAccess 값이 지정된 위치의 비트가 1인지 확인합니다
    boolean
    현재 seedAccess 값이 다른 SeedAccessor 객체의 seedAccess 값에 포함되어 있는지 확인합니다
    boolean
    현재 seedAccess 값이 다른 SeedAccessor 객체의 seedAccess 값에 포함되어 있는지 확인합니다
    abstract void
    markAccess(int position, boolean bitValue)
    현재 권한값의 특정 위치에 비트를 설정합니다.
    final <E extends Enum<E> & SeedMasking<T>>
    void
    removeEnums(E... enums)
    Removes the specified enum constants from the current set used for masking logic.
    void
    setAccess(T inAccess)
    SeedAccessor 생성자
    final <E extends Enum<E> & SeedMasking<T>>
    void
    setEnums(E... enums)
    Sets the enum constants that implement SeedMasking and are used for masking logic.
    abstract String
    현재 권한값을 문자열로 변환합니다.
    boolean[]
    현재 seedAccess 값을 long으로 변환합니다.
    boolean[]
    toArray(Integer length)
    현재 seedAccess 값을 long으로 변환합니다.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • seedAccess

      protected T extends Number seedAccess
      권한값 자료형이 long, int, short, byte 중 하나로 변환하여 저장
      See Also:
  • Constructor Details

    • SeedAccessor

      public SeedAccessor(T value, Class<T> type)
      SeedAccessor 생성자
      Parameters:
      value - 권한값
      type - 권한값의 자료형
  • Method Details

    • setAccess

      public void setAccess(T inAccess)
      SeedAccessor 생성자
      Parameters:
      inAccess - 권한값
    • getAccess

      public T getAccess()
      현재 권한값을 반환합니다.
      Returns:
      현재 권한값
    • inspectAccess

      public abstract boolean inspectAccess(int position)
      현재 권한값의 자료형을 반환합니다.
      Parameters:
      position - 권한 비트맵 위치 (0부터 시작)
      Returns:
      boolean 권한값의 자료형
    • markAccess

      public abstract void markAccess(int position, boolean bitValue)
      현재 권한값의 특정 위치에 비트를 설정합니다.
      Parameters:
      position - 권한 비트맵 위치 (0부터 시작)
      bitValue - true이면 해당 위치의 비트를 1로 설정, false이면 0으로 설정
    • toAccessString

      public abstract String toAccessString()
      현재 권한값을 문자열로 변환합니다.
      Returns:
      권한값의 문자열 표현
    • containsOf

      public boolean containsOf(T target)
      현재 seedAccess 값이 지정된 위치의 비트가 1인지 확인합니다
      Parameters:
      target - 비트 위치 (0부터 시작)
      Returns:
      지정된 위치의 비트가 1이면 true, 그렇지 않으면 false
    • includedOf

      public boolean includedOf(T target)
      현재 seedAccess 값이 지정된 위치의 비트가 1인지 확인합니다
      Parameters:
      target - 비트 위치 (0부터 시작)
      Returns:
      지정된 위치의 비트가 1이면 true, 그렇지 않으면 false
    • isSameClass

      public boolean isSameClass(SeedAccessor<?> other)
      현재 seedAccess 값이 지정된 위치의 비트가 1인지 확인합니다
      Parameters:
      other - 다른 SeedAccessor 객체
      Returns:
      다른 SeedAccessor 객체의 seedAccess 값이 현재 seedAccess 값에 포함되어 있으면 true, 그렇지 않으면 false
    • isSameClassAndContains

      public boolean isSameClassAndContains(SeedAccessor<T> other)
      현재 seedAccess 값이 다른 SeedAccessor 객체의 seedAccess 값에 포함되어 있는지 확인합니다
      Parameters:
      other - 다른 SeedAccessor 객체
      Returns:
      다른 SeedAccessor 객체의 seedAccess 값이 현재 seedAccess 값에 포함되어 있으면 true, 그렇지 않으면 false
    • isSameClassAndIncluded

      public boolean isSameClassAndIncluded(SeedAccessor<T> other)
      현재 seedAccess 값이 다른 SeedAccessor 객체의 seedAccess 값에 포함되어 있는지 확인합니다
      Parameters:
      other - 다른 SeedAccessor 객체
      Returns:
      다른 SeedAccessor 객체의 seedAccess 값이 현재 seedAccess 값에 포함되어 있으면 true, 그렇지 않으면 false
    • getIncludedEnums

      public <E extends Enum<E> & SeedMasking<T>> E[] getIncludedEnums(Class<E> enumClass)
      지정된 enum 클래스에 포함된 모든 enum 상수를 반환합니다. 이 메서드는 현재 seedAccess 값에 해당하는 비트 마스크를 사용하여 포함된 enum 상수만을 필터링합니다. Returns an array of enum constants from the specified enum class that are marked as "included" according to the SeedMasking interface.
      Type Parameters:
      E - the enum type that extends Enum and implements SeedMasking
      Parameters:
      enumClass - the class object of the enum type to inspect
      Returns:
      an array of enum constants that are considered included
    • toArray

      public boolean[] toArray(Integer length)
      현재 seedAccess 값을 long으로 변환합니다.
      Parameters:
      length - 길이 (0~63 범위)
      Returns:
      boolean 배열
    • toArray

      public boolean[] toArray()
      현재 seedAccess 값을 long으로 변환합니다.
      Returns:
      boolean 배열
    • setEnums

      @SafeVarargs public final <E extends Enum<E> & SeedMasking<T>> void setEnums(E... enums)
      Sets the enum constants that implement SeedMasking and are used for masking logic.
      Type Parameters:
      E - the enum type that extends Enum and implements SeedMasking
      Parameters:
      enums - the enum constants to be set for masking
    • addEnums

      @SafeVarargs public final <E extends Enum<E> & SeedMasking<T>> void addEnums(E... enums)
      Adds the specified enum constants to the current set used for masking logic.
      Type Parameters:
      E - the enum type that extends Enum and implements SeedMasking
      Parameters:
      enums - the enum constants to be added for masking
    • removeEnums

      @SafeVarargs public final <E extends Enum<E> & SeedMasking<T>> void removeEnums(E... enums)
      Removes the specified enum constants from the current set used for masking logic.
      Type Parameters:
      E - the enum type that extends Enum and implements SeedMasking
      Parameters:
      enums - the enum constants to be removed from masking
    • includedEnums

      @SafeVarargs public final boolean includedEnums(SeedMasking<T>... enums)
      지정된 enum 상수들의 비트 마스크가 현재 seedAccess에 포함되어 있는지 확인합니다. 이 메서드는 주어진 enum 상수들의 마스크 값을 합산하여 현재 seedAccess와 비교합니다. Checks whether all specified SeedMasking enum constants are currently included in the masking configuration.
      Parameters:
      enums - the enum constants to check for inclusion
      Returns:
      true if all specified enums are included; false otherwise
    • hasAnyEnums

      @SafeVarargs public final boolean hasAnyEnums(SeedMasking<T>... enums)
      지정된 enum 상수들의 비트 마스크가 현재 seedAccess에 포함되어 있는지 확인합니다. 이 메서드는 주어진 enum 상수들의 마스크 값을 합산하여 현재 seedAccess와 비교합니다.
      Parameters:
      enums - the enum constants to check for inclusion
      Returns:
      boolean 결과값
    • hasAllEnums

      @SafeVarargs public final boolean hasAllEnums(SeedMasking<T>... enums)
      지정된 enum 상수들의 비트 마스크가 현재 seedAccess에 모두 포함되어 있는지 확인합니다. 이 메서드는 주어진 enum 상수들의 마스크 값을 합산하여 현재 seedAccess와 비교합니다.
      Parameters:
      enums - the enum constants to check for inclusion
      Returns:
      boolean 결과값
    • diffWithEnums

      @SafeVarargs public final long diffWithEnums(SeedMasking<T>... enums)
      지정된 enum 상수들의 비트 마스크와 현재 seedAccess의 비트 마스크의 차이를 계산합니다. 이 메서드는 주어진 enum 상수들의 마스크 값을 합산하여 현재 seedAccess와 XOR 연산을 수행합니다.
      Parameters:
      enums - the enum constants to check for inclusion
      Returns:
      long 차이값