Class SubjectType.Builder<I>
- java.lang.Object
-
- ca.stellardrift.permissionsex.subject.SubjectType.Builder<I>
-
- Type Parameters:
I- identifier type
- Enclosing class:
- SubjectType<I>
public static final class SubjectType.Builder<I> extends Object
A builder for a subject type
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description SubjectType.Builder<I>associatedObjects(Function<I,?> provider)Set a provider for associated objects.SubjectType<I>build()Create a subject type from the provided parametersSubjectType.Builder<I>deserializedBy(Function<String,I> deserializer)Attempt to deserialize an identifier from the raw inputSubjectType.Builder<I>fixedEntries(Map.Entry<I,? extends Supplier<?>>... entries)Create a subject type with a fixed set of entries.SubjectType.Builder<I>fixedEntries(Map<I,? extends Supplier<?>> entries)Create a subject type with a fixed set of entries.SubjectType.Builder<I>friendlyNameResolvedBy(Function<String,@Nullable I> coercer)Provide a function that can resolve a deserialized identifier from a 'friendly' name.SubjectType.Builder<I>serializedBy(Function<I,String> serializer)SubjectType.Builder<I>transientHasPriority(boolean priority)Whether or not this subject resolves data transient-first or persistent first.SubjectType.Builder<I>undefinedValues(Function<I,Boolean> provider)Set the provider for a fallback permissions value when an undefined value (0) is resolved.
-
-
-
Method Detail
-
transientHasPriority
public SubjectType.Builder<I> transientHasPriority(boolean priority)
Whether or not this subject resolves data transient-first or persistent first.The default value for this property is
true.- Parameters:
priority- if transient data should take priority over persistent.- Returns:
- this builder
- Since:
- 2.0.0
-
undefinedValues
public SubjectType.Builder<I> undefinedValues(Function<I,Boolean> provider)
Set the provider for a fallback permissions value when an undefined value (0) is resolved.- Parameters:
provider- the value provider- Returns:
- this builder
- Since:
- 2.0.0
-
serializedBy
public SubjectType.Builder<I> serializedBy(Function<I,String> serializer)
-
deserializedBy
public SubjectType.Builder<I> deserializedBy(Function<String,I> deserializer)
Attempt to deserialize an identifier from the raw inputOn failure, the function may throw a
InvalidIdentifierException- Parameters:
deserializer- the deserialization function- Returns:
- this builder
-
friendlyNameResolvedBy
public SubjectType.Builder<I> friendlyNameResolvedBy(Function<String,@Nullable I> coercer)
Provide a function that can resolve a deserialized identifier from a 'friendly' name.This function should never throw an
InvalidIdentifierException.- Parameters:
coercer- the coercion function- Returns:
- this builder
-
associatedObjects
public SubjectType.Builder<I> associatedObjects(Function<I,?> provider)
Set a provider for associated objects.- Parameters:
provider- the associated object provider. may return null if no associated object is available.- Returns:
- this builder
- Since:
- 2.0.0
-
fixedEntries
public SubjectType.Builder<I> fixedEntries(Map<I,? extends Supplier<?>> entries)
Create a subject type with a fixed set of entries.- Parameters:
entries- a map of identifier to associated object provider- Returns:
- this builder
- Since:
- 2.0.0
-
fixedEntries
@SafeVarargs public final SubjectType.Builder<I> fixedEntries(Map.Entry<I,? extends Supplier<?>>... entries)
Create a subject type with a fixed set of entries.- Parameters:
entries- a map of identifier to associated object provider- Returns:
- this builder
- Since:
- 2.0.0
-
build
public SubjectType<I> build()
Create a subject type from the provided parameters- Returns:
- the parameters
-
-