diff --git a/build.gradle b/build.gradle index 216f392..17259a9 100644 --- a/build.gradle +++ b/build.gradle @@ -1,6 +1,7 @@ plugins { id 'java' id 'com.github.johnrengelman.shadow' version '7.1.2' + id 'maven-publish' } group = 'io.github.simplex' @@ -20,11 +21,12 @@ repositories { dependencies { compileOnly 'io.papermc.paper:paper-api:1.19-R0.1-SNAPSHOT' - shadow 'io.projectreactor:reactor-core:3.4.19' + shadow 'io.projectreactor:reactor-core:3.4.24' } shadowJar { - relocate ('reactor', "io.github.simplex.reactor") + relocate('reactor', "io.github.simplex.reactor") + exclude('io.github.simplexdevelopment.impl') } def targetJavaVersion = 17 @@ -35,6 +37,8 @@ java { if (JavaVersion.current() < javaVersion) { toolchain.languageVersion = JavaLanguageVersion.of(targetJavaVersion) } + withSourcesJar() + withJavadocJar() } tasks.withType(JavaCompile).configureEach { @@ -51,3 +55,16 @@ processResources { expand props } } + +publishing { + publications { + mavenJava(MavenPublication) { + from components.java + } + } +} + +wrapper { + gradleVersion = '7.5.1' + distributionType = Wrapper.DistributionType.ALL +} \ No newline at end of file diff --git a/build/docs/javadoc/allclasses-index.html b/build/docs/javadoc/allclasses-index.html new file mode 100644 index 0000000..a8131c9 --- /dev/null +++ b/build/docs/javadoc/allclasses-index.html @@ -0,0 +1,100 @@ + + + + +All Classes and Interfaces (SimplexSS 1.0.0 API) + + + + + + + + + + + + + + +
+ +
+
+
+

All Classes and Interfaces

+
+
+
+
+
+
Class
+
Description
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+
SchedulingSystem<T extends org.bukkit.plugin.java.JavaPlugin>
+
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+
+
+
+
+
+
+ + diff --git a/build/docs/javadoc/allpackages-index.html b/build/docs/javadoc/allpackages-index.html new file mode 100644 index 0000000..7dd0f1a --- /dev/null +++ b/build/docs/javadoc/allpackages-index.html @@ -0,0 +1,68 @@ + + + + +All Packages (SimplexSS 1.0.0 API) + + + + + + + + + + + + + + +
+ +
+
+
+

All Packages

+
+
Package Summary
+ +
+
+
+ + diff --git a/build/docs/javadoc/deprecated-list.html b/build/docs/javadoc/deprecated-list.html new file mode 100644 index 0000000..79f8cab --- /dev/null +++ b/build/docs/javadoc/deprecated-list.html @@ -0,0 +1,74 @@ + + + + +Deprecated List (SimplexSS 1.0.0 API) + + + + + + + + + + + + + + +
+ +
+
+
+

Deprecated API

+

Contents

+ +
+ +
+
+
+ + diff --git a/build/docs/javadoc/element-list b/build/docs/javadoc/element-list new file mode 100644 index 0000000..2a57251 --- /dev/null +++ b/build/docs/javadoc/element-list @@ -0,0 +1,3 @@ +io.github.simplexdevelopment.api +io.github.simplexdevelopment.impl +io.github.simplexdevelopment.scheduler diff --git a/build/docs/javadoc/help-doc.html b/build/docs/javadoc/help-doc.html new file mode 100644 index 0000000..936537a --- /dev/null +++ b/build/docs/javadoc/help-doc.html @@ -0,0 +1,186 @@ + + + + +API Help (SimplexSS 1.0.0 API) + + + + + + + + + + + + + + +
+ +
+
+

JavaDoc Help

+ +
+
+

Navigation

+Starting from the Overview page, you can browse the documentation using the links in each page, and in the navigation bar at the top of each page. The Index and Search box allow you to navigate to specific declarations and summary pages, including: All Packages, All Classes and Interfaces + +
+
+
+

Kinds of Pages

+The following sections describe the different kinds of pages in this collection. +
+

Overview

+

The Overview page is the front page of this API document and provides a list of all packages with a summary for each. This page can also contain an overall description of the set of packages.

+
+
+

Package

+

Each package has a page that contains a list of its classes and interfaces, with a summary for each. These pages may contain the following categories:

+
    +
  • Interfaces
  • +
  • Classes
  • +
  • Enum Classes
  • +
  • Exceptions
  • +
  • Errors
  • +
  • Annotation Interfaces
  • +
+
+
+

Class or Interface

+

Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a declaration and description, member summary tables, and detailed member descriptions. Entries in each of these sections are omitted if they are empty or not applicable.

+
    +
  • Class Inheritance Diagram
  • +
  • Direct Subclasses
  • +
  • All Known Subinterfaces
  • +
  • All Known Implementing Classes
  • +
  • Class or Interface Declaration
  • +
  • Class or Interface Description
  • +
+
+
    +
  • Nested Class Summary
  • +
  • Enum Constant Summary
  • +
  • Field Summary
  • +
  • Property Summary
  • +
  • Constructor Summary
  • +
  • Method Summary
  • +
  • Required Element Summary
  • +
  • Optional Element Summary
  • +
+
+
    +
  • Enum Constant Details
  • +
  • Field Details
  • +
  • Property Details
  • +
  • Constructor Details
  • +
  • Method Details
  • +
  • Element Details
  • +
+

Note: Annotation interfaces have required and optional elements, but not methods. Only enum classes have enum constants. The components of a record class are displayed as part of the declaration of the record class. Properties are a feature of JavaFX.

+

The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.

+
+
+

Other Files

+

Packages and modules may contain pages with additional information related to the declarations nearby.

+
+
+

Tree (Class Hierarchy)

+

There is a Class Hierarchy page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. Classes are organized by inheritance structure starting with java.lang.Object. Interfaces do not inherit from java.lang.Object.

+
    +
  • When viewing the Overview page, clicking on TREE displays the hierarchy for all packages.
  • +
  • When viewing a particular package, class or interface page, clicking on TREE displays the hierarchy for only that package.
  • +
+
+
+

Deprecated API

+

The Deprecated API page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to shortcomings, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.

+
+
+

Serialized Form

+

Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to those who implement rather than use the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See Also" section of the class description.

+
+
+

All Packages

+

The All Packages page contains an alphabetic index of all packages contained in the documentation.

+
+
+

All Classes and Interfaces

+

The All Classes and Interfaces page contains an alphabetic index of all classes and interfaces contained in the documentation, including annotation interfaces, enum classes, and record classes.

+
+
+

Index

+

The Index contains an alphabetic index of all classes, interfaces, constructors, methods, and fields in the documentation, as well as summary pages such as All Packages, All Classes and Interfaces.

+
+
+
+This help file applies to API documentation generated by the standard doclet.
+
+
+ + diff --git a/build/docs/javadoc/index-all.html b/build/docs/javadoc/index-all.html new file mode 100644 index 0000000..b02f03a --- /dev/null +++ b/build/docs/javadoc/index-all.html @@ -0,0 +1,391 @@ + + + + +Index (SimplexSS 1.0.0 API) + + + + + + + + + + + + + + +
+ +
+
+
+

Index

+
+A B C D E F G H I L M O P Q R S T 
All Classes and Interfaces|All Packages|Serialized Form +

A

+
+
addToExistingPool(ServicePool, IService...) - Method in class io.github.simplexdevelopment.scheduler.ServiceManager
+
 
+
+

B

+
+
BukkitDisposable - Record Class in io.github.simplexdevelopment.scheduler
+
 
+
BukkitDisposable(BukkitTask) - Constructor for record class io.github.simplexdevelopment.scheduler.BukkitDisposable
+
+
Creates an instance of a BukkitDisposable record class.
+
+
+

C

+
+
Context<S> - Interface in io.github.simplexdevelopment.api
+
 
+
contextCollection() - Method in interface io.github.simplexdevelopment.api.Context
+
 
+
contextCollection() - Method in class io.github.simplexdevelopment.impl.PoolHolder
+
 
+
createServicePool(String, IService...) - Method in class io.github.simplexdevelopment.scheduler.ServiceManager
+
 
+
createWorker() - Method in class io.github.simplexdevelopment.scheduler.ReactorBukkitScheduler
+
+
A new Scheduler.Worker.
+
+
+

D

+
+
dispose() - Method in record class io.github.simplexdevelopment.scheduler.BukkitDisposable
+
+
Disposes of the task upstream on the Bukkit scheduler.
+
+
dispose() - Method in class io.github.simplexdevelopment.scheduler.ReactorBukkitScheduler
+
+
Deprecated.
+
+
+

E

+
+
emptyServicePool(String, boolean) - Method in class io.github.simplexdevelopment.scheduler.ServiceManager
+
 
+
equals(Object) - Method in record class io.github.simplexdevelopment.scheduler.BukkitDisposable
+
+
Indicates whether some other object is "equal to" this one.
+
+
ExecutableService - Class in io.github.simplexdevelopment.scheduler
+
 
+
ExecutableService(String) - Constructor for class io.github.simplexdevelopment.scheduler.ExecutableService
+
+
Creates a new instance of an executable service.
+
+
ExecutableService(ServicePool, String) - Constructor for class io.github.simplexdevelopment.scheduler.ExecutableService
+
+
Creates a new instance of an executable service.
+
+
ExecutableService(ServicePool, String, Long, Long, Boolean) - Constructor for class io.github.simplexdevelopment.scheduler.ExecutableService
+
+
Creates a new instance of an executable service.
+
+
ExecutableService(ServicePool, String, Long) - Constructor for class io.github.simplexdevelopment.scheduler.ExecutableService
+
+
Creates a new instance of an executable service.
+
+
ExecutableService(ServicePool, String, Long, Long, Boolean, Boolean) - Constructor for class io.github.simplexdevelopment.scheduler.ExecutableService
+
+
Creates a new instance of an executable service.
+
+
+

F

+
+
fluxFromCollection() - Method in interface io.github.simplexdevelopment.api.Context
+
 
+
forceStart(IService) - Method in interface io.github.simplexdevelopment.api.ISchedule
+
 
+
forceStart(IService) - Method in class io.github.simplexdevelopment.scheduler.SchedulingSystem
+
 
+
forceStop(IService) - Method in interface io.github.simplexdevelopment.api.ISchedule
+
 
+
forceStop(IService) - Method in class io.github.simplexdevelopment.scheduler.SchedulingSystem
+
 
+
+

G

+
+
getAssociatedServicePool(IService) - Method in class io.github.simplexdevelopment.scheduler.ServiceManager
+
 
+
getAssociatedServices() - Method in class io.github.simplexdevelopment.scheduler.ServicePool
+
 
+
getContext() - Method in interface io.github.simplexdevelopment.api.Context
+
 
+
getContext() - Method in class io.github.simplexdevelopment.impl.PoolHolder
+
 
+
getDelay() - Method in interface io.github.simplexdevelopment.api.IService
+
 
+
getDelay() - Method in class io.github.simplexdevelopment.scheduler.ExecutableService
+
 
+
getMainScheduler() - Method in class io.github.simplexdevelopment.scheduler.SchedulingSystem
+
 
+
getName() - Method in interface io.github.simplexdevelopment.api.Identifier
+
 
+
getName() - Method in class io.github.simplexdevelopment.scheduler.ExecutableService
+
 
+
getNumericalId() - Method in interface io.github.simplexdevelopment.api.Identifier
+
 
+
getParentPool() - Method in interface io.github.simplexdevelopment.api.IService
+
 
+
getParentPool() - Method in class io.github.simplexdevelopment.scheduler.ExecutableService
+
 
+
getPeriod() - Method in interface io.github.simplexdevelopment.api.IService
+
 
+
getPeriod() - Method in class io.github.simplexdevelopment.scheduler.ExecutableService
+
 
+
getPlugin() - Method in interface io.github.simplexdevelopment.api.IService
+
 
+
getPlugin() - Method in class io.github.simplexdevelopment.impl.ServiceImpl
+
 
+
getProvidingPlugin() - Method in class io.github.simplexdevelopment.scheduler.SchedulingSystem
+
 
+
getScheduler() - Method in class io.github.simplexdevelopment.impl.Main
+
 
+
getScheduler() - Method in class io.github.simplexdevelopment.scheduler.ServicePool
+
 
+
getService(String) - Method in class io.github.simplexdevelopment.scheduler.ServicePool
+
 
+
getServiceManager() - Method in interface io.github.simplexdevelopment.api.ISchedule
+
 
+
getServiceManager() - Method in class io.github.simplexdevelopment.scheduler.SchedulingSystem
+
 
+
getServicePools() - Method in class io.github.simplexdevelopment.scheduler.ServiceManager
+
 
+
getUniqueId() - Method in interface io.github.simplexdevelopment.api.Identifier
+
 
+
+

H

+
+
hashCode() - Method in record class io.github.simplexdevelopment.scheduler.BukkitDisposable
+
+
Returns a hash code value for this object.
+
+
+

I

+
+
Identifier - Interface in io.github.simplexdevelopment.api
+
 
+
io.github.simplexdevelopment.api - package io.github.simplexdevelopment.api
+
 
+
io.github.simplexdevelopment.impl - package io.github.simplexdevelopment.impl
+
 
+
io.github.simplexdevelopment.scheduler - package io.github.simplexdevelopment.scheduler
+
 
+
isCancelled() - Method in class io.github.simplexdevelopment.scheduler.ExecutableService
+
+
Cancels the execution of this service.
+
+
ISchedule - Interface in io.github.simplexdevelopment.api
+
 
+
isDisposed() - Method in record class io.github.simplexdevelopment.scheduler.BukkitDisposable
+
+
Checks if the task is cancelled.
+
+
IService - Interface in io.github.simplexdevelopment.api
+
 
+
isPeriodic() - Method in interface io.github.simplexdevelopment.api.IService
+
 
+
isPeriodic() - Method in class io.github.simplexdevelopment.scheduler.ExecutableService
+
 
+
+

L

+
+
locateServiceWithinPools(IService) - Method in class io.github.simplexdevelopment.scheduler.ServiceManager
+
 
+
+

M

+
+
Main - Class in io.github.simplexdevelopment.impl
+
 
+
Main() - Constructor for class io.github.simplexdevelopment.impl.Main
+
 
+
multithreadedServicePool(String, IService...) - Method in class io.github.simplexdevelopment.scheduler.ServiceManager
+
 
+
+

O

+
+
onDisable() - Method in class io.github.simplexdevelopment.impl.Main
+
 
+
onEnable() - Method in class io.github.simplexdevelopment.impl.Main
+
 
+
+

P

+
+
PoolHolder - Class in io.github.simplexdevelopment.impl
+
 
+
PoolHolder(Main) - Constructor for class io.github.simplexdevelopment.impl.PoolHolder
+
 
+
+

Q

+
+
queue(IService) - Method in interface io.github.simplexdevelopment.api.ISchedule
+
+
Queues a service to be executed in a service pool.
+
+
queue(IService) - Method in class io.github.simplexdevelopment.scheduler.SchedulingSystem
+
 
+
queueService(IService) - Method in class io.github.simplexdevelopment.scheduler.ServicePool
+
 
+
+

R

+
+
ReactorBukkitScheduler - Class in io.github.simplexdevelopment.scheduler
+
 
+
ReactorBukkitScheduler(JavaPlugin) - Constructor for class io.github.simplexdevelopment.scheduler.ReactorBukkitScheduler
+
 
+
recycle() - Method in class io.github.simplexdevelopment.scheduler.ServicePool
+
 
+
registerServices(PoolHolder) - Method in class io.github.simplexdevelopment.impl.Main
+
 
+
run() - Method in interface io.github.simplexdevelopment.api.IService
+
 
+
runOnce(IService) - Method in interface io.github.simplexdevelopment.api.ISchedule
+
 
+
runOnce(IService) - Method in class io.github.simplexdevelopment.scheduler.SchedulingSystem
+
 
+
+

S

+
+
schedule(Runnable) - Method in class io.github.simplexdevelopment.scheduler.ReactorBukkitScheduler
+
+
Delegates to the BukkitScheduler.
+
+
schedule(Runnable, long, TimeUnit) - Method in class io.github.simplexdevelopment.scheduler.ReactorBukkitScheduler
+
+
Delegates to the BukkitScheduler with a delay.
+
+
schedulePeriodically(Runnable, long, long, TimeUnit) - Method in class io.github.simplexdevelopment.scheduler.ReactorBukkitScheduler
+
+
Delegates to the BukkitScheduler with a delay and a period.
+
+
SchedulingSystem<T extends org.bukkit.plugin.java.JavaPlugin> - Class in io.github.simplexdevelopment.scheduler
+
 
+
SchedulingSystem(T) - Constructor for class io.github.simplexdevelopment.scheduler.SchedulingSystem
+
+
Creates a new instance of the scheduling system.
+
+
ServiceException - Exception in io.github.simplexdevelopment.api
+
 
+
ServiceException(IService) - Constructor for exception io.github.simplexdevelopment.api.ServiceException
+
+
Constructs a new service exception which states the service is not present within any service pools.
+
+
ServiceException(Throwable) - Constructor for exception io.github.simplexdevelopment.api.ServiceException
+
 
+
ServiceImpl - Class in io.github.simplexdevelopment.impl
+
 
+
ServiceImpl(Main, ServicePool) - Constructor for class io.github.simplexdevelopment.impl.ServiceImpl
+
 
+
ServiceManager - Class in io.github.simplexdevelopment.scheduler
+
 
+
ServiceManager() - Constructor for class io.github.simplexdevelopment.scheduler.ServiceManager
+
+
Creates a new instance of the Service Manager class.
+
+
ServicePool - Class in io.github.simplexdevelopment.scheduler
+
 
+
ServicePool(String, boolean) - Constructor for class io.github.simplexdevelopment.scheduler.ServicePool
+
+
This will create a new instance of a Service Pool with a Scheduler as its main scheduler.
+
+
ServicePool(String, JavaPlugin) - Constructor for class io.github.simplexdevelopment.scheduler.ServicePool
+
+
This will create a new instance of a Service Pool with the ReactorBukkitScheduler as its main scheduler.
+
+
ServicePoolException - Exception in io.github.simplexdevelopment.api
+
 
+
ServicePoolException() - Constructor for exception io.github.simplexdevelopment.api.ServicePoolException
+
+
Constructs a new generic service pool exception.
+
+
ServicePoolException(String) - Constructor for exception io.github.simplexdevelopment.api.ServicePoolException
+
 
+
ServicePoolException(Throwable) - Constructor for exception io.github.simplexdevelopment.api.ServicePoolException
+
 
+
setCancelled(boolean) - Method in class io.github.simplexdevelopment.scheduler.ExecutableService
+
+
Cancels the execution of this service.
+
+
setContext(ServicePool) - Method in class io.github.simplexdevelopment.impl.PoolHolder
+
 
+
setContext(S) - Method in interface io.github.simplexdevelopment.api.Context
+
 
+
setParentPool(ServicePool) - Method in interface io.github.simplexdevelopment.api.IService
+
+
Sets the parent pool for this service.
+
+
setParentPool(ServicePool) - Method in class io.github.simplexdevelopment.scheduler.ExecutableService
+
 
+
start() - Method in interface io.github.simplexdevelopment.api.IService
+
+
The actual start method for the service.
+
+
start() - Method in class io.github.simplexdevelopment.impl.ServiceImpl
+
 
+
startServices() - Method in class io.github.simplexdevelopment.scheduler.ServicePool
+
 
+
stop() - Method in interface io.github.simplexdevelopment.api.IService
+
+
The actual end method for the service.
+
+
stop() - Method in class io.github.simplexdevelopment.impl.ServiceImpl
+
 
+
stopService(String, Mono<Disposable>) - Method in class io.github.simplexdevelopment.scheduler.ServicePool
+
 
+
stopServices(Flux<Disposable>) - Method in class io.github.simplexdevelopment.scheduler.ServicePool
+
 
+
supplyException() - Static method in exception io.github.simplexdevelopment.api.ServicePoolException
+
 
+
supplyException(IService) - Static method in exception io.github.simplexdevelopment.api.ServiceException
+
 
+
+

T

+
+
takeFromExistingPool(ServicePool, IService...) - Method in class io.github.simplexdevelopment.scheduler.ServiceManager
+
 
+
task() - Method in record class io.github.simplexdevelopment.scheduler.BukkitDisposable
+
+
Returns the value of the task record component.
+
+
toString() - Method in record class io.github.simplexdevelopment.scheduler.BukkitDisposable
+
+
Returns a string representation of this record class.
+
+
+A B C D E F G H I L M O P Q R S T 
All Classes and Interfaces|All Packages|Serialized Form
+
+
+ + diff --git a/build/docs/javadoc/index.html b/build/docs/javadoc/index.html new file mode 100644 index 0000000..ad59bcd --- /dev/null +++ b/build/docs/javadoc/index.html @@ -0,0 +1,70 @@ + + + + +Overview (SimplexSS 1.0.0 API) + + + + + + + + + + + + + + +
+ +
+
+
+

SimplexSS 1.0.0 API

+
+ +
+
+
+ + diff --git a/build/docs/javadoc/io/github/simplexdevelopment/api/Context.html b/build/docs/javadoc/io/github/simplexdevelopment/api/Context.html new file mode 100644 index 0000000..91e8748 --- /dev/null +++ b/build/docs/javadoc/io/github/simplexdevelopment/api/Context.html @@ -0,0 +1,177 @@ + + + + +Context (SimplexSS 1.0.0 API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface Context<S>

+
+
+
+
All Known Implementing Classes:
+
PoolHolder
+
+
+
public interface Context<S>
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    @Nullable Collection<S>
    + +
     
    +
    default @Nullable reactor.core.publisher.Flux<S>
    + +
     
    +
    @NotNull reactor.core.publisher.Mono<S>
    + +
     
    +
    @NotNull reactor.core.publisher.Mono<Void>
    +
    setContext(S context)
    +
     
    +
    +
    +
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getContext

      +
      @NotNull +@NotNull reactor.core.publisher.Mono<S> getContext()
      +
      +
      Returns:
      +
      A Mono object which contains a single element represented by the definer of this Context class.
      +
      +
      +
    • +
    • +
      +

      setContext

      +
      @NotNull +@NotNull reactor.core.publisher.Mono<Void> setContext(S context)
      +
      +
      Parameters:
      +
      context - A separate (or identical) object identified by the definer of this Context class.
      +
      Returns:
      +
      A Mono object which can be used to set the element of this Context class in a non-blocking manner.
      +
      +
      +
    • +
    • +
      +

      contextCollection

      +
      @Nullable +@Nullable Collection<S> contextCollection()
      +
      +
      Returns:
      +
      A collection of objects related to the definer of this Context class.
      +
      +
      +
    • +
    • +
      +

      fluxFromCollection

      +
      @Nullable +default @Nullable reactor.core.publisher.Flux<S> fluxFromCollection()
      +
      +
      Returns:
      +
      A Flux object which contains the values of the contextCollection(), for non-blocking interpretation.
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/build/docs/javadoc/io/github/simplexdevelopment/api/ISchedule.html b/build/docs/javadoc/io/github/simplexdevelopment/api/ISchedule.html new file mode 100644 index 0000000..fa99c52 --- /dev/null +++ b/build/docs/javadoc/io/github/simplexdevelopment/api/ISchedule.html @@ -0,0 +1,197 @@ + + + + +ISchedule (SimplexSS 1.0.0 API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface ISchedule

+
+
+
+
All Known Implementing Classes:
+
SchedulingSystem
+
+
+
public interface ISchedule
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    reactor.core.publisher.Mono<Void>
    + +
     
    +
    reactor.core.publisher.Mono<Void>
    + +
     
    +
    reactor.core.publisher.Mono<ServiceManager>
    + +
     
    +
    @NotNull reactor.core.publisher.Mono<reactor.core.Disposable>
    +
    queue(@NotNull IService service)
    +
    +
    Queues a service to be executed in a service pool.
    +
    +
    reactor.core.publisher.Mono<Void>
    +
    runOnce(IService service)
    +
     
    +
    +
    +
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getServiceManager

      +
      reactor.core.publisher.Mono<ServiceManager> getServiceManager()
      +
      +
      Returns:
      +
      The service manager which exerts control over the service pools and their associated services.
      +
      +
      +
    • +
    • +
      +

      queue

      +
      @NotNull +@NotNull reactor.core.publisher.Mono<reactor.core.Disposable> queue(@NotNull + @NotNull IService service)
      +
      Queues a service to be executed in a service pool.
      +
      +
      Parameters:
      +
      service - The service to use to locate the associated service pool and queue the service for execution.
      +
      Returns:
      +
      A Mono object that can be used to cancel the service.
      +
      +
      +
    • +
    • +
      +

      runOnce

      +
      reactor.core.publisher.Mono<Void> runOnce(IService service)
      +
      +
      Parameters:
      +
      service - The service to run once.
      +
      Returns:
      +
      A Mono object which can be used to run the service one time using Mono.subscribe().
      +
      +
      +
    • +
    • +
      +

      forceStop

      +
      reactor.core.publisher.Mono<Void> forceStop(IService service)
      +
      +
      Parameters:
      +
      service - The service to forcefully stop.
      +
      Returns:
      +
      A Mono object which can be used to forcefully stop the service with Mono.subscribe().
      +
      +
      +
    • +
    • +
      +

      forceStart

      +
      reactor.core.publisher.Mono<Void> forceStart(IService service)
      +
      +
      Parameters:
      +
      service - The service to forcefully start.
      +
      Returns:
      +
      A Mono object which can be used to forcefully start the service with Mono.subscribe().
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/build/docs/javadoc/io/github/simplexdevelopment/api/IService.html b/build/docs/javadoc/io/github/simplexdevelopment/api/IService.html new file mode 100644 index 0000000..f8eacb0 --- /dev/null +++ b/build/docs/javadoc/io/github/simplexdevelopment/api/IService.html @@ -0,0 +1,258 @@ + + + + +IService (SimplexSS 1.0.0 API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface IService

+
+
+
+
All Superinterfaces:
+
Identifier, Runnable
+
+
+
All Known Implementing Classes:
+
ExecutableService, ServiceImpl
+
+
+
public interface IService +extends Runnable, Identifier
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    long
    + +
     
    +
    reactor.core.publisher.Mono<ServicePool>
    + +
     
    +
    long
    + +
     
    +
    org.bukkit.plugin.java.JavaPlugin
    + +
     
    +
    boolean
    + +
     
    +
    default void
    +
    run()
    +
     
    +
    reactor.core.publisher.Mono<Void>
    + +
    +
    Sets the parent pool for this service.
    +
    +
    reactor.core.publisher.Mono<Void>
    + +
    +
    The actual start method for the service.
    +
    +
    reactor.core.publisher.Mono<Void>
    + +
    +
    The actual end method for the service.
    +
    +
    +
    +
    +
    +

    Methods inherited from interface io.github.simplexdevelopment.api.Identifier

    +getName, getNumericalId, getUniqueId
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      isPeriodic

      +
      boolean isPeriodic()
      +
      +
      Returns:
      +
      If the service should be scheduled for repeated executions or not.
      +
      +
      +
    • +
    • +
      +

      getPeriod

      +
      long getPeriod()
      +
      +
      Returns:
      +
      How long the service should wait between subsequent executions.
      +
      +
      +
    • +
    • +
      +

      getDelay

      +
      long getDelay()
      +
      +
      Returns:
      +
      How long the service should wait before executing the first time.
      +
      +
      +
    • +
    • +
      +

      start

      +
      reactor.core.publisher.Mono<Void> start()
      +
      The actual start method for the service. This should be overridden by subclasses, + and should include all the required code necessary to execute when the service is queued.
      +
      +
      Returns:
      +
      An encapsulated Mono object representing the start method for the service.
      +
      +
      +
    • +
    • +
      +

      stop

      +
      reactor.core.publisher.Mono<Void> stop()
      +
      The actual end method for the service. This should be overridden by subclasses, + and should include all the required code necessary to execute when the service is stopped.
      +
      +
      Returns:
      +
      An encapsulated Mono object representing the end method for the service.
      +
      +
      +
    • +
    • +
      +

      getPlugin

      +
      org.bukkit.plugin.java.JavaPlugin getPlugin()
      +
      +
      Returns:
      +
      The plugin which was defined in the constructor. + This should be an instance of your main plugin class.
      +
      +
      +
    • +
    • +
      +

      getParentPool

      +
      reactor.core.publisher.Mono<ServicePool> getParentPool()
      +
      +
      Returns:
      +
      The ServicePool which this service is executing on.
      +
      +
      +
    • +
    • +
      +

      setParentPool

      +
      reactor.core.publisher.Mono<Void> setParentPool(ServicePool servicePool)
      +
      Sets the parent pool for this service.
      +
      +
      Parameters:
      +
      servicePool - The service pool to attach this service to.
      +
      Returns:
      +
      An encapsulated Mono object representing the set operation.
      +
      +
      +
    • +
    • +
      +

      run

      +
      default void run()
      +
      +
      Specified by:
      +
      run in interface Runnable
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/build/docs/javadoc/io/github/simplexdevelopment/api/Identifier.html b/build/docs/javadoc/io/github/simplexdevelopment/api/Identifier.html new file mode 100644 index 0000000..4917a4e --- /dev/null +++ b/build/docs/javadoc/io/github/simplexdevelopment/api/Identifier.html @@ -0,0 +1,164 @@ + + + + +Identifier (SimplexSS 1.0.0 API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Interface Identifier

+
+
+
+
All Known Subinterfaces:
+
IService
+
+
+
All Known Implementing Classes:
+
ExecutableService, ServiceImpl
+
+
+
public interface Identifier
+
+
+
    + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    + + +
     
    +
    default int
    + +
     
    +
    default UUID
    + +
     
    +
    +
    +
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getName

      +
      String getName()
      +
      +
      Returns:
      +
      The name of the identifiable object in a readable format.
      +
      +
      +
    • +
    • +
      +

      getUniqueId

      +
      default UUID getUniqueId()
      +
      +
      Returns:
      +
      The UUID of the identifiable object, based on the getName() value. + This is calculated using UUID.nameUUIDFromBytes(byte[]).
      +
      +
      +
    • +
    • +
      +

      getNumericalId

      +
      default int getNumericalId()
      +
      +
      Returns:
      +
      The numerical id of the identifiable object, based on the getUniqueId() value. + This is calculated using UUID.hashCode().
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/build/docs/javadoc/io/github/simplexdevelopment/api/ServiceException.html b/build/docs/javadoc/io/github/simplexdevelopment/api/ServiceException.html new file mode 100644 index 0000000..7d01f07 --- /dev/null +++ b/build/docs/javadoc/io/github/simplexdevelopment/api/ServiceException.html @@ -0,0 +1,204 @@ + + + + +ServiceException (SimplexSS 1.0.0 API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class ServiceException

+
+
java.lang.Object +
java.lang.Throwable +
java.lang.Exception +
java.lang.RuntimeException +
io.github.simplexdevelopment.api.ServiceException
+
+
+
+
+
+
+
All Implemented Interfaces:
+
Serializable
+
+
+
public class ServiceException +extends RuntimeException
+
+
See Also:
+
+ +
+
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      ServiceException

      +
      public ServiceException(IService service)
      +
      Constructs a new service exception which states the service is not present within any service pools.
      +
      +
      Parameters:
      +
      service - The service that threw the exception.
      +
      +
      +
    • +
    • +
      +

      ServiceException

      +
      public ServiceException(Throwable th)
      +
      +
      Parameters:
      +
      th - The throwable that was thrown.
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      supplyException

      +
      public static Supplier<ServiceException> supplyException(IService service)
      +
      +
      Parameters:
      +
      service - The service that threw the exception.
      +
      Returns:
      +
      A supplier that can be used in conjunction with Reactor.
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/build/docs/javadoc/io/github/simplexdevelopment/api/ServicePoolException.html b/build/docs/javadoc/io/github/simplexdevelopment/api/ServicePoolException.html new file mode 100644 index 0000000..7d7677c --- /dev/null +++ b/build/docs/javadoc/io/github/simplexdevelopment/api/ServicePoolException.html @@ -0,0 +1,214 @@ + + + + +ServicePoolException (SimplexSS 1.0.0 API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class ServicePoolException

+
+
java.lang.Object +
java.lang.Throwable +
java.lang.Exception +
java.lang.RuntimeException +
io.github.simplexdevelopment.api.ServicePoolException
+
+
+
+
+
+
+
All Implemented Interfaces:
+
Serializable
+
+
+
public class ServicePoolException +extends RuntimeException
+
+
See Also:
+
+ +
+
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      ServicePoolException

      +
      public ServicePoolException()
      +
      Constructs a new generic service pool exception. + This will be thrown when a service attempts to execute without an associated service pool.
      +
      +
    • +
    • +
      +

      ServicePoolException

      +
      public ServicePoolException(@NotNull + @NotNull String string)
      +
      +
      Parameters:
      +
      string - The message to be displayed when the exception is thrown.
      +
      +
      +
    • +
    • +
      +

      ServicePoolException

      +
      public ServicePoolException(Throwable ex)
      +
      +
      Parameters:
      +
      ex - The exception to be thrown.
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      supplyException

      +
      @Contract(pure=true) +@NotNull +public static @NotNull Supplier<ServicePoolException> supplyException()
      +
      +
      Returns:
      +
      A supplier which can be used in conjunction with Reactor.
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/build/docs/javadoc/io/github/simplexdevelopment/api/package-summary.html b/build/docs/javadoc/io/github/simplexdevelopment/api/package-summary.html new file mode 100644 index 0000000..d799391 --- /dev/null +++ b/build/docs/javadoc/io/github/simplexdevelopment/api/package-summary.html @@ -0,0 +1,98 @@ + + + + +io.github.simplexdevelopment.api (SimplexSS 1.0.0 API) + + + + + + + + + + + + + + +
+ +
+
+
+

Package io.github.simplexdevelopment.api

+
+
+
package io.github.simplexdevelopment.api
+
+ +
+
+
+
+ + diff --git a/build/docs/javadoc/io/github/simplexdevelopment/api/package-tree.html b/build/docs/javadoc/io/github/simplexdevelopment/api/package-tree.html new file mode 100644 index 0000000..707e980 --- /dev/null +++ b/build/docs/javadoc/io/github/simplexdevelopment/api/package-tree.html @@ -0,0 +1,101 @@ + + + + +io.github.simplexdevelopment.api Class Hierarchy (SimplexSS 1.0.0 API) + + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchy For Package io.github.simplexdevelopment.api

+Package Hierarchies: + +
+
+

Class Hierarchy

+ +
+
+

Interface Hierarchy

+
    +
  • io.github.simplexdevelopment.api.Context<S>
  • +
  • io.github.simplexdevelopment.api.Identifier + +
  • +
  • io.github.simplexdevelopment.api.ISchedule
  • +
  • java.lang.Runnable +
      +
    • io.github.simplexdevelopment.api.IService (also extends io.github.simplexdevelopment.api.Identifier)
    • +
    +
  • +
+
+
+
+
+ + diff --git a/build/docs/javadoc/io/github/simplexdevelopment/impl/Main.html b/build/docs/javadoc/io/github/simplexdevelopment/impl/Main.html new file mode 100644 index 0000000..1000922 --- /dev/null +++ b/build/docs/javadoc/io/github/simplexdevelopment/impl/Main.html @@ -0,0 +1,215 @@ + + + + +Main (SimplexSS 1.0.0 API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class Main

+
+
java.lang.Object +
org.bukkit.plugin.PluginBase +
org.bukkit.plugin.java.JavaPlugin +
io.github.simplexdevelopment.impl.Main
+
+
+
+
+
+
All Implemented Interfaces:
+
org.bukkit.command.CommandExecutor, org.bukkit.command.TabCompleter, org.bukkit.command.TabExecutor, org.bukkit.plugin.Plugin
+
+
+
public class Main +extends org.bukkit.plugin.java.JavaPlugin
+
+
+
    + +
  • +
    +

    Constructor Summary

    +
    Constructors
    +
    +
    Constructor
    +
    Description
    + +
     
    +
    +
    +
  • + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    + + +
     
    +
    void
    + +
     
    +
    void
    + +
     
    +
    void
    +
    registerServices(@NotNull PoolHolder poolHolder)
    +
     
    +
    +
    +
    +
    +

    Methods inherited from class org.bukkit.plugin.java.JavaPlugin

    +getClassLoader, getCommand, getConfig, getDataFolder, getDefaultBiomeProvider, getDefaultWorldGenerator, getDescription, getFile, getLogger, getPlugin, getPluginLoader, getProvidingPlugin, getResource, getServer, getTextResource, isEnabled, isNaggable, onCommand, onLoad, onTabComplete, reloadConfig, saveConfig, saveDefaultConfig, saveResource, setEnabled, setNaggable, toString
    +
    +

    Methods inherited from class org.bukkit.plugin.PluginBase

    +equals, getName, hashCode
    +
    +

    Methods inherited from class java.lang.Object

    +clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    +
    +

    Methods inherited from interface org.bukkit.plugin.Plugin

    +getComponentLogger, getLog4JLogger, getSLF4JLogger
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      Main

      +
      public Main()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      onEnable

      +
      public void onEnable()
      +
      +
      Specified by:
      +
      onEnable in interface org.bukkit.plugin.Plugin
      +
      Overrides:
      +
      onEnable in class org.bukkit.plugin.java.JavaPlugin
      +
      +
      +
    • +
    • +
      +

      onDisable

      +
      public void onDisable()
      +
      +
      Specified by:
      +
      onDisable in interface org.bukkit.plugin.Plugin
      +
      Overrides:
      +
      onDisable in class org.bukkit.plugin.java.JavaPlugin
      +
      +
      +
    • +
    • +
      +

      registerServices

      +
      public void registerServices(@NotNull + @NotNull PoolHolder poolHolder)
      +
      +
    • +
    • +
      +

      getScheduler

      +
      public SchedulingSystem<Main> getScheduler()
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/build/docs/javadoc/io/github/simplexdevelopment/impl/PoolHolder.html b/build/docs/javadoc/io/github/simplexdevelopment/impl/PoolHolder.html new file mode 100644 index 0000000..3d6cd18 --- /dev/null +++ b/build/docs/javadoc/io/github/simplexdevelopment/impl/PoolHolder.html @@ -0,0 +1,206 @@ + + + + +PoolHolder (SimplexSS 1.0.0 API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class PoolHolder

+
+
java.lang.Object +
io.github.simplexdevelopment.impl.PoolHolder
+
+
+
+
All Implemented Interfaces:
+
Context<ServicePool>
+
+
+
public class PoolHolder +extends Object +implements Context<ServicePool>
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      PoolHolder

      +
      public PoolHolder(Main plugin)
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getContext

      +
      @NotNull +public @NotNull reactor.core.publisher.Mono<ServicePool> getContext()
      +
      +
      Specified by:
      +
      getContext in interface Context<ServicePool>
      +
      Returns:
      +
      A Mono object which contains a single element represented by the definer of this Context class.
      +
      +
      +
    • +
    • +
      +

      setContext

      +
      @NotNull +public @NotNull reactor.core.publisher.Mono<Void> setContext(ServicePool context)
      +
      +
      Specified by:
      +
      setContext in interface Context<ServicePool>
      +
      Parameters:
      +
      context - A separate (or identical) object identified by the definer of this Context class.
      +
      Returns:
      +
      A Mono object which can be used to set the element of this Context class in a non-blocking manner.
      +
      +
      +
    • +
    • +
      +

      contextCollection

      +
      public Collection<ServicePool> contextCollection()
      +
      +
      Specified by:
      +
      contextCollection in interface Context<ServicePool>
      +
      Returns:
      +
      A collection of objects related to the definer of this Context class.
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/build/docs/javadoc/io/github/simplexdevelopment/impl/ServiceImpl.html b/build/docs/javadoc/io/github/simplexdevelopment/impl/ServiceImpl.html new file mode 100644 index 0000000..fc5b3d1 --- /dev/null +++ b/build/docs/javadoc/io/github/simplexdevelopment/impl/ServiceImpl.html @@ -0,0 +1,216 @@ + + + + +ServiceImpl (SimplexSS 1.0.0 API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class ServiceImpl

+
+
java.lang.Object +
io.github.simplexdevelopment.scheduler.ExecutableService +
io.github.simplexdevelopment.impl.ServiceImpl
+
+
+
+
+
All Implemented Interfaces:
+
Identifier, IService, Runnable
+
+
+
public class ServiceImpl +extends ExecutableService
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      ServiceImpl

      +
      public ServiceImpl(Main plugin, + ServicePool pool)
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      start

      +
      public reactor.core.publisher.Mono<Void> start()
      +
      Description copied from interface: IService
      +
      The actual start method for the service. This should be overridden by subclasses, + and should include all the required code necessary to execute when the service is queued.
      +
      +
      Returns:
      +
      An encapsulated Mono object representing the start method for the service.
      +
      +
      +
    • +
    • +
      +

      stop

      +
      public reactor.core.publisher.Mono<Void> stop()
      +
      Description copied from interface: IService
      +
      The actual end method for the service. This should be overridden by subclasses, + and should include all the required code necessary to execute when the service is stopped.
      +
      +
      Returns:
      +
      An encapsulated Mono object representing the end method for the service.
      +
      +
      +
    • +
    • +
      +

      getPlugin

      +
      public Main getPlugin()
      +
      +
      Returns:
      +
      The plugin which was defined in the constructor. + This should be an instance of your main plugin class.
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/build/docs/javadoc/io/github/simplexdevelopment/impl/package-summary.html b/build/docs/javadoc/io/github/simplexdevelopment/impl/package-summary.html new file mode 100644 index 0000000..25ced21 --- /dev/null +++ b/build/docs/javadoc/io/github/simplexdevelopment/impl/package-summary.html @@ -0,0 +1,86 @@ + + + + +io.github.simplexdevelopment.impl (SimplexSS 1.0.0 API) + + + + + + + + + + + + + + +
+ +
+
+
+

Package io.github.simplexdevelopment.impl

+
+
+
package io.github.simplexdevelopment.impl
+
+ +
+
+
+
+ + diff --git a/build/docs/javadoc/io/github/simplexdevelopment/impl/package-tree.html b/build/docs/javadoc/io/github/simplexdevelopment/impl/package-tree.html new file mode 100644 index 0000000..30d754c --- /dev/null +++ b/build/docs/javadoc/io/github/simplexdevelopment/impl/package-tree.html @@ -0,0 +1,85 @@ + + + + +io.github.simplexdevelopment.impl Class Hierarchy (SimplexSS 1.0.0 API) + + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchy For Package io.github.simplexdevelopment.impl

+Package Hierarchies: + +
+
+

Class Hierarchy

+
    +
  • java.lang.Object +
      +
    • io.github.simplexdevelopment.scheduler.ExecutableService (implements io.github.simplexdevelopment.api.IService) + +
    • +
    • org.bukkit.plugin.PluginBase (implements org.bukkit.plugin.Plugin) +
        +
      • org.bukkit.plugin.java.JavaPlugin +
          +
        • io.github.simplexdevelopment.impl.Main
        • +
        +
      • +
      +
    • +
    • io.github.simplexdevelopment.impl.PoolHolder (implements io.github.simplexdevelopment.api.Context<S>)
    • +
    +
  • +
+
+
+
+
+ + diff --git a/build/docs/javadoc/io/github/simplexdevelopment/scheduler/BukkitDisposable.html b/build/docs/javadoc/io/github/simplexdevelopment/scheduler/BukkitDisposable.html new file mode 100644 index 0000000..39251aa --- /dev/null +++ b/build/docs/javadoc/io/github/simplexdevelopment/scheduler/BukkitDisposable.html @@ -0,0 +1,278 @@ + + + + +BukkitDisposable (SimplexSS 1.0.0 API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Record Class BukkitDisposable

+
+
java.lang.Object +
java.lang.Record +
io.github.simplexdevelopment.scheduler.BukkitDisposable
+
+
+
+
+
All Implemented Interfaces:
+
reactor.core.Disposable
+
+
+
public record BukkitDisposable(org.bukkit.scheduler.BukkitTask task) +extends Record +implements reactor.core.Disposable
+
+
+
    + +
  • +
    +

    Nested Class Summary

    +
    +

    Nested classes/interfaces inherited from interface reactor.core.Disposable

    +reactor.core.Disposable.Composite, reactor.core.Disposable.Swap
    +
    +
  • + +
  • +
    +

    Constructor Summary

    +
    Constructors
    +
    +
    Constructor
    +
    Description
    +
    BukkitDisposable(org.bukkit.scheduler.BukkitTask task)
    +
    +
    Creates an instance of a BukkitDisposable record class.
    +
    +
    +
    +
  • + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    void
    + +
    +
    Disposes of the task upstream on the Bukkit scheduler.
    +
    +
    final boolean
    + +
    +
    Indicates whether some other object is "equal to" this one.
    +
    +
    final int
    + +
    +
    Returns a hash code value for this object.
    +
    +
    boolean
    + +
    +
    Checks if the task is cancelled.
    +
    +
    org.bukkit.scheduler.BukkitTask
    + +
    +
    Returns the value of the task record component.
    +
    +
    final String
    + +
    +
    Returns a string representation of this record class.
    +
    +
    +
    +
    +
    +

    Methods inherited from class java.lang.Object

    +clone, finalize, getClass, notify, notifyAll, wait, wait, wait
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      BukkitDisposable

      +
      public BukkitDisposable(org.bukkit.scheduler.BukkitTask task)
      +
      Creates an instance of a BukkitDisposable record class.
      +
      +
      Parameters:
      +
      task - the value for the task record component
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      dispose

      +
      public void dispose()
      +
      Disposes of the task upstream on the Bukkit scheduler.
      +
      +
      Specified by:
      +
      dispose in interface reactor.core.Disposable
      +
      +
      +
    • +
    • +
      +

      isDisposed

      +
      public boolean isDisposed()
      +
      Checks if the task is cancelled.
      +
      +
      Specified by:
      +
      isDisposed in interface reactor.core.Disposable
      +
      Returns:
      +
      true if the task is cancelled, false otherwise.
      +
      +
      +
    • +
    • +
      +

      toString

      +
      public final String toString()
      +
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      +
      +
      Specified by:
      +
      toString in class Record
      +
      Returns:
      +
      a string representation of this object
      +
      +
      +
    • +
    • +
      +

      hashCode

      +
      public final int hashCode()
      +
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      +
      +
      Specified by:
      +
      hashCode in class Record
      +
      Returns:
      +
      a hash code value for this object
      +
      +
      +
    • +
    • +
      +

      equals

      +
      public final boolean equals(Object o)
      +
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. All components in this record class are compared with Objects::equals(Object,Object).
      +
      +
      Specified by:
      +
      equals in class Record
      +
      Parameters:
      +
      o - the object with which to compare
      +
      Returns:
      +
      true if this object is the same as the o argument; false otherwise.
      +
      +
      +
    • +
    • +
      +

      task

      +
      public org.bukkit.scheduler.BukkitTask task()
      +
      Returns the value of the task record component.
      +
      +
      Returns:
      +
      the value of the task record component
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/build/docs/javadoc/io/github/simplexdevelopment/scheduler/ExecutableService.html b/build/docs/javadoc/io/github/simplexdevelopment/scheduler/ExecutableService.html new file mode 100644 index 0000000..b0623d7 --- /dev/null +++ b/build/docs/javadoc/io/github/simplexdevelopment/scheduler/ExecutableService.html @@ -0,0 +1,432 @@ + + + + +ExecutableService (SimplexSS 1.0.0 API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class ExecutableService

+
+
java.lang.Object +
io.github.simplexdevelopment.scheduler.ExecutableService
+
+
+
+
All Implemented Interfaces:
+
Identifier, IService, Runnable
+
+
+
Direct Known Subclasses:
+
ServiceImpl
+
+
+
public abstract class ExecutableService +extends Object +implements IService
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      ExecutableService

      +
      public ExecutableService(@NotNull + @NotNull String service_name)
      +
      Creates a new instance of an executable service. + Each service is registered with a String, + to allow for easy identification within the associated ServicePool.
      +
      +
      Parameters:
      +
      service_name - A namespaced key which can be used to identify the service.
      +
      +
      +
    • +
    • +
      +

      ExecutableService

      +
      public ExecutableService(@Nullable + @Nullable ServicePool parentPool, + @NotNull + @NotNull String service_name)
      +
      Creates a new instance of an executable service. + Each service is registered with a String, + to allow for easy identification within the associated ServicePool.
      +
      +
      Parameters:
      +
      parentPool - The ServicePool which this service is executing on.
      +
      service_name - A namespaced key which can be used to identify the service.
      +
      +
      +
    • +
    • +
      +

      ExecutableService

      +
      public ExecutableService(@Nullable + @Nullable ServicePool parentPool, + @NotNull + @NotNull String service_name, + @Nullable + @Nullable Long delay)
      +
      Creates a new instance of an executable service. + The timings are measured in ticks (20 ticks per second). + You do not need to explicitly define a delay. + Each service is registered with a String, + to allow for easy identification within the associated ServicePool.
      +
      +
      Parameters:
      +
      parentPool - The ServicePool which this service is executing on.
      +
      service_name - A namespaced key which can be used to identify the service.
      +
      delay - A specified amount of time (in ticks) to wait before the service runs.
      +
      +
      +
    • +
    • +
      +

      ExecutableService

      +
      public ExecutableService(@Nullable + @Nullable ServicePool parentPool, + @NotNull + @NotNull String service_name, + @NotNull + @NotNull Long delay, + @NotNull + @NotNull Long period, + @NotNull + @NotNull Boolean repeating)
      +
      Creates a new instance of an executable service. + The timings are measured in ticks (20 ticks per second). + You do not need to explicitly define a delay or a period, + however if you have flagged repeating as true, and the period is null, + then the period will automatically be set to 20 minutes. + Each service is registered with a String, + to allow for easy identification within the associated ServicePool.
      +
      +
      Parameters:
      +
      parentPool - The ServicePool which this service is executing on.
      +
      service_name - A namespaced key which can be used to identify the service.
      +
      delay - A specified amount of time (in ticks) to wait before the service runs.
      +
      period - How long the service should wait between service executions (in ticks).
      +
      repeating - If the service should be scheduled for repeated executions or not.
      +
      +
      +
    • +
    • +
      +

      ExecutableService

      +
      public ExecutableService(@Nullable + @Nullable ServicePool parentPool, + @NotNull + @NotNull String service_name, + @Nullable + @Nullable Long delay, + @Nullable + @Nullable Long period, + @NotNull + @NotNull Boolean repeating, + @NotNull + @NotNull Boolean mayInterruptWhenRunning)
      +
      Creates a new instance of an executable service. + The timings are measured in ticks (20 ticks per second). + You do not need to explicitly define a delay or a period, + however if you have flagged repeating as true, and the period is null, + then the period will automatically be set to 20 minutes. + Each service is registered with a String, + to allow for easy identification within the associated ServicePool.
      +
      +
      Parameters:
      +
      parentPool - The ServicePool which this service is executing on.
      +
      service_name - A namespaced key which can be used to identify the service.
      +
      delay - A specified amount of time (in ticks) to wait before the service runs.
      +
      period - How long the service should wait between service executions (in ticks).
      +
      repeating - If the service should be scheduled for repeated executions or not.
      +
      mayInterruptWhenRunning - If the service can be cancelled during execution.
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getDelay

      +
      public long getDelay()
      +
      +
      Specified by:
      +
      getDelay in interface IService
      +
      Returns:
      +
      How long the service should wait before executing the first time.
      +
      +
      +
    • +
    • +
      +

      getPeriod

      +
      public long getPeriod()
      +
      +
      Specified by:
      +
      getPeriod in interface IService
      +
      Returns:
      +
      How long the service should wait between subsequent executions.
      +
      +
      +
    • +
    • +
      +

      isPeriodic

      +
      public boolean isPeriodic()
      +
      +
      Specified by:
      +
      isPeriodic in interface IService
      +
      Returns:
      +
      If the service should be scheduled for repeated executions or not.
      +
      +
      +
    • +
    • +
      +

      isCancelled

      +
      public boolean isCancelled()
      +
      Cancels the execution of this service.
      +
      +
      Returns:
      +
      true if the service was cancelled, false if not.
      +
      +
      +
    • +
    • +
      +

      setCancelled

      +
      public reactor.core.publisher.Mono<Void> setCancelled(boolean cancel)
      +
      Cancels the execution of this service.
      +
      +
      Parameters:
      +
      cancel - Whether the service should be cancelled or not.
      +
      +
      +
    • +
    • +
      +

      getParentPool

      +
      public reactor.core.publisher.Mono<ServicePool> getParentPool()
      +
      +
      Specified by:
      +
      getParentPool in interface IService
      +
      Returns:
      +
      The ServicePool which this service is executing on.
      +
      +
      +
    • +
    • +
      +

      getName

      +
      public String getName()
      +
      +
      Specified by:
      +
      getName in interface Identifier
      +
      Returns:
      +
      The name of the identifiable object in a readable format.
      +
      +
      +
    • +
    • +
      +

      setParentPool

      +
      public reactor.core.publisher.Mono<Void> setParentPool(ServicePool servicePool)
      +
      Description copied from interface: IService
      +
      Sets the parent pool for this service.
      +
      +
      Specified by:
      +
      setParentPool in interface IService
      +
      Parameters:
      +
      servicePool - The service pool to attach this service to.
      +
      Returns:
      +
      An encapsulated Mono object representing the set operation.
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/build/docs/javadoc/io/github/simplexdevelopment/scheduler/ReactorBukkitScheduler.html b/build/docs/javadoc/io/github/simplexdevelopment/scheduler/ReactorBukkitScheduler.html new file mode 100644 index 0000000..fae30d4 --- /dev/null +++ b/build/docs/javadoc/io/github/simplexdevelopment/scheduler/ReactorBukkitScheduler.html @@ -0,0 +1,303 @@ + + + + +ReactorBukkitScheduler (SimplexSS 1.0.0 API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class ReactorBukkitScheduler

+
+
java.lang.Object +
io.github.simplexdevelopment.scheduler.ReactorBukkitScheduler
+
+
+
+
All Implemented Interfaces:
+
reactor.core.Disposable, reactor.core.scheduler.Scheduler, reactor.core.scheduler.Scheduler.Worker
+
+
+
public final class ReactorBukkitScheduler +extends Object +implements reactor.core.scheduler.Scheduler, reactor.core.scheduler.Scheduler.Worker
+
+
+
    + +
  • +
    +

    Nested Class Summary

    +
    +

    Nested classes/interfaces inherited from interface reactor.core.Disposable

    +reactor.core.Disposable.Composite, reactor.core.Disposable.Swap
    +
    +

    Nested classes/interfaces inherited from interface reactor.core.scheduler.Scheduler

    +reactor.core.scheduler.Scheduler.Worker
    +
    +
  • + +
  • +
    +

    Constructor Summary

    +
    Constructors
    +
    +
    Constructor
    +
    Description
    +
    ReactorBukkitScheduler(org.bukkit.plugin.java.JavaPlugin plugin)
    +
     
    +
    +
    +
  • + +
  • +
    +

    Method Summary

    +
    +
    +
    +
    +
    Modifier and Type
    +
    Method
    +
    Description
    +
    @NotNull reactor.core.scheduler.Scheduler.Worker
    + +
    +
    A new Scheduler.Worker.
    +
    +
    void
    + +
    +
    Deprecated.
    +
    +
    @NotNull reactor.core.Disposable
    +
    schedule(@NotNull Runnable task)
    +
    +
    Delegates to the BukkitScheduler.
    +
    +
    @NotNull reactor.core.Disposable
    +
    schedule(@NotNull Runnable task, + long delay, + @Nullable TimeUnit unit)
    +
    +
    Delegates to the BukkitScheduler with a delay.
    +
    +
    @NotNull reactor.core.Disposable
    +
    schedulePeriodically(@NotNull Runnable task, + long initialDelay, + long period, + @Nullable TimeUnit unit)
    +
    +
    Delegates to the BukkitScheduler with a delay and a period.
    +
    +
    +
    +
    +
    +

    Methods inherited from class java.lang.Object

    +clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    +
    +

    Methods inherited from interface reactor.core.Disposable

    +isDisposed
    +
    +

    Methods inherited from interface reactor.core.scheduler.Scheduler

    +disposeGracefully, now, start
    +
    +
  • +
+
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      ReactorBukkitScheduler

      +
      public ReactorBukkitScheduler(org.bukkit.plugin.java.JavaPlugin plugin)
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      schedule

      +
      @NotNull +public @NotNull reactor.core.Disposable schedule(@NotNull + @NotNull Runnable task)
      +
      Delegates to the BukkitScheduler.
      +
      +
      Specified by:
      +
      schedule in interface reactor.core.scheduler.Scheduler
      +
      Specified by:
      +
      schedule in interface reactor.core.scheduler.Scheduler.Worker
      +
      Parameters:
      +
      task - The task to delegate.
      +
      Returns:
      +
      A disposable that can be used to cancel the task.
      +
      +
      +
    • +
    • +
      +

      schedule

      +
      @NotNull +public @NotNull reactor.core.Disposable schedule(@NotNull + @NotNull Runnable task, + long delay, + @Deprecated @Nullable + @Nullable TimeUnit unit)
      +
      Delegates to the BukkitScheduler with a delay.
      +
      +
      Specified by:
      +
      schedule in interface reactor.core.scheduler.Scheduler
      +
      Specified by:
      +
      schedule in interface reactor.core.scheduler.Scheduler.Worker
      +
      Parameters:
      +
      task - The task to delegate
      +
      delay - The amount of time to wait before running the task
      +
      unit - Unused parameter in this implementation. + Regardless of what value you use, this parameter will never be called.
      +
      Returns:
      +
      A disposable that can be used to cancel the task.
      +
      +
      +
    • +
    • +
      +

      schedulePeriodically

      +
      @NotNull +public @NotNull reactor.core.Disposable schedulePeriodically(@NotNull + @NotNull Runnable task, + long initialDelay, + long period, + @Deprecated @Nullable + @Nullable TimeUnit unit)
      +
      Delegates to the BukkitScheduler with a delay and a period. + The initial delay may be 0L, but the period must be greater than 0L.
      +
      +
      Specified by:
      +
      schedulePeriodically in interface reactor.core.scheduler.Scheduler
      +
      Specified by:
      +
      schedulePeriodically in interface reactor.core.scheduler.Scheduler.Worker
      +
      Parameters:
      +
      task - The task to delegate.
      +
      initialDelay - The amount of time to wait before running the task.
      +
      period - The amount of time to wait between each execution of the task.
      +
      unit - Unused parameter in this implementation. + Regardless of what value you use, this parameter will never be called.
      +
      Returns:
      +
      A disposable that can be used to cancel the task.
      +
      +
      +
    • +
    • +
      +

      createWorker

      +
      @NotNull +public @NotNull reactor.core.scheduler.Scheduler.Worker createWorker()
      +
      A new Scheduler.Worker.
      +
      +
      Specified by:
      +
      createWorker in interface reactor.core.scheduler.Scheduler
      +
      Returns:
      +
      This class instance, as it implements Scheduler.Worker.
      +
      +
      +
    • +
    • +
      +

      dispose

      +
      @Deprecated +public void dispose()
      +
      Deprecated.
      +
      This method does nothing and is unused.
      +
      +
      Specified by:
      +
      dispose in interface reactor.core.Disposable
      +
      Specified by:
      +
      dispose in interface reactor.core.scheduler.Scheduler
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/build/docs/javadoc/io/github/simplexdevelopment/scheduler/SchedulingSystem.html b/build/docs/javadoc/io/github/simplexdevelopment/scheduler/SchedulingSystem.html new file mode 100644 index 0000000..94fe327 --- /dev/null +++ b/build/docs/javadoc/io/github/simplexdevelopment/scheduler/SchedulingSystem.html @@ -0,0 +1,280 @@ + + + + +SchedulingSystem (SimplexSS 1.0.0 API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class SchedulingSystem<T extends org.bukkit.plugin.java.JavaPlugin>

+
+
java.lang.Object +
io.github.simplexdevelopment.scheduler.SchedulingSystem<T>
+
+
+
+
All Implemented Interfaces:
+
ISchedule
+
+
+
public final class SchedulingSystem<T extends org.bukkit.plugin.java.JavaPlugin> +extends Object +implements ISchedule
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      SchedulingSystem

      +
      public SchedulingSystem(T plugin)
      +
      Creates a new instance of the scheduling system. This is used to manage the scheduling of services.
      +
      +
      Parameters:
      +
      plugin - The plugin to use for this scheduling system. This should be an instance of your plugin.
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getServiceManager

      +
      @NotNull +public @NotNull reactor.core.publisher.Mono<ServiceManager> getServiceManager()
      +
      +
      Specified by:
      +
      getServiceManager in interface ISchedule
      +
      Returns:
      +
      The service manager which exerts control over the service pools and their associated services.
      +
      +
      +
    • +
    • +
      +

      queue

      +
      @NotNull +public @NotNull reactor.core.publisher.Mono<reactor.core.Disposable> queue(@NotNull + @NotNull IService service)
      +
      Description copied from interface: ISchedule
      +
      Queues a service to be executed in a service pool.
      +
      +
      Specified by:
      +
      queue in interface ISchedule
      +
      Parameters:
      +
      service - The service to use to locate the associated service pool and queue the service for execution.
      +
      Returns:
      +
      A Mono object that can be used to cancel the service.
      +
      +
      +
    • +
    • +
      +

      runOnce

      +
      @NotNull +public @NotNull reactor.core.publisher.Mono<Void> runOnce(IService service)
      +
      +
      Specified by:
      +
      runOnce in interface ISchedule
      +
      Parameters:
      +
      service - The service to run once.
      +
      Returns:
      +
      A Mono object which can be used to run the service one time using Mono.subscribe().
      +
      +
      +
    • +
    • +
      +

      forceStop

      +
      public reactor.core.publisher.Mono<Void> forceStop(IService service)
      +
      +
      Specified by:
      +
      forceStop in interface ISchedule
      +
      Parameters:
      +
      service - The service to forcefully stop.
      +
      Returns:
      +
      A Mono object which can be used to forcefully stop the service with Mono.subscribe().
      +
      +
      +
    • +
    • +
      +

      forceStart

      +
      public reactor.core.publisher.Mono<Void> forceStart(IService service)
      +
      +
      Specified by:
      +
      forceStart in interface ISchedule
      +
      Parameters:
      +
      service - The service to forcefully start.
      +
      Returns:
      +
      A Mono object which can be used to forcefully start the service with Mono.subscribe().
      +
      +
      +
    • +
    • +
      +

      getProvidingPlugin

      +
      @NotNull +public @NotNull reactor.core.publisher.Mono<T> getProvidingPlugin()
      +
      +
      Returns:
      +
      A Mono object containing your plugin, for non-blocking communication.
      +
      +
      +
    • +
    • +
      +

      getMainScheduler

      +
      @Contract(pure=true) +public ReactorBukkitScheduler getMainScheduler()
      +
      +
      Returns:
      +
      The main thread which the scheduling system operates on.
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/build/docs/javadoc/io/github/simplexdevelopment/scheduler/ServiceManager.html b/build/docs/javadoc/io/github/simplexdevelopment/scheduler/ServiceManager.html new file mode 100644 index 0000000..244817d --- /dev/null +++ b/build/docs/javadoc/io/github/simplexdevelopment/scheduler/ServiceManager.html @@ -0,0 +1,315 @@ + + + + +ServiceManager (SimplexSS 1.0.0 API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class ServiceManager

+
+
java.lang.Object +
io.github.simplexdevelopment.scheduler.ServiceManager
+
+
+
+
public final class ServiceManager +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      ServiceManager

      +
      public ServiceManager()
      +
      Creates a new instance of the Service Manager class. + This class acts as a Service Pool factory, and can be used to create + both single and multithreaded Service Pools, empty service pools, as well as + retrieve existing Service Pools. It also provides methods for you to add and remove + IServices from the {ServicePool} parameter.
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      createServicePool

      +
      @Contract(pure=true, + value="_, _ -> new") +@NotNull +public @NotNull reactor.core.publisher.Mono<ServicePool> createServicePool(String poolName, + IService... services)
      +
      +
      Parameters:
      +
      poolName - The name of the service pool.
      +
      services - The services to register within the service pool.
      +
      Returns:
      +
      A Mono object which contains a ServicePool element. + This service pool will execute each service consecutively within a singular non-blocking thread.
      +
      +
      +
    • +
    • +
      +

      multithreadedServicePool

      +
      @Contract(pure=true, + value="_, _ -> new") +@NotNull +public @NotNull reactor.core.publisher.Mono<ServicePool> multithreadedServicePool(String name, + IService... services)
      +
      +
      Parameters:
      +
      name - The name of the service pool.
      +
      services - The services to register within the service pool.
      +
      Returns:
      +
      A Mono object which contains a ServicePool element. + This service pool will execute each service across a set of non-blocking threads.
      +
      +
      +
    • +
    • +
      +

      emptyServicePool

      +
      @Contract(pure=true, + value="_, _ -> new") +@NotNull +public @NotNull reactor.core.publisher.Mono<ServicePool> emptyServicePool(String poolName, + boolean multithreaded)
      +
      +
      Parameters:
      +
      poolName - The name of the service pool.
      +
      multithreaded - Whether the service pool should be multithreaded, or operate upon a single thread.
      +
      Returns:
      +
      A Mono object which contains a ServicePool element. + This pool is empty, meaning it contains no services. Any attempt to run services on this pool while it remains empty will either fail or error. + You can add services to this pool by using addToExistingPool(ServicePool, IService...), + or by using ServicePool.addService(IService).
      +
      +
      +
    • +
    • +
      +

      addToExistingPool

      +
      @Contract("_, _ -> new") +@NotNull +public @NotNull reactor.core.publisher.Mono<ServicePool> addToExistingPool(@NotNull + @NotNull ServicePool pool, + IService... services)
      +
      +
      Parameters:
      +
      pool - The service pool to add to.
      +
      services - The services to register within the service pool.
      +
      Returns:
      +
      A Mono object which contains the ServicePool element that now contains the registered services.
      +
      +
      +
    • +
    • +
      +

      takeFromExistingPool

      +
      @Contract("_, _ -> new") +@NotNull +public @NotNull reactor.core.publisher.Mono<ServicePool> takeFromExistingPool(@NotNull + @NotNull ServicePool pool, + IService... services)
      +
      +
      Parameters:
      +
      pool - The service pool to take from.
      +
      services - The services to remove from the pool.
      +
      Returns:
      +
      A Mono object which contains the ServicePool that no longer contains the removed services.
      +
      +
      +
    • +
    • +
      +

      getServicePools

      +
      @Contract(" -> new") +@NotNull +public @NotNull reactor.core.publisher.Flux<ServicePool> getServicePools()
      +
      +
      Returns:
      +
      A Flux object which contains all the service pools currently available.
      +
      +
      +
    • +
    • +
      +

      locateServiceWithinPools

      +
      @Contract(pure=true) +public boolean locateServiceWithinPools(IService service)
      +
      +
      Parameters:
      +
      service - The service to locate.
      +
      Returns:
      +
      True if the service is somewhere within a service pool, false otherwise.
      +
      +
      +
    • +
    • +
      +

      getAssociatedServicePool

      +
      @Contract("_ -> new") +@NotNull +public @NotNull reactor.core.publisher.Mono<ServicePool> getAssociatedServicePool(IService service)
      +
      +
      Parameters:
      +
      service - The service pool to call from.
      +
      Returns:
      +
      A Mono object which contains a ServicePool element which contains the specified service. + If no service pool can be found, an empty Mono is returned.
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/build/docs/javadoc/io/github/simplexdevelopment/scheduler/ServicePool.html b/build/docs/javadoc/io/github/simplexdevelopment/scheduler/ServicePool.html new file mode 100644 index 0000000..ff7a37b --- /dev/null +++ b/build/docs/javadoc/io/github/simplexdevelopment/scheduler/ServicePool.html @@ -0,0 +1,309 @@ + + + + +ServicePool (SimplexSS 1.0.0 API) + + + + + + + + + + + + + + +
+ +
+
+ +
+ +

Class ServicePool

+
+
java.lang.Object +
io.github.simplexdevelopment.scheduler.ServicePool
+
+
+
+
public final class ServicePool +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      ServicePool

      +
      public ServicePool(String name, + boolean multithreaded)
      +
      This will create a new instance of a Service Pool with a Scheduler as its main scheduler. + This should be used if you'd like to execute tasks without communicating on the main server thread.
      +
      +
      Parameters:
      +
      name - The name of this service pool.
      +
      multithreaded - Whether this service pool should be multithreaded, or operate upon a single thread.
      +
      +
      +
    • +
    • +
      +

      ServicePool

      +
      public ServicePool(String name, + org.bukkit.plugin.java.JavaPlugin plugin)
      +
      This will create a new instance of a Service Pool with the ReactorBukkitScheduler as its main scheduler. + This should be used if you'd like to execute tasks while communicating on the main server thread.
      +
      +
      Parameters:
      +
      name - The name of this service pool.
      +
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      getAssociatedServices

      +
      @Contract(pure=true) +@NotNull +public @NotNull Set<IService> getAssociatedServices()
      +
      +
      Returns:
      +
      A Set of IService objects which are registered with this pool.
      +
      +
      +
    • +
    • +
      +

      queueService

      +
      @NotNull +public @NotNull reactor.core.publisher.Mono<reactor.core.Disposable> queueService(IService service)
      +
      +
      Parameters:
      +
      service - The name of the service to queue. This should be a service that is located within this service pool. + If you name a service that is stored within another service pool, + this method will throw an error.
      +
      Returns:
      +
      A Mono object which contains a Disposable element which can be used to destroy the registered service.
      +
      +
      +
    • +
    • +
      +

      startServices

      +
      @NotNull +public @NotNull reactor.core.publisher.Flux<reactor.core.Disposable> startServices()
      +
      +
      Returns:
      +
      A Flux object which contains a collection of Disposable elements, + which can be used to destroy the registered services using stopServices(Flux).
      +
      +
      +
    • +
    • +
      +

      stopServices

      +
      @NotNull +public @NotNull reactor.core.publisher.Mono<Void> stopServices(@NotNull + @NotNull reactor.core.publisher.Flux<reactor.core.Disposable> disposableThread)
      +
      +
      Parameters:
      +
      disposableThread - A reactor.core.publisher.Flux<reactor.core.Disposable> which contains all the services that should be disposed..
      +
      Returns:
      +
      A reactor.core.publisher.Mono<Void> object which can be used to stop the services.
      +
      +
      +
    • +
    • +
      +

      stopService

      +
      @NotNull +public @NotNull reactor.core.publisher.Mono<Void> stopService(@NotNull + @NotNull String service_name, + @Nullable + @Nullable reactor.core.publisher.Mono<reactor.core.Disposable> disposable)
      +
      +
      Parameters:
      +
      service_name - The name of the service to stop.
      +
      disposable - A Disposable object which contains the service that should be disposed.
      +
      Returns:
      +
      A reactor.core.publisher.Mono<Void> object which can be used to stop the service.
      +
      +
      +
    • +
    • +
      +

      getService

      +
      @NotNull +public @NotNull reactor.core.publisher.Mono<IService> getService(String service_name)
      +
      +
      Parameters:
      +
      service_name - The name of the service to get.
      +
      Returns:
      +
      A Mono object which contains the service.
      +
      +
      +
    • +
    • +
      +

      recycle

      +
      @NotNull +public @NotNull reactor.core.publisher.Mono<ServicePool> recycle()
      +
      +
      Returns:
      +
      This service pool after being cleared of all services. + You will need to register services with this pool again before using it.
      +
      +
      +
    • +
    • +
      +

      getScheduler

      +
      @Contract(pure=true) +public reactor.core.scheduler.Scheduler getScheduler()
      +
      +
      Returns:
      +
      The Scheduler which hosts the threads for the service pool.
      +
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/build/docs/javadoc/io/github/simplexdevelopment/scheduler/package-summary.html b/build/docs/javadoc/io/github/simplexdevelopment/scheduler/package-summary.html new file mode 100644 index 0000000..704be2b --- /dev/null +++ b/build/docs/javadoc/io/github/simplexdevelopment/scheduler/package-summary.html @@ -0,0 +1,98 @@ + + + + +io.github.simplexdevelopment.scheduler (SimplexSS 1.0.0 API) + + + + + + + + + + + + + + +
+ +
+
+
+

Package io.github.simplexdevelopment.scheduler

+
+
+
package io.github.simplexdevelopment.scheduler
+
+ +
+
+
+
+ + diff --git a/build/docs/javadoc/io/github/simplexdevelopment/scheduler/package-tree.html b/build/docs/javadoc/io/github/simplexdevelopment/scheduler/package-tree.html new file mode 100644 index 0000000..e326348 --- /dev/null +++ b/build/docs/javadoc/io/github/simplexdevelopment/scheduler/package-tree.html @@ -0,0 +1,80 @@ + + + + +io.github.simplexdevelopment.scheduler Class Hierarchy (SimplexSS 1.0.0 API) + + + + + + + + + + + + + + +
+ +
+
+
+

Hierarchy For Package io.github.simplexdevelopment.scheduler

+Package Hierarchies: + +
+
+

Class Hierarchy

+
    +
  • java.lang.Object +
      +
    • io.github.simplexdevelopment.scheduler.ExecutableService (implements io.github.simplexdevelopment.api.IService)
    • +
    • io.github.simplexdevelopment.scheduler.ReactorBukkitScheduler (implements reactor.core.scheduler.Scheduler, reactor.core.scheduler.Scheduler.Worker)
    • +
    • java.lang.Record +
        +
      • io.github.simplexdevelopment.scheduler.BukkitDisposable (implements reactor.core.Disposable)
      • +
      +
    • +
    • io.github.simplexdevelopment.scheduler.SchedulingSystem<T> (implements io.github.simplexdevelopment.api.ISchedule)
    • +
    • io.github.simplexdevelopment.scheduler.ServiceManager
    • +
    • io.github.simplexdevelopment.scheduler.ServicePool
    • +
    +
  • +
+
+
+
+
+ + diff --git a/build/docs/javadoc/jquery-ui.overrides.css b/build/docs/javadoc/jquery-ui.overrides.css new file mode 100644 index 0000000..f89acb6 --- /dev/null +++ b/build/docs/javadoc/jquery-ui.overrides.css @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +.ui-state-active, +.ui-widget-content .ui-state-active, +.ui-widget-header .ui-state-active, +a.ui-button:active, +.ui-button:active, +.ui-button.ui-state-active:hover { + /* Overrides the color of selection used in jQuery UI */ + background: #F8981D; +} diff --git a/build/docs/javadoc/legal/ADDITIONAL_LICENSE_INFO b/build/docs/javadoc/legal/ADDITIONAL_LICENSE_INFO new file mode 100644 index 0000000..b62cc3e --- /dev/null +++ b/build/docs/javadoc/legal/ADDITIONAL_LICENSE_INFO @@ -0,0 +1 @@ +Please see ..\java.base\ADDITIONAL_LICENSE_INFO diff --git a/build/docs/javadoc/legal/ASSEMBLY_EXCEPTION b/build/docs/javadoc/legal/ASSEMBLY_EXCEPTION new file mode 100644 index 0000000..0d4cfb4 --- /dev/null +++ b/build/docs/javadoc/legal/ASSEMBLY_EXCEPTION @@ -0,0 +1 @@ +Please see ..\java.base\ASSEMBLY_EXCEPTION diff --git a/build/docs/javadoc/legal/LICENSE b/build/docs/javadoc/legal/LICENSE new file mode 100644 index 0000000..4ad9fe4 --- /dev/null +++ b/build/docs/javadoc/legal/LICENSE @@ -0,0 +1 @@ +Please see ..\java.base\LICENSE diff --git a/build/docs/javadoc/legal/jquery.md b/build/docs/javadoc/legal/jquery.md new file mode 100644 index 0000000..8054a34 --- /dev/null +++ b/build/docs/javadoc/legal/jquery.md @@ -0,0 +1,72 @@ +## jQuery v3.5.1 + +### jQuery License +``` +jQuery v 3.5.1 +Copyright JS Foundation and other contributors, https://js.foundation/ + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +****************************************** + +The jQuery JavaScript Library v3.5.1 also includes Sizzle.js + +Sizzle.js includes the following license: + +Copyright JS Foundation and other contributors, https://js.foundation/ + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/jquery/sizzle + +The following license applies to all parts of this software except as +documented below: + +==== + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +==== + +All files located in the node_modules and external directories are +externally maintained libraries used by this software which have their +own licenses; we recommend you read them, as their terms may differ from +the terms above. + +********************* + +``` diff --git a/build/docs/javadoc/legal/jqueryUI.md b/build/docs/javadoc/legal/jqueryUI.md new file mode 100644 index 0000000..8031bdb --- /dev/null +++ b/build/docs/javadoc/legal/jqueryUI.md @@ -0,0 +1,49 @@ +## jQuery UI v1.12.1 + +### jQuery UI License +``` +Copyright jQuery Foundation and other contributors, https://jquery.org/ + +This software consists of voluntary contributions made by many +individuals. For exact contribution history, see the revision history +available at https://github.com/jquery/jquery-ui + +The following license applies to all parts of this software except as +documented below: + +==== + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +==== + +Copyright and related rights for sample code are waived via CC0. Sample +code is defined as all source code contained within the demos directory. + +CC0: http://creativecommons.org/publicdomain/zero/1.0/ + +==== + +All files located in the node_modules and external directories are +externally maintained libraries used by this software which have their +own licenses; we recommend you read them, as their terms may differ from +the terms above. + +``` diff --git a/build/docs/javadoc/member-search-index.js b/build/docs/javadoc/member-search-index.js new file mode 100644 index 0000000..f1afd18 --- /dev/null +++ b/build/docs/javadoc/member-search-index.js @@ -0,0 +1 @@ +memberSearchIndex = [{"p":"io.github.simplexdevelopment.scheduler","c":"ServiceManager","l":"addToExistingPool(ServicePool, IService...)","u":"addToExistingPool(io.github.simplexdevelopment.scheduler.ServicePool,io.github.simplexdevelopment.api.IService...)"},{"p":"io.github.simplexdevelopment.scheduler","c":"BukkitDisposable","l":"BukkitDisposable(BukkitTask)","u":"%3Cinit%3E(org.bukkit.scheduler.BukkitTask)"},{"p":"io.github.simplexdevelopment.api","c":"Context","l":"contextCollection()"},{"p":"io.github.simplexdevelopment.impl","c":"PoolHolder","l":"contextCollection()"},{"p":"io.github.simplexdevelopment.scheduler","c":"ServiceManager","l":"createServicePool(String, IService...)","u":"createServicePool(java.lang.String,io.github.simplexdevelopment.api.IService...)"},{"p":"io.github.simplexdevelopment.scheduler","c":"ReactorBukkitScheduler","l":"createWorker()"},{"p":"io.github.simplexdevelopment.scheduler","c":"BukkitDisposable","l":"dispose()"},{"p":"io.github.simplexdevelopment.scheduler","c":"ReactorBukkitScheduler","l":"dispose()"},{"p":"io.github.simplexdevelopment.scheduler","c":"ServiceManager","l":"emptyServicePool(String, boolean)","u":"emptyServicePool(java.lang.String,boolean)"},{"p":"io.github.simplexdevelopment.scheduler","c":"BukkitDisposable","l":"equals(Object)","u":"equals(java.lang.Object)"},{"p":"io.github.simplexdevelopment.scheduler","c":"ExecutableService","l":"ExecutableService(ServicePool, String)","u":"%3Cinit%3E(io.github.simplexdevelopment.scheduler.ServicePool,java.lang.String)"},{"p":"io.github.simplexdevelopment.scheduler","c":"ExecutableService","l":"ExecutableService(ServicePool, String, Long)","u":"%3Cinit%3E(io.github.simplexdevelopment.scheduler.ServicePool,java.lang.String,java.lang.Long)"},{"p":"io.github.simplexdevelopment.scheduler","c":"ExecutableService","l":"ExecutableService(ServicePool, String, Long, Long, Boolean)","u":"%3Cinit%3E(io.github.simplexdevelopment.scheduler.ServicePool,java.lang.String,java.lang.Long,java.lang.Long,java.lang.Boolean)"},{"p":"io.github.simplexdevelopment.scheduler","c":"ExecutableService","l":"ExecutableService(ServicePool, String, Long, Long, Boolean, Boolean)","u":"%3Cinit%3E(io.github.simplexdevelopment.scheduler.ServicePool,java.lang.String,java.lang.Long,java.lang.Long,java.lang.Boolean,java.lang.Boolean)"},{"p":"io.github.simplexdevelopment.scheduler","c":"ExecutableService","l":"ExecutableService(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"io.github.simplexdevelopment.api","c":"Context","l":"fluxFromCollection()"},{"p":"io.github.simplexdevelopment.api","c":"ISchedule","l":"forceStart(IService)","u":"forceStart(io.github.simplexdevelopment.api.IService)"},{"p":"io.github.simplexdevelopment.scheduler","c":"SchedulingSystem","l":"forceStart(IService)","u":"forceStart(io.github.simplexdevelopment.api.IService)"},{"p":"io.github.simplexdevelopment.api","c":"ISchedule","l":"forceStop(IService)","u":"forceStop(io.github.simplexdevelopment.api.IService)"},{"p":"io.github.simplexdevelopment.scheduler","c":"SchedulingSystem","l":"forceStop(IService)","u":"forceStop(io.github.simplexdevelopment.api.IService)"},{"p":"io.github.simplexdevelopment.scheduler","c":"ServiceManager","l":"getAssociatedServicePool(IService)","u":"getAssociatedServicePool(io.github.simplexdevelopment.api.IService)"},{"p":"io.github.simplexdevelopment.scheduler","c":"ServicePool","l":"getAssociatedServices()"},{"p":"io.github.simplexdevelopment.api","c":"Context","l":"getContext()"},{"p":"io.github.simplexdevelopment.impl","c":"PoolHolder","l":"getContext()"},{"p":"io.github.simplexdevelopment.api","c":"IService","l":"getDelay()"},{"p":"io.github.simplexdevelopment.scheduler","c":"ExecutableService","l":"getDelay()"},{"p":"io.github.simplexdevelopment.scheduler","c":"SchedulingSystem","l":"getMainScheduler()"},{"p":"io.github.simplexdevelopment.api","c":"Identifier","l":"getName()"},{"p":"io.github.simplexdevelopment.scheduler","c":"ExecutableService","l":"getName()"},{"p":"io.github.simplexdevelopment.api","c":"Identifier","l":"getNumericalId()"},{"p":"io.github.simplexdevelopment.api","c":"IService","l":"getParentPool()"},{"p":"io.github.simplexdevelopment.scheduler","c":"ExecutableService","l":"getParentPool()"},{"p":"io.github.simplexdevelopment.api","c":"IService","l":"getPeriod()"},{"p":"io.github.simplexdevelopment.scheduler","c":"ExecutableService","l":"getPeriod()"},{"p":"io.github.simplexdevelopment.api","c":"IService","l":"getPlugin()"},{"p":"io.github.simplexdevelopment.impl","c":"ServiceImpl","l":"getPlugin()"},{"p":"io.github.simplexdevelopment.scheduler","c":"SchedulingSystem","l":"getProvidingPlugin()"},{"p":"io.github.simplexdevelopment.impl","c":"Main","l":"getScheduler()"},{"p":"io.github.simplexdevelopment.scheduler","c":"ServicePool","l":"getScheduler()"},{"p":"io.github.simplexdevelopment.scheduler","c":"ServicePool","l":"getService(String)","u":"getService(java.lang.String)"},{"p":"io.github.simplexdevelopment.api","c":"ISchedule","l":"getServiceManager()"},{"p":"io.github.simplexdevelopment.scheduler","c":"SchedulingSystem","l":"getServiceManager()"},{"p":"io.github.simplexdevelopment.scheduler","c":"ServiceManager","l":"getServicePools()"},{"p":"io.github.simplexdevelopment.api","c":"Identifier","l":"getUniqueId()"},{"p":"io.github.simplexdevelopment.scheduler","c":"BukkitDisposable","l":"hashCode()"},{"p":"io.github.simplexdevelopment.scheduler","c":"ExecutableService","l":"isCancelled()"},{"p":"io.github.simplexdevelopment.scheduler","c":"BukkitDisposable","l":"isDisposed()"},{"p":"io.github.simplexdevelopment.api","c":"IService","l":"isPeriodic()"},{"p":"io.github.simplexdevelopment.scheduler","c":"ExecutableService","l":"isPeriodic()"},{"p":"io.github.simplexdevelopment.scheduler","c":"ServiceManager","l":"locateServiceWithinPools(IService)","u":"locateServiceWithinPools(io.github.simplexdevelopment.api.IService)"},{"p":"io.github.simplexdevelopment.impl","c":"Main","l":"Main()","u":"%3Cinit%3E()"},{"p":"io.github.simplexdevelopment.scheduler","c":"ServiceManager","l":"multithreadedServicePool(String, IService...)","u":"multithreadedServicePool(java.lang.String,io.github.simplexdevelopment.api.IService...)"},{"p":"io.github.simplexdevelopment.impl","c":"Main","l":"onDisable()"},{"p":"io.github.simplexdevelopment.impl","c":"Main","l":"onEnable()"},{"p":"io.github.simplexdevelopment.impl","c":"PoolHolder","l":"PoolHolder(Main)","u":"%3Cinit%3E(io.github.simplexdevelopment.impl.Main)"},{"p":"io.github.simplexdevelopment.api","c":"ISchedule","l":"queue(IService)","u":"queue(io.github.simplexdevelopment.api.IService)"},{"p":"io.github.simplexdevelopment.scheduler","c":"SchedulingSystem","l":"queue(IService)","u":"queue(io.github.simplexdevelopment.api.IService)"},{"p":"io.github.simplexdevelopment.scheduler","c":"ServicePool","l":"queueService(IService)","u":"queueService(io.github.simplexdevelopment.api.IService)"},{"p":"io.github.simplexdevelopment.scheduler","c":"ReactorBukkitScheduler","l":"ReactorBukkitScheduler(JavaPlugin)","u":"%3Cinit%3E(org.bukkit.plugin.java.JavaPlugin)"},{"p":"io.github.simplexdevelopment.scheduler","c":"ServicePool","l":"recycle()"},{"p":"io.github.simplexdevelopment.impl","c":"Main","l":"registerServices(PoolHolder)","u":"registerServices(io.github.simplexdevelopment.impl.PoolHolder)"},{"p":"io.github.simplexdevelopment.api","c":"IService","l":"run()"},{"p":"io.github.simplexdevelopment.api","c":"ISchedule","l":"runOnce(IService)","u":"runOnce(io.github.simplexdevelopment.api.IService)"},{"p":"io.github.simplexdevelopment.scheduler","c":"SchedulingSystem","l":"runOnce(IService)","u":"runOnce(io.github.simplexdevelopment.api.IService)"},{"p":"io.github.simplexdevelopment.scheduler","c":"ReactorBukkitScheduler","l":"schedule(Runnable)","u":"schedule(java.lang.Runnable)"},{"p":"io.github.simplexdevelopment.scheduler","c":"ReactorBukkitScheduler","l":"schedule(Runnable, long, TimeUnit)","u":"schedule(java.lang.Runnable,long,java.util.concurrent.TimeUnit)"},{"p":"io.github.simplexdevelopment.scheduler","c":"ReactorBukkitScheduler","l":"schedulePeriodically(Runnable, long, long, TimeUnit)","u":"schedulePeriodically(java.lang.Runnable,long,long,java.util.concurrent.TimeUnit)"},{"p":"io.github.simplexdevelopment.scheduler","c":"SchedulingSystem","l":"SchedulingSystem(T)","u":"%3Cinit%3E(T)"},{"p":"io.github.simplexdevelopment.api","c":"ServiceException","l":"ServiceException(IService)","u":"%3Cinit%3E(io.github.simplexdevelopment.api.IService)"},{"p":"io.github.simplexdevelopment.api","c":"ServiceException","l":"ServiceException(Throwable)","u":"%3Cinit%3E(java.lang.Throwable)"},{"p":"io.github.simplexdevelopment.impl","c":"ServiceImpl","l":"ServiceImpl(Main, ServicePool)","u":"%3Cinit%3E(io.github.simplexdevelopment.impl.Main,io.github.simplexdevelopment.scheduler.ServicePool)"},{"p":"io.github.simplexdevelopment.scheduler","c":"ServiceManager","l":"ServiceManager()","u":"%3Cinit%3E()"},{"p":"io.github.simplexdevelopment.scheduler","c":"ServicePool","l":"ServicePool(String, boolean)","u":"%3Cinit%3E(java.lang.String,boolean)"},{"p":"io.github.simplexdevelopment.scheduler","c":"ServicePool","l":"ServicePool(String, JavaPlugin)","u":"%3Cinit%3E(java.lang.String,org.bukkit.plugin.java.JavaPlugin)"},{"p":"io.github.simplexdevelopment.api","c":"ServicePoolException","l":"ServicePoolException()","u":"%3Cinit%3E()"},{"p":"io.github.simplexdevelopment.api","c":"ServicePoolException","l":"ServicePoolException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"io.github.simplexdevelopment.api","c":"ServicePoolException","l":"ServicePoolException(Throwable)","u":"%3Cinit%3E(java.lang.Throwable)"},{"p":"io.github.simplexdevelopment.scheduler","c":"ExecutableService","l":"setCancelled(boolean)"},{"p":"io.github.simplexdevelopment.api","c":"Context","l":"setContext(S)"},{"p":"io.github.simplexdevelopment.impl","c":"PoolHolder","l":"setContext(ServicePool)","u":"setContext(io.github.simplexdevelopment.scheduler.ServicePool)"},{"p":"io.github.simplexdevelopment.api","c":"IService","l":"setParentPool(ServicePool)","u":"setParentPool(io.github.simplexdevelopment.scheduler.ServicePool)"},{"p":"io.github.simplexdevelopment.scheduler","c":"ExecutableService","l":"setParentPool(ServicePool)","u":"setParentPool(io.github.simplexdevelopment.scheduler.ServicePool)"},{"p":"io.github.simplexdevelopment.api","c":"IService","l":"start()"},{"p":"io.github.simplexdevelopment.impl","c":"ServiceImpl","l":"start()"},{"p":"io.github.simplexdevelopment.scheduler","c":"ServicePool","l":"startServices()"},{"p":"io.github.simplexdevelopment.api","c":"IService","l":"stop()"},{"p":"io.github.simplexdevelopment.impl","c":"ServiceImpl","l":"stop()"},{"p":"io.github.simplexdevelopment.scheduler","c":"ServicePool","l":"stopService(String, Mono)","u":"stopService(java.lang.String,reactor.core.publisher.Mono)"},{"p":"io.github.simplexdevelopment.scheduler","c":"ServicePool","l":"stopServices(Flux)","u":"stopServices(reactor.core.publisher.Flux)"},{"p":"io.github.simplexdevelopment.api","c":"ServicePoolException","l":"supplyException()"},{"p":"io.github.simplexdevelopment.api","c":"ServiceException","l":"supplyException(IService)","u":"supplyException(io.github.simplexdevelopment.api.IService)"},{"p":"io.github.simplexdevelopment.scheduler","c":"ServiceManager","l":"takeFromExistingPool(ServicePool, IService...)","u":"takeFromExistingPool(io.github.simplexdevelopment.scheduler.ServicePool,io.github.simplexdevelopment.api.IService...)"},{"p":"io.github.simplexdevelopment.scheduler","c":"BukkitDisposable","l":"task()"},{"p":"io.github.simplexdevelopment.scheduler","c":"BukkitDisposable","l":"toString()"}];updateSearchResults(); \ No newline at end of file diff --git a/build/docs/javadoc/module-search-index.js b/build/docs/javadoc/module-search-index.js new file mode 100644 index 0000000..0d59754 --- /dev/null +++ b/build/docs/javadoc/module-search-index.js @@ -0,0 +1 @@ +moduleSearchIndex = [];updateSearchResults(); \ No newline at end of file diff --git a/build/docs/javadoc/overview-summary.html b/build/docs/javadoc/overview-summary.html new file mode 100644 index 0000000..67572a0 --- /dev/null +++ b/build/docs/javadoc/overview-summary.html @@ -0,0 +1,25 @@ + + + + +SimplexSS 1.0.0 API + + + + + + + + + + +
+ +

index.html

+
+ + diff --git a/build/docs/javadoc/overview-tree.html b/build/docs/javadoc/overview-tree.html new file mode 100644 index 0000000..6213155 --- /dev/null +++ b/build/docs/javadoc/overview-tree.html @@ -0,0 +1,127 @@ + + + + +Class Hierarchy (SimplexSS 1.0.0 API) + + + + + + + + + + + + + + +
+ +
+
+ +
+

Class Hierarchy

+ +
+
+

Interface Hierarchy

+
    +
  • io.github.simplexdevelopment.api.Context<S>
  • +
  • io.github.simplexdevelopment.api.Identifier + +
  • +
  • io.github.simplexdevelopment.api.ISchedule
  • +
  • java.lang.Runnable +
      +
    • io.github.simplexdevelopment.api.IService (also extends io.github.simplexdevelopment.api.Identifier)
    • +
    +
  • +
+
+
+
+
+ + diff --git a/build/docs/javadoc/package-search-index.js b/build/docs/javadoc/package-search-index.js new file mode 100644 index 0000000..e0ef01c --- /dev/null +++ b/build/docs/javadoc/package-search-index.js @@ -0,0 +1 @@ +packageSearchIndex = [{"l":"All Packages","u":"allpackages-index.html"},{"l":"io.github.simplexdevelopment.api"},{"l":"io.github.simplexdevelopment.impl"},{"l":"io.github.simplexdevelopment.scheduler"}];updateSearchResults(); \ No newline at end of file diff --git a/build/docs/javadoc/resources/glass.png b/build/docs/javadoc/resources/glass.png new file mode 100644 index 0000000..a7f591f Binary files /dev/null and b/build/docs/javadoc/resources/glass.png differ diff --git a/build/docs/javadoc/resources/x.png b/build/docs/javadoc/resources/x.png new file mode 100644 index 0000000..30548a7 Binary files /dev/null and b/build/docs/javadoc/resources/x.png differ diff --git a/build/docs/javadoc/script-dir/images/ui-bg_glass_55_fbf9ee_1x400.png b/build/docs/javadoc/script-dir/images/ui-bg_glass_55_fbf9ee_1x400.png new file mode 100644 index 0000000..34abd18 Binary files /dev/null and b/build/docs/javadoc/script-dir/images/ui-bg_glass_55_fbf9ee_1x400.png differ diff --git a/build/docs/javadoc/script-dir/images/ui-bg_glass_65_dadada_1x400.png b/build/docs/javadoc/script-dir/images/ui-bg_glass_65_dadada_1x400.png new file mode 100644 index 0000000..f058a93 Binary files /dev/null and b/build/docs/javadoc/script-dir/images/ui-bg_glass_65_dadada_1x400.png differ diff --git a/build/docs/javadoc/script-dir/images/ui-bg_glass_75_dadada_1x400.png b/build/docs/javadoc/script-dir/images/ui-bg_glass_75_dadada_1x400.png new file mode 100644 index 0000000..2ce04c1 Binary files /dev/null and b/build/docs/javadoc/script-dir/images/ui-bg_glass_75_dadada_1x400.png differ diff --git a/build/docs/javadoc/script-dir/images/ui-bg_glass_75_e6e6e6_1x400.png b/build/docs/javadoc/script-dir/images/ui-bg_glass_75_e6e6e6_1x400.png new file mode 100644 index 0000000..a90afb8 Binary files /dev/null and b/build/docs/javadoc/script-dir/images/ui-bg_glass_75_e6e6e6_1x400.png differ diff --git a/build/docs/javadoc/script-dir/images/ui-bg_glass_95_fef1ec_1x400.png b/build/docs/javadoc/script-dir/images/ui-bg_glass_95_fef1ec_1x400.png new file mode 100644 index 0000000..dbe091f Binary files /dev/null and b/build/docs/javadoc/script-dir/images/ui-bg_glass_95_fef1ec_1x400.png differ diff --git a/build/docs/javadoc/script-dir/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/build/docs/javadoc/script-dir/images/ui-bg_highlight-soft_75_cccccc_1x100.png new file mode 100644 index 0000000..5dc3593 Binary files /dev/null and b/build/docs/javadoc/script-dir/images/ui-bg_highlight-soft_75_cccccc_1x100.png differ diff --git a/build/docs/javadoc/script-dir/images/ui-icons_222222_256x240.png b/build/docs/javadoc/script-dir/images/ui-icons_222222_256x240.png new file mode 100644 index 0000000..e723e17 Binary files /dev/null and b/build/docs/javadoc/script-dir/images/ui-icons_222222_256x240.png differ diff --git a/build/docs/javadoc/script-dir/images/ui-icons_2e83ff_256x240.png b/build/docs/javadoc/script-dir/images/ui-icons_2e83ff_256x240.png new file mode 100644 index 0000000..1f5f497 Binary files /dev/null and b/build/docs/javadoc/script-dir/images/ui-icons_2e83ff_256x240.png differ diff --git a/build/docs/javadoc/script-dir/images/ui-icons_454545_256x240.png b/build/docs/javadoc/script-dir/images/ui-icons_454545_256x240.png new file mode 100644 index 0000000..618f5b0 Binary files /dev/null and b/build/docs/javadoc/script-dir/images/ui-icons_454545_256x240.png differ diff --git a/build/docs/javadoc/script-dir/images/ui-icons_888888_256x240.png b/build/docs/javadoc/script-dir/images/ui-icons_888888_256x240.png new file mode 100644 index 0000000..ee5e33f Binary files /dev/null and b/build/docs/javadoc/script-dir/images/ui-icons_888888_256x240.png differ diff --git a/build/docs/javadoc/script-dir/images/ui-icons_cd0a0a_256x240.png b/build/docs/javadoc/script-dir/images/ui-icons_cd0a0a_256x240.png new file mode 100644 index 0000000..7e8ebc1 Binary files /dev/null and b/build/docs/javadoc/script-dir/images/ui-icons_cd0a0a_256x240.png differ diff --git a/build/docs/javadoc/script-dir/jquery-3.5.1.min.js b/build/docs/javadoc/script-dir/jquery-3.5.1.min.js new file mode 100644 index 0000000..b061403 --- /dev/null +++ b/build/docs/javadoc/script-dir/jquery-3.5.1.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.5.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.5.1",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,j=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function qe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function Le(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):("number"==typeof f.top&&(f.top+="px"),"number"==typeof f.left&&(f.left+="px"),c.css(f))}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=$e(y.pixelPosition,function(e,t){if(t)return t=Be(e,n),Me.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0a;a++)for(s in o[a])n=o[a][s],o[a].hasOwnProperty(s)&&void 0!==n&&(e[s]=t.isPlainObject(n)?t.isPlainObject(e[s])?t.widget.extend({},e[s],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,s){var n=s.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=i.call(arguments,1),l=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(l=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(l=i&&i.jquery?l.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):l=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new s(o,this))})),l}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"
",options:{classes:{},disabled:!1,create:null},_createWidget:function(i,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=e++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),i),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var l=s.match(/^([\w:-]*)\s*(.*)$/),h=l[1]+o.eventNamespace,c=l[2];c?n.on(h,c,r):i.on(h,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,l=/top|center|bottom/,h=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("
"),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.widthi?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};h>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),l.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,l=n-r,h=r+e.collisionWidth-a-n;e.collisionWidth>a?l>0&&0>=h?(i=t.left+l+e.collisionWidth-a-n,t.left+=l-i):t.left=h>0&&0>=l?n:l>h?n+a-e.collisionWidth:n:l>0?t.left+=l:h>0?t.left-=h:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,l=n-r,h=r+e.collisionHeight-a-n;e.collisionHeight>a?l>0&&0>=h?(i=t.top+l+e.collisionHeight-a-n,t.top+=l-i):t.top=h>0&&0>=l?n:l>h?n+a-e.collisionHeight:n:l>0?t.top+=l:h>0?t.top-=h:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,l=n.isWindow?n.scrollLeft:n.offset.left,h=t.left-e.collisionPosition.marginLeft,c=h-l,u=h+e.collisionWidth-r-l,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-l,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,l=n.isWindow?n.scrollTop:n.offset.top,h=t.top-e.collisionPosition.marginTop,c=h-l,u=h+e.collisionHeight-r-l,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,g=-2*e.offset[1];0>c?(s=t.top+p+f+g+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+g)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+g-l,(i>0||u>a(i))&&(t.top+=p+f+g))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.ui.safeActiveElement=function(t){var e;try{e=t.activeElement}catch(i){e=t.body}return e||(e=t.body),e.nodeName||(e=t.body),e},t.widget("ui.menu",{version:"1.12.1",defaultElement:"
    ",delay:300,options:{icons:{submenu:"ui-icon-caret-1-e"},items:"> *",menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.element.uniqueId().attr({role:this.options.role,tabIndex:0}),this._addClass("ui-menu","ui-widget ui-widget-content"),this._on({"mousedown .ui-menu-item":function(t){t.preventDefault()},"click .ui-menu-item":function(e){var i=t(e.target),s=t(t.ui.safeActiveElement(this.document[0]));!this.mouseHandled&&i.not(".ui-state-disabled").length&&(this.select(e),e.isPropagationStopped()||(this.mouseHandled=!0),i.has(".ui-menu").length?this.expand(e):!this.element.is(":focus")&&s.closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(e){if(!this.previousFilter){var i=t(e.target).closest(".ui-menu-item"),s=t(e.currentTarget);i[0]===s[0]&&(this._removeClass(s.siblings().children(".ui-state-active"),null,"ui-state-active"),this.focus(e,s))}},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(t,e){var i=this.active||this.element.find(this.options.items).eq(0);e||this.focus(t,i)},blur:function(e){this._delay(function(){var i=!t.contains(this.element[0],t.ui.safeActiveElement(this.document[0]));i&&this.collapseAll(e)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){this._closeOnDocumentClick(t)&&this.collapseAll(t),this.mouseHandled=!1}})},_destroy:function(){var e=this.element.find(".ui-menu-item").removeAttr("role aria-disabled"),i=e.children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup");this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled tabIndex").removeUniqueId().show(),i.children().each(function(){var e=t(this);e.data("ui-menu-submenu-caret")&&e.remove()})},_keydown:function(e){var i,s,n,o,a=!0;switch(e.keyCode){case t.ui.keyCode.PAGE_UP:this.previousPage(e);break;case t.ui.keyCode.PAGE_DOWN:this.nextPage(e);break;case t.ui.keyCode.HOME:this._move("first","first",e);break;case t.ui.keyCode.END:this._move("last","last",e);break;case t.ui.keyCode.UP:this.previous(e);break;case t.ui.keyCode.DOWN:this.next(e);break;case t.ui.keyCode.LEFT:this.collapse(e);break;case t.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(e);break;case t.ui.keyCode.ENTER:case t.ui.keyCode.SPACE:this._activate(e);break;case t.ui.keyCode.ESCAPE:this.collapse(e);break;default:a=!1,s=this.previousFilter||"",o=!1,n=e.keyCode>=96&&105>=e.keyCode?""+(e.keyCode-96):String.fromCharCode(e.keyCode),clearTimeout(this.filterTimer),n===s?o=!0:n=s+n,i=this._filterMenuItems(n),i=o&&-1!==i.index(this.active.next())?this.active.nextAll(".ui-menu-item"):i,i.length||(n=String.fromCharCode(e.keyCode),i=this._filterMenuItems(n)),i.length?(this.focus(e,i),this.previousFilter=n,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}a&&e.preventDefault()},_activate:function(t){this.active&&!this.active.is(".ui-state-disabled")&&(this.active.children("[aria-haspopup='true']").length?this.expand(t):this.select(t))},refresh:function(){var e,i,s,n,o,a=this,r=this.options.icons.submenu,l=this.element.find(this.options.menus);this._toggleClass("ui-menu-icons",null,!!this.element.find(".ui-icon").length),s=l.filter(":not(.ui-menu)").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var e=t(this),i=e.prev(),s=t("").data("ui-menu-submenu-caret",!0);a._addClass(s,"ui-menu-icon","ui-icon "+r),i.attr("aria-haspopup","true").prepend(s),e.attr("aria-labelledby",i.attr("id"))}),this._addClass(s,"ui-menu","ui-widget ui-widget-content ui-front"),e=l.add(this.element),i=e.find(this.options.items),i.not(".ui-menu-item").each(function(){var e=t(this);a._isDivider(e)&&a._addClass(e,"ui-menu-divider","ui-widget-content")}),n=i.not(".ui-menu-item, .ui-menu-divider"),o=n.children().not(".ui-menu").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),this._addClass(n,"ui-menu-item")._addClass(o,"ui-menu-item-wrapper"),i.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!t.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(t,e){if("icons"===t){var i=this.element.find(".ui-menu-icon");this._removeClass(i,null,this.options.icons.submenu)._addClass(i,null,e.submenu)}this._super(t,e)},_setOptionDisabled:function(t){this._super(t),this.element.attr("aria-disabled",t+""),this._toggleClass(null,"ui-state-disabled",!!t)},focus:function(t,e){var i,s,n;this.blur(t,t&&"focus"===t.type),this._scrollIntoView(e),this.active=e.first(),s=this.active.children(".ui-menu-item-wrapper"),this._addClass(s,null,"ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",s.attr("id")),n=this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper"),this._addClass(n,null,"ui-state-active"),t&&"keydown"===t.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),i=e.children(".ui-menu"),i.length&&t&&/^mouse/.test(t.type)&&this._startOpening(i),this.activeMenu=e.parent(),this._trigger("focus",t,{item:e})},_scrollIntoView:function(e){var i,s,n,o,a,r;this._hasScroll()&&(i=parseFloat(t.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(t.css(this.activeMenu[0],"paddingTop"))||0,n=e.offset().top-this.activeMenu.offset().top-i-s,o=this.activeMenu.scrollTop(),a=this.activeMenu.height(),r=e.outerHeight(),0>n?this.activeMenu.scrollTop(o+n):n+r>a&&this.activeMenu.scrollTop(o+n-a+r))},blur:function(t,e){e||clearTimeout(this.timer),this.active&&(this._removeClass(this.active.children(".ui-menu-item-wrapper"),null,"ui-state-active"),this._trigger("blur",t,{item:this.active}),this.active=null)},_startOpening:function(t){clearTimeout(this.timer),"true"===t.attr("aria-hidden")&&(this.timer=this._delay(function(){this._close(),this._open(t)},this.delay))},_open:function(e){var i=t.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(e.parents(".ui-menu")).hide().attr("aria-hidden","true"),e.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(i)},collapseAll:function(e,i){clearTimeout(this.timer),this.timer=this._delay(function(){var s=i?this.element:t(e&&e.target).closest(this.element.find(".ui-menu"));s.length||(s=this.element),this._close(s),this.blur(e),this._removeClass(s.find(".ui-state-active"),null,"ui-state-active"),this.activeMenu=s},this.delay)},_close:function(t){t||(t=this.active?this.active.parent():this.element),t.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false")},_closeOnDocumentClick:function(e){return!t(e.target).closest(".ui-menu").length},_isDivider:function(t){return!/[^\-\u2014\u2013\s]/.test(t.text())},collapse:function(t){var e=this.active&&this.active.parent().closest(".ui-menu-item",this.element);e&&e.length&&(this._close(),this.focus(t,e))},expand:function(t){var e=this.active&&this.active.children(".ui-menu ").find(this.options.items).first();e&&e.length&&(this._open(e.parent()),this._delay(function(){this.focus(t,e)}))},next:function(t){this._move("next","first",t)},previous:function(t){this._move("prev","last",t)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_move:function(t,e,i){var s;this.active&&(s="first"===t||"last"===t?this.active["first"===t?"prevAll":"nextAll"](".ui-menu-item").eq(-1):this.active[t+"All"](".ui-menu-item").eq(0)),s&&s.length&&this.active||(s=this.activeMenu.find(this.options.items)[e]()),this.focus(i,s)},nextPage:function(e){var i,s,n;return this.active?(this.isLastItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.nextAll(".ui-menu-item").each(function(){return i=t(this),0>i.offset().top-s-n}),this.focus(e,i)):this.focus(e,this.activeMenu.find(this.options.items)[this.active?"last":"first"]())),void 0):(this.next(e),void 0)},previousPage:function(e){var i,s,n;return this.active?(this.isFirstItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.prevAll(".ui-menu-item").each(function(){return i=t(this),i.offset().top-s+n>0}),this.focus(e,i)):this.focus(e,this.activeMenu.find(this.options.items).first())),void 0):(this.next(e),void 0)},_hasScroll:function(){return this.element.outerHeight()",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,_create:function(){var e,i,s,n=this.element[0].nodeName.toLowerCase(),o="textarea"===n,a="input"===n;this.isMultiLine=o||!a&&this._isContentEditable(this.element),this.valueMethod=this.element[o||a?"val":"text"],this.isNewMenu=!0,this._addClass("ui-autocomplete-input"),this.element.attr("autocomplete","off"),this._on(this.element,{keydown:function(n){if(this.element.prop("readOnly"))return e=!0,s=!0,i=!0,void 0;e=!1,s=!1,i=!1;var o=t.ui.keyCode;switch(n.keyCode){case o.PAGE_UP:e=!0,this._move("previousPage",n);break;case o.PAGE_DOWN:e=!0,this._move("nextPage",n);break;case o.UP:e=!0,this._keyEvent("previous",n);break;case o.DOWN:e=!0,this._keyEvent("next",n);break;case o.ENTER:this.menu.active&&(e=!0,n.preventDefault(),this.menu.select(n));break;case o.TAB:this.menu.active&&this.menu.select(n);break;case o.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(n),n.preventDefault());break;default:i=!0,this._searchTimeout(n)}},keypress:function(s){if(e)return e=!1,(!this.isMultiLine||this.menu.element.is(":visible"))&&s.preventDefault(),void 0;if(!i){var n=t.ui.keyCode;switch(s.keyCode){case n.PAGE_UP:this._move("previousPage",s);break;case n.PAGE_DOWN:this._move("nextPage",s);break;case n.UP:this._keyEvent("previous",s);break;case n.DOWN:this._keyEvent("next",s)}}},input:function(t){return s?(s=!1,t.preventDefault(),void 0):(this._searchTimeout(t),void 0)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(t){return this.cancelBlur?(delete this.cancelBlur,void 0):(clearTimeout(this.searching),this.close(t),this._change(t),void 0)}}),this._initSource(),this.menu=t("
      ").appendTo(this._appendTo()).menu({role:null}).hide().menu("instance"),this._addClass(this.menu.element,"ui-autocomplete","ui-front"),this._on(this.menu.element,{mousedown:function(e){e.preventDefault(),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,this.element[0]!==t.ui.safeActiveElement(this.document[0])&&this.element.trigger("focus")})},menufocus:function(e,i){var s,n;return this.isNewMenu&&(this.isNewMenu=!1,e.originalEvent&&/^mouse/.test(e.originalEvent.type))?(this.menu.blur(),this.document.one("mousemove",function(){t(e.target).trigger(e.originalEvent)}),void 0):(n=i.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",e,{item:n})&&e.originalEvent&&/^key/.test(e.originalEvent.type)&&this._value(n.value),s=i.item.attr("aria-label")||n.value,s&&t.trim(s).length&&(this.liveRegion.children().hide(),t("
      ").text(s).appendTo(this.liveRegion)),void 0)},menuselect:function(e,i){var s=i.item.data("ui-autocomplete-item"),n=this.previous;this.element[0]!==t.ui.safeActiveElement(this.document[0])&&(this.element.trigger("focus"),this.previous=n,this._delay(function(){this.previous=n,this.selectedItem=s})),!1!==this._trigger("select",e,{item:s})&&this._value(s.value),this.term=this._value(),this.close(e),this.selectedItem=s}}),this.liveRegion=t("
      ",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).appendTo(this.document[0].body),this._addClass(this.liveRegion,null,"ui-helper-hidden-accessible"),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(t,e){this._super(t,e),"source"===t&&this._initSource(),"appendTo"===t&&this.menu.element.appendTo(this._appendTo()),"disabled"===t&&e&&this.xhr&&this.xhr.abort()},_isEventTargetInWidget:function(e){var i=this.menu.element[0];return e.target===this.element[0]||e.target===i||t.contains(i,e.target)},_closeOnClickOutside:function(t){this._isEventTargetInWidget(t)||this.close()},_appendTo:function(){var e=this.options.appendTo;return e&&(e=e.jquery||e.nodeType?t(e):this.document.find(e).eq(0)),e&&e[0]||(e=this.element.closest(".ui-front, dialog")),e.length||(e=this.document[0].body),e},_initSource:function(){var e,i,s=this;t.isArray(this.options.source)?(e=this.options.source,this.source=function(i,s){s(t.ui.autocomplete.filter(e,i.term))}):"string"==typeof this.options.source?(i=this.options.source,this.source=function(e,n){s.xhr&&s.xhr.abort(),s.xhr=t.ajax({url:i,data:e,dataType:"json",success:function(t){n(t)},error:function(){n([])}})}):this.source=this.options.source},_searchTimeout:function(t){clearTimeout(this.searching),this.searching=this._delay(function(){var e=this.term===this._value(),i=this.menu.element.is(":visible"),s=t.altKey||t.ctrlKey||t.metaKey||t.shiftKey;(!e||e&&!i&&!s)&&(this.selectedItem=null,this.search(null,t))},this.options.delay)},search:function(t,e){return t=null!=t?t:this._value(),this.term=this._value(),t.length").append(t("
      ").text(i.label)).appendTo(e)},_move:function(t,e){return this.menu.element.is(":visible")?this.menu.isFirstItem()&&/^previous/.test(t)||this.menu.isLastItem()&&/^next/.test(t)?(this.isMultiLine||this._value(this.term),this.menu.blur(),void 0):(this.menu[t](e),void 0):(this.search(null,e),void 0)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(t,e){(!this.isMultiLine||this.menu.element.is(":visible"))&&(this._move(t,e),e.preventDefault())},_isContentEditable:function(t){if(!t.length)return!1;var e=t.prop("contentEditable");return"inherit"===e?this._isContentEditable(t.parent()):"true"===e}}),t.extend(t.ui.autocomplete,{escapeRegex:function(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(e,i){var s=RegExp(t.ui.autocomplete.escapeRegex(i),"i");return t.grep(e,function(t){return s.test(t.label||t.value||t)})}}),t.widget("ui.autocomplete",t.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(t){return t+(t>1?" results are":" result is")+" available, use up and down arrow keys to navigate."}}},__response:function(e){var i;this._superApply(arguments),this.options.disabled||this.cancelSearch||(i=e&&e.length?this.options.messages.results(e.length):this.options.messages.noResults,this.liveRegion.children().hide(),t("
      ").text(i).appendTo(this.liveRegion))}}),t.ui.autocomplete}); \ No newline at end of file diff --git a/build/docs/javadoc/script-dir/jquery-ui.structure.min.css b/build/docs/javadoc/script-dir/jquery-ui.structure.min.css new file mode 100644 index 0000000..e880892 --- /dev/null +++ b/build/docs/javadoc/script-dir/jquery-ui.structure.min.css @@ -0,0 +1,5 @@ +/*! jQuery UI - v1.12.1 - 2018-12-06 +* http://jqueryui.com +* Copyright jQuery Foundation and other contributors; Licensed MIT */ + +.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important;pointer-events:none}.ui-icon{display:inline-block;vertical-align:middle;margin-top:-.25em;position:relative;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-icon-block{left:50%;margin-left:-8px;display:block}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-menu{list-style:none;padding:0;margin:0;display:block;outline:0}.ui-menu .ui-menu{position:absolute}.ui-menu .ui-menu-item{margin:0;cursor:pointer;list-style-image:url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7")}.ui-menu .ui-menu-item-wrapper{position:relative;padding:3px 1em 3px .4em}.ui-menu .ui-menu-divider{margin:5px 0;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-state-focus,.ui-menu .ui-state-active{margin:-1px}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item-wrapper{padding-left:2em}.ui-menu .ui-icon{position:absolute;top:0;bottom:0;left:.2em;margin:auto 0}.ui-menu .ui-menu-icon{left:auto;right:0} \ No newline at end of file diff --git a/build/docs/javadoc/script.js b/build/docs/javadoc/script.js new file mode 100644 index 0000000..864989c --- /dev/null +++ b/build/docs/javadoc/script.js @@ -0,0 +1,132 @@ +/* + * Copyright (c) 2013, 2020, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +var moduleSearchIndex; +var packageSearchIndex; +var typeSearchIndex; +var memberSearchIndex; +var tagSearchIndex; +function loadScripts(doc, tag) { + createElem(doc, tag, 'search.js'); + + createElem(doc, tag, 'module-search-index.js'); + createElem(doc, tag, 'package-search-index.js'); + createElem(doc, tag, 'type-search-index.js'); + createElem(doc, tag, 'member-search-index.js'); + createElem(doc, tag, 'tag-search-index.js'); +} + +function createElem(doc, tag, path) { + var script = doc.createElement(tag); + var scriptElement = doc.getElementsByTagName(tag)[0]; + script.src = pathtoroot + path; + scriptElement.parentNode.insertBefore(script, scriptElement); +} + +function show(tableId, selected, columns) { + if (tableId !== selected) { + document.querySelectorAll('div.' + tableId + ':not(.' + selected + ')') + .forEach(function(elem) { + elem.style.display = 'none'; + }); + } + document.querySelectorAll('div.' + selected) + .forEach(function(elem, index) { + elem.style.display = ''; + var isEvenRow = index % (columns * 2) < columns; + elem.classList.remove(isEvenRow ? oddRowColor : evenRowColor); + elem.classList.add(isEvenRow ? evenRowColor : oddRowColor); + }); + updateTabs(tableId, selected); +} + +function updateTabs(tableId, selected) { + document.querySelector('div#' + tableId +' .summary-table') + .setAttribute('aria-labelledby', selected); + document.querySelectorAll('button[id^="' + tableId + '"]') + .forEach(function(tab, index) { + if (selected === tab.id || (tableId === selected && index === 0)) { + tab.className = activeTableTab; + tab.setAttribute('aria-selected', true); + tab.setAttribute('tabindex',0); + } else { + tab.className = tableTab; + tab.setAttribute('aria-selected', false); + tab.setAttribute('tabindex',-1); + } + }); +} + +function switchTab(e) { + var selected = document.querySelector('[aria-selected=true]'); + if (selected) { + if ((e.keyCode === 37 || e.keyCode === 38) && selected.previousSibling) { + // left or up arrow key pressed: move focus to previous tab + selected.previousSibling.click(); + selected.previousSibling.focus(); + e.preventDefault(); + } else if ((e.keyCode === 39 || e.keyCode === 40) && selected.nextSibling) { + // right or down arrow key pressed: move focus to next tab + selected.nextSibling.click(); + selected.nextSibling.focus(); + e.preventDefault(); + } + } +} + +var updateSearchResults = function() {}; + +function indexFilesLoaded() { + return moduleSearchIndex + && packageSearchIndex + && typeSearchIndex + && memberSearchIndex + && tagSearchIndex; +} + +// Workaround for scroll position not being included in browser history (8249133) +document.addEventListener("DOMContentLoaded", function(e) { + var contentDiv = document.querySelector("div.flex-content"); + window.addEventListener("popstate", function(e) { + if (e.state !== null) { + contentDiv.scrollTop = e.state; + } + }); + window.addEventListener("hashchange", function(e) { + history.replaceState(contentDiv.scrollTop, document.title); + }); + contentDiv.addEventListener("scroll", function(e) { + var timeoutID; + if (!timeoutID) { + timeoutID = setTimeout(function() { + history.replaceState(contentDiv.scrollTop, document.title); + timeoutID = null; + }, 100); + } + }); + if (!location.hash) { + history.replaceState(contentDiv.scrollTop, document.title); + } +}); diff --git a/build/docs/javadoc/search.js b/build/docs/javadoc/search.js new file mode 100644 index 0000000..db3b2f4 --- /dev/null +++ b/build/docs/javadoc/search.js @@ -0,0 +1,354 @@ +/* + * Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +var noResult = {l: "No results found"}; +var loading = {l: "Loading search index..."}; +var catModules = "Modules"; +var catPackages = "Packages"; +var catTypes = "Classes and Interfaces"; +var catMembers = "Members"; +var catSearchTags = "Search Tags"; +var highlight = "$&"; +var searchPattern = ""; +var fallbackPattern = ""; +var RANKING_THRESHOLD = 2; +var NO_MATCH = 0xffff; +var MIN_RESULTS = 3; +var MAX_RESULTS = 500; +var UNNAMED = ""; +function escapeHtml(str) { + return str.replace(//g, ">"); +} +function getHighlightedText(item, matcher, fallbackMatcher) { + var escapedItem = escapeHtml(item); + var highlighted = escapedItem.replace(matcher, highlight); + if (highlighted === escapedItem) { + highlighted = escapedItem.replace(fallbackMatcher, highlight) + } + return highlighted; +} +function getURLPrefix(ui) { + var urlPrefix=""; + var slash = "/"; + if (ui.item.category === catModules) { + return ui.item.l + slash; + } else if (ui.item.category === catPackages && ui.item.m) { + return ui.item.m + slash; + } else if (ui.item.category === catTypes || ui.item.category === catMembers) { + if (ui.item.m) { + urlPrefix = ui.item.m + slash; + } else { + $.each(packageSearchIndex, function(index, item) { + if (item.m && ui.item.p === item.l) { + urlPrefix = item.m + slash; + } + }); + } + } + return urlPrefix; +} +function createSearchPattern(term) { + var pattern = ""; + var isWordToken = false; + term.replace(/,\s*/g, ", ").trim().split(/\s+/).forEach(function(w, index) { + if (index > 0) { + // whitespace between identifiers is significant + pattern += (isWordToken && /^\w/.test(w)) ? "\\s+" : "\\s*"; + } + var tokens = w.split(/(?=[A-Z,.()<>[\/])/); + for (var i = 0; i < tokens.length; i++) { + var s = tokens[i]; + if (s === "") { + continue; + } + pattern += $.ui.autocomplete.escapeRegex(s); + isWordToken = /\w$/.test(s); + if (isWordToken) { + pattern += "([a-z0-9_$<>\\[\\]]*?)"; + } + } + }); + return pattern; +} +function createMatcher(pattern, flags) { + var isCamelCase = /[A-Z]/.test(pattern); + return new RegExp(pattern, flags + (isCamelCase ? "" : "i")); +} +var watermark = 'Search'; +$(function() { + var search = $("#search-input"); + var reset = $("#reset-button"); + search.val(''); + search.prop("disabled", false); + reset.prop("disabled", false); + search.val(watermark).addClass('watermark'); + search.blur(function() { + if ($(this).val().length === 0) { + $(this).val(watermark).addClass('watermark'); + } + }); + search.on('click keydown paste', function() { + if ($(this).val() === watermark) { + $(this).val('').removeClass('watermark'); + } + }); + reset.click(function() { + search.val('').focus(); + }); + search.focus()[0].setSelectionRange(0, 0); +}); +$.widget("custom.catcomplete", $.ui.autocomplete, { + _create: function() { + this._super(); + this.widget().menu("option", "items", "> :not(.ui-autocomplete-category)"); + }, + _renderMenu: function(ul, items) { + var rMenu = this; + var currentCategory = ""; + rMenu.menu.bindings = $(); + $.each(items, function(index, item) { + var li; + if (item.category && item.category !== currentCategory) { + ul.append("
    • " + item.category + "
    • "); + currentCategory = item.category; + } + li = rMenu._renderItemData(ul, item); + if (item.category) { + li.attr("aria-label", item.category + " : " + item.l); + li.attr("class", "result-item"); + } else { + li.attr("aria-label", item.l); + li.attr("class", "result-item"); + } + }); + }, + _renderItem: function(ul, item) { + var label = ""; + var matcher = createMatcher(escapeHtml(searchPattern), "g"); + var fallbackMatcher = new RegExp(fallbackPattern, "gi") + if (item.category === catModules) { + label = getHighlightedText(item.l, matcher, fallbackMatcher); + } else if (item.category === catPackages) { + label = getHighlightedText(item.l, matcher, fallbackMatcher); + } else if (item.category === catTypes) { + label = (item.p && item.p !== UNNAMED) + ? getHighlightedText(item.p + "." + item.l, matcher, fallbackMatcher) + : getHighlightedText(item.l, matcher, fallbackMatcher); + } else if (item.category === catMembers) { + label = (item.p && item.p !== UNNAMED) + ? getHighlightedText(item.p + "." + item.c + "." + item.l, matcher, fallbackMatcher) + : getHighlightedText(item.c + "." + item.l, matcher, fallbackMatcher); + } else if (item.category === catSearchTags) { + label = getHighlightedText(item.l, matcher, fallbackMatcher); + } else { + label = item.l; + } + var li = $("
    • ").appendTo(ul); + var div = $("
      ").appendTo(li); + if (item.category === catSearchTags && item.h) { + if (item.d) { + div.html(label + " (" + item.h + ")
      " + + item.d + "
      "); + } else { + div.html(label + " (" + item.h + ")"); + } + } else { + if (item.m) { + div.html(item.m + "/" + label); + } else { + div.html(label); + } + } + return li; + } +}); +function rankMatch(match, category) { + if (!match) { + return NO_MATCH; + } + var index = match.index; + var input = match.input; + var leftBoundaryMatch = 2; + var periferalMatch = 0; + // make sure match is anchored on a left word boundary + if (index === 0 || /\W/.test(input[index - 1]) || "_" === input[index]) { + leftBoundaryMatch = 0; + } else if ("_" === input[index - 1] || (input[index] === input[index].toUpperCase() && !/^[A-Z0-9_$]+$/.test(input))) { + leftBoundaryMatch = 1; + } + var matchEnd = index + match[0].length; + var leftParen = input.indexOf("("); + var endOfName = leftParen > -1 ? leftParen : input.length; + // exclude peripheral matches + if (category !== catModules && category !== catSearchTags) { + var delim = category === catPackages ? "/" : "."; + if (leftParen > -1 && leftParen < index) { + periferalMatch += 2; + } else if (input.lastIndexOf(delim, endOfName) >= matchEnd) { + periferalMatch += 2; + } + } + var delta = match[0].length === endOfName ? 0 : 1; // rank full match higher than partial match + for (var i = 1; i < match.length; i++) { + // lower ranking if parts of the name are missing + if (match[i]) + delta += match[i].length; + } + if (category === catTypes) { + // lower ranking if a type name contains unmatched camel-case parts + if (/[A-Z]/.test(input.substring(matchEnd))) + delta += 5; + if (/[A-Z]/.test(input.substring(0, index))) + delta += 5; + } + return leftBoundaryMatch + periferalMatch + (delta / 200); + +} +function doSearch(request, response) { + var result = []; + searchPattern = createSearchPattern(request.term); + fallbackPattern = createSearchPattern(request.term.toLowerCase()); + if (searchPattern === "") { + return this.close(); + } + var camelCaseMatcher = createMatcher(searchPattern, ""); + var fallbackMatcher = new RegExp(fallbackPattern, "i"); + + function searchIndexWithMatcher(indexArray, matcher, category, nameFunc) { + if (indexArray) { + var newResults = []; + $.each(indexArray, function (i, item) { + item.category = category; + var ranking = rankMatch(matcher.exec(nameFunc(item)), category); + if (ranking < RANKING_THRESHOLD) { + newResults.push({ranking: ranking, item: item}); + } + return newResults.length <= MAX_RESULTS; + }); + return newResults.sort(function(e1, e2) { + return e1.ranking - e2.ranking; + }).map(function(e) { + return e.item; + }); + } + return []; + } + function searchIndex(indexArray, category, nameFunc) { + var primaryResults = searchIndexWithMatcher(indexArray, camelCaseMatcher, category, nameFunc); + result = result.concat(primaryResults); + if (primaryResults.length <= MIN_RESULTS && !camelCaseMatcher.ignoreCase) { + var secondaryResults = searchIndexWithMatcher(indexArray, fallbackMatcher, category, nameFunc); + result = result.concat(secondaryResults.filter(function (item) { + return primaryResults.indexOf(item) === -1; + })); + } + } + + searchIndex(moduleSearchIndex, catModules, function(item) { return item.l; }); + searchIndex(packageSearchIndex, catPackages, function(item) { + return (item.m && request.term.indexOf("/") > -1) + ? (item.m + "/" + item.l) : item.l; + }); + searchIndex(typeSearchIndex, catTypes, function(item) { + return request.term.indexOf(".") > -1 ? item.p + "." + item.l : item.l; + }); + searchIndex(memberSearchIndex, catMembers, function(item) { + return request.term.indexOf(".") > -1 + ? item.p + "." + item.c + "." + item.l : item.l; + }); + searchIndex(tagSearchIndex, catSearchTags, function(item) { return item.l; }); + + if (!indexFilesLoaded()) { + updateSearchResults = function() { + doSearch(request, response); + } + result.unshift(loading); + } else { + updateSearchResults = function() {}; + } + response(result); +} +$(function() { + $("#search-input").catcomplete({ + minLength: 1, + delay: 300, + source: doSearch, + response: function(event, ui) { + if (!ui.content.length) { + ui.content.push(noResult); + } else { + $("#search-input").empty(); + } + }, + autoFocus: true, + focus: function(event, ui) { + return false; + }, + position: { + collision: "flip" + }, + select: function(event, ui) { + if (ui.item.category) { + var url = getURLPrefix(ui); + if (ui.item.category === catModules) { + url += "module-summary.html"; + } else if (ui.item.category === catPackages) { + if (ui.item.u) { + url = ui.item.u; + } else { + url += ui.item.l.replace(/\./g, '/') + "/package-summary.html"; + } + } else if (ui.item.category === catTypes) { + if (ui.item.u) { + url = ui.item.u; + } else if (ui.item.p === UNNAMED) { + url += ui.item.l + ".html"; + } else { + url += ui.item.p.replace(/\./g, '/') + "/" + ui.item.l + ".html"; + } + } else if (ui.item.category === catMembers) { + if (ui.item.p === UNNAMED) { + url += ui.item.c + ".html" + "#"; + } else { + url += ui.item.p.replace(/\./g, '/') + "/" + ui.item.c + ".html" + "#"; + } + if (ui.item.u) { + url += ui.item.u; + } else { + url += ui.item.l; + } + } else if (ui.item.category === catSearchTags) { + url += ui.item.u; + } + if (top !== window) { + parent.classFrame.location = pathtoroot + url; + } else { + window.location.href = pathtoroot + url; + } + $("#search-input").focus(); + } + } + }); +}); diff --git a/build/docs/javadoc/serialized-form.html b/build/docs/javadoc/serialized-form.html new file mode 100644 index 0000000..5e03d09 --- /dev/null +++ b/build/docs/javadoc/serialized-form.html @@ -0,0 +1,78 @@ + + + + +Serialized Form (SimplexSS 1.0.0 API) + + + + + + + + + + + + + + +
      + +
      +
      +
      +

      Serialized Form

      +
      + +
      +
      +
      + + diff --git a/build/docs/javadoc/stylesheet.css b/build/docs/javadoc/stylesheet.css new file mode 100644 index 0000000..836c62d --- /dev/null +++ b/build/docs/javadoc/stylesheet.css @@ -0,0 +1,865 @@ +/* + * Javadoc style sheet + */ + +@import url('resources/fonts/dejavu.css'); + +/* + * Styles for individual HTML elements. + * + * These are styles that are specific to individual HTML elements. Changing them affects the style of a particular + * HTML element throughout the page. + */ + +body { + background-color:#ffffff; + color:#353833; + font-family:'DejaVu Sans', Arial, Helvetica, sans-serif; + font-size:14px; + margin:0; + padding:0; + height:100%; + width:100%; +} +iframe { + margin:0; + padding:0; + height:100%; + width:100%; + overflow-y:scroll; + border:none; +} +a:link, a:visited { + text-decoration:none; + color:#4A6782; +} +a[href]:hover, a[href]:focus { + text-decoration:none; + color:#bb7a2a; +} +a[name] { + color:#353833; +} +pre { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; +} +h1 { + font-size:20px; +} +h2 { + font-size:18px; +} +h3 { + font-size:16px; +} +h4 { + font-size:15px; +} +h5 { + font-size:14px; +} +h6 { + font-size:13px; +} +ul { + list-style-type:disc; +} +code, tt { + font-family:'DejaVu Sans Mono', monospace; +} +:not(h1, h2, h3, h4, h5, h6) > code, +:not(h1, h2, h3, h4, h5, h6) > tt { + font-size:14px; + padding-top:4px; + margin-top:8px; + line-height:1.4em; +} +dt code { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; + padding-top:4px; +} +.summary-table dt code { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; + vertical-align:top; + padding-top:4px; +} +sup { + font-size:8px; +} +button { + font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif; + font-size: 14px; +} +/* + * Styles for HTML generated by javadoc. + * + * These are style classes that are used by the standard doclet to generate HTML documentation. + */ + +/* + * Styles for document title and copyright. + */ +.clear { + clear:both; + height:0; + overflow:hidden; +} +.about-language { + float:right; + padding:0 21px 8px 8px; + font-size:11px; + margin-top:-9px; + height:2.9em; +} +.legal-copy { + margin-left:.5em; +} +.tab { + background-color:#0066FF; + color:#ffffff; + padding:8px; + width:5em; + font-weight:bold; +} +/* + * Styles for navigation bar. + */ +@media screen { + .flex-box { + position:fixed; + display:flex; + flex-direction:column; + height: 100%; + width: 100%; + } + .flex-header { + flex: 0 0 auto; + } + .flex-content { + flex: 1 1 auto; + overflow-y: auto; + } +} +.top-nav { + background-color:#4D7A97; + color:#FFFFFF; + float:left; + padding:0; + width:100%; + clear:right; + min-height:2.8em; + padding-top:10px; + overflow:hidden; + font-size:12px; +} +.sub-nav { + background-color:#dee3e9; + float:left; + width:100%; + overflow:hidden; + font-size:12px; +} +.sub-nav div { + clear:left; + float:left; + padding:0 0 5px 6px; + text-transform:uppercase; +} +.sub-nav .nav-list { + padding-top:5px; +} +ul.nav-list { + display:block; + margin:0 25px 0 0; + padding:0; +} +ul.sub-nav-list { + float:left; + margin:0 25px 0 0; + padding:0; +} +ul.nav-list li { + list-style:none; + float:left; + padding: 5px 6px; + text-transform:uppercase; +} +.sub-nav .nav-list-search { + float:right; + margin:0 0 0 0; + padding:5px 6px; + clear:none; +} +.nav-list-search label { + position:relative; + right:-16px; +} +ul.sub-nav-list li { + list-style:none; + float:left; + padding-top:10px; +} +.top-nav a:link, .top-nav a:active, .top-nav a:visited { + color:#FFFFFF; + text-decoration:none; + text-transform:uppercase; +} +.top-nav a:hover { + text-decoration:none; + color:#bb7a2a; + text-transform:uppercase; +} +.nav-bar-cell1-rev { + background-color:#F8981D; + color:#253441; + margin: auto 5px; +} +.skip-nav { + position:absolute; + top:auto; + left:-9999px; + overflow:hidden; +} +/* + * Hide navigation links and search box in print layout + */ +@media print { + ul.nav-list, div.sub-nav { + display:none; + } +} +/* + * Styles for page header and footer. + */ +.title { + color:#2c4557; + margin:10px 0; +} +.sub-title { + margin:5px 0 0 0; +} +.header ul { + margin:0 0 15px 0; + padding:0; +} +.header ul li, .footer ul li { + list-style:none; + font-size:13px; +} +/* + * Styles for headings. + */ +body.class-declaration-page .summary h2, +body.class-declaration-page .details h2, +body.class-use-page h2, +body.module-declaration-page .block-list h2 { + font-style: italic; + padding:0; + margin:15px 0; +} +body.class-declaration-page .summary h3, +body.class-declaration-page .details h3, +body.class-declaration-page .summary .inherited-list h2 { + background-color:#dee3e9; + border:1px solid #d0d9e0; + margin:0 0 6px -8px; + padding:7px 5px; +} +/* + * Styles for page layout containers. + */ +main { + clear:both; + padding:10px 20px; + position:relative; +} +dl.notes > dt { + font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif; + font-size:12px; + font-weight:bold; + margin:10px 0 0 0; + color:#4E4E4E; +} +dl.notes > dd { + margin:5px 10px 10px 0; + font-size:14px; + font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; +} +dl.name-value > dt { + margin-left:1px; + font-size:1.1em; + display:inline; + font-weight:bold; +} +dl.name-value > dd { + margin:0 0 0 1px; + font-size:1.1em; + display:inline; +} +/* + * Styles for lists. + */ +li.circle { + list-style:circle; +} +ul.horizontal li { + display:inline; + font-size:0.9em; +} +div.inheritance { + margin:0; + padding:0; +} +div.inheritance div.inheritance { + margin-left:2em; +} +ul.block-list, +ul.details-list, +ul.member-list, +ul.summary-list { + margin:10px 0 10px 0; + padding:0; +} +ul.block-list > li, +ul.details-list > li, +ul.member-list > li, +ul.summary-list > li { + list-style:none; + margin-bottom:15px; + line-height:1.4; +} +.summary-table dl, .summary-table dl dt, .summary-table dl dd { + margin-top:0; + margin-bottom:1px; +} +ul.see-list, ul.see-list-long { + padding-left: 0; + list-style: none; +} +ul.see-list li { + display: inline; +} +ul.see-list li:not(:last-child):after, +ul.see-list-long li:not(:last-child):after { + content: ", "; + white-space: pre-wrap; +} +/* + * Styles for tables. + */ +.summary-table, .details-table { + width:100%; + border-spacing:0; + border-left:1px solid #EEE; + border-right:1px solid #EEE; + border-bottom:1px solid #EEE; + padding:0; +} +.caption { + position:relative; + text-align:left; + background-repeat:no-repeat; + color:#253441; + font-weight:bold; + clear:none; + overflow:hidden; + padding:0; + padding-top:10px; + padding-left:1px; + margin:0; + white-space:pre; +} +.caption a:link, .caption a:visited { + color:#1f389c; +} +.caption a:hover, +.caption a:active { + color:#FFFFFF; +} +.caption span { + white-space:nowrap; + padding-top:5px; + padding-left:12px; + padding-right:12px; + padding-bottom:7px; + display:inline-block; + float:left; + background-color:#F8981D; + border: none; + height:16px; +} +div.table-tabs { + padding:10px 0 0 1px; + margin:0; +} +div.table-tabs > button { + border: none; + cursor: pointer; + padding: 5px 12px 7px 12px; + font-weight: bold; + margin-right: 3px; +} +div.table-tabs > button.active-table-tab { + background: #F8981D; + color: #253441; +} +div.table-tabs > button.table-tab { + background: #4D7A97; + color: #FFFFFF; +} +.two-column-summary { + display: grid; + grid-template-columns: minmax(15%, max-content) minmax(15%, auto); +} +.three-column-summary { + display: grid; + grid-template-columns: minmax(10%, max-content) minmax(15%, max-content) minmax(15%, auto); +} +.four-column-summary { + display: grid; + grid-template-columns: minmax(10%, max-content) minmax(10%, max-content) minmax(10%, max-content) minmax(10%, auto); +} +@media screen and (max-width: 600px) { + .two-column-summary { + display: grid; + grid-template-columns: 1fr; + } +} +@media screen and (max-width: 800px) { + .three-column-summary { + display: grid; + grid-template-columns: minmax(10%, max-content) minmax(25%, auto); + } + .three-column-summary .col-last { + grid-column-end: span 2; + } +} +@media screen and (max-width: 1000px) { + .four-column-summary { + display: grid; + grid-template-columns: minmax(15%, max-content) minmax(15%, auto); + } +} +.summary-table > div, .details-table > div { + text-align:left; + padding: 8px 3px 3px 7px; +} +.col-first, .col-second, .col-last, .col-constructor-name, .col-summary-item-name { + vertical-align:top; + padding-right:0; + padding-top:8px; + padding-bottom:3px; +} +.table-header { + background:#dee3e9; + font-weight: bold; +} +.col-first, .col-first { + font-size:13px; +} +.col-second, .col-second, .col-last, .col-constructor-name, .col-summary-item-name, .col-last { + font-size:13px; +} +.col-first, .col-second, .col-constructor-name { + vertical-align:top; + overflow: auto; +} +.col-last { + white-space:normal; +} +.col-first a:link, .col-first a:visited, +.col-second a:link, .col-second a:visited, +.col-first a:link, .col-first a:visited, +.col-second a:link, .col-second a:visited, +.col-constructor-name a:link, .col-constructor-name a:visited, +.col-summary-item-name a:link, .col-summary-item-name a:visited, +.constant-values-container a:link, .constant-values-container a:visited, +.all-classes-container a:link, .all-classes-container a:visited, +.all-packages-container a:link, .all-packages-container a:visited { + font-weight:bold; +} +.table-sub-heading-color { + background-color:#EEEEFF; +} +.even-row-color, .even-row-color .table-header { + background-color:#FFFFFF; +} +.odd-row-color, .odd-row-color .table-header { + background-color:#EEEEEF; +} +/* + * Styles for contents. + */ +.deprecated-content { + margin:0; + padding:10px 0; +} +div.block { + font-size:14px; + font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; +} +.col-last div { + padding-top:0; +} +.col-last a { + padding-bottom:3px; +} +.module-signature, +.package-signature, +.type-signature, +.member-signature { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; + margin:14px 0; + white-space: pre-wrap; +} +.module-signature, +.package-signature, +.type-signature { + margin-top: 0; +} +.member-signature .type-parameters-long, +.member-signature .parameters, +.member-signature .exceptions { + display: inline-block; + vertical-align: top; + white-space: pre; +} +.member-signature .type-parameters { + white-space: normal; +} +/* + * Styles for formatting effect. + */ +.source-line-no { + color:green; + padding:0 30px 0 0; +} +h1.hidden { + visibility:hidden; + overflow:hidden; + font-size:10px; +} +.block { + display:block; + margin:0 10px 5px 0; + color:#474747; +} +.deprecated-label, .descfrm-type-label, .implementation-label, .member-name-label, .member-name-link, +.module-label-in-package, .module-label-in-type, .override-specify-label, .package-label-in-type, +.package-hierarchy-label, .type-name-label, .type-name-link, .search-tag-link, .preview-label { + font-weight:bold; +} +.deprecation-comment, .help-footnote, .preview-comment { + font-style:italic; +} +.deprecation-block { + font-size:14px; + font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; + border-style:solid; + border-width:thin; + border-radius:10px; + padding:10px; + margin-bottom:10px; + margin-right:10px; + display:inline-block; +} +.preview-block { + font-size:14px; + font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; + border-style:solid; + border-width:thin; + border-radius:10px; + padding:10px; + margin-bottom:10px; + margin-right:10px; + display:inline-block; +} +div.block div.deprecation-comment { + font-style:normal; +} +/* + * Styles specific to HTML5 elements. + */ +main, nav, header, footer, section { + display:block; +} +/* + * Styles for javadoc search. + */ +.ui-autocomplete-category { + font-weight:bold; + font-size:15px; + padding:7px 0 7px 3px; + background-color:#4D7A97; + color:#FFFFFF; +} +.result-item { + font-size:13px; +} +.ui-autocomplete { + max-height:85%; + max-width:65%; + overflow-y:scroll; + overflow-x:scroll; + white-space:nowrap; + box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23); +} +ul.ui-autocomplete { + position:fixed; + z-index:999999; +} +ul.ui-autocomplete li { + float:left; + clear:both; + width:100%; +} +.result-highlight { + font-weight:bold; +} +#search-input { + background-image:url('resources/glass.png'); + background-size:13px; + background-repeat:no-repeat; + background-position:2px 3px; + padding-left:20px; + position:relative; + right:-18px; + width:400px; +} +#reset-button { + background-color: rgb(255,255,255); + background-image:url('resources/x.png'); + background-position:center; + background-repeat:no-repeat; + background-size:12px; + border:0 none; + width:16px; + height:16px; + position:relative; + left:-4px; + top:-4px; + font-size:0px; +} +.watermark { + color:#545454; +} +.search-tag-desc-result { + font-style:italic; + font-size:11px; +} +.search-tag-holder-result { + font-style:italic; + font-size:12px; +} +.search-tag-result:target { + background-color:yellow; +} +.module-graph span { + display:none; + position:absolute; +} +.module-graph:hover span { + display:block; + margin: -100px 0 0 100px; + z-index: 1; +} +.inherited-list { + margin: 10px 0 10px 0; +} +section.class-description { + line-height: 1.4; +} +.summary section[class$="-summary"], .details section[class$="-details"], +.class-uses .detail, .serialized-class-details { + padding: 0px 20px 5px 10px; + border: 1px solid #ededed; + background-color: #f8f8f8; +} +.inherited-list, section[class$="-details"] .detail { + padding:0 0 5px 8px; + background-color:#ffffff; + border:none; +} +.vertical-separator { + padding: 0 5px; +} +ul.help-section-list { + margin: 0; +} +ul.help-subtoc > li { + display: inline-block; + padding-right: 5px; + font-size: smaller; +} +ul.help-subtoc > li::before { + content: "\2022" ; + padding-right:2px; +} +span.help-note { + font-style: italic; +} +/* + * Indicator icon for external links. + */ +main a[href*="://"]::after { + content:""; + display:inline-block; + background-image:url('data:image/svg+xml; utf8, \ + \ + \ + '); + background-size:100% 100%; + width:7px; + height:7px; + margin-left:2px; + margin-bottom:4px; +} +main a[href*="://"]:hover::after, +main a[href*="://"]:focus::after { + background-image:url('data:image/svg+xml; utf8, \ + \ + \ + '); +} + +/* + * Styles for user-provided tables. + * + * borderless: + * No borders, vertical margins, styled caption. + * This style is provided for use with existing doc comments. + * In general, borderless tables should not be used for layout purposes. + * + * plain: + * Plain borders around table and cells, vertical margins, styled caption. + * Best for small tables or for complex tables for tables with cells that span + * rows and columns, when the "striped" style does not work well. + * + * striped: + * Borders around the table and vertical borders between cells, striped rows, + * vertical margins, styled caption. + * Best for tables that have a header row, and a body containing a series of simple rows. + */ + +table.borderless, +table.plain, +table.striped { + margin-top: 10px; + margin-bottom: 10px; +} +table.borderless > caption, +table.plain > caption, +table.striped > caption { + font-weight: bold; + font-size: smaller; +} +table.borderless th, table.borderless td, +table.plain th, table.plain td, +table.striped th, table.striped td { + padding: 2px 5px; +} +table.borderless, +table.borderless > thead > tr > th, table.borderless > tbody > tr > th, table.borderless > tr > th, +table.borderless > thead > tr > td, table.borderless > tbody > tr > td, table.borderless > tr > td { + border: none; +} +table.borderless > thead > tr, table.borderless > tbody > tr, table.borderless > tr { + background-color: transparent; +} +table.plain { + border-collapse: collapse; + border: 1px solid black; +} +table.plain > thead > tr, table.plain > tbody tr, table.plain > tr { + background-color: transparent; +} +table.plain > thead > tr > th, table.plain > tbody > tr > th, table.plain > tr > th, +table.plain > thead > tr > td, table.plain > tbody > tr > td, table.plain > tr > td { + border: 1px solid black; +} +table.striped { + border-collapse: collapse; + border: 1px solid black; +} +table.striped > thead { + background-color: #E3E3E3; +} +table.striped > thead > tr > th, table.striped > thead > tr > td { + border: 1px solid black; +} +table.striped > tbody > tr:nth-child(even) { + background-color: #EEE +} +table.striped > tbody > tr:nth-child(odd) { + background-color: #FFF +} +table.striped > tbody > tr > th, table.striped > tbody > tr > td { + border-left: 1px solid black; + border-right: 1px solid black; +} +table.striped > tbody > tr > th { + font-weight: normal; +} +/** + * Tweak font sizes and paddings for small screens. + */ +@media screen and (max-width: 1050px) { + #search-input { + width: 300px; + } +} +@media screen and (max-width: 800px) { + #search-input { + width: 200px; + } + .top-nav, + .bottom-nav { + font-size: 11px; + padding-top: 6px; + } + .sub-nav { + font-size: 11px; + } + .about-language { + padding-right: 16px; + } + ul.nav-list li, + .sub-nav .nav-list-search { + padding: 6px; + } + ul.sub-nav-list li { + padding-top: 5px; + } + main { + padding: 10px; + } + .summary section[class$="-summary"], .details section[class$="-details"], + .class-uses .detail, .serialized-class-details { + padding: 0 8px 5px 8px; + } + body { + -webkit-text-size-adjust: none; + } +} +@media screen and (max-width: 500px) { + #search-input { + width: 150px; + } + .top-nav, + .bottom-nav { + font-size: 10px; + } + .sub-nav { + font-size: 10px; + } + .about-language { + font-size: 10px; + padding-right: 12px; + } +} diff --git a/build/docs/javadoc/tag-search-index.js b/build/docs/javadoc/tag-search-index.js new file mode 100644 index 0000000..f38b3cb --- /dev/null +++ b/build/docs/javadoc/tag-search-index.js @@ -0,0 +1 @@ +tagSearchIndex = [{"l":"Serialized Form","h":"","u":"serialized-form.html"}];updateSearchResults(); \ No newline at end of file diff --git a/build/docs/javadoc/type-search-index.js b/build/docs/javadoc/type-search-index.js new file mode 100644 index 0000000..66f278f --- /dev/null +++ b/build/docs/javadoc/type-search-index.js @@ -0,0 +1 @@ +typeSearchIndex = [{"l":"All Classes and Interfaces","u":"allclasses-index.html"},{"p":"io.github.simplexdevelopment.scheduler","l":"BukkitDisposable"},{"p":"io.github.simplexdevelopment.api","l":"Context"},{"p":"io.github.simplexdevelopment.scheduler","l":"ExecutableService"},{"p":"io.github.simplexdevelopment.api","l":"Identifier"},{"p":"io.github.simplexdevelopment.api","l":"ISchedule"},{"p":"io.github.simplexdevelopment.api","l":"IService"},{"p":"io.github.simplexdevelopment.impl","l":"Main"},{"p":"io.github.simplexdevelopment.impl","l":"PoolHolder"},{"p":"io.github.simplexdevelopment.scheduler","l":"ReactorBukkitScheduler"},{"p":"io.github.simplexdevelopment.scheduler","l":"SchedulingSystem"},{"p":"io.github.simplexdevelopment.api","l":"ServiceException"},{"p":"io.github.simplexdevelopment.impl","l":"ServiceImpl"},{"p":"io.github.simplexdevelopment.scheduler","l":"ServiceManager"},{"p":"io.github.simplexdevelopment.scheduler","l":"ServicePool"},{"p":"io.github.simplexdevelopment.api","l":"ServicePoolException"}];updateSearchResults(); \ No newline at end of file diff --git a/build/resources/main/plugin.yml b/build/resources/main/plugin.yml new file mode 100644 index 0000000..ddb7141 --- /dev/null +++ b/build/resources/main/plugin.yml @@ -0,0 +1,7 @@ +name: SimplexSS +version: '1.0.0' +main: io.github.simplex.simplexss.SimplexSS +api-version: 1.19 +authors: [ SimplexDevelopment ] +description: A Scheduler Service API written with Reactor designed to create fully reactive non-blocking tasks. +website: https://github.com/SimplexDevelopment diff --git a/build/tmp/compileJava/previous-compilation-data.bin b/build/tmp/compileJava/previous-compilation-data.bin new file mode 100644 index 0000000..3717353 Binary files /dev/null and b/build/tmp/compileJava/previous-compilation-data.bin differ diff --git a/build/tmp/javadoc/javadoc.options b/build/tmp/javadoc/javadoc.options new file mode 100644 index 0000000..d7b547e --- /dev/null +++ b/build/tmp/javadoc/javadoc.options @@ -0,0 +1,21 @@ +-classpath 'C:\\Users\\Samantha\\IdeaProjects\\SimplexSS\\build\\classes\\java\\main;C:\\Users\\Samantha\\IdeaProjects\\SimplexSS\\build\\resources\\main;C:\\Users\\Samantha\\.gradle\\caches\\modules-2\\files-2.1\\io.papermc.paper\\paper-api\\1.19-R0.1-SNAPSHOT\\16c0c5a4a38ed1d4c2e543b7b794c5f2eec086b9\\paper-api-1.19-R0.1-SNAPSHOT.jar;C:\\Users\\Samantha\\.gradle\\caches\\modules-2\\files-2.1\\io.projectreactor\\reactor-core\\3.4.24\\43fc394f483d4c4397f399013b3ed602b9d067d1\\reactor-core-3.4.24.jar;C:\\Users\\Samantha\\.gradle\\caches\\modules-2\\files-2.1\\net.md-5\\bungeecord-chat\\1.16-R0.4-deprecated+build.6\\34a32cc95e1c5f12176cf0a8aeeff087ff8a17e0\\bungeecord-chat-1.16-R0.4-deprecated+build.6.jar;C:\\Users\\Samantha\\.gradle\\caches\\modules-2\\files-2.1\\com.google.guava\\guava\\31.0.1-jre\\119ea2b2bc205b138974d351777b20f02b92704b\\guava-31.0.1-jre.jar;C:\\Users\\Samantha\\.gradle\\caches\\modules-2\\files-2.1\\net.kyori\\adventure-text-logger-slf4j\\4.11.0\\22414f4f37e334ce4b8ca042108922554794b1d1\\adventure-text-logger-slf4j-4.11.0.jar;C:\\Users\\Samantha\\.gradle\\caches\\modules-2\\files-2.1\\net.kyori\\adventure-text-minimessage\\4.11.0\\bae2b3df851f0997f8fd3f56aa1a9987d7b54792\\adventure-text-minimessage-4.11.0.jar;C:\\Users\\Samantha\\.gradle\\caches\\modules-2\\files-2.1\\net.kyori\\adventure-text-serializer-legacy\\4.11.0\\de25209fbd6a08d47342f97b99c0c52cc4acc247\\adventure-text-serializer-legacy-4.11.0.jar;C:\\Users\\Samantha\\.gradle\\caches\\modules-2\\files-2.1\\net.kyori\\adventure-text-serializer-plain\\4.11.0\\a15eb311b588ce2b19b410b53df696fe058a5076\\adventure-text-serializer-plain-4.11.0.jar;C:\\Users\\Samantha\\.gradle\\caches\\modules-2\\files-2.1\\net.kyori\\adventure-api\\4.11.0\\925ce8f663bab063d522de8a895ac152a023dab8\\adventure-api-4.11.0.jar;C:\\Users\\Samantha\\.gradle\\caches\\modules-2\\files-2.1\\net.kyori\\adventure-key\\4.11.0\\6ac82c19a7c677f0918369cc3610e89f1a2f7d66\\adventure-key-4.11.0.jar;C:\\Users\\Samantha\\.gradle\\caches\\modules-2\\files-2.1\\net.kyori\\adventure-text-serializer-gson\\4.11.0\\aa74697a6d1e1c225a40ead4c5d07bee77d19164\\adventure-text-serializer-gson-4.11.0.jar;C:\\Users\\Samantha\\.gradle\\caches\\modules-2\\files-2.1\\com.google.code.gson\\gson\\2.8.9\\8a432c1d6825781e21a02db2e2c33c5fde2833b9\\gson-2.8.9.jar;C:\\Users\\Samantha\\.gradle\\caches\\modules-2\\files-2.1\\org.yaml\\snakeyaml\\1.30\\8fde7fe2586328ac3c68db92045e1c8759125000\\snakeyaml-1.30.jar;C:\\Users\\Samantha\\.gradle\\caches\\modules-2\\files-2.1\\com.googlecode.json-simple\\json-simple\\1.1.1\\c9ad4a0850ab676c5c64461a05ca524cdfff59f1\\json-simple-1.1.1.jar;C:\\Users\\Samantha\\.gradle\\caches\\modules-2\\files-2.1\\it.unimi.dsi\\fastutil\\8.5.6\\76f95700418a68fbc4ac050525261f05dc681ca1\\fastutil-8.5.6.jar;C:\\Users\\Samantha\\.gradle\\caches\\modules-2\\files-2.1\\org.apache.logging.log4j\\log4j-api\\2.17.1\\d771af8e336e372fb5399c99edabe0919aeaf5b2\\log4j-api-2.17.1.jar;C:\\Users\\Samantha\\.gradle\\caches\\modules-2\\files-2.1\\org.slf4j\\slf4j-api\\1.8.0-beta4\\83b0359d847ee053d745be7ec0d8e9e8a44304b4\\slf4j-api-1.8.0-beta4.jar;C:\\Users\\Samantha\\.gradle\\caches\\modules-2\\files-2.1\\org.checkerframework\\checker-qual\\3.21.0\\55aaf38ec65c7aee19697257d644493c06dee1fe\\checker-qual-3.21.0.jar;C:\\Users\\Samantha\\.gradle\\caches\\modules-2\\files-2.1\\org.reactivestreams\\reactive-streams\\1.0.4\\3864a1320d97d7b045f729a326e1e077661f31b7\\reactive-streams-1.0.4.jar;C:\\Users\\Samantha\\.gradle\\caches\\modules-2\\files-2.1\\com.google.guava\\failureaccess\\1.0.1\\1dcf1de382a0bf95a3d8b0849546c88bac1292c9\\failureaccess-1.0.1.jar;C:\\Users\\Samantha\\.gradle\\caches\\modules-2\\files-2.1\\com.google.guava\\listenablefuture\\9999.0-empty-to-avoid-conflict-with-guava\\b421526c5f297295adef1c886e5246c39d4ac629\\listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar;C:\\Users\\Samantha\\.gradle\\caches\\modules-2\\files-2.1\\com.google.code.findbugs\\jsr305\\3.0.2\\25ea2e8b0c338a877313bd4672d3fe056ea78f0d\\jsr305-3.0.2.jar;C:\\Users\\Samantha\\.gradle\\caches\\modules-2\\files-2.1\\com.google.errorprone\\error_prone_annotations\\2.7.1\\458d9042f7aa6fa9a634df902b37f544e15aacac\\error_prone_annotations-2.7.1.jar;C:\\Users\\Samantha\\.gradle\\caches\\modules-2\\files-2.1\\com.google.j2objc\\j2objc-annotations\\1.3\\ba035118bc8bac37d7eff77700720999acd9986d\\j2objc-annotations-1.3.jar;C:\\Users\\Samantha\\.gradle\\caches\\modules-2\\files-2.1\\net.kyori\\examination-string\\1.3.0\\6f34afef5c54ccce4996bc321abf77518b55b4bd\\examination-string-1.3.0.jar;C:\\Users\\Samantha\\.gradle\\caches\\modules-2\\files-2.1\\net.kyori\\examination-api\\1.3.0\\8a2d185275307f1e2ef2adf7152b9a0d1d44c30b\\examination-api-1.3.0.jar;C:\\Users\\Samantha\\.gradle\\caches\\modules-2\\files-2.1\\org.jetbrains\\annotations\\23.0.0\\8cc20c07506ec18e0834947b84a864bfc094484e\\annotations-23.0.0.jar' +-d 'C:\\Users\\Samantha\\IdeaProjects\\SimplexSS\\build\\docs\\javadoc' +-doctitle 'SimplexSS 1.0.0 API' +-notimestamp +-quiet +-windowtitle 'SimplexSS 1.0.0 API' +'C:\\Users\\Samantha\\IdeaProjects\\SimplexSS\\src\\main\\java\\io\\github\\simplexdevelopment\\api\\Context.java' +'C:\\Users\\Samantha\\IdeaProjects\\SimplexSS\\src\\main\\java\\io\\github\\simplexdevelopment\\api\\Identifier.java' +'C:\\Users\\Samantha\\IdeaProjects\\SimplexSS\\src\\main\\java\\io\\github\\simplexdevelopment\\api\\ISchedule.java' +'C:\\Users\\Samantha\\IdeaProjects\\SimplexSS\\src\\main\\java\\io\\github\\simplexdevelopment\\api\\IService.java' +'C:\\Users\\Samantha\\IdeaProjects\\SimplexSS\\src\\main\\java\\io\\github\\simplexdevelopment\\api\\ServiceException.java' +'C:\\Users\\Samantha\\IdeaProjects\\SimplexSS\\src\\main\\java\\io\\github\\simplexdevelopment\\api\\ServicePoolException.java' +'C:\\Users\\Samantha\\IdeaProjects\\SimplexSS\\src\\main\\java\\io\\github\\simplexdevelopment\\impl\\Main.java' +'C:\\Users\\Samantha\\IdeaProjects\\SimplexSS\\src\\main\\java\\io\\github\\simplexdevelopment\\impl\\PoolHolder.java' +'C:\\Users\\Samantha\\IdeaProjects\\SimplexSS\\src\\main\\java\\io\\github\\simplexdevelopment\\impl\\ServiceImpl.java' +'C:\\Users\\Samantha\\IdeaProjects\\SimplexSS\\src\\main\\java\\io\\github\\simplexdevelopment\\scheduler\\BukkitDisposable.java' +'C:\\Users\\Samantha\\IdeaProjects\\SimplexSS\\src\\main\\java\\io\\github\\simplexdevelopment\\scheduler\\ExecutableService.java' +'C:\\Users\\Samantha\\IdeaProjects\\SimplexSS\\src\\main\\java\\io\\github\\simplexdevelopment\\scheduler\\ReactorBukkitScheduler.java' +'C:\\Users\\Samantha\\IdeaProjects\\SimplexSS\\src\\main\\java\\io\\github\\simplexdevelopment\\scheduler\\SchedulingSystem.java' +'C:\\Users\\Samantha\\IdeaProjects\\SimplexSS\\src\\main\\java\\io\\github\\simplexdevelopment\\scheduler\\ServiceManager.java' +'C:\\Users\\Samantha\\IdeaProjects\\SimplexSS\\src\\main\\java\\io\\github\\simplexdevelopment\\scheduler\\ServicePool.java' diff --git a/build/tmp/javadocJar/MANIFEST.MF b/build/tmp/javadocJar/MANIFEST.MF new file mode 100644 index 0000000..59499bc --- /dev/null +++ b/build/tmp/javadocJar/MANIFEST.MF @@ -0,0 +1,2 @@ +Manifest-Version: 1.0 + diff --git a/build/tmp/shadowJar/MANIFEST.MF b/build/tmp/shadowJar/MANIFEST.MF new file mode 100644 index 0000000..1e12317 --- /dev/null +++ b/build/tmp/shadowJar/MANIFEST.MF @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +Class-Path: reactor-core-3.4.24.jar reactive-streams-1.0.4.jar + diff --git a/build/tmp/sourcesJar/MANIFEST.MF b/build/tmp/sourcesJar/MANIFEST.MF new file mode 100644 index 0000000..59499bc --- /dev/null +++ b/build/tmp/sourcesJar/MANIFEST.MF @@ -0,0 +1,2 @@ +Manifest-Version: 1.0 + diff --git a/src/main/java/io/github/simplexdevelopment/api/ISchedule.java b/src/main/java/io/github/simplexdevelopment/api/ISchedule.java index 656dc23..2c597a9 100644 --- a/src/main/java/io/github/simplexdevelopment/api/ISchedule.java +++ b/src/main/java/io/github/simplexdevelopment/api/ISchedule.java @@ -16,25 +16,25 @@ public interface ISchedule { * Queues a service to be executed in a service pool. * * @param service The service to use to locate the associated service pool and queue the service for execution. - * @return A Mono that can be used to cancel the service. + * @return A Mono object that can be used to cancel the service. */ @NotNull Mono queue(@NotNull IService service); /** * @param service The service to run once. - * @return A Mono object which can be used to run the service one time using {@link Mono#subscribe()}. + * @return A Mono object which can be used to run the service one time using {@link Mono#subscribe()}. */ Mono runOnce(IService service); /** * @param service The service to forcefully stop. - * @return A Mono object which can be used to forcefully stop the service with {@link Mono#subscribe()}. + * @return A Mono object which can be used to forcefully stop the service with {@link Mono#subscribe()}. */ Mono forceStop(IService service); /** * @param service The service to forcefully start. - * @return A Mono object which can be used to forcefully start the service with {@link Mono#subscribe()}. + * @return A Mono object which can be used to forcefully start the service with {@link Mono#subscribe()}. */ Mono forceStart(IService service); } \ No newline at end of file diff --git a/src/main/java/io/github/simplexdevelopment/api/IService.java b/src/main/java/io/github/simplexdevelopment/api/IService.java index 6201b35..4328d44 100644 --- a/src/main/java/io/github/simplexdevelopment/api/IService.java +++ b/src/main/java/io/github/simplexdevelopment/api/IService.java @@ -2,8 +2,6 @@ package io.github.simplexdevelopment.api; import io.github.simplexdevelopment.scheduler.ServicePool; import org.bukkit.plugin.java.JavaPlugin; -import org.jetbrains.annotations.Contract; -import org.jetbrains.annotations.NotNull; import reactor.core.publisher.Mono; public interface IService extends Runnable, Identifier {