Class RulesBuilder.PackageScope

java.lang.Object
org.cojen.boxtin.RulesBuilder.PackageScope
Enclosing class:
RulesBuilder

public static final class RulesBuilder.PackageScope extends Object
Builder of rules at the package level.
  • Method Details

    • denyAll

      public RulesBuilder.PackageScope denyAll()
      Deny access to all classes, superseding all previous rules. This action is recursive, denying access to all classes, constructors, etc.
      Returns:
      this
    • denyAll

      public RulesBuilder.PackageScope denyAll(DenyAction action)
      Deny access to all classes, superseding all previous rules. This action is recursive, denying access to all classes, constructors, etc.
      Returns:
      this
    • allowAll

      public RulesBuilder.PackageScope allowAll()
      Allow access to all classes, superseding all previous rules. This action is recursive, allowing access to all classes, constructors, etc.
      Returns:
      this
    • forClass

      public RulesBuilder.ClassScope forClass(String name)
      Define specific rules against the given class, which can supersede all previous rules.
      Parameters:
      name - simple class name (not fully qualified, use dots for inner classes)
      Returns:
      this
    • forClass

      public RulesBuilder.ClassScope forClass(Class<?> clazz)
      Define specific rules against the given class, which can supersede all previous rules.
      Parameters:
      clazz - class which must be in this package
      Returns:
      this
      Throws:
      IllegalArgumentException - if the given class isn't in this package, or if the class is unsupported: anonymous, array, hidden, local, or primitive
    • end

      End the current rules for this package and return to the module scope. More rules can be added to this scope later if desired.
    • forPackage

      public RulesBuilder.PackageScope forPackage(String name)
      End the current rules for this package and begin a new package scope. More rules can be added to the scope later if desired.
    • forModule

      public RulesBuilder.ModuleScope forModule(String name)
      End the current rules for this package and module, and begin a new module scope. More rules can be added to the scope later if desired.
      Parameters:
      name - fully qualified module name
      Throws:
      IllegalArgumentException - if the module isn't found
    • forModule

      public RulesBuilder.ModuleScope forModule(String name, String minVersion, String maxVersion)
      End the current rules for this package and module, and begin a new module scope. More rules can be added to the scope later if desired.
      Parameters:
      name - fully qualified module name
      minVersion - optional minimum module version number to support (inclusive)
      maxVersion - optional maximum module version number to support (exclusive)
      Throws:
      IllegalArgumentException - if the module isn't found, or if the version is out of bounds, or if the min/max versions provided aren't parseable