Package io.github.enxign.core.seed
Class SeedAccessor<T extends Number>
java.lang.Object
io.github.enxign.core.seed.SeedAccessor<T>
- Type Parameters:
T
- 권한값의 자료형
- Direct Known Subclasses:
MenuPermission
,UserPrivileges
SeedAccessor는 권한값을 관리하는 추상 클래스입니다.
이 클래스는 다양한 자료형(long, int, short, byte 등)의 권한값을 처리할 수 있도록 설계되었습니다.
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionfinal <E extends Enum<E> & SeedMasking<T>>
voidaddEnums
(E... enums) Adds the specified enum constants to the current set used for masking logic.boolean
containsOf
(T target) 현재 seedAccess 값이 지정된 위치의 비트가 1인지 확인합니다final long
diffWithEnums
(SeedMasking<T>... enums) 지정된 enum 상수들의 비트 마스크와 현재 seedAccess의 비트 마스크의 차이를 계산합니다.현재 권한값을 반환합니다.<E extends Enum<E> & SeedMasking<T>>
E[]getIncludedEnums
(Class<E> enumClass) 지정된 enum 클래스에 포함된 모든 enum 상수를 반환합니다.final boolean
hasAllEnums
(SeedMasking<T>... enums) 지정된 enum 상수들의 비트 마스크가 현재 seedAccess에 모두 포함되어 있는지 확인합니다.final boolean
hasAnyEnums
(SeedMasking<T>... enums) 지정된 enum 상수들의 비트 마스크가 현재 seedAccess에 포함되어 있는지 확인합니다.final boolean
includedEnums
(SeedMasking<T>... enums) 지정된 enum 상수들의 비트 마스크가 현재 seedAccess에 포함되어 있는지 확인합니다.boolean
includedOf
(T target) 현재 seedAccess 값이 지정된 위치의 비트가 1인지 확인합니다abstract boolean
inspectAccess
(int position) 현재 권한값의 자료형을 반환합니다.boolean
isSameClass
(SeedAccessor<?> other) 현재 seedAccess 값이 지정된 위치의 비트가 1인지 확인합니다boolean
isSameClassAndContains
(SeedAccessor<T> other) 현재 seedAccess 값이 다른 SeedAccessor 객체의 seedAccess 값에 포함되어 있는지 확인합니다boolean
isSameClassAndIncluded
(SeedAccessor<T> other) 현재 seedAccess 값이 다른 SeedAccessor 객체의 seedAccess 값에 포함되어 있는지 확인합니다abstract void
markAccess
(int position, boolean bitValue) 현재 권한값의 특정 위치에 비트를 설정합니다.final <E extends Enum<E> & SeedMasking<T>>
voidremoveEnums
(E... enums) Removes the specified enum constants from the current set used for masking logic.void
SeedAccessor 생성자final <E extends Enum<E> & SeedMasking<T>>
voidsetEnums
(E... enums) Sets the enum constants that implementSeedMasking
and are used for masking logic.abstract String
현재 권한값을 문자열로 변환합니다.boolean[]
toArray()
현재 seedAccess 값을 long으로 변환합니다.boolean[]
현재 seedAccess 값을 long으로 변환합니다.
-
Field Details
-
seedAccess
권한값 자료형이 long, int, short, byte 중 하나로 변환하여 저장- See Also:
-
-
Constructor Details
-
SeedAccessor
SeedAccessor 생성자- Parameters:
value
- 권한값type
- 권한값의 자료형
-
-
Method Details
-
setAccess
SeedAccessor 생성자- Parameters:
inAccess
- 권한값
-
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
현재 권한값을 문자열로 변환합니다.- Returns:
- 권한값의 문자열 표현
-
containsOf
현재 seedAccess 값이 지정된 위치의 비트가 1인지 확인합니다- Parameters:
target
- 비트 위치 (0부터 시작)- Returns:
- 지정된 위치의 비트가 1이면 true, 그렇지 않으면 false
-
includedOf
현재 seedAccess 값이 지정된 위치의 비트가 1인지 확인합니다- Parameters:
target
- 비트 위치 (0부터 시작)- Returns:
- 지정된 위치의 비트가 1이면 true, 그렇지 않으면 false
-
isSameClass
현재 seedAccess 값이 지정된 위치의 비트가 1인지 확인합니다- Parameters:
other
- 다른 SeedAccessor 객체- Returns:
- 다른 SeedAccessor 객체의 seedAccess 값이 현재 seedAccess 값에 포함되어 있으면 true, 그렇지 않으면 false
-
isSameClassAndContains
현재 seedAccess 값이 다른 SeedAccessor 객체의 seedAccess 값에 포함되어 있는지 확인합니다- Parameters:
other
- 다른 SeedAccessor 객체- Returns:
- 다른 SeedAccessor 객체의 seedAccess 값이 현재 seedAccess 값에 포함되어 있으면 true, 그렇지 않으면 false
-
isSameClassAndIncluded
현재 seedAccess 값이 다른 SeedAccessor 객체의 seedAccess 값에 포함되어 있는지 확인합니다- Parameters:
other
- 다른 SeedAccessor 객체- Returns:
- 다른 SeedAccessor 객체의 seedAccess 값이 현재 seedAccess 값에 포함되어 있으면 true, 그렇지 않으면 false
-
getIncludedEnums
지정된 enum 클래스에 포함된 모든 enum 상수를 반환합니다. 이 메서드는 현재 seedAccess 값에 해당하는 비트 마스크를 사용하여 포함된 enum 상수만을 필터링합니다. Returns an array of enum constants from the specified enum class that are marked as "included" according to theSeedMasking
interface.- Type Parameters:
E
- the enum type that extendsEnum
and implementsSeedMasking
- Parameters:
enumClass
- the class object of the enum type to inspect- Returns:
- an array of enum constants that are considered included
-
toArray
현재 seedAccess 값을 long으로 변환합니다.- Parameters:
length
- 길이 (0~63 범위)- Returns:
- boolean 배열
-
toArray
public boolean[] toArray()현재 seedAccess 값을 long으로 변환합니다.- Returns:
- boolean 배열
-
setEnums
Sets the enum constants that implementSeedMasking
and are used for masking logic.- Type Parameters:
E
- the enum type that extendsEnum
and implementsSeedMasking
- Parameters:
enums
- the enum constants to be set for masking
-
addEnums
Adds the specified enum constants to the current set used for masking logic.- Type Parameters:
E
- the enum type that extendsEnum
and implementsSeedMasking
- Parameters:
enums
- the enum constants to be added for masking
-
removeEnums
Removes the specified enum constants from the current set used for masking logic.- Type Parameters:
E
- the enum type that extendsEnum
and implementsSeedMasking
- Parameters:
enums
- the enum constants to be removed from masking
-
includedEnums
지정된 enum 상수들의 비트 마스크가 현재 seedAccess에 포함되어 있는지 확인합니다. 이 메서드는 주어진 enum 상수들의 마스크 값을 합산하여 현재 seedAccess와 비교합니다. Checks whether all specifiedSeedMasking
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
지정된 enum 상수들의 비트 마스크가 현재 seedAccess에 포함되어 있는지 확인합니다. 이 메서드는 주어진 enum 상수들의 마스크 값을 합산하여 현재 seedAccess와 비교합니다.- Parameters:
enums
- the enum constants to check for inclusion- Returns:
- boolean 결과값
-
hasAllEnums
지정된 enum 상수들의 비트 마스크가 현재 seedAccess에 모두 포함되어 있는지 확인합니다. 이 메서드는 주어진 enum 상수들의 마스크 값을 합산하여 현재 seedAccess와 비교합니다.- Parameters:
enums
- the enum constants to check for inclusion- Returns:
- boolean 결과값
-
diffWithEnums
지정된 enum 상수들의 비트 마스크와 현재 seedAccess의 비트 마스크의 차이를 계산합니다. 이 메서드는 주어진 enum 상수들의 마스크 값을 합산하여 현재 seedAccess와 XOR 연산을 수행합니다.- Parameters:
enums
- the enum constants to check for inclusion- Returns:
- long 차이값
-