Class CalculatedSubjectImpl<I>

  • All Implemented Interfaces:
    ca.stellardrift.permissionsex.subject.CalculatedSubject, Consumer<ca.stellardrift.permissionsex.subject.ImmutableSubjectData>

    public class CalculatedSubjectImpl<I>
    extends Object
    implements Consumer<ca.stellardrift.permissionsex.subject.ImmutableSubjectData>, ca.stellardrift.permissionsex.subject.CalculatedSubject
    This is a holder that maintains the current subject data state
    • Method Detail

      • identifier

        public ca.stellardrift.permissionsex.subject.SubjectRef<Iidentifier()
        Specified by:
        identifier in interface ca.stellardrift.permissionsex.subject.CalculatedSubject
      • permissions

        public ca.stellardrift.permissionsex.util.NodeTree permissions​(Set<ca.stellardrift.permissionsex.context.ContextValue<?>> contexts)
        Specified by:
        permissions in interface ca.stellardrift.permissionsex.subject.CalculatedSubject
      • options

        public Map<String,​Stringoptions​(Set<ca.stellardrift.permissionsex.context.ContextValue<?>> contexts)
        Specified by:
        options in interface ca.stellardrift.permissionsex.subject.CalculatedSubject
      • parents

        public List<ca.stellardrift.permissionsex.subject.SubjectRef<?>> parents​(Set<ca.stellardrift.permissionsex.context.ContextValue<?>> contexts)
        Specified by:
        parents in interface ca.stellardrift.permissionsex.subject.CalculatedSubject
      • activeContexts

        public Set<ca.stellardrift.permissionsex.context.ContextValue<?>> activeContexts()
        Specified by:
        activeContexts in interface ca.stellardrift.permissionsex.subject.CalculatedSubject
      • usedContextValues

        public CompletableFuture<Set<ca.stellardrift.permissionsex.context.ContextValue<?>>> usedContextValues()
        Specified by:
        usedContextValues in interface ca.stellardrift.permissionsex.subject.CalculatedSubject
      • permission

        public int permission​(Set<ca.stellardrift.permissionsex.context.ContextValue<?>> contexts,
                              String permission)
        Specified by:
        permission in interface ca.stellardrift.permissionsex.subject.CalculatedSubject
      • hasPermission

        public boolean hasPermission​(Set<ca.stellardrift.permissionsex.context.ContextValue<?>> contexts,
                                     String permission)
        Specified by:
        hasPermission in interface ca.stellardrift.permissionsex.subject.CalculatedSubject
      • option

        public Optional<Stringoption​(Set<ca.stellardrift.permissionsex.context.ContextValue<?>> contexts,
                                       String option)
        Specified by:
        option in interface ca.stellardrift.permissionsex.subject.CalculatedSubject
      • optionNode

        public org.spongepowered.configurate.ConfigurationNode optionNode​(Set<ca.stellardrift.permissionsex.context.ContextValue<?>> contexts,
                                                                          String option)
        Specified by:
        optionNode in interface ca.stellardrift.permissionsex.subject.CalculatedSubject
      • data

        public ToDataSubjectRefImpl<Idata()
        Access this subject's persistent data
        Specified by:
        data in interface ca.stellardrift.permissionsex.subject.CalculatedSubject
        Returns:
        A reference to the persistent data of this subject
      • associatedObject

        public @Nullable Object associatedObject()
        Specified by:
        associatedObject in interface ca.stellardrift.permissionsex.subject.CalculatedSubject
      • registerListener

        public void registerListener​(Consumer<ca.stellardrift.permissionsex.subject.CalculatedSubject> listener)
        Specified by:
        registerListener in interface ca.stellardrift.permissionsex.subject.CalculatedSubject
      • unregisterListener

        public void unregisterListener​(Consumer<ca.stellardrift.permissionsex.subject.CalculatedSubject> listener)
        Specified by:
        unregisterListener in interface ca.stellardrift.permissionsex.subject.CalculatedSubject
      • accept

        public void accept​(ca.stellardrift.permissionsex.subject.ImmutableSubjectData newData)
        Specified by:
        accept in interface Consumer<I>