diff --git a/.circleci/config.yml b/.circleci/config.yml index 838dd64b..a4dc2838 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -2,79 +2,45 @@ # # Check https://circleci.com/docs/2.0/language-java/ for more details # -version: 2.1 +version: 2 jobs: clean: docker: # specify the version you desire here - - image: cimg/openjdk:21.0.2 + - image: circleci/openjdk:8-jdk + + # Specify service dependencies here if necessary + # CircleCI maintains a library of pre-built images + # documented at https://circleci.com/docs/2.0/circleci-images/ + # - image: circleci/postgres:9.4 working_directory: ~/repo environment: # Customize the JVM maximum heap limit MAVEN_OPTS: -Xmx3200m - - steps: - - checkout - - # run clean! - - run: - name: Cleaning workspace - command: mvn clean - # The resource_class feature allows configuring CPU and RAM resources for each job. Different resource classes are available for different executors. https://circleci.com/docs/2.0/configuration-reference/#resourceclass - resource_class: large - deployment: - docker: - # specify the version you desire here - - image: cimg/openjdk:21.0.2 - - working_directory: ~/repo - - environment: - # Customize the JVM maximum heap limit - MAVEN_OPTS: -Xmx3200m - + steps: - checkout - # run deployment! - - run: - name: Deploying snapshot - command: mvn deploy -Dmaven.test.skip -DcreateDocs=true -s settings.xml - build: - docker: - # specify the version you desire here - - image: cimg/openjdk:21.0.2 + # Download and cache dependencies + - restore_cache: + keys: + - v1-dependencies-{{ checksum "pom.xml" }} + # fallback to using the latest cache if no exact match is found + - v1-dependencies- - working_directory: ~/repo - - environment: - # Customize the JVM maximum heap limit - MAVEN_OPTS: -Xmx3200m - - steps: - - checkout: - method: full - - # run tests! - - run: - name: Running tests - command: mvn test jacoco:report coveralls:report -DsourceEncoding=UTF-8 - - # run code analysis using sonarqube - - run: - name: Running code analysis - command: mvn -Psonar org.sonarsource.scanner.maven:sonar-maven-plugin:sonar + - run: mvn dependency:go-offline + - save_cache: + paths: + - ~/.m2 + key: v1-dependencies-{{ checksum "pom.xml" }} + + # run clean! + - run: mvn clean workflows: version: 2 - clean_build_deploy: + clean_build: jobs: - - clean - - build: - requires: - - clean - - deployment: - requires: - - build + - clean \ No newline at end of file diff --git a/.editorconfig b/.editorconfig deleted file mode 100644 index 0e8498d5..00000000 --- a/.editorconfig +++ /dev/null @@ -1,44 +0,0 @@ -root = true - -[*] -indent_style = space -indent_size = 4 -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -[*.java] -indent_style = space -indent_size = 4 -continuation_indent_size = 4 - -[*.md] -trim_trailing_whitespace = false - -[*.adoc] -trim_trailing_whitespace = false - -[*.py] -indent_style = space -indent_size = 4 - -[*.{js,css,html}] -indent_style = space -indent_size = 4 -insert_final_newline = false - -[*.yml] -indent_style = space -indent_size = 2 - -[*.json] -indent_style = space -indent_size = 2 - -[*.php] -insert_final_newline = false - -[*.xml] -indent_style = space -indent_size = 4 diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 0e00f742..00000000 --- a/.gitattributes +++ /dev/null @@ -1,4 +0,0 @@ -# Explicitly declare text files to always be normalized and converted -# to native line endings on checkout. -*.java text -*.xml text diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml deleted file mode 100644 index 5134bcb0..00000000 --- a/.github/FUNDING.yml +++ /dev/null @@ -1,12 +0,0 @@ -# These are supported funding model platforms - -github: keilw -patreon: # Replace with a single Patreon username -open_collective: # Replace with a single Open Collective username -ko_fi: # Replace with a single Ko-fi username -tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel -community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry -liberapay: # Replace with a single Liberapay username -issuehunt: # Replace with a single IssueHunt username -otechie: # Replace with a single Otechie username -custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/.gitignore b/.gitignore index 13e39ee0..d0e510de 100644 --- a/.gitignore +++ b/.gitignore @@ -1,24 +1,7 @@ -# Java Files # -*.class - -# Package Files # -*.jar -*.war -*.ear - -# Output Folders # -/target - -# Eclipse # +/.settings/ +/target/ +/src/ /.classpath /.project -/.settings -/bin/ -/site/ - -# IntelliJ # -.idea/ -*.iml - -# OS Files # -.DS_Store +/unit-api.iml +/.idea/ diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 15bea9fc..00000000 --- a/LICENSE +++ /dev/null @@ -1,29 +0,0 @@ -==== - Units of Measurement API - Copyright (c) 2014-2020, Jean-Marie Dautelle, Werner Keil, Otavio Santana. - - All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, - are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions - and the following disclaimer in the documentation and/or other materials provided with the distribution. - - 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, - THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE - FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED - AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, - EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -==== diff --git a/README.md b/README.md deleted file mode 100644 index 0a644ea7..00000000 --- a/README.md +++ /dev/null @@ -1,40 +0,0 @@ -unit-api -======== -![Maven Central Version](https://img.shields.io/maven-central/v/javax.measure/unit-api) -[![javadoc](https://javadoc.io/badge2/javax.measure/unit-api/javadoc.svg)](https://javadoc.io/doc/javax.measure/unit-api) -[![CircleCI](https://circleci.com/gh/unitsofmeasurement/unit-api/tree/master.svg?style=svg)](https://circleci.com/gh/unitsofmeasurement/unit-api/tree/master) -[![Codacy Badge](https://app.codacy.com/project/badge/Grade/598a357e2a584ce5bb36eebf23f28e23)](https://www.codacy.com/gh/unitsofmeasurement/unit-api/dashboard?utm_source=github.com&utm_medium=referral&utm_content=unitsofmeasurement/unit-api&utm_campaign=Badge_Grade) -[![Coverage Status](https://coveralls.io/repos/github/unitsofmeasurement/unit-api/badge.svg)](https://coveralls.io/github/unitsofmeasurement/unit-api) -![stability-frozen](https://img.shields.io/badge/stability-frozen-brightgreen.svg) -[![License](http://img.shields.io/badge/license-BSD3-blue.svg?style=flat-square)](http://opensource.org/licenses/BSD-3-Clause) -[![Stack Overflow](http://img.shields.io/badge/stack%20overflow-uom-4183C4.svg)](http://stackoverflow.com/questions/tagged/units-of-measurement) -[![Join the chat at https://gitter.im/unitsofmeasurement/unit-api](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/unitsofmeasurement/unit-api?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) - -JSR 385 - Units of Measurement API 2.2 - -The Unit of Measurement API provides a set of Java language programming interfaces for handling units and quantities. -The interfaces provide a layer which separates client code, that would call the API, from library code, which implements the API. - -## Contribute -[Contribution Guide](https://github.com/unitsofmeasurement/unit-api/wiki/Contribution-Guide) - -## Quality -[![Sonarcloud Status](https://sonarcloud.io/api/project_badges/measure?project=javax.measure%3Aunit-api&metric=alert_status)](https://sonarcloud.io/dashboard?id=javax.measure%3Aunit-api) -[![Sonarcloud Status](https://sonarcloud.io/api/project_badges/measure?project=javax.measure%3Aunit-api&metric=security_rating)](https://sonarcloud.io/dashboard?id=javax.measure%3Aunit-api) -[![Sonarcloud Status](https://sonarcloud.io/api/project_badges/measure?project=javax.measure%3Aunit-api&metric=sqale_rating)](https://sonarcloud.io/dashboard?id=javax.measure%3Aunit-api) -[![Sonarcloud Status](https://sonarcloud.io/api/project_badges/measure?project=javax.measure%3Aunit-api&metric=bugs)](https://sonarcloud.io/dashboard?id=javax.measure%3Aunit-api) -[![Sonarcloud Status](https://sonarcloud.io/api/project_badges/measure?project=javax.measure%3Aunit-api&metric=vulnerabilities)](https://sonarcloud.io/dashboard?id=javax.measure%3Aunit-api) - -## Planning -[![GitHub issues](https://img.shields.io/github/issues-raw/unitsofmeasurement/unit-api.svg)](https://github.com/unitsofmeasurement/unit-api/issues) -[![GitHub issues](https://img.shields.io/github/issues-closed-raw/unitsofmeasurement/unit-api.svg)](https://github.com/unitsofmeasurement/unit-api/issues?q=is%3Aissue+is%3Aclosed) - -[![GitHub pull requests](https://img.shields.io/github/issues-pr-raw/unitsofmeasurement/unit-api.svg)](https://github.com/unitsofmeasurement/unit-api/pulls) -[![GitHub closed pull requests](https://img.shields.io/github/issues-pr-closed-raw/unitsofmeasurement/unit-api.svg)](https://github.com/unitsofmeasurement/unit-api/pulls) - -[![P1](https://img.shields.io/github/issues/unitsofmeasurement/unit-api/prio:1.svg?style=flat -)](https://github.com/unitsofmeasurement/unit-api/labels/prio%3A1) -[![P2](https://img.shields.io/github/issues/unitsofmeasurement/unit-api/prio:2.svg?style=flat -)](https://github.com/unitsofmeasurement/unit-api/labels/prio%3A2) -[![P3](https://img.shields.io/github/issues/unitsofmeasurement/unit-api/prio:3.svg?style=flat -)](https://github.com/unitsofmeasurement/unit-api/labels/prio%3A3) \ No newline at end of file diff --git a/docs/css/base.css b/css/base.css similarity index 100% rename from docs/css/base.css rename to css/base.css diff --git a/docs/css/prettify-themes/github.css b/css/prettify-themes/github.css similarity index 100% rename from docs/css/prettify-themes/github.css rename to css/prettify-themes/github.css diff --git a/docs/css/prettify-themes/hemisu-dark.css b/css/prettify-themes/hemisu-dark.css similarity index 100% rename from docs/css/prettify-themes/hemisu-dark.css rename to css/prettify-themes/hemisu-dark.css diff --git a/docs/css/prettify-themes/hemisu-light.css b/css/prettify-themes/hemisu-light.css similarity index 100% rename from docs/css/prettify-themes/hemisu-light.css rename to css/prettify-themes/hemisu-light.css diff --git a/docs/css/prettify-themes/tomorrow-night-blue.css b/css/prettify-themes/tomorrow-night-blue.css similarity index 100% rename from docs/css/prettify-themes/tomorrow-night-blue.css rename to css/prettify-themes/tomorrow-night-blue.css diff --git a/docs/css/prettify-themes/tomorrow-night-bright.css b/css/prettify-themes/tomorrow-night-bright.css similarity index 100% rename from docs/css/prettify-themes/tomorrow-night-bright.css rename to css/prettify-themes/tomorrow-night-bright.css diff --git a/docs/css/prettify-themes/tomorrow-night-eighties.css b/css/prettify-themes/tomorrow-night-eighties.css similarity index 100% rename from docs/css/prettify-themes/tomorrow-night-eighties.css rename to css/prettify-themes/tomorrow-night-eighties.css diff --git a/docs/css/prettify-themes/tomorrow-night.css b/css/prettify-themes/tomorrow-night.css similarity index 100% rename from docs/css/prettify-themes/tomorrow-night.css rename to css/prettify-themes/tomorrow-night.css diff --git a/docs/css/prettify-themes/tomorrow.css b/css/prettify-themes/tomorrow.css similarity index 100% rename from docs/css/prettify-themes/tomorrow.css rename to css/prettify-themes/tomorrow.css diff --git a/docs/css/prettify-themes/vibrant-ink.css b/css/prettify-themes/vibrant-ink.css similarity index 100% rename from docs/css/prettify-themes/vibrant-ink.css rename to css/prettify-themes/vibrant-ink.css diff --git a/docs/apidocs/allclasses-index.html b/docs/apidocs/allclasses-index.html deleted file mode 100644 index 9bfd2c8b..00000000 --- a/docs/apidocs/allclasses-index.html +++ /dev/null @@ -1,294 +0,0 @@ - - - - -All Classes and Interfaces (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

All Classes and Interfaces

-
-
-
-
-
-
Class
-
Description
- -
-
Rate of change of velocity with respect to time.
-
- -
-
Number of elementary entities (molecules, for example) of a substance.
-
- -
-
Figure formed by two lines diverging from a common point.
-
- -
-
Extent of a planar region or of the surface of a solid measured in square units.
-
- -
-
Provides support for common binary prefixes to be used by units.
-
- -
-
Catalytic activity.
-
- -
-
Represents the dimension of a unit.
-
- -
-
Dimensionless quantity.
-
- -
-
Electric capacitance.
-
- -
-
Electric charge.
-
- -
-
Electric conductance.
-
- -
-
Amount of electric charge flowing past a specified circuit point per unit time.
-
- -
-
Electric inductance.
-
- -
-
Electric potential or electromotive force.
-
- -
-
Electric resistance.
-
- -
-
Capacity of a physical system to do work.
-
- -
-
Quantity that tends to produce an acceleration of a body in the direction of its application.
-
- -
-
This interface represents the service to obtain instances of UnitFormat and QuantityFormat.
-
- -
-
The type of format, either a UnitFormat or QuantityFormat
-
- -
-
Number of times a specified phenomenon occurs within a specified interval.
-
- -
-
Illuminance.
-
- -
-
Signals that a problem of some sort has occurred due to incommensurable of some quantities/units.
-
- -
-
Extent of something along its greatest dimension or the extent of space between two objects or places.
-
- -
-
Luminous flux.
-
- -
-
Luminous flux density per solid angle as measured in a given direction relative to the emitting source.
-
- -
-
Magnetic flux.
-
- -
-
Magnetic flux density.
-
- -
-
Measure of the quantity of matter that a body or an object contains.
-
- -
-
This error is used to indicate serious problems with creating, retrieving and manipulating units of measurement objects.
-
- -
-
Exception used to indicate a problem while dealing with units of measurement.
-
- -
-
Signals that an error has been reached unexpectedly while parsing.
-
- -
-
Provides support for the 24 prefixes used in the metric system (decimal multiples and submultiples of units).
-
- -
-
Rate at which work is done.
-
- -
-
A unit prefix is a specifier or mnemonic that is prepended to units of measurement to indicate multiples or fractions of the units.
-
- -
-
Force applied uniformly over a surface.
-
-
Quantity<Q extends Quantity<Q>>
-
-
Represents a quantitative property of a phenomenon, body, or substance, that - can be quantified by measurement.
-
- -
-
The scale of a Quantity, either ABSOLUTE or RELATIVE.
-
- -
-
Represents a factory that accepts Number and Unit arguments to create Quantity results.
-
- -
-
Formats instances of Quantity.
-
- -
-
Amount of energy deposited per unit of mass.
-
- -
-
Effective (or "equivalent") dose of radiation received by a human or some other living organism.
-
- -
-
Radioactive activity.
-
- -
-
Service Provider for Units of Measurement services.
-
- -
-
Angle formed by three or more planes intersecting at a common point.
-
- -
-
Distance traveled divided by the time of travel.
-
- -
-
A system of units grouped together for historical or cultural reasons.
- Common system of units are "SI" (System International), "Imperial" (British), "US" (US Customary).
-
- -
-
This interface represents the service to obtain a system - of units.
-
- -
-
Degree of hotness or coldness of a body or an environment.
-
- -
-
Period of existence or persistence.
-
- -
-
Signals that a problem of some sort has occurred due to the impossibility of constructing a converter between two units.
-
-
Unit<Q extends Quantity<Q>>
-
-
Represents a determinate quantity (as of length, time, heat, or value) adopted as a standard of measurement.
-
- -
-
A converter of numeric values between different units.
-
- -
-
Formats instances of Unit to a String or Appendable and parses a CharSequence to a Unit.
-
- -
-
Amount of space occupied by a three-dimensional object or region of space.
-
-
-
-
-
- -
-
- - diff --git a/docs/apidocs/allpackages-index.html b/docs/apidocs/allpackages-index.html deleted file mode 100644 index d9ec95a1..00000000 --- a/docs/apidocs/allpackages-index.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - -All Packages (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

All Packages

-
-
Package Summary
-
-
Package
-
Description
- -
-
Specifies Java packages for the programmatic, type safe handling - of quantities and their expression as values of units.
-
- -
-
[OPTIONAL] Provides Formatting and Parsing functionality for units, quantities, dimensions or their textual representation.
-
- -
-
[OPTIONAL] Provides quantitative properties or attributes of thing such as - mass, time, distance, heat, and angular separation.
-
- -
-
[OPTIONAL] The Units of Measurement SPI.
-
-
-
- -
-
- - diff --git a/docs/apidocs/element-list b/docs/apidocs/element-list deleted file mode 100644 index c485a373..00000000 --- a/docs/apidocs/element-list +++ /dev/null @@ -1,4 +0,0 @@ -javax.measure -javax.measure.format -javax.measure.quantity -javax.measure.spi diff --git a/docs/apidocs/help-doc.html b/docs/apidocs/help-doc.html deleted file mode 100644 index e9aeaab8..00000000 --- a/docs/apidocs/help-doc.html +++ /dev/null @@ -1,191 +0,0 @@ - - - - -API Help (Units of Measurement API 2.2 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
  • -
  • Enums
  • -
  • Exceptions
  • -
  • Errors
  • -
  • Annotation Types
  • -
-
-
-

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.

-
-
-

Use

-

Each documented package, class and interface has its own Use page. This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its Use page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A. You can access this page by first going to the package, class or interface, then clicking on the USE link in the navigation bar.

-
-
-

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.
  • -
-
-
-

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/docs/apidocs/index-all.html b/docs/apidocs/index-all.html deleted file mode 100644 index 3e356192..00000000 --- a/docs/apidocs/index-all.html +++ /dev/null @@ -1,1187 +0,0 @@ - - - - -Index (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Index

-
-A B C D E F G H I J K L M N O P Q R S T U V Y Z 
All Classes and Interfaces|All Packages|Serialized Form -

A

-
-
ABSOLUTE - Enum constant in enum javax.measure.Quantity.Scale
-
-
Absolute scale
-
-
Acceleration - Interface in javax.measure.quantity
-
-
Rate of change of velocity with respect to time.
-
-
add(Quantity<Q>) - Method in interface javax.measure.Quantity
-
-
Returns the sum of this Quantity with the one specified.
-
-
alternate(String) - Method in interface javax.measure.Unit
-
-
Returns a system unit equivalent to this unscaled standard unit but used in expressions to distinguish between quantities of a different nature - but of the same dimensions.
-
-
AmountOfSubstance - Interface in javax.measure.quantity
-
-
Number of elementary entities (molecules, for example) of a substance.
-
-
Angle - Interface in javax.measure.quantity
-
-
Figure formed by two lines diverging from a common point.
-
-
Area - Interface in javax.measure.quantity
-
-
Extent of a planar region or of the surface of a solid measured in square units.
-
-
asType(Class<T>) - Method in interface javax.measure.Quantity
-
-
Casts this quantity to a parameterized unit of specified nature or throw a - ClassCastException if the dimension of the specified quantity - and this measure unit's dimension do not match.
-
-
asType(Class<T>) - Method in interface javax.measure.Unit
-
-
Casts this unit to a parameterized unit of specified nature or throw a ClassCastException if the dimension of the specified quantity and - this unit's dimension do not match.
-
-
ATTO - Enum constant in enum javax.measure.MetricPrefix
-
-
Prefix for 10-18.
-
-
ATTO(Unit<Q>) - Static method in enum javax.measure.MetricPrefix
-
-
Returns the specified unit multiplied by the factor 10-18
-
-
available() - Static method in class javax.measure.spi.ServiceProvider
-
-
Returns the list of all service providers available for the current thread's context class loader.
-
-
-

B

-
-
BinaryPrefix - Enum in javax.measure
-
-
Provides support for common binary prefixes to be used by units.
-
-
-

C

-
-
CatalyticActivity - Interface in javax.measure.quantity
-
-
Catalytic activity.
-
-
CENTI - Enum constant in enum javax.measure.MetricPrefix
-
-
Prefix for 10-2.
-
-
CENTI(Unit<Q>) - Static method in enum javax.measure.MetricPrefix
-
-
Returns the specified unit multiplied by the factor 10-2
-
-
concatenate(UnitConverter) - Method in interface javax.measure.UnitConverter
-
-
Concatenates this converter with another converter.
-
-
convert(double) - Method in interface javax.measure.UnitConverter
-
-
Converts a double value.
-
-
convert(Number) - Method in interface javax.measure.UnitConverter
-
-
Converts a Number value.
-
-
create(Number, Unit<Q>) - Method in interface javax.measure.spi.QuantityFactory
-
-
Returns the quantity for the specified number stated in the specified unit.
-
-
create(Number, Unit<Q>, Quantity.Scale) - Method in interface javax.measure.spi.QuantityFactory
-
-
Returns the quantity for the specified number stated in the specified unit and scale.
-
-
current() - Static method in class javax.measure.spi.ServiceProvider
-
-
Returns the current ServiceProvider.
-
-
-

D

-
-
DECA - Enum constant in enum javax.measure.MetricPrefix
-
-
Prefix for 101.
-
-
DECA(Unit<Q>) - Static method in enum javax.measure.MetricPrefix
-
-
Returns the specified unit multiplied by the factor 101
-
-
DECI - Enum constant in enum javax.measure.MetricPrefix
-
-
Prefix for 10-1.
-
-
DECI(Unit<Q>) - Static method in enum javax.measure.MetricPrefix
-
-
Returns the specified unit multiplied by the factor 10-1
-
-
DEKA(Unit<Q>) - Static method in enum javax.measure.MetricPrefix
-
-
US alias for DECA.
-
-
Dimension - Interface in javax.measure
-
-
Represents the dimension of a unit.
-
-
Dimensionless - Interface in javax.measure.quantity
-
-
Dimensionless quantity.
-
-
divide(double) - Method in interface javax.measure.Unit
-
-
Returns the result of dividing this unit by an approximate divisor.
-
-
divide(Number) - Method in interface javax.measure.Quantity
-
-
Returns the quotient of this Quantity divided by the Number - specified.
-
-
divide(Number) - Method in interface javax.measure.Unit
-
-
Returns the result of dividing this unit by a divisor.
-
-
divide(Dimension) - Method in interface javax.measure.Dimension
-
-
Returns the quotient of this dimension with the one specified.
-
-
divide(Quantity<?>) - Method in interface javax.measure.Quantity
-
-
Returns the quotient of this Quantity divided by the Quantity - specified.
-
-
divide(Unit<?>) - Method in interface javax.measure.Unit
-
-
Returns the quotient of this unit with the one specified.
-
-
-

E

-
-
ElectricCapacitance - Interface in javax.measure.quantity
-
-
Electric capacitance.
-
-
ElectricCharge - Interface in javax.measure.quantity
-
-
Electric charge.
-
-
ElectricConductance - Interface in javax.measure.quantity
-
-
Electric conductance.
-
-
ElectricCurrent - Interface in javax.measure.quantity
-
-
Amount of electric charge flowing past a specified circuit point per unit time.
-
-
ElectricInductance - Interface in javax.measure.quantity
-
-
Electric inductance.
-
-
ElectricPotential - Interface in javax.measure.quantity
-
-
Electric potential or electromotive force.
-
-
ElectricResistance - Interface in javax.measure.quantity
-
-
Electric resistance.
-
-
Energy - Interface in javax.measure.quantity
-
-
Capacity of a physical system to do work.
-
-
EXA - Enum constant in enum javax.measure.MetricPrefix
-
-
Prefix for 1018.
-
-
EXA(Unit<Q>) - Static method in enum javax.measure.MetricPrefix
-
-
Returns the specified unit multiplied by the factor 1018
-
-
EXBI - Enum constant in enum javax.measure.BinaryPrefix
-
-
Prefix for 10246.
-
-
EXBI(Unit<Q>) - Static method in enum javax.measure.BinaryPrefix
-
-
Returns the specified unit multiplied by the factor 10246 (binary prefix).
-
-
-

F

-
-
FEMTO - Enum constant in enum javax.measure.MetricPrefix
-
-
Prefix for 10-15.
-
-
FEMTO(Unit<Q>) - Static method in enum javax.measure.MetricPrefix
-
-
Returns the specified unit multiplied by the factor 10-15
-
-
Force - Interface in javax.measure.quantity
-
-
Quantity that tends to produce an acceleration of a body in the direction of its application.
-
-
format(Quantity<?>) - Method in interface javax.measure.format.QuantityFormat
-
-
Formats the specified Quantity.
-
-
format(Quantity<?>, Appendable) - Method in interface javax.measure.format.QuantityFormat
-
-
Formats the specified quantity into an Appendable.
-
-
format(Unit<?>) - Method in interface javax.measure.format.UnitFormat
-
-
Formats the specified Unit.
-
-
format(Unit<?>, Appendable) - Method in interface javax.measure.format.UnitFormat
-
-
Formats the specified Unit.
-
-
FormatService - Interface in javax.measure.spi
-
-
This interface represents the service to obtain instances of UnitFormat and QuantityFormat.
-
-
FormatService.FormatType - Enum in javax.measure.spi
-
-
The type of format, either a UnitFormat or QuantityFormat
-
-
Frequency - Interface in javax.measure.quantity
-
-
Number of times a specified phenomenon occurs within a specified interval.
-
-
-

G

-
-
getAvailableFormatNames(FormatService.FormatType) - Method in interface javax.measure.spi.FormatService
-
-
Gets a list with available format names of a given type for this format service.
-
-
getAvailableSystemsOfUnits() - Method in interface javax.measure.spi.SystemOfUnitsService
-
-
Gets a list with available systems for this SystemOfUnitsService.
-
-
getBaseDimensions() - Method in interface javax.measure.Dimension
-
-
Returns the (fundamental) base dimensions and their exponent whose product is this dimension, or null if this dimension is a base - dimension.
-
-
getBaseUnits() - Method in interface javax.measure.Unit
-
-
Returns the base units and their exponent whose product is this unit, or null if this unit is a base unit (not a product of existing - units).
-
-
getConversionSteps() - Method in interface javax.measure.UnitConverter
-
-
- Returns the steps of fundamental converters making up this converter or this if the converter is a fundamental converter.
-
-
getConverterTo(Unit<Q>) - Method in interface javax.measure.Unit
-
-
Returns a converter of numeric values from this unit to another unit of same type.
-
-
getConverterToAny(Unit<?>) - Method in interface javax.measure.Unit
-
-
Returns a converter from this unit to the specified unit of type unknown.
-
-
getDimension() - Method in interface javax.measure.Unit
-
-
Returns the dimension of this unit.
-
-
getExponent() - Method in enum javax.measure.BinaryPrefix
-
-
Exponent part of the associated factor in base^exponent representation.
-
-
getExponent() - Method in enum javax.measure.MetricPrefix
-
-
Exponent part of the associated factor in base^exponent representation.
-
-
getExponent() - Method in interface javax.measure.Prefix
-
-
Exponent part of the associated factor in base^exponent representation.
-
-
getFormatService() - Method in class javax.measure.spi.ServiceProvider
-
-
Returns the service to obtain UnitFormat and QuantityFormat or null if none.
-
-
getName() - Method in enum javax.measure.BinaryPrefix
-
-
Returns the name of this prefix.
-
-
getName() - Method in enum javax.measure.MetricPrefix
-
-
Returns the name of this prefix.
-
-
getName() - Method in interface javax.measure.Prefix
-
-
Returns the name of this prefix.
-
-
getName() - Method in interface javax.measure.spi.SystemOfUnits
-
 
-
getName() - Method in interface javax.measure.Unit
-
-
Returns the name (if any) of this unit.
-
-
getParsedString() - Method in exception javax.measure.format.MeasurementParseException
-
-
Returns the string that was being parsed.
-
-
getPosition() - Method in exception javax.measure.format.MeasurementParseException
-
-
Returns the position where the error was found.
-
-
getPrefixes(Class<P>) - Method in interface javax.measure.spi.SystemOfUnitsService
-
-
Returns a Set containing the values of a particular Prefix - type.
-
-
getPriority() - Method in class javax.measure.spi.ServiceProvider
-
-
Allows to define a priority for a registered ServiceProvider instance.
-
-
getQuantityFactory(Class<Q>) - Method in class javax.measure.spi.ServiceProvider
-
-
Returns a factory for the given Quantity type.
-
-
getQuantityFormat() - Method in interface javax.measure.spi.FormatService
-
-
Returns the default quantity format.
-
-
getQuantityFormat(String) - Method in interface javax.measure.spi.FormatService
-
-
Returns the quantity format having the specified name or null if none.
-
-
getScale() - Method in interface javax.measure.Quantity
-
-
Returns the Scale of this Quantity, if it's absolute or relative.
-
-
getSymbol() - Method in enum javax.measure.BinaryPrefix
-
-
Returns the symbol of this prefix.
-
-
getSymbol() - Method in enum javax.measure.MetricPrefix
-
-
Returns the symbol of this prefix.
-
-
getSymbol() - Method in interface javax.measure.Prefix
-
-
Returns the symbol of this prefix.
-
-
getSymbol() - Method in interface javax.measure.Unit
-
-
Returns the symbol (if any) of this unit.
-
-
getSystemOfUnits() - Method in interface javax.measure.spi.SystemOfUnitsService
-
-
Returns the default system of units.
-
-
getSystemOfUnits(String) - Method in interface javax.measure.spi.SystemOfUnitsService
-
-
Returns the system of units having the specified name or null if - none is found.
-
-
getSystemOfUnitsService() - Method in class javax.measure.spi.ServiceProvider
-
-
Returns the service to obtain a SystemOfUnits, or null if none.
-
-
getSystemUnit() - Method in interface javax.measure.spi.QuantityFactory
-
-
Returns the system unit for quantities produced by this factory or null if unknown.
-
-
getSystemUnit() - Method in interface javax.measure.Unit
-
-
Returns the unscaled system unit from which this unit is derived.
-
-
getUnit() - Method in interface javax.measure.Quantity
-
-
Returns the unit of this Quantity.
-
-
getUnit(Class<Q>) - Method in interface javax.measure.spi.SystemOfUnits
-
-
Returns the default unit for the specified quantity or null if none is defined for the given quantity in this unit system.
-
-
getUnit(String) - Method in interface javax.measure.spi.SystemOfUnits
-
-
Returns a unit with the given string representation or null if none is found in this unit system.
-
-
getUnitFormat() - Method in interface javax.measure.spi.FormatService
-
-
Returns the default unit format.
-
-
getUnitFormat(String) - Method in interface javax.measure.spi.FormatService
-
-
Returns the unit format having the specified name or null if none.
-
-
getUnitFormat(String, String) - Method in interface javax.measure.spi.FormatService
-
-
Returns the unit format having the specified name or null if none.
-
-
getUnits() - Method in interface javax.measure.spi.SystemOfUnits
-
-
Returns a read only view over the units explicitly defined by this system.
-
-
getUnits(Dimension) - Method in interface javax.measure.spi.SystemOfUnits
-
-
Returns the units defined in this system having the specified dimension (convenience method).
-
-
getValue() - Method in enum javax.measure.BinaryPrefix
-
-
Base part of the associated factor in base^exponent representation.
-
-
getValue() - Method in enum javax.measure.MetricPrefix
-
-
Base part of the associated factor in base^exponent representation.
-
-
getValue() - Method in interface javax.measure.Prefix
-
-
Returns the value of this prefix.
-
-
getValue() - Method in interface javax.measure.Quantity
-
-
Returns the value of this Quantity.
-
-
GIBI - Enum constant in enum javax.measure.BinaryPrefix
-
-
Prefix for 10243.
-
-
GIBI(Unit<Q>) - Static method in enum javax.measure.BinaryPrefix
-
-
Returns the specified unit multiplied by the factor 10243 (binary prefix).
-
-
GIGA - Enum constant in enum javax.measure.MetricPrefix
-
-
Prefix for 109.
-
-
GIGA(Unit<Q>) - Static method in enum javax.measure.MetricPrefix
-
-
Returns the specified unit multiplied by the factor 109
-
-
-

H

-
-
HECTO - Enum constant in enum javax.measure.MetricPrefix
-
-
Prefix for 102.
-
-
HECTO(Unit<Q>) - Static method in enum javax.measure.MetricPrefix
-
-
Returns the specified unit multiplied by the factor 102
-
-
-

I

-
-
Illuminance - Interface in javax.measure.quantity
-
-
Illuminance.
-
-
IncommensurableException - Exception in javax.measure
-
-
Signals that a problem of some sort has occurred due to incommensurable of some quantities/units.
-
-
IncommensurableException(String) - Constructor for exception javax.measure.IncommensurableException
-
-
Constructs a IncommensurableException with the given message.
-
-
IncommensurableException(String, Throwable) - Constructor for exception javax.measure.IncommensurableException
-
-
Constructs a IncommensurableException with the given message and cause.
-
-
IncommensurableException(Throwable) - Constructor for exception javax.measure.IncommensurableException
-
-
Constructs a IncommensurableException with the given cause.
-
-
inverse() - Method in interface javax.measure.Quantity
-
-
Returns a Quantity that is the multiplicative inverse of this - Quantity, having reciprocal value and reciprocal unit as given by - this.getUnit().inverse().
-
-
inverse() - Method in interface javax.measure.Unit
-
-
Returns the reciprocal (multiplicative inverse) of this unit.
-
-
inverse() - Method in interface javax.measure.UnitConverter
-
-
Returns the inverse of this converter.
-
-
isCompatible(Unit<?>) - Method in interface javax.measure.Unit
-
-
Indicates if this unit is compatible with the unit specified.
-
-
isEquivalentTo(Quantity<Q>) - Method in interface javax.measure.Quantity
-
-
Compares two instances of Quantity <Q>, performing the conversion of units if necessary.
-
-
isEquivalentTo(Unit<Q>) - Method in interface javax.measure.Unit
-
-
Indicates if this unit represents the same quantity than the given unit, ignoring name and symbols.
-
-
isIdentity() - Method in interface javax.measure.UnitConverter
-
-
Indicates if this converter is an identity converter.
-
-
isLinear() - Method in interface javax.measure.UnitConverter
-
-
Indicates whether this converter represents a (one-dimensional) linear transformation, that is - a linear map (wikipedia) from a one-dimensional - vector space (a scalar) to a one-dimensional vector space.
-
-
isLocaleSensitive() - Method in interface javax.measure.format.QuantityFormat
-
-
Returns true if this QuantityFormat depends on a Locale to perform its tasks.
-
-
isLocaleSensitive() - Method in interface javax.measure.format.UnitFormat
-
-
Returns true if this UnitFormat depends on a Locale to perform its tasks.
-
-
-

J

-
-
javax.measure - package javax.measure
-
-
Specifies Java packages for the programmatic, type safe handling - of quantities and their expression as values of units.
-
-
javax.measure.format - package javax.measure.format
-
-
[OPTIONAL] Provides Formatting and Parsing functionality for units, quantities, dimensions or their textual representation.
-
-
javax.measure.quantity - package javax.measure.quantity
-
-
[OPTIONAL] Provides quantitative properties or attributes of thing such as - mass, time, distance, heat, and angular separation.
-
-
javax.measure.spi - package javax.measure.spi
-
-
[OPTIONAL] The Units of Measurement SPI.
-
-
-

K

-
-
KIBI - Enum constant in enum javax.measure.BinaryPrefix
-
-
Prefix for 1024.
-
-
KIBI(Unit<Q>) - Static method in enum javax.measure.BinaryPrefix
-
-
Returns the specified unit multiplied by the factor 1024 (binary prefix).
-
-
KILO - Enum constant in enum javax.measure.MetricPrefix
-
-
Prefix for 103.
-
-
KILO(Unit<Q>) - Static method in enum javax.measure.MetricPrefix
-
-
Returns the specified unit multiplied by the factor 103
-
-
-

L

-
-
label(Unit<?>, String) - Method in interface javax.measure.format.UnitFormat
-
-
Attaches a system-wide label to the specified Unit.
-
-
Length - Interface in javax.measure.quantity
-
-
Extent of something along its greatest dimension or the extent of space between two objects or places.
-
-
LuminousFlux - Interface in javax.measure.quantity
-
-
Luminous flux.
-
-
LuminousIntensity - Interface in javax.measure.quantity
-
-
Luminous flux density per solid angle as measured in a given direction relative to the emitting source.
-
-
-

M

-
-
MagneticFlux - Interface in javax.measure.quantity
-
-
Magnetic flux.
-
-
MagneticFluxDensity - Interface in javax.measure.quantity
-
-
Magnetic flux density.
-
-
Mass - Interface in javax.measure.quantity
-
-
Measure of the quantity of matter that a body or an object contains.
-
-
MeasurementError - Error in javax.measure
-
-
This error is used to indicate serious problems with creating, retrieving and manipulating units of measurement objects.
-
-
MeasurementError() - Constructor for error javax.measure.MeasurementError
-
-
Constructs a MeasurementError with no detail message.
-
-
MeasurementError(String) - Constructor for error javax.measure.MeasurementError
-
-
Constructs a MeasurementError with the specified detail message.
-
-
MeasurementError(String, Throwable) - Constructor for error javax.measure.MeasurementError
-
-
Constructs a MeasurementError with the specified detail message and cause.
-
-
MeasurementError(Throwable) - Constructor for error javax.measure.MeasurementError
-
-
Constructs a MeasurementError with the given cause.
-
-
MeasurementException - Exception in javax.measure
-
-
Exception used to indicate a problem while dealing with units of measurement.
-
-
MeasurementException() - Constructor for exception javax.measure.MeasurementException
-
-
Constructs a MeasurementException with no given message.
-
-
MeasurementException(String) - Constructor for exception javax.measure.MeasurementException
-
-
Constructs a MeasurementException with the given message.
-
-
MeasurementException(String, Throwable) - Constructor for exception javax.measure.MeasurementException
-
-
Constructs a MeasurementException with the given message and cause.
-
-
MeasurementException(Throwable) - Constructor for exception javax.measure.MeasurementException
-
-
Constructs a MeasurementException with the given cause.
-
-
MeasurementParseException - Exception in javax.measure.format
-
-
Signals that an error has been reached unexpectedly while parsing.
-
-
MeasurementParseException(CharSequence, int) - Constructor for exception javax.measure.format.MeasurementParseException
-
-
Constructs a MeasurementParseException with the parsed text and offset.
-
-
MeasurementParseException(String) - Constructor for exception javax.measure.format.MeasurementParseException
-
-
Constructs a MeasurementParseException with the specified detail message.
-
-
MeasurementParseException(String, CharSequence, int) - Constructor for exception javax.measure.format.MeasurementParseException
-
-
Constructs a MeasurementParseException with the specified detail message, parsed text and index.
-
-
MeasurementParseException(Throwable) - Constructor for exception javax.measure.format.MeasurementParseException
-
-
Constructs a MeasurementParseException with the specified cause.
-
-
MEBI - Enum constant in enum javax.measure.BinaryPrefix
-
-
Prefix for 10242.
-
-
MEBI(Unit<Q>) - Static method in enum javax.measure.BinaryPrefix
-
-
Returns the specified unit multiplied by the factor 10242 (binary prefix).
-
-
MEGA - Enum constant in enum javax.measure.MetricPrefix
-
-
Prefix for 106.
-
-
MEGA(Unit<Q>) - Static method in enum javax.measure.MetricPrefix
-
-
Returns the specified unit multiplied by the factor 106
-
-
MetricPrefix - Enum in javax.measure
-
-
Provides support for the 24 prefixes used in the metric system (decimal multiples and submultiples of units).
-
-
MICRO - Enum constant in enum javax.measure.MetricPrefix
-
-
Prefix for 10-6.
-
-
MICRO(Unit<Q>) - Static method in enum javax.measure.MetricPrefix
-
-
Returns the specified unit multiplied by the factor 10-6
-
-
MILLI - Enum constant in enum javax.measure.MetricPrefix
-
-
Prefix for 10-3.
-
-
MILLI(Unit<Q>) - Static method in enum javax.measure.MetricPrefix
-
-
Returns the specified unit multiplied by the factor 10-3
-
-
multiply(double) - Method in interface javax.measure.Unit
-
-
Returns the result of multiplying this unit by the specified factor.
-
-
multiply(Number) - Method in interface javax.measure.Quantity
-
-
Returns the product of this Quantity with the Number value - specified.
-
-
multiply(Number) - Method in interface javax.measure.Unit
-
-
Returns the result of multiplying this unit by the specified factor.
-
-
multiply(Dimension) - Method in interface javax.measure.Dimension
-
-
Returns the product of this dimension with the one specified.
-
-
multiply(Quantity<?>) - Method in interface javax.measure.Quantity
-
-
Returns the product of this Quantity with the one specified.
-
-
multiply(Unit<?>) - Method in interface javax.measure.Unit
-
-
Returns the product of this unit with the one specified.
-
-
-

N

-
-
NANO - Enum constant in enum javax.measure.MetricPrefix
-
-
Prefix for 10-9.
-
-
NANO(Unit<Q>) - Static method in enum javax.measure.MetricPrefix
-
-
Returns the specified unit multiplied by the factor 10-9
-
-
negate() - Method in interface javax.measure.Quantity
-
-
Returns a Quantity whose value is (-this.getValue()).
-
-
-

O

-
-
of(String) - Static method in class javax.measure.spi.ServiceProvider
-
-
Returns the ServiceProvider with the specified name.
-
-
-

P

-
-
parse(CharSequence) - Method in interface javax.measure.format.QuantityFormat
-
-
Parses the specified CharSequence to produce a Quantity.
-
-
parse(CharSequence) - Method in interface javax.measure.format.UnitFormat
-
-
Parses the text into an instance of Unit.
-
-
parse(CharSequence, ParsePosition) - Method in interface javax.measure.format.QuantityFormat
-
-
Parses a portion of the specified CharSequence from the specified position to produce a Quantity.
-
-
parse(CharSequence, ParsePosition) - Method in interface javax.measure.format.UnitFormat
-
-
Parses a portion of the specified CharSequence from the specified position to produce a Unit.
-
-
PEBI - Enum constant in enum javax.measure.BinaryPrefix
-
-
Prefix for 10245.
-
-
PEBI(Unit<Q>) - Static method in enum javax.measure.BinaryPrefix
-
-
Returns the specified unit multiplied by the factor 10245 (binary prefix).
-
-
PETA - Enum constant in enum javax.measure.MetricPrefix
-
-
Prefix for 1015.
-
-
PETA(Unit<Q>) - Static method in enum javax.measure.MetricPrefix
-
-
Returns the specified unit multiplied by the factor 1015
-
-
PICO - Enum constant in enum javax.measure.MetricPrefix
-
-
Prefix for 10-12.
-
-
PICO(Unit<Q>) - Static method in enum javax.measure.MetricPrefix
-
-
Returns the specified unit multiplied by the factor 10-12
-
-
pow(int) - Method in interface javax.measure.Dimension
-
-
Returns this dimension raised to an exponent.
-
-
pow(int) - Method in interface javax.measure.Unit
-
-
Returns an unit raised to the n-th (integer) power of this unit.
-
-
Power - Interface in javax.measure.quantity
-
-
Rate at which work is done.
-
-
prefix(Prefix) - Method in interface javax.measure.Unit
-
-
Returns a new unit equal to this unit prefixed by the specified prefix.
-
-
Prefix - Interface in javax.measure
-
-
A unit prefix is a specifier or mnemonic that is prepended to units of measurement to indicate multiples or fractions of the units.
-
-
Pressure - Interface in javax.measure.quantity
-
-
Force applied uniformly over a surface.
-
-
-

Q

-
-
Quantity<Q extends Quantity<Q>> - Interface in javax.measure
-
-
Represents a quantitative property of a phenomenon, body, or substance, that - can be quantified by measurement.
-
-
QUANTITY_FORMAT - Enum constant in enum javax.measure.spi.FormatService.FormatType
-
-
Format of type QuantityFormat
-
-
Quantity.Scale - Enum in javax.measure
-
-
The scale of a Quantity, either ABSOLUTE or RELATIVE.
-
-
QuantityFactory<Q extends Quantity<Q>> - Interface in javax.measure.spi
-
-
Represents a factory that accepts Number and Unit arguments to create Quantity results.
-
-
QuantityFormat - Interface in javax.measure.format
-
-
Formats instances of Quantity.
-
-
QUECTO - Enum constant in enum javax.measure.MetricPrefix
-
-
Prefix for 10-30.
-
-
QUECTO(Unit<Q>) - Static method in enum javax.measure.MetricPrefix
-
-
Returns the specified unit multiplied by the factor 10-30
-
-
QUETTA - Enum constant in enum javax.measure.MetricPrefix
-
-
Prefix for 1030.
-
-
QUETTA(Unit<Q>) - Static method in enum javax.measure.MetricPrefix
-
-
Returns the specified unit multiplied by the factor 1030
-
-
-

R

-
-
RadiationDoseAbsorbed - Interface in javax.measure.quantity
-
-
Amount of energy deposited per unit of mass.
-
-
RadiationDoseEffective - Interface in javax.measure.quantity
-
-
Effective (or "equivalent") dose of radiation received by a human or some other living organism.
-
-
Radioactivity - Interface in javax.measure.quantity
-
-
Radioactive activity.
-
-
RELATIVE - Enum constant in enum javax.measure.Quantity.Scale
-
-
Relative scale
-
-
RONNA - Enum constant in enum javax.measure.MetricPrefix
-
-
Prefix for 1027.
-
-
RONNA(Unit<Q>) - Static method in enum javax.measure.MetricPrefix
-
-
Returns the specified unit multiplied by the factor 1027
-
-
RONTO - Enum constant in enum javax.measure.MetricPrefix
-
-
Prefix for 10-27.
-
-
RONTO(Unit<Q>) - Static method in enum javax.measure.MetricPrefix
-
-
Returns the specified unit multiplied by the factor 10-27
-
-
root(int) - Method in interface javax.measure.Dimension
-
-
Returns the given root of this dimension.
-
-
root(int) - Method in interface javax.measure.Unit
-
-
Returns an unit that is the n-th (integer) root of this unit.
-
-
-

S

-
-
ServiceProvider - Class in javax.measure.spi
-
-
Service Provider for Units of Measurement services.
-
-
ServiceProvider() - Constructor for class javax.measure.spi.ServiceProvider
-
-
Creates a new service provider.
-
-
setCurrent(ServiceProvider) - Static method in class javax.measure.spi.ServiceProvider
-
-
Replaces the current ServiceProvider.
-
-
shift(double) - Method in interface javax.measure.Unit
-
-
Returns the result of setting the origin of the scale of measurement to the given value.
-
-
shift(Number) - Method in interface javax.measure.Unit
-
-
Returns the result of setting the origin of the scale of measurement to the given value.
-
-
SolidAngle - Interface in javax.measure.quantity
-
-
Angle formed by three or more planes intersecting at a common point.
-
-
Speed - Interface in javax.measure.quantity
-
-
Distance traveled divided by the time of travel.
-
-
subtract(Quantity<Q>) - Method in interface javax.measure.Quantity
-
-
Returns the difference between this Quantity and the one specified.
-
-
SystemOfUnits - Interface in javax.measure.spi
-
-
A system of units grouped together for historical or cultural reasons.
- Common system of units are "SI" (System International), "Imperial" (British), "US" (US Customary).
-
-
SystemOfUnitsService - Interface in javax.measure.spi
-
-
This interface represents the service to obtain a system - of units.
-
-
-

T

-
-
TEBI - Enum constant in enum javax.measure.BinaryPrefix
-
-
Prefix for 10244.
-
-
TEBI(Unit<Q>) - Static method in enum javax.measure.BinaryPrefix
-
-
Returns the specified unit multiplied by the factor 10244 (binary prefix).
-
-
Temperature - Interface in javax.measure.quantity
-
-
Degree of hotness or coldness of a body or an environment.
-
-
TERA - Enum constant in enum javax.measure.MetricPrefix
-
-
Prefix for 1012.
-
-
TERA(Unit<Q>) - Static method in enum javax.measure.MetricPrefix
-
-
Returns the specified unit multiplied by the factor 1012
-
-
Time - Interface in javax.measure.quantity
-
-
Period of existence or persistence.
-
-
to(Unit<Q>) - Method in interface javax.measure.Quantity
-
-
Returns this Quantity converted into another (compatible) - Unit.
-
-
toString() - Method in interface javax.measure.Unit
-
-
Returns a string representation of this unit.
-
-
toSystemUnit() - Method in interface javax.measure.Quantity
-
-
Convenient method equivalent to to(getUnit().toSystemUnit()).
-
-
transform(UnitConverter) - Method in interface javax.measure.Unit
-
-
Returns the unit derived from this unit using the specified converter.
-
-
-

U

-
-
UnconvertibleException - Exception in javax.measure
-
-
Signals that a problem of some sort has occurred due to the impossibility of constructing a converter between two units.
-
-
UnconvertibleException(String) - Constructor for exception javax.measure.UnconvertibleException
-
-
Constructs a UnconvertibleException with the given message.
-
-
UnconvertibleException(String, Throwable) - Constructor for exception javax.measure.UnconvertibleException
-
-
Constructs a UnconvertibleException with the given message and cause.
-
-
UnconvertibleException(Throwable) - Constructor for exception javax.measure.UnconvertibleException
-
-
Constructs a UnconvertibleException with the given cause.
-
-
Unit<Q extends Quantity<Q>> - Interface in javax.measure
-
-
Represents a determinate quantity (as of length, time, heat, or value) adopted as a standard of measurement.
-
-
UNIT_FORMAT - Enum constant in enum javax.measure.spi.FormatService.FormatType
-
-
Format of type UnitFormat
-
-
UnitConverter - Interface in javax.measure
-
-
A converter of numeric values between different units.
-
-
UnitFormat - Interface in javax.measure.format
-
-
Formats instances of Unit to a String or Appendable and parses a CharSequence to a Unit.
-
-
-

V

-
-
valueOf(String) - Static method in enum javax.measure.BinaryPrefix
-
-
Returns the enum constant of this type with the specified name.
-
-
valueOf(String) - Static method in enum javax.measure.MetricPrefix
-
-
Returns the enum constant of this type with the specified name.
-
-
valueOf(String) - Static method in enum javax.measure.Quantity.Scale
-
-
Returns the enum constant of this type with the specified name.
-
-
valueOf(String) - Static method in enum javax.measure.spi.FormatService.FormatType
-
-
Returns the enum constant of this type with the specified name.
-
-
values() - Static method in enum javax.measure.BinaryPrefix
-
-
Returns an array containing the constants of this enum type, in -the order they are declared.
-
-
values() - Static method in enum javax.measure.MetricPrefix
-
-
Returns an array containing the constants of this enum type, in -the order they are declared.
-
-
values() - Static method in enum javax.measure.Quantity.Scale
-
-
Returns an array containing the constants of this enum type, in -the order they are declared.
-
-
values() - Static method in enum javax.measure.spi.FormatService.FormatType
-
-
Returns an array containing the constants of this enum type, in -the order they are declared.
-
-
Volume - Interface in javax.measure.quantity
-
-
Amount of space occupied by a three-dimensional object or region of space.
-
-
-

Y

-
-
YOBI - Enum constant in enum javax.measure.BinaryPrefix
-
-
Prefix for 10248.
-
-
YOBI(Unit<Q>) - Static method in enum javax.measure.BinaryPrefix
-
-
Returns the specified unit multiplied by the factor 10248 (binary prefix).
-
-
YOCTO - Enum constant in enum javax.measure.MetricPrefix
-
-
Prefix for 10-24.
-
-
YOCTO(Unit<Q>) - Static method in enum javax.measure.MetricPrefix
-
-
Returns the specified unit multiplied by the factor 10-24
-
-
YOTTA - Enum constant in enum javax.measure.MetricPrefix
-
-
Prefix for 1024.
-
-
YOTTA(Unit<Q>) - Static method in enum javax.measure.MetricPrefix
-
-
Returns the specified unit multiplied by the factor 1024
-
-
-

Z

-
-
ZEBI - Enum constant in enum javax.measure.BinaryPrefix
-
-
Prefix for 10247.
-
-
ZEBI(Unit<Q>) - Static method in enum javax.measure.BinaryPrefix
-
-
Returns the specified unit multiplied by the factor 10247 (binary prefix).
-
-
ZEPTO - Enum constant in enum javax.measure.MetricPrefix
-
-
Prefix for 10-21.
-
-
ZEPTO(Unit<Q>) - Static method in enum javax.measure.MetricPrefix
-
-
Returns the specified unit multiplied by the factor 10-21
-
-
ZETTA - Enum constant in enum javax.measure.MetricPrefix
-
-
Prefix for 1021.
-
-
ZETTA(Unit<Q>) - Static method in enum javax.measure.MetricPrefix
-
-
Returns the specified unit multiplied by the factor 1021
-
-
-A B C D E F G H I J K L M N O P Q R S T U V Y Z 
All Classes and Interfaces|All Packages|Serialized Form
- -
-
- - diff --git a/docs/apidocs/index.html b/docs/apidocs/index.html deleted file mode 100644 index ba74e69c..00000000 --- a/docs/apidocs/index.html +++ /dev/null @@ -1,88 +0,0 @@ - - - - -Overview (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - - -
- -
-
-
-

Units of Measurement API 2.2 API

-
-
-
Packages
-
-
Package
-
Description
- -
-
Specifies Java packages for the programmatic, type safe handling - of quantities and their expression as values of units.
-
- -
-
[OPTIONAL] Provides Formatting and Parsing functionality for units, quantities, dimensions or their textual representation.
-
- -
-
[OPTIONAL] Provides quantitative properties or attributes of thing such as - mass, time, distance, heat, and angular separation.
-
- -
-
[OPTIONAL] The Units of Measurement SPI.
-
-
-
-
- -
-
- - diff --git a/docs/apidocs/javax/measure/BinaryPrefix.html b/docs/apidocs/javax/measure/BinaryPrefix.html deleted file mode 100644 index 8ba09852..00000000 --- a/docs/apidocs/javax/measure/BinaryPrefix.html +++ /dev/null @@ -1,580 +0,0 @@ - - - - -BinaryPrefix (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
- -
-
Package javax.measure
-

Enum BinaryPrefix

-
-
java.lang.Object -
java.lang.Enum<BinaryPrefix> -
javax.measure.BinaryPrefix
-
-
-
-
-
All Implemented Interfaces:
-
Serializable, Comparable<BinaryPrefix>, java.lang.constant.Constable, Prefix
-
-
-
public enum BinaryPrefix -extends Enum<BinaryPrefix> -implements Prefix
-
Provides support for common binary prefixes to be used by units. For example: -
- import static systems.uom.unicode.CLDR.*;  // Static import (from Unicode System).
- import static javax.measure.BinaryPrefix.*; // Static import.
- import javax.measure.*;
- import systems.uom.quantity.Information; // (from Systems Quantities)
- ...
- Unit<Information> MEBIT  = MEBI(BIT);
- Unit<Information> GIBYTE = GIBI(BYTE); 
- 
- You could also apply Unit.prefix: -
- ...
- Unit<Information> MEBIT  = BIT.prefix(MEBI);
- Unit<Information> GIBYTE = BYTE.prefix(GIBI);
- 
- -

- Do not use ordinal() to obtain the numeric representation of BinaryPrefix. Use getValue() and getExponent() instead. -

- -
-
Implementation Requirements
This is an immutable and thread-safe enum.
-
-
-
Since:
-
2.0
-
Version:
-
2.2, May 20, 2023
-
Author:
-
Werner Keil
-
See Also:
-
- -
-
-
-
-
    - -
  • -
    -

    Nested Class Summary

    -
    -

    Nested classes/interfaces inherited from class java.lang.Enum

    -Enum.EnumDesc<E extends Enum<E>>
    -
    -
  • - -
  • -
    -

    Enum Constant Summary

    -
    Enum Constants
    -
    -
    Enum Constant
    -
    Description
    - -
    -
    Prefix for 10246.
    -
    - -
    -
    Prefix for 10243.
    -
    - -
    -
    Prefix for 1024.
    -
    - -
    -
    Prefix for 10242.
    -
    - -
    -
    Prefix for 10245.
    -
    - -
    -
    Prefix for 10244.
    -
    - -
    -
    Prefix for 10248.
    -
    - -
    -
    Prefix for 10247.
    -
    -
    -
    -
  • - -
  • -
    -

    Method Summary

    -
    -
    -
    -
    -
    Modifier and Type
    -
    Method
    -
    Description
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    EXBI(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10246 (binary prefix).
    -
    -
    int
    - -
    -
    Exponent part of the associated factor in base^exponent representation.
    -
    - - -
    -
    Returns the name of this prefix.
    -
    - - -
    -
    Returns the symbol of this prefix.
    -
    - - -
    -
    Base part of the associated factor in base^exponent representation.
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    GIBI(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10243 (binary prefix).
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    KIBI(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 1024 (binary prefix).
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MEBI(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10242 (binary prefix).
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    PEBI(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10245 (binary prefix).
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    TEBI(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10244 (binary prefix).
    -
    - - -
    -
    Returns the enum constant of this type with the specified name.
    -
    -
    static BinaryPrefix[]
    - -
    -
    Returns an array containing the constants of this enum type, in -the order they are declared.
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    YOBI(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10248 (binary prefix).
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    ZEBI(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10247 (binary prefix).
    -
    -
    -
    -
    - -
    -

    Methods inherited from class java.lang.Object

    -getClass, notify, notifyAll, wait, wait, wait
    -
    -
  • -
-
-
-
    - -
  • -
    -

    Enum Constant Details

    - -
    -
  • - -
  • -
    -

    Method Details

    -
      -
    • -
      -

      values

      -
      public static BinaryPrefix[] values()
      -
      Returns an array containing the constants of this enum type, in -the order they are declared.
      -
      -
      Returns:
      -
      an array containing the constants of this enum type, in the order they are declared
      -
      -
      -
    • -
    • -
      -

      valueOf

      -
      public static BinaryPrefix valueOf(String name)
      -
      Returns the enum constant of this type with the specified name. -The string must match exactly an identifier used to declare an -enum constant in this type. (Extraneous whitespace characters are -not permitted.)
      -
      -
      Parameters:
      -
      name - the name of the enum constant to be returned.
      -
      Returns:
      -
      the enum constant with the specified name
      -
      Throws:
      -
      IllegalArgumentException - if this enum type has no constant with the specified name
      -
      NullPointerException - if the argument is null
      -
      -
      -
    • -
    • -
      -

      KIBI

      -
      public static <Q extends Quantity<Q>> Unit<Q> KIBI(Unit<Q> unit)
      -
      Returns the specified unit multiplied by the factor 1024 (binary prefix).
      -
      -
      Type Parameters:
      -
      Q - type of the quantity measured by the unit.
      -
      Parameters:
      -
      unit - any unit.
      -
      Returns:
      -
      unit.multiply(1024).
      -
      -
      -
    • -
    • -
      -

      MEBI

      -
      public static <Q extends Quantity<Q>> Unit<Q> MEBI(Unit<Q> unit)
      -
      Returns the specified unit multiplied by the factor 10242 (binary prefix).
      -
      -
      Type Parameters:
      -
      Q - type of the quantity measured by the unit.
      -
      Parameters:
      -
      unit - any unit.
      -
      Returns:
      -
      unit.multiply(1048576).
      -
      -
      -
    • -
    • -
      -

      GIBI

      -
      public static <Q extends Quantity<Q>> Unit<Q> GIBI(Unit<Q> unit)
      -
      Returns the specified unit multiplied by the factor 10243 (binary prefix).
      -
      -
      Type Parameters:
      -
      Q - type of the quantity measured by the unit.
      -
      Parameters:
      -
      unit - any unit.
      -
      Returns:
      -
      unit.multiply(1073741824).
      -
      -
      -
    • -
    • -
      -

      TEBI

      -
      public static <Q extends Quantity<Q>> Unit<Q> TEBI(Unit<Q> unit)
      -
      Returns the specified unit multiplied by the factor 10244 (binary prefix).
      -
      -
      Type Parameters:
      -
      Q - type of the quantity measured by the unit.
      -
      Parameters:
      -
      unit - any unit.
      -
      Returns:
      -
      unit.multiply(1099511627776L).
      -
      -
      -
    • -
    • -
      -

      PEBI

      -
      public static <Q extends Quantity<Q>> Unit<Q> PEBI(Unit<Q> unit)
      -
      Returns the specified unit multiplied by the factor 10245 (binary prefix).
      -
      -
      Type Parameters:
      -
      Q - type of the quantity measured by the unit.
      -
      Parameters:
      -
      unit - any unit.
      -
      Returns:
      -
      unit.multiply(1125899906842624L).
      -
      -
      -
    • -
    • -
      -

      EXBI

      -
      public static <Q extends Quantity<Q>> Unit<Q> EXBI(Unit<Q> unit)
      -
      Returns the specified unit multiplied by the factor 10246 (binary prefix).
      -
      -
      Type Parameters:
      -
      Q - type of the quantity measured by the unit.
      -
      Parameters:
      -
      unit - any unit.
      -
      Returns:
      -
      unit.multiply(1152921504606846976L).
      -
      -
      -
    • -
    • -
      -

      ZEBI

      -
      public static <Q extends Quantity<Q>> Unit<Q> ZEBI(Unit<Q> unit)
      -
      Returns the specified unit multiplied by the factor 10247 (binary prefix).
      -
      -
      Type Parameters:
      -
      Q - type of the quantity measured by the unit.
      -
      Parameters:
      -
      unit - any unit.
      -
      Returns:
      -
      unit.multiply(1152921504606846976d).
      -
      -
      -
    • -
    • -
      -

      YOBI

      -
      public static <Q extends Quantity<Q>> Unit<Q> YOBI(Unit<Q> unit)
      -
      Returns the specified unit multiplied by the factor 10248 (binary prefix).
      -
      -
      Type Parameters:
      -
      Q - type of the quantity measured by the unit.
      -
      Parameters:
      -
      unit - any unit.
      -
      Returns:
      -
      unit.multiply(1208925819614629174706176d).
      -
      -
      -
    • -
    • -
      -

      getSymbol

      -
      public String getSymbol()
      -
      Returns the symbol of this prefix.
      -
      -
      Specified by:
      -
      getSymbol in interface Prefix
      -
      Returns:
      -
      this prefix symbol, not null.
      -
      -
      -
    • -
    • -
      -

      getValue

      -
      public Integer getValue()
      -
      Base part of the associated factor in base^exponent representation. For binary prefix, this is always 1024.
      -
      -
      Specified by:
      -
      getValue in interface Prefix
      -
      Returns:
      -
      The prefix value.
      -
      -
      -
    • -
    • -
      -

      getExponent

      -
      public int getExponent()
      -
      Exponent part of the associated factor in base^exponent representation.
      -
      -
      Specified by:
      -
      getExponent in interface Prefix
      -
      Returns:
      -
      the exponent part of this prefix.
      -
      -
      -
    • -
    • -
      -

      getName

      -
      public String getName()
      -
      Returns the name of this prefix.
      -
      -
      Specified by:
      -
      getName in interface Prefix
      -
      Returns:
      -
      this prefix name, not null.
      -
      -
      -
    • -
    -
    -
  • -
-
- -
- -
-
- - diff --git a/docs/apidocs/javax/measure/Dimension.html b/docs/apidocs/javax/measure/Dimension.html deleted file mode 100644 index f15a605d..00000000 --- a/docs/apidocs/javax/measure/Dimension.html +++ /dev/null @@ -1,243 +0,0 @@ - - - - -Dimension (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - - - - - - - -
- -
-
- -
-
Package javax.measure
-

Interface Dimension

-
-
-
-
public interface Dimension
-
Represents the dimension of a unit. - -

- Concrete dimensions are obtained through the Unit.getDimension() method. -

- -

- Two units u1 and u2 are compatible if and only if - u1.getDimension().equals(u2.getDimension()). -

-
-
Since:
-
1.0
-
Version:
-
1.0, August 8, 2016
-
Author:
-
Jean-Marie Dautelle, Werner Keil
-
See Also:
-
- -
-
-
-
-
    - -
  • -
    -

    Method Summary

    -
    -
    -
    -
    -
    Modifier and Type
    -
    Method
    -
    Description
    - -
    divide(Dimension divisor)
    -
    -
    Returns the quotient of this dimension with the one specified.
    -
    -
    Map<? extends Dimension,Integer>
    - -
    -
    Returns the (fundamental) base dimensions and their exponent whose product is this dimension, or null if this dimension is a base - dimension.
    -
    - -
    multiply(Dimension multiplicand)
    -
    -
    Returns the product of this dimension with the one specified.
    -
    - -
    pow(int n)
    -
    -
    Returns this dimension raised to an exponent.
    -
    - -
    root(int n)
    -
    -
    Returns the given root of this dimension.
    -
    -
    -
    -
    -
    -
  • -
-
-
-
    - -
  • -
    -

    Method Details

    -
      -
    • -
      -

      multiply

      -
      Dimension multiply(Dimension multiplicand)
      -
      Returns the product of this dimension with the one specified.
      -
      -
      Parameters:
      -
      multiplicand - the dimension multiplicand.
      -
      Returns:
      -
      this * multiplicand
      -
      -
      -
    • -
    • -
      -

      divide

      - -
      Returns the quotient of this dimension with the one specified.
      -
      -
      Parameters:
      -
      divisor - the dimension divisor.
      -
      Returns:
      -
      this / divisor
      -
      -
      -
    • -
    • -
      -

      pow

      -
      Dimension pow(int n)
      -
      Returns this dimension raised to an exponent. (thisn)
      -
      -
      Parameters:
      -
      n - power to raise this Dimension to.
      -
      Returns:
      -
      thisn
      -
      -
      -
    • -
    • -
      -

      root

      -
      Dimension root(int n)
      -
      Returns the given root of this dimension.
      -
      -
      Parameters:
      -
      n - the root's order.
      -
      Returns:
      -
      the result of taking the given root of this dimension.
      -
      Throws:
      -
      ArithmeticException - if n == 0.
      -
      -
      -
    • -
    • -
      -

      getBaseDimensions

      - -
      Returns the (fundamental) base dimensions and their exponent whose product is this dimension, or null if this dimension is a base - dimension.
      -
      -
      Returns:
      -
      the mapping between the fundamental dimensions and their exponent.
      -
      -
      -
    • -
    -
    -
  • -
-
- -
- -
-
- - diff --git a/docs/apidocs/javax/measure/IncommensurableException.html b/docs/apidocs/javax/measure/IncommensurableException.html deleted file mode 100644 index 1cb0f695..00000000 --- a/docs/apidocs/javax/measure/IncommensurableException.html +++ /dev/null @@ -1,205 +0,0 @@ - - - - -IncommensurableException (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - - -
- -
-
- -
-
Package javax.measure
-

Class IncommensurableException

-
-
java.lang.Object -
java.lang.Throwable -
java.lang.Exception -
javax.measure.IncommensurableException
-
-
-
-
-
-
All Implemented Interfaces:
-
Serializable
-
-
-
public class IncommensurableException -extends Exception
-
Signals that a problem of some sort has occurred due to incommensurable of some quantities/units. Only commensurable quantity (quantities with the - same dimensions) may be compared, equated, added, or subtracted. Also, one unit can be converted to another unit only if both units are - commensurable. -

- This is a checked exception, so it deliberately doesn't inherit from MeasurementException like most other exceptions. -

-
-
Since:
-
1.0
-
Version:
-
1.0, August 8, 2016
-
Author:
-
Jean-Marie Dautelle, Werner Keil
-
See Also:
-
- -
-
-
-
- -
-
-
    - -
  • -
    -

    Constructor Details

    -
      -
    • -
      -

      IncommensurableException

      - -
      Constructs a IncommensurableException with the given message.
      -
      -
      Parameters:
      -
      message - the detail message, or null if none.
      -
      -
      -
    • -
    • -
      -

      IncommensurableException

      - -
      Constructs a IncommensurableException with the given cause.
      -
      -
      Parameters:
      -
      cause - the cause of this exception, or null if none.
      -
      -
      -
    • -
    • -
      -

      IncommensurableException

      -
      public IncommensurableException(String message, - Throwable cause)
      -
      Constructs a IncommensurableException with the given message and cause.
      -
      -
      Parameters:
      -
      message - the detail message, or null if none.
      -
      cause - the cause of this exception, or null if none.
      -
      -
      -
    • -
    -
    -
  • -
-
- -
- -
-
- - diff --git a/docs/apidocs/javax/measure/MeasurementError.html b/docs/apidocs/javax/measure/MeasurementError.html deleted file mode 100644 index 187c9286..00000000 --- a/docs/apidocs/javax/measure/MeasurementError.html +++ /dev/null @@ -1,215 +0,0 @@ - - - - -MeasurementError (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - - -
- -
-
- -
-
Package javax.measure
-

Class MeasurementError

-
-
java.lang.Object -
java.lang.Throwable -
java.lang.Error -
javax.measure.MeasurementError
-
-
-
-
-
-
All Implemented Interfaces:
-
Serializable
-
-
-
public class MeasurementError -extends Error
-
This error is used to indicate serious problems with creating, retrieving and manipulating units of measurement objects. - -
-
Implementation Requirements:
-
This class is intended for use in a single thread. Exception thrown when errors occur during Units of Measurement operations.
-
-
-
Since:
-
2.1
-
Version:
-
2.2, Feb 3, 2021
-
Author:
-
Werner Keil
-
See Also:
-
- -
-
-
-
- -
-
-
    - -
  • -
    -

    Constructor Details

    -
      -
    • -
      -

      MeasurementError

      - -
      Constructs a MeasurementError with no detail message.
      -
      -
    • -
    • -
      -

      MeasurementError

      -
      public MeasurementError(String message)
      -
      Constructs a MeasurementError with the specified detail message.
      -
      -
      Parameters:
      -
      message - the detail message.
      -
      -
      -
    • -
    • -
      -

      MeasurementError

      -
      public MeasurementError(Throwable cause)
      -
      Constructs a MeasurementError with the given cause.
      -
      -
      Parameters:
      -
      cause - the cause of this exception, or null if none.
      -
      -
      -
    • -
    • -
      -

      MeasurementError

      -
      public MeasurementError(String message, - Throwable cause)
      -
      Constructs a MeasurementError with the specified detail message and cause.
      -
      -
      Parameters:
      -
      message - the detail message.
      -
      cause - the cause, may be null
      -
      -
      -
    • -
    -
    -
  • -
-
- -
- -
-
- - diff --git a/docs/apidocs/javax/measure/MeasurementException.html b/docs/apidocs/javax/measure/MeasurementException.html deleted file mode 100644 index 8b7529ca..00000000 --- a/docs/apidocs/javax/measure/MeasurementException.html +++ /dev/null @@ -1,229 +0,0 @@ - - - - -MeasurementException (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - - -
- -
-
- -
-
Package javax.measure
-

Class MeasurementException

-
- -
-
-
All Implemented Interfaces:
-
Serializable
-
-
-
Direct Known Subclasses:
-
MeasurementParseException, UnconvertibleException
-
-
- -
Exception used to indicate a problem while dealing with units of measurement. -

- This exception is used to indicate problems with creating, retrieving and manipulating units of measurement objects. -

- -
-
Implementation Requirements:
-
This class is intended for use in a single thread. Exception thrown when errors occur during Units of Measurement operations.
-
-
-
Since:
-
1.0
-
Version:
-
2.0, Jul 4, 2020
-
Author:
-
Werner Keil
-
See Also:
-
- -
-
-
-
- -
-
-
    - -
  • -
    -

    Constructor Details

    -
      -
    • -
      -

      MeasurementException

      -
      public MeasurementException(String message)
      -
      Constructs a MeasurementException with the given message.
      -
      -
      Parameters:
      -
      message - the detail message, or null if none.
      -
      -
      -
    • -
    • -
      -

      MeasurementException

      - -
      Constructs a MeasurementException with the given cause.
      -
      -
      Parameters:
      -
      cause - the cause of this exception, or null if none.
      -
      -
      -
    • -
    • -
      -

      MeasurementException

      -
      public MeasurementException(String message, - Throwable cause)
      -
      Constructs a MeasurementException with the given message and cause.
      -
      -
      Parameters:
      -
      message - the detail message, or null if none.
      -
      cause - the cause of this exception, or null if none.
      -
      -
      -
    • -
    • -
      -

      MeasurementException

      - -
      Constructs a MeasurementException with no given message.
      -
      -
    • -
    -
    -
  • -
-
- -
- -
-
- - diff --git a/docs/apidocs/javax/measure/MetricPrefix.html b/docs/apidocs/javax/measure/MetricPrefix.html deleted file mode 100644 index 122151ec..00000000 --- a/docs/apidocs/javax/measure/MetricPrefix.html +++ /dev/null @@ -1,1339 +0,0 @@ - - - - -MetricPrefix (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
- -
-
Package javax.measure
-

Enum MetricPrefix

-
-
java.lang.Object -
java.lang.Enum<MetricPrefix> -
javax.measure.MetricPrefix
-
-
-
-
-
All Implemented Interfaces:
-
Serializable, Comparable<MetricPrefix>, java.lang.constant.Constable, Prefix
-
-
-
public enum MetricPrefix -extends Enum<MetricPrefix> -implements Prefix
-
Provides support for the 24 prefixes used in the metric system (decimal multiples and submultiples of units). For example: - -
- import static tech.units.indriya.unit.Units.*;  // Static import (from the RI).
- import static javax.measure.MetricPrefix.*; // Static import.
- import javax.measure.*;
- import javax.measure.quantity.*;
- ...
- Unit<Pressure> HECTOPASCAL = HECTO(PASCAL);
- Unit<Length> KILOMETRE = KILO(METRE); 
- 
- You could also apply Unit.prefix: -
- ...
- Unit<Pressure> HECTOPASCAL = PASCAL.prefix(HECTO);
- Unit<Length> KILOMETRE = METRE.prefix(KILO);
- 
- -

- Do not use ordinal() to obtain the numeric representation of MetricPrefix. Use getValue() and getExponent() instead. -

- -
-
Implementation Requirements
This is an immutable and thread-safe enum.
-
-
-
Since:
-
2.0
-
Version:
-
2.3, May 20, 2023
-
Author:
-
Jean-Marie Dautelle, Werner Keil
-
See Also:
-
- -
-
-
-
-
    - -
  • -
    -

    Nested Class Summary

    -
    -

    Nested classes/interfaces inherited from class java.lang.Enum

    -Enum.EnumDesc<E extends Enum<E>>
    -
    -
  • - -
  • -
    -

    Enum Constant Summary

    -
    Enum Constants
    -
    -
    Enum Constant
    -
    Description
    - -
    -
    Prefix for 10-18.
    -
    - -
    -
    Prefix for 10-2.
    -
    - -
    -
    Prefix for 101.
    -
    - -
    -
    Prefix for 10-1.
    -
    - -
    -
    Prefix for 1018.
    -
    - -
    -
    Prefix for 10-15.
    -
    - -
    -
    Prefix for 109.
    -
    - -
    -
    Prefix for 102.
    -
    - -
    -
    Prefix for 103.
    -
    - -
    -
    Prefix for 106.
    -
    - -
    -
    Prefix for 10-6.
    -
    - -
    -
    Prefix for 10-3.
    -
    - -
    -
    Prefix for 10-9.
    -
    - -
    -
    Prefix for 1015.
    -
    - -
    -
    Prefix for 10-12.
    -
    - -
    -
    Prefix for 10-30.
    -
    - -
    -
    Prefix for 1030.
    -
    - -
    -
    Prefix for 1027.
    -
    - -
    -
    Prefix for 10-27.
    -
    - -
    -
    Prefix for 1012.
    -
    - -
    -
    Prefix for 10-24.
    -
    - -
    -
    Prefix for 1024.
    -
    - -
    -
    Prefix for 10-21.
    -
    - -
    -
    Prefix for 1021.
    -
    -
    -
    -
  • - -
  • -
    -

    Method Summary

    -
    -
    -
    -
    -
    Modifier and Type
    -
    Method
    -
    Description
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    ATTO(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10-18
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    CENTI(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10-2
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    DECA(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 101
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    DECI(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10-1
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    DEKA(Unit<Q> unit)
    -
    -
    US alias for DECA.
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    EXA(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 1018
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    FEMTO(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10-15
    -
    -
    int
    - -
    -
    Exponent part of the associated factor in base^exponent representation.
    -
    - - -
    -
    Returns the name of this prefix.
    -
    - - -
    -
    Returns the symbol of this prefix.
    -
    - - -
    -
    Base part of the associated factor in base^exponent representation.
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    GIGA(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 109
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    HECTO(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 102
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    KILO(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 103
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MEGA(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 106
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MICRO(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10-6
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MILLI(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10-3
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    NANO(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10-9
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    PETA(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 1015
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    PICO(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10-12
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    QUECTO(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10-30
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    QUETTA(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 1030
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    RONNA(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 1027
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    RONTO(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10-27
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    TERA(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 1012
    -
    - - -
    -
    Returns the enum constant of this type with the specified name.
    -
    -
    static MetricPrefix[]
    - -
    -
    Returns an array containing the constants of this enum type, in -the order they are declared.
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    YOCTO(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10-24
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    YOTTA(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 1024
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    ZEPTO(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10-21
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    ZETTA(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 1021
    -
    -
    -
    -
    - -
    -

    Methods inherited from class java.lang.Object

    -getClass, notify, notifyAll, wait, wait, wait
    -
    -
  • -
-
-
-
    - -
  • -
    -

    Enum Constant Details

    - -
    -
  • - -
  • -
    -

    Method Details

    -
      -
    • -
      -

      values

      -
      public static MetricPrefix[] values()
      -
      Returns an array containing the constants of this enum type, in -the order they are declared.
      -
      -
      Returns:
      -
      an array containing the constants of this enum type, in the order they are declared
      -
      -
      -
    • -
    • -
      -

      valueOf

      -
      public static MetricPrefix valueOf(String name)
      -
      Returns the enum constant of this type with the specified name. -The string must match exactly an identifier used to declare an -enum constant in this type. (Extraneous whitespace characters are -not permitted.)
      -
      -
      Parameters:
      -
      name - the name of the enum constant to be returned.
      -
      Returns:
      -
      the enum constant with the specified name
      -
      Throws:
      -
      IllegalArgumentException - if this enum type has no constant with the specified name
      -
      NullPointerException - if the argument is null
      -
      -
      -
    • -
    • -
      -

      QUETTA

      -
      public static <Q extends Quantity<Q>> Unit<Q> QUETTA(Unit<Q> unit)
      -
      Returns the specified unit multiplied by the factor 1030
      -
      -
      Type Parameters:
      -
      Q - type of the quantity measured by the unit.
      -
      Parameters:
      -
      unit - any unit.
      -
      Returns:
      -
      unit.times(1e30).
      -
      See Also:
      -
      - -
      -
      -
      -
    • -
    • -
      -

      RONNA

      -
      public static <Q extends Quantity<Q>> Unit<Q> RONNA(Unit<Q> unit)
      -
      Returns the specified unit multiplied by the factor 1027
      -
      -
      Type Parameters:
      -
      Q - type of the quantity measured by the unit.
      -
      Parameters:
      -
      unit - any unit.
      -
      Returns:
      -
      unit.times(1e27).
      -
      See Also:
      -
      - -
      -
      -
      -
    • -
    • -
      -

      YOTTA

      -
      public static <Q extends Quantity<Q>> Unit<Q> YOTTA(Unit<Q> unit)
      -
      Returns the specified unit multiplied by the factor 1024
      -
      -
      Type Parameters:
      -
      Q - type of the quantity measured by the unit.
      -
      Parameters:
      -
      unit - any unit.
      -
      Returns:
      -
      unit.times(1e24).
      -
      See Also:
      -
      - -
      -
      -
      -
    • -
    • -
      -

      ZETTA

      -
      public static <Q extends Quantity<Q>> Unit<Q> ZETTA(Unit<Q> unit)
      -
      Returns the specified unit multiplied by the factor 1021
      -
      -
      Type Parameters:
      -
      Q - type of the quantity measured by the unit.
      -
      Parameters:
      -
      unit - any unit.
      -
      Returns:
      -
      unit.times(1e21).
      -
      See Also:
      -
      - -
      -
      -
      -
    • -
    • -
      -

      EXA

      -
      public static <Q extends Quantity<Q>> Unit<Q> EXA(Unit<Q> unit)
      -
      Returns the specified unit multiplied by the factor 1018
      -
      -
      Type Parameters:
      -
      Q - type of the quantity measured by the unit.
      -
      Parameters:
      -
      unit - any unit.
      -
      Returns:
      -
      unit.times(1e18).
      -
      See Also:
      -
      - -
      -
      -
      -
    • -
    • -
      -

      PETA

      -
      public static <Q extends Quantity<Q>> Unit<Q> PETA(Unit<Q> unit)
      -
      Returns the specified unit multiplied by the factor 1015
      -
      -
      Type Parameters:
      -
      Q - type of the quantity measured by the unit.
      -
      Parameters:
      -
      unit - any unit.
      -
      Returns:
      -
      unit.times(1e15).
      -
      See Also:
      -
      - -
      -
      -
      -
    • -
    • -
      -

      TERA

      -
      public static <Q extends Quantity<Q>> Unit<Q> TERA(Unit<Q> unit)
      -
      Returns the specified unit multiplied by the factor 1012
      -
      -
      Type Parameters:
      -
      Q - type of the quantity measured by the unit.
      -
      Parameters:
      -
      unit - any unit.
      -
      Returns:
      -
      unit.times(1e12).
      -
      See Also:
      -
      - -
      -
      -
      -
    • -
    • -
      -

      GIGA

      -
      public static <Q extends Quantity<Q>> Unit<Q> GIGA(Unit<Q> unit)
      -
      Returns the specified unit multiplied by the factor 109
      -
      -
      Type Parameters:
      -
      Q - type of the quantity measured by the unit.
      -
      Parameters:
      -
      unit - any unit.
      -
      Returns:
      -
      unit.times(1e9).
      -
      See Also:
      -
      - -
      -
      -
      -
    • -
    • -
      -

      MEGA

      -
      public static <Q extends Quantity<Q>> Unit<Q> MEGA(Unit<Q> unit)
      -
      Returns the specified unit multiplied by the factor 106
      -
      -
      Type Parameters:
      -
      Q - type of the quantity measured by the unit.
      -
      Parameters:
      -
      unit - any unit.
      -
      Returns:
      -
      unit.times(1e6).
      -
      See Also:
      -
      - -
      -
      -
      -
    • -
    • -
      -

      KILO

      -
      public static <Q extends Quantity<Q>> Unit<Q> KILO(Unit<Q> unit)
      -
      Returns the specified unit multiplied by the factor 103
      -
      -
      Type Parameters:
      -
      Q - type of the quantity measured by the unit.
      -
      Parameters:
      -
      unit - any unit.
      -
      Returns:
      -
      unit.times(1e3).
      -
      See Also:
      -
      - -
      -
      -
      -
    • -
    • -
      -

      HECTO

      -
      public static <Q extends Quantity<Q>> Unit<Q> HECTO(Unit<Q> unit)
      -
      Returns the specified unit multiplied by the factor 102
      -
      -
      Type Parameters:
      -
      Q - type of the quantity measured by the unit.
      -
      Parameters:
      -
      unit - any unit.
      -
      Returns:
      -
      unit.times(1e2).
      -
      See Also:
      -
      - -
      -
      -
      -
    • -
    • -
      -

      DECA

      -
      public static <Q extends Quantity<Q>> Unit<Q> DECA(Unit<Q> unit)
      -
      Returns the specified unit multiplied by the factor 101
      -
      -
      Type Parameters:
      -
      Q - type of the quantity measured by the unit.
      -
      Parameters:
      -
      unit - any unit.
      -
      Returns:
      -
      unit.times(1e1).
      -
      See Also:
      -
      - -
      -
      -
      -
    • -
    • -
      -

      DEKA

      -
      public static <Q extends Quantity<Q>> Unit<Q> DEKA(Unit<Q> unit)
      -
      US alias for DECA.
      -
      -
      Type Parameters:
      -
      Q - type of the quantity measured by the unit.
      -
      Parameters:
      -
      unit - any unit.
      -
      Returns:
      -
      unit.times(1e1).
      -
      See Also:
      -
      - -
      -
      -
      -
    • -
    • -
      -

      DECI

      -
      public static <Q extends Quantity<Q>> Unit<Q> DECI(Unit<Q> unit)
      -
      Returns the specified unit multiplied by the factor 10-1
      -
      -
      Type Parameters:
      -
      Q - type of the quantity measured by the unit.
      -
      Parameters:
      -
      unit - any unit.
      -
      Returns:
      -
      unit.times(1e-1).
      -
      See Also:
      -
      - -
      -
      -
      -
    • -
    • -
      -

      CENTI

      -
      public static <Q extends Quantity<Q>> Unit<Q> CENTI(Unit<Q> unit)
      -
      Returns the specified unit multiplied by the factor 10-2
      -
      -
      Type Parameters:
      -
      Q - type of the quantity measured by the unit.
      -
      Parameters:
      -
      unit - any unit.
      -
      Returns:
      -
      unit.times(1e-2).
      -
      See Also:
      -
      - -
      -
      -
      -
    • -
    • -
      -

      MILLI

      -
      public static <Q extends Quantity<Q>> Unit<Q> MILLI(Unit<Q> unit)
      -
      Returns the specified unit multiplied by the factor 10-3
      -
      -
      Type Parameters:
      -
      Q - type of the quantity measured by the unit.
      -
      Parameters:
      -
      unit - any unit.
      -
      Returns:
      -
      unit.times(1e-3).
      -
      See Also:
      -
      - -
      -
      -
      -
    • -
    • -
      -

      MICRO

      -
      public static <Q extends Quantity<Q>> Unit<Q> MICRO(Unit<Q> unit)
      -
      Returns the specified unit multiplied by the factor 10-6
      -
      -
      Type Parameters:
      -
      Q - type of the quantity measured by the unit.
      -
      Parameters:
      -
      unit - any unit.
      -
      Returns:
      -
      unit.times(1e-6).
      -
      See Also:
      -
      - -
      -
      -
      -
    • -
    • -
      -

      NANO

      -
      public static <Q extends Quantity<Q>> Unit<Q> NANO(Unit<Q> unit)
      -
      Returns the specified unit multiplied by the factor 10-9
      -
      -
      Type Parameters:
      -
      Q - type of the quantity measured by the unit.
      -
      Parameters:
      -
      unit - any unit.
      -
      Returns:
      -
      unit.times(1e-9).
      -
      See Also:
      -
      - -
      -
      -
      -
    • -
    • -
      -

      PICO

      -
      public static <Q extends Quantity<Q>> Unit<Q> PICO(Unit<Q> unit)
      -
      Returns the specified unit multiplied by the factor 10-12
      -
      -
      Type Parameters:
      -
      Q - type of the quantity measured by the unit.
      -
      Parameters:
      -
      unit - any unit.
      -
      Returns:
      -
      unit.times(1e-12).
      -
      See Also:
      -
      - -
      -
      -
      -
    • -
    • -
      -

      FEMTO

      -
      public static <Q extends Quantity<Q>> Unit<Q> FEMTO(Unit<Q> unit)
      -
      Returns the specified unit multiplied by the factor 10-15
      -
      -
      Type Parameters:
      -
      Q - type of the quantity measured by the unit.
      -
      Parameters:
      -
      unit - any unit.
      -
      Returns:
      -
      unit.times(1e-15).
      -
      See Also:
      -
      - -
      -
      -
      -
    • -
    • -
      -

      ATTO

      -
      public static <Q extends Quantity<Q>> Unit<Q> ATTO(Unit<Q> unit)
      -
      Returns the specified unit multiplied by the factor 10-18
      -
      -
      Type Parameters:
      -
      Q - type of the quantity measured by the unit.
      -
      Parameters:
      -
      unit - any unit.
      -
      Returns:
      -
      unit.times(1e-18).
      -
      See Also:
      -
      - -
      -
      -
      -
    • -
    • -
      -

      ZEPTO

      -
      public static <Q extends Quantity<Q>> Unit<Q> ZEPTO(Unit<Q> unit)
      -
      Returns the specified unit multiplied by the factor 10-21
      -
      -
      Type Parameters:
      -
      Q - type of the quantity measured by the unit.
      -
      Parameters:
      -
      unit - any unit.
      -
      Returns:
      -
      unit.times(1e-21). - #see ZEPTO
      -
      -
      -
    • -
    • -
      -

      YOCTO

      -
      public static <Q extends Quantity<Q>> Unit<Q> YOCTO(Unit<Q> unit)
      -
      Returns the specified unit multiplied by the factor 10-24
      -
      -
      Type Parameters:
      -
      Q - type of the quantity measured by the unit.
      -
      Parameters:
      -
      unit - any unit.
      -
      Returns:
      -
      unit.times(1e-24).
      -
      See Also:
      -
      - -
      -
      -
      -
    • -
    • -
      -

      RONTO

      -
      public static <Q extends Quantity<Q>> Unit<Q> RONTO(Unit<Q> unit)
      -
      Returns the specified unit multiplied by the factor 10-27
      -
      -
      Type Parameters:
      -
      Q - type of the quantity measured by the unit.
      -
      Parameters:
      -
      unit - any unit.
      -
      Returns:
      -
      unit.times(1e-27).
      -
      See Also:
      -
      - -
      -
      -
      -
    • -
    • -
      -

      QUECTO

      -
      public static <Q extends Quantity<Q>> Unit<Q> QUECTO(Unit<Q> unit)
      -
      Returns the specified unit multiplied by the factor 10-30
      -
      -
      Type Parameters:
      -
      Q - type of the quantity measured by the unit.
      -
      Parameters:
      -
      unit - any unit.
      -
      Returns:
      -
      unit.times(1e-30).
      -
      See Also:
      -
      - -
      -
      -
      -
    • -
    • -
      -

      getSymbol

      -
      public String getSymbol()
      -
      Returns the symbol of this prefix.
      -
      -
      Specified by:
      -
      getSymbol in interface Prefix
      -
      Returns:
      -
      this prefix symbol, not null.
      -
      -
      -
    • -
    • -
      -

      getValue

      -
      public Integer getValue()
      -
      Base part of the associated factor in base^exponent representation. For metric prefix, this is always 10.
      -
      -
      Specified by:
      -
      getValue in interface Prefix
      -
      Returns:
      -
      The prefix value.
      -
      -
      -
    • -
    • -
      -

      getExponent

      -
      public int getExponent()
      -
      Exponent part of the associated factor in base^exponent representation.
      -
      -
      Specified by:
      -
      getExponent in interface Prefix
      -
      Returns:
      -
      the exponent part of this prefix.
      -
      -
      -
    • -
    • -
      -

      getName

      -
      public String getName()
      -
      Returns the name of this prefix.
      -
      -
      Specified by:
      -
      getName in interface Prefix
      -
      Returns:
      -
      this prefix name, not null.
      -
      -
      -
    • -
    -
    -
  • -
-
- -
- -
-
- - diff --git a/docs/apidocs/javax/measure/Prefix.html b/docs/apidocs/javax/measure/Prefix.html deleted file mode 100644 index 12fcfefe..00000000 --- a/docs/apidocs/javax/measure/Prefix.html +++ /dev/null @@ -1,210 +0,0 @@ - - - - -Prefix (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - - - - - - -
- -
-
- -
-
Package javax.measure
-

Interface Prefix

-
-
-
-
All Known Implementing Classes:
-
BinaryPrefix, MetricPrefix
-
-
-
public interface Prefix
-
A unit prefix is a specifier or mnemonic that is prepended to units of measurement to indicate multiples or fractions of the units.
-
-
Since:
-
2.0
-
Version:
-
1.4, April 3, 2023
-
Author:
-
Werner Keil
-
See Also:
-
- -
-
-
-
-
    - -
  • -
    -

    Method Summary

    -
    -
    -
    -
    -
    Modifier and Type
    -
    Method
    -
    Description
    -
    int
    - -
    -
    Exponent part of the associated factor in base^exponent representation.
    -
    - - -
    -
    Returns the name of this prefix.
    -
    - - -
    -
    Returns the symbol of this prefix.
    -
    - - -
    -
    Returns the value of this prefix.
    -
    -
    -
    -
    -
    -
  • -
-
-
-
    - -
  • -
    -

    Method Details

    -
      -
    • -
      -

      getName

      - -
      Returns the name of this prefix.
      -
      -
      Returns:
      -
      this prefix name, not null.
      -
      -
      -
    • -
    • -
      -

      getSymbol

      - -
      Returns the symbol of this prefix.
      -
      -
      Returns:
      -
      this prefix symbol, not null.
      -
      -
      -
    • -
    • -
      -

      getValue

      - -
      Returns the value of this prefix. If the exponent is different from 1, this value is the base part of the associated - factor in base^exponent representation.
      -
      -
      Returns:
      -
      The prefix value.
      -
      -
      -
    • -
    • -
      -

      getExponent

      - -
      Exponent part of the associated factor in base^exponent representation. For different factors, e.g. rational numbers like 1/4 - the exponent is always 1.
      -
      -
      Returns:
      -
      the exponent part of this prefix.
      -
      -
      -
    • -
    -
    -
  • -
-
- -
- -
-
- - diff --git a/docs/apidocs/javax/measure/Quantity.Scale.html b/docs/apidocs/javax/measure/Quantity.Scale.html deleted file mode 100644 index ea46451f..00000000 --- a/docs/apidocs/javax/measure/Quantity.Scale.html +++ /dev/null @@ -1,254 +0,0 @@ - - - - -Quantity.Scale (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - - - - -
- -
-
- -
-
Package javax.measure
-

Enum Quantity.Scale

-
-
java.lang.Object -
java.lang.Enum<Quantity.Scale> -
javax.measure.Quantity.Scale
-
-
-
-
-
All Implemented Interfaces:
-
Serializable, Comparable<Quantity.Scale>, java.lang.constant.Constable
-
-
-
Enclosing interface:
-
Quantity<Q extends Quantity<Q>>
-
-
-
public static enum Quantity.Scale -extends Enum<Quantity.Scale>
-
The scale of a Quantity, either ABSOLUTE or RELATIVE.
-
-
Since:
-
2.0
-
See Also:
-
- -
-
-
-
- -
-
-
    - -
  • -
    -

    Enum Constant Details

    - -
    -
  • - -
  • -
    -

    Method Details

    -
      -
    • -
      -

      values

      -
      public static Quantity.Scale[] values()
      -
      Returns an array containing the constants of this enum type, in -the order they are declared.
      -
      -
      Returns:
      -
      an array containing the constants of this enum type, in the order they are declared
      -
      -
      -
    • -
    • -
      -

      valueOf

      -
      public static Quantity.Scale valueOf(String name)
      -
      Returns the enum constant of this type with the specified name. -The string must match exactly an identifier used to declare an -enum constant in this type. (Extraneous whitespace characters are -not permitted.)
      -
      -
      Parameters:
      -
      name - the name of the enum constant to be returned.
      -
      Returns:
      -
      the enum constant with the specified name
      -
      Throws:
      -
      IllegalArgumentException - if this enum type has no constant with the specified name
      -
      NullPointerException - if the argument is null
      -
      -
      -
    • -
    -
    -
  • -
-
- -
- -
-
- - diff --git a/docs/apidocs/javax/measure/Quantity.html b/docs/apidocs/javax/measure/Quantity.html deleted file mode 100644 index d8fe64a6..00000000 --- a/docs/apidocs/javax/measure/Quantity.html +++ /dev/null @@ -1,582 +0,0 @@ - - - - -Quantity (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
- -
-
Package javax.measure
-

Interface Quantity<Q extends Quantity<Q>>

-
-
-
-
Type Parameters:
-
Q - The type of the quantity.
-
-
-
All Known Subinterfaces:
-
Acceleration, AmountOfSubstance, Angle, Area, CatalyticActivity, Dimensionless, ElectricCapacitance, ElectricCharge, ElectricConductance, ElectricCurrent, ElectricInductance, ElectricPotential, ElectricResistance, Energy, Force, Frequency, Illuminance, Length, LuminousFlux, LuminousIntensity, MagneticFlux, MagneticFluxDensity, Mass, Power, Pressure, RadiationDoseAbsorbed, RadiationDoseEffective, Radioactivity, SolidAngle, Speed, Temperature, Time, Volume
-
-
-
public interface Quantity<Q extends Quantity<Q>>
-
Represents a quantitative property of a phenomenon, body, or substance, that - can be quantified by measurement. Mass, - time, distance, heat, and angular separation are among the familiar examples - of quantitative properties. -

- Unit<Mass> pound = ... Quantity<Length> size = ... Sensor<Temperature>
- thermometer = ... Vector3D<Speed> aircraftSpeed = ...
-

- -
-
Arithmetic operations
-
- This interface defines some arithmetic operations between Quantity - instances. All implementations shall produce equivalent results for - the same operation applied on equivalent quantities. Two quantities are - equivalent if, after conversion to the same unit of measurement, they have - the same numerical value (ignoring rounding errors). For example 2000 metres - is equivalent to 2 km, but 2°C is not equivalent to 2 K; it is equivalent to - 275.15 K instead. Above requirement applied to addition means that 2°C + 2 K - shall be equivalent to 275.15 K + 2 K. - -

All operations shall preserve the - basic laws - of algebra, in particular commutativity of addition and - multiplication (A + B = B + A) - and associativity of addition and multiplication (A + - B) + C = A + (B + C). - In order to preserve those algebra laws, this specification requires all - arithmetic operations to execute as is all operands were converted - to system unit before the operation is - carried out, and the result converted back to any compatible unit at - implementation choice. For example 4 cm + 1 inch shall produce any result - equivalent to 0.04 m + 0.0254 m.

- -

Implementations are allowed to avoid conversion to system unit if the - result is guaranteed to be equivalent. This is often the case when the - conversion between quantity unit and system unit is only a - scale factor. However this is not - the case for conversions applying an offset or more complex formula. - For example 2°C + 1°C = 274.15°C, not 3°C. This counter-intuitive result - is essential for preserving algebra laws like associativity, and is also - the expected result from a thermodynamic point of view.

- -
-
API Note:
This interface places no restrictions on the mutability of - implementations, however immutability is strongly recommended. All - implementations must be Comparable.
-
-
-
Since:
-
1.0
-
Version:
-
2.5, May 20, 2023
-
Author:
-
Jean-Marie Dautelle, Martin - Desruisseaux, Werner Keil, Otavio Santana
-
See Also:
-
- -
-
-
-
-
    - -
  • -
    -

    Nested Class Summary

    -
    Nested Classes
    -
    -
    Modifier and Type
    -
    Interface
    -
    Description
    -
    static enum 
    - -
    -
    The scale of a Quantity, either ABSOLUTE or RELATIVE.
    -
    -
    -
    -
  • - -
  • -
    -

    Method Summary

    -
    -
    -
    -
    -
    Modifier and Type
    -
    Method
    -
    Description
    - -
    add(Quantity<Q> addend)
    -
    -
    Returns the sum of this Quantity with the one specified.
    -
    -
    <T extends Quantity<T>>
    Quantity<T>
    -
    asType(Class<T> type)
    -
    -
    Casts this quantity to a parameterized unit of specified nature or throw a - ClassCastException if the dimension of the specified quantity - and this measure unit's dimension do not match.
    -
    - -
    divide(Number divisor)
    -
    -
    Returns the quotient of this Quantity divided by the Number - specified.
    -
    - -
    divide(Quantity<?> divisor)
    -
    -
    Returns the quotient of this Quantity divided by the Quantity - specified.
    -
    - - -
    -
    Returns the Scale of this Quantity, if it's absolute or relative.
    -
    - - -
    -
    Returns the unit of this Quantity.
    -
    - - -
    -
    Returns the value of this Quantity.
    -
    - - -
    -
    Returns a Quantity that is the multiplicative inverse of this - Quantity, having reciprocal value and reciprocal unit as given by - this.getUnit().inverse().
    -
    -
    boolean
    - -
    -
    Compares two instances of Quantity <Q>, performing the conversion of units if necessary.
    -
    - -
    multiply(Number multiplicand)
    -
    -
    Returns the product of this Quantity with the Number value - specified.
    -
    - -
    multiply(Quantity<?> multiplicand)
    -
    -
    Returns the product of this Quantity with the one specified.
    -
    - - -
    -
    Returns a Quantity whose value is (-this.getValue()).
    -
    - -
    subtract(Quantity<Q> subtrahend)
    -
    -
    Returns the difference between this Quantity and the one specified.
    -
    - -
    to(Unit<Q> unit)
    -
    -
    Returns this Quantity converted into another (compatible) - Unit.
    -
    -
    default Quantity<Q>
    - -
    -
    Convenient method equivalent to to(getUnit().toSystemUnit()).
    -
    -
    -
    -
    -
    -
  • -
-
-
-
    - -
  • -
    -

    Method Details

    -
      -
    • -
      -

      add

      -
      Quantity<Q> add(Quantity<Q> addend)
      -
      Returns the sum of this Quantity with the one specified. - The result shall be as if this quantity and the given addend were - converted to system unit before - to be added, and the result converted back to the unit of this - quantity or any other compatible unit at implementation choice.
      -
      -
      Parameters:
      -
      addend - the Quantity to be added.
      -
      Returns:
      -
      this + addend.
      -
      -
      -
    • -
    • -
      -

      subtract

      -
      Quantity<Q> subtract(Quantity<Q> subtrahend)
      -
      Returns the difference between this Quantity and the one specified. - The result shall be as if this quantity and the given subtrahend were - converted to system unit before - to be subtracted, and the result converted back to the unit of this - quantity or any other compatible unit at implementation choice.
      -
      -
      Parameters:
      -
      subtrahend - the Quantity to be subtracted.
      -
      Returns:
      -
      this - subtrahend.
      -
      -
      -
    • -
    • -
      -

      divide

      -
      Quantity<?> divide(Quantity<?> divisor)
      -
      Returns the quotient of this Quantity divided by the Quantity - specified. - The result shall be as if this quantity and the given divisor were - converted to system unit before - to be divided, and the result converted back to the unit of this - quantity or any other compatible unit at implementation choice.
      -
      -
      Parameters:
      -
      divisor - the Quantity divisor.
      -
      Returns:
      -
      this / divisor.
      -
      Throws:
      -
      ClassCastException - if the type of an element in the specified operation is - incompatible with this quantity
      -
      -
      -
    • -
    • -
      -

      divide

      -
      Quantity<Q> divide(Number divisor)
      -
      Returns the quotient of this Quantity divided by the Number - specified. - The result shall be as if this quantity was converted to - system unit before to be divided, - and the result converted back to the unit of this quantity or any - other compatible unit at implementation choice.
      -
      -
      Parameters:
      -
      divisor - the Number divisor.
      -
      Returns:
      -
      this / divisor.
      -
      -
      -
    • -
    • -
      -

      multiply

      -
      Quantity<?> multiply(Quantity<?> multiplicand)
      -
      Returns the product of this Quantity with the one specified. - The result shall be as if this quantity and the given multiplicand were - converted to system unit before - to be multiplied, and the result converted back to the unit of this - quantity or any other compatible unit at implementation choice.
      -
      -
      Parameters:
      -
      multiplicand - the Quantity multiplicand.
      -
      Returns:
      -
      this * multiplicand.
      -
      Throws:
      -
      ClassCastException - if the type of an element in the specified operation is - incompatible with this quantity
      -
      -
      -
    • -
    • -
      -

      multiply

      -
      Quantity<Q> multiply(Number multiplicand)
      -
      Returns the product of this Quantity with the Number value - specified. - The result shall be as if this quantity was converted to - system unit before to be multiplied, - and the result converted back to the unit of this quantity or any - other compatible unit at implementation choice.
      -
      -
      Parameters:
      -
      multiplicand - the Number multiplicand.
      -
      Returns:
      -
      this * multiplicand.
      -
      -
      -
    • -
    • -
      -

      to

      -
      Quantity<Q> to(Unit<Q> unit)
      -
      Returns this Quantity converted into another (compatible) - Unit.
      -
      -
      Parameters:
      -
      unit - the Unit unit in which the returned quantity is stated.
      -
      Returns:
      -
      this quantity or a new quantity equivalent to this quantity stated in the specified unit.
      -
      Throws:
      -
      ArithmeticException - if the result is inexact and the quotient has a non-terminating decimal expansion.
      -
      -
      -
    • -
    • -
      -

      inverse

      - -
      Returns a Quantity that is the multiplicative inverse of this - Quantity, having reciprocal value and reciprocal unit as given by - this.getUnit().inverse().
      -
      -
      Returns:
      -
      reciprocal Quantity
      -
      See Also:
      -
      - -
      -
      -
      -
    • -
    • -
      -

      negate

      - -
      Returns a Quantity whose value is (-this.getValue()).
      -
      -
      Returns:
      -
      -this.
      -
      -
      -
    • -
    • -
      -

      asType

      -
      <T extends Quantity<T>> Quantity<T> asType(Class<T> type) - throws ClassCastException
      -
      Casts this quantity to a parameterized unit of specified nature or throw a - ClassCastException if the dimension of the specified quantity - and this measure unit's dimension do not match. For example: -

      - - Quantity<Length> length = Quantities.getQuantity("2 km").asType(Length.class); - or - Quantity<Speed> C = length.multiply(299792458).divide(second).asType(Speed.class); - -

      -
      -
      Type Parameters:
      -
      T - The type of the quantity.
      -
      Parameters:
      -
      type - the quantity class identifying the nature of the quantity.
      -
      Returns:
      -
      this quantity parameterized with the specified type.
      -
      Throws:
      -
      ClassCastException - if the dimension of this unit is different from the specified - quantity dimension.
      -
      UnsupportedOperationException - if the specified quantity class does not have a SI unit for the - quantity.
      -
      See Also:
      -
      - -
      -
      -
      -
    • -
    • -
      -

      getValue

      - -
      Returns the value of this Quantity.
      -
      -
      Returns:
      -
      a value.
      -
      -
      -
    • -
    • -
      -

      getUnit

      - -
      Returns the unit of this Quantity.
      -
      -
      Returns:
      -
      the unit (shall not be null).
      -
      -
      -
    • -
    • -
      -

      toSystemUnit

      -
      default Quantity<Q> toSystemUnit()
      -
      Convenient method equivalent to to(getUnit().toSystemUnit()).
      -
      -
      Returns:
      -
      this quantity or a new quantity equivalent to this quantity stated in - SI units.
      -
      Throws:
      -
      ArithmeticException - if the result is inexact and the quotient has a non-terminating - decimal expansion.
      -
      -
      -
    • -
    • -
      -

      getScale

      - -
      Returns the Scale of this Quantity, if it's absolute or relative.
      -
      -
      Returns:
      -
      the scale, if it's an absolute or relative quantity.
      -
      Since:
      -
      2.0
      -
      See Also:
      -
      - -
      -
      -
      -
    • -
    • -
      -

      isEquivalentTo

      -
      boolean isEquivalentTo(Quantity<Q> that)
      -
      Compares two instances of Quantity <Q>, performing the conversion of units if necessary.
      -
      -
      Parameters:
      -
      that - the quantity<Q> to be compared with this instance.
      -
      Returns:
      -
      true if that ≡ this.
      -
      Throws:
      -
      NullPointerException - if the quantity is null
      -
      Since:
      -
      2.1
      -
      See Also:
      -
      - -
      -
      -
      -
    • -
    -
    -
  • -
-
- -
- -
-
- - diff --git a/docs/apidocs/javax/measure/UnconvertibleException.html b/docs/apidocs/javax/measure/UnconvertibleException.html deleted file mode 100644 index 49fbaa2c..00000000 --- a/docs/apidocs/javax/measure/UnconvertibleException.html +++ /dev/null @@ -1,202 +0,0 @@ - - - - -UnconvertibleException (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - - -
- -
-
- -
-
Package javax.measure
-

Class UnconvertibleException

-
- -
-
-
All Implemented Interfaces:
-
Serializable
-
-
- -
Signals that a problem of some sort has occurred due to the impossibility of constructing a converter between two units. For example, the - multiplication of offset units are usually units not convertible to their system unit.
-
-
Version:
-
1.0, Aug 8, 2016
-
Author:
-
Jean-Marie Dautelle, Werner Keil
-
See Also:
-
- -
-
-
-
- -
-
-
    - -
  • -
    -

    Constructor Details

    -
      -
    • -
      -

      UnconvertibleException

      -
      public UnconvertibleException(String message)
      -
      Constructs a UnconvertibleException with the given message.
      -
      -
      Parameters:
      -
      message - the detail message, or null if none.
      -
      -
      -
    • -
    • -
      -

      UnconvertibleException

      - -
      Constructs a UnconvertibleException with the given cause.
      -
      -
      Parameters:
      -
      cause - the cause of this exception, or null if none.
      -
      -
      -
    • -
    • -
      -

      UnconvertibleException

      -
      public UnconvertibleException(String message, - Throwable cause)
      -
      Constructs a UnconvertibleException with the given message and cause.
      -
      -
      Parameters:
      -
      message - the detail message, or null if none.
      -
      cause - the cause of this exception, or null if none.
      -
      -
      -
    • -
    -
    -
  • -
-
- -
- -
-
- - diff --git a/docs/apidocs/javax/measure/Unit.html b/docs/apidocs/javax/measure/Unit.html deleted file mode 100644 index 3ba042cd..00000000 --- a/docs/apidocs/javax/measure/Unit.html +++ /dev/null @@ -1,805 +0,0 @@ - - - - -Unit (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
- -
-
Package javax.measure
-

Interface Unit<Q extends Quantity<Q>>

-
-
-
-
Type Parameters:
-
Q - The type of the quantity measured by this unit.
-
-
-
public interface Unit<Q extends Quantity<Q>>
-
Represents a determinate quantity (as of length, time, heat, or value) adopted as a standard of measurement. - -

- It is helpful to think of instances of this class as recording the history by which they are created. Thus, for example, the string "g/kg" - (which is a dimensionless unit) would result from invoking the method toString() on a unit that was created by dividing a gram unit by a - kilogram unit. -

- -

- This interface supports the multiplication of offsets units. The result is usually a unit not convertible to its system unit. Such units may appear in derivative quantities. For example Celsius per meter is an unit of gradient, which is common in atmospheric - and oceanographic research. -

- -

- Units raised at non-integral powers are not supported. For example, LITRE.root(2) raises an ArithmeticException, but - HECTARE.root(2) returns HECTOMETRE (100 metres). -

- -

- Unit instances shall be immutable. -

-
-
Since:
-
1.0
-
Version:
-
2.4, November 11, 2020
-
Author:
-
Jean-Marie Dautelle, Steve Emmerson, Martin Desruisseaux, Werner Keil
-
See Also:
-
- -
-
-
-
-
    - -
  • -
    -

    Method Summary

    -
    -
    -
    -
    -
    Modifier and Type
    -
    Method
    -
    Description
    - -
    alternate(String symbol)
    -
    -
    Returns a system unit equivalent to this unscaled standard unit but used in expressions to distinguish between quantities of a different nature - but of the same dimensions.
    -
    -
    <T extends Quantity<T>>
    Unit<T>
    -
    asType(Class<T> type)
    -
    -
    Casts this unit to a parameterized unit of specified nature or throw a ClassCastException if the dimension of the specified quantity and - this unit's dimension do not match.
    -
    - -
    divide(double divisor)
    -
    -
    Returns the result of dividing this unit by an approximate divisor.
    -
    - -
    divide(Number divisor)
    -
    -
    Returns the result of dividing this unit by a divisor.
    -
    -
    Unit<?>
    -
    divide(Unit<?> divisor)
    -
    -
    Returns the quotient of this unit with the one specified.
    -
    -
    Map<? extends Unit<?>,Integer>
    - -
    -
    Returns the base units and their exponent whose product is this unit, or null if this unit is a base unit (not a product of existing - units).
    -
    - - -
    -
    Returns a converter of numeric values from this unit to another unit of same type.
    -
    - - -
    -
    Returns a converter from this unit to the specified unit of type unknown.
    -
    - - -
    -
    Returns the dimension of this unit.
    -
    - - -
    -
    Returns the name (if any) of this unit.
    -
    - - -
    -
    Returns the symbol (if any) of this unit.
    -
    - - -
    -
    Returns the unscaled system unit from which this unit is derived.
    -
    -
    Unit<?>
    - -
    -
    Returns the reciprocal (multiplicative inverse) of this unit.
    -
    -
    boolean
    -
    isCompatible(Unit<?> that)
    -
    -
    Indicates if this unit is compatible with the unit specified.
    -
    -
    boolean
    - -
    -
    Indicates if this unit represents the same quantity than the given unit, ignoring name and symbols.
    -
    - -
    multiply(double multiplier)
    -
    -
    Returns the result of multiplying this unit by the specified factor.
    -
    - -
    multiply(Number multiplier)
    -
    -
    Returns the result of multiplying this unit by the specified factor.
    -
    -
    Unit<?>
    -
    multiply(Unit<?> multiplier)
    -
    -
    Returns the product of this unit with the one specified.
    -
    -
    Unit<?>
    -
    pow(int n)
    -
    -
    Returns an unit raised to the n-th (integer) power of this unit.
    -
    - -
    prefix(Prefix prefix)
    -
    -
    Returns a new unit equal to this unit prefixed by the specified prefix.
    -
    -
    Unit<?>
    -
    root(int n)
    -
    -
    Returns an unit that is the n-th (integer) root of this unit.
    -
    - -
    shift(double offset)
    -
    -
    Returns the result of setting the origin of the scale of measurement to the given value.
    -
    - -
    shift(Number offset)
    -
    -
    Returns the result of setting the origin of the scale of measurement to the given value.
    -
    - - -
    -
    Returns a string representation of this unit.
    -
    - - -
    -
    Returns the unit derived from this unit using the specified converter.
    -
    -
    -
    -
    -
    -
  • -
-
-
-
    - -
  • -
    -

    Method Details

    -
      -
    • -
      -

      getSymbol

      - -
      Returns the symbol (if any) of this unit. This method returns null if this unit has no specific symbol associated with.
      -
      -
      Returns:
      -
      this unit symbol, or null if this unit has not specific symbol associated with (e.g. product of units).
      -
      See Also:
      -
      - -
      -
      -
      -
    • -
    • -
      -

      getName

      - -
      Returns the name (if any) of this unit. This method returns null if this unit has no specific name associated with.
      -
      -
      Returns:
      -
      this unit name, or null if this unit has not specific name associated with (e.g. product of units).
      -
      See Also:
      -
      - -
      -
      -
      -
    • -
    • -
      -

      getDimension

      - -
      Returns the dimension of this unit. Two units u1 and u2 are compatible if and only if - u1.getDimension().equals(u2.getDimension()).
      -
      -
      Returns:
      -
      the dimension of this unit.
      -
      See Also:
      -
      - -
      -
      -
      -
    • -
    • -
      -

      getSystemUnit

      - -
      Returns the unscaled system unit from which this unit is derived. System units are either base units, alternate - units or product of rational powers of system units. - -

      - Because the system unit is unique by quantity type, it can be be used to identify the quantity given the unit. For example: -

      - - static boolean isAngularSpeed(Unit<?> unit) {
      -    return unit.getSystemUnit().equals(RADIAN.divide(SECOND));
      - }
      - assert isAngularSpeed(REVOLUTION.divide(MINUTE)); // Returns true.

      -
      -
      -
      Returns:
      -
      the system unit this unit is derived from, or this if this unit is a system unit.
      -
      -
      -
    • -
    • -
      -

      getBaseUnits

      -
      Map<? extends Unit<?>,Integer> getBaseUnits()
      -
      Returns the base units and their exponent whose product is this unit, or null if this unit is a base unit (not a product of existing - units).
      -
      -
      Returns:
      -
      the base units and their exponent making up this unit.
      -
      -
      -
    • -
    • -
      -

      isCompatible

      -
      boolean isCompatible(Unit<?> that)
      -
      Indicates if this unit is compatible with the unit specified. Units don't need to be equal to be compatible. For example (assuming ONE - is a dimensionless unit):
      - - - RADIAN.equals(ONE) == false
      - RADIAN.isCompatible(ONE) == true
      - RADIAN.isEquivalentTo(ONE) doesn't compile
      -
      -
      -
      Parameters:
      -
      that - the other unit to compare for compatibility.
      -
      Returns:
      -
      this.getDimension().equals(that.getDimension())
      -
      See Also:
      -
      - -
      -
      -
      -
    • -
    • -
      -

      isEquivalentTo

      -
      boolean isEquivalentTo(Unit<Q> that)
      -
      Indicates if this unit represents the same quantity than the given unit, ignoring name and symbols. - Two units are equivalent if the conversion between them is identity. - -

      - Unlike isCompatible(Unit) an equivalence check requires both units to be strictly type-compatible, - because it makes no sense to compare e.g. gram and mm for equivalence. - By contrast, the compatibility check can works across different quantity types. -

      -
      -
      Parameters:
      -
      that - the Unit<Q> to be compared with this instance.
      -
      Returns:
      -
      true if that ≡ this.
      -
      Throws:
      -
      NullPointerException - if the unit is null
      -
      Since:
      -
      2.1
      -
      See Also:
      -
      - -
      -
      -
      -
    • -
    • -
      -

      asType

      -
      <T extends Quantity<T>> Unit<T> asType(Class<T> type) - throws ClassCastException
      -
      Casts this unit to a parameterized unit of specified nature or throw a ClassCastException if the dimension of the specified quantity and - this unit's dimension do not match. For example:
      - - - Unit<Speed> C = METRE.multiply(299792458).divide(SECOND).asType(Speed.class); -
      -
      -
      Type Parameters:
      -
      T - The type of the quantity measured by the unit.
      -
      Parameters:
      -
      type - the quantity class identifying the nature of the unit.
      -
      Returns:
      -
      this unit parameterized with the specified type.
      -
      Throws:
      -
      ClassCastException - if the dimension of this unit is different from the specified quantity dimension.
      -
      -
      -
    • -
    • -
      -

      getConverterTo

      - -
      Returns a converter of numeric values from this unit to another unit of same type. This method performs the same work as - getConverterToAny(Unit) without raising checked exception.
      -
      -
      Parameters:
      -
      that - the unit of same type to which to convert the numeric values.
      -
      Returns:
      -
      the converter from this unit to that unit.
      -
      Throws:
      -
      UnconvertibleException - if a converter cannot be constructed.
      -
      See Also:
      -
      - -
      -
      -
      -
    • -
    • -
      -

      getConverterToAny

      - -
      Returns a converter from this unit to the specified unit of type unknown. This method can be used when the quantity type of the specified unit is - unknown at compile-time or when dimensional analysis allows for conversion between units of different type. - -

      - To convert to a unit having the same parameterized type, getConverterTo(Unit) is preferred (no checked exception raised). -

      -
      -
      Parameters:
      -
      that - the unit to which to convert the numeric values.
      -
      Returns:
      -
      the converter from this unit to that unit.
      -
      Throws:
      -
      IncommensurableException - if this unit is not compatible with that unit.
      -
      UnconvertibleException - if a converter cannot be constructed.
      -
      See Also:
      -
      - -
      -
      -
      -
    • -
    • -
      -

      alternate

      -
      Unit<Q> alternate(String symbol)
      -
      Returns a system unit equivalent to this unscaled standard unit but used in expressions to distinguish between quantities of a different nature - but of the same dimensions. - -

      - Examples of alternate units: -

      - - - Unit<Angle> RADIAN = ONE.alternate("rad").asType(Angle.class);
      - Unit<Force> NEWTON = METRE.multiply(KILOGRAM).divide(SECOND.pow(2)).alternate("N").asType(Force.class);
      - Unit<Pressure> PASCAL = NEWTON.divide(METRE.pow(2)).alternate("Pa").asType(Pressure.class);
      -
      -
      -
      Parameters:
      -
      symbol - the new symbol for the alternate unit.
      -
      Returns:
      -
      the alternate unit.
      -
      Throws:
      -
      IllegalArgumentException - if this unit is not an unscaled standard unit.
      -
      MeasurementException - if the specified symbol is not valid or is already associated to a different unit.
      -
      -
      -
    • -
    • -
      -

      shift

      -
      Unit<Q> shift(Number offset)
      -
      Returns the result of setting the origin of the scale of measurement to the given value. The returned unit is convertible with all units that are - convertible with this unit. For example the following code:
      - - - CELSIUS = KELVIN.shift(273.15); - - - creates a new unit where 0°C (the origin of the new unit) is equals to 273.15 K. Converting from the old unit to the new one is equivalent to - subtracting the offset to the value in the old unit.
      -
      -
      Parameters:
      -
      offset - the offset added (expressed in this unit).
      -
      Returns:
      -
      this unit offset by the specified value.
      -
      Since:
      -
      2.0
      -
      -
      -
    • -
    • -
      -

      shift

      -
      Unit<Q> shift(double offset)
      -
      Returns the result of setting the origin of the scale of measurement to the given value. The returned unit is convertible with all units that are - convertible with this unit. For example the following code:
      - - - CELSIUS = KELVIN.shift(273.15); - - - creates a new unit where 0°C (the origin of the new unit) is equals to 273.15 K. Converting from the old unit to the new one is equivalent to - subtracting the offset to the value in the old unit.
      -
      -
      Parameters:
      -
      offset - the offset added (expressed in this unit).
      -
      Returns:
      -
      this unit offset by the specified value.
      -
      -
      -
    • -
    • -
      -

      multiply

      -
      Unit<Q> multiply(Number multiplier)
      -
      Returns the result of multiplying this unit by the specified factor. If the factor is an integer value, the multiplication is exact - (recommended). For example:
      - - - FOOT = METRE.multiply(3048).divide(10000); // Exact definition.
      - ELECTRON_MASS = KILOGRAM.multiply(9.10938188e-31); // Approximation. -
      -
      -
      Parameters:
      -
      multiplier - the multiplier
      -
      Returns:
      -
      this unit scaled by the specified multiplier.
      -
      Since:
      -
      2.0
      -
      -
      -
    • -
    • -
      -

      multiply

      -
      Unit<Q> multiply(double multiplier)
      -
      Returns the result of multiplying this unit by the specified factor. For example:
      - - - FOOT = METRE.multiply(3048).divide(10000); // Exact definition.
      - ELECTRON_MASS = KILOGRAM.multiply(9.10938188e-31); // Approximation. -
      -
      -
      Parameters:
      -
      multiplier - the multiplier
      -
      Returns:
      -
      this unit scaled by the specified multiplier.
      -
      -
      -
    • -
    • -
      -

      multiply

      -
      Unit<?> multiply(Unit<?> multiplier)
      -
      Returns the product of this unit with the one specified.
      -
      -
      Parameters:
      -
      multiplier - the unit multiplier.
      -
      Returns:
      -
      this * multiplier
      -
      -
      -
    • -
    • -
      -

      inverse

      - -
      Returns the reciprocal (multiplicative inverse) of this unit.
      -
      -
      Returns:
      -
      1 / this
      -
      See Also:
      -
      - -
      -
      -
      -
    • -
    • -
      -

      divide

      -
      Unit<Q> divide(Number divisor)
      -
      Returns the result of dividing this unit by a divisor. If the factor is an integer value, the division is exact. For example:
      - - - GRAM = KILOGRAM.divide(1000); // Exact definition. -
      -
      -
      Parameters:
      -
      divisor - the divisor value.
      -
      Returns:
      -
      this unit divided by the specified divisor.
      -
      Since:
      -
      2.0
      -
      -
      -
    • -
    • -
      -

      divide

      -
      Unit<Q> divide(double divisor)
      -
      Returns the result of dividing this unit by an approximate divisor. For example:
      - - - GRAM = KILOGRAM.divide(1000d); -
      -
      -
      Parameters:
      -
      divisor - the divisor value.
      -
      Returns:
      -
      this unit divided by the specified divisor.
      -
      -
      -
    • -
    • -
      -

      divide

      -
      Unit<?> divide(Unit<?> divisor)
      -
      Returns the quotient of this unit with the one specified.
      -
      -
      Parameters:
      -
      divisor - the unit divisor.
      -
      Returns:
      -
      this / divisor
      -
      -
      -
    • -
    • -
      -

      root

      -
      Unit<?> root(int n)
      -
      Returns an unit that is the n-th (integer) root of this unit. Equivalent to the mathematical expression unit^(1/n).
      -
      -
      Parameters:
      -
      n - an integer giving the root's order as in 'n-th root'
      -
      Returns:
      -
      the n-th root of this unit.
      -
      Throws:
      -
      ArithmeticException - if n == 0 or if this operation would result in an unit with a fractional exponent.
      -
      -
      -
    • -
    • -
      -

      pow

      -
      Unit<?> pow(int n)
      -
      Returns an unit raised to the n-th (integer) power of this unit. Equivalent to the mathematical expression unit^n.
      -
      -
      Parameters:
      -
      n - the exponent.
      -
      Returns:
      -
      the result of raising this unit to the exponent.
      -
      -
      -
    • -
    • -
      -

      transform

      - -
      Returns the unit derived from this unit using the specified converter. The converter does not need to be linear. For example:
      - -
      -     Unit<Dimensionless> DECIBEL = Unit.ONE.transform(
      -         new LogConverter(10).inverse().concatenate(
      -             new RationalConverter(1, 10)));
      - 
      -
      -
      Parameters:
      -
      operation - the converter from the transformed unit to this unit.
      -
      Returns:
      -
      the unit after the specified transformation.
      -
      -
      -
    • -
    • -
      -

      toString

      - -
      Returns a string representation of this unit. The string representation may be the unit symbol, or may be some - representation of product units, multiplication factor and offset if any. - -

      - The string may be localized at implementation choice by the means of a particular device and platform. -

      -
      -
      Overrides:
      -
      toString in class Object
      -
      Returns:
      -
      the string representation of this unit.
      -
      See Also:
      -
      - -
      -
      -
      -
    • -
    • -
      -

      prefix

      -
      Unit<Q> prefix(Prefix prefix)
      -
      Returns a new unit equal to this unit prefixed by the specified prefix.
      -
      -
      Parameters:
      -
      prefix - the prefix to apply on this unit.
      -
      Returns:
      -
      the unit with the given prefix applied.
      -
      Since:
      -
      2.0
      -
      -
      -
    • -
    -
    -
  • -
-
- -
- -
-
- - diff --git a/docs/apidocs/javax/measure/UnitConverter.html b/docs/apidocs/javax/measure/UnitConverter.html deleted file mode 100644 index e25df599..00000000 --- a/docs/apidocs/javax/measure/UnitConverter.html +++ /dev/null @@ -1,309 +0,0 @@ - - - - -UnitConverter (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - - - - - - - - -
- -
-
- -
-
Package javax.measure
-

Interface UnitConverter

-
-
-
-
public interface UnitConverter
-
A converter of numeric values between different units. - -

- Instances of this class are usually obtained through the Unit.getConverterTo(Unit) method. -

-
-
Since:
-
1.0
-
Version:
-
1.4, May 12, 2019
-
Author:
-
Jean-Marie Dautelle, Werner Keil, Martin - Desruisseaux, Thodoris Bais, Andi Huber
-
See Also:
-
- -
-
-
-
-
    - -
  • -
    -

    Method Summary

    -
    -
    -
    -
    -
    Modifier and Type
    -
    Method
    -
    Description
    - - -
    -
    Concatenates this converter with another converter.
    -
    -
    double
    -
    convert(double value)
    -
    -
    Converts a double value.
    -
    - -
    convert(Number value)
    -
    -
    Converts a Number value.
    -
    -
    List<? extends UnitConverter>
    - -
    -
    - Returns the steps of fundamental converters making up this converter or this if the converter is a fundamental converter.
    -
    - - -
    -
    Returns the inverse of this converter.
    -
    -
    boolean
    - -
    -
    Indicates if this converter is an identity converter.
    -
    -
    boolean
    - -
    -
    Indicates whether this converter represents a (one-dimensional) linear transformation, that is - a linear map (wikipedia) from a one-dimensional - vector space (a scalar) to a one-dimensional vector space.
    -
    -
    -
    -
    -
    -
  • -
-
-
-
    - -
  • -
    -

    Method Details

    -
      -
    • -
      -

      isIdentity

      -
      boolean isIdentity()
      -
      Indicates if this converter is an identity converter. The identity converter returns its input argument (convert(x) == x). -

      - Note: Identity converters are also always 'linear', see isLinear(). -

      -
      -
      Returns:
      -
      true if this converter is an identity converter.
      -
      -
      -
    • -
    • -
      -

      isLinear

      -
      boolean isLinear()
      -
      Indicates whether this converter represents a (one-dimensional) linear transformation, that is - a linear map (wikipedia) from a one-dimensional - vector space (a scalar) to a one-dimensional vector space. Typically from 'R' to 'R', with 'R' the - real numbers. - -

      - Given such a 'linear' converter 'A', let 'u', 'v' and 'r' be arbitrary numbers, then the following - must hold by definition: - -

        -
      • A(u + v) == A(u) + A(v)
      • -
      • A(r * u) == r * A(u)
      • -
      - -

      - Given a second 'linear' converter 'B', commutativity of composition follows by above definition: - -

        -
      • (A o B) (u) == (B o A) (u)
      • -
      - - In other words, two 'linear' converters do have the property that A(B(u)) == B(A(u)), meaning - for 'A' and 'B' the order of their composition does not matter. Expressed as Java code: - -

      -A.concatenate(B).convert(u) == B.concatenate(A).convert(u) -

      - - Note: For composing UnitConverters see also concatenate(UnitConverter).
      -
      -
      Returns:
      -
      true if this converter represents a linear transformation; - false otherwise.
      -
      -
      -
    • -
    • -
      -

      inverse

      - -
      Returns the inverse of this converter. If x is a valid value, then x == inverse().convert(convert(x)) to within the accuracy of - computer arithmetic.
      -
      -
      Returns:
      -
      the inverse of this converter.
      -
      -
      -
    • -
    • -
      -

      convert

      - -
      Converts a Number value.
      -
      -
      Parameters:
      -
      value - the Number value to convert.
      -
      Returns:
      -
      the Number value after conversion.
      -
      -
      -
    • -
    • -
      -

      convert

      -
      double convert(double value)
      -
      Converts a double value.
      -
      -
      Parameters:
      -
      value - the numeric value to convert.
      -
      Returns:
      -
      the double value after conversion.
      -
      -
      -
    • -
    • -
      -

      concatenate

      - -
      Concatenates this converter with another converter. The resulting converter is equivalent to first converting by the specified converter (right - converter), and then converting by this converter (left converter).
      -
      -
      Parameters:
      -
      converter - the other converter to concatenate with this converter.
      -
      Returns:
      -
      the concatenation of this converter with the other converter.
      -
      -
      -
    • -
    • -
      -

      getConversionSteps

      - -

      - Returns the steps of fundamental converters making up this converter or this if the converter is a fundamental converter. -

      -

      - For example, converter1.getConversionSteps() returns converter1 while - converter1.concatenate(converter2).getConversionSteps() returns converter1, converter2. -

      -
      -
      Returns:
      -
      the list of fundamental converters which concatenated make up this converter.
      -
      -
      -
    • -
    -
    -
  • -
-
- -
- -
-
- - diff --git a/docs/apidocs/javax/measure/class-use/BinaryPrefix.html b/docs/apidocs/javax/measure/class-use/BinaryPrefix.html deleted file mode 100644 index ff0a1c89..00000000 --- a/docs/apidocs/javax/measure/class-use/BinaryPrefix.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - -Uses of Enum javax.measure.BinaryPrefix (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Uses of Enum
javax.measure.BinaryPrefix

-
-
Packages that use BinaryPrefix
-
-
Package
-
Description
- -
-
Specifies Java packages for the programmatic, type safe handling - of quantities and their expression as values of units.
-
-
-
- -
-
- -
-
- - diff --git a/docs/apidocs/javax/measure/class-use/Dimension.html b/docs/apidocs/javax/measure/class-use/Dimension.html deleted file mode 100644 index ea74b12c..00000000 --- a/docs/apidocs/javax/measure/class-use/Dimension.html +++ /dev/null @@ -1,160 +0,0 @@ - - - - -Uses of Interface javax.measure.Dimension (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Uses of Interface
javax.measure.Dimension

-
-
Packages that use Dimension
-
-
Package
-
Description
- -
-
Specifies Java packages for the programmatic, type safe handling - of quantities and their expression as values of units.
-
- -
-
[OPTIONAL] The Units of Measurement SPI.
-
-
-
- -
-
- -
-
- - diff --git a/docs/apidocs/javax/measure/class-use/IncommensurableException.html b/docs/apidocs/javax/measure/class-use/IncommensurableException.html deleted file mode 100644 index ebc172db..00000000 --- a/docs/apidocs/javax/measure/class-use/IncommensurableException.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - -Uses of Class javax.measure.IncommensurableException (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Uses of Class
javax.measure.IncommensurableException

-
-
Packages that use IncommensurableException
-
-
Package
-
Description
- -
-
Specifies Java packages for the programmatic, type safe handling - of quantities and their expression as values of units.
-
-
-
- -
-
- -
-
- - diff --git a/docs/apidocs/javax/measure/class-use/MeasurementError.html b/docs/apidocs/javax/measure/class-use/MeasurementError.html deleted file mode 100644 index 2ab44af3..00000000 --- a/docs/apidocs/javax/measure/class-use/MeasurementError.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Class javax.measure.MeasurementError (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Uses of Class
javax.measure.MeasurementError

-
-No usage of javax.measure.MeasurementError
- -
-
- - diff --git a/docs/apidocs/javax/measure/class-use/MeasurementException.html b/docs/apidocs/javax/measure/class-use/MeasurementException.html deleted file mode 100644 index e107c393..00000000 --- a/docs/apidocs/javax/measure/class-use/MeasurementException.html +++ /dev/null @@ -1,112 +0,0 @@ - - - - -Uses of Class javax.measure.MeasurementException (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Uses of Class
javax.measure.MeasurementException

-
-
Packages that use MeasurementException
-
-
Package
-
Description
- -
-
Specifies Java packages for the programmatic, type safe handling - of quantities and their expression as values of units.
-
- -
-
[OPTIONAL] Provides Formatting and Parsing functionality for units, quantities, dimensions or their textual representation.
-
-
-
- -
-
- -
-
- - diff --git a/docs/apidocs/javax/measure/class-use/MetricPrefix.html b/docs/apidocs/javax/measure/class-use/MetricPrefix.html deleted file mode 100644 index 7ee2e241..00000000 --- a/docs/apidocs/javax/measure/class-use/MetricPrefix.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - -Uses of Enum javax.measure.MetricPrefix (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Uses of Enum
javax.measure.MetricPrefix

-
-
Packages that use MetricPrefix
-
-
Package
-
Description
- -
-
Specifies Java packages for the programmatic, type safe handling - of quantities and their expression as values of units.
-
-
-
- -
-
- -
-
- - diff --git a/docs/apidocs/javax/measure/class-use/Prefix.html b/docs/apidocs/javax/measure/class-use/Prefix.html deleted file mode 100644 index 0f28827a..00000000 --- a/docs/apidocs/javax/measure/class-use/Prefix.html +++ /dev/null @@ -1,129 +0,0 @@ - - - - -Uses of Interface javax.measure.Prefix (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Uses of Interface
javax.measure.Prefix

-
-
Packages that use Prefix
-
-
Package
-
Description
- -
-
Specifies Java packages for the programmatic, type safe handling - of quantities and their expression as values of units.
-
- -
-
[OPTIONAL] The Units of Measurement SPI.
-
-
-
-
    -
  • -
    -

    Uses of Prefix in javax.measure

    -
    Classes in javax.measure that implement Prefix
    -
    -
    Modifier and Type
    -
    Class
    -
    Description
    -
    enum 
    - -
    -
    Provides support for common binary prefixes to be used by units.
    -
    -
    enum 
    - -
    -
    Provides support for the 24 prefixes used in the metric system (decimal multiples and submultiples of units).
    -
    -
    -
    Methods in javax.measure with parameters of type Prefix
    -
    -
    Modifier and Type
    -
    Method
    -
    Description
    - -
    Unit.prefix(Prefix prefix)
    -
    -
    Returns a new unit equal to this unit prefixed by the specified prefix.
    -
    -
    -
    -
  • -
  • -
    -

    Uses of Prefix in javax.measure.spi

    -
    Methods in javax.measure.spi with type parameters of type Prefix
    -
    -
    Modifier and Type
    -
    Method
    -
    Description
    -
    default <P extends Prefix>
    Set<P>
    -
    SystemOfUnitsService.getPrefixes(Class<P> prefixType)
    -
    -
    Returns a Set containing the values of a particular Prefix - type.
    -
    -
    -
    -
  • -
-
-
- -
-
- - diff --git a/docs/apidocs/javax/measure/class-use/Quantity.Scale.html b/docs/apidocs/javax/measure/class-use/Quantity.Scale.html deleted file mode 100644 index e8258c16..00000000 --- a/docs/apidocs/javax/measure/class-use/Quantity.Scale.html +++ /dev/null @@ -1,125 +0,0 @@ - - - - -Uses of Enum javax.measure.Quantity.Scale (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Uses of Enum
javax.measure.Quantity.Scale

-
-
Packages that use Quantity.Scale
-
-
Package
-
Description
- -
-
Specifies Java packages for the programmatic, type safe handling - of quantities and their expression as values of units.
-
- -
-
[OPTIONAL] The Units of Measurement SPI.
-
-
-
- -
-
- -
-
- - diff --git a/docs/apidocs/javax/measure/class-use/Quantity.html b/docs/apidocs/javax/measure/class-use/Quantity.html deleted file mode 100644 index e3b8ea7c..00000000 --- a/docs/apidocs/javax/measure/class-use/Quantity.html +++ /dev/null @@ -1,662 +0,0 @@ - - - - -Uses of Interface javax.measure.Quantity (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Uses of Interface
javax.measure.Quantity

-
-
Packages that use Quantity
-
-
Package
-
Description
- -
-
Specifies Java packages for the programmatic, type safe handling - of quantities and their expression as values of units.
-
- -
-
[OPTIONAL] Provides Formatting and Parsing functionality for units, quantities, dimensions or their textual representation.
-
- -
-
[OPTIONAL] Provides quantitative properties or attributes of thing such as - mass, time, distance, heat, and angular separation.
-
- -
-
[OPTIONAL] The Units of Measurement SPI.
-
-
-
-
    -
  • -
    -

    Uses of Quantity in javax.measure

    -
    Classes in javax.measure with type parameters of type Quantity
    -
    -
    Modifier and Type
    -
    Interface
    -
    Description
    -
    interface 
    -
    Quantity<Q extends Quantity<Q>>
    -
    -
    Represents a quantitative property of a phenomenon, body, or substance, that - can be quantified by measurement.
    -
    -
    interface 
    -
    Unit<Q extends Quantity<Q>>
    -
    -
    Represents a determinate quantity (as of length, time, heat, or value) adopted as a standard of measurement.
    -
    -
    -
    Methods in javax.measure with type parameters of type Quantity
    -
    -
    Modifier and Type
    -
    Method
    -
    Description
    -
    <T extends Quantity<T>>
    Quantity<T>
    -
    Quantity.asType(Class<T> type)
    -
    -
    Casts this quantity to a parameterized unit of specified nature or throw a - ClassCastException if the dimension of the specified quantity - and this measure unit's dimension do not match.
    -
    -
    <T extends Quantity<T>>
    Unit<T>
    -
    Unit.asType(Class<T> type)
    -
    -
    Casts this unit to a parameterized unit of specified nature or throw a ClassCastException if the dimension of the specified quantity and - this unit's dimension do not match.
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.ATTO(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10-18
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.CENTI(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10-2
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.DECA(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 101
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.DECI(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10-1
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.DEKA(Unit<Q> unit)
    -
    -
    US alias for DECA.
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.EXA(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 1018
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    BinaryPrefix.EXBI(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10246 (binary prefix).
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.FEMTO(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10-15
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    BinaryPrefix.GIBI(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10243 (binary prefix).
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.GIGA(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 109
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.HECTO(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 102
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    BinaryPrefix.KIBI(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 1024 (binary prefix).
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.KILO(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 103
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    BinaryPrefix.MEBI(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10242 (binary prefix).
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.MEGA(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 106
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.MICRO(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10-6
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.MILLI(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10-3
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.NANO(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10-9
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    BinaryPrefix.PEBI(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10245 (binary prefix).
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.PETA(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 1015
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.PICO(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10-12
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.QUECTO(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10-30
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.QUETTA(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 1030
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.RONNA(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 1027
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.RONTO(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10-27
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    BinaryPrefix.TEBI(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10244 (binary prefix).
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.TERA(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 1012
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    BinaryPrefix.YOBI(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10248 (binary prefix).
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.YOCTO(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10-24
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.YOTTA(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 1024
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    BinaryPrefix.ZEBI(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10247 (binary prefix).
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.ZEPTO(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10-21
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.ZETTA(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 1021
    -
    -
    -
    Methods in javax.measure that return Quantity
    -
    -
    Modifier and Type
    -
    Method
    -
    Description
    - -
    Quantity.add(Quantity<Q> addend)
    -
    -
    Returns the sum of this Quantity with the one specified.
    -
    -
    <T extends Quantity<T>>
    Quantity<T>
    -
    Quantity.asType(Class<T> type)
    -
    -
    Casts this quantity to a parameterized unit of specified nature or throw a - ClassCastException if the dimension of the specified quantity - and this measure unit's dimension do not match.
    -
    - -
    Quantity.divide(Number divisor)
    -
    -
    Returns the quotient of this Quantity divided by the Number - specified.
    -
    - -
    Quantity.divide(Quantity<?> divisor)
    -
    -
    Returns the quotient of this Quantity divided by the Quantity - specified.
    -
    - -
    Quantity.inverse()
    -
    -
    Returns a Quantity that is the multiplicative inverse of this - Quantity, having reciprocal value and reciprocal unit as given by - this.getUnit().inverse().
    -
    - -
    Quantity.multiply(Number multiplicand)
    -
    -
    Returns the product of this Quantity with the Number value - specified.
    -
    - -
    Quantity.multiply(Quantity<?> multiplicand)
    -
    -
    Returns the product of this Quantity with the one specified.
    -
    - -
    Quantity.negate()
    -
    -
    Returns a Quantity whose value is (-this.getValue()).
    -
    - -
    Quantity.subtract(Quantity<Q> subtrahend)
    -
    -
    Returns the difference between this Quantity and the one specified.
    -
    - -
    Quantity.to(Unit<Q> unit)
    -
    -
    Returns this Quantity converted into another (compatible) - Unit.
    -
    -
    default Quantity<Q>
    -
    Quantity.toSystemUnit()
    -
    -
    Convenient method equivalent to to(getUnit().toSystemUnit()).
    -
    -
    -
    Methods in javax.measure with parameters of type Quantity
    -
    -
    Modifier and Type
    -
    Method
    -
    Description
    - -
    Quantity.add(Quantity<Q> addend)
    -
    -
    Returns the sum of this Quantity with the one specified.
    -
    - -
    Quantity.divide(Quantity<?> divisor)
    -
    -
    Returns the quotient of this Quantity divided by the Quantity - specified.
    -
    -
    boolean
    -
    Quantity.isEquivalentTo(Quantity<Q> that)
    -
    -
    Compares two instances of Quantity <Q>, performing the conversion of units if necessary.
    -
    - -
    Quantity.multiply(Quantity<?> multiplicand)
    -
    -
    Returns the product of this Quantity with the one specified.
    -
    - -
    Quantity.subtract(Quantity<Q> subtrahend)
    -
    -
    Returns the difference between this Quantity and the one specified.
    -
    -
    -
    -
  • -
  • -
    -

    Uses of Quantity in javax.measure.format

    -
    Methods in javax.measure.format that return Quantity
    -
    -
    Modifier and Type
    -
    Method
    -
    Description
    - -
    QuantityFormat.parse(CharSequence csq)
    -
    -
    Parses the specified CharSequence to produce a Quantity.
    -
    - -
    QuantityFormat.parse(CharSequence csq, - ParsePosition pos)
    -
    -
    Parses a portion of the specified CharSequence from the specified position to produce a Quantity.
    -
    -
    -
    Methods in javax.measure.format with parameters of type Quantity
    -
    -
    Modifier and Type
    -
    Method
    -
    Description
    - -
    QuantityFormat.format(Quantity<?> quantity)
    -
    -
    Formats the specified Quantity.
    -
    - -
    QuantityFormat.format(Quantity<?> quantity, - Appendable destination)
    -
    -
    Formats the specified quantity into an Appendable.
    -
    -
    -
    -
  • -
  • -
    -

    Uses of Quantity in javax.measure.quantity

    -
    Subinterfaces of Quantity in javax.measure.quantity
    -
    -
    Modifier and Type
    -
    Interface
    -
    Description
    -
    interface 
    - -
    -
    Rate of change of velocity with respect to time.
    -
    -
    interface 
    - -
    -
    Number of elementary entities (molecules, for example) of a substance.
    -
    -
    interface 
    - -
    -
    Figure formed by two lines diverging from a common point.
    -
    -
    interface 
    - -
    -
    Extent of a planar region or of the surface of a solid measured in square units.
    -
    -
    interface 
    - -
    -
    Catalytic activity.
    -
    -
    interface 
    - -
    -
    Dimensionless quantity.
    -
    -
    interface 
    - -
    -
    Electric capacitance.
    -
    -
    interface 
    - -
    -
    Electric charge.
    -
    -
    interface 
    - -
    -
    Electric conductance.
    -
    -
    interface 
    - -
    -
    Amount of electric charge flowing past a specified circuit point per unit time.
    -
    -
    interface 
    - -
    -
    Electric inductance.
    -
    -
    interface 
    - -
    -
    Electric potential or electromotive force.
    -
    -
    interface 
    - -
    -
    Electric resistance.
    -
    -
    interface 
    - -
    -
    Capacity of a physical system to do work.
    -
    -
    interface 
    - -
    -
    Quantity that tends to produce an acceleration of a body in the direction of its application.
    -
    -
    interface 
    - -
    -
    Number of times a specified phenomenon occurs within a specified interval.
    -
    -
    interface 
    - -
    -
    Illuminance.
    -
    -
    interface 
    - -
    -
    Extent of something along its greatest dimension or the extent of space between two objects or places.
    -
    -
    interface 
    - -
    -
    Luminous flux.
    -
    -
    interface 
    - -
    -
    Luminous flux density per solid angle as measured in a given direction relative to the emitting source.
    -
    -
    interface 
    - -
    -
    Magnetic flux.
    -
    -
    interface 
    - -
    -
    Magnetic flux density.
    -
    -
    interface 
    - -
    -
    Measure of the quantity of matter that a body or an object contains.
    -
    -
    interface 
    - -
    -
    Rate at which work is done.
    -
    -
    interface 
    - -
    -
    Force applied uniformly over a surface.
    -
    -
    interface 
    - -
    -
    Amount of energy deposited per unit of mass.
    -
    -
    interface 
    - -
    -
    Effective (or "equivalent") dose of radiation received by a human or some other living organism.
    -
    -
    interface 
    - -
    -
    Radioactive activity.
    -
    -
    interface 
    - -
    -
    Angle formed by three or more planes intersecting at a common point.
    -
    -
    interface 
    - -
    -
    Distance traveled divided by the time of travel.
    -
    -
    interface 
    - -
    -
    Degree of hotness or coldness of a body or an environment.
    -
    -
    interface 
    - -
    -
    Period of existence or persistence.
    -
    -
    interface 
    - -
    -
    Amount of space occupied by a three-dimensional object or region of space.
    -
    -
    -
    -
  • -
  • -
    -

    Uses of Quantity in javax.measure.spi

    -
    Classes in javax.measure.spi with type parameters of type Quantity
    -
    -
    Modifier and Type
    -
    Interface
    -
    Description
    -
    interface 
    - -
    -
    Represents a factory that accepts Number and Unit arguments to create Quantity results.
    -
    -
    -
    Methods in javax.measure.spi with type parameters of type Quantity
    -
    -
    Modifier and Type
    -
    Method
    -
    Description
    -
    abstract <Q extends Quantity<Q>>
    QuantityFactory<Q>
    -
    ServiceProvider.getQuantityFactory(Class<Q> quantity)
    -
    -
    Returns a factory for the given Quantity type.
    -
    -
    <Q extends Quantity<Q>>
    Unit<Q>
    -
    SystemOfUnits.getUnit(Class<Q> quantityType)
    -
    -
    Returns the default unit for the specified quantity or null if none is defined for the given quantity in this unit system.
    -
    -
    -
    Methods in javax.measure.spi that return Quantity
    -
    -
    Modifier and Type
    -
    Method
    -
    Description
    - -
    QuantityFactory.create(Number value, - Unit<Q> unit)
    -
    -
    Returns the quantity for the specified number stated in the specified unit.
    -
    - -
    QuantityFactory.create(Number value, - Unit<Q> unit, - Quantity.Scale scale)
    -
    -
    Returns the quantity for the specified number stated in the specified unit and scale.
    -
    -
    -
    -
  • -
-
-
- -
-
- - diff --git a/docs/apidocs/javax/measure/class-use/UnconvertibleException.html b/docs/apidocs/javax/measure/class-use/UnconvertibleException.html deleted file mode 100644 index 9b9452bb..00000000 --- a/docs/apidocs/javax/measure/class-use/UnconvertibleException.html +++ /dev/null @@ -1,97 +0,0 @@ - - - - -Uses of Class javax.measure.UnconvertibleException (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Uses of Class
javax.measure.UnconvertibleException

-
-
Packages that use UnconvertibleException
-
-
Package
-
Description
- -
-
Specifies Java packages for the programmatic, type safe handling - of quantities and their expression as values of units.
-
-
-
- -
-
- -
-
- - diff --git a/docs/apidocs/javax/measure/class-use/Unit.html b/docs/apidocs/javax/measure/class-use/Unit.html deleted file mode 100644 index 327b1717..00000000 --- a/docs/apidocs/javax/measure/class-use/Unit.html +++ /dev/null @@ -1,672 +0,0 @@ - - - - -Uses of Interface javax.measure.Unit (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Uses of Interface
javax.measure.Unit

-
-
Packages that use Unit
-
-
Package
-
Description
- -
-
Specifies Java packages for the programmatic, type safe handling - of quantities and their expression as values of units.
-
- -
-
[OPTIONAL] Provides Formatting and Parsing functionality for units, quantities, dimensions or their textual representation.
-
- -
-
[OPTIONAL] The Units of Measurement SPI.
-
-
-
-
    -
  • -
    -

    Uses of Unit in javax.measure

    -
    Methods in javax.measure that return Unit
    -
    -
    Modifier and Type
    -
    Method
    -
    Description
    - -
    Unit.alternate(String symbol)
    -
    -
    Returns a system unit equivalent to this unscaled standard unit but used in expressions to distinguish between quantities of a different nature - but of the same dimensions.
    -
    -
    <T extends Quantity<T>>
    Unit<T>
    -
    Unit.asType(Class<T> type)
    -
    -
    Casts this unit to a parameterized unit of specified nature or throw a ClassCastException if the dimension of the specified quantity and - this unit's dimension do not match.
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.ATTO(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10-18
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.CENTI(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10-2
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.DECA(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 101
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.DECI(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10-1
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.DEKA(Unit<Q> unit)
    -
    -
    US alias for DECA.
    -
    - -
    Unit.divide(double divisor)
    -
    -
    Returns the result of dividing this unit by an approximate divisor.
    -
    - -
    Unit.divide(Number divisor)
    -
    -
    Returns the result of dividing this unit by a divisor.
    -
    -
    Unit<?>
    -
    Unit.divide(Unit<?> divisor)
    -
    -
    Returns the quotient of this unit with the one specified.
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.EXA(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 1018
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    BinaryPrefix.EXBI(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10246 (binary prefix).
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.FEMTO(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10-15
    -
    - - -
    -
    Returns the unscaled system unit from which this unit is derived.
    -
    - -
    Quantity.getUnit()
    -
    -
    Returns the unit of this Quantity.
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    BinaryPrefix.GIBI(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10243 (binary prefix).
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.GIGA(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 109
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.HECTO(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 102
    -
    -
    Unit<?>
    -
    Unit.inverse()
    -
    -
    Returns the reciprocal (multiplicative inverse) of this unit.
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    BinaryPrefix.KIBI(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 1024 (binary prefix).
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.KILO(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 103
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    BinaryPrefix.MEBI(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10242 (binary prefix).
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.MEGA(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 106
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.MICRO(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10-6
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.MILLI(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10-3
    -
    - -
    Unit.multiply(double multiplier)
    -
    -
    Returns the result of multiplying this unit by the specified factor.
    -
    - -
    Unit.multiply(Number multiplier)
    -
    -
    Returns the result of multiplying this unit by the specified factor.
    -
    -
    Unit<?>
    -
    Unit.multiply(Unit<?> multiplier)
    -
    -
    Returns the product of this unit with the one specified.
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.NANO(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10-9
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    BinaryPrefix.PEBI(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10245 (binary prefix).
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.PETA(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 1015
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.PICO(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10-12
    -
    -
    Unit<?>
    -
    Unit.pow(int n)
    -
    -
    Returns an unit raised to the n-th (integer) power of this unit.
    -
    - -
    Unit.prefix(Prefix prefix)
    -
    -
    Returns a new unit equal to this unit prefixed by the specified prefix.
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.QUECTO(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10-30
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.QUETTA(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 1030
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.RONNA(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 1027
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.RONTO(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10-27
    -
    -
    Unit<?>
    -
    Unit.root(int n)
    -
    -
    Returns an unit that is the n-th (integer) root of this unit.
    -
    - -
    Unit.shift(double offset)
    -
    -
    Returns the result of setting the origin of the scale of measurement to the given value.
    -
    - -
    Unit.shift(Number offset)
    -
    -
    Returns the result of setting the origin of the scale of measurement to the given value.
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    BinaryPrefix.TEBI(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10244 (binary prefix).
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.TERA(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 1012
    -
    - -
    Unit.transform(UnitConverter operation)
    -
    -
    Returns the unit derived from this unit using the specified converter.
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    BinaryPrefix.YOBI(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10248 (binary prefix).
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.YOCTO(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10-24
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.YOTTA(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 1024
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    BinaryPrefix.ZEBI(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10247 (binary prefix).
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.ZEPTO(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10-21
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.ZETTA(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 1021
    -
    -
    -
    Methods in javax.measure that return types with arguments of type Unit
    -
    -
    Modifier and Type
    -
    Method
    -
    Description
    -
    Map<? extends Unit<?>,Integer>
    - -
    -
    Returns the base units and their exponent whose product is this unit, or null if this unit is a base unit (not a product of existing - units).
    -
    -
    -
    Methods in javax.measure with parameters of type Unit
    -
    -
    Modifier and Type
    -
    Method
    -
    Description
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.ATTO(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10-18
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.CENTI(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10-2
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.DECA(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 101
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.DECI(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10-1
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.DEKA(Unit<Q> unit)
    -
    -
    US alias for DECA.
    -
    -
    Unit<?>
    -
    Unit.divide(Unit<?> divisor)
    -
    -
    Returns the quotient of this unit with the one specified.
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.EXA(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 1018
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    BinaryPrefix.EXBI(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10246 (binary prefix).
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.FEMTO(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10-15
    -
    - -
    Unit.getConverterTo(Unit<Q> that)
    -
    -
    Returns a converter of numeric values from this unit to another unit of same type.
    -
    - -
    Unit.getConverterToAny(Unit<?> that)
    -
    -
    Returns a converter from this unit to the specified unit of type unknown.
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    BinaryPrefix.GIBI(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10243 (binary prefix).
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.GIGA(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 109
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.HECTO(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 102
    -
    -
    boolean
    -
    Unit.isCompatible(Unit<?> that)
    -
    -
    Indicates if this unit is compatible with the unit specified.
    -
    -
    boolean
    -
    Unit.isEquivalentTo(Unit<Q> that)
    -
    -
    Indicates if this unit represents the same quantity than the given unit, ignoring name and symbols.
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    BinaryPrefix.KIBI(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 1024 (binary prefix).
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.KILO(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 103
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    BinaryPrefix.MEBI(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10242 (binary prefix).
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.MEGA(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 106
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.MICRO(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10-6
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.MILLI(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10-3
    -
    -
    Unit<?>
    -
    Unit.multiply(Unit<?> multiplier)
    -
    -
    Returns the product of this unit with the one specified.
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.NANO(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10-9
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    BinaryPrefix.PEBI(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10245 (binary prefix).
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.PETA(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 1015
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.PICO(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10-12
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.QUECTO(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10-30
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.QUETTA(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 1030
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.RONNA(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 1027
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.RONTO(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10-27
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    BinaryPrefix.TEBI(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10244 (binary prefix).
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.TERA(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 1012
    -
    - -
    Quantity.to(Unit<Q> unit)
    -
    -
    Returns this Quantity converted into another (compatible) - Unit.
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    BinaryPrefix.YOBI(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10248 (binary prefix).
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.YOCTO(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10-24
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.YOTTA(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 1024
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    BinaryPrefix.ZEBI(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10247 (binary prefix).
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.ZEPTO(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 10-21
    -
    -
    static <Q extends Quantity<Q>>
    Unit<Q>
    -
    MetricPrefix.ZETTA(Unit<Q> unit)
    -
    -
    Returns the specified unit multiplied by the factor 1021
    -
    -
    -
    -
  • -
  • -
    -

    Uses of Unit in javax.measure.format

    -
    Methods in javax.measure.format that return Unit
    -
    -
    Modifier and Type
    -
    Method
    -
    Description
    -
    Unit<?>
    -
    UnitFormat.parse(CharSequence csq)
    -
    -
    Parses the text into an instance of Unit.
    -
    -
    Unit<?>
    -
    UnitFormat.parse(CharSequence csq, - ParsePosition pos)
    -
    -
    Parses a portion of the specified CharSequence from the specified position to produce a Unit.
    -
    -
    -
    Methods in javax.measure.format with parameters of type Unit
    -
    -
    Modifier and Type
    -
    Method
    -
    Description
    - -
    UnitFormat.format(Unit<?> unit)
    -
    -
    Formats the specified Unit.
    -
    - -
    UnitFormat.format(Unit<?> unit, - Appendable appendable)
    -
    -
    Formats the specified Unit.
    -
    -
    void
    -
    UnitFormat.label(Unit<?> unit, - String label)
    -
    -
    Attaches a system-wide label to the specified Unit.
    -
    -
    -
    -
  • -
  • -
    -

    Uses of Unit in javax.measure.spi

    -
    Methods in javax.measure.spi that return Unit
    -
    -
    Modifier and Type
    -
    Method
    -
    Description
    - -
    QuantityFactory.getSystemUnit()
    -
    -
    Returns the system unit for quantities produced by this factory or null if unknown.
    -
    -
    <Q extends Quantity<Q>>
    Unit<Q>
    -
    SystemOfUnits.getUnit(Class<Q> quantityType)
    -
    -
    Returns the default unit for the specified quantity or null if none is defined for the given quantity in this unit system.
    -
    -
    Unit<?>
    -
    SystemOfUnits.getUnit(String string)
    -
    -
    Returns a unit with the given string representation or null if none is found in this unit system.
    -
    -
    -
    Methods in javax.measure.spi that return types with arguments of type Unit
    -
    -
    Modifier and Type
    -
    Method
    -
    Description
    -
    Set<? extends Unit<?>>
    -
    SystemOfUnits.getUnits()
    -
    -
    Returns a read only view over the units explicitly defined by this system.
    -
    -
    Set<? extends Unit<?>>
    -
    SystemOfUnits.getUnits(Dimension dimension)
    -
    -
    Returns the units defined in this system having the specified dimension (convenience method).
    -
    -
    -
    Methods in javax.measure.spi with parameters of type Unit
    -
    -
    Modifier and Type
    -
    Method
    -
    Description
    - -
    QuantityFactory.create(Number value, - Unit<Q> unit)
    -
    -
    Returns the quantity for the specified number stated in the specified unit.
    -
    - -
    QuantityFactory.create(Number value, - Unit<Q> unit, - Quantity.Scale scale)
    -
    -
    Returns the quantity for the specified number stated in the specified unit and scale.
    -
    -
    -
    -
  • -
-
-
- -
-
- - diff --git a/docs/apidocs/javax/measure/class-use/UnitConverter.html b/docs/apidocs/javax/measure/class-use/UnitConverter.html deleted file mode 100644 index 91afed68..00000000 --- a/docs/apidocs/javax/measure/class-use/UnitConverter.html +++ /dev/null @@ -1,135 +0,0 @@ - - - - -Uses of Interface javax.measure.UnitConverter (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Uses of Interface
javax.measure.UnitConverter

-
-
Packages that use UnitConverter
-
-
Package
-
Description
- -
-
Specifies Java packages for the programmatic, type safe handling - of quantities and their expression as values of units.
-
-
-
- -
-
- -
-
- - diff --git a/docs/apidocs/javax/measure/format/MeasurementParseException.html b/docs/apidocs/javax/measure/format/MeasurementParseException.html deleted file mode 100644 index bf44e305..00000000 --- a/docs/apidocs/javax/measure/format/MeasurementParseException.html +++ /dev/null @@ -1,281 +0,0 @@ - - - - -MeasurementParseException (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - - - - -
- -
-
- -
- -

Class MeasurementParseException

-
- -
-
-
All Implemented Interfaces:
-
Serializable
-
-
- -
Signals that an error has been reached unexpectedly while parsing.
-
-
Since:
-
2.0
-
Version:
-
1.1, March 27, 2018
-
Author:
-
Werner Keil
-
See Also:
-
- -
-
-
-
- -
-
-
    - -
  • -
    -

    Constructor Details

    -
      -
    • -
      -

      MeasurementParseException

      -
      public MeasurementParseException(String message, - CharSequence parsedData, - int position)
      -
      Constructs a MeasurementParseException with the specified detail message, parsed text and index. A detail message is a String that describes - this particular exception.
      -
      -
      Parameters:
      -
      message - the detail message
      -
      parsedData - the parsed text, should not be null
      -
      position - the position where the error was found while parsing.
      -
      -
      -
    • -
    • -
      -

      MeasurementParseException

      -
      public MeasurementParseException(CharSequence parsedData, - int position)
      -
      Constructs a MeasurementParseException with the parsed text and offset. A detail message is a String that describes this particular exception.
      -
      -
      Parameters:
      -
      parsedData - the parsed text, should not be null
      -
      position - the position where the error is found while parsing.
      -
      -
      -
    • -
    • -
      -

      MeasurementParseException

      - -
      Constructs a MeasurementParseException with the specified cause.
      -
      -
      Parameters:
      -
      cause - the root cause
      -
      -
      -
    • -
    • -
      -

      MeasurementParseException

      - -
      Constructs a MeasurementParseException with the specified detail message.
      -
      -
      Parameters:
      -
      message - the detail message
      -
      -
      -
    • -
    -
    -
  • - -
  • -
    -

    Method Details

    -
      -
    • -
      -

      getPosition

      -
      public int getPosition()
      -
      Returns the position where the error was found.
      -
      -
      Returns:
      -
      the position of the error
      -
      -
      -
    • -
    • -
      -

      getParsedString

      - -
      Returns the string that was being parsed.
      -
      -
      Returns:
      -
      the parsed string, or null, if null was passed as input.
      -
      -
      -
    • -
    -
    -
  • -
-
- -
- -
-
- - diff --git a/docs/apidocs/javax/measure/format/QuantityFormat.html b/docs/apidocs/javax/measure/format/QuantityFormat.html deleted file mode 100644 index 72d24d8e..00000000 --- a/docs/apidocs/javax/measure/format/QuantityFormat.html +++ /dev/null @@ -1,256 +0,0 @@ - - - - -QuantityFormat (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - - - - - -
- -
-
- -
- -

Interface QuantityFormat

-
-
-
-
public interface QuantityFormat
-
Formats instances of Quantity. - -
-
Synchronization
-
- Instances of this class are not required to be thread-safe. It is recommended to use separate format instances for each thread. If multiple threads - access a format concurrently, it must be synchronized externally.
-
-
Since:
-
2.0
-
Version:
-
1.1, 20 May, 2023
-
Author:
-
Werner Keil, Thodoris Bais
-
See Also:
-
- -
-
-
-
- -
-
-
    - -
  • -
    -

    Method Details

    -
      -
    • -
      -

      format

      -
      Appendable format(Quantity<?> quantity, - Appendable destination) - throws IOException
      -
      Formats the specified quantity into an Appendable.
      -
      -
      Parameters:
      -
      quantity - the quantity to format.
      -
      destination - the appendable destination.
      -
      Returns:
      -
      the specified Appendable.
      -
      Throws:
      -
      IOException - if an I/O exception occurs.
      -
      -
      -
    • -
    • -
      -

      format

      -
      String format(Quantity<?> quantity)
      -
      Formats the specified Quantity.
      -
      -
      Parameters:
      -
      quantity - the Quantity to format, not null
      -
      Returns:
      -
      the string representation using the settings of this QuantityFormat.
      -
      -
      -
    • -
    • -
      -

      parse

      - -
      Parses a portion of the specified CharSequence from the specified position to produce a Quantity. - If parsing succeeds, then the index of the pos argument is updated to the index after the last character used.
      -
      -
      Parameters:
      -
      csq - the CharSequence to parse.
      -
      pos - a ParsePosition object holding the current parsing index and error parsing index information as described above.
      -
      Returns:
      -
      the quantity parsed from the specified character sub-sequence.
      -
      Throws:
      -
      MeasurementParseException - if any problem occurs while parsing the specified character sequence (e.g. illegal syntax).
      -
      -
      -
    • -
    • -
      -

      parse

      - -
      Parses the specified CharSequence to produce a Quantity. -

      - The parse must complete normally and parse the entire text. If the parse completes without reading the entire length of the text, an exception - is thrown. If any other problem occurs during parsing, an exception is thrown. -

      -
      -
      Parameters:
      -
      csq - the CharSequence to parse.
      -
      Returns:
      -
      the quantity parsed from the specified character sub-sequence.
      -
      Throws:
      -
      MeasurementParseException - if any problem occurs while parsing the specified character sequence (e.g. illegal syntax).
      -
      -
      -
    • -
    • -
      -

      isLocaleSensitive

      -
      default boolean isLocaleSensitive()
      -
      Returns true if this QuantityFormat depends on a Locale to perform its tasks. -

      - In environments that do not support a Locale, e.g. Java ME, this usually returns false. -

      -
      -
      Returns:
      -
      whether this format depends on the locale.
      -
      -
      -
    • -
    -
    -
  • -
-
- -
- -
-
- - diff --git a/docs/apidocs/javax/measure/format/UnitFormat.html b/docs/apidocs/javax/measure/format/UnitFormat.html deleted file mode 100644 index 89fb2949..00000000 --- a/docs/apidocs/javax/measure/format/UnitFormat.html +++ /dev/null @@ -1,299 +0,0 @@ - - - - -UnitFormat (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - - - - - - -
- -
-
- -
- -

Interface UnitFormat

-
-
-
-
public interface UnitFormat
-
Formats instances of Unit to a String or Appendable and parses a CharSequence to a Unit. - -
-
Synchronization
-
-

- Instances of this class are not required to be thread-safe. It is recommended to use separate format instances for each thread. If multiple threads - access a format concurrently, it must be synchronized externally. -

-
-
Since:
-
1.0
-
Version:
-
2.2, May 20, 2023
-
Author:
-
Jean-Marie Dautelle, Werner Keil
-
See Also:
-
- -
-
-
-
- -
-
-
    - -
  • -
    -

    Method Details

    -
      -
    • -
      -

      format

      -
      Appendable format(Unit<?> unit, - Appendable appendable) - throws IOException
      -
      Formats the specified Unit.
      -
      -
      Parameters:
      -
      unit - the Unit to format, not null
      -
      appendable - the appendable destination.
      -
      Returns:
      -
      the appendable destination passed in with formatted text appended.
      -
      Throws:
      -
      IOException - if an error occurs while writing to the destination.
      -
      -
      -
    • -
    • -
      -

      format

      -
      String format(Unit<?> unit)
      -
      Formats the specified Unit.
      -
      -
      Parameters:
      -
      unit - the Unit to format, not null
      -
      Returns:
      -
      the string representation using the settings of this UnitFormat.
      -
      -
      -
    • -
    • -
      -

      label

      -
      void label(Unit<?> unit, - String label)
      -
      Attaches a system-wide label to the specified Unit. -

      - This method overrides the previous unit's label (e.g. label from unit database or unit system) as units may only have one label. Depending on the - UnitFormat implementation, this call may be ignored if the particular unit already has a label. -

      - If a UnitFormat implementation is explicitly immutable, similar to e.g. the result of Collections.unmodifiableList(), - then an UnsupportedOperationException may be thrown upon this call. -

      - Since UnitFormat implementations often apply the Singleton pattern, system-wide means, the label applies to every instance of - UnitFormatA implementing UnitFormat in this case, but not every instance of UnitFormatB or UnitFormatC both - also implementing UnitFormat. If a UnitFormat #isLocaleSensitive() it is up to the implementation, whether the label is - ignored, applied in a local-neutral manner (in addition to its local-sensitive information) or locale-specific. -

      -
      -
      Parameters:
      -
      unit - the unit being labeled.
      -
      label - the new label for this unit.
      -
      Throws:
      -
      IllegalArgumentException - if the label is not a valid identifier. This may include characters not supported by a particular UnitFormat implementation - (e.g. only ASCII characters for certain devices)
      -
      UnsupportedOperationException - if the label operation is not supported by this UnitFormat
      -
      -
      -
    • -
    • -
      -

      isLocaleSensitive

      -
      default boolean isLocaleSensitive()
      -
      Returns true if this UnitFormat depends on a Locale to perform its tasks. -

      - In environments that do not support a Locale, e.g. Java ME, this usually returns false. -

      -
      -
      Returns:
      -
      Whether this format depends on a locale.
      -
      -
      -
    • -
    • -
      -

      parse

      - -
      Parses a portion of the specified CharSequence from the specified position to produce a Unit. - If parsing succeeds, then the index of the pos argument is updated to the index after the last character used.
      -
      -
      Parameters:
      -
      csq - the CharSequence to parse.
      -
      pos - a ParsePosition object holding the current parsing index and error parsing index information as described above.
      -
      Returns:
      -
      the unit parsed from the specified character sub-sequence.
      -
      Throws:
      -
      MeasurementParseException - if any problem occurs while parsing the specified character sequence (e.g. illegal syntax).
      -
      Since:
      -
      2.0
      -
      -
      -
    • -
    • -
      -

      parse

      - -
      Parses the text into an instance of Unit. -

      - The parse must complete normally and parse the entire text. If the parse completes without reading the entire length of the text, an exception - is thrown. If any other problem occurs during parsing, an exception is thrown. -

      -
      -
      Parameters:
      -
      csq - the CharSequence to parse.
      -
      Returns:
      -
      the unit parsed from the specified character sequence.
      -
      Throws:
      -
      MeasurementParseException - if any problem occurs while parsing the specified character sequence (e.g. illegal syntax).
      -
      UnsupportedOperationException - if the UnitFormat is unable to parse.
      -
      Since:
      -
      2.0
      -
      -
      -
    • -
    -
    -
  • -
-
- -
- -
-
- - diff --git a/docs/apidocs/javax/measure/format/class-use/MeasurementParseException.html b/docs/apidocs/javax/measure/format/class-use/MeasurementParseException.html deleted file mode 100644 index 8c4e6cbe..00000000 --- a/docs/apidocs/javax/measure/format/class-use/MeasurementParseException.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - -Uses of Class javax.measure.format.MeasurementParseException (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Uses of Class
javax.measure.format.MeasurementParseException

-
-
Packages that use MeasurementParseException
-
-
Package
-
Description
- -
-
[OPTIONAL] Provides Formatting and Parsing functionality for units, quantities, dimensions or their textual representation.
-
-
-
- -
-
- -
-
- - diff --git a/docs/apidocs/javax/measure/format/class-use/QuantityFormat.html b/docs/apidocs/javax/measure/format/class-use/QuantityFormat.html deleted file mode 100644 index 4593b3c5..00000000 --- a/docs/apidocs/javax/measure/format/class-use/QuantityFormat.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - -Uses of Interface javax.measure.format.QuantityFormat (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Uses of Interface
javax.measure.format.QuantityFormat

-
-
Packages that use QuantityFormat
-
-
Package
-
Description
- -
-
[OPTIONAL] The Units of Measurement SPI.
-
-
-
- -
-
- -
-
- - diff --git a/docs/apidocs/javax/measure/format/class-use/UnitFormat.html b/docs/apidocs/javax/measure/format/class-use/UnitFormat.html deleted file mode 100644 index 38d99607..00000000 --- a/docs/apidocs/javax/measure/format/class-use/UnitFormat.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - -Uses of Interface javax.measure.format.UnitFormat (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Uses of Interface
javax.measure.format.UnitFormat

-
-
Packages that use UnitFormat
-
-
Package
-
Description
- -
-
[OPTIONAL] The Units of Measurement SPI.
-
-
-
- -
-
- -
-
- - diff --git a/docs/apidocs/javax/measure/format/package-summary.html b/docs/apidocs/javax/measure/format/package-summary.html deleted file mode 100644 index 7312cace..00000000 --- a/docs/apidocs/javax/measure/format/package-summary.html +++ /dev/null @@ -1,138 +0,0 @@ - - - - -javax.measure.format (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - - -
- -
-
-
-

Package javax.measure.format

-
-
-
package javax.measure.format
-
-
[OPTIONAL] Provides Formatting and Parsing functionality for units, quantities, dimensions or their textual representation.
-
-
Since:
-
1.0
-
Version:
-
2.0, July 7, 2019
-
Author:
-
Werner Keil
-
-
-
-
    -
  • - -
  • -
  • -
    -
    -
    -
    -
    Class
    -
    Description
    - -
    -
    Signals that an error has been reached unexpectedly while parsing.
    -
    - -
    -
    Formats instances of Quantity.
    -
    - -
    -
    Formats instances of Unit to a String or Appendable and parses a CharSequence to a Unit.
    -
    -
    -
    -
    -
  • -
-
-
- -
-
- - diff --git a/docs/apidocs/javax/measure/format/package-tree.html b/docs/apidocs/javax/measure/format/package-tree.html deleted file mode 100644 index 1c61b96b..00000000 --- a/docs/apidocs/javax/measure/format/package-tree.html +++ /dev/null @@ -1,99 +0,0 @@ - - - - -javax.measure.format Class Hierarchy (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Hierarchy For Package javax.measure.format

-Package Hierarchies: - -
-
-

Class Hierarchy

- -
-
-

Interface Hierarchy

- -
-
- -
-
- - diff --git a/docs/apidocs/javax/measure/format/package-use.html b/docs/apidocs/javax/measure/format/package-use.html deleted file mode 100644 index 98b743bb..00000000 --- a/docs/apidocs/javax/measure/format/package-use.html +++ /dev/null @@ -1,109 +0,0 @@ - - - - -Uses of Package javax.measure.format (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Uses of Package
javax.measure.format

-
-
Packages that use javax.measure.format
-
-
Package
-
Description
- -
-
[OPTIONAL] Provides Formatting and Parsing functionality for units, quantities, dimensions or their textual representation.
-
- -
-
[OPTIONAL] The Units of Measurement SPI.
-
-
-
- -
-
- -
-
- - diff --git a/docs/apidocs/javax/measure/package-summary.html b/docs/apidocs/javax/measure/package-summary.html deleted file mode 100644 index 0790a747..00000000 --- a/docs/apidocs/javax/measure/package-summary.html +++ /dev/null @@ -1,178 +0,0 @@ - - - - -javax.measure (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - - -
- -
-
-
-

Package javax.measure

-
-
-
package javax.measure
-
-
Specifies Java packages for the programmatic, type safe handling - of quantities and their expression as values of units. - -

The core interfaces of this package are Dimension, Prefix, Quantity and Unit.

-

The package also contains the most common Prefix implementations MetricPrefix and BinaryPrefix.

-
-
Since:
-
1.0
-
Version:
-
1.7, February 4, 2019
-
Author:
-
Jean-Marie Dautelle, Werner Keil, Otávio Gonçalves de Santana
-
-
-
-
    -
  • - -
  • -
  • -
    -
    -
    -
    -
    Class
    -
    Description
    - -
    -
    Provides support for common binary prefixes to be used by units.
    -
    - -
    -
    Represents the dimension of a unit.
    -
    - -
    -
    Signals that a problem of some sort has occurred due to incommensurable of some quantities/units.
    -
    - -
    -
    This error is used to indicate serious problems with creating, retrieving and manipulating units of measurement objects.
    -
    - -
    -
    Exception used to indicate a problem while dealing with units of measurement.
    -
    - -
    -
    Provides support for the 24 prefixes used in the metric system (decimal multiples and submultiples of units).
    -
    - -
    -
    A unit prefix is a specifier or mnemonic that is prepended to units of measurement to indicate multiples or fractions of the units.
    -
    -
    Quantity<Q extends Quantity<Q>>
    -
    -
    Represents a quantitative property of a phenomenon, body, or substance, that - can be quantified by measurement.
    -
    - -
    -
    The scale of a Quantity, either ABSOLUTE or RELATIVE.
    -
    - -
    -
    Signals that a problem of some sort has occurred due to the impossibility of constructing a converter between two units.
    -
    -
    Unit<Q extends Quantity<Q>>
    -
    -
    Represents a determinate quantity (as of length, time, heat, or value) adopted as a standard of measurement.
    -
    - -
    -
    A converter of numeric values between different units.
    -
    -
    -
    -
    -
  • -
-
-
- -
-
- - diff --git a/docs/apidocs/javax/measure/package-tree.html b/docs/apidocs/javax/measure/package-tree.html deleted file mode 100644 index 97f0e14d..00000000 --- a/docs/apidocs/javax/measure/package-tree.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - -javax.measure Class Hierarchy (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Hierarchy For Package javax.measure

-Package Hierarchies: - -
-
-

Class Hierarchy

- -
-
-

Interface Hierarchy

- -
-
-

Enum Hierarchy

- -
-
- -
-
- - diff --git a/docs/apidocs/javax/measure/package-use.html b/docs/apidocs/javax/measure/package-use.html deleted file mode 100644 index a9f7675a..00000000 --- a/docs/apidocs/javax/measure/package-use.html +++ /dev/null @@ -1,209 +0,0 @@ - - - - -Uses of Package javax.measure (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Uses of Package
javax.measure

-
-
Packages that use javax.measure
-
-
Package
-
Description
- -
-
Specifies Java packages for the programmatic, type safe handling - of quantities and their expression as values of units.
-
- -
-
[OPTIONAL] Provides Formatting and Parsing functionality for units, quantities, dimensions or their textual representation.
-
- -
-
[OPTIONAL] Provides quantitative properties or attributes of thing such as - mass, time, distance, heat, and angular separation.
-
- -
-
[OPTIONAL] The Units of Measurement SPI.
-
-
-
-
    -
  • -
    -
    Classes in javax.measure used by javax.measure
    -
    -
    Class
    -
    Description
    - -
    -
    Provides support for common binary prefixes to be used by units.
    -
    - -
    -
    Represents the dimension of a unit.
    -
    - -
    -
    Signals that a problem of some sort has occurred due to incommensurable of some quantities/units.
    -
    - -
    -
    Exception used to indicate a problem while dealing with units of measurement.
    -
    - -
    -
    Provides support for the 24 prefixes used in the metric system (decimal multiples and submultiples of units).
    -
    - -
    -
    A unit prefix is a specifier or mnemonic that is prepended to units of measurement to indicate multiples or fractions of the units.
    -
    - -
    -
    Represents a quantitative property of a phenomenon, body, or substance, that - can be quantified by measurement.
    -
    - -
    -
    The scale of a Quantity, either ABSOLUTE or RELATIVE.
    -
    - -
    -
    Signals that a problem of some sort has occurred due to the impossibility of constructing a converter between two units.
    -
    - -
    -
    Represents a determinate quantity (as of length, time, heat, or value) adopted as a standard of measurement.
    -
    - -
    -
    A converter of numeric values between different units.
    -
    -
    -
    -
  • -
  • -
    - -
    -
    Class
    -
    Description
    - -
    -
    Exception used to indicate a problem while dealing with units of measurement.
    -
    - -
    -
    Represents a quantitative property of a phenomenon, body, or substance, that - can be quantified by measurement.
    -
    - -
    -
    Represents a determinate quantity (as of length, time, heat, or value) adopted as a standard of measurement.
    -
    -
    -
    -
  • -
  • -
    - -
    -
    Class
    -
    Description
    - -
    -
    Represents a quantitative property of a phenomenon, body, or substance, that - can be quantified by measurement.
    -
    -
    -
    -
  • -
  • -
    -
    Classes in javax.measure used by javax.measure.spi
    -
    -
    Class
    -
    Description
    - -
    -
    Represents the dimension of a unit.
    -
    - -
    -
    A unit prefix is a specifier or mnemonic that is prepended to units of measurement to indicate multiples or fractions of the units.
    -
    - -
    -
    Represents a quantitative property of a phenomenon, body, or substance, that - can be quantified by measurement.
    -
    - -
    -
    The scale of a Quantity, either ABSOLUTE or RELATIVE.
    -
    - -
    -
    Represents a determinate quantity (as of length, time, heat, or value) adopted as a standard of measurement.
    -
    -
    -
    -
  • -
-
-
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/Acceleration.html b/docs/apidocs/javax/measure/quantity/Acceleration.html deleted file mode 100644 index 9c722c39..00000000 --- a/docs/apidocs/javax/measure/quantity/Acceleration.html +++ /dev/null @@ -1,130 +0,0 @@ - - - - -Acceleration (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - - -
- -
-
- -
- -

Interface Acceleration

-
-
-
-
All Superinterfaces:
-
Quantity<Acceleration>
-
-
-
public interface Acceleration -extends Quantity<Acceleration>
-
Rate of change of velocity with respect to time. The metric system unit for this quantity is "m/s²" (metre per square second).
-
-
Since:
-
1.0
-
Version:
-
1.2
-
Author:
-
Jean-Marie Dautelle, Werner Keil
-
See Also:
-
- -
-
-
-
- -
- -
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/AmountOfSubstance.html b/docs/apidocs/javax/measure/quantity/AmountOfSubstance.html deleted file mode 100644 index 5da1ebd2..00000000 --- a/docs/apidocs/javax/measure/quantity/AmountOfSubstance.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - -AmountOfSubstance (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - - -
- -
-
- -
- -

Interface AmountOfSubstance

-
-
-
-
All Superinterfaces:
-
Quantity<AmountOfSubstance>
-
-
-
public interface AmountOfSubstance -extends Quantity<AmountOfSubstance>
-
Number of elementary entities (molecules, for example) of a substance. The metric system unit for this quantity is "mol" (mole). - - The mole, symbol mol, is the SI unit of amount of substance. One mole contains - exactly 6.022 140 76 × 10²³ elementary entities. This number is the fixed numerical - value of the Avogadro constant, NA, when expressed in the unit mol⁻¹ and is called - the Avogadro number. - - The amount of substance, symbol n, of a system is a measure of the number of - specified elementary entities. An elementary entity may be an atom, a molecule, an - ion, an electron, any other particle or specified group of particles. - This definition implies the exact relation Nₐ = 6.022 140 76 × 10²³ mol⁻¹. - - Inverting this relation gives an exact expression for the mole in terms of the defining constant NA: - - 1 mol = 6.02214076 × 10²³ / Nₐ -
-
-
API Note:
SI Base Unit
-
-
-
Since:
-
1.0
-
Version:
-
2.1
-
Author:
-
Jean-Marie Dautelle, Werner Keil, Thodoris Bais
-
See Also:
-
- -
-
-
-
- -
- -
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/Angle.html b/docs/apidocs/javax/measure/quantity/Angle.html deleted file mode 100644 index 35b2f67a..00000000 --- a/docs/apidocs/javax/measure/quantity/Angle.html +++ /dev/null @@ -1,133 +0,0 @@ - - - - -Angle (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - - -
- -
-
- -
- -

Interface Angle

-
-
-
-
All Superinterfaces:
-
Quantity<Angle>
-
-
-
public interface Angle -extends Quantity<Angle>
-
Figure formed by two lines diverging from a common point. The metric system unit for this quantity is "rad" (radian). -
-
-
API Note:
SI Derived Unit with special name and symbol
-
-
-
Since:
-
1.0
-
Version:
-
2.0
-
Author:
-
Jean-Marie Dautelle, Werner Keil
-
See Also:
-
- -
-
-
-
- -
- -
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/Area.html b/docs/apidocs/javax/measure/quantity/Area.html deleted file mode 100644 index c5eefb25..00000000 --- a/docs/apidocs/javax/measure/quantity/Area.html +++ /dev/null @@ -1,133 +0,0 @@ - - - - -Area (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - - -
- -
-
- -
- -

Interface Area

-
-
-
-
All Superinterfaces:
-
Quantity<Area>
-
-
-
public interface Area -extends Quantity<Area>
-
Extent of a planar region or of the surface of a solid measured in square units. The metric system unit for this quantity is "m²" (square metre). -
-
-
API Note:
SI Derived Unit
-
-
-
Since:
-
1.0
-
Version:
-
2.0
-
Author:
-
Jean-Marie Dautelle, Werner Keil
-
See Also:
-
- -
-
-
-
- -
- -
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/CatalyticActivity.html b/docs/apidocs/javax/measure/quantity/CatalyticActivity.html deleted file mode 100644 index 81e0e229..00000000 --- a/docs/apidocs/javax/measure/quantity/CatalyticActivity.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - -CatalyticActivity (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - - -
- -
-
- -
- -

Interface CatalyticActivity

-
-
-
-
All Superinterfaces:
-
Quantity<CatalyticActivity>
-
-
-
public interface CatalyticActivity -extends Quantity<CatalyticActivity>
-
Catalytic activity. The metric system unit for this quantity is "kat" (katal).
-
-
Since:
-
1.0
-
Version:
-
1.0
-
Author:
-
Jean-Marie Dautelle
-
-
-
- -
- -
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/Dimensionless.html b/docs/apidocs/javax/measure/quantity/Dimensionless.html deleted file mode 100644 index efccc0e4..00000000 --- a/docs/apidocs/javax/measure/quantity/Dimensionless.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - -Dimensionless (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - - -
- -
-
- -
- -

Interface Dimensionless

-
-
-
-
All Superinterfaces:
-
Quantity<Dimensionless>
-
-
-
public interface Dimensionless -extends Quantity<Dimensionless>
-
Dimensionless quantity.
-
-
Since:
-
1.0
-
Version:
-
1.0
-
Author:
-
Jean-Marie Dautelle
-
-
-
- -
- -
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/ElectricCapacitance.html b/docs/apidocs/javax/measure/quantity/ElectricCapacitance.html deleted file mode 100644 index cc08e22d..00000000 --- a/docs/apidocs/javax/measure/quantity/ElectricCapacitance.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - -ElectricCapacitance (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - - -
- -
-
- -
- -

Interface ElectricCapacitance

-
-
-
-
All Superinterfaces:
-
Quantity<ElectricCapacitance>
-
-
- -
Electric capacitance. The metric system unit for this quantity is "F" (Farad).
-
-
Since:
-
1.0
-
Version:
-
1.0
-
Author:
-
Jean-Marie Dautelle
-
-
-
- -
- -
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/ElectricCharge.html b/docs/apidocs/javax/measure/quantity/ElectricCharge.html deleted file mode 100644 index 9c3400d4..00000000 --- a/docs/apidocs/javax/measure/quantity/ElectricCharge.html +++ /dev/null @@ -1,127 +0,0 @@ - - - - -ElectricCharge (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - - -
- -
-
- -
- -

Interface ElectricCharge

-
-
-
-
All Superinterfaces:
-
Quantity<ElectricCharge>
-
-
-
public interface ElectricCharge -extends Quantity<ElectricCharge>
-
Electric charge. The metric system unit for this quantity is "C" (Coulomb).
-
-
Since:
-
1.0
-
Version:
-
1.0
-
Author:
-
Jean-Marie Dautelle
-
See Also:
-
- -
-
-
-
- -
- -
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/ElectricConductance.html b/docs/apidocs/javax/measure/quantity/ElectricConductance.html deleted file mode 100644 index 26709aec..00000000 --- a/docs/apidocs/javax/measure/quantity/ElectricConductance.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - -ElectricConductance (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - - -
- -
-
- -
- -

Interface ElectricConductance

-
-
-
-
All Superinterfaces:
-
Quantity<ElectricConductance>
-
-
- -
Electric conductance. The metric system unit for this quantity "S" (Siemens).
-
-
Since:
-
1.0
-
Version:
-
1.0
-
Author:
-
Jean-Marie Dautelle
-
-
-
- -
- -
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/ElectricCurrent.html b/docs/apidocs/javax/measure/quantity/ElectricCurrent.html deleted file mode 100644 index c5c17e90..00000000 --- a/docs/apidocs/javax/measure/quantity/ElectricCurrent.html +++ /dev/null @@ -1,144 +0,0 @@ - - - - -ElectricCurrent (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - - -
- -
-
- -
- -

Interface ElectricCurrent

-
-
-
-
All Superinterfaces:
-
Quantity<ElectricCurrent>
-
-
-
public interface ElectricCurrent -extends Quantity<ElectricCurrent>
-
Amount of electric charge flowing past a specified circuit point per unit time. The metric system unit for this quantity is "A" (Ampere). - - The ampere, symbol A, is the SI unit of electric current. It is defined by taking the - fixed numerical value of the elementary charge e to be 1.602 176 634 × 10⁻¹⁹ when - expressed in the unit C, which is equal to A s, where the second is defined in terms - of ∆νCs. - - This definition implies the exact relation e = 1.602 176 634 × 10⁻¹⁹ A s. Inverting this - relation gives an exact expression for the unit ampere in terms of the defining constants e - and ∆νCs: - - 1 A = (e / 1.602 176 634 × 10⁻¹⁹) s⁻¹ -
-
-
API Note:
SI Base Unit
-
-
-
Since:
-
1.0
-
Version:
-
2.1
-
Author:
-
Jean-Marie Dautelle, Werner Keil, Thodoris Bais
-
See Also:
-
- -
-
-
-
- -
- -
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/ElectricInductance.html b/docs/apidocs/javax/measure/quantity/ElectricInductance.html deleted file mode 100644 index 12bac058..00000000 --- a/docs/apidocs/javax/measure/quantity/ElectricInductance.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - -ElectricInductance (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - - -
- -
-
- -
- -

Interface ElectricInductance

-
-
-
-
All Superinterfaces:
-
Quantity<ElectricInductance>
-
-
- -
Electric inductance. The metric system unit for this quantity is "H" (Henry).
-
-
Since:
-
1.0
-
Version:
-
1.0
-
Author:
-
Jean-Marie Dautelle
-
-
-
- -
- -
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/ElectricPotential.html b/docs/apidocs/javax/measure/quantity/ElectricPotential.html deleted file mode 100644 index 601e5386..00000000 --- a/docs/apidocs/javax/measure/quantity/ElectricPotential.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - -ElectricPotential (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - - -
- -
-
- -
- -

Interface ElectricPotential

-
-
-
-
All Superinterfaces:
-
Quantity<ElectricPotential>
-
-
-
public interface ElectricPotential -extends Quantity<ElectricPotential>
-
Electric potential or electromotive force. The metric system unit for this quantity is "V" (Volt).
-
-
Since:
-
1.0
-
Version:
-
1.0
-
Author:
-
Jean-Marie Dautelle
-
-
-
- -
- -
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/ElectricResistance.html b/docs/apidocs/javax/measure/quantity/ElectricResistance.html deleted file mode 100644 index 1cf3ab7c..00000000 --- a/docs/apidocs/javax/measure/quantity/ElectricResistance.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - -ElectricResistance (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - - -
- -
-
- -
- -

Interface ElectricResistance

-
-
-
-
All Superinterfaces:
-
Quantity<ElectricResistance>
-
-
- -
Electric resistance. The metric system unit for this quantity is "Ohm" (Ω).
-
-
Since:
-
1.0
-
Version:
-
1.0
-
Author:
-
Jean-Marie Dautelle
-
-
-
- -
- -
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/Energy.html b/docs/apidocs/javax/measure/quantity/Energy.html deleted file mode 100644 index d41d8d40..00000000 --- a/docs/apidocs/javax/measure/quantity/Energy.html +++ /dev/null @@ -1,129 +0,0 @@ - - - - -Energy (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - - -
- -
-
- -
- -

Interface Energy

-
-
-
-
All Superinterfaces:
-
Quantity<Energy>
-
-
-
public interface Energy -extends Quantity<Energy>
-
Capacity of a physical system to do work. The metric system unit for this quantity "J" (Joule).
-
-
Since:
-
1.0
-
Version:
-
1.0
-
Author:
-
Jean-Marie Dautelle
-
See Also:
-
- -
-
-
-
- -
- -
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/Force.html b/docs/apidocs/javax/measure/quantity/Force.html deleted file mode 100644 index 69beb126..00000000 --- a/docs/apidocs/javax/measure/quantity/Force.html +++ /dev/null @@ -1,129 +0,0 @@ - - - - -Force (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - - -
- -
-
- -
- -

Interface Force

-
-
-
-
All Superinterfaces:
-
Quantity<Force>
-
-
-
public interface Force -extends Quantity<Force>
-
Quantity that tends to produce an acceleration of a body in the direction of its application. The metric system unit for this quantity is "N" - (Newton).
-
-
Since:
-
1.0
-
Version:
-
1.1
-
Author:
-
Jean-Marie Dautelle
-
See Also:
-
- -
-
-
-
- -
- -
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/Frequency.html b/docs/apidocs/javax/measure/quantity/Frequency.html deleted file mode 100644 index 9545334c..00000000 --- a/docs/apidocs/javax/measure/quantity/Frequency.html +++ /dev/null @@ -1,127 +0,0 @@ - - - - -Frequency (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - - -
- -
-
- -
- -

Interface Frequency

-
-
-
-
All Superinterfaces:
-
Quantity<Frequency>
-
-
-
public interface Frequency -extends Quantity<Frequency>
-
Number of times a specified phenomenon occurs within a specified interval. The metric system unit for this quantity is "Hz" (Hertz).
-
-
Since:
-
1.0
-
Version:
-
1.0
-
Author:
-
Jean-Marie Dautelle
-
See Also:
-
- -
-
-
-
- -
- -
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/Illuminance.html b/docs/apidocs/javax/measure/quantity/Illuminance.html deleted file mode 100644 index 79e09650..00000000 --- a/docs/apidocs/javax/measure/quantity/Illuminance.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - -Illuminance (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - - -
- -
-
- -
- -

Interface Illuminance

-
-
-
-
All Superinterfaces:
-
Quantity<Illuminance>
-
-
-
public interface Illuminance -extends Quantity<Illuminance>
-
Illuminance. The metric system unit for this quantity is "lx" (lux).
-
-
Since:
-
1.0
-
Version:
-
1.0
-
Author:
-
Jean-Marie Dautelle
-
-
-
- -
- -
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/Length.html b/docs/apidocs/javax/measure/quantity/Length.html deleted file mode 100644 index 51e22482..00000000 --- a/docs/apidocs/javax/measure/quantity/Length.html +++ /dev/null @@ -1,147 +0,0 @@ - - - - -Length (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - - -
- -
-
- -
- -

Interface Length

-
-
-
-
All Superinterfaces:
-
Quantity<Length>
-
-
-
public interface Length -extends Quantity<Length>
-
Extent of something along its greatest dimension or the extent of space between two objects or places. - The metric system unit for this quantity is "m" (metre). - - The metre, symbol m, is the SI unit of length. It is defined by taking the fixed - numerical value of the speed of light in vacuum c to be 299 792 458 when expressed - in the unit m s⁻¹, where the second is defined in terms of the caesium frequency - ∆νCs. - - This definition implies the exact relation c = 299 792 458 m s⁻¹. Inverting this relation - gives an exact expression for the metre in terms of the defining constants c and ∆νCs: - - 1 m = (c / 299 792 458)s = 9 192 631 770 c / 299 792 458 ∆νCs ≈ 30.663 319 c / ∆νCs -
-
-
API Note:
SI Base Unit
-
-
-
Since:
-
1.0
-
Version:
-
2.1
-
Author:
-
Jean-Marie Dautelle, Werner Keil, Thodoris Bais
-
See Also:
-
- -
-
-
-
- -
- -
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/LuminousFlux.html b/docs/apidocs/javax/measure/quantity/LuminousFlux.html deleted file mode 100644 index f5e4dae8..00000000 --- a/docs/apidocs/javax/measure/quantity/LuminousFlux.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - -LuminousFlux (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - - -
- -
-
- -
- -

Interface LuminousFlux

-
-
-
-
All Superinterfaces:
-
Quantity<LuminousFlux>
-
-
-
public interface LuminousFlux -extends Quantity<LuminousFlux>
-
Luminous flux. The metric system unit for this quantity is "lm" (lumen).
-
-
Since:
-
1.0
-
Version:
-
1.1
-
Author:
-
Jean-Marie Dautelle
-
-
-
- -
- -
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/LuminousIntensity.html b/docs/apidocs/javax/measure/quantity/LuminousIntensity.html deleted file mode 100644 index 5b5dce9a..00000000 --- a/docs/apidocs/javax/measure/quantity/LuminousIntensity.html +++ /dev/null @@ -1,144 +0,0 @@ - - - - -LuminousIntensity (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - - -
- -
-
- -
- -

Interface LuminousIntensity

-
-
-
-
All Superinterfaces:
-
Quantity<LuminousIntensity>
-
-
-
public interface LuminousIntensity -extends Quantity<LuminousIntensity>
-
Luminous flux density per solid angle as measured in a given direction relative to the emitting source. - The metric system unit for this quantity is "cd" (candela). - - The candela, symbol cd, is the SI unit of luminous intensity in a given direction. It is - defined by taking the fixed numerical value of the luminous efficacy of - monochromatic radiation of frequency 540 × 10¹² Hz, Kcd, to be 683 when expressed - in the unit lm W−1, which is equal to cd sr W⁻¹, or cd sr kg⁻¹ m⁻² s³, where the kilogram, - metre and second are defined in terms of h, c and ∆νCs. - - This definition implies the exact relation Kcd = 683 cd sr kg⁻¹ m⁻² s³ for monochromatic - radiation of frequency ν = 540 × 10¹² Hz. Inverting this relation gives an exact expression - for the candela in terms of the defining constants Kcd, h and ∆νCs: - - 1 cd = (Kcd / 683) kg m² s⁻³ sr⁻¹ -
-
-
API Note:
SI Base Unit
-
-
-
Since:
-
1.0
-
Version:
-
2.1
-
Author:
-
Jean-Marie Dautelle, Werner Keil, Thodoris Bais
-
See Also:
-
- -
-
-
-
- -
- -
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/MagneticFlux.html b/docs/apidocs/javax/measure/quantity/MagneticFlux.html deleted file mode 100644 index 06e10973..00000000 --- a/docs/apidocs/javax/measure/quantity/MagneticFlux.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - -MagneticFlux (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - - -
- -
-
- -
- -

Interface MagneticFlux

-
-
-
-
All Superinterfaces:
-
Quantity<MagneticFlux>
-
-
-
public interface MagneticFlux -extends Quantity<MagneticFlux>
-
Magnetic flux. The metric system unit for this quantity is "Wb" (Weber).
-
-
Since:
-
1.0
-
Version:
-
1.0
-
Author:
-
Jean-Marie Dautelle
-
-
-
- -
- -
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/MagneticFluxDensity.html b/docs/apidocs/javax/measure/quantity/MagneticFluxDensity.html deleted file mode 100644 index 1ad47d8a..00000000 --- a/docs/apidocs/javax/measure/quantity/MagneticFluxDensity.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - -MagneticFluxDensity (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - - -
- -
-
- -
- -

Interface MagneticFluxDensity

-
-
-
-
All Superinterfaces:
-
Quantity<MagneticFluxDensity>
-
-
- -
Magnetic flux density. The metric system unit for this quantity is "T" (Tesla).
-
-
Since:
-
1.0
-
Version:
-
1.0
-
Author:
-
Jean-Marie Dautelle
-
-
-
- -
- -
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/Mass.html b/docs/apidocs/javax/measure/quantity/Mass.html deleted file mode 100644 index 8f19f9da..00000000 --- a/docs/apidocs/javax/measure/quantity/Mass.html +++ /dev/null @@ -1,144 +0,0 @@ - - - - -Mass (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - - -
- -
-
- -
- -

Interface Mass

-
-
-
-
All Superinterfaces:
-
Quantity<Mass>
-
-
-
public interface Mass -extends Quantity<Mass>
-
Measure of the quantity of matter that a body or an object contains. The mass of the body is not dependent on gravity and therefore is different - from but proportional to its weight. The metric system unit for this quantity is "kg" (kilogram). - - The kilogram, symbol kg, is the SI unit of mass. It is defined by taking the fixed - numerical value of the Planck constant h to be 6.626 070 15 × 10⁻³⁴ when expressed - in the unit J s, which is equal to kg m² s−1, where the metre and the second are - defined in terms of c and ∆νCs. - - This definition implies the exact relation h = 6.626 070 15 × 10−34 kg m² s⁻¹. Inverting this - relation gives an exact expression for the kilogram in terms of the three defining constants - h, ∆νCs and c: - - 1 kg = (h / 6.626 070 15 × 10⁻³⁴) m⁻² s -
-
-
API Note:
SI Base Unit
-
-
-
Since:
-
1.0
-
Version:
-
2.0
-
Author:
-
Jean-Marie Dautelle, Werner Keil, Thodoris Bais
-
See Also:
-
- -
-
-
-
- -
- -
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/Power.html b/docs/apidocs/javax/measure/quantity/Power.html deleted file mode 100644 index f3efc98b..00000000 --- a/docs/apidocs/javax/measure/quantity/Power.html +++ /dev/null @@ -1,128 +0,0 @@ - - - - -Power (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - - -
- -
-
- -
- -

Interface Power

-
-
-
-
All Superinterfaces:
-
Quantity<Power>
-
-
-
public interface Power -extends Quantity<Power>
-
Rate at which work is done. The metric system unit for this quantity is "W" (Watt).
-
-
Since:
-
1.0
-
Version:
-
1.0
-
Author:
-
Jean-Marie Dautelle
-
See Also:
-
- -
-
-
-
- -
- -
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/Pressure.html b/docs/apidocs/javax/measure/quantity/Pressure.html deleted file mode 100644 index e04e6308..00000000 --- a/docs/apidocs/javax/measure/quantity/Pressure.html +++ /dev/null @@ -1,128 +0,0 @@ - - - - -Pressure (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - - -
- -
-
- -
- -

Interface Pressure

-
-
-
-
All Superinterfaces:
-
Quantity<Pressure>
-
-
-
public interface Pressure -extends Quantity<Pressure>
-
Force applied uniformly over a surface. The metric system unit for this quantity is "Pa" (Pascal).
-
-
Since:
-
1.0
-
Version:
-
1.0
-
Author:
-
Jean-Marie Dautelle
-
See Also:
-
- -
-
-
-
- -
- -
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/RadiationDoseAbsorbed.html b/docs/apidocs/javax/measure/quantity/RadiationDoseAbsorbed.html deleted file mode 100644 index 72f30b82..00000000 --- a/docs/apidocs/javax/measure/quantity/RadiationDoseAbsorbed.html +++ /dev/null @@ -1,127 +0,0 @@ - - - - -RadiationDoseAbsorbed (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - - -
- -
-
- -
- -

Interface RadiationDoseAbsorbed

-
-
-
-
All Superinterfaces:
-
Quantity<RadiationDoseAbsorbed>
-
-
- -
Amount of energy deposited per unit of mass. The system unit for this quantity is "Gy" (Gray).
-
-
Since:
-
1.0
-
Version:
-
1.1
-
Author:
-
Jean-Marie Dautelle
-
See Also:
-
- -
-
-
-
- -
- -
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/RadiationDoseEffective.html b/docs/apidocs/javax/measure/quantity/RadiationDoseEffective.html deleted file mode 100644 index 3c19d274..00000000 --- a/docs/apidocs/javax/measure/quantity/RadiationDoseEffective.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - -RadiationDoseEffective (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - - -
- -
-
- -
- -

Interface RadiationDoseEffective

-
-
-
-
All Superinterfaces:
-
Quantity<RadiationDoseEffective>
-
-
- -
Effective (or "equivalent") dose of radiation received by a human or some other living organism. The metric system unit for this quantity is "Sv" - (Sievert).
-
-
Since:
-
1.0
-
Version:
-
1.0
-
Author:
-
Jean-Marie Dautelle
-
-
-
- -
- -
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/Radioactivity.html b/docs/apidocs/javax/measure/quantity/Radioactivity.html deleted file mode 100644 index 0e203247..00000000 --- a/docs/apidocs/javax/measure/quantity/Radioactivity.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - -Radioactivity (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - - -
- -
-
- -
- -

Interface Radioactivity

-
-
-
-
All Superinterfaces:
-
Quantity<Radioactivity>
-
-
-
public interface Radioactivity -extends Quantity<Radioactivity>
-
Radioactive activity. The metric system unit for this quantity is "Bq" (Becquerel).
-
-
Since:
-
1.0
-
Version:
-
1.2
-
Author:
-
Jean-Marie Dautelle, Werner Keil, Martin Desruisseaux
-
-
-
- -
- -
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/SolidAngle.html b/docs/apidocs/javax/measure/quantity/SolidAngle.html deleted file mode 100644 index 4bfa38ff..00000000 --- a/docs/apidocs/javax/measure/quantity/SolidAngle.html +++ /dev/null @@ -1,127 +0,0 @@ - - - - -SolidAngle (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - - -
- -
-
- -
- -

Interface SolidAngle

-
-
-
-
All Superinterfaces:
-
Quantity<SolidAngle>
-
-
-
public interface SolidAngle -extends Quantity<SolidAngle>
-
Angle formed by three or more planes intersecting at a common point. The metric system unit for this quantity is "sr" (steradian).
-
-
Since:
-
1.0
-
Version:
-
1.3
-
Author:
-
Jean-Marie Dautelle, Werner Keil
-
See Also:
-
- -
-
-
-
- -
- -
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/Speed.html b/docs/apidocs/javax/measure/quantity/Speed.html deleted file mode 100644 index 05737d49..00000000 --- a/docs/apidocs/javax/measure/quantity/Speed.html +++ /dev/null @@ -1,135 +0,0 @@ - - - - -Speed (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - - -
- -
-
- -
- -

Interface Speed

-
-
-
-
All Superinterfaces:
-
Quantity<Speed>
-
-
-
public interface Speed -extends Quantity<Speed>
-
Distance traveled divided by the time of travel. The metric system unit for this quantity is "m/s" (metre per second). - -

- Speed is a scalar value, while velocity is a vector. Speed is the magnitude of the velocity vector, or the components of - the velocity vector. -

-
-
Since:
-
1.0
-
Version:
-
1.2
-
Author:
-
Jean-Marie Dautelle, Werner Keil
-
See Also:
-
- -
-
-
-
- -
- -
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/Temperature.html b/docs/apidocs/javax/measure/quantity/Temperature.html deleted file mode 100644 index b1fa540e..00000000 --- a/docs/apidocs/javax/measure/quantity/Temperature.html +++ /dev/null @@ -1,142 +0,0 @@ - - - - -Temperature (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - - -
- -
-
- -
- -

Interface Temperature

-
-
-
-
All Superinterfaces:
-
Quantity<Temperature>
-
-
-
public interface Temperature -extends Quantity<Temperature>
-
Degree of hotness or coldness of a body or an environment. The metric system unit for this quantity is "K" (Kelvin). - - The kelvin, symbol K, is the SI unit of thermodynamic temperature. It is defined by - taking the fixed numerical value of the Boltzmann constant k to be 1.380 649 × 10−²³ - when expressed in the unit J K⁻¹, which is equal to kg m² s⁻² K⁻¹, where the - kilogram, metre and second are defined in terms of h, c and ∆νCs. - - This definition implies the exact relation k = 1.380 649 × 10⁻²³ kg m² s⁻² K⁻¹. Inverting this - relation gives an exact expression for the kelvin in terms of the defining constants k, h and - ∆νCs: - - 1 K = (1.380 649 / k) × 10⁻²³ kg m² s⁻² -
-
-
API Note:
SI Base Unit
-
-
-
Since:
-
1.0
-
Version:
-
2.1
-
Author:
-
Jean-Marie Dautelle, Werner Keil, Thodoris Bais
-
See Also:
-
- -
-
-
-
- -
- -
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/Time.html b/docs/apidocs/javax/measure/quantity/Time.html deleted file mode 100644 index 19310805..00000000 --- a/docs/apidocs/javax/measure/quantity/Time.html +++ /dev/null @@ -1,146 +0,0 @@ - - - - -Time (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - - -
- -
-
- -
- -

Interface Time

-
-
-
-
All Superinterfaces:
-
Quantity<Time>
-
-
-
public interface Time -extends Quantity<Time>
-
Period of existence or persistence. The metric system unit for this quantity is "s" (second). - - The second, symbol s, is the SI unit of time. It is defined by taking the fixed - numerical value of the caesium frequency ∆νCs, the unperturbed ground-state - hyperfine transition frequency of the caesium 133 atom, to be 9 192 631 770 when - expressed in the unit Hz, which is equal to s⁻¹. - - This definition implies the exact relation ∆νCs = 9 192 631 770 Hz. Inverting this relation - gives an expression for the unit second in terms of the defining constant ∆νCs: - - 1 Hz = ∆νCs / 9 192 631 770 or 1 s = 9 192 631 770 / ∆νCs -
-
-
API Note:
SI Base Unit
-
-
-
Since:
-
1.0
-
Version:
-
2.1
-
Author:
-
Werner Keil, Thodoris Bais
-
See Also:
-
- -
-
-
-
- -
- -
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/Volume.html b/docs/apidocs/javax/measure/quantity/Volume.html deleted file mode 100644 index a5cdfead..00000000 --- a/docs/apidocs/javax/measure/quantity/Volume.html +++ /dev/null @@ -1,128 +0,0 @@ - - - - -Volume (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - - -
- -
-
- -
- -

Interface Volume

-
-
-
-
All Superinterfaces:
-
Quantity<Volume>
-
-
-
public interface Volume -extends Quantity<Volume>
-
Amount of space occupied by a three-dimensional object or region of space. The metric system unit for this quantity is "m³" (cubic metre).
-
-
Since:
-
1.0
-
Version:
-
1.3
-
Author:
-
Jean-Marie Dautelle, Werner Keil
-
See Also:
-
- -
-
-
-
- -
- -
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/class-use/Acceleration.html b/docs/apidocs/javax/measure/quantity/class-use/Acceleration.html deleted file mode 100644 index b5879b9f..00000000 --- a/docs/apidocs/javax/measure/quantity/class-use/Acceleration.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.Acceleration (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Uses of Interface
javax.measure.quantity.Acceleration

-
-No usage of javax.measure.quantity.Acceleration
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/class-use/AmountOfSubstance.html b/docs/apidocs/javax/measure/quantity/class-use/AmountOfSubstance.html deleted file mode 100644 index b7bab992..00000000 --- a/docs/apidocs/javax/measure/quantity/class-use/AmountOfSubstance.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.AmountOfSubstance (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Uses of Interface
javax.measure.quantity.AmountOfSubstance

-
-No usage of javax.measure.quantity.AmountOfSubstance
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/class-use/Angle.html b/docs/apidocs/javax/measure/quantity/class-use/Angle.html deleted file mode 100644 index 8d862358..00000000 --- a/docs/apidocs/javax/measure/quantity/class-use/Angle.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.Angle (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Uses of Interface
javax.measure.quantity.Angle

-
-No usage of javax.measure.quantity.Angle
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/class-use/Area.html b/docs/apidocs/javax/measure/quantity/class-use/Area.html deleted file mode 100644 index 2231809b..00000000 --- a/docs/apidocs/javax/measure/quantity/class-use/Area.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.Area (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Uses of Interface
javax.measure.quantity.Area

-
-No usage of javax.measure.quantity.Area
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/class-use/CatalyticActivity.html b/docs/apidocs/javax/measure/quantity/class-use/CatalyticActivity.html deleted file mode 100644 index accc4b4d..00000000 --- a/docs/apidocs/javax/measure/quantity/class-use/CatalyticActivity.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.CatalyticActivity (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Uses of Interface
javax.measure.quantity.CatalyticActivity

-
-No usage of javax.measure.quantity.CatalyticActivity
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/class-use/Dimensionless.html b/docs/apidocs/javax/measure/quantity/class-use/Dimensionless.html deleted file mode 100644 index cbf63607..00000000 --- a/docs/apidocs/javax/measure/quantity/class-use/Dimensionless.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.Dimensionless (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Uses of Interface
javax.measure.quantity.Dimensionless

-
-No usage of javax.measure.quantity.Dimensionless
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/class-use/ElectricCapacitance.html b/docs/apidocs/javax/measure/quantity/class-use/ElectricCapacitance.html deleted file mode 100644 index fef2a91e..00000000 --- a/docs/apidocs/javax/measure/quantity/class-use/ElectricCapacitance.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.ElectricCapacitance (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Uses of Interface
javax.measure.quantity.ElectricCapacitance

-
-No usage of javax.measure.quantity.ElectricCapacitance
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/class-use/ElectricCharge.html b/docs/apidocs/javax/measure/quantity/class-use/ElectricCharge.html deleted file mode 100644 index 216672fe..00000000 --- a/docs/apidocs/javax/measure/quantity/class-use/ElectricCharge.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.ElectricCharge (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Uses of Interface
javax.measure.quantity.ElectricCharge

-
-No usage of javax.measure.quantity.ElectricCharge
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/class-use/ElectricConductance.html b/docs/apidocs/javax/measure/quantity/class-use/ElectricConductance.html deleted file mode 100644 index 8de36dc9..00000000 --- a/docs/apidocs/javax/measure/quantity/class-use/ElectricConductance.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.ElectricConductance (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Uses of Interface
javax.measure.quantity.ElectricConductance

-
-No usage of javax.measure.quantity.ElectricConductance
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/class-use/ElectricCurrent.html b/docs/apidocs/javax/measure/quantity/class-use/ElectricCurrent.html deleted file mode 100644 index 8559157a..00000000 --- a/docs/apidocs/javax/measure/quantity/class-use/ElectricCurrent.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.ElectricCurrent (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Uses of Interface
javax.measure.quantity.ElectricCurrent

-
-No usage of javax.measure.quantity.ElectricCurrent
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/class-use/ElectricInductance.html b/docs/apidocs/javax/measure/quantity/class-use/ElectricInductance.html deleted file mode 100644 index 683cf6ab..00000000 --- a/docs/apidocs/javax/measure/quantity/class-use/ElectricInductance.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.ElectricInductance (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Uses of Interface
javax.measure.quantity.ElectricInductance

-
-No usage of javax.measure.quantity.ElectricInductance
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/class-use/ElectricPotential.html b/docs/apidocs/javax/measure/quantity/class-use/ElectricPotential.html deleted file mode 100644 index 57b5bf8e..00000000 --- a/docs/apidocs/javax/measure/quantity/class-use/ElectricPotential.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.ElectricPotential (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Uses of Interface
javax.measure.quantity.ElectricPotential

-
-No usage of javax.measure.quantity.ElectricPotential
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/class-use/ElectricResistance.html b/docs/apidocs/javax/measure/quantity/class-use/ElectricResistance.html deleted file mode 100644 index 23839848..00000000 --- a/docs/apidocs/javax/measure/quantity/class-use/ElectricResistance.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.ElectricResistance (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Uses of Interface
javax.measure.quantity.ElectricResistance

-
-No usage of javax.measure.quantity.ElectricResistance
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/class-use/Energy.html b/docs/apidocs/javax/measure/quantity/class-use/Energy.html deleted file mode 100644 index fce50881..00000000 --- a/docs/apidocs/javax/measure/quantity/class-use/Energy.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.Energy (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Uses of Interface
javax.measure.quantity.Energy

-
-No usage of javax.measure.quantity.Energy
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/class-use/Force.html b/docs/apidocs/javax/measure/quantity/class-use/Force.html deleted file mode 100644 index c62ac908..00000000 --- a/docs/apidocs/javax/measure/quantity/class-use/Force.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.Force (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Uses of Interface
javax.measure.quantity.Force

-
-No usage of javax.measure.quantity.Force
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/class-use/Frequency.html b/docs/apidocs/javax/measure/quantity/class-use/Frequency.html deleted file mode 100644 index 6194dc4a..00000000 --- a/docs/apidocs/javax/measure/quantity/class-use/Frequency.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.Frequency (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Uses of Interface
javax.measure.quantity.Frequency

-
-No usage of javax.measure.quantity.Frequency
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/class-use/Illuminance.html b/docs/apidocs/javax/measure/quantity/class-use/Illuminance.html deleted file mode 100644 index 74d52438..00000000 --- a/docs/apidocs/javax/measure/quantity/class-use/Illuminance.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.Illuminance (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Uses of Interface
javax.measure.quantity.Illuminance

-
-No usage of javax.measure.quantity.Illuminance
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/class-use/Length.html b/docs/apidocs/javax/measure/quantity/class-use/Length.html deleted file mode 100644 index 77dd6d04..00000000 --- a/docs/apidocs/javax/measure/quantity/class-use/Length.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.Length (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Uses of Interface
javax.measure.quantity.Length

-
-No usage of javax.measure.quantity.Length
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/class-use/LuminousFlux.html b/docs/apidocs/javax/measure/quantity/class-use/LuminousFlux.html deleted file mode 100644 index 60de7426..00000000 --- a/docs/apidocs/javax/measure/quantity/class-use/LuminousFlux.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.LuminousFlux (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Uses of Interface
javax.measure.quantity.LuminousFlux

-
-No usage of javax.measure.quantity.LuminousFlux
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/class-use/LuminousIntensity.html b/docs/apidocs/javax/measure/quantity/class-use/LuminousIntensity.html deleted file mode 100644 index d0a2dcfe..00000000 --- a/docs/apidocs/javax/measure/quantity/class-use/LuminousIntensity.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.LuminousIntensity (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Uses of Interface
javax.measure.quantity.LuminousIntensity

-
-No usage of javax.measure.quantity.LuminousIntensity
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/class-use/MagneticFlux.html b/docs/apidocs/javax/measure/quantity/class-use/MagneticFlux.html deleted file mode 100644 index 38836610..00000000 --- a/docs/apidocs/javax/measure/quantity/class-use/MagneticFlux.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.MagneticFlux (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Uses of Interface
javax.measure.quantity.MagneticFlux

-
-No usage of javax.measure.quantity.MagneticFlux
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/class-use/MagneticFluxDensity.html b/docs/apidocs/javax/measure/quantity/class-use/MagneticFluxDensity.html deleted file mode 100644 index 3abe4a9a..00000000 --- a/docs/apidocs/javax/measure/quantity/class-use/MagneticFluxDensity.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.MagneticFluxDensity (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Uses of Interface
javax.measure.quantity.MagneticFluxDensity

-
-No usage of javax.measure.quantity.MagneticFluxDensity
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/class-use/Mass.html b/docs/apidocs/javax/measure/quantity/class-use/Mass.html deleted file mode 100644 index cfc2beac..00000000 --- a/docs/apidocs/javax/measure/quantity/class-use/Mass.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.Mass (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Uses of Interface
javax.measure.quantity.Mass

-
-No usage of javax.measure.quantity.Mass
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/class-use/Power.html b/docs/apidocs/javax/measure/quantity/class-use/Power.html deleted file mode 100644 index ca2a3a32..00000000 --- a/docs/apidocs/javax/measure/quantity/class-use/Power.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.Power (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Uses of Interface
javax.measure.quantity.Power

-
-No usage of javax.measure.quantity.Power
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/class-use/Pressure.html b/docs/apidocs/javax/measure/quantity/class-use/Pressure.html deleted file mode 100644 index ae51da97..00000000 --- a/docs/apidocs/javax/measure/quantity/class-use/Pressure.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.Pressure (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Uses of Interface
javax.measure.quantity.Pressure

-
-No usage of javax.measure.quantity.Pressure
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/class-use/RadiationDoseAbsorbed.html b/docs/apidocs/javax/measure/quantity/class-use/RadiationDoseAbsorbed.html deleted file mode 100644 index c1a652ba..00000000 --- a/docs/apidocs/javax/measure/quantity/class-use/RadiationDoseAbsorbed.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.RadiationDoseAbsorbed (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Uses of Interface
javax.measure.quantity.RadiationDoseAbsorbed

-
-No usage of javax.measure.quantity.RadiationDoseAbsorbed
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/class-use/RadiationDoseEffective.html b/docs/apidocs/javax/measure/quantity/class-use/RadiationDoseEffective.html deleted file mode 100644 index 50f28450..00000000 --- a/docs/apidocs/javax/measure/quantity/class-use/RadiationDoseEffective.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.RadiationDoseEffective (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Uses of Interface
javax.measure.quantity.RadiationDoseEffective

-
-No usage of javax.measure.quantity.RadiationDoseEffective
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/class-use/Radioactivity.html b/docs/apidocs/javax/measure/quantity/class-use/Radioactivity.html deleted file mode 100644 index 024c7a69..00000000 --- a/docs/apidocs/javax/measure/quantity/class-use/Radioactivity.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.Radioactivity (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Uses of Interface
javax.measure.quantity.Radioactivity

-
-No usage of javax.measure.quantity.Radioactivity
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/class-use/SolidAngle.html b/docs/apidocs/javax/measure/quantity/class-use/SolidAngle.html deleted file mode 100644 index d394e84c..00000000 --- a/docs/apidocs/javax/measure/quantity/class-use/SolidAngle.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.SolidAngle (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Uses of Interface
javax.measure.quantity.SolidAngle

-
-No usage of javax.measure.quantity.SolidAngle
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/class-use/Speed.html b/docs/apidocs/javax/measure/quantity/class-use/Speed.html deleted file mode 100644 index 46f298db..00000000 --- a/docs/apidocs/javax/measure/quantity/class-use/Speed.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.Speed (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Uses of Interface
javax.measure.quantity.Speed

-
-No usage of javax.measure.quantity.Speed
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/class-use/Temperature.html b/docs/apidocs/javax/measure/quantity/class-use/Temperature.html deleted file mode 100644 index 759b2f7c..00000000 --- a/docs/apidocs/javax/measure/quantity/class-use/Temperature.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.Temperature (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Uses of Interface
javax.measure.quantity.Temperature

-
-No usage of javax.measure.quantity.Temperature
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/class-use/Time.html b/docs/apidocs/javax/measure/quantity/class-use/Time.html deleted file mode 100644 index af757783..00000000 --- a/docs/apidocs/javax/measure/quantity/class-use/Time.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.Time (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Uses of Interface
javax.measure.quantity.Time

-
-No usage of javax.measure.quantity.Time
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/class-use/Volume.html b/docs/apidocs/javax/measure/quantity/class-use/Volume.html deleted file mode 100644 index c29abaf6..00000000 --- a/docs/apidocs/javax/measure/quantity/class-use/Volume.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.Volume (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Uses of Interface
javax.measure.quantity.Volume

-
-No usage of javax.measure.quantity.Volume
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/package-summary.html b/docs/apidocs/javax/measure/quantity/package-summary.html deleted file mode 100644 index 048a07c6..00000000 --- a/docs/apidocs/javax/measure/quantity/package-summary.html +++ /dev/null @@ -1,291 +0,0 @@ - - - - -javax.measure.quantity (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - - -
- -
-
-
-

Package javax.measure.quantity

-
-
-
package javax.measure.quantity
-
-
[OPTIONAL] Provides quantitative properties or attributes of thing such as - mass, time, distance, heat, and angular separation. - Quantities of different kinds are represented by sub-types of the - Quantity interface. - -

Only quantities defined in the BIPM - SI Brochure - are provided here. Users can create their own quantity types by extending the - Quantity interface.

- -

This package supports measurable quantities, which can be expressed - as (Number, Unit) tuples. - Those tuples are not necessarily used directly in numerically intensive code. - They are more useful as meta-data converted to the application internal representation - (for example double primitive type with the requirement to provide values in meters) - before computation begins.

- -

Quantity sub-types are also used as parameterized type to characterize - generic classes and provide additional compile time check. This technique is - used extensively by the Unit interface, - but users can apply the same approach to their own classes. In the example - below, Sensor, MyQuantity and Vector3D are user-defined - classes:

- - - // A general-purpose Sensor class used for temperature measurements:
- Sensor<Temperature> sensor ...;
- Temperature temp = sensor.getValue();

- - // A vector of velocity in a three-dimensional space.
- Unit<Speed> = metrePerSecond = METRE.divide(SECOND);
- Vector3D<Speed> aircraftSpeed = new Vector3D(200.0, 50.0, -0.5, metrePerSecond); -
- -

This package holds only the quantities required by the metric system.

-
-
Since:
-
1.0
-
Version:
-
2.8
-
Author:
-
Jean-Marie Dautelle, Werner Keil
-
See Also:
-
- -
-
-
-
-
    -
  • - -
  • -
  • -
    -
    Interfaces
    -
    -
    Class
    -
    Description
    - -
    -
    Rate of change of velocity with respect to time.
    -
    - -
    -
    Number of elementary entities (molecules, for example) of a substance.
    -
    - -
    -
    Figure formed by two lines diverging from a common point.
    -
    - -
    -
    Extent of a planar region or of the surface of a solid measured in square units.
    -
    - -
    -
    Catalytic activity.
    -
    - -
    -
    Dimensionless quantity.
    -
    - -
    -
    Electric capacitance.
    -
    - -
    -
    Electric charge.
    -
    - -
    -
    Electric conductance.
    -
    - -
    -
    Amount of electric charge flowing past a specified circuit point per unit time.
    -
    - -
    -
    Electric inductance.
    -
    - -
    -
    Electric potential or electromotive force.
    -
    - -
    -
    Electric resistance.
    -
    - -
    -
    Capacity of a physical system to do work.
    -
    - -
    -
    Quantity that tends to produce an acceleration of a body in the direction of its application.
    -
    - -
    -
    Number of times a specified phenomenon occurs within a specified interval.
    -
    - -
    -
    Illuminance.
    -
    - -
    -
    Extent of something along its greatest dimension or the extent of space between two objects or places.
    -
    - -
    -
    Luminous flux.
    -
    - -
    -
    Luminous flux density per solid angle as measured in a given direction relative to the emitting source.
    -
    - -
    -
    Magnetic flux.
    -
    - -
    -
    Magnetic flux density.
    -
    - -
    -
    Measure of the quantity of matter that a body or an object contains.
    -
    - -
    -
    Rate at which work is done.
    -
    - -
    -
    Force applied uniformly over a surface.
    -
    - -
    -
    Amount of energy deposited per unit of mass.
    -
    - -
    -
    Effective (or "equivalent") dose of radiation received by a human or some other living organism.
    -
    - -
    -
    Radioactive activity.
    -
    - -
    -
    Angle formed by three or more planes intersecting at a common point.
    -
    - -
    -
    Distance traveled divided by the time of travel.
    -
    - -
    -
    Degree of hotness or coldness of a body or an environment.
    -
    - -
    -
    Period of existence or persistence.
    -
    - -
    -
    Amount of space occupied by a three-dimensional object or region of space.
    -
    -
    -
    -
  • -
-
-
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/package-tree.html b/docs/apidocs/javax/measure/quantity/package-tree.html deleted file mode 100644 index 8d36f905..00000000 --- a/docs/apidocs/javax/measure/quantity/package-tree.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - -javax.measure.quantity Class Hierarchy (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Hierarchy For Package javax.measure.quantity

-Package Hierarchies: - -
-
-

Interface Hierarchy

- -
-
- -
-
- - diff --git a/docs/apidocs/javax/measure/quantity/package-use.html b/docs/apidocs/javax/measure/quantity/package-use.html deleted file mode 100644 index bca41e45..00000000 --- a/docs/apidocs/javax/measure/quantity/package-use.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Package javax.measure.quantity (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Uses of Package
javax.measure.quantity

-
-No usage of javax.measure.quantity
- -
-
- - diff --git a/docs/apidocs/javax/measure/spi/FormatService.FormatType.html b/docs/apidocs/javax/measure/spi/FormatService.FormatType.html deleted file mode 100644 index c74b4fe9..00000000 --- a/docs/apidocs/javax/measure/spi/FormatService.FormatType.html +++ /dev/null @@ -1,236 +0,0 @@ - - - - -FormatService.FormatType (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - - - - -
- -
-
- -
- -

Enum FormatService.FormatType

-
-
java.lang.Object -
java.lang.Enum<FormatService.FormatType> -
javax.measure.spi.FormatService.FormatType
-
-
-
-
-
All Implemented Interfaces:
-
Serializable, Comparable<FormatService.FormatType>, java.lang.constant.Constable
-
-
-
Enclosing interface:
-
FormatService
-
-
- -
The type of format, either a UnitFormat or QuantityFormat
-
-
- -
-
-
    - -
  • -
    -

    Enum Constant Details

    - -
    -
  • - -
  • -
    -

    Method Details

    -
      -
    • -
      -

      values

      -
      public static FormatService.FormatType[] values()
      -
      Returns an array containing the constants of this enum type, in -the order they are declared.
      -
      -
      Returns:
      -
      an array containing the constants of this enum type, in the order they are declared
      -
      -
      -
    • -
    • -
      -

      valueOf

      -
      public static FormatService.FormatType valueOf(String name)
      -
      Returns the enum constant of this type with the specified name. -The string must match exactly an identifier used to declare an -enum constant in this type. (Extraneous whitespace characters are -not permitted.)
      -
      -
      Parameters:
      -
      name - the name of the enum constant to be returned.
      -
      Returns:
      -
      the enum constant with the specified name
      -
      Throws:
      -
      IllegalArgumentException - if this enum type has no constant with the specified name
      -
      NullPointerException - if the argument is null
      -
      -
      -
    • -
    -
    -
  • -
-
- -
- -
-
- - diff --git a/docs/apidocs/javax/measure/spi/FormatService.html b/docs/apidocs/javax/measure/spi/FormatService.html deleted file mode 100644 index 8990a6ed..00000000 --- a/docs/apidocs/javax/measure/spi/FormatService.html +++ /dev/null @@ -1,273 +0,0 @@ - - - - -FormatService (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - - - - - -
- -
-
- -
- -

Interface FormatService

-
-
-
-
public interface FormatService
-
This interface represents the service to obtain instances of UnitFormat and QuantityFormat.
-
-
Since:
-
2.0
-
Version:
-
2.3, May 20, 2023
-
Author:
-
Werner Keil
-
-
-
- -
-
-
    - -
  • -
    -

    Method Details

    -
      -
    • -
      -

      getQuantityFormat

      - -
      Returns the default quantity format. - - It is up to implementations what to consider a suitable default. For some (locale-sensitive) implementations it may be a quantity format based on - Locale.current() while others may return getQuantityFormat("Simple") or getQuantityFormat("ISO").
      -
      -
      Returns:
      -
      the default QuantityFormat implementation.
      -
      -
      -
    • -
    • -
      -

      getQuantityFormat

      - -
      Returns the quantity format having the specified name or null if none. - - For example (@code getQuantityFormat("Simple")} to return the simple QuantityFormat implementation.
      -
      -
      Parameters:
      -
      name - the name of the format.
      -
      Returns:
      -
      the corresponding quantity format.
      -
      -
      -
    • -
    • -
      -

      getUnitFormat

      - -
      Returns the default unit format. - - It is up to implementations what to consider a suitable default. For some (locale-sensitive) implementations it may be a unit format based on - Locale.current() while others may return getUnitFormat("Simple") or getUnitFormat("ISO").
      -
      -
      Returns:
      -
      the default UnitFormat implementation.
      -
      -
      -
    • -
    • -
      -

      getUnitFormat

      - -
      Returns the unit format having the specified name or null if none. - - For example getUnitFormat("Simple") to return a simple UnitFormat implementation.
      -
      -
      Parameters:
      -
      name - the name of the format.
      -
      Returns:
      -
      the corresponding unit format.
      -
      -
      -
    • -
    • -
      -

      getUnitFormat

      - -
      Returns the unit format having the specified name or null if none. - - For example getUnitFormat("Simple") to return a simple UnitFormat implementation.
      - The variant is an arbitrary value to allow a variation of a UnitFormat, - for example UTF vs. ASCII encoding of the simple UnitFormat - or case sensitive vs. case insensitive UCUM format. -

      If no variant is applicable, the UnitFormat matching the name only is returned.

      -
      -
      Parameters:
      -
      name - the name of the format.
      -
      variant - any arbitrary value used to indicate a variation of a UnitFormat.
      -
      Returns:
      -
      the corresponding unit format.
      -
      -
      -
    • -
    • -
      -

      getAvailableFormatNames

      - -
      Gets a list with available format names of a given type for this format service.
      -
      -
      Parameters:
      -
      type - the FormatService.FormatType
      -
      Returns:
      -
      list of available formats, never null.
      -
      -
      -
    • -
    -
    -
  • -
-
- -
- -
-
- - diff --git a/docs/apidocs/javax/measure/spi/QuantityFactory.html b/docs/apidocs/javax/measure/spi/QuantityFactory.html deleted file mode 100644 index 4abe3cf1..00000000 --- a/docs/apidocs/javax/measure/spi/QuantityFactory.html +++ /dev/null @@ -1,224 +0,0 @@ - - - - -QuantityFactory (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - - - - -
- -
-
- -
- -

Interface QuantityFactory<Q extends Quantity<Q>>

-
-
-
-
Type Parameters:
-
Q - the type of the Quantity result
-
-
-
public interface QuantityFactory<Q extends Quantity<Q>>
-
Represents a factory that accepts Number and Unit arguments to create Quantity results.
-
-
Since:
-
1.0
-
Version:
-
1.4, December 18, 2018
-
Author:
-
Werner Keil, Otavio Santana
-
See Also:
-
- -
-
-
-
-
    - -
  • -
    -

    Method Summary

    -
    -
    -
    -
    -
    Modifier and Type
    -
    Method
    -
    Description
    - -
    create(Number value, - Unit<Q> unit)
    -
    -
    Returns the quantity for the specified number stated in the specified unit.
    -
    - -
    create(Number value, - Unit<Q> unit, - Quantity.Scale scale)
    -
    -
    Returns the quantity for the specified number stated in the specified unit and scale.
    -
    - - -
    -
    Returns the system unit for quantities produced by this factory or null if unknown.
    -
    -
    -
    -
    -
    -
  • -
-
-
-
    - -
  • -
    -

    Method Details

    -
      -
    • -
      -

      create

      -
      Quantity<Q> create(Number value, - Unit<Q> unit, - Quantity.Scale scale)
      -
      Returns the quantity for the specified number stated in the specified unit and scale.
      -
      -
      Parameters:
      -
      value - the numeric value stated in the specified unit
      -
      unit - the unit
      -
      scale - The ABSOLUTE / RELATIVE scale of this quantity
      -
      Returns:
      -
      the corresponding quantity
      -
      Since:
      -
      2.0
      -
      -
      -
    • -
    • -
      -

      create

      -
      Quantity<Q> create(Number value, - Unit<Q> unit)
      -
      Returns the quantity for the specified number stated in the specified unit.
      -
      -
      Parameters:
      -
      value - the numeric value stated in the specified unit
      -
      unit - the unit
      -
      Returns:
      -
      the corresponding quantity
      -
      -
      -
    • -
    • -
      -

      getSystemUnit

      - -
      Returns the system unit for quantities produced by this factory or null if unknown. - -

      - Because the system unit is unique by quantity type, it can be be used to identify the quantity given the unit. For example: -

      - -
      -     static boolean isAngularSpeed(Unit<?> unit) {
      -         return unit.getSystemUnit().equals(RADIAN.divide(SECOND));
      -     }
      -     assert isAngularSpeed(REVOLUTION.divide(MINUTE)); // Returns true.
      - 
      -
      -
      Returns:
      -
      the system unit for this factory.
      -
      See Also:
      -
      - -
      -
      -
      -
    • -
    -
    -
  • -
-
- -
- -
-
- - diff --git a/docs/apidocs/javax/measure/spi/ServiceProvider.html b/docs/apidocs/javax/measure/spi/ServiceProvider.html deleted file mode 100644 index cc7c75f3..00000000 --- a/docs/apidocs/javax/measure/spi/ServiceProvider.html +++ /dev/null @@ -1,363 +0,0 @@ - - - - -ServiceProvider (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - - - - - - - - - - -
- -
-
- -
- -

Class ServiceProvider

-
-
java.lang.Object -
javax.measure.spi.ServiceProvider
-
-
-
-
public abstract class ServiceProvider -extends Object
-
Service Provider for Units of Measurement services. -

- All the methods in this class are safe to use by multiple concurrent threads. -

-
-
Since:
-
1.0
-
Version:
-
2.3, May 19, 2023
-
Author:
-
Werner Keil, Martin Desruisseaux
-
-
-
- -
-
-
    - -
  • -
    -

    Constructor Details

    -
      -
    • -
      -

      ServiceProvider

      -
      protected ServiceProvider()
      -
      Creates a new service provider. Only to be used by subclasses.
      -
      -
    • -
    -
    -
  • - -
  • -
    -

    Method Details

    -
      -
    • -
      -

      getPriority

      -
      public int getPriority()
      -
      Allows to define a priority for a registered ServiceProvider instance. - When multiple providers are registered in the system, the provider with the highest priority value is taken. - -

      If the "jakarta.annotation.Priority" annotation (from Jakarta Annotations) - or "javax.annotation.Priority" annotation (from JSR-250) is present on the ServiceProvider - implementation class, then that annotation (first if both were present) is taken and this getPriority() method is ignored. - Otherwise – if a Priority annotation is absent – this method is used as a fallback.

      -
      -
      Returns:
      -
      the provider's priority (default is 0).
      -
      -
      -
    • -
    • -
      -

      getSystemOfUnitsService

      - -
      Returns the service to obtain a SystemOfUnits, or null if none.
      -
      -
      Returns:
      -
      the service to obtain a SystemOfUnits, or null.
      -
      -
      -
    • -
    • -
      -

      getFormatService

      -
      public abstract FormatService getFormatService()
      -
      Returns the service to obtain UnitFormat and QuantityFormat or null if none.
      -
      -
      Returns:
      -
      the service to obtain a UnitFormat and QuantityFormat, or null.
      -
      Since:
      -
      2.0
      -
      -
      -
    • -
    • -
      -

      getQuantityFactory

      -
      public abstract <Q extends Quantity<Q>> -QuantityFactory<Q> getQuantityFactory(Class<Q> quantity)
      -
      Returns a factory for the given Quantity type.
      -
      -
      Type Parameters:
      -
      Q - the type of the Quantity instances created by the factory
      -
      Parameters:
      -
      quantity - the quantity type
      -
      Returns:
      -
      the QuantityFactory for the given type
      -
      -
      -
    • -
    • -
      -

      available

      -
      public static final List<ServiceProvider> available()
      -
      Returns the list of all service providers available for the current thread's context class loader. - The current service provider is always the first item in the returned list. - Other service providers after the first item may depend on the caller thread - (see service loader API note).
      -
      -
      Returns:
      -
      all service providers available for the current thread's context class loader.
      -
      -
      -
    • -
    • -
      -

      of

      -
      public static ServiceProvider of(String name)
      -
      Returns the ServiceProvider with the specified name. - The given name must match the name of at least one service provider available in the current thread's - context class loader. - The service provider names are the values of "jakarta.inject.Named" (from Jakarta Annotations) or - "javax.inject.Named" (from JSR-330) annotations when present (first if both were present), - or the value of Object.toString() method for providers without Named annotation. - -

      Implementors are encouraged to provide an Named annotation or to override Object.toString() - and use a unique enough name, e.g. the class name or other distinct attributes. - Should multiple service providers nevertheless use the same name, the one with the highest - priority wins.

      -
      -
      Parameters:
      -
      name - the name of the service provider to return
      -
      Returns:
      -
      the ServiceProvider with the specified name
      -
      Throws:
      -
      IllegalArgumentException - if available service providers do not contain a provider with the specified name
      -
      NullPointerException - if name is null
      -
      Since:
      -
      2.0
      -
      See Also:
      -
      - -
      -
      -
      -
    • -
    • -
      -

      current

      -
      public static final ServiceProvider current()
      -
      Returns the current ServiceProvider. If necessary the ServiceProvider will be lazily loaded. -

      - If there are no providers available, an IllegalStateException is thrown. - Otherwise the provider with the highest priority is used - or the one explicitly designated via setCurrent(ServiceProvider). -

      -
      -
      Returns:
      -
      the ServiceProvider used.
      -
      Throws:
      -
      IllegalStateException - if no ServiceProvider has been found.
      -
      See Also:
      -
      - -
      -
      -
      -
    • -
    • -
      -

      setCurrent

      -
      public static final ServiceProvider setCurrent(ServiceProvider provider)
      -
      Replaces the current ServiceProvider.
      -
      -
      Parameters:
      -
      provider - the new ServiceProvider
      -
      Returns:
      -
      the replaced provider, or null.
      -
      -
      -
    • -
    -
    -
  • -
-
- -
- -
-
- - diff --git a/docs/apidocs/javax/measure/spi/SystemOfUnits.html b/docs/apidocs/javax/measure/spi/SystemOfUnits.html deleted file mode 100644 index badf75da..00000000 --- a/docs/apidocs/javax/measure/spi/SystemOfUnits.html +++ /dev/null @@ -1,231 +0,0 @@ - - - - -SystemOfUnits (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - - - - - -
- -
-
- -
- -

Interface SystemOfUnits

-
-
-
-
public interface SystemOfUnits
-
A system of units grouped together for historical or cultural reasons.
- Common system of units are "SI" (System International), "Imperial" (British), "US" (US Customary). Nothing prevents a unit from belonging to - several systems of units at the same time (for example an Imperial system would have many of the units held by the US Customary - system).
-
-
Since:
-
1.0
-
Version:
-
1.1, June 21, 2018
-
Author:
-
Jean-Marie Dautelle, Werner Keil
-
See Also:
-
- -
-
-
-
-
    - -
  • -
    -

    Method Summary

    -
    -
    -
    -
    -
    Modifier and Type
    -
    Method
    -
    Description
    - - -
     
    -
    <Q extends Quantity<Q>>
    Unit<Q>
    -
    getUnit(Class<Q> quantityType)
    -
    -
    Returns the default unit for the specified quantity or null if none is defined for the given quantity in this unit system.
    -
    -
    Unit<?>
    -
    getUnit(String string)
    -
    -
    Returns a unit with the given string representation or null if none is found in this unit system.
    -
    -
    Set<? extends Unit<?>>
    - -
    -
    Returns a read only view over the units explicitly defined by this system.
    -
    -
    Set<? extends Unit<?>>
    -
    getUnits(Dimension dimension)
    -
    -
    Returns the units defined in this system having the specified dimension (convenience method).
    -
    -
    -
    -
    -
    -
  • -
-
-
-
    - -
  • -
    -

    Method Details

    -
      -
    • -
      -

      getName

      - -
      -
      Returns:
      -
      a name
      -
      -
      -
    • -
    • -
      -

      getUnit

      -
      <Q extends Quantity<Q>> Unit<Q> getUnit(Class<Q> quantityType)
      -
      Returns the default unit for the specified quantity or null if none is defined for the given quantity in this unit system.
      -
      -
      Type Parameters:
      -
      Q - the compile-time quantity type.
      -
      Parameters:
      -
      quantityType - the quantity type.
      -
      Returns:
      -
      the unit for the specified quantity.
      -
      -
      -
    • -
    • -
      -

      getUnit

      -
      Unit<?> getUnit(String string)
      -
      Returns a unit with the given string representation or null if none is found in this unit system.
      -
      -
      Parameters:
      -
      string - the string representation of a unit, not null.
      -
      Returns:
      -
      the unit with the given string representation.
      -
      Since:
      -
      2.0
      -
      -
      -
    • -
    • -
      -

      getUnits

      -
      Set<? extends Unit<?>> getUnits()
      -
      Returns a read only view over the units explicitly defined by this system. This include the base and derived units which are assigned a special - name and symbol. This set does not include new units created by arithmetic or other operations.
      -
      -
      Returns:
      -
      the defined collection of units.
      -
      -
      -
    • -
    • -
      -

      getUnits

      -
      Set<? extends Unit<?>> getUnits(Dimension dimension)
      -
      Returns the units defined in this system having the specified dimension (convenience method).
      -
      -
      Parameters:
      -
      dimension - the dimension of the units to be returned.
      -
      Returns:
      -
      the collection of units of specified dimension.
      -
      -
      -
    • -
    -
    -
  • -
-
- -
- -
-
- - diff --git a/docs/apidocs/javax/measure/spi/SystemOfUnitsService.html b/docs/apidocs/javax/measure/spi/SystemOfUnitsService.html deleted file mode 100644 index 61ffe161..00000000 --- a/docs/apidocs/javax/measure/spi/SystemOfUnitsService.html +++ /dev/null @@ -1,242 +0,0 @@ - - - - -SystemOfUnitsService (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - - - - - -
- -
-
- -
- -

Interface SystemOfUnitsService

-
-
-
-
public interface SystemOfUnitsService
-
This interface represents the service to obtain a system - of units. - -

- Common systems of units are "SI" (System International) or Metric system, - "Imperial" (British), or "US" (US Customary). -

-
-
Since:
-
1.0
-
Version:
-
1.8, April 3, 2023
-
Author:
-
Jean-Marie Dautelle, Werner Keil, Martin - Desruisseaux
-
See Also:
-
- -
-
-
-
- -
-
-
    - -
  • -
    -

    Method Details

    -
      -
    • -
      -

      getSystemOfUnits

      - -
      Returns the default system of units. Depending on the - implementation this may be the International - System of Units or another default system.
      -
      -
      Returns:
      -
      the default system of units.
      -
      -
      -
    • -
    • -
      -

      getSystemOfUnits

      - -
      Returns the system of units having the specified name or null if - none is found.
      -
      -
      Parameters:
      -
      name - the system of unit name.
      -
      Returns:
      -
      the system of units for the given name.
      -
      -
      -
    • -
    • -
      -

      getAvailableSystemsOfUnits

      - -
      Gets a list with available systems for this SystemOfUnitsService.
      -
      -
      Returns:
      -
      list of available systems of units, never null.
      -
      -
      -
    • -
    • -
      -

      getPrefixes

      -
      default <P extends Prefix> Set<P> getPrefixes(Class<P> prefixType)
      -
      Returns a Set containing the values of a particular Prefix - type. - -

      - This method may be used to iterate over certain prefixes as follows: -

      -
      
      -    for(MetricPrefix mp : service.getPrefixes(MetricPrefix.class))
      -        System.out.println(p);
      - 
      - - The default implementation assumes that prefixes of the given type are implemented as an enumeration. - This is the case of the two default prefix implementations provided in JSR 385, - namely MetricPrefix and BinaryPrefix. - Implementors shall override this method if they provide prefixes implemented in a different way.
      -
      -
      Type Parameters:
      -
      P - compile-time value of the prefixType argument
      -
      Parameters:
      -
      prefixType - the Prefix type
      -
      Returns:
      -
      a set containing the constant values of this Prefix type, in the - order they're declared
      -
      Throws:
      -
      ClassCastException - if the class is not compatible with the desired - Prefix implementation or does not implement Prefix at all.
      -
      Since:
      -
      2.0
      -
      -
      -
    • -
    -
    -
  • -
-
- -
- -
-
- - diff --git a/docs/apidocs/javax/measure/spi/class-use/FormatService.FormatType.html b/docs/apidocs/javax/measure/spi/class-use/FormatService.FormatType.html deleted file mode 100644 index b749036f..00000000 --- a/docs/apidocs/javax/measure/spi/class-use/FormatService.FormatType.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - -Uses of Enum javax.measure.spi.FormatService.FormatType (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Uses of Enum
javax.measure.spi.FormatService.FormatType

-
-
Packages that use FormatService.FormatType
-
-
Package
-
Description
- -
-
[OPTIONAL] The Units of Measurement SPI.
-
-
-
- -
-
- -
-
- - diff --git a/docs/apidocs/javax/measure/spi/class-use/FormatService.html b/docs/apidocs/javax/measure/spi/class-use/FormatService.html deleted file mode 100644 index 72ece6e8..00000000 --- a/docs/apidocs/javax/measure/spi/class-use/FormatService.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - -Uses of Interface javax.measure.spi.FormatService (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Uses of Interface
javax.measure.spi.FormatService

-
-
Packages that use FormatService
-
-
Package
-
Description
- -
-
[OPTIONAL] The Units of Measurement SPI.
-
-
-
- -
-
- -
-
- - diff --git a/docs/apidocs/javax/measure/spi/class-use/QuantityFactory.html b/docs/apidocs/javax/measure/spi/class-use/QuantityFactory.html deleted file mode 100644 index 7211017a..00000000 --- a/docs/apidocs/javax/measure/spi/class-use/QuantityFactory.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - -Uses of Interface javax.measure.spi.QuantityFactory (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Uses of Interface
javax.measure.spi.QuantityFactory

-
-
Packages that use QuantityFactory
-
-
Package
-
Description
- -
-
[OPTIONAL] The Units of Measurement SPI.
-
-
-
- -
-
- -
-
- - diff --git a/docs/apidocs/javax/measure/spi/class-use/ServiceProvider.html b/docs/apidocs/javax/measure/spi/class-use/ServiceProvider.html deleted file mode 100644 index 741355e7..00000000 --- a/docs/apidocs/javax/measure/spi/class-use/ServiceProvider.html +++ /dev/null @@ -1,123 +0,0 @@ - - - - -Uses of Class javax.measure.spi.ServiceProvider (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Uses of Class
javax.measure.spi.ServiceProvider

-
-
Packages that use ServiceProvider
-
-
Package
-
Description
- -
-
[OPTIONAL] The Units of Measurement SPI.
-
-
-
- -
-
- -
-
- - diff --git a/docs/apidocs/javax/measure/spi/class-use/SystemOfUnits.html b/docs/apidocs/javax/measure/spi/class-use/SystemOfUnits.html deleted file mode 100644 index 45eb7474..00000000 --- a/docs/apidocs/javax/measure/spi/class-use/SystemOfUnits.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - -Uses of Interface javax.measure.spi.SystemOfUnits (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Uses of Interface
javax.measure.spi.SystemOfUnits

-
-
Packages that use SystemOfUnits
-
-
Package
-
Description
- -
-
[OPTIONAL] The Units of Measurement SPI.
-
-
-
- -
-
- -
-
- - diff --git a/docs/apidocs/javax/measure/spi/class-use/SystemOfUnitsService.html b/docs/apidocs/javax/measure/spi/class-use/SystemOfUnitsService.html deleted file mode 100644 index b0e34381..00000000 --- a/docs/apidocs/javax/measure/spi/class-use/SystemOfUnitsService.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - -Uses of Interface javax.measure.spi.SystemOfUnitsService (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Uses of Interface
javax.measure.spi.SystemOfUnitsService

-
-
Packages that use SystemOfUnitsService
-
-
Package
-
Description
- -
-
[OPTIONAL] The Units of Measurement SPI.
-
-
-
- -
-
- -
-
- - diff --git a/docs/apidocs/javax/measure/spi/package-summary.html b/docs/apidocs/javax/measure/spi/package-summary.html deleted file mode 100644 index a9217460..00000000 --- a/docs/apidocs/javax/measure/spi/package-summary.html +++ /dev/null @@ -1,152 +0,0 @@ - - - - -javax.measure.spi (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - - -
- -
-
-
-

Package javax.measure.spi

-
-
-
package javax.measure.spi
-
-
[OPTIONAL] The Units of Measurement SPI. Provides services for units, quantities, unit systems and formatters/parsers.
-
-
Since:
-
1.0
-
Version:
-
2.0, July 7, 2019
-
Author:
-
Jean-Marie Dautelle, Werner Keil, Martin Desruisseaux
-
-
-
-
    -
  • - -
  • -
  • -
    -
    -
    -
    -
    Class
    -
    Description
    - -
    -
    This interface represents the service to obtain instances of UnitFormat and QuantityFormat.
    -
    - -
    -
    The type of format, either a UnitFormat or QuantityFormat
    -
    - -
    -
    Represents a factory that accepts Number and Unit arguments to create Quantity results.
    -
    - -
    -
    Service Provider for Units of Measurement services.
    -
    - -
    -
    A system of units grouped together for historical or cultural reasons.
    - Common system of units are "SI" (System International), "Imperial" (British), "US" (US Customary).
    -
    - -
    -
    This interface represents the service to obtain a system - of units.
    -
    -
    -
    -
    -
  • -
-
-
- -
-
- - diff --git a/docs/apidocs/javax/measure/spi/package-tree.html b/docs/apidocs/javax/measure/spi/package-tree.html deleted file mode 100644 index de3d648a..00000000 --- a/docs/apidocs/javax/measure/spi/package-tree.html +++ /dev/null @@ -1,99 +0,0 @@ - - - - -javax.measure.spi Class Hierarchy (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Hierarchy For Package javax.measure.spi

-Package Hierarchies: - -
-
-

Class Hierarchy

- -
-
-

Interface Hierarchy

- -
-
-

Enum Hierarchy

- -
-
- -
-
- - diff --git a/docs/apidocs/javax/measure/spi/package-use.html b/docs/apidocs/javax/measure/spi/package-use.html deleted file mode 100644 index 4420398d..00000000 --- a/docs/apidocs/javax/measure/spi/package-use.html +++ /dev/null @@ -1,110 +0,0 @@ - - - - -Uses of Package javax.measure.spi (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Uses of Package
javax.measure.spi

-
-
Packages that use javax.measure.spi
-
-
Package
-
Description
- -
-
[OPTIONAL] The Units of Measurement SPI.
-
-
-
- -
-
- -
-
- - diff --git a/docs/apidocs/jquery-ui.overrides.css b/docs/apidocs/jquery-ui.overrides.css deleted file mode 100644 index facf852c..00000000 --- a/docs/apidocs/jquery-ui.overrides.css +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright (c) 2020, 2022, 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; - border: 1px solid #F8981D; -} diff --git a/docs/apidocs/legal/ADDITIONAL_LICENSE_INFO b/docs/apidocs/legal/ADDITIONAL_LICENSE_INFO deleted file mode 100644 index b62cc3ef..00000000 --- a/docs/apidocs/legal/ADDITIONAL_LICENSE_INFO +++ /dev/null @@ -1 +0,0 @@ -Please see ..\java.base\ADDITIONAL_LICENSE_INFO diff --git a/docs/apidocs/legal/ASSEMBLY_EXCEPTION b/docs/apidocs/legal/ASSEMBLY_EXCEPTION deleted file mode 100644 index 0d4cfb40..00000000 --- a/docs/apidocs/legal/ASSEMBLY_EXCEPTION +++ /dev/null @@ -1 +0,0 @@ -Please see ..\java.base\ASSEMBLY_EXCEPTION diff --git a/docs/apidocs/legal/LICENSE b/docs/apidocs/legal/LICENSE deleted file mode 100644 index 4ad9fe40..00000000 --- a/docs/apidocs/legal/LICENSE +++ /dev/null @@ -1 +0,0 @@ -Please see ..\java.base\LICENSE diff --git a/docs/apidocs/legal/jquery.md b/docs/apidocs/legal/jquery.md deleted file mode 100644 index f7b72e3f..00000000 --- a/docs/apidocs/legal/jquery.md +++ /dev/null @@ -1,72 +0,0 @@ -## jQuery v3.6.0 - -### jQuery License -``` -jQuery v 3.6.0 -Copyright OpenJS Foundation and other contributors, https://openjsf.org/ - -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.6.0 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/docs/apidocs/legal/jqueryUI.md b/docs/apidocs/legal/jqueryUI.md deleted file mode 100644 index 8031bdb5..00000000 --- a/docs/apidocs/legal/jqueryUI.md +++ /dev/null @@ -1,49 +0,0 @@ -## 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/docs/apidocs/member-search-index.js b/docs/apidocs/member-search-index.js deleted file mode 100644 index d54a2821..00000000 --- a/docs/apidocs/member-search-index.js +++ /dev/null @@ -1 +0,0 @@ -memberSearchIndex = [{"p":"javax.measure","c":"Quantity.Scale","l":"ABSOLUTE"},{"p":"javax.measure","c":"Quantity","l":"add(Quantity)","u":"add(javax.measure.Quantity)"},{"p":"javax.measure","c":"Unit","l":"alternate(String)","u":"alternate(java.lang.String)"},{"p":"javax.measure","c":"Quantity","l":"asType(Class)","u":"asType(java.lang.Class)"},{"p":"javax.measure","c":"Unit","l":"asType(Class)","u":"asType(java.lang.Class)"},{"p":"javax.measure","c":"MetricPrefix","l":"ATTO"},{"p":"javax.measure","c":"MetricPrefix","l":"ATTO(Unit)","u":"ATTO(javax.measure.Unit)"},{"p":"javax.measure.spi","c":"ServiceProvider","l":"available()"},{"p":"javax.measure","c":"MetricPrefix","l":"CENTI"},{"p":"javax.measure","c":"MetricPrefix","l":"CENTI(Unit)","u":"CENTI(javax.measure.Unit)"},{"p":"javax.measure","c":"UnitConverter","l":"concatenate(UnitConverter)","u":"concatenate(javax.measure.UnitConverter)"},{"p":"javax.measure","c":"UnitConverter","l":"convert(double)"},{"p":"javax.measure","c":"UnitConverter","l":"convert(Number)","u":"convert(java.lang.Number)"},{"p":"javax.measure.spi","c":"QuantityFactory","l":"create(Number, Unit)","u":"create(java.lang.Number,javax.measure.Unit)"},{"p":"javax.measure.spi","c":"QuantityFactory","l":"create(Number, Unit, Quantity.Scale)","u":"create(java.lang.Number,javax.measure.Unit,javax.measure.Quantity.Scale)"},{"p":"javax.measure.spi","c":"ServiceProvider","l":"current()"},{"p":"javax.measure","c":"MetricPrefix","l":"DECA"},{"p":"javax.measure","c":"MetricPrefix","l":"DECA(Unit)","u":"DECA(javax.measure.Unit)"},{"p":"javax.measure","c":"MetricPrefix","l":"DECI"},{"p":"javax.measure","c":"MetricPrefix","l":"DECI(Unit)","u":"DECI(javax.measure.Unit)"},{"p":"javax.measure","c":"MetricPrefix","l":"DEKA(Unit)","u":"DEKA(javax.measure.Unit)"},{"p":"javax.measure","c":"Dimension","l":"divide(Dimension)","u":"divide(javax.measure.Dimension)"},{"p":"javax.measure","c":"Unit","l":"divide(double)"},{"p":"javax.measure","c":"Quantity","l":"divide(Number)","u":"divide(java.lang.Number)"},{"p":"javax.measure","c":"Unit","l":"divide(Number)","u":"divide(java.lang.Number)"},{"p":"javax.measure","c":"Quantity","l":"divide(Quantity)","u":"divide(javax.measure.Quantity)"},{"p":"javax.measure","c":"Unit","l":"divide(Unit)","u":"divide(javax.measure.Unit)"},{"p":"javax.measure","c":"MetricPrefix","l":"EXA"},{"p":"javax.measure","c":"MetricPrefix","l":"EXA(Unit)","u":"EXA(javax.measure.Unit)"},{"p":"javax.measure","c":"BinaryPrefix","l":"EXBI"},{"p":"javax.measure","c":"BinaryPrefix","l":"EXBI(Unit)","u":"EXBI(javax.measure.Unit)"},{"p":"javax.measure","c":"MetricPrefix","l":"FEMTO"},{"p":"javax.measure","c":"MetricPrefix","l":"FEMTO(Unit)","u":"FEMTO(javax.measure.Unit)"},{"p":"javax.measure.format","c":"QuantityFormat","l":"format(Quantity)","u":"format(javax.measure.Quantity)"},{"p":"javax.measure.format","c":"QuantityFormat","l":"format(Quantity, Appendable)","u":"format(javax.measure.Quantity,java.lang.Appendable)"},{"p":"javax.measure.format","c":"UnitFormat","l":"format(Unit)","u":"format(javax.measure.Unit)"},{"p":"javax.measure.format","c":"UnitFormat","l":"format(Unit, Appendable)","u":"format(javax.measure.Unit,java.lang.Appendable)"},{"p":"javax.measure.spi","c":"FormatService","l":"getAvailableFormatNames(FormatService.FormatType)","u":"getAvailableFormatNames(javax.measure.spi.FormatService.FormatType)"},{"p":"javax.measure.spi","c":"SystemOfUnitsService","l":"getAvailableSystemsOfUnits()"},{"p":"javax.measure","c":"Dimension","l":"getBaseDimensions()"},{"p":"javax.measure","c":"Unit","l":"getBaseUnits()"},{"p":"javax.measure","c":"UnitConverter","l":"getConversionSteps()"},{"p":"javax.measure","c":"Unit","l":"getConverterTo(Unit)","u":"getConverterTo(javax.measure.Unit)"},{"p":"javax.measure","c":"Unit","l":"getConverterToAny(Unit)","u":"getConverterToAny(javax.measure.Unit)"},{"p":"javax.measure","c":"Unit","l":"getDimension()"},{"p":"javax.measure","c":"BinaryPrefix","l":"getExponent()"},{"p":"javax.measure","c":"MetricPrefix","l":"getExponent()"},{"p":"javax.measure","c":"Prefix","l":"getExponent()"},{"p":"javax.measure.spi","c":"ServiceProvider","l":"getFormatService()"},{"p":"javax.measure","c":"BinaryPrefix","l":"getName()"},{"p":"javax.measure","c":"MetricPrefix","l":"getName()"},{"p":"javax.measure","c":"Prefix","l":"getName()"},{"p":"javax.measure.spi","c":"SystemOfUnits","l":"getName()"},{"p":"javax.measure","c":"Unit","l":"getName()"},{"p":"javax.measure.format","c":"MeasurementParseException","l":"getParsedString()"},{"p":"javax.measure.format","c":"MeasurementParseException","l":"getPosition()"},{"p":"javax.measure.spi","c":"SystemOfUnitsService","l":"getPrefixes(Class

)","u":"getPrefixes(java.lang.Class)"},{"p":"javax.measure.spi","c":"ServiceProvider","l":"getPriority()"},{"p":"javax.measure.spi","c":"ServiceProvider","l":"getQuantityFactory(Class)","u":"getQuantityFactory(java.lang.Class)"},{"p":"javax.measure.spi","c":"FormatService","l":"getQuantityFormat()"},{"p":"javax.measure.spi","c":"FormatService","l":"getQuantityFormat(String)","u":"getQuantityFormat(java.lang.String)"},{"p":"javax.measure","c":"Quantity","l":"getScale()"},{"p":"javax.measure","c":"BinaryPrefix","l":"getSymbol()"},{"p":"javax.measure","c":"MetricPrefix","l":"getSymbol()"},{"p":"javax.measure","c":"Prefix","l":"getSymbol()"},{"p":"javax.measure","c":"Unit","l":"getSymbol()"},{"p":"javax.measure.spi","c":"SystemOfUnitsService","l":"getSystemOfUnits()"},{"p":"javax.measure.spi","c":"SystemOfUnitsService","l":"getSystemOfUnits(String)","u":"getSystemOfUnits(java.lang.String)"},{"p":"javax.measure.spi","c":"ServiceProvider","l":"getSystemOfUnitsService()"},{"p":"javax.measure.spi","c":"QuantityFactory","l":"getSystemUnit()"},{"p":"javax.measure","c":"Unit","l":"getSystemUnit()"},{"p":"javax.measure","c":"Quantity","l":"getUnit()"},{"p":"javax.measure.spi","c":"SystemOfUnits","l":"getUnit(Class)","u":"getUnit(java.lang.Class)"},{"p":"javax.measure.spi","c":"SystemOfUnits","l":"getUnit(String)","u":"getUnit(java.lang.String)"},{"p":"javax.measure.spi","c":"FormatService","l":"getUnitFormat()"},{"p":"javax.measure.spi","c":"FormatService","l":"getUnitFormat(String)","u":"getUnitFormat(java.lang.String)"},{"p":"javax.measure.spi","c":"FormatService","l":"getUnitFormat(String, String)","u":"getUnitFormat(java.lang.String,java.lang.String)"},{"p":"javax.measure.spi","c":"SystemOfUnits","l":"getUnits()"},{"p":"javax.measure.spi","c":"SystemOfUnits","l":"getUnits(Dimension)","u":"getUnits(javax.measure.Dimension)"},{"p":"javax.measure","c":"BinaryPrefix","l":"getValue()"},{"p":"javax.measure","c":"MetricPrefix","l":"getValue()"},{"p":"javax.measure","c":"Prefix","l":"getValue()"},{"p":"javax.measure","c":"Quantity","l":"getValue()"},{"p":"javax.measure","c":"BinaryPrefix","l":"GIBI"},{"p":"javax.measure","c":"BinaryPrefix","l":"GIBI(Unit)","u":"GIBI(javax.measure.Unit)"},{"p":"javax.measure","c":"MetricPrefix","l":"GIGA"},{"p":"javax.measure","c":"MetricPrefix","l":"GIGA(Unit)","u":"GIGA(javax.measure.Unit)"},{"p":"javax.measure","c":"MetricPrefix","l":"HECTO"},{"p":"javax.measure","c":"MetricPrefix","l":"HECTO(Unit)","u":"HECTO(javax.measure.Unit)"},{"p":"javax.measure","c":"IncommensurableException","l":"IncommensurableException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"javax.measure","c":"IncommensurableException","l":"IncommensurableException(String, Throwable)","u":"%3Cinit%3E(java.lang.String,java.lang.Throwable)"},{"p":"javax.measure","c":"IncommensurableException","l":"IncommensurableException(Throwable)","u":"%3Cinit%3E(java.lang.Throwable)"},{"p":"javax.measure","c":"Quantity","l":"inverse()"},{"p":"javax.measure","c":"Unit","l":"inverse()"},{"p":"javax.measure","c":"UnitConverter","l":"inverse()"},{"p":"javax.measure","c":"Unit","l":"isCompatible(Unit)","u":"isCompatible(javax.measure.Unit)"},{"p":"javax.measure","c":"Quantity","l":"isEquivalentTo(Quantity)","u":"isEquivalentTo(javax.measure.Quantity)"},{"p":"javax.measure","c":"Unit","l":"isEquivalentTo(Unit)","u":"isEquivalentTo(javax.measure.Unit)"},{"p":"javax.measure","c":"UnitConverter","l":"isIdentity()"},{"p":"javax.measure","c":"UnitConverter","l":"isLinear()"},{"p":"javax.measure.format","c":"QuantityFormat","l":"isLocaleSensitive()"},{"p":"javax.measure.format","c":"UnitFormat","l":"isLocaleSensitive()"},{"p":"javax.measure","c":"BinaryPrefix","l":"KIBI"},{"p":"javax.measure","c":"BinaryPrefix","l":"KIBI(Unit)","u":"KIBI(javax.measure.Unit)"},{"p":"javax.measure","c":"MetricPrefix","l":"KILO"},{"p":"javax.measure","c":"MetricPrefix","l":"KILO(Unit)","u":"KILO(javax.measure.Unit)"},{"p":"javax.measure.format","c":"UnitFormat","l":"label(Unit, String)","u":"label(javax.measure.Unit,java.lang.String)"},{"p":"javax.measure","c":"MeasurementError","l":"MeasurementError()","u":"%3Cinit%3E()"},{"p":"javax.measure","c":"MeasurementError","l":"MeasurementError(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"javax.measure","c":"MeasurementError","l":"MeasurementError(String, Throwable)","u":"%3Cinit%3E(java.lang.String,java.lang.Throwable)"},{"p":"javax.measure","c":"MeasurementError","l":"MeasurementError(Throwable)","u":"%3Cinit%3E(java.lang.Throwable)"},{"p":"javax.measure","c":"MeasurementException","l":"MeasurementException()","u":"%3Cinit%3E()"},{"p":"javax.measure","c":"MeasurementException","l":"MeasurementException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"javax.measure","c":"MeasurementException","l":"MeasurementException(String, Throwable)","u":"%3Cinit%3E(java.lang.String,java.lang.Throwable)"},{"p":"javax.measure","c":"MeasurementException","l":"MeasurementException(Throwable)","u":"%3Cinit%3E(java.lang.Throwable)"},{"p":"javax.measure.format","c":"MeasurementParseException","l":"MeasurementParseException(CharSequence, int)","u":"%3Cinit%3E(java.lang.CharSequence,int)"},{"p":"javax.measure.format","c":"MeasurementParseException","l":"MeasurementParseException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"javax.measure.format","c":"MeasurementParseException","l":"MeasurementParseException(String, CharSequence, int)","u":"%3Cinit%3E(java.lang.String,java.lang.CharSequence,int)"},{"p":"javax.measure.format","c":"MeasurementParseException","l":"MeasurementParseException(Throwable)","u":"%3Cinit%3E(java.lang.Throwable)"},{"p":"javax.measure","c":"BinaryPrefix","l":"MEBI"},{"p":"javax.measure","c":"BinaryPrefix","l":"MEBI(Unit)","u":"MEBI(javax.measure.Unit)"},{"p":"javax.measure","c":"MetricPrefix","l":"MEGA"},{"p":"javax.measure","c":"MetricPrefix","l":"MEGA(Unit)","u":"MEGA(javax.measure.Unit)"},{"p":"javax.measure","c":"MetricPrefix","l":"MICRO"},{"p":"javax.measure","c":"MetricPrefix","l":"MICRO(Unit)","u":"MICRO(javax.measure.Unit)"},{"p":"javax.measure","c":"MetricPrefix","l":"MILLI"},{"p":"javax.measure","c":"MetricPrefix","l":"MILLI(Unit)","u":"MILLI(javax.measure.Unit)"},{"p":"javax.measure","c":"Dimension","l":"multiply(Dimension)","u":"multiply(javax.measure.Dimension)"},{"p":"javax.measure","c":"Unit","l":"multiply(double)"},{"p":"javax.measure","c":"Quantity","l":"multiply(Number)","u":"multiply(java.lang.Number)"},{"p":"javax.measure","c":"Unit","l":"multiply(Number)","u":"multiply(java.lang.Number)"},{"p":"javax.measure","c":"Quantity","l":"multiply(Quantity)","u":"multiply(javax.measure.Quantity)"},{"p":"javax.measure","c":"Unit","l":"multiply(Unit)","u":"multiply(javax.measure.Unit)"},{"p":"javax.measure","c":"MetricPrefix","l":"NANO"},{"p":"javax.measure","c":"MetricPrefix","l":"NANO(Unit)","u":"NANO(javax.measure.Unit)"},{"p":"javax.measure","c":"Quantity","l":"negate()"},{"p":"javax.measure.spi","c":"ServiceProvider","l":"of(String)","u":"of(java.lang.String)"},{"p":"javax.measure.format","c":"QuantityFormat","l":"parse(CharSequence)","u":"parse(java.lang.CharSequence)"},{"p":"javax.measure.format","c":"UnitFormat","l":"parse(CharSequence)","u":"parse(java.lang.CharSequence)"},{"p":"javax.measure.format","c":"QuantityFormat","l":"parse(CharSequence, ParsePosition)","u":"parse(java.lang.CharSequence,java.text.ParsePosition)"},{"p":"javax.measure.format","c":"UnitFormat","l":"parse(CharSequence, ParsePosition)","u":"parse(java.lang.CharSequence,java.text.ParsePosition)"},{"p":"javax.measure","c":"BinaryPrefix","l":"PEBI"},{"p":"javax.measure","c":"BinaryPrefix","l":"PEBI(Unit)","u":"PEBI(javax.measure.Unit)"},{"p":"javax.measure","c":"MetricPrefix","l":"PETA"},{"p":"javax.measure","c":"MetricPrefix","l":"PETA(Unit)","u":"PETA(javax.measure.Unit)"},{"p":"javax.measure","c":"MetricPrefix","l":"PICO"},{"p":"javax.measure","c":"MetricPrefix","l":"PICO(Unit)","u":"PICO(javax.measure.Unit)"},{"p":"javax.measure","c":"Dimension","l":"pow(int)"},{"p":"javax.measure","c":"Unit","l":"pow(int)"},{"p":"javax.measure","c":"Unit","l":"prefix(Prefix)","u":"prefix(javax.measure.Prefix)"},{"p":"javax.measure.spi","c":"FormatService.FormatType","l":"QUANTITY_FORMAT"},{"p":"javax.measure","c":"MetricPrefix","l":"QUECTO"},{"p":"javax.measure","c":"MetricPrefix","l":"QUECTO(Unit)","u":"QUECTO(javax.measure.Unit)"},{"p":"javax.measure","c":"MetricPrefix","l":"QUETTA"},{"p":"javax.measure","c":"MetricPrefix","l":"QUETTA(Unit)","u":"QUETTA(javax.measure.Unit)"},{"p":"javax.measure","c":"Quantity.Scale","l":"RELATIVE"},{"p":"javax.measure","c":"MetricPrefix","l":"RONNA"},{"p":"javax.measure","c":"MetricPrefix","l":"RONNA(Unit)","u":"RONNA(javax.measure.Unit)"},{"p":"javax.measure","c":"MetricPrefix","l":"RONTO"},{"p":"javax.measure","c":"MetricPrefix","l":"RONTO(Unit)","u":"RONTO(javax.measure.Unit)"},{"p":"javax.measure","c":"Dimension","l":"root(int)"},{"p":"javax.measure","c":"Unit","l":"root(int)"},{"p":"javax.measure.spi","c":"ServiceProvider","l":"ServiceProvider()","u":"%3Cinit%3E()"},{"p":"javax.measure.spi","c":"ServiceProvider","l":"setCurrent(ServiceProvider)","u":"setCurrent(javax.measure.spi.ServiceProvider)"},{"p":"javax.measure","c":"Unit","l":"shift(double)"},{"p":"javax.measure","c":"Unit","l":"shift(Number)","u":"shift(java.lang.Number)"},{"p":"javax.measure","c":"Quantity","l":"subtract(Quantity)","u":"subtract(javax.measure.Quantity)"},{"p":"javax.measure","c":"BinaryPrefix","l":"TEBI"},{"p":"javax.measure","c":"BinaryPrefix","l":"TEBI(Unit)","u":"TEBI(javax.measure.Unit)"},{"p":"javax.measure","c":"MetricPrefix","l":"TERA"},{"p":"javax.measure","c":"MetricPrefix","l":"TERA(Unit)","u":"TERA(javax.measure.Unit)"},{"p":"javax.measure","c":"Quantity","l":"to(Unit)","u":"to(javax.measure.Unit)"},{"p":"javax.measure","c":"Unit","l":"toString()"},{"p":"javax.measure","c":"Quantity","l":"toSystemUnit()"},{"p":"javax.measure","c":"Unit","l":"transform(UnitConverter)","u":"transform(javax.measure.UnitConverter)"},{"p":"javax.measure","c":"UnconvertibleException","l":"UnconvertibleException(String)","u":"%3Cinit%3E(java.lang.String)"},{"p":"javax.measure","c":"UnconvertibleException","l":"UnconvertibleException(String, Throwable)","u":"%3Cinit%3E(java.lang.String,java.lang.Throwable)"},{"p":"javax.measure","c":"UnconvertibleException","l":"UnconvertibleException(Throwable)","u":"%3Cinit%3E(java.lang.Throwable)"},{"p":"javax.measure.spi","c":"FormatService.FormatType","l":"UNIT_FORMAT"},{"p":"javax.measure","c":"BinaryPrefix","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"javax.measure","c":"MetricPrefix","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"javax.measure","c":"Quantity.Scale","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"javax.measure.spi","c":"FormatService.FormatType","l":"valueOf(String)","u":"valueOf(java.lang.String)"},{"p":"javax.measure","c":"BinaryPrefix","l":"values()"},{"p":"javax.measure","c":"MetricPrefix","l":"values()"},{"p":"javax.measure","c":"Quantity.Scale","l":"values()"},{"p":"javax.measure.spi","c":"FormatService.FormatType","l":"values()"},{"p":"javax.measure","c":"BinaryPrefix","l":"YOBI"},{"p":"javax.measure","c":"BinaryPrefix","l":"YOBI(Unit)","u":"YOBI(javax.measure.Unit)"},{"p":"javax.measure","c":"MetricPrefix","l":"YOCTO"},{"p":"javax.measure","c":"MetricPrefix","l":"YOCTO(Unit)","u":"YOCTO(javax.measure.Unit)"},{"p":"javax.measure","c":"MetricPrefix","l":"YOTTA"},{"p":"javax.measure","c":"MetricPrefix","l":"YOTTA(Unit)","u":"YOTTA(javax.measure.Unit)"},{"p":"javax.measure","c":"BinaryPrefix","l":"ZEBI"},{"p":"javax.measure","c":"BinaryPrefix","l":"ZEBI(Unit)","u":"ZEBI(javax.measure.Unit)"},{"p":"javax.measure","c":"MetricPrefix","l":"ZEPTO"},{"p":"javax.measure","c":"MetricPrefix","l":"ZEPTO(Unit)","u":"ZEPTO(javax.measure.Unit)"},{"p":"javax.measure","c":"MetricPrefix","l":"ZETTA"},{"p":"javax.measure","c":"MetricPrefix","l":"ZETTA(Unit)","u":"ZETTA(javax.measure.Unit)"}];updateSearchResults(); \ No newline at end of file diff --git a/docs/apidocs/module-search-index.js b/docs/apidocs/module-search-index.js deleted file mode 100644 index 0d59754f..00000000 --- a/docs/apidocs/module-search-index.js +++ /dev/null @@ -1 +0,0 @@ -moduleSearchIndex = [];updateSearchResults(); \ No newline at end of file diff --git a/docs/apidocs/overview-summary.html b/docs/apidocs/overview-summary.html deleted file mode 100644 index da395c8e..00000000 --- a/docs/apidocs/overview-summary.html +++ /dev/null @@ -1,26 +0,0 @@ - - - - -Units of Measurement API 2.2 API - - - - - - - - - - - -

- -

index.html

-
- - diff --git a/docs/apidocs/overview-tree.html b/docs/apidocs/overview-tree.html deleted file mode 100644 index 11bb28f7..00000000 --- a/docs/apidocs/overview-tree.html +++ /dev/null @@ -1,172 +0,0 @@ - - - - -Class Hierarchy (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
- -
-
-
-

Hierarchy For All Packages

-Package Hierarchies: - -
-
-

Class Hierarchy

- -
-
-

Interface Hierarchy

- -
-
-

Enum Hierarchy

- -
-
- -
-
- - diff --git a/docs/apidocs/package-search-index.js b/docs/apidocs/package-search-index.js deleted file mode 100644 index 450d183f..00000000 --- a/docs/apidocs/package-search-index.js +++ /dev/null @@ -1 +0,0 @@ -packageSearchIndex = [{"l":"All Packages","u":"allpackages-index.html"},{"l":"javax.measure"},{"l":"javax.measure.format"},{"l":"javax.measure.quantity"},{"l":"javax.measure.spi"}];updateSearchResults(); \ No newline at end of file diff --git a/docs/apidocs/script-dir/jquery-3.6.0.min.js b/docs/apidocs/script-dir/jquery-3.6.0.min.js deleted file mode 100644 index c4c6022f..00000000 --- a/docs/apidocs/script-dir/jquery-3.6.0.min.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! jQuery v3.6.0 | (c) OpenJS 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&&"function"!=typeof e.item},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.6.0",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&&e.namespaceURI,n=e&&(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},j=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 j(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||D,"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,D=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 je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(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 _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.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(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.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,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.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):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]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.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 0",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=x(e||this.defaultElement||this)[0],this.element=x(e),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=x(),this.hoverable=x(),this.focusable=x(),this.classesElementLookup={},e!==this&&(x.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===e&&this.destroy()}}),this.document=x(e.style?e.ownerDocument:e.document||e),this.window=x(this.document[0].defaultView||this.document[0].parentWindow)),this.options=x.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:x.noop,_create:x.noop,_init:x.noop,destroy:function(){var i=this;this._destroy(),x.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:x.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return x.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(s=o[t]=x.widget.extend({},this.options[t]),n=0;n
"),i=e.children()[0];return x("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i},getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.widthC(E(s),E(n))?o.important="horizontal":o.important="vertical",c.using.call(this,t,o)}),l.offset(x.extend(u,{using:t}))})},x.ui.position={fit:{left:function(t,e){var i=e.within,s=i.isWindow?i.scrollLeft:i.offset.left,n=i.width,o=t.left-e.collisionPosition.marginLeft,l=s-o,a=o+e.collisionWidth-n-s;e.collisionWidth>n?0n?0",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.lastMousePosition={x:null,y:null},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(),this._activateItem(t)},"click .ui-menu-item":function(t){var e=x(t.target),i=x(x.ui.safeActiveElement(this.document[0]));!this.mouseHandled&&e.not(".ui-state-disabled").length&&(this.select(t),t.isPropagationStopped()||(this.mouseHandled=!0),e.has(".ui-menu").length?this.expand(t):!this.element.is(":focus")&&i.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":"_activateItem","mousemove .ui-menu-item":"_activateItem",mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(t,e){var i=this.active||this._menuItems().first();e||this.focus(t,i)},blur:function(t){this._delay(function(){x.contains(this.element[0],x.ui.safeActiveElement(this.document[0]))||this.collapseAll(t)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){this._closeOnDocumentClick(t)&&this.collapseAll(t,!0),this.mouseHandled=!1}})},_activateItem:function(t){var e,i;this.previousFilter||t.clientX===this.lastMousePosition.x&&t.clientY===this.lastMousePosition.y||(this.lastMousePosition={x:t.clientX,y:t.clientY},e=x(t.target).closest(".ui-menu-item"),i=x(t.currentTarget),e[0]===i[0]&&(i.is(".ui-state-active")||(this._removeClass(i.siblings().children(".ui-state-active"),null,"ui-state-active"),this.focus(t,i))))},_destroy:function(){var t=this.element.find(".ui-menu-item").removeAttr("role aria-disabled").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(),t.children().each(function(){var t=x(this);t.data("ui-menu-submenu-caret")&&t.remove()})},_keydown:function(t){var e,i,s,n=!0;switch(t.keyCode){case x.ui.keyCode.PAGE_UP:this.previousPage(t);break;case x.ui.keyCode.PAGE_DOWN:this.nextPage(t);break;case x.ui.keyCode.HOME:this._move("first","first",t);break;case x.ui.keyCode.END:this._move("last","last",t);break;case x.ui.keyCode.UP:this.previous(t);break;case x.ui.keyCode.DOWN:this.next(t);break;case x.ui.keyCode.LEFT:this.collapse(t);break;case x.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(t);break;case x.ui.keyCode.ENTER:case x.ui.keyCode.SPACE:this._activate(t);break;case x.ui.keyCode.ESCAPE:this.collapse(t);break;default:e=this.previousFilter||"",s=n=!1,i=96<=t.keyCode&&t.keyCode<=105?(t.keyCode-96).toString():String.fromCharCode(t.keyCode),clearTimeout(this.filterTimer),i===e?s=!0:i=e+i,e=this._filterMenuItems(i),(e=s&&-1!==e.index(this.active.next())?this.active.nextAll(".ui-menu-item"):e).length||(i=String.fromCharCode(t.keyCode),e=this._filterMenuItems(i)),e.length?(this.focus(t,e),this.previousFilter=i,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter}n&&t.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 t,e,s=this,n=this.options.icons.submenu,i=this.element.find(this.options.menus);this._toggleClass("ui-menu-icons",null,!!this.element.find(".ui-icon").length),e=i.filter(":not(.ui-menu)").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var t=x(this),e=t.prev(),i=x("").data("ui-menu-submenu-caret",!0);s._addClass(i,"ui-menu-icon","ui-icon "+n),e.attr("aria-haspopup","true").prepend(i),t.attr("aria-labelledby",e.attr("id"))}),this._addClass(e,"ui-menu","ui-widget ui-widget-content ui-front"),(t=i.add(this.element).find(this.options.items)).not(".ui-menu-item").each(function(){var t=x(this);s._isDivider(t)&&s._addClass(t,"ui-menu-divider","ui-widget-content")}),i=(e=t.not(".ui-menu-item, .ui-menu-divider")).children().not(".ui-menu").uniqueId().attr({tabIndex:-1,role:this._itemRole()}),this._addClass(e,"ui-menu-item")._addClass(i,"ui-menu-item-wrapper"),t.filter(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!x.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(t,e){var i;"icons"===t&&(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",String(t)),this._toggleClass(null,"ui-state-disabled",!!t)},focus:function(t,e){var i;this.blur(t,t&&"focus"===t.type),this._scrollIntoView(e),this.active=e.first(),i=this.active.children(".ui-menu-item-wrapper"),this._addClass(i,null,"ui-state-active"),this.options.role&&this.element.attr("aria-activedescendant",i.attr("id")),i=this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper"),this._addClass(i,null,"ui-state-active"),t&&"keydown"===t.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),(i=e.children(".ui-menu")).length&&t&&/^mouse/.test(t.type)&&this._startOpening(i),this.activeMenu=e.parent(),this._trigger("focus",t,{item:e})},_scrollIntoView:function(t){var e,i,s;this._hasScroll()&&(i=parseFloat(x.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(x.css(this.activeMenu[0],"paddingTop"))||0,e=t.offset().top-this.activeMenu.offset().top-i-s,i=this.activeMenu.scrollTop(),s=this.activeMenu.height(),t=t.outerHeight(),e<0?this.activeMenu.scrollTop(i+e):s",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,liveRegionTimer:null,_create:function(){var i,s,n,t=this.element[0].nodeName.toLowerCase(),e="textarea"===t,t="input"===t;this.isMultiLine=e||!t&&this._isContentEditable(this.element),this.valueMethod=this.element[e||t?"val":"text"],this.isNewMenu=!0,this._addClass("ui-autocomplete-input"),this.element.attr("autocomplete","off"),this._on(this.element,{keydown:function(t){if(this.element.prop("readOnly"))s=n=i=!0;else{s=n=i=!1;var e=x.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:i=!0,this._move("previousPage",t);break;case e.PAGE_DOWN:i=!0,this._move("nextPage",t);break;case e.UP:i=!0,this._keyEvent("previous",t);break;case e.DOWN:i=!0,this._keyEvent("next",t);break;case e.ENTER:this.menu.active&&(i=!0,t.preventDefault(),this.menu.select(t));break;case e.TAB:this.menu.active&&this.menu.select(t);break;case e.ESCAPE:this.menu.element.is(":visible")&&(this.isMultiLine||this._value(this.term),this.close(t),t.preventDefault());break;default:s=!0,this._searchTimeout(t)}}},keypress:function(t){if(i)return i=!1,void(this.isMultiLine&&!this.menu.element.is(":visible")||t.preventDefault());if(!s){var e=x.ui.keyCode;switch(t.keyCode){case e.PAGE_UP:this._move("previousPage",t);break;case e.PAGE_DOWN:this._move("nextPage",t);break;case e.UP:this._keyEvent("previous",t);break;case e.DOWN:this._keyEvent("next",t)}}},input:function(t){if(n)return n=!1,void t.preventDefault();this._searchTimeout(t)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(t){clearTimeout(this.searching),this.close(t),this._change(t)}}),this._initSource(),this.menu=x("
    ").appendTo(this._appendTo()).menu({role:null}).hide().attr({unselectable:"on"}).menu("instance"),this._addClass(this.menu.element,"ui-autocomplete","ui-front"),this._on(this.menu.element,{mousedown:function(t){t.preventDefault()},menufocus:function(t,e){var i,s;if(this.isNewMenu&&(this.isNewMenu=!1,t.originalEvent&&/^mouse/.test(t.originalEvent.type)))return this.menu.blur(),void this.document.one("mousemove",function(){x(t.target).trigger(t.originalEvent)});s=e.item.data("ui-autocomplete-item"),!1!==this._trigger("focus",t,{item:s})&&t.originalEvent&&/^key/.test(t.originalEvent.type)&&this._value(s.value),(i=e.item.attr("aria-label")||s.value)&&String.prototype.trim.call(i).length&&(clearTimeout(this.liveRegionTimer),this.liveRegionTimer=this._delay(function(){this.liveRegion.html(x("
    ").text(i))},100))},menuselect:function(t,e){var i=e.item.data("ui-autocomplete-item"),s=this.previous;this.element[0]!==x.ui.safeActiveElement(this.document[0])&&(this.element.trigger("focus"),this.previous=s,this._delay(function(){this.previous=s,this.selectedItem=i})),!1!==this._trigger("select",t,{item:i})&&this._value(i.value),this.term=this._value(),this.close(t),this.selectedItem=i}}),this.liveRegion=x("
    ",{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(t){var e=this.menu.element[0];return t.target===this.element[0]||t.target===e||x.contains(e,t.target)},_closeOnClickOutside:function(t){this._isEventTargetInWidget(t)||this.close()},_appendTo:function(){var t=this.options.appendTo;return t=!(t=!(t=t&&(t.jquery||t.nodeType?x(t):this.document.find(t).eq(0)))||!t[0]?this.element.closest(".ui-front, dialog"):t).length?this.document[0].body:t},_initSource:function(){var i,s,n=this;Array.isArray(this.options.source)?(i=this.options.source,this.source=function(t,e){e(x.ui.autocomplete.filter(i,t.term))}):"string"==typeof this.options.source?(s=this.options.source,this.source=function(t,e){n.xhr&&n.xhr.abort(),n.xhr=x.ajax({url:s,data:t,dataType:"json",success:function(t){e(t)},error:function(){e([])}})}):this.source=this.options.source},_searchTimeout:function(s){clearTimeout(this.searching),this.searching=this._delay(function(){var t=this.term===this._value(),e=this.menu.element.is(":visible"),i=s.altKey||s.ctrlKey||s.metaKey||s.shiftKey;t&&(e||i)||(this.selectedItem=null,this.search(null,s))},this.options.delay)},search:function(t,e){return t=null!=t?t:this._value(),this.term=this._value(),t.length").append(x("
    ").text(e.label)).appendTo(t)},_move:function(t,e){if(this.menu.element.is(":visible"))return this.menu.isFirstItem()&&/^previous/.test(t)||this.menu.isLastItem()&&/^next/.test(t)?(this.isMultiLine||this._value(this.term),void this.menu.blur()):void this.menu[t](e);this.search(null,e)},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}}),x.extend(x.ui.autocomplete,{escapeRegex:function(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(t,e){var i=new RegExp(x.ui.autocomplete.escapeRegex(e),"i");return x.grep(t,function(t){return i.test(t.label||t.value||t)})}}),x.widget("ui.autocomplete",x.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(t){return t+(1").text(e))},100))}});x.ui.autocomplete}); \ No newline at end of file diff --git a/docs/apidocs/script.js b/docs/apidocs/script.js deleted file mode 100644 index 864989cf..00000000 --- a/docs/apidocs/script.js +++ /dev/null @@ -1,132 +0,0 @@ -/* - * 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/docs/apidocs/search.js b/docs/apidocs/search.js deleted file mode 100644 index 2246cdd0..00000000 --- a/docs/apidocs/search.js +++ /dev/null @@ -1,354 +0,0 @@ -/* - * 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 = "Types"; -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/docs/apidocs/serialized-form.html b/docs/apidocs/serialized-form.html deleted file mode 100644 index e85226c7..00000000 --- a/docs/apidocs/serialized-form.html +++ /dev/null @@ -1,147 +0,0 @@ - - - - -Serialized Form (Units of Measurement API 2.2 API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Serialized Form

    -
    - -
    - -
    -
    - - diff --git a/docs/apidocs/src-html/javax/measure/BinaryPrefix.html b/docs/apidocs/src-html/javax/measure/BinaryPrefix.html deleted file mode 100644 index 25d46b07..00000000 --- a/docs/apidocs/src-html/javax/measure/BinaryPrefix.html +++ /dev/null @@ -1,324 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure;
    -031
    -032/**
    -033 * Provides support for common binary prefixes to be used by units. For example:
    -034 * <pre>
    -035 * {@code import static systems.uom.unicode.CLDR.*;  // Static import (from Unicode System).
    -036 * import static javax.measure.BinaryPrefix.*; // Static import.
    -037 * import javax.measure.*;
    -038 * import systems.uom.quantity.Information; // (from Systems Quantities)
    -039 * ...
    -040 * Unit<Information> MEBIT  = MEBI(BIT);
    -041 * Unit<Information> GIBYTE = GIBI(BYTE);} 
    -042 * </pre>
    -043 * You could also apply <code>Unit.prefix</code>:
    -044 * <pre>
    -045 * {@code ...
    -046 * Unit<Information> MEBIT  = BIT.prefix(MEBI);
    -047 * Unit<Information> GIBYTE = BYTE.prefix(GIBI);}
    -048 * </pre>
    -049 * 
    -050 * <p>
    -051 * <b>Do not use ordinal() to obtain the numeric representation of BinaryPrefix. Use getValue() and getExponent() instead.</b>
    -052 * </p>
    -053 * 
    -054 * <dl>
    -055 * <dt><span class="strong">Implementation Requirements</span></dt><dd>This is an immutable and thread-safe enum.</dd>
    -056 * </dl> 
    -057 *
    -058 * @author <a href="mailto:werner@units.tech">Werner Keil</a>
    -059 * @version 2.2, May 20, 2023
    -060 * @see <a href="https://en.wikipedia.org/wiki/Binary_prefix">Wikipedia: Binary Prefix</a>
    -061 * @since 2.0
    -062 */
    -063public enum BinaryPrefix implements Prefix {
    -064    /** Prefix for 1024. */
    -065    KIBI("Ki", 1),
    -066    /** Prefix for 1024<sup>2</sup>. */
    -067    MEBI("Mi", 2),
    -068    /** Prefix for 1024<sup>3</sup>. */
    -069    GIBI("Gi", 3),
    -070    /** Prefix for 1024<sup>4</sup>. */
    -071    TEBI("Ti", 4),
    -072    /** Prefix for 1024<sup>5</sup>. */
    -073    PEBI("Pi", 5),
    -074    /** Prefix for 1024<sup>6</sup>. */
    -075    EXBI("Ei", 6),
    -076    /** Prefix for 1024<sup>7</sup>. */
    -077    ZEBI("Zi", 7),
    -078    /** Prefix for 1024<sup>8</sup>. */
    -079    YOBI("Yi", 8);
    -080
    -081    /**
    -082     * The symbol of this prefix, as returned by {@link #getSymbol}.
    -083     *
    -084     * @serial
    -085     * @see #getSymbol()
    -086     */
    -087    private final String symbol;
    -088
    -089    /**
    -090     * Exponent part of the associated factor in base^exponent representation.
    -091     */
    -092    private final int exponent;
    -093
    -094    /**
    -095     * Creates a new prefix.
    -096     *
    -097     * @param symbol
    -098     *          the symbol of this prefix.
    -099     * @param exponent
    -100     *          part of the associated factor in base^exponent representation.
    -101     */
    -102    private BinaryPrefix(String symbol, int exponent) {
    -103        this.symbol = symbol;
    -104        this.exponent = exponent;
    -105    }
    -106
    -107    /**
    -108     * Returns the specified unit multiplied by the factor <code>1024</code> (binary prefix).
    -109     *
    -110     * @param <Q>
    -111     *          type of the quantity measured by the unit.
    -112     * @param unit
    -113     *          any unit.
    -114     * @return <code>unit.multiply(1024)</code>.
    -115     */
    -116    public static <Q extends Quantity<Q>> Unit<Q> KIBI(Unit<Q> unit) {
    -117        return unit.prefix(KIBI);
    -118    }
    -119
    -120    /**
    -121     * Returns the specified unit multiplied by the factor <code>1024<sup>2</sup></code> (binary prefix).
    -122     *
    -123     * @param <Q>
    -124     *          type of the quantity measured by the unit.
    -125     * @param unit
    -126     *          any unit.
    -127     * @return <code>unit.multiply(1048576)</code>.
    -128     */
    -129    public static <Q extends Quantity<Q>> Unit<Q> MEBI(Unit<Q> unit) {
    -130        return unit.prefix(MEBI);
    -131    }
    -132
    -133    /**
    -134     * Returns the specified unit multiplied by the factor <code>1024<sup>3</sup></code> (binary prefix).
    -135     *
    -136     * @param <Q>
    -137     *          type of the quantity measured by the unit.
    -138     * @param unit
    -139     *          any unit.
    -140     * @return <code>unit.multiply(1073741824)</code>.
    -141     */
    -142    public static <Q extends Quantity<Q>> Unit<Q> GIBI(Unit<Q> unit) {
    -143        return unit.prefix(GIBI);
    -144    }
    -145
    -146    /**
    -147     * Returns the specified unit multiplied by the factor <code>1024<sup>4</sup></code> (binary prefix).
    -148     *
    -149     * @param <Q>
    -150     *          type of the quantity measured by the unit.
    -151     * @param unit
    -152     *          any unit.
    -153     * @return <code>unit.multiply(1099511627776L)</code>.
    -154     */
    -155    public static <Q extends Quantity<Q>> Unit<Q> TEBI(Unit<Q> unit) {
    -156        return unit.prefix(TEBI);
    -157    }
    -158
    -159    /**
    -160     * Returns the specified unit multiplied by the factor <code>1024<sup>5</sup></code> (binary prefix).
    -161     *
    -162     * @param <Q>
    -163     *          type of the quantity measured by the unit.
    -164     * @param unit
    -165     *          any unit.
    -166     * @return <code>unit.multiply(1125899906842624L)</code>.
    -167     */
    -168    public static <Q extends Quantity<Q>> Unit<Q> PEBI(Unit<Q> unit) {
    -169        return unit.prefix(PEBI);
    -170    }
    -171
    -172    /**
    -173     * Returns the specified unit multiplied by the factor <code>1024<sup>6</sup></code> (binary prefix).
    -174     *
    -175     * @param <Q>
    -176     *          type of the quantity measured by the unit.
    -177     * @param unit
    -178     *          any unit.
    -179     * @return <code>unit.multiply(1152921504606846976L)</code>.
    -180     */
    -181    public static <Q extends Quantity<Q>> Unit<Q> EXBI(Unit<Q> unit) {
    -182        return unit.prefix(EXBI);
    -183    }
    -184
    -185    /**
    -186     * Returns the specified unit multiplied by the factor <code>1024<sup>7</sup></code> (binary prefix).
    -187     *
    -188     * @param <Q>
    -189     *          type of the quantity measured by the unit.
    -190     * @param unit
    -191     *          any unit.
    -192     * @return <code>unit.multiply(1152921504606846976d)</code>.
    -193     */
    -194    public static <Q extends Quantity<Q>> Unit<Q> ZEBI(Unit<Q> unit) {
    -195        return unit.prefix(ZEBI);
    -196    }
    -197
    -198    /**
    -199     * Returns the specified unit multiplied by the factor <code>1024<sup>8</sup></code> (binary prefix).
    -200     *
    -201     * @param <Q>
    -202     *          type of the quantity measured by the unit.
    -203     * @param unit
    -204     *          any unit.
    -205     * @return <code>unit.multiply(1208925819614629174706176d)</code>.
    -206     */
    -207    public static <Q extends Quantity<Q>> Unit<Q> YOBI(Unit<Q> unit) {
    -208        return unit.prefix(YOBI);
    -209    }
    -210
    -211    /**
    -212     * Returns the symbol of this prefix.
    -213     *
    -214     * @return this prefix symbol, not {@code null}.
    -215     */
    -216    @Override
    -217    public String getSymbol() {
    -218        return symbol;
    -219    }
    -220
    -221    /**
    -222     * Base part of the associated factor in {@code base^exponent} representation. For binary prefix, this is always 1024.
    -223     */
    -224    @Override
    -225    public Integer getValue() {
    -226        return 1024;
    -227    }
    -228
    -229    /**
    -230     * Exponent part of the associated factor in {@code base^exponent} representation.
    -231     */
    -232    @Override
    -233    public int getExponent() {
    -234        return exponent;
    -235    }
    -236
    -237    /**
    -238     * Returns the name of this prefix.
    -239     *
    -240     * @return this prefix name, not {@code null}.
    -241     */
    -242    @Override
    -243    public String getName() {
    -244        return name();
    -245    }
    -246}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/apidocs/src-html/javax/measure/Dimension.html b/docs/apidocs/src-html/javax/measure/Dimension.html deleted file mode 100644 index c4201f0e..00000000 --- a/docs/apidocs/src-html/javax/measure/Dimension.html +++ /dev/null @@ -1,177 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure;
    -031
    -032import java.util.Map;
    -033
    -034/**
    -035 * Represents the dimension of a unit.
    -036 *
    -037 * <p>
    -038 * Concrete dimensions are obtained through the {@link Unit#getDimension()} method.
    -039 * </p>
    -040 *
    -041 * <p>
    -042 * Two units {@code u1} and {@code u2} are {@linkplain Unit#isCompatible(Unit) compatible} if and only if
    -043 * {@code u1.getDimension().equals(u2.getDimension())}.
    -044 * </p>
    -045 *
    -046 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -047 * @author <a href="mailto:werner@uom.technology">Werner Keil</a>
    -048 * @version 1.0, August 8, 2016
    -049 * @since 1.0
    -050 * @see Unit
    -051 * @see <a href="http://en.wikipedia.org/wiki/Dimensional_analysis">Wikipedia: Dimensional Analysis</a>
    -052 */
    -053public interface Dimension {
    -054    /**
    -055     * Returns the product of this dimension with the one specified.
    -056     *
    -057     * @param multiplicand
    -058     *          the dimension multiplicand.
    -059     * @return {@code this * multiplicand}
    -060     */
    -061    Dimension multiply(Dimension multiplicand);
    -062
    -063    /**
    -064     * Returns the quotient of this dimension with the one specified.
    -065     *
    -066     * @param divisor
    -067     *          the dimension divisor.
    -068     * @return {@code this / divisor}
    -069     */
    -070    Dimension divide(Dimension divisor);
    -071
    -072    /**
    -073     * Returns this dimension raised to an exponent. <code>(this<sup>n</sup>)</code>
    -074     *
    -075     * @param n
    -076     *          power to raise this {@code Dimension} to.
    -077     * @return <code>this<sup>n</sup></code>
    -078     */
    -079    Dimension pow(int n);
    -080
    -081    /**
    -082     * Returns the given root of this dimension.
    -083     *
    -084     * @param n
    -085     *          the root's order.
    -086     * @return the result of taking the given root of this dimension.
    -087     * @throws ArithmeticException
    -088     *           if {@code n == 0}.
    -089     */
    -090    Dimension root(int n);
    -091
    -092    /**
    -093     * Returns the (fundamental) base dimensions and their exponent whose product is this dimension, or {@code null} if this dimension is a base
    -094     * dimension.
    -095     *
    -096     * @return the mapping between the fundamental dimensions and their exponent.
    -097     */
    -098    Map<? extends Dimension, Integer> getBaseDimensions();
    -099}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/apidocs/src-html/javax/measure/IncommensurableException.html b/docs/apidocs/src-html/javax/measure/IncommensurableException.html deleted file mode 100644 index 01b82d84..00000000 --- a/docs/apidocs/src-html/javax/measure/IncommensurableException.html +++ /dev/null @@ -1,164 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure;
    -031
    -032/**
    -033 * Signals that a problem of some sort has occurred due to incommensurable of some quantities/units. Only commensurable quantity (quantities with the
    -034 * same dimensions) may be compared, equated, added, or subtracted. Also, one unit can be converted to another unit only if both units are
    -035 * commensurable.
    -036 * <p>
    -037 * This is a <strong>checked</strong> exception, so it deliberately doesn't inherit from <code>MeasurementException</code> like most other exceptions.
    -038 * </p>
    -039 *
    -040 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -041 * @author <a href="mailto:werner@uom.technology">Werner Keil</a>
    -042 * @version 1.0, August 8, 2016
    -043 * @since 1.0
    -044 *
    -045 * @see <a href="http://en.wikipedia.org/wiki/Unit_commensurability#Commensurability">Wikipedia: Unit Commensurability</a>
    -046 */
    -047public class IncommensurableException extends Exception {
    -048    /**
    -049     * For cross-version compatibility.
    -050     */
    -051    private static final long serialVersionUID = -3676414292638136515L;
    -052
    -053    /**
    -054     * Constructs a {@code IncommensurableException} with the given message.
    -055     *
    -056     * @param message
    -057     *            the detail message, or {@code null} if none.
    -058     */
    -059    public IncommensurableException(final String message) {
    -060        super(message);
    -061    }
    -062
    -063    /**
    -064     * Constructs a {@code IncommensurableException} with the given cause.
    -065     *
    -066     * @param cause
    -067     *            the cause of this exception, or {@code null} if none.
    -068     *
    -069     */
    -070    public IncommensurableException(final Throwable cause) {
    -071        super(cause);
    -072    }
    -073
    -074    /**
    -075     * Constructs a {@code IncommensurableException} with the given message and cause.
    -076     *
    -077     * @param message
    -078     *            the detail message, or {@code null} if none.
    -079     * @param cause
    -080     *            the cause of this exception, or {@code null} if none.
    -081     *
    -082     */
    -083    public IncommensurableException(final String message, final Throwable cause) {
    -084        super(message, cause);
    -085    }
    -086}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/apidocs/src-html/javax/measure/MeasurementError.html b/docs/apidocs/src-html/javax/measure/MeasurementError.html deleted file mode 100644 index 24d97882..00000000 --- a/docs/apidocs/src-html/javax/measure/MeasurementError.html +++ /dev/null @@ -1,167 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure;
    -031
    -032/**
    -033 * This error is used to indicate serious problems with creating, retrieving and manipulating units of measurement objects.
    -034 *
    -035 * <dl>
    -036 * <dt><span class="strong">Implementation Requirements:</span></dt>
    -037 * <dd>This class is intended for use in a single thread. Exception thrown when errors occur during Units of Measurement operations.</dd>
    -038 * </dl>
    -039 * 
    -040 * @author <a href="mailto:werner@uom.technology">Werner Keil</a>
    -041 * @version 2.2, Feb 3, 2021
    -042 * @since 2.1
    -043 */
    -044public class MeasurementError extends Error {
    -045
    -046    /**
    -047         * 
    -048         */
    -049    private static final long serialVersionUID = -412360965273525777L;
    -050
    -051    /**
    -052     * Constructs a {@code MeasurementError} with no detail message.
    -053     */
    -054    public MeasurementError() {
    -055        super();
    -056    }
    -057
    -058    /**
    -059     * Constructs a {@code MeasurementError} with the specified detail message.
    -060     *
    -061     * @param message
    -062     *            the detail message.
    -063     */
    -064    public MeasurementError(final String message) {
    -065        super(message);
    -066    }
    -067
    -068    /**
    -069     * Constructs a {@code MeasurementError} with the given cause.
    -070     *
    -071     * @param cause
    -072     *            the cause of this exception, or {@code null} if none.
    -073     */
    -074    public MeasurementError(final Throwable cause) {
    -075        super(cause);
    -076    }
    -077
    -078    /**
    -079     * Constructs a {@code MeasurementError} with the specified detail message and cause.
    -080     *
    -081     * @param message
    -082     *            the detail message.
    -083     * @param cause
    -084     *            the cause, may be {@code null}
    -085     */
    -086    public MeasurementError(final String message, final Throwable cause) {
    -087        super(message, cause);
    -088    }
    -089}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/apidocs/src-html/javax/measure/MeasurementException.html b/docs/apidocs/src-html/javax/measure/MeasurementException.html deleted file mode 100644 index 2b5524f4..00000000 --- a/docs/apidocs/src-html/javax/measure/MeasurementException.html +++ /dev/null @@ -1,177 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030//
    -031// This source code implements specifications defined by the Java
    -032// Community Process. In order to remain compliant with the specification
    -033// DO NOT add / change / or delete method signatures!
    -034//
    -035package javax.measure;
    -036
    -037/**
    -038 * Exception used to indicate a problem while dealing with units of measurement.
    -039 * <p>
    -040 * This exception is used to indicate problems with creating, retrieving and manipulating units of measurement objects.
    -041 * </p>
    -042 *
    -043 * <dl>
    -044 * <dt><span class="strong">Implementation Requirements:</span></dt>
    -045 * <dd>This class is intended for use in a single thread. Exception thrown when errors occur during Units of Measurement operations.</dd>
    -046 * </dl>
    -047 *
    -048 * @author <a href="mailto:werner@uom.technology">Werner Keil</a>
    -049 * @version 2.0, Jul 4, 2020
    -050 * @since 1.0
    -051 */
    -052public class MeasurementException extends RuntimeException {
    -053
    -054    /**
    -055     * For cross-version compatibility.
    -056     */
    -057    private static final long serialVersionUID = 8959937033300443361L;
    -058
    -059    /**
    -060     * Constructs a {@code MeasurementException} with the given message.
    -061     *
    -062     * @param message
    -063     *            the detail message, or {@code null} if none.
    -064     */
    -065    public MeasurementException(final String message) {
    -066        super(message);
    -067    }
    -068
    -069    /**
    -070     * Constructs a {@code MeasurementException} with the given cause.
    -071     *
    -072     * @param cause
    -073     *            the cause of this exception, or {@code null} if none.
    -074     */
    -075    public MeasurementException(final Throwable cause) {
    -076        super(cause);
    -077    }
    -078
    -079    /**
    -080     * Constructs a {@code MeasurementException} with the given message and cause.
    -081     *
    -082     * @param message
    -083     *            the detail message, or {@code null} if none.
    -084     * @param cause
    -085     *            the cause of this exception, or {@code null} if none.
    -086     *
    -087     */
    -088    public MeasurementException(final String message, final Throwable cause) {
    -089        super(message, cause);
    -090    }
    -091
    -092    /**
    -093     * Constructs a {@code MeasurementException} with no given message.
    -094     *
    -095     */
    -096    protected MeasurementException() {
    -097        super();
    -098    }
    -099}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/apidocs/src-html/javax/measure/MetricPrefix.html b/docs/apidocs/src-html/javax/measure/MetricPrefix.html deleted file mode 100644 index a2f8680f..00000000 --- a/docs/apidocs/src-html/javax/measure/MetricPrefix.html +++ /dev/null @@ -1,616 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure;
    -031
    -032/**
    -033 * Provides support for the 24 prefixes used in the metric system (decimal multiples and submultiples of units). For example:
    -034 *
    -035 * <pre>
    -036 * {@code import static tech.units.indriya.unit.Units.*;  // Static import (from the RI).
    -037 * import static javax.measure.MetricPrefix.*; // Static import.
    -038 * import javax.measure.*;
    -039 * import javax.measure.quantity.*;
    -040 * ...
    -041 * Unit<Pressure> HECTOPASCAL = HECTO(PASCAL);
    -042 * Unit<Length> KILOMETRE = KILO(METRE);} 
    -043 * </pre>
    -044 * You could also apply <code>Unit.prefix</code>:
    -045 * <pre>
    -046 * {@code ...
    -047 * Unit<Pressure> HECTOPASCAL = PASCAL.prefix(HECTO);
    -048 * Unit<Length> KILOMETRE = METRE.prefix(KILO);}
    -049 * </pre>
    -050 * 
    -051 * <p>
    -052 * <b>Do not use ordinal() to obtain the numeric representation of MetricPrefix. Use getValue() and getExponent() instead.</b>
    -053 * </p>
    -054 * 
    -055 * <dl>
    -056 * <dt><span class="strong">Implementation Requirements</span></dt><dd>This is an immutable and thread-safe enum.</dd>
    -057 * </dl>
    -058 * 
    -059 * @see <a href="https://en.wikipedia.org/wiki/Metric_prefix">Wikipedia: Metric Prefix</a>
    -060 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -061 * @author <a href="mailto:werner@units.tech">Werner Keil</a>
    -062 * @version 2.3, May 20, 2023
    -063 * @since 2.0
    -064 */
    -065public enum MetricPrefix implements Prefix {
    -066        /** Prefix for 10<sup>30</sup>. */
    -067    QUETTA("Q", 30),
    -068        /** Prefix for 10<sup>27</sup>. */
    -069    RONNA("R", 27),
    -070        /** Prefix for 10<sup>24</sup>. */
    -071    YOTTA("Y", 24),
    -072    /** Prefix for 10<sup>21</sup>. */
    -073    ZETTA("Z", 21),
    -074    /** Prefix for 10<sup>18</sup>. */
    -075    EXA("E", 18),
    -076    /** Prefix for 10<sup>15</sup>. */
    -077    PETA("P", 15),
    -078    /** Prefix for 10<sup>12</sup>. */
    -079    TERA("T", 12),
    -080    /** Prefix for 10<sup>9</sup>.
    -081     * @see <a href="https://en.wikipedia.org/wiki/Giga-">Wikipedia: Giga</a>  
    -082     */
    -083    GIGA("G", 9),
    -084    /** Prefix for 10<sup>6</sup>. 
    -085     * @see <a href="https://en.wikipedia.org/wiki/Mega-">Wikipedia: Mega</a> */
    -086    MEGA("M", 6),
    -087    /** Prefix for 10<sup>3</sup>.
    -088     * @see <a href="https://en.wikipedia.org/wiki/Kilo-">Wikipedia: Kilo</a> 
    -089     */
    -090    KILO("k", 3),
    -091    /** Prefix for 10<sup>2</sup>. 
    -092     * @see <a href="https://en.wikipedia.org/wiki/Hecto-">Wikipedia: Hecto</a> */
    -093    HECTO("h", 2),
    -094    /** Prefix for 10<sup>1</sup>. 
    -095     * @see <a href="https://en.wikipedia.org/wiki/Deca-">Wikipedia: Deca</a> */
    -096    DECA("da", 1),
    -097    /** Prefix for 10<sup>-1</sup>. 
    -098     * @see <a href="https://en.wikipedia.org/wiki/Deci-">Wikipedia: Deci</a> */
    -099    DECI("d", -1),
    -100    /** Prefix for 10<sup>-2</sup>.
    -101     * @see <a href="https://en.wikipedia.org/wiki/Centi-">Wikipedia: Centi</a> */     
    -102    CENTI("c", -2),
    -103    /** Prefix for 10<sup>-3</sup>.
    -104     * @see <a href="https://en.wikipedia.org/wiki/Milli-">Wikipedia: Milli</a> */
    -105    MILLI("m", -3),
    -106    /** Prefix for 10<sup>-6</sup>.
    -107     * @see <a href="https://en.wikipedia.org/wiki/Micro-">Wikipedia: Micro</a> */
    -108    MICRO("\u00b5", -6),
    -109    /** Prefix for 10<sup>-9</sup>.
    -110     * @see <a href="https://en.wikipedia.org/wiki/Nano-">Wikipedia: Nano</a> */
    -111    NANO("n", -9),
    -112    /** Prefix for 10<sup>-12</sup>. */
    -113    PICO("p", -12),
    -114    /** Prefix for 10<sup>-15</sup>. */
    -115    FEMTO("f", -15),
    -116    /** Prefix for 10<sup>-18</sup>. */
    -117    ATTO("a", -18),
    -118    /** Prefix for 10<sup>-21</sup>. */
    -119    ZEPTO("z", -21),
    -120    /** Prefix for 10<sup>-24</sup>. */
    -121    YOCTO("y", -24),
    -122        /** Prefix for 10<sup>-27</sup>. */
    -123    RONTO("r", -27),
    -124    /** Prefix for 10<sup>-30</sup>. */
    -125    QUECTO("q", -30);
    -126
    -127    /**
    -128     * The symbol of this prefix, as returned by {@link #getSymbol}.
    -129     *
    -130     * @serial
    -131     * @see #getSymbol()
    -132     */
    -133    private final String symbol;
    -134
    -135    /**
    -136     * Exponent part of the associated factor in base^exponent representation.
    -137     */
    -138    private final int exponent;
    -139
    -140    /**
    -141     * Creates a new prefix.
    -142     *
    -143     * @param symbol
    -144     *          the symbol of this prefix.
    -145     * @param exponent
    -146     *          part of the associated factor in base^exponent representation.
    -147     */
    -148    private MetricPrefix(String symbol, int exponent) {
    -149        this.symbol = symbol;
    -150        this.exponent = exponent;
    -151    }
    -152    
    -153    /**
    -154     * Returns the specified unit multiplied by the factor <code>10<sup>30</sup></code>
    -155     *
    -156     * @param <Q>
    -157     *          type of the quantity measured by the unit.
    -158     * @param unit
    -159     *          any unit.
    -160     * @return <code>unit.times(1e30)</code>.
    -161     * @see #QUETTA
    -162     */
    -163    public static <Q extends Quantity<Q>> Unit<Q> QUETTA(Unit<Q> unit) {
    -164        return unit.prefix(QUETTA);
    -165    }
    -166    
    -167    /**
    -168     * Returns the specified unit multiplied by the factor <code>10<sup>27</sup></code>
    -169     *
    -170     * @param <Q>
    -171     *          type of the quantity measured by the unit.
    -172     * @param unit
    -173     *          any unit.
    -174     * @return <code>unit.times(1e27)</code>.
    -175     * @see #RONNA
    -176     */
    -177    public static <Q extends Quantity<Q>> Unit<Q> RONNA(Unit<Q> unit) {
    -178        return unit.prefix(RONNA);
    -179    }
    -180
    -181    /**
    -182     * Returns the specified unit multiplied by the factor <code>10<sup>24</sup></code>
    -183     *
    -184     * @param <Q>
    -185     *          type of the quantity measured by the unit.
    -186     * @param unit
    -187     *          any unit.
    -188     * @return <code>unit.times(1e24)</code>.
    -189     * @see #YOTTA
    -190     */
    -191    public static <Q extends Quantity<Q>> Unit<Q> YOTTA(Unit<Q> unit) {
    -192        return unit.prefix(YOTTA);
    -193    }
    -194
    -195    /**
    -196     * Returns the specified unit multiplied by the factor <code>10<sup>21</sup></code>
    -197     *
    -198     * @param <Q>
    -199     *          type of the quantity measured by the unit.
    -200     * @param unit
    -201     *          any unit.
    -202     * @return <code>unit.times(1e21)</code>.
    -203     * @see #ZETTA
    -204     */
    -205    public static <Q extends Quantity<Q>> Unit<Q> ZETTA(Unit<Q> unit) {
    -206        return unit.prefix(ZETTA);
    -207    }
    -208
    -209    /**
    -210     * Returns the specified unit multiplied by the factor <code>10<sup>18</sup></code>
    -211     *
    -212     * @param <Q>
    -213     *          type of the quantity measured by the unit.
    -214     * @param unit
    -215     *          any unit.
    -216     * @return <code>unit.times(1e18)</code>.
    -217     * @see #EXA
    -218     */
    -219    public static <Q extends Quantity<Q>> Unit<Q> EXA(Unit<Q> unit) {
    -220        return unit.prefix(EXA);
    -221    }
    -222
    -223    /**
    -224     * Returns the specified unit multiplied by the factor <code>10<sup>15</sup></code>
    -225     *
    -226     * @param <Q>
    -227     *          type of the quantity measured by the unit.
    -228     * @param unit
    -229     *          any unit.
    -230     * @return <code>unit.times(1e15)</code>.
    -231     * @see #PETA
    -232     */
    -233    public static <Q extends Quantity<Q>> Unit<Q> PETA(Unit<Q> unit) {
    -234        return unit.prefix(PETA);
    -235    }
    -236
    -237    /**
    -238     * Returns the specified unit multiplied by the factor <code>10<sup>12</sup></code>
    -239     *
    -240     * @param <Q>
    -241     *          type of the quantity measured by the unit.
    -242     * @param unit
    -243     *          any unit.
    -244     * @return <code>unit.times(1e12)</code>.
    -245     * @see #TERA
    -246     */
    -247    public static <Q extends Quantity<Q>> Unit<Q> TERA(Unit<Q> unit) {
    -248        return unit.prefix(TERA);
    -249    }
    -250
    -251    /**
    -252     * Returns the specified unit multiplied by the factor <code>10<sup>9</sup></code>
    -253     *
    -254     * @param <Q>
    -255     *          type of the quantity measured by the unit.
    -256     * @param unit
    -257     *          any unit.
    -258     * @return <code>unit.times(1e9)</code>.
    -259     * @see #GIGA
    -260     */
    -261    public static <Q extends Quantity<Q>> Unit<Q> GIGA(Unit<Q> unit) {
    -262        return unit.prefix(GIGA);
    -263    }
    -264
    -265    /**
    -266     * Returns the specified unit multiplied by the factor <code>10<sup>6</sup></code>
    -267     *
    -268     * @param <Q>
    -269     *          type of the quantity measured by the unit.
    -270     * @param unit
    -271     *          any unit.
    -272     * @return <code>unit.times(1e6)</code>.
    -273     * @see #MEGA
    -274     */
    -275    public static <Q extends Quantity<Q>> Unit<Q> MEGA(Unit<Q> unit) {
    -276        return unit.prefix(MEGA);
    -277    }
    -278
    -279    /**
    -280     * Returns the specified unit multiplied by the factor <code>10<sup>3</sup></code>
    -281     *
    -282     * @param <Q>
    -283     *          type of the quantity measured by the unit.
    -284     * @param unit
    -285     *          any unit.
    -286     * @return <code>unit.times(1e3)</code>.
    -287     * @see #KILO
    -288     */
    -289    public static <Q extends Quantity<Q>> Unit<Q> KILO(Unit<Q> unit) {
    -290        return unit.prefix(KILO);
    -291    }
    -292
    -293    /**
    -294     * Returns the specified unit multiplied by the factor <code>10<sup>2</sup></code>
    -295     *
    -296     * @param <Q>
    -297     *          type of the quantity measured by the unit.
    -298     * @param unit
    -299     *          any unit.
    -300     * @return <code>unit.times(1e2)</code>.
    -301     * @see #HECTO
    -302     */
    -303    public static <Q extends Quantity<Q>> Unit<Q> HECTO(Unit<Q> unit) {
    -304        return unit.prefix(HECTO);
    -305    }
    -306
    -307    /**
    -308     * Returns the specified unit multiplied by the factor <code>10<sup>1</sup></code>
    -309     *
    -310     * @param <Q>
    -311     *          type of the quantity measured by the unit.
    -312     * @param unit
    -313     *          any unit.
    -314     * @return <code>unit.times(1e1)</code>.
    -315     * @see #DECA
    -316     */
    -317    public static <Q extends Quantity<Q>> Unit<Q> DECA(Unit<Q> unit) {
    -318        return unit.prefix(DECA);
    -319    }
    -320    
    -321    /**
    -322     * US alias for <code>DECA</code>.
    -323     *
    -324     * @param <Q>
    -325     *          type of the quantity measured by the unit.
    -326     * @param unit
    -327     *          any unit.
    -328     * @return <code>unit.times(1e1)</code>.
    -329     * @see #DECA
    -330     */
    -331    public static <Q extends Quantity<Q>> Unit<Q> DEKA(Unit<Q> unit) {
    -332        return unit.prefix(DECA);
    -333    }
    -334
    -335    /**
    -336     * Returns the specified unit multiplied by the factor <code>10<sup>-1</sup></code>
    -337     *
    -338     * @param <Q>
    -339     *          type of the quantity measured by the unit.
    -340     * @param unit
    -341     *          any unit.
    -342     * @return <code>unit.times(1e-1)</code>.
    -343     * @see #DECI 
    -344     */
    -345    public static <Q extends Quantity<Q>> Unit<Q> DECI(Unit<Q> unit) {
    -346        return unit.prefix(DECI);
    -347    }
    -348
    -349    /**
    -350     * Returns the specified unit multiplied by the factor <code>10<sup>-2</sup></code>
    -351     *
    -352     * @param <Q>
    -353     *          type of the quantity measured by the unit.
    -354     * @param unit
    -355     *          any unit.
    -356     * @return <code>unit.times(1e-2)</code>.
    -357     * @see #CENTI
    -358     */
    -359    public static <Q extends Quantity<Q>> Unit<Q> CENTI(Unit<Q> unit) {
    -360        return unit.prefix(CENTI);
    -361    }
    -362
    -363    /**
    -364     * Returns the specified unit multiplied by the factor <code>10<sup>-3</sup></code>
    -365     *
    -366     * @param <Q>
    -367     *          type of the quantity measured by the unit.
    -368     * @param unit
    -369     *          any unit.
    -370     * @return <code>unit.times(1e-3)</code>.
    -371     * @see #MILLI
    -372     */
    -373    public static <Q extends Quantity<Q>> Unit<Q> MILLI(Unit<Q> unit) {
    -374        return unit.prefix(MILLI);
    -375    }
    -376
    -377    /**
    -378     * Returns the specified unit multiplied by the factor <code>10<sup>-6</sup></code>
    -379     *
    -380     * @param <Q>
    -381     *          type of the quantity measured by the unit.
    -382     * @param unit
    -383     *          any unit.
    -384     * @return <code>unit.times(1e-6)</code>.
    -385     * @see #MICRO 
    -386     */
    -387    public static <Q extends Quantity<Q>> Unit<Q> MICRO(Unit<Q> unit) {
    -388        return unit.prefix(MICRO);
    -389    }
    -390
    -391    /**
    -392     * Returns the specified unit multiplied by the factor <code>10<sup>-9</sup></code>
    -393     *
    -394     * @param <Q>
    -395     *          type of the quantity measured by the unit.
    -396     * @param unit
    -397     *          any unit.
    -398     * @return <code>unit.times(1e-9)</code>.
    -399     * @see #NANO 
    -400     */
    -401    public static <Q extends Quantity<Q>> Unit<Q> NANO(Unit<Q> unit) {
    -402        return unit.prefix(NANO);
    -403    }
    -404
    -405    /**
    -406     * Returns the specified unit multiplied by the factor <code>10<sup>-12</sup></code>
    -407     *
    -408     * @param <Q>
    -409     *          type of the quantity measured by the unit.
    -410     * @param unit
    -411     *          any unit.
    -412     * @return <code>unit.times(1e-12)</code>.
    -413     * @see #PICO
    -414     */
    -415    public static <Q extends Quantity<Q>> Unit<Q> PICO(Unit<Q> unit) {
    -416        return unit.prefix(PICO);
    -417    }
    -418
    -419    /**
    -420     * Returns the specified unit multiplied by the factor <code>10<sup>-15</sup></code>
    -421     *
    -422     * @param <Q>
    -423     *          type of the quantity measured by the unit.
    -424     * @param unit
    -425     *          any unit.
    -426     * @return <code>unit.times(1e-15)</code>.
    -427     * @see #FEMTO
    -428     */
    -429    public static <Q extends Quantity<Q>> Unit<Q> FEMTO(Unit<Q> unit) {
    -430        return unit.prefix(FEMTO);
    -431    }
    -432
    -433    /**
    -434     * Returns the specified unit multiplied by the factor <code>10<sup>-18</sup></code>
    -435     *
    -436     * @param <Q>
    -437     *          type of the quantity measured by the unit.
    -438     * @param unit
    -439     *          any unit.
    -440     * @return <code>unit.times(1e-18)</code>.
    -441     * @see #ATTO 
    -442     */
    -443    public static <Q extends Quantity<Q>> Unit<Q> ATTO(Unit<Q> unit) {
    -444        return unit.prefix(ATTO);
    -445    }
    -446
    -447    /**
    -448     * Returns the specified unit multiplied by the factor <code>10<sup>-21</sup></code>
    -449     *
    -450     * @param <Q>
    -451     *          type of the quantity measured by the unit.
    -452     * @param unit
    -453     *          any unit.
    -454     * @return <code>unit.times(1e-21)</code>.
    -455     * #see ZEPTO
    -456     */
    -457    public static <Q extends Quantity<Q>> Unit<Q> ZEPTO(Unit<Q> unit) {
    -458        return unit.prefix(ZEPTO);
    -459    }
    -460
    -461    /**
    -462     * Returns the specified unit multiplied by the factor <code>10<sup>-24</sup></code>
    -463     *
    -464     * @param <Q>
    -465     *          type of the quantity measured by the unit.
    -466     * @param unit
    -467     *          any unit.
    -468     * @return <code>unit.times(1e-24)</code>.
    -469     * @see #YOCTO
    -470     */
    -471    public static <Q extends Quantity<Q>> Unit<Q> YOCTO(Unit<Q> unit) {
    -472        return unit.prefix(YOCTO);
    -473    }
    -474    
    -475    /**
    -476     * Returns the specified unit multiplied by the factor <code>10<sup>-27</sup></code>
    -477     *
    -478     * @param <Q>
    -479     *          type of the quantity measured by the unit.
    -480     * @param unit
    -481     *          any unit.
    -482     * @return <code>unit.times(1e-27)</code>.
    -483     * @see #RONTO
    -484     */
    -485    public static <Q extends Quantity<Q>> Unit<Q> RONTO(Unit<Q> unit) {
    -486        return unit.prefix(RONTO);
    -487    }
    -488
    -489    /**
    -490     * Returns the specified unit multiplied by the factor <code>10<sup>-30</sup></code>
    -491     *
    -492     * @param <Q>
    -493     *          type of the quantity measured by the unit.
    -494     * @param unit
    -495     *          any unit.
    -496     * @return <code>unit.times(1e-30)</code>.
    -497     * @see #QUECTO
    -498     */
    -499    public static <Q extends Quantity<Q>> Unit<Q> QUECTO(Unit<Q> unit) {
    -500        return unit.prefix(QUECTO);
    -501    }
    -502    
    -503    /**
    -504     * Returns the symbol of this prefix.
    -505     *
    -506     * @return this prefix symbol, not {@code null}.
    -507     */
    -508    @Override
    -509    public String getSymbol() {
    -510        return symbol;
    -511    }
    -512
    -513    /**
    -514     * Base part of the associated factor in {@code base^exponent} representation. For metric prefix, this is always 10.
    -515     */
    -516    @Override
    -517    public Integer getValue() {
    -518        return 10;
    -519    }
    -520
    -521    /**
    -522     * Exponent part of the associated factor in {@code base^exponent} representation.
    -523     */
    -524    @Override
    -525    public int getExponent() {
    -526        return exponent;
    -527    }
    -528
    -529    /**
    -530     * Returns the name of this prefix.
    -531     *
    -532     * @return this prefix name, not {@code null}.
    -533     */
    -534    @Override
    -535    public String getName() {
    -536        return name();
    -537    }
    -538}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/apidocs/src-html/javax/measure/Prefix.html b/docs/apidocs/src-html/javax/measure/Prefix.html deleted file mode 100644 index ce79e29a..00000000 --- a/docs/apidocs/src-html/javax/measure/Prefix.html +++ /dev/null @@ -1,148 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure;
    -031
    -032/**
    -033 * A unit prefix is a specifier or mnemonic that is prepended to units of measurement to indicate multiples or fractions of the units.
    -034 *
    -035 * @see <a href="https://en.wikipedia.org/wiki/Unit_prefix">Wikipedia: Unit Prefix</a>
    -036 * @author <a href="mailto:werner@uom.technology">Werner Keil</a>
    -037 * @version 1.4, April 3, 2023
    -038 * @since 2.0
    -039 */
    -040public interface Prefix {
    -041    /**
    -042     * Returns the name of this prefix.
    -043     *
    -044     * @return this prefix name, not {@code null}.
    -045     */
    -046    String getName();
    -047
    -048    /**
    -049     * Returns the symbol of this prefix.
    -050     *
    -051     * @return this prefix symbol, not {@code null}.
    -052     */
    -053    public String getSymbol();
    -054
    -055    /**
    -056     * Returns the value of this prefix. If the {@code exponent} is different from {@code 1}, this value is the {@code base} part of the associated
    -057     * factor in {@code base^exponent} representation.
    -058     * 
    -059     * @return The prefix value.
    -060     */
    -061    Number getValue();
    -062
    -063    /**
    -064     * Exponent part of the associated factor in {@code base^exponent} representation. For different factors, e.g. rational numbers like {@code 1/4}
    -065     * the exponent is always {@code 1}.
    -066     *
    -067     * @return the exponent part of this prefix.
    -068     */
    -069    int getExponent();
    -070}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/apidocs/src-html/javax/measure/Quantity.Scale.html b/docs/apidocs/src-html/javax/measure/Quantity.Scale.html deleted file mode 100644 index e6e94aaa..00000000 --- a/docs/apidocs/src-html/javax/measure/Quantity.Scale.html +++ /dev/null @@ -1,394 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure;
    -031
    -032/**
    -033 * Represents a quantitative property of a phenomenon, body, or substance, that
    -034 * can be quantified by measurement. {@link javax.measure.quantity.Mass Mass},
    -035 * time, distance, heat, and angular separation are among the familiar examples
    -036 * of quantitative properties.
    -037 * <p>
    -038 * <code> {@literal Unit<Mass>} pound = ... {@literal Quantity<Length>} size = ... {@literal Sensor<Temperature>}<br>
    -039 * thermometer = ... {@literal Vector3D<Speed>} aircraftSpeed = ... </code>
    -040 * </p>
    -041 *
    -042 * <dl>
    -043 * <dt><span class="strong">Arithmetic operations</span></dt>
    -044 * </dl> 
    -045 * This interface defines some arithmetic operations between {@code Quantity}
    -046 * instances. All implementations shall produce <em>equivalent</em> results for
    -047 * the same operation applied on equivalent quantities. Two quantities are
    -048 * equivalent if, after conversion to the same unit of measurement, they have
    -049 * the same numerical value (ignoring rounding errors). For example 2000 metres
    -050 * is equivalent to 2 km, but 2°C is not equivalent to 2 K; it is equivalent to
    -051 * 275.15 K instead. Above requirement applied to addition means that 2°C + 2 K
    -052 * shall be equivalent to 275.15 K + 2 K.
    -053 *
    -054 * <p>All operations shall preserve the
    -055 * <a href="https://en.wikiversity.org/wiki/Basic_Laws_of_Algebra">basic laws
    -056 * of algebra</a>, in particular <b>commutativity</b> of addition and
    -057 * multiplication (<var>A</var> + <var>B</var> = <var>B</var> + <var>A</var>)
    -058 * and <b>associativity</b> of addition and multiplication (<var>A</var> +
    -059 * <var>B</var>) + <var>C</var> = <var>A</var> + (<var>B</var> + <var>C</var>).
    -060 * In order to preserve those algebra laws, this specification requires all
    -061 * arithmetic operations to execute <em>as is</em> all operands were converted
    -062 * to {@linkplain Unit#getSystemUnit() system unit} before the operation is
    -063 * carried out, and the result converted back to any compatible unit at
    -064 * implementation choice. For example 4 cm + 1 inch shall produce any result
    -065 * <em>equivalent</em> to 0.04 m + 0.0254 m.</p>
    -066 *
    -067 * <p>Implementations are allowed to avoid conversion to system unit if the
    -068 * result is guaranteed to be equivalent. This is often the case when the
    -069 * conversion between quantity unit and system unit is only a
    -070 * {@linkplain UnitConverter#isLinear() scale factor}. However this is not
    -071 * the case for conversions applying an offset or more complex formula.
    -072 * For example 2°C + 1°C = 274.15°C, not 3°C. This counter-intuitive result
    -073 * is essential for preserving algebra laws like associativity, and is also
    -074 * the expected result from a thermodynamic point of view.</p>
    -075 *
    -076 * <dl>
    -077 * <dt><span class="strong">API Note:</span></dt><dd>This interface places no restrictions on the mutability of
    -078 *          implementations, however immutability is strongly recommended. All
    -079 *          implementations must be {@link Comparable}.</dd>
    -080 * </dl>
    -081 *
    -082 * @param <Q>
    -083 *            The type of the quantity.
    -084 *
    -085 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -086 * @author <a href="mailto:martin.desruisseaux@geomatys.com">Martin
    -087 *         Desruisseaux</a>
    -088 * @author <a href="mailto:werner@uom.technology">Werner Keil</a>
    -089 * @author <a href="mailto:otaviopolianasantana@gmail.com">Otavio Santana</a>
    -090 * @see Unit
    -091 * @see <a href="http://en.wikipedia.org/wiki/Quantity">Wikipedia: Quantity</a>
    -092 * @see <a href="http://martinfowler.com/eaaDev/quantity.html">Martin Fowler -
    -093 *      Quantity</a>
    -094 * @version 2.5, May 20, 2023
    -095 * @since 1.0
    -096 */
    -097public interface Quantity<Q extends Quantity<Q>> {
    -098    
    -099   /**
    -100    * The scale of a {@link Quantity}, either {@code ABSOLUTE} or {@code RELATIVE}.
    -101    *
    -102    * @since 2.0
    -103    * @see <a href="https://en.wikipedia.org/wiki/Absolute_scale">Wikipedia: Absolute scale</a>
    -104    */
    -105    public static enum Scale {
    -106        /** 
    -107         * Absolute scale
    -108         * @see <a href="https://en.wikipedia.org/wiki/Absolute_scale">Wikipedia: Absolute scale</a> 
    -109         */
    -110        ABSOLUTE, 
    -111        /** 
    -112         * Relative scale 
    -113         */
    -114        RELATIVE
    -115    }
    -116       
    -117    /**
    -118     * Returns the sum of this {@code Quantity} with the one specified.
    -119     * The result shall be as if this quantity and the given addend were
    -120     * converted to {@linkplain Unit#getSystemUnit() system unit} before
    -121     * to be added, and the result converted back to the unit of this
    -122     * quantity or any other compatible unit at implementation choice.
    -123     *
    -124     * @param addend
    -125     *            the {@code Quantity} to be added.
    -126     * @return {@code this + addend}.
    -127     */
    -128    Quantity<Q> add(Quantity<Q> addend);
    -129
    -130    /**
    -131     * Returns the difference between this {@code Quantity} and the one specified.
    -132     * The result shall be as if this quantity and the given subtrahend were
    -133     * converted to {@linkplain Unit#getSystemUnit() system unit} before
    -134     * to be subtracted, and the result converted back to the unit of this
    -135     * quantity or any other compatible unit at implementation choice.
    -136     *
    -137     * @param subtrahend
    -138     *            the {@code Quantity} to be subtracted.
    -139     * @return <code>this - subtrahend</code>.
    -140     */
    -141    Quantity<Q> subtract(Quantity<Q> subtrahend);
    -142
    -143    /**
    -144     * Returns the quotient of this {@code Quantity} divided by the {@code Quantity}
    -145     * specified.
    -146     * The result shall be as if this quantity and the given divisor were
    -147     * converted to {@linkplain Unit#getSystemUnit() system unit} before
    -148     * to be divided, and the result converted back to the unit of this
    -149     * quantity or any other compatible unit at implementation choice.
    -150     *
    -151     * @throws ClassCastException
    -152     *             if the type of an element in the specified operation is
    -153     *             incompatible with this quantity
    -154     *
    -155     * @param divisor
    -156     *            the {@code Quantity} divisor.
    -157     * @return <code>this / divisor</code>.
    -158     */
    -159    Quantity<?> divide(Quantity<?> divisor);
    -160
    -161    /**
    -162     * Returns the quotient of this {@code Quantity} divided by the {@code Number}
    -163     * specified.
    -164     * The result shall be as if this quantity was converted to
    -165     * {@linkplain Unit#getSystemUnit() system unit} before to be divided,
    -166     * and the result converted back to the unit of this quantity or any
    -167     * other compatible unit at implementation choice.
    -168     *
    -169     * @param divisor
    -170     *            the {@code Number} divisor.
    -171     * @return <code>this / divisor</code>.
    -172     */
    -173    Quantity<Q> divide(Number divisor);
    -174
    -175    /**
    -176     * Returns the product of this {@code Quantity} with the one specified.
    -177     * The result shall be as if this quantity and the given multiplicand were
    -178     * converted to {@linkplain Unit#getSystemUnit() system unit} before
    -179     * to be multiplied, and the result converted back to the unit of this
    -180     * quantity or any other compatible unit at implementation choice.
    -181     *
    -182     * @throws ClassCastException
    -183     *             if the type of an element in the specified operation is
    -184     *             incompatible with this quantity
    -185     *
    -186     * @param multiplicand
    -187     *            the {@code Quantity} multiplicand.
    -188     * @return <code>this * multiplicand</code>.
    -189     */
    -190    Quantity<?> multiply(Quantity<?> multiplicand);
    -191
    -192    /**
    -193     * Returns the product of this {@code Quantity} with the {@code Number} value
    -194     * specified.
    -195     * The result shall be as if this quantity was converted to
    -196     * {@linkplain Unit#getSystemUnit() system unit} before to be multiplied,
    -197     * and the result converted back to the unit of this quantity or any
    -198     * other compatible unit at implementation choice.
    -199     *
    -200     * @param multiplicand
    -201     *            the {@code Number} multiplicand.
    -202     * @return <code>this * multiplicand</code>.
    -203     */
    -204    Quantity<Q> multiply(Number multiplicand);
    -205
    -206    /**
    -207     * Returns this {@code Quantity} converted into another (compatible)
    -208     * {@code Unit}.
    -209     *
    -210     * @param unit
    -211     *            the {@code Unit unit} in which the returned quantity is stated.
    -212     * @return this quantity or a new quantity equivalent to this quantity stated in the specified unit.
    -213     * @throws ArithmeticException
    -214     *             if the result is inexact and the quotient has a non-terminating decimal expansion.
    -215     */
    -216    Quantity<Q> to(Unit<Q> unit);
    -217
    -218    /**
    -219     * Returns a {@code Quantity} that is the multiplicative inverse of this
    -220     * {@code Quantity}, having reciprocal value and reciprocal unit as given by
    -221     * {@code this.getUnit().inverse()}.
    -222     *
    -223     * @return reciprocal {@code Quantity}
    -224     * @see <a href=
    -225     *      "https://en.wikipedia.org/wiki/Multiplicative_inverse">Wikipedia:
    -226     *      Multiplicative inverse</a>
    -227     */
    -228    Quantity<?> inverse();
    -229
    -230    /**
    -231     * Returns a {@code Quantity} whose value is {@code (-this.getValue())}.
    -232     *
    -233     * @return {@code -this}.
    -234     */
    -235    Quantity<Q> negate();
    -236
    -237    /**
    -238     * Casts this quantity to a parameterized unit of specified nature or throw a
    -239     * <code>ClassCastException</code> if the dimension of the specified quantity
    -240     * and this measure unit's dimension do not match. For example:
    -241     * <p>
    -242     * <code>
    -243     *     {@literal Quantity<Length>} length = Quantities.getQuantity("2 km").asType(Length.class);
    -244     * </code> or <code>
    -245     *     {@literal Quantity<Speed>} C = length.multiply(299792458).divide(second).asType(Speed.class);
    -246     * </code>
    -247     * </p>
    -248     *
    -249     * @param <T>
    -250     *            The type of the quantity.
    -251     * @param type
    -252     *            the quantity class identifying the nature of the quantity.
    -253     * @return this quantity parameterized with the specified type.
    -254     * @throws ClassCastException
    -255     *             if the dimension of this unit is different from the specified
    -256     *             quantity dimension.
    -257     * @throws UnsupportedOperationException
    -258     *             if the specified quantity class does not have a SI unit for the
    -259     *             quantity.
    -260     * @see Unit#asType(Class)
    -261     */
    -262    <T extends Quantity<T>> Quantity<T> asType(Class<T> type) throws ClassCastException;
    -263
    -264    /**
    -265     * Returns the value of this {@code Quantity}.
    -266     *
    -267     * @return a value.
    -268     */
    -269    Number getValue();
    -270
    -271    /**
    -272     * Returns the unit of this {@code Quantity}.
    -273     *
    -274     * @return the unit (shall not be {@code null}).
    -275     */
    -276    Unit<Q> getUnit();
    -277    
    -278    /**
    -279     * Convenient method equivalent to {@link #to(javax.measure.Unit)
    -280     * to(getUnit().toSystemUnit())}.
    -281     *
    -282     * @return this quantity or a new quantity equivalent to this quantity stated in
    -283     *         SI units.
    -284     * @throws ArithmeticException
    -285     *             if the result is inexact and the quotient has a non-terminating
    -286     *             decimal expansion.
    -287     */
    -288    default Quantity<Q> toSystemUnit() {
    -289        return to(getUnit().getSystemUnit());
    -290    }
    -291      
    -292    /**
    -293     * Returns the {@code Scale} of this {@code Quantity}, if it's absolute or relative.
    -294     *
    -295     * @return the scale, if it's an absolute or relative quantity.
    -296     * @since 2.0
    -297     
    -298     * @see <a href="https://en.wikipedia.org/wiki/Absolute_scale">Wikipedia: Absolute scale</a>
    -299     */
    -300    Scale getScale();
    -301    
    -302    /**
    -303     * Compares two instances of {@code Quantity <Q>}, performing the conversion of units if necessary.
    -304     *
    -305     * @param that
    -306     *          the {@code quantity<Q>} to be compared with this instance.
    -307     * @return {@code true} if {@code that \u2261 this}.
    -308     * @throws NullPointerException
    -309     *           if the quantity is null
    -310     *           
    -311     * @see <a href= "https://dictionary.cambridge.org/dictionary/english/equivalent">Cambridge Dictionary: equivalent</a>
    -312     * @see <a href= "https://www.lexico.com/en/definition/equivalent">LEXICO: equivalent</a>
    -313     * @since 2.1       
    -314     */
    -315    boolean isEquivalentTo(Quantity<Q> that);
    -316}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/apidocs/src-html/javax/measure/Quantity.html b/docs/apidocs/src-html/javax/measure/Quantity.html deleted file mode 100644 index 08639a40..00000000 --- a/docs/apidocs/src-html/javax/measure/Quantity.html +++ /dev/null @@ -1,394 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure;
    -031
    -032/**
    -033 * Represents a quantitative property of a phenomenon, body, or substance, that
    -034 * can be quantified by measurement. {@link javax.measure.quantity.Mass Mass},
    -035 * time, distance, heat, and angular separation are among the familiar examples
    -036 * of quantitative properties.
    -037 * <p>
    -038 * <code> {@literal Unit<Mass>} pound = ... {@literal Quantity<Length>} size = ... {@literal Sensor<Temperature>}<br>
    -039 * thermometer = ... {@literal Vector3D<Speed>} aircraftSpeed = ... </code>
    -040 * </p>
    -041 *
    -042 * <dl>
    -043 * <dt><span class="strong">Arithmetic operations</span></dt>
    -044 * </dl> 
    -045 * This interface defines some arithmetic operations between {@code Quantity}
    -046 * instances. All implementations shall produce <em>equivalent</em> results for
    -047 * the same operation applied on equivalent quantities. Two quantities are
    -048 * equivalent if, after conversion to the same unit of measurement, they have
    -049 * the same numerical value (ignoring rounding errors). For example 2000 metres
    -050 * is equivalent to 2 km, but 2°C is not equivalent to 2 K; it is equivalent to
    -051 * 275.15 K instead. Above requirement applied to addition means that 2°C + 2 K
    -052 * shall be equivalent to 275.15 K + 2 K.
    -053 *
    -054 * <p>All operations shall preserve the
    -055 * <a href="https://en.wikiversity.org/wiki/Basic_Laws_of_Algebra">basic laws
    -056 * of algebra</a>, in particular <b>commutativity</b> of addition and
    -057 * multiplication (<var>A</var> + <var>B</var> = <var>B</var> + <var>A</var>)
    -058 * and <b>associativity</b> of addition and multiplication (<var>A</var> +
    -059 * <var>B</var>) + <var>C</var> = <var>A</var> + (<var>B</var> + <var>C</var>).
    -060 * In order to preserve those algebra laws, this specification requires all
    -061 * arithmetic operations to execute <em>as is</em> all operands were converted
    -062 * to {@linkplain Unit#getSystemUnit() system unit} before the operation is
    -063 * carried out, and the result converted back to any compatible unit at
    -064 * implementation choice. For example 4 cm + 1 inch shall produce any result
    -065 * <em>equivalent</em> to 0.04 m + 0.0254 m.</p>
    -066 *
    -067 * <p>Implementations are allowed to avoid conversion to system unit if the
    -068 * result is guaranteed to be equivalent. This is often the case when the
    -069 * conversion between quantity unit and system unit is only a
    -070 * {@linkplain UnitConverter#isLinear() scale factor}. However this is not
    -071 * the case for conversions applying an offset or more complex formula.
    -072 * For example 2°C + 1°C = 274.15°C, not 3°C. This counter-intuitive result
    -073 * is essential for preserving algebra laws like associativity, and is also
    -074 * the expected result from a thermodynamic point of view.</p>
    -075 *
    -076 * <dl>
    -077 * <dt><span class="strong">API Note:</span></dt><dd>This interface places no restrictions on the mutability of
    -078 *          implementations, however immutability is strongly recommended. All
    -079 *          implementations must be {@link Comparable}.</dd>
    -080 * </dl>
    -081 *
    -082 * @param <Q>
    -083 *            The type of the quantity.
    -084 *
    -085 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -086 * @author <a href="mailto:martin.desruisseaux@geomatys.com">Martin
    -087 *         Desruisseaux</a>
    -088 * @author <a href="mailto:werner@uom.technology">Werner Keil</a>
    -089 * @author <a href="mailto:otaviopolianasantana@gmail.com">Otavio Santana</a>
    -090 * @see Unit
    -091 * @see <a href="http://en.wikipedia.org/wiki/Quantity">Wikipedia: Quantity</a>
    -092 * @see <a href="http://martinfowler.com/eaaDev/quantity.html">Martin Fowler -
    -093 *      Quantity</a>
    -094 * @version 2.5, May 20, 2023
    -095 * @since 1.0
    -096 */
    -097public interface Quantity<Q extends Quantity<Q>> {
    -098    
    -099   /**
    -100    * The scale of a {@link Quantity}, either {@code ABSOLUTE} or {@code RELATIVE}.
    -101    *
    -102    * @since 2.0
    -103    * @see <a href="https://en.wikipedia.org/wiki/Absolute_scale">Wikipedia: Absolute scale</a>
    -104    */
    -105    public static enum Scale {
    -106        /** 
    -107         * Absolute scale
    -108         * @see <a href="https://en.wikipedia.org/wiki/Absolute_scale">Wikipedia: Absolute scale</a> 
    -109         */
    -110        ABSOLUTE, 
    -111        /** 
    -112         * Relative scale 
    -113         */
    -114        RELATIVE
    -115    }
    -116       
    -117    /**
    -118     * Returns the sum of this {@code Quantity} with the one specified.
    -119     * The result shall be as if this quantity and the given addend were
    -120     * converted to {@linkplain Unit#getSystemUnit() system unit} before
    -121     * to be added, and the result converted back to the unit of this
    -122     * quantity or any other compatible unit at implementation choice.
    -123     *
    -124     * @param addend
    -125     *            the {@code Quantity} to be added.
    -126     * @return {@code this + addend}.
    -127     */
    -128    Quantity<Q> add(Quantity<Q> addend);
    -129
    -130    /**
    -131     * Returns the difference between this {@code Quantity} and the one specified.
    -132     * The result shall be as if this quantity and the given subtrahend were
    -133     * converted to {@linkplain Unit#getSystemUnit() system unit} before
    -134     * to be subtracted, and the result converted back to the unit of this
    -135     * quantity or any other compatible unit at implementation choice.
    -136     *
    -137     * @param subtrahend
    -138     *            the {@code Quantity} to be subtracted.
    -139     * @return <code>this - subtrahend</code>.
    -140     */
    -141    Quantity<Q> subtract(Quantity<Q> subtrahend);
    -142
    -143    /**
    -144     * Returns the quotient of this {@code Quantity} divided by the {@code Quantity}
    -145     * specified.
    -146     * The result shall be as if this quantity and the given divisor were
    -147     * converted to {@linkplain Unit#getSystemUnit() system unit} before
    -148     * to be divided, and the result converted back to the unit of this
    -149     * quantity or any other compatible unit at implementation choice.
    -150     *
    -151     * @throws ClassCastException
    -152     *             if the type of an element in the specified operation is
    -153     *             incompatible with this quantity
    -154     *
    -155     * @param divisor
    -156     *            the {@code Quantity} divisor.
    -157     * @return <code>this / divisor</code>.
    -158     */
    -159    Quantity<?> divide(Quantity<?> divisor);
    -160
    -161    /**
    -162     * Returns the quotient of this {@code Quantity} divided by the {@code Number}
    -163     * specified.
    -164     * The result shall be as if this quantity was converted to
    -165     * {@linkplain Unit#getSystemUnit() system unit} before to be divided,
    -166     * and the result converted back to the unit of this quantity or any
    -167     * other compatible unit at implementation choice.
    -168     *
    -169     * @param divisor
    -170     *            the {@code Number} divisor.
    -171     * @return <code>this / divisor</code>.
    -172     */
    -173    Quantity<Q> divide(Number divisor);
    -174
    -175    /**
    -176     * Returns the product of this {@code Quantity} with the one specified.
    -177     * The result shall be as if this quantity and the given multiplicand were
    -178     * converted to {@linkplain Unit#getSystemUnit() system unit} before
    -179     * to be multiplied, and the result converted back to the unit of this
    -180     * quantity or any other compatible unit at implementation choice.
    -181     *
    -182     * @throws ClassCastException
    -183     *             if the type of an element in the specified operation is
    -184     *             incompatible with this quantity
    -185     *
    -186     * @param multiplicand
    -187     *            the {@code Quantity} multiplicand.
    -188     * @return <code>this * multiplicand</code>.
    -189     */
    -190    Quantity<?> multiply(Quantity<?> multiplicand);
    -191
    -192    /**
    -193     * Returns the product of this {@code Quantity} with the {@code Number} value
    -194     * specified.
    -195     * The result shall be as if this quantity was converted to
    -196     * {@linkplain Unit#getSystemUnit() system unit} before to be multiplied,
    -197     * and the result converted back to the unit of this quantity or any
    -198     * other compatible unit at implementation choice.
    -199     *
    -200     * @param multiplicand
    -201     *            the {@code Number} multiplicand.
    -202     * @return <code>this * multiplicand</code>.
    -203     */
    -204    Quantity<Q> multiply(Number multiplicand);
    -205
    -206    /**
    -207     * Returns this {@code Quantity} converted into another (compatible)
    -208     * {@code Unit}.
    -209     *
    -210     * @param unit
    -211     *            the {@code Unit unit} in which the returned quantity is stated.
    -212     * @return this quantity or a new quantity equivalent to this quantity stated in the specified unit.
    -213     * @throws ArithmeticException
    -214     *             if the result is inexact and the quotient has a non-terminating decimal expansion.
    -215     */
    -216    Quantity<Q> to(Unit<Q> unit);
    -217
    -218    /**
    -219     * Returns a {@code Quantity} that is the multiplicative inverse of this
    -220     * {@code Quantity}, having reciprocal value and reciprocal unit as given by
    -221     * {@code this.getUnit().inverse()}.
    -222     *
    -223     * @return reciprocal {@code Quantity}
    -224     * @see <a href=
    -225     *      "https://en.wikipedia.org/wiki/Multiplicative_inverse">Wikipedia:
    -226     *      Multiplicative inverse</a>
    -227     */
    -228    Quantity<?> inverse();
    -229
    -230    /**
    -231     * Returns a {@code Quantity} whose value is {@code (-this.getValue())}.
    -232     *
    -233     * @return {@code -this}.
    -234     */
    -235    Quantity<Q> negate();
    -236
    -237    /**
    -238     * Casts this quantity to a parameterized unit of specified nature or throw a
    -239     * <code>ClassCastException</code> if the dimension of the specified quantity
    -240     * and this measure unit's dimension do not match. For example:
    -241     * <p>
    -242     * <code>
    -243     *     {@literal Quantity<Length>} length = Quantities.getQuantity("2 km").asType(Length.class);
    -244     * </code> or <code>
    -245     *     {@literal Quantity<Speed>} C = length.multiply(299792458).divide(second).asType(Speed.class);
    -246     * </code>
    -247     * </p>
    -248     *
    -249     * @param <T>
    -250     *            The type of the quantity.
    -251     * @param type
    -252     *            the quantity class identifying the nature of the quantity.
    -253     * @return this quantity parameterized with the specified type.
    -254     * @throws ClassCastException
    -255     *             if the dimension of this unit is different from the specified
    -256     *             quantity dimension.
    -257     * @throws UnsupportedOperationException
    -258     *             if the specified quantity class does not have a SI unit for the
    -259     *             quantity.
    -260     * @see Unit#asType(Class)
    -261     */
    -262    <T extends Quantity<T>> Quantity<T> asType(Class<T> type) throws ClassCastException;
    -263
    -264    /**
    -265     * Returns the value of this {@code Quantity}.
    -266     *
    -267     * @return a value.
    -268     */
    -269    Number getValue();
    -270
    -271    /**
    -272     * Returns the unit of this {@code Quantity}.
    -273     *
    -274     * @return the unit (shall not be {@code null}).
    -275     */
    -276    Unit<Q> getUnit();
    -277    
    -278    /**
    -279     * Convenient method equivalent to {@link #to(javax.measure.Unit)
    -280     * to(getUnit().toSystemUnit())}.
    -281     *
    -282     * @return this quantity or a new quantity equivalent to this quantity stated in
    -283     *         SI units.
    -284     * @throws ArithmeticException
    -285     *             if the result is inexact and the quotient has a non-terminating
    -286     *             decimal expansion.
    -287     */
    -288    default Quantity<Q> toSystemUnit() {
    -289        return to(getUnit().getSystemUnit());
    -290    }
    -291      
    -292    /**
    -293     * Returns the {@code Scale} of this {@code Quantity}, if it's absolute or relative.
    -294     *
    -295     * @return the scale, if it's an absolute or relative quantity.
    -296     * @since 2.0
    -297     
    -298     * @see <a href="https://en.wikipedia.org/wiki/Absolute_scale">Wikipedia: Absolute scale</a>
    -299     */
    -300    Scale getScale();
    -301    
    -302    /**
    -303     * Compares two instances of {@code Quantity <Q>}, performing the conversion of units if necessary.
    -304     *
    -305     * @param that
    -306     *          the {@code quantity<Q>} to be compared with this instance.
    -307     * @return {@code true} if {@code that \u2261 this}.
    -308     * @throws NullPointerException
    -309     *           if the quantity is null
    -310     *           
    -311     * @see <a href= "https://dictionary.cambridge.org/dictionary/english/equivalent">Cambridge Dictionary: equivalent</a>
    -312     * @see <a href= "https://www.lexico.com/en/definition/equivalent">LEXICO: equivalent</a>
    -313     * @since 2.1       
    -314     */
    -315    boolean isEquivalentTo(Quantity<Q> that);
    -316}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/apidocs/src-html/javax/measure/UnconvertibleException.html b/docs/apidocs/src-html/javax/measure/UnconvertibleException.html deleted file mode 100644 index 96300500..00000000 --- a/docs/apidocs/src-html/javax/measure/UnconvertibleException.html +++ /dev/null @@ -1,157 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure;
    -031
    -032/**
    -033 * Signals that a problem of some sort has occurred due to the impossibility of constructing a converter between two units. For example, the
    -034 * multiplication of offset units are usually units not convertible to their {@linkplain Unit#getSystemUnit() system unit}.
    -035 *
    -036 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -037 * @author <a href="mailto:werner@uom.technology">Werner Keil</a>
    -038 * @version 1.0, Aug 8, 2016
    -039 *
    -040 */
    -041public class UnconvertibleException extends MeasurementException {
    -042    /**
    -043     * For cross-version compatibility.
    -044     */
    -045    private static final long serialVersionUID = -4623551240019830166L;
    -046
    -047    /**
    -048     * Constructs a {@code UnconvertibleException} with the given message.
    -049     *
    -050     * @param message
    -051     *            the detail message, or {@code null} if none.
    -052     */
    -053    public UnconvertibleException(final String message) {
    -054        super(message);
    -055    }
    -056
    -057    /**
    -058     * Constructs a {@code UnconvertibleException} with the given cause.
    -059     *
    -060     * @param cause
    -061     *            the cause of this exception, or {@code null} if none.
    -062     */
    -063    public UnconvertibleException(final Throwable cause) {
    -064        super(cause);
    -065    }
    -066
    -067    /**
    -068     * Constructs a {@code UnconvertibleException} with the given message and cause.
    -069     *
    -070     * @param message
    -071     *            the detail message, or {@code null} if none.
    -072     * @param cause
    -073     *            the cause of this exception, or {@code null} if none.
    -074     *
    -075     */
    -076    public UnconvertibleException(final String message, final Throwable cause) {
    -077        super(message, cause);
    -078    }
    -079}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/apidocs/src-html/javax/measure/Unit.html b/docs/apidocs/src-html/javax/measure/Unit.html deleted file mode 100644 index 53cfc9ff..00000000 --- a/docs/apidocs/src-html/javax/measure/Unit.html +++ /dev/null @@ -1,512 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030//
    -031// This source code implements specifications defined by the Java
    -032// Community Process. In order to remain compliant with the specification
    -033// DO NOT add / change / or delete method signatures!
    -034//
    -035package javax.measure;
    -036
    -037import java.util.Map;
    -038
    -039/**
    -040 * Represents a determinate {@linkplain Quantity quantity} (as of length, time, heat, or value) adopted as a standard of measurement.
    -041 *
    -042 * <p>
    -043 * It is helpful to think of instances of this class as recording the history by which they are created. Thus, for example, the string {@code "g/kg"}
    -044 * (which is a dimensionless unit) would result from invoking the method {@link #toString()} on a unit that was created by dividing a gram unit by a
    -045 * kilogram unit.
    -046 * </p>
    -047 *
    -048 * <p>
    -049 * This interface supports the multiplication of offsets units. The result is usually a unit not convertible to its {@linkplain #getSystemUnit()
    -050 * system unit}. Such units may appear in derivative quantities. For example Celsius per meter is an unit of gradient, which is common in atmospheric
    -051 * and oceanographic research.
    -052 * </p>
    -053 *
    -054 * <p>
    -055 * Units raised at non-integral powers are not supported. For example, {@code LITRE.root(2)} raises an {@code ArithmeticException}, but
    -056 * {@code HECTARE.root(2)} returns {@code HECTOMETRE} (100 metres).
    -057 * </p>
    -058 *
    -059 * <p>
    -060 * Unit instances shall be immutable.
    -061 * </p>
    -062 *
    -063 * @param <Q>
    -064 *          The type of the quantity measured by this unit.
    -065 *
    -066 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -067 * @author <a href="mailto:steve@unidata.ucar.edu">Steve Emmerson</a>
    -068 * @author <a href="mailto:martin.desruisseaux@geomatys.com">Martin Desruisseaux</a>
    -069 * @author <a href="mailto:werner@units.tech">Werner Keil</a>
    -070 * @version 2.4, November 11, 2020
    -071 * @since 1.0
    -072 *
    -073 * @see <a href="http://en.wikipedia.org/wiki/Units_of_measurement">Wikipedia: Units of measurement</a>
    -074 */
    -075public interface Unit<Q extends Quantity<Q>> {
    -076
    -077    /*******************/
    -078    /** Units Queries **/
    -079    /*******************/
    -080
    -081    /**
    -082     * Returns the symbol (if any) of this unit. This method returns {@code null} if this unit has no specific symbol associated with.
    -083     *
    -084     * @return this unit symbol, or {@code null} if this unit has not specific symbol associated with (e.g. product of units).
    -085     *
    -086     * @see #toString()
    -087     * @see javax.measure.format.UnitFormat
    -088     */
    -089    String getSymbol();
    -090
    -091    /**
    -092     * Returns the name (if any) of this unit. This method returns {@code null} if this unit has no specific name associated with.
    -093     *
    -094     * @return this unit name, or {@code null} if this unit has not specific name associated with (e.g. product of units).
    -095     *
    -096     * @see #toString()
    -097     * @see javax.measure.format.UnitFormat
    -098     */
    -099    String getName();
    -100
    -101    /**
    -102     * Returns the dimension of this unit. Two units {@code u1} and {@code u2} are {@linkplain #isCompatible(Unit) compatible} if and only if
    -103     * {@code u1.getDimension().equals(u2.getDimension())}.
    -104     *
    -105     * @return the dimension of this unit.
    -106     *
    -107     * @see #isCompatible(Unit)
    -108     */
    -109    Dimension getDimension();
    -110
    -111    /**
    -112     * Returns the unscaled system unit from which this unit is derived. System units are either base units, {@linkplain #alternate(String) alternate}
    -113     * units or product of rational powers of system units.
    -114     *
    -115     * <p>
    -116     * Because the system unit is unique by quantity type, it can be be used to identify the quantity given the unit. For example:
    -117     * </p>
    -118     * <code>
    -119     *     static boolean isAngularSpeed(Unit&lt;?&gt; unit) {<br>
    -120     *     &nbsp;&nbsp;    return unit.getSystemUnit().equals(RADIAN.divide(SECOND));<br>
    -121     *     }<br>
    -122     *     assert isAngularSpeed(REVOLUTION.divide(MINUTE)); // Returns true.<br><br>
    -123     * </code>
    -124     *
    -125     * @return the system unit this unit is derived from, or {@code this} if this unit is a system unit.
    -126     */
    -127    Unit<Q> getSystemUnit();
    -128
    -129    /**
    -130     * Returns the base units and their exponent whose product is this unit, or {@code null} if this unit is a base unit (not a product of existing
    -131     * units).
    -132     *
    -133     * @return the base units and their exponent making up this unit.
    -134     */
    -135    Map<? extends Unit<?>, Integer> getBaseUnits();
    -136
    -137    /**
    -138     * Indicates if this unit is compatible with the unit specified. Units don't need to be equal to be compatible. For example (assuming {@code ONE}
    -139     * is a dimensionless unit):<br>
    -140     *
    -141     * <code>
    -142     *     RADIAN.equals(ONE) == false<br>
    -143     *     RADIAN.isCompatible(ONE) == true<br>
    -144     *     RADIAN.isEquivalentTo(ONE) <b>doesn't compile</b><br>
    -145     * </code>
    -146     *
    -147     * @param that
    -148     *          the other unit to compare for compatibility.
    -149     * @return {@code this.getDimension().equals(that.getDimension())}
    -150     *
    -151     * @see #getDimension()
    -152     */
    -153    boolean isCompatible(Unit<?> that);
    -154
    -155    /**
    -156     * Indicates if this unit represents the same quantity than the given unit, ignoring name and symbols.
    -157     * Two units are equivalent if the {@linkplain #getConverterTo(Unit) conversion} between them is identity.
    -158     *
    -159     * <p>
    -160     * Unlike {@link #isCompatible(Unit)} an equivalence check requires both units to be strictly type-compatible,
    -161     * because it makes no sense to compare e.g. {@code gram} and {@code mm} for equivalence.
    -162     * By contrast, the compatibility check can works across different quantity types.
    -163     * </p>
    -164     *
    -165     * @param that the {@code Unit<Q>} to be compared with this instance.
    -166     * @return {@code true} if {@code that \u2261 this}.
    -167     * @throws NullPointerException if the unit is null
    -168     *
    -169     * @see <a href= "https://dictionary.cambridge.org/dictionary/english/equivalent">Cambridge Dictionary: equivalent</a>
    -170     * @see <a href= "https://www.lexico.com/en/definition/equivalent">LEXICO: equivalent</a>
    -171     * @since 2.1
    -172     */
    -173    boolean isEquivalentTo(Unit<Q> that);
    -174
    -175    /**
    -176     * Casts this unit to a parameterized unit of specified nature or throw a {@code ClassCastException} if the dimension of the specified quantity and
    -177     * this unit's dimension do not match. For example:<br>
    -178     *
    -179     * <code>
    -180     *      {@literal Unit<Speed>} C = METRE.multiply(299792458).divide(SECOND).asType(Speed.class);
    -181     * </code>
    -182     *
    -183     * @param <T>
    -184     *          The type of the quantity measured by the unit.
    -185     * @param type
    -186     *          the quantity class identifying the nature of the unit.
    -187     * @return this unit parameterized with the specified type.
    -188     * @throws ClassCastException
    -189     *           if the dimension of this unit is different from the specified quantity dimension.
    -190     */
    -191    <T extends Quantity<T>> Unit<T> asType(Class<T> type) throws ClassCastException;
    -192
    -193    /**
    -194     * Returns a converter of numeric values from this unit to another unit of same type. This method performs the same work as
    -195     * {@link #getConverterToAny(Unit)} without raising checked exception.
    -196     *
    -197     * @param that
    -198     *          the unit of same type to which to convert the numeric values.
    -199     * @return the converter from this unit to {@code that} unit.
    -200     * @throws UnconvertibleException
    -201     *           if a converter cannot be constructed.
    -202     *
    -203     * @see #getConverterToAny(Unit)
    -204     */
    -205    UnitConverter getConverterTo(Unit<Q> that) throws UnconvertibleException;
    -206
    -207    /**
    -208     * Returns a converter from this unit to the specified unit of type unknown. This method can be used when the quantity type of the specified unit is
    -209     * unknown at compile-time or when dimensional analysis allows for conversion between units of different type.
    -210     *
    -211     * <p>
    -212     * To convert to a unit having the same parameterized type, {@link #getConverterTo(Unit)} is preferred (no checked exception raised).
    -213     * </p>
    -214     *
    -215     * @param that
    -216     *          the unit to which to convert the numeric values.
    -217     * @return the converter from this unit to {@code that} unit.
    -218     * @throws IncommensurableException
    -219     *           if this unit is not {@linkplain #isCompatible(Unit) compatible} with {@code that} unit.
    -220     * @throws UnconvertibleException
    -221     *           if a converter cannot be constructed.
    -222     *
    -223     * @see #getConverterTo(Unit)
    -224     * @see #isCompatible(Unit)
    -225     */
    -226    UnitConverter getConverterToAny(Unit<?> that) throws IncommensurableException, UnconvertibleException;
    -227
    -228    /**********************/
    -229    /** Units Operations **/
    -230    /**********************/
    -231
    -232    /**
    -233     * Returns a system unit equivalent to this unscaled standard unit but used in expressions to distinguish between quantities of a different nature
    -234     * but of the same dimensions.
    -235     *
    -236     * <p>
    -237     * Examples of alternate units:
    -238     * </p>
    -239     *
    -240     * <code>
    -241     *     {@literal Unit<Angle>} RADIAN = ONE.alternate("rad").asType(Angle.class);<br>
    -242     *     {@literal Unit<Force>} NEWTON = METRE.multiply(KILOGRAM).divide(SECOND.pow(2)).alternate("N").asType(Force.class);<br>
    -243     *     {@literal Unit<Pressure>} PASCAL = NEWTON.divide(METRE.pow(2)).alternate("Pa").asType(Pressure.class);<br>
    -244     * </code>
    -245     *
    -246     * @param symbol
    -247     *          the new symbol for the alternate unit.
    -248     * @return the alternate unit.
    -249     * @throws IllegalArgumentException
    -250     *           if this unit is not an unscaled standard unit.
    -251     * @throws MeasurementException
    -252     *           if the specified symbol is not valid or is already associated to a different unit.
    -253     */
    -254    Unit<Q> alternate(String symbol);
    -255
    -256    /**
    -257     * Returns the result of setting the origin of the scale of measurement to the given value. The returned unit is convertible with all units that are
    -258     * convertible with this unit. For example the following code:<br>
    -259     *
    -260     * <code>
    -261     *    CELSIUS = KELVIN.shift(273.15);
    -262     * </code>
    -263     *
    -264     * creates a new unit where 0°C (the origin of the new unit) is equals to 273.15 K. Converting from the old unit to the new one is equivalent to
    -265     * <em>subtracting</em> the offset to the value in the old unit.
    -266     *
    -267     * @param offset
    -268     *          the offset added (expressed in this unit).
    -269     * @return this unit offset by the specified value.
    -270     * @since 2.0
    -271     */
    -272    Unit<Q> shift(Number offset);
    -273
    -274    /**
    -275     * Returns the result of setting the origin of the scale of measurement to the given value. The returned unit is convertible with all units that are
    -276     * convertible with this unit. For example the following code:<br>
    -277     *
    -278     * <code>
    -279     *    CELSIUS = KELVIN.shift(273.15);
    -280     * </code>
    -281     *
    -282     * creates a new unit where 0°C (the origin of the new unit) is equals to 273.15 K. Converting from the old unit to the new one is equivalent to
    -283     * <em>subtracting</em> the offset to the value in the old unit.
    -284     *
    -285     * @param offset
    -286     *          the offset added (expressed in this unit).
    -287     * @return this unit offset by the specified value.
    -288     */
    -289    Unit<Q> shift(double offset);
    -290
    -291    /**
    -292     * Returns the result of multiplying this unit by the specified factor. If the factor is an integer value, the multiplication is exact
    -293     * (recommended). For example:<br>
    -294     *
    -295     * <code>
    -296     *    FOOT = METRE.multiply(3048).divide(10000); // Exact definition.<br>
    -297     *    ELECTRON_MASS = KILOGRAM.multiply(9.10938188e-31); // Approximation.
    -298     * </code>
    -299     *
    -300     * @param multiplier
    -301     *          the multiplier
    -302     * @return this unit scaled by the specified multiplier.
    -303     * @since 2.0
    -304     */
    -305    Unit<Q> multiply(Number multiplier);
    -306
    -307    /**
    -308     * Returns the result of multiplying this unit by the specified factor. For example:<br>
    -309     *
    -310     * <code>
    -311     *    FOOT = METRE.multiply(3048).divide(10000); // Exact definition.<br>
    -312     *    ELECTRON_MASS = KILOGRAM.multiply(9.10938188e-31); // Approximation.
    -313     * </code>
    -314     *
    -315     * @param multiplier
    -316     *          the multiplier
    -317     * @return this unit scaled by the specified multiplier.
    -318     */
    -319    Unit<Q> multiply(double multiplier);
    -320
    -321    /**
    -322     * Returns the product of this unit with the one specified.
    -323     *
    -324     * @param multiplier
    -325     *          the unit multiplier.
    -326     * @return {@code this * multiplier}
    -327     */
    -328    Unit<?> multiply(Unit<?> multiplier);
    -329
    -330    /**
    -331     * Returns the reciprocal (multiplicative inverse) of this unit.
    -332     *
    -333     * @return {@code 1 / this}
    -334     * @see <a href="https://en.wikipedia.org/wiki/Multiplicative_inverse">Wikipedia: Multiplicative inverse</a>
    -335     */
    -336    Unit<?> inverse();
    -337
    -338    /**
    -339     * Returns the result of dividing this unit by a divisor. If the factor is an integer value, the division is exact. For example:<br>
    -340     *
    -341     * <code>
    -342     *    GRAM = KILOGRAM.divide(1000); // Exact definition.
    -343     * </code>
    -344     *
    -345     * @param divisor
    -346     *          the divisor value.
    -347     * @return this unit divided by the specified divisor.
    -348     * @since 2.0
    -349     */
    -350    Unit<Q> divide(Number divisor);
    -351
    -352    /**
    -353     * Returns the result of dividing this unit by an approximate divisor. For example:<br>
    -354     *
    -355     * <code>
    -356     *    GRAM = KILOGRAM.divide(1000d);
    -357     * </code>
    -358     *
    -359     * @param divisor
    -360     *          the divisor value.
    -361     * @return this unit divided by the specified divisor.
    -362     */
    -363    Unit<Q> divide(double divisor);
    -364
    -365    /**
    -366     * Returns the quotient of this unit with the one specified.
    -367     *
    -368     * @param divisor
    -369     *          the unit divisor.
    -370     * @return {@code this / divisor}
    -371     */
    -372    Unit<?> divide(Unit<?> divisor);
    -373
    -374    /**
    -375     * Returns an unit that is the n-th (integer) root of this unit. Equivalent to the mathematical expression {@code unit^(1/n)}.
    -376     *
    -377     * @param n
    -378     *          an integer giving the root's order as in 'n-th root'
    -379     * @return the n-th root of this unit.
    -380     * @throws ArithmeticException
    -381     *           if {@code n == 0} or if this operation would result in an unit with a fractional exponent.
    -382     */
    -383    Unit<?> root(int n);
    -384
    -385    /**
    -386     * Returns an unit raised to the n-th (integer) power of this unit. Equivalent to the mathematical expression {@code unit^n}.
    -387     *
    -388     * @param n
    -389     *          the exponent.
    -390     * @return the result of raising this unit to the exponent.
    -391     */
    -392    Unit<?> pow(int n);
    -393
    -394    /**
    -395     * Returns the unit derived from this unit using the specified converter. The converter does not need to be linear. For example:<br>
    -396     *
    -397     * <pre>
    -398     *     {@literal Unit<Dimensionless>} DECIBEL = Unit.ONE.transform(
    -399     *         new LogConverter(10).inverse().concatenate(
    -400     *             new RationalConverter(1, 10)));
    -401     * </pre>
    -402     *
    -403     * @param operation
    -404     *          the converter from the transformed unit to this unit.
    -405     * @return the unit after the specified transformation.
    -406     */
    -407    Unit<Q> transform(UnitConverter operation);
    -408
    -409    /**
    -410     * Returns a string representation of this unit. The string representation may be the unit {@linkplain #getSymbol() symbol}, or may be some
    -411     * representation of {@linkplain #getBaseUnits() product units}, multiplication factor and offset if any.
    -412     *
    -413     * <p>
    -414     * The string may be localized at implementation choice by the means of a particular device and platform.
    -415     * </p>
    -416     *
    -417     * @return the string representation of this unit.
    -418     *
    -419     * @see #getSymbol()
    -420     * @see javax.measure.format.UnitFormat
    -421     */
    -422    @Override
    -423    String toString();
    -424
    -425    /**
    -426     * Returns a new unit equal to this unit prefixed by the specified {@code prefix}.
    -427     *
    -428     * @param prefix
    -429     *          the prefix to apply on this unit.
    -430     * @return the unit with the given prefix applied.
    -431     * @since 2.0
    -432     */
    -433    Unit<Q> prefix(Prefix prefix);
    -434}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/apidocs/src-html/javax/measure/UnitConverter.html b/docs/apidocs/src-html/javax/measure/UnitConverter.html deleted file mode 100644 index 239318bb..00000000 --- a/docs/apidocs/src-html/javax/measure/UnitConverter.html +++ /dev/null @@ -1,228 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure;
    -031
    -032import java.util.List;
    -033
    -034/**
    -035 * A converter of numeric values between different units.
    -036 *
    -037 * <p>
    -038 * Instances of this class are usually obtained through the {@link Unit#getConverterTo(Unit)} method.
    -039 * </p>
    -040 *
    -041 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -042 * @author <a href="mailto:werner@uom.technology">Werner Keil</a>
    -043 * @author <a href="mailto:martin.desruisseaux@geomatys.com">Martin
    -044 *         Desruisseaux</a>
    -045 * @author <a href="mailto:thodoris.bais@gmail.com">Thodoris Bais</a>
    -046 * @author <a href="mailto:ahuber@apache.org">Andi Huber</a>
    -047 * @version 1.4, May 12, 2019
    -048 * @since 1.0
    -049 *
    -050 * @see Unit
    -051 * @see <a href="http://en.wikipedia.org/wiki/Conversion_of_units"> Wikipedia: Conversion of units</a>
    -052 */
    -053public interface UnitConverter {
    -054
    -055    /**
    -056     * Indicates if this converter is an identity converter. The identity converter returns its input argument ({@code convert(x) == x}).
    -057     * <p>
    -058     * Note: Identity converters are also always 'linear', see {@link UnitConverter#isLinear()}.
    -059     * </p>
    -060     *
    -061     * @return {@code true} if this converter is an identity converter.
    -062     */
    -063    boolean isIdentity();
    -064
    -065    /**
    -066     * Indicates whether this converter represents a (one-dimensional) linear transformation, that is
    -067     * a <a href="https://en.wikipedia.org/wiki/Linear_map">linear map (wikipedia)</a> from a one-dimensional 
    -068     * vector space (a scalar) to a one-dimensional vector space. Typically from 'R' to 'R', with 'R' the 
    -069     * real numbers.  
    -070     *
    -071     * <p>
    -072     * Given such a 'linear' converter 'A', let 'u', 'v' and 'r' be arbitrary numbers, then the following 
    -073     * must hold by definition: 
    -074     *
    -075     * <ul>
    -076     * <li>{@code A(u + v) == A(u) + A(v)}</li>
    -077     * <li>{@code A(r * u) == r * A(u)}</li>
    -078     * </ul>
    -079     *
    -080     * <p>
    -081     * Given a second 'linear' converter 'B', commutativity of composition follows by above definition:
    -082     *
    -083     * <ul>
    -084     * <li>{@code (A o B) (u) == (B o A) (u)}</li>
    -085     * </ul>
    -086     * 
    -087     * In other words, two 'linear' converters do have the property that {@code A(B(u)) == B(A(u))}, meaning 
    -088     * for 'A' and 'B' the order of their composition does not matter. Expressed as Java code:
    -089     *
    -090     * <p>
    -091     *{@code A.concatenate(B).convert(u) == B.concatenate(A).convert(u)}
    -092     * </p>
    -093     * 
    -094     * Note: For composing UnitConverters see also {@link UnitConverter#concatenate(UnitConverter)}.
    -095     *
    -096     * @return {@code true} if this converter represents a linear transformation; 
    -097     * {@code false} otherwise.
    -098     * 
    -099     */
    -100    boolean isLinear();
    -101
    -102    /**
    -103     * Returns the inverse of this converter. If {@code x} is a valid value, then {@code x == inverse().convert(convert(x))} to within the accuracy of
    -104     * computer arithmetic.
    -105     *
    -106     * @return the inverse of this converter.
    -107     */
    -108    UnitConverter inverse();
    -109
    -110    /**
    -111     * Converts a {@code Number} value.
    -112     *
    -113     * @param value
    -114     *          the {@code Number} value to convert.
    -115     * @return the {@code Number} value after conversion.
    -116     */
    -117    Number convert(Number value);
    -118
    -119    /**
    -120     * Converts a {@code double} value.
    -121     *
    -122     * @param value
    -123     *          the numeric value to convert.
    -124     * @return the {@code double} value after conversion.
    -125     */
    -126    double convert(double value);
    -127
    -128    /**
    -129     * Concatenates this converter with another converter. The resulting converter is equivalent to first converting by the specified converter (right
    -130     * converter), and then converting by this converter (left converter).
    -131     *
    -132     * @param converter
    -133     *          the other converter to concatenate with this converter.
    -134     * @return the concatenation of this converter with the other converter.
    -135     */
    -136    UnitConverter concatenate(UnitConverter converter);
    -137
    -138    /**
    -139     * <p>
    -140     * Returns the steps of fundamental converters making up this converter or {@code this} if the converter is a fundamental converter.
    -141     * </p>
    -142     * <p>
    -143     * For example, {@code converter1.getConversionSteps()} returns {@code converter1} while
    -144     * {@code converter1.concatenate(converter2).getConversionSteps()} returns {@code converter1, converter2}.
    -145     * </p>
    -146     *
    -147     * @return the list of fundamental converters which concatenated make up this converter.
    -148     */
    -149    List<? extends UnitConverter> getConversionSteps();
    -150}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/apidocs/src-html/javax/measure/format/MeasurementParseException.html b/docs/apidocs/src-html/javax/measure/format/MeasurementParseException.html deleted file mode 100644 index 7a16447a..00000000 --- a/docs/apidocs/src-html/javax/measure/format/MeasurementParseException.html +++ /dev/null @@ -1,205 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.format;
    -031
    -032import javax.measure.MeasurementException;
    -033
    -034/**
    -035 * Signals that an error has been reached unexpectedly while parsing.
    -036 *
    -037 * @author Werner Keil
    -038 * @version 1.1, March 27, 2018
    -039 * @since 2.0
    -040 */
    -041public class MeasurementParseException extends MeasurementException {
    -042
    -043    /**
    -044     * For cross-version compatibility.
    -045     */
    -046    private static final long serialVersionUID = 2727457045794254852L;
    -047
    -048    /**
    -049     * The zero-based character position in the string being parsed at which the error was found while parsing.
    -050     *
    -051     * @serial
    -052     */
    -053    private int position;
    -054
    -055    /** The original input data. */
    -056    private CharSequence data;
    -057
    -058    /**
    -059     * Constructs a MeasurementParseException with the specified detail message, parsed text and index. A detail message is a String that describes
    -060     * this particular exception.
    -061     *
    -062     * @param message
    -063     *            the detail message
    -064     * @param parsedData
    -065     *            the parsed text, should not be null
    -066     * @param position
    -067     *            the position where the error was found while parsing.
    -068     */
    -069    public MeasurementParseException(String message, CharSequence parsedData, int position) {
    -070        super(message);
    -071        this.data = parsedData;
    -072        this.position = position;
    -073    }
    -074
    -075    /**
    -076     * Constructs a MeasurementParseException with the parsed text and offset. A detail message is a String that describes this particular exception.
    -077     *
    -078     * @param parsedData
    -079     *            the parsed text, should not be null
    -080     * @param position
    -081     *            the position where the error is found while parsing.
    -082     */
    -083    public MeasurementParseException(CharSequence parsedData, int position) {
    -084        this("Parse Error", parsedData, position);
    -085    }
    -086
    -087    /**
    -088     * Constructs a MeasurementParseException with the specified cause.
    -089     *
    -090     * @param cause
    -091     *            the root cause
    -092     */
    -093    public MeasurementParseException(Throwable cause) {
    -094        super(cause);
    -095    }
    -096
    -097    /**
    -098     * Constructs a MeasurementParseException with the specified detail message.
    -099     *
    -100     * @param message
    -101     *            the detail message
    -102     */
    -103    public MeasurementParseException(String message) {
    -104        super(message);
    -105    }
    -106
    -107    /**
    -108     * Returns the position where the error was found.
    -109     *
    -110     * @return the position of the error
    -111     */
    -112    public int getPosition() {
    -113        return position;
    -114    }
    -115
    -116    /**
    -117     * Returns the string that was being parsed.
    -118     *
    -119     * @return the parsed string, or {@code null}, if {@code null} was passed as input.
    -120     */
    -121    public String getParsedString() {
    -122        if (data == null) {
    -123            return null;
    -124        }
    -125        return data.toString();
    -126    }
    -127}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/apidocs/src-html/javax/measure/format/QuantityFormat.html b/docs/apidocs/src-html/javax/measure/format/QuantityFormat.html deleted file mode 100644 index 4490e559..00000000 --- a/docs/apidocs/src-html/javax/measure/format/QuantityFormat.html +++ /dev/null @@ -1,196 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.format;
    -031
    -032import java.io.IOException;
    -033import java.text.ParsePosition;
    -034
    -035import javax.measure.Quantity;
    -036
    -037/**
    -038 * Formats instances of {@link Quantity}.
    -039 *
    -040 * <dl>
    -041 * <dt><span class="strong"><a id="synchronization">Synchronization</a></span></dt>
    -042 * </dl>
    -043 * Instances of this class are not required to be thread-safe. It is recommended to use separate format instances for each thread. If multiple threads
    -044 * access a format concurrently, it must be synchronized externally.
    -045 *
    -046 * @author <a href="mailto:werner@uom.technology">Werner Keil</a>
    -047 * @author <a href="mailto:thodoris.bais@gmail.com">Thodoris Bais</a>
    -048 *
    -049 * @version 1.1, 20 May, 2023
    -050 * @since 2.0
    -051 *
    -052 * @see Quantity
    -053 */
    -054public interface QuantityFormat {
    -055
    -056    /**
    -057     * Formats the specified quantity into an {@code Appendable}.
    -058     *
    -059     * @param quantity
    -060     *          the quantity to format.
    -061     * @param destination
    -062     *          the appendable destination.
    -063     * @return the specified {@code Appendable}.
    -064     * @throws IOException
    -065     *           if an I/O exception occurs.
    -066     */
    -067    public Appendable format(Quantity<?> quantity, Appendable destination) throws IOException;
    -068
    -069    /**
    -070     * Formats the specified {@link Quantity}.
    -071     *
    -072     * @param quantity
    -073     *            the {@link Quantity} to format, not {@code null}
    -074     * @return the string representation using the settings of this {@link QuantityFormat}.
    -075     */
    -076    String format(Quantity<?> quantity);
    -077
    -078    /**
    -079     * Parses a portion of the specified {@code CharSequence} from the specified position to produce a {@link Quantity}.
    -080     * If parsing succeeds, then the index of the {@code pos} argument is updated to the index after the last character used.
    -081     *
    -082     * @param csq
    -083     *          the {@code CharSequence} to parse.
    -084     * @param pos
    -085     *          a ParsePosition object holding the current parsing index and error parsing index information as described above.
    -086     * @return the quantity parsed from the specified character sub-sequence.
    -087     * @throws MeasurementParseException
    -088     *           if any problem occurs while parsing the specified character sequence (e.g. illegal syntax).
    -089     */
    -090    public Quantity<?> parse(CharSequence csq, ParsePosition pos) throws MeasurementParseException;
    -091
    -092    /**
    -093     * Parses the specified {@code CharSequence} to produce a {@link Quantity}.
    -094     * <p>
    -095     * The parse must complete normally and parse the entire text. If the parse completes without reading the entire length of the text, an exception
    -096     * is thrown. If any other problem occurs during parsing, an exception is thrown.
    -097     * </p>
    -098     *
    -099     * @param csq
    -100     *          the {@code CharSequence} to parse.
    -101     * @return the quantity parsed from the specified character sub-sequence.
    -102     * @throws MeasurementParseException
    -103     *           if any problem occurs while parsing the specified character sequence (e.g. illegal syntax).
    -104     */
    -105    public Quantity<?> parse(CharSequence csq) throws MeasurementParseException;
    -106
    -107    /**
    -108     * Returns {@code true} if this {@link QuantityFormat} depends on a {@code Locale} to perform its tasks.
    -109     * <p>
    -110     * In environments that do not support a {@code Locale}, e.g. Java ME, this usually returns {@code false}.
    -111     * </p>
    -112     *
    -113     * @return whether this format depends on the locale.
    -114     */
    -115    default boolean isLocaleSensitive() {
    -116        return false;
    -117    }
    -118}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/apidocs/src-html/javax/measure/format/UnitFormat.html b/docs/apidocs/src-html/javax/measure/format/UnitFormat.html deleted file mode 100644 index e38a287b..00000000 --- a/docs/apidocs/src-html/javax/measure/format/UnitFormat.html +++ /dev/null @@ -1,228 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.format;
    -031
    -032import java.io.IOException;
    -033import java.text.ParsePosition;
    -034
    -035import javax.measure.Unit;
    -036
    -037/**
    -038 * Formats instances of {@link Unit} to a {@link String} or {@link Appendable} and parses a {@link CharSequence} to a {@link Unit}.
    -039 *
    -040 * <dl>
    -041 * <dt><span class="strong"><a id="synchronization">Synchronization</a></span></dt>
    -042 * </dl>
    -043 * <p>
    -044 * Instances of this class are not required to be thread-safe. It is recommended to use separate format instances for each thread. If multiple threads
    -045 * access a format concurrently, it must be synchronized externally.
    -046 * </p>
    -047 *
    -048 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -049 * @author <a href="mailto:werner@uom.technology">Werner Keil</a>
    -050 *
    -051 * @version 2.2, May 20, 2023
    -052 * @since 1.0
    -053 *
    -054 * @see Unit
    -055 */
    -056public interface UnitFormat {
    -057    /**
    -058     * Formats the specified {@link Unit}.
    -059     *
    -060     * @param unit
    -061     *            the {@link Unit} to format, not {@code null}
    -062     * @param appendable
    -063     *            the appendable destination.
    -064     * @return the appendable destination passed in with formatted text appended.
    -065     * @throws IOException
    -066     *             if an error occurs while writing to the destination.
    -067     */
    -068    Appendable format(Unit<?> unit, Appendable appendable) throws IOException;
    -069
    -070    /**
    -071     * Formats the specified {@link Unit}.
    -072     *
    -073     * @param unit
    -074     *            the {@link Unit} to format, not {@code null}
    -075     * @return the string representation using the settings of this {@link UnitFormat}.
    -076     */
    -077    String format(Unit<?> unit);
    -078
    -079    /**
    -080     * Attaches a system-wide label to the specified {@link Unit}.
    -081     * <p>
    -082     * This method overrides the previous unit's label (e.g. label from unit database or unit system) as units may only have one label. Depending on the
    -083     * {@link UnitFormat} implementation, this call may be ignored if the particular unit already has a label.
    -084     * </p>
    -085     * If a {@link UnitFormat} implementation is explicitly <b>immutable</b>, similar to e.g. the result of <code>Collections.unmodifiableList()</code>,
    -086     * then an {@linkplain UnsupportedOperationException} may be thrown upon this call.
    -087     * <p>
    -088     * Since <code>UnitFormat</code> implementations often apply the Singleton pattern, <b>system-wide</b> means, the label applies to every instance of
    -089     * <code>UnitFormatA</code> implementing <code>UnitFormat</code> in this case, but not every instance of <code>UnitFormatB</code> or <code>UnitFormatC</code> both
    -090     * also implementing <code>UnitFormat</code>. If a <code>UnitFormat</code> #isLocaleSensitive() it is up to the implementation, whether the label is
    -091     * ignored, applied in a local-neutral manner (in addition to its local-sensitive information) or locale-specific.
    -092     * </p>
    -093     *
    -094     * @param unit
    -095     *            the unit being labeled.
    -096     * @param label
    -097     *            the new label for this unit.
    -098     * @throws IllegalArgumentException
    -099     *             if the label is not a valid identifier. This may include characters not supported by a particular {@link UnitFormat} implementation
    -100     *             (e.g. only <b>ASCII</b> characters for certain devices)
    -101     * @throws UnsupportedOperationException
    -102     *             if the <code>label</code> operation is not supported by this {@link UnitFormat}
    -103     */
    -104    void label(Unit<?> unit, String label);
    -105
    -106    /**
    -107     * Returns <code>true</code> if this {@link UnitFormat} depends on a <code>Locale</code> to perform its tasks.
    -108     * <p>
    -109     * In environments that do not support a <code>Locale</code>, e.g. Java ME, this usually returns <code>false</code>.
    -110     * </p>
    -111     *
    -112     * @return Whether this format depends on a locale.
    -113     */
    -114    default boolean isLocaleSensitive() {
    -115        return false;
    -116    }
    -117
    -118    /**
    -119     * Parses a portion of the specified <code>CharSequence</code> from the specified position to produce a {@link Unit}.
    -120     * If parsing succeeds, then the index of the <code>pos</code> argument is updated to the index after the last character used.
    -121     *
    -122     * @param csq
    -123     *            the <code>CharSequence</code> to parse.
    -124     * @param pos
    -125     *            a ParsePosition object holding the current parsing index and error parsing index information as described above.
    -126     * @return the unit parsed from the specified character sub-sequence.
    -127     * @throws MeasurementParseException
    -128     *             if any problem occurs while parsing the specified character sequence (e.g. illegal syntax).
    -129     * @since 2.0
    -130     */
    -131    Unit<?> parse(CharSequence csq, ParsePosition pos) throws MeasurementParseException;
    -132
    -133    /**
    -134     * Parses the text into an instance of {@link Unit}.
    -135     * <p>
    -136     * The parse must complete normally and parse the entire text. If the parse completes without reading the entire length of the text, an exception
    -137     * is thrown. If any other problem occurs during parsing, an exception is thrown.
    -138     * </p>
    -139     *
    -140     * @param csq
    -141     *            the {@code CharSequence} to parse.
    -142     * @return the unit parsed from the specified character sequence.
    -143     * @throws MeasurementParseException
    -144     *             if any problem occurs while parsing the specified character sequence (e.g. illegal syntax).
    -145     * @throws UnsupportedOperationException
    -146     *             if the {@link UnitFormat} is unable to parse.
    -147     * @since 2.0
    -148     */
    -149    Unit<?> parse(CharSequence csq) throws MeasurementParseException;
    -150}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/apidocs/src-html/javax/measure/quantity/Acceleration.html b/docs/apidocs/src-html/javax/measure/quantity/Acceleration.html deleted file mode 100644 index d4ce1bf5..00000000 --- a/docs/apidocs/src-html/javax/measure/quantity/Acceleration.html +++ /dev/null @@ -1,126 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Rate of change of velocity with respect to time. The metric system unit for this quantity is "m/s²" (metre per square second).
    -036 *
    -037 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -038 * @author <a href="mailto:werner@uom.technology">Werner Keil</a>
    -039 * @version 1.2
    -040 * @since 1.0
    -041 * @see <a href="https://en.wikipedia.org/wiki/Acceleration">Wikipedia: Acceleration</a>
    -042 *
    -043 * @see Length
    -044 * @see Speed
    -045 * @see Time
    -046 */
    -047public interface Acceleration extends Quantity<Acceleration> {
    -048}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/apidocs/src-html/javax/measure/quantity/AmountOfSubstance.html b/docs/apidocs/src-html/javax/measure/quantity/AmountOfSubstance.html deleted file mode 100644 index 943bf14a..00000000 --- a/docs/apidocs/src-html/javax/measure/quantity/AmountOfSubstance.html +++ /dev/null @@ -1,142 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Number of elementary entities (molecules, for example) of a substance. The metric system unit for this quantity is "mol" (mole).
    -036 *
    -037 * The mole, symbol mol, is the SI unit of amount of substance. One mole contains
    -038 * exactly 6.022 140 76 × 10²³ elementary entities. This number is the fixed numerical
    -039 * value of the Avogadro constant, NA, when expressed in the unit mol⁻¹ and is called
    -040 * the Avogadro number.
    -041 *
    -042 * The amount of substance, symbol n, of a system is a measure of the number of
    -043 * specified elementary entities. An elementary entity may be an atom, a molecule, an
    -044 * ion, an electron, any other particle or specified group of particles.
    -045 * This definition implies the exact relation Nₐ = 6.022 140 76 × 10²³ mol⁻¹.
    -046 *
    -047 * Inverting this relation gives an exact expression for the mole in terms of the defining constant NA:
    -048 *
    -049 * 1 mol = 6.02214076 × 10²³ / Nₐ
    -050 * <br>
    -051 * <dl>
    -052 * <dt><span class="strong">API Note:</span></dt><dd>SI Base Unit</dd>
    -053 * </dl>
    -054 * 
    -055 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -056 * @author <a href="mailto:werner@uom.technology">Werner Keil</a>
    -057 * @author <a href="mailto:thodoris.bais@gmail.com">Thodoris Bais</a>
    -058 * @version 2.1
    -059 * @since 1.0
    -060 *
    -061 * @see <a href="http://en.wikipedia.org/wiki/Amount_of_substance">Wikipedia: Amount of Substance</a>
    -062 */
    -063public interface AmountOfSubstance extends Quantity<AmountOfSubstance> {
    -064}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/apidocs/src-html/javax/measure/quantity/Angle.html b/docs/apidocs/src-html/javax/measure/quantity/Angle.html deleted file mode 100644 index 97db0cff..00000000 --- a/docs/apidocs/src-html/javax/measure/quantity/Angle.html +++ /dev/null @@ -1,130 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Figure formed by two lines diverging from a common point. The metric system unit for this quantity is "rad" (radian).
    -036 * <br>
    -037 * <dl>
    -038 * <dt><span class="strong">API Note:</span></dt><dd>SI Derived Unit with special name and symbol</dd>
    -039 * </dl>
    -040 * 
    -041 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -042 * @author <a href="mailto:werner@uom.technology">Werner Keil</a>
    -043 * @version 2.0
    -044 * @since 1.0
    -045 *
    -046 * @see <a href="http://en.wikipedia.org/wiki/Angle">Wikipedia: Angle</a>
    -047 *
    -048 * @see SolidAngle
    -049 * @see Length
    -050 */
    -051public interface Angle extends Quantity<Angle> {
    -052}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/apidocs/src-html/javax/measure/quantity/Area.html b/docs/apidocs/src-html/javax/measure/quantity/Area.html deleted file mode 100644 index 86804c03..00000000 --- a/docs/apidocs/src-html/javax/measure/quantity/Area.html +++ /dev/null @@ -1,129 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Extent of a planar region or of the surface of a solid measured in square units. The metric system unit for this quantity is "m²" (square metre).
    -036 * <br>
    -037 * <dl>
    -038 * <dt><span class="strong">API Note:</span></dt><dd>SI Derived Unit</dd>
    -039 * </dl>
    -040 * 
    -041 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -042 * @author <a href="mailto:werner@uom.technology">Werner Keil</a>
    -043 * @version 2.0
    -044 * @since 1.0
    -045 *
    -046 * @see Length
    -047 * @see Volume
    -048 * @see Pressure
    -049 */
    -050public interface Area extends Quantity<Area> {
    -051}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/apidocs/src-html/javax/measure/quantity/CatalyticActivity.html b/docs/apidocs/src-html/javax/measure/quantity/CatalyticActivity.html deleted file mode 100644 index 4bf5f52f..00000000 --- a/docs/apidocs/src-html/javax/measure/quantity/CatalyticActivity.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Catalytic activity. The metric system unit for this quantity is "kat" (katal).
    -036 *
    -037 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -038 * @version 1.0
    -039 * @since 1.0
    -040 */
    -041public interface CatalyticActivity extends Quantity<CatalyticActivity> {
    -042}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/apidocs/src-html/javax/measure/quantity/Dimensionless.html b/docs/apidocs/src-html/javax/measure/quantity/Dimensionless.html deleted file mode 100644 index c80135aa..00000000 --- a/docs/apidocs/src-html/javax/measure/quantity/Dimensionless.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Dimensionless quantity.
    -036 *
    -037 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -038 * @version 1.0
    -039 * @since 1.0
    -040 */
    -041public interface Dimensionless extends Quantity<Dimensionless> {
    -042}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/apidocs/src-html/javax/measure/quantity/ElectricCapacitance.html b/docs/apidocs/src-html/javax/measure/quantity/ElectricCapacitance.html deleted file mode 100644 index c46a0ff6..00000000 --- a/docs/apidocs/src-html/javax/measure/quantity/ElectricCapacitance.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Electric capacitance. The metric system unit for this quantity is "F" (Farad).
    -036 *
    -037 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -038 * @version 1.0
    -039 * @since 1.0
    -040 */
    -041public interface ElectricCapacitance extends Quantity<ElectricCapacitance> {
    -042}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/apidocs/src-html/javax/measure/quantity/ElectricCharge.html b/docs/apidocs/src-html/javax/measure/quantity/ElectricCharge.html deleted file mode 100644 index 133ab279..00000000 --- a/docs/apidocs/src-html/javax/measure/quantity/ElectricCharge.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Electric charge. The metric system unit for this quantity is "C" (Coulomb).
    -036 *
    -037 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -038 * @version 1.0
    -039 * @since 1.0
    -040 *
    -041 * @see ElectricCurrent
    -042 */
    -043public interface ElectricCharge extends Quantity<ElectricCharge> {
    -044}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/apidocs/src-html/javax/measure/quantity/ElectricConductance.html b/docs/apidocs/src-html/javax/measure/quantity/ElectricConductance.html deleted file mode 100644 index a756c090..00000000 --- a/docs/apidocs/src-html/javax/measure/quantity/ElectricConductance.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Electric conductance. The metric system unit for this quantity "S" (Siemens).
    -036 *
    -037 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -038 * @version 1.0
    -039 * @since 1.0
    -040 */
    -041public interface ElectricConductance extends Quantity<ElectricConductance> {
    -042}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/apidocs/src-html/javax/measure/quantity/ElectricCurrent.html b/docs/apidocs/src-html/javax/measure/quantity/ElectricCurrent.html deleted file mode 100644 index 8e2c9c22..00000000 --- a/docs/apidocs/src-html/javax/measure/quantity/ElectricCurrent.html +++ /dev/null @@ -1,140 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Amount of electric charge flowing past a specified circuit point per unit time. The metric system unit for this quantity is "A" (Ampere).
    -036 *
    -037 * The ampere, symbol A, is the SI unit of electric current. It is defined by taking the
    -038 * fixed numerical value of the elementary charge e to be 1.602 176 634 × 10⁻¹⁹ when
    -039 * expressed in the unit C, which is equal to A s, where the second is defined in terms
    -040 * of ∆νCs.
    -041 *
    -042 * This definition implies the exact relation e = 1.602 176 634 × 10⁻¹⁹ A s. Inverting this
    -043 * relation gives an exact expression for the unit ampere in terms of the defining constants e
    -044 * and ∆νCs:
    -045 *
    -046 * 1 A = (e / 1.602 176 634 × 10⁻¹⁹) s⁻¹
    -047 * <br>
    -048 * <dl>
    -049 * <dt><span class="strong">API Note:</span></dt><dd>SI Base Unit</dd>
    -050 * </dl>
    -051 * 
    -052 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -053 * @author <a href="mailto:werner@uom.technology">Werner Keil</a>
    -054 * @author <a href="mailto:thodoris.bais@gmail.com">Thodoris Bais</a>
    -055 * @version 2.1
    -056 * @since 1.0
    -057 * @see <a href="https://en.wikipedia.org/wiki/Electric_current">Wikipedia: Electric Current</a>
    -058 * @see ElectricCharge
    -059 * @see Time
    -060 */
    -061public interface ElectricCurrent extends Quantity<ElectricCurrent> {
    -062}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/apidocs/src-html/javax/measure/quantity/ElectricInductance.html b/docs/apidocs/src-html/javax/measure/quantity/ElectricInductance.html deleted file mode 100644 index 67c6f339..00000000 --- a/docs/apidocs/src-html/javax/measure/quantity/ElectricInductance.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Electric inductance. The metric system unit for this quantity is "H" (Henry).
    -036 *
    -037 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -038 * @version 1.0
    -039 * @since 1.0
    -040 */
    -041public interface ElectricInductance extends Quantity<ElectricInductance> {
    -042}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/apidocs/src-html/javax/measure/quantity/ElectricPotential.html b/docs/apidocs/src-html/javax/measure/quantity/ElectricPotential.html deleted file mode 100644 index 0c2a2601..00000000 --- a/docs/apidocs/src-html/javax/measure/quantity/ElectricPotential.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Electric potential or electromotive force. The metric system unit for this quantity is "V" (Volt).
    -036 *
    -037 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -038 * @version 1.0
    -039 * @since 1.0
    -040 */
    -041public interface ElectricPotential extends Quantity<ElectricPotential> {
    -042}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/apidocs/src-html/javax/measure/quantity/ElectricResistance.html b/docs/apidocs/src-html/javax/measure/quantity/ElectricResistance.html deleted file mode 100644 index 19bf0b3a..00000000 --- a/docs/apidocs/src-html/javax/measure/quantity/ElectricResistance.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Electric resistance. The metric system unit for this quantity is "Ohm" (Ω).
    -036 *
    -037 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -038 * @version 1.0
    -039 * @since 1.0
    -040 */
    -041public interface ElectricResistance extends Quantity<ElectricResistance> {
    -042}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/apidocs/src-html/javax/measure/quantity/Energy.html b/docs/apidocs/src-html/javax/measure/quantity/Energy.html deleted file mode 100644 index ac85104a..00000000 --- a/docs/apidocs/src-html/javax/measure/quantity/Energy.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Capacity of a physical system to do work. The metric system unit for this quantity "J" (Joule).
    -036 *
    -037 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -038 * @version 1.0
    -039 * @since 1.0
    -040 *
    -041 * @see Force
    -042 * @see Power
    -043 * @see Time
    -044 */
    -045public interface Energy extends Quantity<Energy> {
    -046}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/apidocs/src-html/javax/measure/quantity/Force.html b/docs/apidocs/src-html/javax/measure/quantity/Force.html deleted file mode 100644 index a3781145..00000000 --- a/docs/apidocs/src-html/javax/measure/quantity/Force.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Quantity that tends to produce an acceleration of a body in the direction of its application. The metric system unit for this quantity is "N"
    -036 * (Newton).
    -037 *
    -038 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -039 * @version 1.1
    -040 * @since 1.0
    -041 *
    -042 * @see Energy
    -043 * @see Pressure
    -044 */
    -045public interface Force extends Quantity<Force> {
    -046}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/apidocs/src-html/javax/measure/quantity/Frequency.html b/docs/apidocs/src-html/javax/measure/quantity/Frequency.html deleted file mode 100644 index 4cf38c64..00000000 --- a/docs/apidocs/src-html/javax/measure/quantity/Frequency.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Number of times a specified phenomenon occurs within a specified interval. The metric system unit for this quantity is "Hz" (Hertz).
    -036 *
    -037 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -038 * @version 1.0
    -039 * @since 1.0
    -040 *
    -041 * @see Time
    -042 */
    -043public interface Frequency extends Quantity<Frequency> {
    -044}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/apidocs/src-html/javax/measure/quantity/Illuminance.html b/docs/apidocs/src-html/javax/measure/quantity/Illuminance.html deleted file mode 100644 index 65aef88a..00000000 --- a/docs/apidocs/src-html/javax/measure/quantity/Illuminance.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Illuminance. The metric system unit for this quantity is "lx" (lux).
    -036 *
    -037 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -038 * @version 1.0
    -039 * @since 1.0
    -040 */
    -041public interface Illuminance extends Quantity<Illuminance> {
    -042}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/apidocs/src-html/javax/measure/quantity/Length.html b/docs/apidocs/src-html/javax/measure/quantity/Length.html deleted file mode 100644 index 2dd5b51c..00000000 --- a/docs/apidocs/src-html/javax/measure/quantity/Length.html +++ /dev/null @@ -1,144 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Extent of something along its greatest dimension or the extent of space between two objects or places.
    -036 * The metric system unit for this quantity is "m" (metre).
    -037 *
    -038 * The metre, symbol m, is the SI unit of length. It is defined by taking the fixed
    -039 * numerical value of the speed of light in vacuum c to be 299 792 458 when expressed
    -040 * in the unit m s⁻¹, where the second is defined in terms of the caesium frequency
    -041 * ∆νCs.
    -042 *
    -043 * This definition implies the exact relation c = 299 792 458 m s⁻¹. Inverting this relation
    -044 * gives an exact expression for the metre in terms of the defining constants c and ∆νCs:
    -045 *
    -046 * 1 m = (c / 299 792 458)s = 9 192 631 770 c / 299 792 458 ∆νCs ≈ 30.663 319 c / ∆νCs
    -047 * <br>
    -048 * <dl>
    -049 * <dt><span class="strong">API Note:</span></dt><dd>SI Base Unit</dd>
    -050 * </dl>
    -051 * 
    -052 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -053 * @author <a href="mailto:werner@uom.technology">Werner Keil</a>
    -054 * @author <a href="mailto:thodoris.bais@gmail.com">Thodoris Bais</a>
    -055 * @version 2.1
    -056 * @since 1.0
    -057 * 
    -058 * @see <a href="https://en.wikipedia.org/wiki/Length">Wikipedia: Length</a>
    -059 * @see Area
    -060 * @see Volume
    -061 * @see Angle
    -062 * @see SolidAngle
    -063 * @see Speed
    -064 */
    -065public interface Length extends Quantity<Length> {
    -066}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/apidocs/src-html/javax/measure/quantity/LuminousFlux.html b/docs/apidocs/src-html/javax/measure/quantity/LuminousFlux.html deleted file mode 100644 index 6367cf11..00000000 --- a/docs/apidocs/src-html/javax/measure/quantity/LuminousFlux.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Luminous flux. The metric system unit for this quantity is "lm" (lumen).
    -036 *
    -037 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -038 * @version 1.1
    -039 * @since 1.0
    -040 */
    -041public interface LuminousFlux extends Quantity<LuminousFlux> {
    -042}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/apidocs/src-html/javax/measure/quantity/LuminousIntensity.html b/docs/apidocs/src-html/javax/measure/quantity/LuminousIntensity.html deleted file mode 100644 index f659acb1..00000000 --- a/docs/apidocs/src-html/javax/measure/quantity/LuminousIntensity.html +++ /dev/null @@ -1,141 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Luminous flux density per solid angle as measured in a given direction relative to the emitting source.
    -036 * The metric system unit for this quantity is "cd" (candela).
    -037 *
    -038 * The candela, symbol cd, is the SI unit of luminous intensity in a given direction. It is
    -039 * defined by taking the fixed numerical value of the luminous efficacy of
    -040 * monochromatic radiation of frequency 540 × 10¹² Hz, Kcd, to be 683 when expressed
    -041 * in the unit lm W−1, which is equal to cd sr W⁻¹, or cd sr kg⁻¹ m⁻² s³, where the kilogram,
    -042 * metre and second are defined in terms of h, c and ∆νCs.
    -043 *
    -044 * This definition implies the exact relation Kcd = 683 cd sr kg⁻¹ m⁻² s³ for monochromatic
    -045 * radiation of frequency ν = 540 × 10¹² Hz. Inverting this relation gives an exact expression
    -046 * for the candela in terms of the defining constants Kcd, h and ∆νCs:
    -047 *
    -048 * 1 cd = (Kcd / 683) kg m² s⁻³ sr⁻¹
    -049 * <br>
    -050 * <dl>
    -051 * <dt><span class="strong">API Note:</span></dt><dd>SI Base Unit</dd>
    -052 * </dl>
    -053 * 
    -054 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -055 * @author <a href="mailto:werner@uom.technology">Werner Keil</a>
    -056 * @author <a href="mailto:thodoris.bais@gmail.com">Thodoris Bais</a>
    -057 * @version 2.1
    -058 * @since 1.0
    -059 * 
    -060 * @see <a href="https://en.wikipedia.org/wiki/Luminous_intensity">Wikipedia: Luminous intensity</a>
    -061 */
    -062public interface LuminousIntensity extends Quantity<LuminousIntensity> {
    -063}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/apidocs/src-html/javax/measure/quantity/MagneticFlux.html b/docs/apidocs/src-html/javax/measure/quantity/MagneticFlux.html deleted file mode 100644 index e53b888e..00000000 --- a/docs/apidocs/src-html/javax/measure/quantity/MagneticFlux.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Magnetic flux. The metric system unit for this quantity is "Wb" (Weber).
    -036 *
    -037 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -038 * @version 1.0
    -039 * @since 1.0
    -040 */
    -041public interface MagneticFlux extends Quantity<MagneticFlux> {
    -042}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/apidocs/src-html/javax/measure/quantity/MagneticFluxDensity.html b/docs/apidocs/src-html/javax/measure/quantity/MagneticFluxDensity.html deleted file mode 100644 index f546a747..00000000 --- a/docs/apidocs/src-html/javax/measure/quantity/MagneticFluxDensity.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Magnetic flux density. The metric system unit for this quantity is "T" (Tesla).
    -036 *
    -037 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -038 * @version 1.0
    -039 * @since 1.0
    -040 */
    -041public interface MagneticFluxDensity extends Quantity<MagneticFluxDensity> {
    -042}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/apidocs/src-html/javax/measure/quantity/Mass.html b/docs/apidocs/src-html/javax/measure/quantity/Mass.html deleted file mode 100644 index 333763f7..00000000 --- a/docs/apidocs/src-html/javax/measure/quantity/Mass.html +++ /dev/null @@ -1,141 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Measure of the quantity of matter that a body or an object contains. The mass of the body is not dependent on gravity and therefore is different
    -036 * from but proportional to its weight. The metric system unit for this quantity is "kg" (kilogram).
    -037 *
    -038 * The kilogram, symbol kg, is the SI unit of mass. It is defined by taking the fixed
    -039 * numerical value of the Planck constant h to be 6.626 070 15 × 10⁻³⁴ when expressed
    -040 * in the unit J s, which is equal to kg m² s−1, where the metre and the second are
    -041 * defined in terms of c and ∆νCs.
    -042 *
    -043 * This definition implies the exact relation h = 6.626 070 15 × 10−34 kg m² s⁻¹. Inverting this
    -044 * relation gives an exact expression for the kilogram in terms of the three defining constants
    -045 * h, ∆νCs and c:
    -046 *
    -047 * 1 kg = (h / 6.626 070 15 × 10⁻³⁴) m⁻² s
    -048 * <br>
    -049 * <dl>
    -050 * <dt><span class="strong">API Note:</span></dt><dd>SI Base Unit</dd>
    -051 * </dl>
    -052 *
    -053 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -054 * @author <a href="mailto:werner@uom.technology">Werner Keil</a>
    -055 * @author <a href="mailto:thodoris.bais@gmail.com">Thodoris Bais</a>
    -056 * @version 2.0
    -057 * @since 1.0
    -058 *
    -059 * @see <a href="https://en.wikipedia.org/wiki/Mass">Wikipedia: Mass</a>
    -060 * @see RadiationDoseAbsorbed
    -061 */
    -062public interface Mass extends Quantity<Mass> {
    -063}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/apidocs/src-html/javax/measure/quantity/Power.html b/docs/apidocs/src-html/javax/measure/quantity/Power.html deleted file mode 100644 index 543d4d8b..00000000 --- a/docs/apidocs/src-html/javax/measure/quantity/Power.html +++ /dev/null @@ -1,123 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Rate at which work is done. The metric system unit for this quantity is "W" (Watt).
    -036 *
    -037 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -038 * @version 1.0
    -039 * @since 1.0
    -040 *
    -041 * @see Energy
    -042 * @see Time
    -043 */
    -044public interface Power extends Quantity<Power> {
    -045}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/apidocs/src-html/javax/measure/quantity/Pressure.html b/docs/apidocs/src-html/javax/measure/quantity/Pressure.html deleted file mode 100644 index 5b7a6b19..00000000 --- a/docs/apidocs/src-html/javax/measure/quantity/Pressure.html +++ /dev/null @@ -1,123 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Force applied uniformly over a surface. The metric system unit for this quantity is "Pa" (Pascal).
    -036 *
    -037 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -038 * @version 1.0
    -039 * @since 1.0
    -040 *
    -041 * @see Force
    -042 * @see Area
    -043 */
    -044public interface Pressure extends Quantity<Pressure> {
    -045}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/apidocs/src-html/javax/measure/quantity/RadiationDoseAbsorbed.html b/docs/apidocs/src-html/javax/measure/quantity/RadiationDoseAbsorbed.html deleted file mode 100644 index 53db1a7d..00000000 --- a/docs/apidocs/src-html/javax/measure/quantity/RadiationDoseAbsorbed.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Amount of energy deposited per unit of mass. The system unit for this quantity is "Gy" (Gray).
    -036 *
    -037 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -038 * @version 1.1
    -039 * @since 1.0
    -040 *
    -041 * @see Mass
    -042 */
    -043public interface RadiationDoseAbsorbed extends Quantity<RadiationDoseAbsorbed> {
    -044}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/apidocs/src-html/javax/measure/quantity/RadiationDoseEffective.html b/docs/apidocs/src-html/javax/measure/quantity/RadiationDoseEffective.html deleted file mode 100644 index 3e2f0d90..00000000 --- a/docs/apidocs/src-html/javax/measure/quantity/RadiationDoseEffective.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Effective (or "equivalent") dose of radiation received by a human or some other living organism. The metric system unit for this quantity is "Sv"
    -036 * (Sievert).
    -037 *
    -038 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -039 * @version 1.0
    -040 * @since 1.0
    -041 */
    -042public interface RadiationDoseEffective extends Quantity<RadiationDoseEffective> {
    -043}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/apidocs/src-html/javax/measure/quantity/Radioactivity.html b/docs/apidocs/src-html/javax/measure/quantity/Radioactivity.html deleted file mode 100644 index 1ace5c8d..00000000 --- a/docs/apidocs/src-html/javax/measure/quantity/Radioactivity.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Radioactive activity. The metric system unit for this quantity is "Bq" (Becquerel).
    -036 *
    -037 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -038 * @author <a href="mailto:werner@uom.technology">Werner Keil</a>
    -039 * @author Martin Desruisseaux
    -040 * @version 1.2
    -041 * @since 1.0
    -042 */
    -043public interface Radioactivity extends Quantity<Radioactivity> {
    -044}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/apidocs/src-html/javax/measure/quantity/SolidAngle.html b/docs/apidocs/src-html/javax/measure/quantity/SolidAngle.html deleted file mode 100644 index 30381906..00000000 --- a/docs/apidocs/src-html/javax/measure/quantity/SolidAngle.html +++ /dev/null @@ -1,123 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Angle formed by three or more planes intersecting at a common point. The metric system unit for this quantity is "sr" (steradian).
    -036 *
    -037 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -038 * @author <a href="mailto:werner@uom.technology">Werner Keil</a>
    -039 * @version 1.3
    -040 * @since 1.0
    -041 *
    -042 * @see Angle
    -043 */
    -044public interface SolidAngle extends Quantity<SolidAngle> {
    -045}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/apidocs/src-html/javax/measure/quantity/Speed.html b/docs/apidocs/src-html/javax/measure/quantity/Speed.html deleted file mode 100644 index 95492469..00000000 --- a/docs/apidocs/src-html/javax/measure/quantity/Speed.html +++ /dev/null @@ -1,131 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Distance traveled divided by the time of travel. The metric system unit for this quantity is "m/s" (metre per second).
    -036 *
    -037 * <p>
    -038 * <cite>Speed</cite> is a scalar value, while <cite>velocity</cite> is a vector. Speed is the magnitude of the velocity vector, or the components of
    -039 * the velocity vector.
    -040 * </p>
    -041 *
    -042 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -043 * @author <a href="mailto:werner@uom.technology">Werner Keil</a>
    -044 * @version 1.2
    -045 * @since 1.0
    -046 *
    -047 * @see Length
    -048 * @see Time
    -049 * @see Acceleration
    -050 * @see <a href="http://en.wikipedia.org/wiki/Speed">Wikipedia: Speed</a>
    -051 */
    -052public interface Speed extends Quantity<Speed> {
    -053}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/apidocs/src-html/javax/measure/quantity/Temperature.html b/docs/apidocs/src-html/javax/measure/quantity/Temperature.html deleted file mode 100644 index 841d61b6..00000000 --- a/docs/apidocs/src-html/javax/measure/quantity/Temperature.html +++ /dev/null @@ -1,139 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Degree of hotness or coldness of a body or an environment. The metric system unit for this quantity is "K" (Kelvin).
    -036 *
    -037 * The kelvin, symbol K, is the SI unit of thermodynamic temperature. It is defined by
    -038 * taking the fixed numerical value of the Boltzmann constant k to be 1.380 649 × 10−²³
    -039 * when expressed in the unit J K⁻¹, which is equal to kg m² s⁻² K⁻¹, where the
    -040 * kilogram, metre and second are defined in terms of h, c and ∆νCs.
    -041 *
    -042 * This definition implies the exact relation k = 1.380 649 × 10⁻²³ kg m² s⁻² K⁻¹. Inverting this
    -043 * relation gives an exact expression for the kelvin in terms of the defining constants k, h and
    -044 * ∆νCs:
    -045 *
    -046 * 1 K = (1.380 649 / k) × 10⁻²³ kg m² s⁻²
    -047 * <br>
    -048 * <dl>
    -049 * <dt><span class="strong">API Note:</span></dt><dd>SI Base Unit</dd>
    -050 * </dl>
    -051 * 
    -052 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -053 * @author <a href="mailto:werner@uom.technology">Werner Keil</a>
    -054 * @author <a href="mailto:thodoris.bais@gmail.com">Thodoris Bais</a>
    -055 * @version 2.1
    -056 * @since 1.0
    -057 *
    -058 * @see <a href="https://en.wikipedia.org/wiki/Temperature">Wikipedia: Temperature</a>
    -059 */
    -060public interface Temperature extends Quantity<Temperature> {
    -061}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/apidocs/src-html/javax/measure/quantity/Time.html b/docs/apidocs/src-html/javax/measure/quantity/Time.html deleted file mode 100644 index 169c6f8f..00000000 --- a/docs/apidocs/src-html/javax/measure/quantity/Time.html +++ /dev/null @@ -1,142 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Period of existence or persistence. The metric system unit for this quantity is "s" (second).
    -036 *
    -037 * The second, symbol s, is the SI unit of time. It is defined by taking the fixed
    -038 * numerical value of the caesium frequency ∆νCs, the unperturbed ground-state
    -039 * hyperfine transition frequency of the caesium 133 atom, to be 9 192 631 770 when
    -040 * expressed in the unit Hz, which is equal to s⁻¹.
    -041 *
    -042 * This definition implies the exact relation ∆νCs = 9 192 631 770 Hz. Inverting this relation
    -043 * gives an expression for the unit second in terms of the defining constant ∆νCs:
    -044 *
    -045 * 1 Hz = ∆νCs / 9 192 631 770  or  1 s = 9 192 631 770 / ∆νCs
    -046 * <br>
    -047 * <dl>
    -048 * <dt><span class="strong">API Note:</span></dt><dd>SI Base Unit</dd>
    -049 * </dl>
    -050 * 
    -051 * @author <a href="mailto:werner@uom.technology">Werner Keil</a>
    -052 * @author <a href="mailto:thodoris.bais@gmail.com">Thodoris Bais</a>
    -053 * @version 2.1
    -054 * @since 1.0
    -055 *
    -056 * @see Frequency
    -057 * @see Speed
    -058 * @see Acceleration
    -059 * @see ElectricCurrent
    -060 * @see Power
    -061 * @see <a href="https://en.wikipedia.org/wiki/Unit_of_time">Wikipedia: Unit of time</a>
    -062 */
    -063public interface Time extends Quantity<Time> {
    -064}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/apidocs/src-html/javax/measure/quantity/Volume.html b/docs/apidocs/src-html/javax/measure/quantity/Volume.html deleted file mode 100644 index 8eb4a148..00000000 --- a/docs/apidocs/src-html/javax/measure/quantity/Volume.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Amount of space occupied by a three-dimensional object or region of space. The metric system unit for this quantity is "m³" (cubic metre).
    -036 *
    -037 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -038 * @author <a href="mailto:werner@uom.technology">Werner Keil</a>
    -039 * @version 1.3
    -040 * @since 1.0
    -041 *
    -042 * @see Length
    -043 * @see Area
    -044 */
    -045public interface Volume extends Quantity<Volume> {
    -046}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/apidocs/src-html/javax/measure/spi/FormatService.FormatType.html b/docs/apidocs/src-html/javax/measure/spi/FormatService.FormatType.html deleted file mode 100644 index aa0e1ad3..00000000 --- a/docs/apidocs/src-html/javax/measure/spi/FormatService.FormatType.html +++ /dev/null @@ -1,197 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.spi;
    -031
    -032import java.util.Set;
    -033
    -034import javax.measure.format.QuantityFormat;
    -035import javax.measure.format.UnitFormat;
    -036
    -037/**
    -038 * This interface represents the service to obtain instances of {@link UnitFormat} and {@link QuantityFormat}.
    -039 *
    -040 * @author <a href="mailto:werner@uom.technology">Werner Keil</a>
    -041 * @version 2.3, May 20, 2023
    -042 * @since 2.0
    -043 */
    -044public interface FormatService {
    -045
    -046        /** The type of format, either a {@link UnitFormat} or {@link QuantityFormat} */
    -047    public static enum FormatType {
    -048        /** Format of type {@link UnitFormat} */
    -049        UNIT_FORMAT, 
    -050        /** Format of type {@link QuantityFormat} */
    -051        QUANTITY_FORMAT
    -052    }
    -053
    -054    /**
    -055     * Returns the default quantity format.
    -056     *
    -057     * It is up to implementations what to consider a suitable default. For some (locale-sensitive) implementations it may be a quantity format based on
    -058     * {@code Locale.current()} while others may return {@code getQuantityFormat("Simple")} or {@code getQuantityFormat("ISO")}.
    -059     *
    -060     * @return the default {@link QuantityFormat} implementation.
    -061     */
    -062    QuantityFormat getQuantityFormat();
    -063
    -064    /**
    -065     * Returns the quantity format having the specified name or {@code null} if none.
    -066     *
    -067     * For example (@code getQuantityFormat("Simple")} to return the simple {@link QuantityFormat} implementation.
    -068     *
    -069     * @param name
    -070     *          the name of the format.
    -071     * @return the corresponding quantity format.
    -072     */
    -073    QuantityFormat getQuantityFormat(String name);
    -074
    -075    /**
    -076     * Returns the default unit format.
    -077     *
    -078     * It is up to implementations what to consider a suitable default. For some (locale-sensitive) implementations it may be a unit format based on
    -079     * {@code Locale.current()} while others may return {@code getUnitFormat("Simple")} or {@code getUnitFormat("ISO")}.
    -080     *
    -081     * @return the default {@link UnitFormat} implementation.
    -082     */
    -083    UnitFormat getUnitFormat();
    -084
    -085    /**
    -086     * Returns the unit format having the specified name or {@code null} if none.
    -087     *
    -088     * For example {@code getUnitFormat("Simple")} to return a simple {@link UnitFormat} implementation.
    -089     *
    -090     * @param name
    -091     *          the name of the format.
    -092     * @return the corresponding unit format.
    -093     */
    -094    UnitFormat getUnitFormat(String name);
    -095    
    -096    /**
    -097     * Returns the unit format having the specified name or {@code null} if none.
    -098     *
    -099     * For example {@code getUnitFormat("Simple")} to return a simple {@link UnitFormat} implementation.<br>
    -100     * The variant is an arbitrary value to allow a variation of a {@link UnitFormat}, 
    -101     * for example <code>UTF</code> vs. <code>ASCII</code> encoding of the simple <code>UnitFormat</code> 
    -102     * or <code>case sensitive</code> vs. <code>case insensitive</code> <a href="https://ucum.org/ucum.html">UCUM</a> format.
    -103     * <p>If no variant is applicable, the <code>UnitFormat</code> matching the name only is returned.</p> 
    -104     * @param name
    -105     *          the name of the format.
    -106     * @param variant any arbitrary value used to indicate a variation of a <code>UnitFormat</code>.
    -107     * @return the corresponding unit format.
    -108     */
    -109    UnitFormat getUnitFormat(String name, String variant);
    -110    
    -111    /**
    -112     * Gets a list with available format names of a given type for this format service.
    -113     *
    -114     * @param type
    -115     *          the {@link FormatType}
    -116     * @return list of available formats, never null.
    -117     */
    -118    Set<String> getAvailableFormatNames(FormatType type);
    -119}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/apidocs/src-html/javax/measure/spi/FormatService.html b/docs/apidocs/src-html/javax/measure/spi/FormatService.html deleted file mode 100644 index a5464138..00000000 --- a/docs/apidocs/src-html/javax/measure/spi/FormatService.html +++ /dev/null @@ -1,197 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.spi;
    -031
    -032import java.util.Set;
    -033
    -034import javax.measure.format.QuantityFormat;
    -035import javax.measure.format.UnitFormat;
    -036
    -037/**
    -038 * This interface represents the service to obtain instances of {@link UnitFormat} and {@link QuantityFormat}.
    -039 *
    -040 * @author <a href="mailto:werner@uom.technology">Werner Keil</a>
    -041 * @version 2.3, May 20, 2023
    -042 * @since 2.0
    -043 */
    -044public interface FormatService {
    -045
    -046        /** The type of format, either a {@link UnitFormat} or {@link QuantityFormat} */
    -047    public static enum FormatType {
    -048        /** Format of type {@link UnitFormat} */
    -049        UNIT_FORMAT, 
    -050        /** Format of type {@link QuantityFormat} */
    -051        QUANTITY_FORMAT
    -052    }
    -053
    -054    /**
    -055     * Returns the default quantity format.
    -056     *
    -057     * It is up to implementations what to consider a suitable default. For some (locale-sensitive) implementations it may be a quantity format based on
    -058     * {@code Locale.current()} while others may return {@code getQuantityFormat("Simple")} or {@code getQuantityFormat("ISO")}.
    -059     *
    -060     * @return the default {@link QuantityFormat} implementation.
    -061     */
    -062    QuantityFormat getQuantityFormat();
    -063
    -064    /**
    -065     * Returns the quantity format having the specified name or {@code null} if none.
    -066     *
    -067     * For example (@code getQuantityFormat("Simple")} to return the simple {@link QuantityFormat} implementation.
    -068     *
    -069     * @param name
    -070     *          the name of the format.
    -071     * @return the corresponding quantity format.
    -072     */
    -073    QuantityFormat getQuantityFormat(String name);
    -074
    -075    /**
    -076     * Returns the default unit format.
    -077     *
    -078     * It is up to implementations what to consider a suitable default. For some (locale-sensitive) implementations it may be a unit format based on
    -079     * {@code Locale.current()} while others may return {@code getUnitFormat("Simple")} or {@code getUnitFormat("ISO")}.
    -080     *
    -081     * @return the default {@link UnitFormat} implementation.
    -082     */
    -083    UnitFormat getUnitFormat();
    -084
    -085    /**
    -086     * Returns the unit format having the specified name or {@code null} if none.
    -087     *
    -088     * For example {@code getUnitFormat("Simple")} to return a simple {@link UnitFormat} implementation.
    -089     *
    -090     * @param name
    -091     *          the name of the format.
    -092     * @return the corresponding unit format.
    -093     */
    -094    UnitFormat getUnitFormat(String name);
    -095    
    -096    /**
    -097     * Returns the unit format having the specified name or {@code null} if none.
    -098     *
    -099     * For example {@code getUnitFormat("Simple")} to return a simple {@link UnitFormat} implementation.<br>
    -100     * The variant is an arbitrary value to allow a variation of a {@link UnitFormat}, 
    -101     * for example <code>UTF</code> vs. <code>ASCII</code> encoding of the simple <code>UnitFormat</code> 
    -102     * or <code>case sensitive</code> vs. <code>case insensitive</code> <a href="https://ucum.org/ucum.html">UCUM</a> format.
    -103     * <p>If no variant is applicable, the <code>UnitFormat</code> matching the name only is returned.</p> 
    -104     * @param name
    -105     *          the name of the format.
    -106     * @param variant any arbitrary value used to indicate a variation of a <code>UnitFormat</code>.
    -107     * @return the corresponding unit format.
    -108     */
    -109    UnitFormat getUnitFormat(String name, String variant);
    -110    
    -111    /**
    -112     * Gets a list with available format names of a given type for this format service.
    -113     *
    -114     * @param type
    -115     *          the {@link FormatType}
    -116     * @return list of available formats, never null.
    -117     */
    -118    Set<String> getAvailableFormatNames(FormatType type);
    -119}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/apidocs/src-html/javax/measure/spi/QuantityFactory.html b/docs/apidocs/src-html/javax/measure/spi/QuantityFactory.html deleted file mode 100644 index f87686a8..00000000 --- a/docs/apidocs/src-html/javax/measure/spi/QuantityFactory.html +++ /dev/null @@ -1,174 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.spi;
    -031
    -032import javax.measure.Quantity;
    -033import javax.measure.Quantity.Scale;
    -034import javax.measure.Unit;
    -035
    -036/**
    -037 * Represents a factory that accepts {@link Number} and {@link Unit} arguments to create {@link Quantity} results.
    -038 *
    -039 * @param <Q>
    -040 *          the type of the {@link Quantity} result
    -041 *
    -042 * @author <a href="mailto:werner@uom.technology">Werner Keil</a>
    -043 * @author <a href="mailto:otaviopolianasantana@gmail.com">Otavio Santana</a>
    -044 * @version 1.4, December 18, 2018
    -045 * @since 1.0
    -046 *
    -047 * @see <a href="https://en.wikipedia.org/wiki/Factory_method_pattern"> Wikipedia: Factory method pattern</a>
    -048 * @see Quantity
    -049 * @see Unit
    -050 */
    -051public interface QuantityFactory<Q extends Quantity<Q>> {
    -052
    -053    /**
    -054     * Returns the quantity for the specified number stated in the specified unit and scale.
    -055     *
    -056     * @param value
    -057     *          the numeric value stated in the specified unit
    -058     * @param unit
    -059     *          the unit
    -060     * @param scale
    -061     *          The {@code ABSOLUTE} / {@code RELATIVE} {@code scale} of this quantity
    -062     * @return the corresponding quantity
    -063     * @since 2.0
    -064     */
    -065    Quantity<Q> create(Number value, Unit<Q> unit, Scale scale);
    -066    
    -067    /**
    -068     * Returns the quantity for the specified number stated in the specified unit.
    -069     *
    -070     * @param value
    -071     *          the numeric value stated in the specified unit
    -072     * @param unit
    -073     *          the unit
    -074     * @return the corresponding quantity
    -075     */
    -076    Quantity<Q> create(Number value, Unit<Q> unit);
    -077
    -078    /**
    -079     * Returns the system unit for quantities produced by this factory or {@code null} if unknown.
    -080     *
    -081     * <p>
    -082     * Because the system unit is unique by quantity type, it can be be used to identify the quantity given the unit. For example:
    -083     * </p>
    -084     *
    -085     * <pre>
    -086     *     static boolean isAngularSpeed({@literal Unit<?>} unit) {
    -087     *         return unit.getSystemUnit().equals(RADIAN.divide(SECOND));
    -088     *     }
    -089     *     assert isAngularSpeed(REVOLUTION.divide(MINUTE)); // Returns true.
    -090     * </pre>
    -091     *
    -092     * @return the system unit for this factory.
    -093     * @see Unit#getSystemUnit()
    -094     */
    -095    Unit<Q> getSystemUnit();
    -096}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/apidocs/src-html/javax/measure/spi/ServiceProvider.html b/docs/apidocs/src-html/javax/measure/spi/ServiceProvider.html deleted file mode 100644 index 5add70d6..00000000 --- a/docs/apidocs/src-html/javax/measure/spi/ServiceProvider.html +++ /dev/null @@ -1,491 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.spi;
    -031
    -032import java.lang.annotation.Annotation;
    -033import java.lang.reflect.InvocationTargetException;
    -034import java.lang.reflect.Method;
    -035import java.util.ArrayList;
    -036import java.util.Comparator;
    -037import java.util.List;
    -038import java.util.Objects;
    -039import java.util.Optional;
    -040import java.util.ServiceConfigurationError;
    -041import java.util.ServiceLoader;
    -042import java.util.concurrent.atomic.AtomicReference;
    -043import java.util.function.Predicate;
    -044import java.util.logging.Level;
    -045import java.util.logging.Logger;
    -046import java.util.stream.Collectors;
    -047import java.util.stream.Stream;
    -048import java.util.stream.StreamSupport;
    -049import javax.measure.Quantity;
    -050import javax.measure.format.QuantityFormat;
    -051import javax.measure.format.UnitFormat;
    -052
    -053/**
    -054 * Service Provider for Units of Measurement services.
    -055 * <p>
    -056 * All the methods in this class are safe to use by multiple concurrent threads.
    -057 * </p>
    -058 *
    -059 * @version 2.3, May 19, 2023
    -060 * @author Werner Keil
    -061 * @author Martin Desruisseaux
    -062 * @since 1.0
    -063 */
    -064public abstract class ServiceProvider {
    -065    /**
    -066     * Class name of JSR-330 annotation for naming a service provider.
    -067     * We use reflection for keeping JSR-330 an optional dependency.
    -068     */
    -069    private static final String LEGACY_NAMED_ANNOTATION = "javax.inject.Named";
    -070
    -071    /**
    -072     * Class name of JSR-250 annotation for assigning a priority level to a service provider.
    -073     * We use reflection for keeping JSR-250 an optional dependency.
    -074     */
    -075    private static final String LEGACY_PRIORITY_ANNOTATION = "javax.annotation.Priority";
    -076
    -077    /**
    -078     * Class name of Jakarta Dependency Injection annotation for naming a service provider.
    -079     * We use reflection for keeping Jakata Injection an optional dependency.
    -080     */
    -081    private static final String NAMED_ANNOTATION = "jakarta.inject.Named";
    -082
    -083    /**
    -084     * Class name of Jakarta Common Annotation for assigning a priority level to a service provider.
    -085     * We use reflection for keeping Jakarta Annotations an optional dependency.
    -086     */
    -087    private static final String PRIORITY_ANNOTATION = "jakarta.annotation.Priority";
    -088
    -089    /**
    -090     * The current service provider, or {@code null} if not yet determined.
    -091     *
    -092     * <p>Implementation Note: We do not cache a list of all service providers because that list depends
    -093     * indirectly on the thread invoking the {@link #available()} method. More specifically, it depends
    -094     * on the context class loader. Furthermore caching the {@code ServiceProvider}s can be a source of
    -095     * memory leaks. See {@link ServiceLoader#load(Class)} API note for reference.</p>
    -096     */
    -097    private static final AtomicReference<ServiceProvider> current = new AtomicReference<>();
    -098
    -099    /**
    -100     * Creates a new service provider. Only to be used by subclasses.
    -101     */
    -102    protected ServiceProvider() {
    -103    }
    -104
    -105    /**
    -106     * Allows to define a priority for a registered {@code ServiceProvider} instance.
    -107     * When multiple providers are registered in the system, the provider with the highest priority value is taken.
    -108     *
    -109     * <p>If the {@value #PRIORITY_ANNOTATION} annotation (from Jakarta Annotations)
    -110     * or {@value #LEGACY_PRIORITY_ANNOTATION} annotation (from JSR-250) is present on the {@code ServiceProvider}
    -111     * implementation class, then that annotation (first if both were present) is taken and this {@code getPriority()} method is ignored.
    -112     * Otherwise – if a {@code Priority} annotation is absent – this method is used as a fallback.</p>
    -113     *
    -114     * @return the provider's priority (default is 0).
    -115     */
    -116    public int getPriority() {
    -117        return 0;
    -118    }
    -119
    -120    /**
    -121     * Returns the service to obtain a {@link SystemOfUnits}, or {@code null} if none.
    -122     *
    -123     * @return the service to obtain a {@link SystemOfUnits}, or {@code null}.
    -124     */
    -125    public abstract SystemOfUnitsService getSystemOfUnitsService();
    -126
    -127    /**
    -128     * Returns the service to obtain {@link UnitFormat} and {@link QuantityFormat} or {@code null} if none.
    -129     *
    -130     * @return the service to obtain a {@link UnitFormat} and {@link QuantityFormat}, or {@code null}.
    -131     * @since 2.0
    -132     */
    -133    public abstract FormatService getFormatService();
    -134
    -135    /**
    -136     * Returns a factory for the given {@link Quantity} type.
    -137     *
    -138     * @param <Q>
    -139     *            the type of the {@link Quantity} instances created by the factory
    -140     * @param quantity
    -141     *            the quantity type
    -142     * @return the {@link QuantityFactory} for the given type
    -143     */
    -144    public abstract <Q extends Quantity<Q>> QuantityFactory<Q> getQuantityFactory(Class<Q> quantity);
    -145
    -146    /**
    -147     * A filter and a comparator for processing the stream of service providers.
    -148     * The two tasks (filtering and sorting) are implemented by the same class,
    -149     * but the filter task shall be used only if the name to search is non-null.
    -150     * The comparator is used in all cases, for sorting providers with higher priority first.
    -151     */
    -152    private static final class Selector implements Predicate<ServiceProvider>, Comparator<ServiceProvider> {
    -153        /**
    -154         * The name of the provider to search, or {@code null} if no filtering by name is applied.
    -155         */
    -156        private final String toSearch;
    -157
    -158        /**
    -159         * The {@code value()} method in the {@value #NAMED_ANNOTATION} annotation,
    -160         * or {@code null} if that class is not on the classpath.
    -161         */
    -162        private final Method nameGetter;
    -163
    -164        /**
    -165         * The {@code value()} method in the {@value #PRIORITY_ANNOTATION} annotation,
    -166         * or {@code null} if that class is not on the classpath.
    -167         */
    -168        private final Method priorityGetter;
    -169
    -170        /**
    -171         * The {@code value()} method in the {@value #LEGACY_NAMED_ANNOTATION} annotation,
    -172         * or {@code null} if that class is not on the classpath.
    -173         */
    -174        private final Method legacyNameGetter;
    -175
    -176        /**
    -177         * The {@code value()} method in the {@value #LEGACY_PRIORITY_ANNOTATION} annotation,
    -178         * or {@code null} if that class is not on the classpath.
    -179         */
    -180        private final Method legacyPriorityGetter;
    -181
    -182        /**
    -183         * Creates a new filter and comparator for a stream of service providers.
    -184         *
    -185         * @param name  name of the desired service provider, or {@code null} if no filtering by name is applied.
    -186         */
    -187        Selector(String name) {
    -188            toSearch = name;
    -189            try {
    -190                if (name != null) {
    -191                    nameGetter       = getValueMethod(NAMED_ANNOTATION);
    -192                    legacyNameGetter = getValueMethod(LEGACY_NAMED_ANNOTATION);
    -193                } else {
    -194                    nameGetter       = null;
    -195                    legacyNameGetter = null;
    -196                }
    -197                priorityGetter       = getValueMethod(PRIORITY_ANNOTATION);
    -198                legacyPriorityGetter = getValueMethod(LEGACY_PRIORITY_ANNOTATION);
    -199            } catch (NoSuchMethodException e) {
    -200                // Should never happen since value() is a standard public method of those annotations.
    -201                throw new ServiceConfigurationError("Cannot get annotation value", e);
    -202            }
    -203        }
    -204
    -205        /**
    -206         * Returns the {@code value()} method in the given annotation class.
    -207         *
    -208         * @param  classname  name of the class from which to get the {@code value()} method.
    -209         * @return the {@code value()} method, or {@code null} if the annotation class was not found.
    -210         */
    -211        private static Method getValueMethod(final String classname) throws NoSuchMethodException {
    -212            try {
    -213                return Class.forName(classname).getMethod("value", (Class[]) null);
    -214            } catch (ClassNotFoundException e) {
    -215                // Ignore because JSR-330, JSR-250 and Jakarta are optional dependencies.
    -216                return null;
    -217            }
    -218        }
    -219
    -220        /**
    -221         * Invokes the {@code value()} method on the annotation of the given class.
    -222         * The annotation on which to invoke the method is given by {@link Method#getDeclaringClass()}.
    -223         *
    -224         * @param  provider   class of the provider on which to invoke annotation {@code value()}.
    -225         * @param  getter     the preferred  {@code value()} method to invoke, or {@code null}.
    -226         * @param  fallback   an alternative {@code value()} method to invoke, or {@code null}.
    -227         * @return the value, or {@code null} if none.
    -228         */
    -229        private static Object getValue(final Class<?> provider, Method getter, Method fallback) {
    -230            if (getter == null) {
    -231                getter = fallback;
    -232                fallback = null;
    -233            }
    -234            while (getter != null) {
    -235                final Annotation a = provider.getAnnotation(getter.getDeclaringClass().asSubclass(Annotation.class));
    -236                if (a != null) try {
    -237                    return getter.invoke(a, (Object[]) null);
    -238                } catch (IllegalAccessException | InvocationTargetException e) {
    -239                    // Should never happen since value() is a public method and should not throw exception.
    -240                    throw new ServiceConfigurationError("Cannot get annotation value", e);
    -241                }
    -242                getter = fallback;
    -243                fallback = null;
    -244            }
    -245            return null;
    -246        }
    -247
    -248        /**
    -249         * Returns {@code true} if the given service provider has the name we are looking for.
    -250         * This method shall be invoked only if a non-null name has been specified to the constructor.
    -251         * This method looks for the {@value #NAMED_ANNOTATION} and {@value #LEGACY_NAMED_ANNOTATION}
    -252         * annotations in that order, and if none are found fallbacks on {@link ServiceProvider#toString()}.
    -253         */
    -254        @Override
    -255        public boolean test(final ServiceProvider provider) {
    -256            Object value = getValue(provider.getClass(), nameGetter, legacyNameGetter);
    -257            if (value == null) {
    -258                value = provider.toString();
    -259            }
    -260            return toSearch.equals(value);
    -261        }
    -262
    -263        /**
    -264         * Returns the priority of the given service provider.
    -265         * This method looks for the {@value #PRIORITY_ANNOTATION} and {@value #LEGACY_PRIORITY_ANNOTATION}
    -266         * annotations in that order, and if none are found falls back on {@link ServiceProvider#getPriority()}.
    -267         */
    -268        private int priority(final ServiceProvider provider) {
    -269            Object value = getValue(provider.getClass(), priorityGetter, legacyPriorityGetter);
    -270            if (value != null) {
    -271                return (Integer) value;
    -272            }
    -273            return provider.getPriority();
    -274        }
    -275
    -276        /**
    -277         * Compares the given service providers for order based on their priority.
    -278         * The priority of each provider is determined as documented by {@link ServiceProvider#getPriority()}.
    -279         */
    -280        @Override
    -281        public int compare(final ServiceProvider p1, final ServiceProvider p2) {
    -282            return Integer.compare(priority(p2), priority(p1)); // reverse order, higher number first.
    -283        }
    -284
    -285        /**
    -286         * Gets all {@link ServiceProvider}s sorted by priority and optionally filtered by the name in this selector.
    -287         * The list of service providers is <strong>not</strong> cached because it depends on the context class loader,
    -288         * which itself depends on which thread is invoking this method.
    -289         */
    -290        private Stream<ServiceProvider> stream() {
    -291            Stream<ServiceProvider> stream = StreamSupport.stream(ServiceLoader.load(ServiceProvider.class).spliterator(), false);
    -292            if (toSearch != null) {
    -293                stream = stream.filter(this);
    -294            }
    -295            return stream.sorted(this);
    -296        }
    -297    }
    -298
    -299    /**
    -300     * Returns the list of all service providers available for the current thread's context class loader.
    -301     * The {@linkplain #current() current} service provider is always the first item in the returned list.
    -302     * Other service providers after the first item may depend on the caller thread
    -303     * (see {@linkplain ServiceLoader#load(Class) service loader API note}).
    -304     *
    -305     * @return all service providers available for the current thread's context class loader.
    -306     */
    -307    public static final List<ServiceProvider> available() {
    -308        ArrayList<ServiceProvider> providers = new Selector(null).stream().collect(Collectors.toCollection(ArrayList::new));
    -309        final ServiceProvider first = current.get();
    -310        /*
    -311         * Make sure that 'first' is the first item in the 'providers' list. If that item appears
    -312         * somewhere else, we have to remove the second occurrence for avoiding duplicated elements.
    -313         * We compare the classes, not the instances, because new instances may be created each time
    -314         * this method is invoked and we have no guaranteed that implementors overrode 'equals'.
    -315         */
    -316setcur: if (first != null) {
    -317            final Class<?> cf = first.getClass();
    -318            final int size = providers.size();
    -319            for (int i=0; i<size; i++) {
    -320                if (cf.equals(providers.get(i).getClass())) {
    -321                    if (i == 0) break setcur;       // No change needed (note: labeled breaks on if statements are legal).
    -322                    providers.remove(i);
    -323                    break;
    -324                }
    -325            }
    -326            providers.add(0, first);
    -327        }
    -328        return providers;
    -329    }
    -330
    -331    /**
    -332     * Returns the {@link ServiceProvider} with the specified name.
    -333     * The given name must match the name of at least one service provider available in the current thread's
    -334     * context class loader.
    -335     * The service provider names are the values of {@value #NAMED_ANNOTATION} (from Jakarta Annotations) or
    -336     * {@value #LEGACY_NAMED_ANNOTATION} (from JSR-330) annotations when present (first if both were present),
    -337     * or the value of {@link #toString()} method for providers without {@code Named} annotation.
    -338     *
    -339     * <p>Implementors are encouraged to provide an {@code Named} annotation or to override {@link #toString()}
    -340     * and use a unique enough name, e.g. the class name or other distinct attributes.
    -341     * Should multiple service providers nevertheless use the same name, the one with the highest
    -342     * {@linkplain #getPriority() priority} wins.</p>
    -343     *
    -344     * @param name
    -345     *            the name of the service provider to return
    -346     * @return the {@link ServiceProvider} with the specified name
    -347     * @throws IllegalArgumentException
    -348     *             if available service providers do not contain a provider with the specified name
    -349     * @throws NullPointerException
    -350     *             if {@code name} is null
    -351     * @see #toString()
    -352     * @since 2.0
    -353     */
    -354    public static ServiceProvider of(String name) {
    -355        Objects.requireNonNull(name);
    -356        Selector select = new Selector(name);
    -357        ServiceProvider p = current.get();
    -358        if (p != null && select.test(p)) {
    -359            return p;
    -360        }
    -361        Optional<ServiceProvider> first = select.stream().findFirst();
    -362        if (first.isPresent()) {
    -363            return first.get();
    -364        } else {
    -365            throw new IllegalArgumentException("No Measurement ServiceProvider " + name + " found .");
    -366        }
    -367    }
    -368
    -369    /**
    -370     * Returns the current {@link ServiceProvider}. If necessary the {@link ServiceProvider} will be lazily loaded.
    -371     * <p>
    -372     * If there are no providers available, an {@linkplain IllegalStateException} is thrown.
    -373     * Otherwise the provider with the highest priority is used
    -374     * or the one explicitly designated via {@link #setCurrent(ServiceProvider)}.
    -375     * </p>
    -376     *
    -377     * @return the {@link ServiceProvider} used.
    -378     * @throws IllegalStateException
    -379     *             if no {@link ServiceProvider} has been found.
    -380     * @see #getPriority()
    -381     * @see #setCurrent(ServiceProvider)
    -382     */
    -383    public static final ServiceProvider current() {
    -384        ServiceProvider p = current.get();
    -385        if (p == null) {
    -386            Optional<ServiceProvider> first = new Selector(null).stream().findFirst();
    -387            if (first.isPresent()) {
    -388                p = first.get();
    -389            } else {
    -390                throw new IllegalStateException("No Measurement ServiceProvider found.");
    -391            }
    -392        }
    -393        return p;
    -394    }
    -395
    -396    /**
    -397     * Replaces the current {@link ServiceProvider}.
    -398     *
    -399     * @param provider
    -400     *            the new {@link ServiceProvider}
    -401     * @return the replaced provider, or null.
    -402     */
    -403    public static final ServiceProvider setCurrent(ServiceProvider provider) {
    -404        Objects.requireNonNull(provider);
    -405        ServiceProvider old = current.getAndSet(provider);
    -406        if (old != provider) {
    -407            Logger.getLogger("javax.measure.spi").log(Level.CONFIG,
    -408                    "Measurement ServiceProvider {1,choice,0#set to|1#replaced by} {0}.",
    -409                    new Object[] {provider.getClass().getName(), (old == null) ? 0 : 1});
    -410        }
    -411        return old;
    -412    }
    -413}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/apidocs/src-html/javax/measure/spi/SystemOfUnits.html b/docs/apidocs/src-html/javax/measure/spi/SystemOfUnits.html deleted file mode 100644 index fd837f03..00000000 --- a/docs/apidocs/src-html/javax/measure/spi/SystemOfUnits.html +++ /dev/null @@ -1,174 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.spi;
    -031
    -032import java.util.Set;
    -033
    -034import javax.measure.Dimension;
    -035import javax.measure.Quantity;
    -036import javax.measure.Unit;
    -037
    -038/**
    -039 * A system of units grouped together for historical or cultural reasons.<br>
    -040 * Common system of units are "SI" (System International), "Imperial" (British), "US" (US Customary). Nothing prevents a unit from belonging to
    -041 * several systems of units at the same time (for example an {@code Imperial} system would have many of the units held by the {@code US} Customary
    -042 * system).
    -043 *
    -044 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -045 * @author <a href="mailto:werner@uom.technology">Werner Keil</a>
    -046 * @version 1.1, June 21, 2018
    -047 * @since 1.0
    -048 *
    -049 * @see <a href="http://en.wikipedia.org/wiki/International_System_of_Units"> Wikipedia: International System of Units</a>
    -050 * @see <a href="http://en.wikipedia.org/wiki/Systems_of_measurement"> Wikipedia: System of measurement</a>
    -051 */
    -052public interface SystemOfUnits {
    -053
    -054    /**
    -055     * @return a name
    -056     */
    -057    String getName();
    -058
    -059    /**
    -060     * Returns the default unit for the specified quantity or {@code null} if none is defined for the given quantity in this unit system.
    -061     *
    -062     * @param <Q>
    -063     *          the compile-time quantity type.
    -064     * @param quantityType
    -065     *          the quantity type.
    -066     * @return the unit for the specified quantity.
    -067     */
    -068    <Q extends Quantity<Q>> Unit<Q> getUnit(Class<Q> quantityType);
    -069
    -070    /**
    -071     * Returns a unit with the given {@linkplain String string} representation or {@code null} if none is found in this unit system.
    -072     *
    -073     * @param string
    -074     *          the string representation of a unit, not {@code null}.
    -075     * @return the unit with the given string representation.
    -076     * @since 2.0
    -077     */
    -078    Unit<?> getUnit(String string);
    -079
    -080    /**
    -081     * Returns a read only view over the units explicitly defined by this system. This include the base and derived units which are assigned a special
    -082     * name and symbol. This set does not include new units created by arithmetic or other operations.
    -083     *
    -084     * @return the defined collection of units.
    -085     */
    -086    Set<? extends Unit<?>> getUnits();
    -087
    -088    /**
    -089     * Returns the units defined in this system having the specified dimension (convenience method).
    -090     *
    -091     * @param dimension
    -092     *          the dimension of the units to be returned.
    -093     * @return the collection of units of specified dimension.
    -094     */
    -095    Set<? extends Unit<?>> getUnits(Dimension dimension);
    -096}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/apidocs/src-html/javax/measure/spi/SystemOfUnitsService.html b/docs/apidocs/src-html/javax/measure/spi/SystemOfUnitsService.html deleted file mode 100644 index ff14aea0..00000000 --- a/docs/apidocs/src-html/javax/measure/spi/SystemOfUnitsService.html +++ /dev/null @@ -1,205 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.spi;
    -031
    -032import java.util.Collection;
    -033import java.util.EnumSet;
    -034import java.util.Set;
    -035import javax.measure.Prefix;
    -036
    -037/**
    -038 * This interface represents the service to obtain a {@link SystemOfUnits system
    -039 * of units}.
    -040 *
    -041 * <p>
    -042 * Common systems of units are "SI" (System International) or Metric system,
    -043 * "Imperial" (British), or "US" (US Customary).
    -044 * </p>
    -045 *
    -046 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -047 * @author <a href="mailto:werner@uom.technology">Werner Keil</a>
    -048 * @author <a href="mailto:martin.desruisseaux@geomatys.com">Martin
    -049 *         Desruisseaux</a>
    -050 * @version 1.8, April 3, 2023
    -051 * @since 1.0
    -052 *
    -053 * @see <a href=
    -054 *      "https://en.wikipedia.org/wiki/International_System_of_Units">Wikipedia:
    -055 *      International System of Units</a>
    -056 */
    -057public interface SystemOfUnitsService {
    -058
    -059    /**
    -060     * Returns the default {@link SystemOfUnits system of units}. Depending on the
    -061     * implementation this may be the <a href="https://en.wikipedia.org/wiki/International_System_of_Units">International
    -062     * System of Units</a> or another default system.
    -063     *
    -064     * @return the default system of units.
    -065     */
    -066    SystemOfUnits getSystemOfUnits();
    -067
    -068    /**
    -069     * Returns the system of units having the specified name or {@code null} if
    -070     * none is found.
    -071     *
    -072     * @param name the system of unit name.
    -073     * @return the system of units for the given name.
    -074     */
    -075    SystemOfUnits getSystemOfUnits(String name);
    -076
    -077    /**
    -078     * Gets a list with available systems for this {@link SystemOfUnitsService}.
    -079     *
    -080     * @return list of available systems of units, never null.
    -081     */
    -082    Collection<SystemOfUnits> getAvailableSystemsOfUnits();
    -083
    -084    /**
    -085     * Returns a {@link Set} containing the values of a particular {@link Prefix}
    -086     * type.
    -087     *
    -088     * <p>
    -089     * This method may be used to iterate over certain prefixes as follows:
    -090     * </p>
    -091     * <pre>{@code
    -092     *    for(MetricPrefix mp : service.getPrefixes(MetricPrefix.class))
    -093     *        System.out.println(p);
    -094     * }</pre>
    -095     *
    -096     * The default implementation assumes that prefixes of the given type are implemented as an enumeration.
    -097     * This is the case of the two default prefix implementations provided in JSR 385,
    -098     * namely {@link javax.measure.MetricPrefix} and {@link javax.measure.BinaryPrefix}.
    -099     * Implementors shall override this method if they provide prefixes implemented in a different way.
    -100     *
    -101     * @param <P> compile-time value of the {@code prefixType} argument
    -102     * @param prefixType the {@link Prefix} type
    -103     * @return a set containing the constant values of this Prefix type, in the
    -104     *         order they're declared
    -105     * @throws ClassCastException if the class is not compatible with the desired
    -106     *                            Prefix implementation or does not implement Prefix at all.
    -107     * @since 2.0
    -108     */
    -109    @SuppressWarnings({"unchecked", "rawtypes"})
    -110    default <P extends Prefix> Set<P> getPrefixes(Class<P> prefixType) {
    -111        // Following check is redundant with parameterized type but nevertheless applied as a safety.
    -112        if (Prefix.class.isAssignableFrom(prefixType)) {
    -113            EnumSet<? extends Enum<?>> prefixes = EnumSet.allOf(prefixType.asSubclass(Enum.class));
    -114            /*
    -115             * Following unchecked cast is safe for read operations because the given class implements
    -116             * 'prefixType' in addition of being an enumeration.  It is also safe for write operations
    -117             * because all enumerations are closed universes (so users can not add an instance unknown
    -118             * to EnumSet) and we would have got an exception before this point if 'prefixType' was not
    -119             * an enumeration in the sense of Class.isEnum().
    -120             */
    -121            return (EnumSet) prefixes;
    -122        } else {
    -123            throw new ClassCastException(String.format("%s does not implement Prefix", prefixType));
    -124            // TODO or should we throw a different exception here, MeasurementException or IllegalArgumentException?
    -125        }
    -126    }
    -127}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/apidocs/stylesheet.css b/docs/apidocs/stylesheet.css deleted file mode 100644 index 4a576bd2..00000000 --- a/docs/apidocs/stylesheet.css +++ /dev/null @@ -1,869 +0,0 @@ -/* - * 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; - background-color: #FFFFFF; -} -ul.ui-autocomplete li { - float:left; - clear:both; - width:100%; -} -.result-highlight { - font-weight:bold; -} -.ui-autocomplete .result-item { - font-size: inherit; -} -#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/docs/apidocs/tag-search-index.js b/docs/apidocs/tag-search-index.js deleted file mode 100644 index f38b3cb3..00000000 --- a/docs/apidocs/tag-search-index.js +++ /dev/null @@ -1 +0,0 @@ -tagSearchIndex = [{"l":"Serialized Form","h":"","u":"serialized-form.html"}];updateSearchResults(); \ No newline at end of file diff --git a/docs/apidocs/type-search-index.js b/docs/apidocs/type-search-index.js deleted file mode 100644 index c3580118..00000000 --- a/docs/apidocs/type-search-index.js +++ /dev/null @@ -1 +0,0 @@ -typeSearchIndex = [{"p":"javax.measure.quantity","l":"Acceleration"},{"l":"All Classes and Interfaces","u":"allclasses-index.html"},{"p":"javax.measure.quantity","l":"AmountOfSubstance"},{"p":"javax.measure.quantity","l":"Angle"},{"p":"javax.measure.quantity","l":"Area"},{"p":"javax.measure","l":"BinaryPrefix"},{"p":"javax.measure.quantity","l":"CatalyticActivity"},{"p":"javax.measure","l":"Dimension"},{"p":"javax.measure.quantity","l":"Dimensionless"},{"p":"javax.measure.quantity","l":"ElectricCapacitance"},{"p":"javax.measure.quantity","l":"ElectricCharge"},{"p":"javax.measure.quantity","l":"ElectricConductance"},{"p":"javax.measure.quantity","l":"ElectricCurrent"},{"p":"javax.measure.quantity","l":"ElectricInductance"},{"p":"javax.measure.quantity","l":"ElectricPotential"},{"p":"javax.measure.quantity","l":"ElectricResistance"},{"p":"javax.measure.quantity","l":"Energy"},{"p":"javax.measure.quantity","l":"Force"},{"p":"javax.measure.spi","l":"FormatService"},{"p":"javax.measure.spi","l":"FormatService.FormatType"},{"p":"javax.measure.quantity","l":"Frequency"},{"p":"javax.measure.quantity","l":"Illuminance"},{"p":"javax.measure","l":"IncommensurableException"},{"p":"javax.measure.quantity","l":"Length"},{"p":"javax.measure.quantity","l":"LuminousFlux"},{"p":"javax.measure.quantity","l":"LuminousIntensity"},{"p":"javax.measure.quantity","l":"MagneticFlux"},{"p":"javax.measure.quantity","l":"MagneticFluxDensity"},{"p":"javax.measure.quantity","l":"Mass"},{"p":"javax.measure","l":"MeasurementError"},{"p":"javax.measure","l":"MeasurementException"},{"p":"javax.measure.format","l":"MeasurementParseException"},{"p":"javax.measure","l":"MetricPrefix"},{"p":"javax.measure.quantity","l":"Power"},{"p":"javax.measure","l":"Prefix"},{"p":"javax.measure.quantity","l":"Pressure"},{"p":"javax.measure","l":"Quantity"},{"p":"javax.measure.spi","l":"QuantityFactory"},{"p":"javax.measure.format","l":"QuantityFormat"},{"p":"javax.measure.quantity","l":"RadiationDoseAbsorbed"},{"p":"javax.measure.quantity","l":"RadiationDoseEffective"},{"p":"javax.measure.quantity","l":"Radioactivity"},{"p":"javax.measure","l":"Quantity.Scale"},{"p":"javax.measure.spi","l":"ServiceProvider"},{"p":"javax.measure.quantity","l":"SolidAngle"},{"p":"javax.measure.quantity","l":"Speed"},{"p":"javax.measure.spi","l":"SystemOfUnits"},{"p":"javax.measure.spi","l":"SystemOfUnitsService"},{"p":"javax.measure.quantity","l":"Temperature"},{"p":"javax.measure.quantity","l":"Time"},{"p":"javax.measure","l":"UnconvertibleException"},{"p":"javax.measure","l":"Unit"},{"p":"javax.measure","l":"UnitConverter"},{"p":"javax.measure.format","l":"UnitFormat"},{"p":"javax.measure.quantity","l":"Volume"}];updateSearchResults(); \ No newline at end of file diff --git a/docs/index.html b/docs/index.html deleted file mode 100644 index a122d889..00000000 --- a/docs/index.html +++ /dev/null @@ -1,165 +0,0 @@ - - - - - Units of Measurement - API - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    API

    -

    The Unit of Measurement API provides a set of Java language programming interfaces for handling units and quantities.
    The interfaces provide a layer which separates client code, that would call the API,
    from library code, which implements the API.

    -

    alt text

    -

    The specification contains Interfaces and abstract classes with methods for unit operations:
    * Checking of unit compatibility
    * Expression of a quantity in various units
    * Arithmetic operations on units

    - The JSR is lead by Jean-Marie Dautelle (@dautelle), - Werner Keil (@keilw) and Otavio Santana (@otaviojava). -
    You can access the API by adding the following Maven - dependencies:

    -
    <dependency>
    -  <groupId>javax.measure</groupId>
    -  <artifactId>unit-api</artifactId>
    -  <version>2.2</version>
    -</dependency>
    - - For JSR 363 use - <version>1.0</version>.
    - - -

    Further versions can be found here.

    -

    -Release artifacts are accessible from the following repositories: -

      -
    • Maven Central
    • -
    -

    - -

    Though it is possible to only reference the API from your application, you should also add an implementation like the Indriya reference implementation. -On the other hand you may leave the API out if you already declare Indriya, especially using the JPMS (Jigsaw) since the implementation also declares Unit-API as a "transitive" dependency.

    - - -
    -
    -
    - -
    - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/site/apidocs/allclasses-index.html b/docs/site/apidocs/allclasses-index.html deleted file mode 100644 index 0dbf07fb..00000000 --- a/docs/site/apidocs/allclasses-index.html +++ /dev/null @@ -1,294 +0,0 @@ - - - - -All Classes and Interfaces (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    All Classes and Interfaces

    -
    -
    -
    -
    -
    -
    Class
    -
    Description
    - -
    -
    Rate of change of velocity with respect to time.
    -
    - -
    -
    Number of elementary entities (molecules, for example) of a substance.
    -
    - -
    -
    Figure formed by two lines diverging from a common point.
    -
    - -
    -
    Extent of a planar region or of the surface of a solid measured in square units.
    -
    - -
    -
    Provides support for common binary prefixes to be used by units.
    -
    - -
    -
    Catalytic activity.
    -
    - -
    -
    Represents the dimension of a unit.
    -
    - -
    -
    Dimensionless quantity.
    -
    - -
    -
    Electric capacitance.
    -
    - -
    -
    Electric charge.
    -
    - -
    -
    Electric conductance.
    -
    - -
    -
    Amount of electric charge flowing past a specified circuit point per unit time.
    -
    - -
    -
    Electric inductance.
    -
    - -
    -
    Electric potential or electromotive force.
    -
    - -
    -
    Electric resistance.
    -
    - -
    -
    Capacity of a physical system to do work.
    -
    - -
    -
    Quantity that tends to produce an acceleration of a body in the direction of its application.
    -
    - -
    -
    This interface represents the service to obtain instances of UnitFormat and QuantityFormat.
    -
    - -
    -
    The type of format, either a UnitFormat or QuantityFormat
    -
    - -
    -
    Number of times a specified phenomenon occurs within a specified interval.
    -
    - -
    -
    Illuminance.
    -
    - -
    -
    Signals that a problem of some sort has occurred due to incommensurable of some quantities/units.
    -
    - -
    -
    Extent of something along its greatest dimension or the extent of space between two objects or places.
    -
    - -
    -
    Luminous flux.
    -
    - -
    -
    Luminous flux density per solid angle as measured in a given direction relative to the emitting source.
    -
    - -
    -
    Magnetic flux.
    -
    - -
    -
    Magnetic flux density.
    -
    - -
    -
    Measure of the quantity of matter that a body or an object contains.
    -
    - -
    -
    This error is used to indicate serious problems with creating, retrieving and manipulating units of measurement objects.
    -
    - -
    -
    Exception used to indicate a problem while dealing with units of measurement.
    -
    - -
    -
    Signals that an error has been reached unexpectedly while parsing.
    -
    - -
    -
    Provides support for the 24 prefixes used in the metric system (decimal multiples and submultiples of units).
    -
    - -
    -
    Rate at which work is done.
    -
    - -
    -
    A unit prefix is a specifier or mnemonic that is prepended to units of measurement to indicate multiples or fractions of the units.
    -
    - -
    -
    Force applied uniformly over a surface.
    -
    -
    Quantity<Q extends Quantity<Q>>
    -
    -
    Represents a quantitative property of a phenomenon, body, or substance, that - can be quantified by measurement.
    -
    - -
    -
    The scale of a Quantity, either ABSOLUTE or RELATIVE.
    -
    - -
    -
    Represents a factory that accepts Number and Unit arguments to create Quantity results.
    -
    - -
    -
    Formats instances of Quantity.
    -
    - -
    -
    Amount of energy deposited per unit of mass.
    -
    - -
    -
    Effective (or "equivalent") dose of radiation received by a human or some other living organism.
    -
    - -
    -
    Radioactive activity.
    -
    - -
    -
    Service Provider for Units of Measurement services.
    -
    - -
    -
    Angle formed by three or more planes intersecting at a common point.
    -
    - -
    -
    Distance traveled divided by the time of travel.
    -
    - -
    -
    A system of units grouped together for historical or cultural reasons.
    - Common system of units are "SI" (System International), "Imperial" (British), "US" (US Customary).
    -
    - -
    -
    This interface represents the service to obtain a system - of units.
    -
    - -
    -
    Degree of hotness or coldness of a body or an environment.
    -
    - -
    -
    Period of existence or persistence.
    -
    - -
    -
    Signals that a problem of some sort has occurred due to the impossibility of constructing a converter between two units.
    -
    -
    Unit<Q extends Quantity<Q>>
    -
    -
    Represents a determinate quantity (as of length, time, heat, or value) adopted as a standard of measurement.
    -
    - -
    -
    A converter of numeric values between different units.
    -
    - -
    -
    Formats instances of Unit to a String or Appendable and parses a CharSequence to a Unit.
    -
    - -
    -
    Amount of space occupied by a three-dimensional object or region of space.
    -
    -
    -
    -
    -
    - -
    -
    - - diff --git a/docs/site/apidocs/allpackages-index.html b/docs/site/apidocs/allpackages-index.html deleted file mode 100644 index 2e86851c..00000000 --- a/docs/site/apidocs/allpackages-index.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - -All Packages (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    All Packages

    -
    -
    Package Summary
    -
    -
    Package
    -
    Description
    - -
    -
    Specifies Java packages for the programmatic, type safe handling - of quantities and their expression as values of units.
    -
    - -
    -
    [OPTIONAL] Provides Formatting and Parsing functionality for units, quantities, dimensions or their textual representation.
    -
    - -
    -
    [OPTIONAL] Provides quantitative properties or attributes of thing such as - mass, time, distance, heat, and angular separation.
    -
    - -
    -
    [OPTIONAL] The Units of Measurement SPI.
    -
    -
    -
    - -
    -
    - - diff --git a/docs/site/apidocs/constant-values.html b/docs/site/apidocs/constant-values.html deleted file mode 100644 index 3e97b172..00000000 --- a/docs/site/apidocs/constant-values.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - -Constant Field Values (Units of Measurement API 2.1.3-SNAPSHOT API) - - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Constant Field Values

    -
    -

    Contents

    -
    -
    -
    - -
    -
    - - diff --git a/docs/site/apidocs/deprecated-list.html b/docs/site/apidocs/deprecated-list.html deleted file mode 100644 index 8744a140..00000000 --- a/docs/site/apidocs/deprecated-list.html +++ /dev/null @@ -1,100 +0,0 @@ - - - - - -Deprecated List (Units of Measurement API 2.1.3-SNAPSHOT API) - - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Deprecated API

    -

    Contents

    -
    -
    - -
    -
    - - diff --git a/docs/site/apidocs/help-doc.html b/docs/site/apidocs/help-doc.html deleted file mode 100644 index 30537aea..00000000 --- a/docs/site/apidocs/help-doc.html +++ /dev/null @@ -1,191 +0,0 @@ - - - - -API Help (Units of Measurement API 2.2.1-SNAPSHOT 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
    • -
    • Enums
    • -
    • Exceptions
    • -
    • Errors
    • -
    • Annotation Types
    • -
    -
    -
    -

    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.

    -
    -
    -

    Use

    -

    Each documented package, class and interface has its own Use page. This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its Use page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A. You can access this page by first going to the package, class or interface, then clicking on the USE link in the navigation bar.

    -
    -
    -

    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.
    • -
    -
    -
    -

    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/docs/site/apidocs/index-all.html b/docs/site/apidocs/index-all.html deleted file mode 100644 index cdf02d13..00000000 --- a/docs/site/apidocs/index-all.html +++ /dev/null @@ -1,1187 +0,0 @@ - - - - -Index (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Index

    -
    -A B C D E F G H I J K L M N O P Q R S T U V Y Z 
    All Classes and Interfaces|All Packages|Serialized Form -

    A

    -
    -
    ABSOLUTE - Enum constant in enum Quantity.Scale
    -
    -
    Absolute scale
    -
    -
    Acceleration - Interface in javax.measure.quantity
    -
    -
    Rate of change of velocity with respect to time.
    -
    -
    add(Quantity<Q>) - Method in interface Quantity
    -
    -
    Returns the sum of this Quantity with the one specified.
    -
    -
    alternate(String) - Method in interface Unit
    -
    -
    Returns a system unit equivalent to this unscaled standard unit but used in expressions to distinguish between quantities of a different nature - but of the same dimensions.
    -
    -
    AmountOfSubstance - Interface in javax.measure.quantity
    -
    -
    Number of elementary entities (molecules, for example) of a substance.
    -
    -
    Angle - Interface in javax.measure.quantity
    -
    -
    Figure formed by two lines diverging from a common point.
    -
    -
    Area - Interface in javax.measure.quantity
    -
    -
    Extent of a planar region or of the surface of a solid measured in square units.
    -
    -
    asType(Class<T>) - Method in interface Quantity
    -
    -
    Casts this quantity to a parameterized unit of specified nature or throw a - ClassCastException if the dimension of the specified quantity - and this measure unit's dimension do not match.
    -
    -
    asType(Class<T>) - Method in interface Unit
    -
    -
    Casts this unit to a parameterized unit of specified nature or throw a ClassCastException if the dimension of the specified quantity and - this unit's dimension do not match.
    -
    -
    ATTO - Enum constant in enum MetricPrefix
    -
    -
    Prefix for 10-18.
    -
    -
    ATTO(Unit<Q>) - Static method in enum MetricPrefix
    -
    -
    Returns the specified unit multiplied by the factor 10-18
    -
    -
    available() - Static method in class ServiceProvider
    -
    -
    Returns the list of all service providers available for the current thread's context class loader.
    -
    -
    -

    B

    -
    -
    BinaryPrefix - Enum in javax.measure
    -
    -
    Provides support for common binary prefixes to be used by units.
    -
    -
    -

    C

    -
    -
    CatalyticActivity - Interface in javax.measure.quantity
    -
    -
    Catalytic activity.
    -
    -
    CENTI - Enum constant in enum MetricPrefix
    -
    -
    Prefix for 10-2.
    -
    -
    CENTI(Unit<Q>) - Static method in enum MetricPrefix
    -
    -
    Returns the specified unit multiplied by the factor 10-2
    -
    -
    concatenate(UnitConverter) - Method in interface UnitConverter
    -
    -
    Concatenates this converter with another converter.
    -
    -
    convert(double) - Method in interface UnitConverter
    -
    -
    Converts a double value.
    -
    -
    convert(Number) - Method in interface UnitConverter
    -
    -
    Converts a Number value.
    -
    -
    create(Number, Unit<Q>) - Method in interface QuantityFactory
    -
    -
    Returns the quantity for the specified number stated in the specified unit.
    -
    -
    create(Number, Unit<Q>, Quantity.Scale) - Method in interface QuantityFactory
    -
    -
    Returns the quantity for the specified number stated in the specified unit and scale.
    -
    -
    current() - Static method in class ServiceProvider
    -
    -
    Returns the current ServiceProvider.
    -
    -
    -

    D

    -
    -
    DECA - Enum constant in enum MetricPrefix
    -
    -
    Prefix for 101.
    -
    -
    DECA(Unit<Q>) - Static method in enum MetricPrefix
    -
    -
    Returns the specified unit multiplied by the factor 101
    -
    -
    DECI - Enum constant in enum MetricPrefix
    -
    -
    Prefix for 10-1.
    -
    -
    DECI(Unit<Q>) - Static method in enum MetricPrefix
    -
    -
    Returns the specified unit multiplied by the factor 10-1
    -
    -
    DEKA(Unit<Q>) - Static method in enum MetricPrefix
    -
    -
    US alias for DECA.
    -
    -
    Dimension - Interface in javax.measure
    -
    -
    Represents the dimension of a unit.
    -
    -
    Dimensionless - Interface in javax.measure.quantity
    -
    -
    Dimensionless quantity.
    -
    -
    divide(double) - Method in interface Unit
    -
    -
    Returns the result of dividing this unit by an approximate divisor.
    -
    -
    divide(Number) - Method in interface Quantity
    -
    -
    Returns the quotient of this Quantity divided by the Number - specified.
    -
    -
    divide(Number) - Method in interface Unit
    -
    -
    Returns the result of dividing this unit by a divisor.
    -
    -
    divide(Dimension) - Method in interface Dimension
    -
    -
    Returns the quotient of this dimension with the one specified.
    -
    -
    divide(Quantity<?>) - Method in interface Quantity
    -
    -
    Returns the quotient of this Quantity divided by the Quantity - specified.
    -
    -
    divide(Unit<?>) - Method in interface Unit
    -
    -
    Returns the quotient of this unit with the one specified.
    -
    -
    -

    E

    -
    -
    ElectricCapacitance - Interface in javax.measure.quantity
    -
    -
    Electric capacitance.
    -
    -
    ElectricCharge - Interface in javax.measure.quantity
    -
    -
    Electric charge.
    -
    -
    ElectricConductance - Interface in javax.measure.quantity
    -
    -
    Electric conductance.
    -
    -
    ElectricCurrent - Interface in javax.measure.quantity
    -
    -
    Amount of electric charge flowing past a specified circuit point per unit time.
    -
    -
    ElectricInductance - Interface in javax.measure.quantity
    -
    -
    Electric inductance.
    -
    -
    ElectricPotential - Interface in javax.measure.quantity
    -
    -
    Electric potential or electromotive force.
    -
    -
    ElectricResistance - Interface in javax.measure.quantity
    -
    -
    Electric resistance.
    -
    -
    Energy - Interface in javax.measure.quantity
    -
    -
    Capacity of a physical system to do work.
    -
    -
    EXA - Enum constant in enum MetricPrefix
    -
    -
    Prefix for 1018.
    -
    -
    EXA(Unit<Q>) - Static method in enum MetricPrefix
    -
    -
    Returns the specified unit multiplied by the factor 1018
    -
    -
    EXBI - Enum constant in enum BinaryPrefix
    -
    -
    Prefix for 10246.
    -
    -
    EXBI(Unit<Q>) - Static method in enum BinaryPrefix
    -
    -
    Returns the specified unit multiplied by the factor 10246 (binary prefix).
    -
    -
    -

    F

    -
    -
    FEMTO - Enum constant in enum MetricPrefix
    -
    -
    Prefix for 10-15.
    -
    -
    FEMTO(Unit<Q>) - Static method in enum MetricPrefix
    -
    -
    Returns the specified unit multiplied by the factor 10-15
    -
    -
    Force - Interface in javax.measure.quantity
    -
    -
    Quantity that tends to produce an acceleration of a body in the direction of its application.
    -
    -
    format(Quantity<?>) - Method in interface QuantityFormat
    -
    -
    Formats the specified Quantity.
    -
    -
    format(Quantity<?>, Appendable) - Method in interface QuantityFormat
    -
    -
    Formats the specified quantity into an Appendable.
    -
    -
    format(Unit<?>) - Method in interface UnitFormat
    -
    -
    Formats the specified Unit.
    -
    -
    format(Unit<?>, Appendable) - Method in interface UnitFormat
    -
    -
    Formats the specified Unit.
    -
    -
    FormatService - Interface in javax.measure.spi
    -
    -
    This interface represents the service to obtain instances of UnitFormat and QuantityFormat.
    -
    -
    FormatService.FormatType - Enum in javax.measure.spi
    -
    -
    The type of format, either a UnitFormat or QuantityFormat
    -
    -
    Frequency - Interface in javax.measure.quantity
    -
    -
    Number of times a specified phenomenon occurs within a specified interval.
    -
    -
    -

    G

    -
    -
    getAvailableFormatNames(FormatService.FormatType) - Method in interface FormatService
    -
    -
    Gets a list with available format names of a given type for this format service.
    -
    -
    getAvailableSystemsOfUnits() - Method in interface SystemOfUnitsService
    -
    -
    Gets a list with available systems for this SystemOfUnitsService.
    -
    -
    getBaseDimensions() - Method in interface Dimension
    -
    -
    Returns the (fundamental) base dimensions and their exponent whose product is this dimension, or null if this dimension is a base - dimension.
    -
    -
    getBaseUnits() - Method in interface Unit
    -
    -
    Returns the base units and their exponent whose product is this unit, or null if this unit is a base unit (not a product of existing - units).
    -
    -
    getConversionSteps() - Method in interface UnitConverter
    -
    -
    - Returns the steps of fundamental converters making up this converter or this if the converter is a fundamental converter.
    -
    -
    getConverterTo(Unit<Q>) - Method in interface Unit
    -
    -
    Returns a converter of numeric values from this unit to another unit of same type.
    -
    -
    getConverterToAny(Unit<?>) - Method in interface Unit
    -
    -
    Returns a converter from this unit to the specified unit of type unknown.
    -
    -
    getDimension() - Method in interface Unit
    -
    -
    Returns the dimension of this unit.
    -
    -
    getExponent() - Method in enum BinaryPrefix
    -
    -
    Exponent part of the associated factor in base^exponent representation.
    -
    -
    getExponent() - Method in enum MetricPrefix
    -
    -
    Exponent part of the associated factor in base^exponent representation.
    -
    -
    getExponent() - Method in interface Prefix
    -
    -
    Exponent part of the associated factor in base^exponent representation.
    -
    -
    getFormatService() - Method in class ServiceProvider
    -
    -
    Returns the service to obtain UnitFormat and QuantityFormat or null if none.
    -
    -
    getName() - Method in enum BinaryPrefix
    -
    -
    Returns the name of this prefix.
    -
    -
    getName() - Method in enum MetricPrefix
    -
    -
    Returns the name of this prefix.
    -
    -
    getName() - Method in interface Prefix
    -
    -
    Returns the name of this prefix.
    -
    -
    getName() - Method in interface SystemOfUnits
    -
     
    -
    getName() - Method in interface Unit
    -
    -
    Returns the name (if any) of this unit.
    -
    -
    getParsedString() - Method in exception MeasurementParseException
    -
    -
    Returns the string that was being parsed.
    -
    -
    getPosition() - Method in exception MeasurementParseException
    -
    -
    Returns the position where the error was found.
    -
    -
    getPrefixes(Class<P>) - Method in interface SystemOfUnitsService
    -
    -
    Returns a Set containing the values of a particular Prefix - type.
    -
    -
    getPriority() - Method in class ServiceProvider
    -
    -
    Allows to define a priority for a registered ServiceProvider instance.
    -
    -
    getQuantityFactory(Class<Q>) - Method in class ServiceProvider
    -
    -
    Returns a factory for the given Quantity type.
    -
    -
    getQuantityFormat() - Method in interface FormatService
    -
    -
    Returns the default quantity format.
    -
    -
    getQuantityFormat(String) - Method in interface FormatService
    -
    -
    Returns the quantity format having the specified name or null if none.
    -
    -
    getScale() - Method in interface Quantity
    -
    -
    Returns the Scale of this Quantity, if it's absolute or relative.
    -
    -
    getSymbol() - Method in enum BinaryPrefix
    -
    -
    Returns the symbol of this prefix.
    -
    -
    getSymbol() - Method in enum MetricPrefix
    -
    -
    Returns the symbol of this prefix.
    -
    -
    getSymbol() - Method in interface Prefix
    -
    -
    Returns the symbol of this prefix.
    -
    -
    getSymbol() - Method in interface Unit
    -
    -
    Returns the symbol (if any) of this unit.
    -
    -
    getSystemOfUnits() - Method in interface SystemOfUnitsService
    -
    -
    Returns the default system of units.
    -
    -
    getSystemOfUnits(String) - Method in interface SystemOfUnitsService
    -
    -
    Returns the system of units having the specified name or null if - none is found.
    -
    -
    getSystemOfUnitsService() - Method in class ServiceProvider
    -
    -
    Returns the service to obtain a SystemOfUnits, or null if none.
    -
    -
    getSystemUnit() - Method in interface QuantityFactory
    -
    -
    Returns the system unit for quantities produced by this factory or null if unknown.
    -
    -
    getSystemUnit() - Method in interface Unit
    -
    -
    Returns the unscaled system unit from which this unit is derived.
    -
    -
    getUnit() - Method in interface Quantity
    -
    -
    Returns the unit of this Quantity.
    -
    -
    getUnit(Class<Q>) - Method in interface SystemOfUnits
    -
    -
    Returns the default unit for the specified quantity or null if none is defined for the given quantity in this unit system.
    -
    -
    getUnit(String) - Method in interface SystemOfUnits
    -
    -
    Returns a unit with the given string representation or null if none is found in this unit system.
    -
    -
    getUnitFormat() - Method in interface FormatService
    -
    -
    Returns the default unit format.
    -
    -
    getUnitFormat(String) - Method in interface FormatService
    -
    -
    Returns the unit format having the specified name or null if none.
    -
    -
    getUnitFormat(String, String) - Method in interface FormatService
    -
    -
    Returns the unit format having the specified name or null if none.
    -
    -
    getUnits() - Method in interface SystemOfUnits
    -
    -
    Returns a read only view over the units explicitly defined by this system.
    -
    -
    getUnits(Dimension) - Method in interface SystemOfUnits
    -
    -
    Returns the units defined in this system having the specified dimension (convenience method).
    -
    -
    getValue() - Method in enum BinaryPrefix
    -
    -
    Base part of the associated factor in base^exponent representation.
    -
    -
    getValue() - Method in enum MetricPrefix
    -
    -
    Base part of the associated factor in base^exponent representation.
    -
    -
    getValue() - Method in interface Prefix
    -
    -
    Returns the value of this prefix.
    -
    -
    getValue() - Method in interface Quantity
    -
    -
    Returns the value of this Quantity.
    -
    -
    GIBI - Enum constant in enum BinaryPrefix
    -
    -
    Prefix for 10243.
    -
    -
    GIBI(Unit<Q>) - Static method in enum BinaryPrefix
    -
    -
    Returns the specified unit multiplied by the factor 10243 (binary prefix).
    -
    -
    GIGA - Enum constant in enum MetricPrefix
    -
    -
    Prefix for 109.
    -
    -
    GIGA(Unit<Q>) - Static method in enum MetricPrefix
    -
    -
    Returns the specified unit multiplied by the factor 109
    -
    -
    -

    H

    -
    -
    HECTO - Enum constant in enum MetricPrefix
    -
    -
    Prefix for 102.
    -
    -
    HECTO(Unit<Q>) - Static method in enum MetricPrefix
    -
    -
    Returns the specified unit multiplied by the factor 102
    -
    -
    -

    I

    -
    -
    Illuminance - Interface in javax.measure.quantity
    -
    -
    Illuminance.
    -
    -
    IncommensurableException - Exception in javax.measure
    -
    -
    Signals that a problem of some sort has occurred due to incommensurable of some quantities/units.
    -
    -
    IncommensurableException(String) - Constructor for exception IncommensurableException
    -
    -
    Constructs a IncommensurableException with the given message.
    -
    -
    IncommensurableException(String, Throwable) - Constructor for exception IncommensurableException
    -
    -
    Constructs a IncommensurableException with the given message and cause.
    -
    -
    IncommensurableException(Throwable) - Constructor for exception IncommensurableException
    -
    -
    Constructs a IncommensurableException with the given cause.
    -
    -
    inverse() - Method in interface Quantity
    -
    -
    Returns a Quantity that is the multiplicative inverse of this - Quantity, having reciprocal value and reciprocal unit as given by - this.getUnit().inverse().
    -
    -
    inverse() - Method in interface Unit
    -
    -
    Returns the reciprocal (multiplicative inverse) of this unit.
    -
    -
    inverse() - Method in interface UnitConverter
    -
    -
    Returns the inverse of this converter.
    -
    -
    isCompatible(Unit<?>) - Method in interface Unit
    -
    -
    Indicates if this unit is compatible with the unit specified.
    -
    -
    isEquivalentTo(Quantity<Q>) - Method in interface Quantity
    -
    -
    Compares two instances of Quantity <Q>, performing the conversion of units if necessary.
    -
    -
    isEquivalentTo(Unit<Q>) - Method in interface Unit
    -
    -
    Indicates if this unit represents the same quantity than the given unit, ignoring name and symbols.
    -
    -
    isIdentity() - Method in interface UnitConverter
    -
    -
    Indicates if this converter is an identity converter.
    -
    -
    isLinear() - Method in interface UnitConverter
    -
    -
    Indicates whether this converter represents a (one-dimensional) linear transformation, that is - a linear map (wikipedia) from a one-dimensional - vector space (a scalar) to a one-dimensional vector space.
    -
    -
    isLocaleSensitive() - Method in interface QuantityFormat
    -
    -
    Returns true if this QuantityFormat depends on a Locale to perform its tasks.
    -
    -
    isLocaleSensitive() - Method in interface UnitFormat
    -
    -
    Returns true if this UnitFormat depends on a Locale to perform its tasks.
    -
    -
    -

    J

    -
    -
    javax.measure - package javax.measure
    -
    -
    Specifies Java packages for the programmatic, type safe handling - of quantities and their expression as values of units.
    -
    -
    javax.measure.format - package javax.measure.format
    -
    -
    [OPTIONAL] Provides Formatting and Parsing functionality for units, quantities, dimensions or their textual representation.
    -
    -
    javax.measure.quantity - package javax.measure.quantity
    -
    -
    [OPTIONAL] Provides quantitative properties or attributes of thing such as - mass, time, distance, heat, and angular separation.
    -
    -
    javax.measure.spi - package javax.measure.spi
    -
    -
    [OPTIONAL] The Units of Measurement SPI.
    -
    -
    -

    K

    -
    -
    KIBI - Enum constant in enum BinaryPrefix
    -
    -
    Prefix for 1024.
    -
    -
    KIBI(Unit<Q>) - Static method in enum BinaryPrefix
    -
    -
    Returns the specified unit multiplied by the factor 1024 (binary prefix).
    -
    -
    KILO - Enum constant in enum MetricPrefix
    -
    -
    Prefix for 103.
    -
    -
    KILO(Unit<Q>) - Static method in enum MetricPrefix
    -
    -
    Returns the specified unit multiplied by the factor 103
    -
    -
    -

    L

    -
    -
    label(Unit<?>, String) - Method in interface UnitFormat
    -
    -
    Attaches a system-wide label to the specified Unit.
    -
    -
    Length - Interface in javax.measure.quantity
    -
    -
    Extent of something along its greatest dimension or the extent of space between two objects or places.
    -
    -
    LuminousFlux - Interface in javax.measure.quantity
    -
    -
    Luminous flux.
    -
    -
    LuminousIntensity - Interface in javax.measure.quantity
    -
    -
    Luminous flux density per solid angle as measured in a given direction relative to the emitting source.
    -
    -
    -

    M

    -
    -
    MagneticFlux - Interface in javax.measure.quantity
    -
    -
    Magnetic flux.
    -
    -
    MagneticFluxDensity - Interface in javax.measure.quantity
    -
    -
    Magnetic flux density.
    -
    -
    Mass - Interface in javax.measure.quantity
    -
    -
    Measure of the quantity of matter that a body or an object contains.
    -
    -
    MeasurementError - Error in javax.measure
    -
    -
    This error is used to indicate serious problems with creating, retrieving and manipulating units of measurement objects.
    -
    -
    MeasurementError() - Constructor for error MeasurementError
    -
    -
    Constructs a MeasurementError with no detail message.
    -
    -
    MeasurementError(String) - Constructor for error MeasurementError
    -
    -
    Constructs a MeasurementError with the specified detail message.
    -
    -
    MeasurementError(String, Throwable) - Constructor for error MeasurementError
    -
    -
    Constructs a MeasurementError with the specified detail message and cause.
    -
    -
    MeasurementError(Throwable) - Constructor for error MeasurementError
    -
    -
    Constructs a MeasurementError with the given cause.
    -
    -
    MeasurementException - Exception in javax.measure
    -
    -
    Exception used to indicate a problem while dealing with units of measurement.
    -
    -
    MeasurementException() - Constructor for exception MeasurementException
    -
    -
    Constructs a MeasurementException with no given message.
    -
    -
    MeasurementException(String) - Constructor for exception MeasurementException
    -
    -
    Constructs a MeasurementException with the given message.
    -
    -
    MeasurementException(String, Throwable) - Constructor for exception MeasurementException
    -
    -
    Constructs a MeasurementException with the given message and cause.
    -
    -
    MeasurementException(Throwable) - Constructor for exception MeasurementException
    -
    -
    Constructs a MeasurementException with the given cause.
    -
    -
    MeasurementParseException - Exception in javax.measure.format
    -
    -
    Signals that an error has been reached unexpectedly while parsing.
    -
    -
    MeasurementParseException(CharSequence, int) - Constructor for exception MeasurementParseException
    -
    -
    Constructs a MeasurementParseException with the parsed text and offset.
    -
    -
    MeasurementParseException(String) - Constructor for exception MeasurementParseException
    -
    -
    Constructs a MeasurementParseException with the specified detail message.
    -
    -
    MeasurementParseException(String, CharSequence, int) - Constructor for exception MeasurementParseException
    -
    -
    Constructs a MeasurementParseException with the specified detail message, parsed text and index.
    -
    -
    MeasurementParseException(Throwable) - Constructor for exception MeasurementParseException
    -
    -
    Constructs a MeasurementParseException with the specified cause.
    -
    -
    MEBI - Enum constant in enum BinaryPrefix
    -
    -
    Prefix for 10242.
    -
    -
    MEBI(Unit<Q>) - Static method in enum BinaryPrefix
    -
    -
    Returns the specified unit multiplied by the factor 10242 (binary prefix).
    -
    -
    MEGA - Enum constant in enum MetricPrefix
    -
    -
    Prefix for 106.
    -
    -
    MEGA(Unit<Q>) - Static method in enum MetricPrefix
    -
    -
    Returns the specified unit multiplied by the factor 106
    -
    -
    MetricPrefix - Enum in javax.measure
    -
    -
    Provides support for the 24 prefixes used in the metric system (decimal multiples and submultiples of units).
    -
    -
    MICRO - Enum constant in enum MetricPrefix
    -
    -
    Prefix for 10-6.
    -
    -
    MICRO(Unit<Q>) - Static method in enum MetricPrefix
    -
    -
    Returns the specified unit multiplied by the factor 10-6
    -
    -
    MILLI - Enum constant in enum MetricPrefix
    -
    -
    Prefix for 10-3.
    -
    -
    MILLI(Unit<Q>) - Static method in enum MetricPrefix
    -
    -
    Returns the specified unit multiplied by the factor 10-3
    -
    -
    multiply(double) - Method in interface Unit
    -
    -
    Returns the result of multiplying this unit by the specified factor.
    -
    -
    multiply(Number) - Method in interface Quantity
    -
    -
    Returns the product of this Quantity with the Number value - specified.
    -
    -
    multiply(Number) - Method in interface Unit
    -
    -
    Returns the result of multiplying this unit by the specified factor.
    -
    -
    multiply(Dimension) - Method in interface Dimension
    -
    -
    Returns the product of this dimension with the one specified.
    -
    -
    multiply(Quantity<?>) - Method in interface Quantity
    -
    -
    Returns the product of this Quantity with the one specified.
    -
    -
    multiply(Unit<?>) - Method in interface Unit
    -
    -
    Returns the product of this unit with the one specified.
    -
    -
    -

    N

    -
    -
    NANO - Enum constant in enum MetricPrefix
    -
    -
    Prefix for 10-9.
    -
    -
    NANO(Unit<Q>) - Static method in enum MetricPrefix
    -
    -
    Returns the specified unit multiplied by the factor 10-9
    -
    -
    negate() - Method in interface Quantity
    -
    -
    Returns a Quantity whose value is (-this.getValue()).
    -
    -
    -

    O

    -
    -
    of(String) - Static method in class ServiceProvider
    -
    -
    Returns the ServiceProvider with the specified name.
    -
    -
    -

    P

    -
    -
    parse(CharSequence) - Method in interface QuantityFormat
    -
    -
    Parses the specified CharSequence to produce a Quantity.
    -
    -
    parse(CharSequence) - Method in interface UnitFormat
    -
    -
    Parses the text into an instance of Unit.
    -
    -
    parse(CharSequence, ParsePosition) - Method in interface QuantityFormat
    -
    -
    Parses a portion of the specified CharSequence from the specified position to produce a Quantity.
    -
    -
    parse(CharSequence, ParsePosition) - Method in interface UnitFormat
    -
    -
    Parses a portion of the specified CharSequence from the specified position to produce a Unit.
    -
    -
    PEBI - Enum constant in enum BinaryPrefix
    -
    -
    Prefix for 10245.
    -
    -
    PEBI(Unit<Q>) - Static method in enum BinaryPrefix
    -
    -
    Returns the specified unit multiplied by the factor 10245 (binary prefix).
    -
    -
    PETA - Enum constant in enum MetricPrefix
    -
    -
    Prefix for 1015.
    -
    -
    PETA(Unit<Q>) - Static method in enum MetricPrefix
    -
    -
    Returns the specified unit multiplied by the factor 1015
    -
    -
    PICO - Enum constant in enum MetricPrefix
    -
    -
    Prefix for 10-12.
    -
    -
    PICO(Unit<Q>) - Static method in enum MetricPrefix
    -
    -
    Returns the specified unit multiplied by the factor 10-12
    -
    -
    pow(int) - Method in interface Dimension
    -
    -
    Returns this dimension raised to an exponent.
    -
    -
    pow(int) - Method in interface Unit
    -
    -
    Returns an unit raised to the n-th (integer) power of this unit.
    -
    -
    Power - Interface in javax.measure.quantity
    -
    -
    Rate at which work is done.
    -
    -
    prefix(Prefix) - Method in interface Unit
    -
    -
    Returns a new unit equal to this unit prefixed by the specified prefix.
    -
    -
    Prefix - Interface in javax.measure
    -
    -
    A unit prefix is a specifier or mnemonic that is prepended to units of measurement to indicate multiples or fractions of the units.
    -
    -
    Pressure - Interface in javax.measure.quantity
    -
    -
    Force applied uniformly over a surface.
    -
    -
    -

    Q

    -
    -
    Quantity<Q extends Quantity<Q>> - Interface in javax.measure
    -
    -
    Represents a quantitative property of a phenomenon, body, or substance, that - can be quantified by measurement.
    -
    -
    QUANTITY_FORMAT - Enum constant in enum FormatService.FormatType
    -
    -
    Format of type QuantityFormat
    -
    -
    Quantity.Scale - Enum in javax.measure
    -
    -
    The scale of a Quantity, either ABSOLUTE or RELATIVE.
    -
    -
    QuantityFactory<Q extends Quantity<Q>> - Interface in javax.measure.spi
    -
    -
    Represents a factory that accepts Number and Unit arguments to create Quantity results.
    -
    -
    QuantityFormat - Interface in javax.measure.format
    -
    -
    Formats instances of Quantity.
    -
    -
    QUECTO - Enum constant in enum MetricPrefix
    -
    -
    Prefix for 10-30.
    -
    -
    QUECTO(Unit<Q>) - Static method in enum MetricPrefix
    -
    -
    Returns the specified unit multiplied by the factor 10-30
    -
    -
    QUETTA - Enum constant in enum MetricPrefix
    -
    -
    Prefix for 1030.
    -
    -
    QUETTA(Unit<Q>) - Static method in enum MetricPrefix
    -
    -
    Returns the specified unit multiplied by the factor 1030
    -
    -
    -

    R

    -
    -
    RadiationDoseAbsorbed - Interface in javax.measure.quantity
    -
    -
    Amount of energy deposited per unit of mass.
    -
    -
    RadiationDoseEffective - Interface in javax.measure.quantity
    -
    -
    Effective (or "equivalent") dose of radiation received by a human or some other living organism.
    -
    -
    Radioactivity - Interface in javax.measure.quantity
    -
    -
    Radioactive activity.
    -
    -
    RELATIVE - Enum constant in enum Quantity.Scale
    -
    -
    Relative scale
    -
    -
    RONNA - Enum constant in enum MetricPrefix
    -
    -
    Prefix for 1027.
    -
    -
    RONNA(Unit<Q>) - Static method in enum MetricPrefix
    -
    -
    Returns the specified unit multiplied by the factor 1027
    -
    -
    RONTO - Enum constant in enum MetricPrefix
    -
    -
    Prefix for 10-27.
    -
    -
    RONTO(Unit<Q>) - Static method in enum MetricPrefix
    -
    -
    Returns the specified unit multiplied by the factor 10-27
    -
    -
    root(int) - Method in interface Dimension
    -
    -
    Returns the given root of this dimension.
    -
    -
    root(int) - Method in interface Unit
    -
    -
    Returns an unit that is the n-th (integer) root of this unit.
    -
    -
    -

    S

    -
    -
    ServiceProvider - Class in javax.measure.spi
    -
    -
    Service Provider for Units of Measurement services.
    -
    -
    ServiceProvider() - Constructor for class ServiceProvider
    -
    -
    Creates a new service provider.
    -
    -
    setCurrent(ServiceProvider) - Static method in class ServiceProvider
    -
    -
    Replaces the current ServiceProvider.
    -
    -
    shift(double) - Method in interface Unit
    -
    -
    Returns the result of setting the origin of the scale of measurement to the given value.
    -
    -
    shift(Number) - Method in interface Unit
    -
    -
    Returns the result of setting the origin of the scale of measurement to the given value.
    -
    -
    SolidAngle - Interface in javax.measure.quantity
    -
    -
    Angle formed by three or more planes intersecting at a common point.
    -
    -
    Speed - Interface in javax.measure.quantity
    -
    -
    Distance traveled divided by the time of travel.
    -
    -
    subtract(Quantity<Q>) - Method in interface Quantity
    -
    -
    Returns the difference between this Quantity and the one specified.
    -
    -
    SystemOfUnits - Interface in javax.measure.spi
    -
    -
    A system of units grouped together for historical or cultural reasons.
    - Common system of units are "SI" (System International), "Imperial" (British), "US" (US Customary).
    -
    -
    SystemOfUnitsService - Interface in javax.measure.spi
    -
    -
    This interface represents the service to obtain a system - of units.
    -
    -
    -

    T

    -
    -
    TEBI - Enum constant in enum BinaryPrefix
    -
    -
    Prefix for 10244.
    -
    -
    TEBI(Unit<Q>) - Static method in enum BinaryPrefix
    -
    -
    Returns the specified unit multiplied by the factor 10244 (binary prefix).
    -
    -
    Temperature - Interface in javax.measure.quantity
    -
    -
    Degree of hotness or coldness of a body or an environment.
    -
    -
    TERA - Enum constant in enum MetricPrefix
    -
    -
    Prefix for 1012.
    -
    -
    TERA(Unit<Q>) - Static method in enum MetricPrefix
    -
    -
    Returns the specified unit multiplied by the factor 1012
    -
    -
    Time - Interface in javax.measure.quantity
    -
    -
    Period of existence or persistence.
    -
    -
    to(Unit<Q>) - Method in interface Quantity
    -
    -
    Returns this Quantity converted into another (compatible) - Unit.
    -
    -
    toString() - Method in interface Unit
    -
    -
    Returns a string representation of this unit.
    -
    -
    toSystemUnit() - Method in interface Quantity
    -
    -
    Convenient method equivalent to to(getUnit().toSystemUnit()).
    -
    -
    transform(UnitConverter) - Method in interface Unit
    -
    -
    Returns the unit derived from this unit using the specified converter.
    -
    -
    -

    U

    -
    -
    UnconvertibleException - Exception in javax.measure
    -
    -
    Signals that a problem of some sort has occurred due to the impossibility of constructing a converter between two units.
    -
    -
    UnconvertibleException(String) - Constructor for exception UnconvertibleException
    -
    -
    Constructs a UnconvertibleException with the given message.
    -
    -
    UnconvertibleException(String, Throwable) - Constructor for exception UnconvertibleException
    -
    -
    Constructs a UnconvertibleException with the given message and cause.
    -
    -
    UnconvertibleException(Throwable) - Constructor for exception UnconvertibleException
    -
    -
    Constructs a UnconvertibleException with the given cause.
    -
    -
    Unit<Q extends Quantity<Q>> - Interface in javax.measure
    -
    -
    Represents a determinate quantity (as of length, time, heat, or value) adopted as a standard of measurement.
    -
    -
    UNIT_FORMAT - Enum constant in enum FormatService.FormatType
    -
    -
    Format of type UnitFormat
    -
    -
    UnitConverter - Interface in javax.measure
    -
    -
    A converter of numeric values between different units.
    -
    -
    UnitFormat - Interface in javax.measure.format
    -
    -
    Formats instances of Unit to a String or Appendable and parses a CharSequence to a Unit.
    -
    -
    -

    V

    -
    -
    valueOf(String) - Static method in enum BinaryPrefix
    -
    -
    Returns the enum constant of this type with the specified name.
    -
    -
    valueOf(String) - Static method in enum MetricPrefix
    -
    -
    Returns the enum constant of this type with the specified name.
    -
    -
    valueOf(String) - Static method in enum Quantity.Scale
    -
    -
    Returns the enum constant of this type with the specified name.
    -
    -
    valueOf(String) - Static method in enum FormatService.FormatType
    -
    -
    Returns the enum constant of this type with the specified name.
    -
    -
    values() - Static method in enum BinaryPrefix
    -
    -
    Returns an array containing the constants of this enum type, in -the order they are declared.
    -
    -
    values() - Static method in enum MetricPrefix
    -
    -
    Returns an array containing the constants of this enum type, in -the order they are declared.
    -
    -
    values() - Static method in enum Quantity.Scale
    -
    -
    Returns an array containing the constants of this enum type, in -the order they are declared.
    -
    -
    values() - Static method in enum FormatService.FormatType
    -
    -
    Returns an array containing the constants of this enum type, in -the order they are declared.
    -
    -
    Volume - Interface in javax.measure.quantity
    -
    -
    Amount of space occupied by a three-dimensional object or region of space.
    -
    -
    -

    Y

    -
    -
    YOBI - Enum constant in enum BinaryPrefix
    -
    -
    Prefix for 10248.
    -
    -
    YOBI(Unit<Q>) - Static method in enum BinaryPrefix
    -
    -
    Returns the specified unit multiplied by the factor 10248 (binary prefix).
    -
    -
    YOCTO - Enum constant in enum MetricPrefix
    -
    -
    Prefix for 10-24.
    -
    -
    YOCTO(Unit<Q>) - Static method in enum MetricPrefix
    -
    -
    Returns the specified unit multiplied by the factor 10-24
    -
    -
    YOTTA - Enum constant in enum MetricPrefix
    -
    -
    Prefix for 1024.
    -
    -
    YOTTA(Unit<Q>) - Static method in enum MetricPrefix
    -
    -
    Returns the specified unit multiplied by the factor 1024
    -
    -
    -

    Z

    -
    -
    ZEBI - Enum constant in enum BinaryPrefix
    -
    -
    Prefix for 10247.
    -
    -
    ZEBI(Unit<Q>) - Static method in enum BinaryPrefix
    -
    -
    Returns the specified unit multiplied by the factor 10247 (binary prefix).
    -
    -
    ZEPTO - Enum constant in enum MetricPrefix
    -
    -
    Prefix for 10-21.
    -
    -
    ZEPTO(Unit<Q>) - Static method in enum MetricPrefix
    -
    -
    Returns the specified unit multiplied by the factor 10-21
    -
    -
    ZETTA - Enum constant in enum MetricPrefix
    -
    -
    Prefix for 1021.
    -
    -
    ZETTA(Unit<Q>) - Static method in enum MetricPrefix
    -
    -
    Returns the specified unit multiplied by the factor 1021
    -
    -
    -A B C D E F G H I J K L M N O P Q R S T U V Y Z 
    All Classes and Interfaces|All Packages|Serialized Form
    - -
    -
    - - diff --git a/docs/site/apidocs/index.html b/docs/site/apidocs/index.html deleted file mode 100644 index 31da85c5..00000000 --- a/docs/site/apidocs/index.html +++ /dev/null @@ -1,88 +0,0 @@ - - - - -Overview (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Units of Measurement API 2.2.1-SNAPSHOT API

    -
    -
    -
    Packages
    -
    -
    Package
    -
    Description
    - -
    -
    Specifies Java packages for the programmatic, type safe handling - of quantities and their expression as values of units.
    -
    - -
    -
    [OPTIONAL] Provides Formatting and Parsing functionality for units, quantities, dimensions or their textual representation.
    -
    - -
    -
    [OPTIONAL] Provides quantitative properties or attributes of thing such as - mass, time, distance, heat, and angular separation.
    -
    - -
    -
    [OPTIONAL] The Units of Measurement SPI.
    -
    -
    -
    -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/BinaryPrefix.html b/docs/site/apidocs/javax/measure/BinaryPrefix.html deleted file mode 100644 index 5ba883a5..00000000 --- a/docs/site/apidocs/javax/measure/BinaryPrefix.html +++ /dev/null @@ -1,580 +0,0 @@ - - - - -BinaryPrefix (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    -
    Package javax.measure
    -

    Enum BinaryPrefix

    -
    -
    Object -
    Enum<BinaryPrefix> -
    BinaryPrefix
    -
    -
    -
    -
    -
    All Implemented Interfaces:
    -
    Serializable, Comparable<BinaryPrefix>, Constable, Prefix
    -
    -
    -
    public enum BinaryPrefix -extends Enum<BinaryPrefix> -implements Prefix
    -
    Provides support for common binary prefixes to be used by units. For example: -
    - import static systems.uom.unicode.CLDR.*;  // Static import (from Unicode System).
    - import static javax.measure.BinaryPrefix.*; // Static import.
    - import javax.measure.*;
    - import systems.uom.quantity.Information; // (from Systems Quantities)
    - ...
    - Unit<Information> MEBIT  = MEBI(BIT);
    - Unit<Information> GIBYTE = GIBI(BYTE); 
    - 
    - You could also apply Unit.prefix: -
    - ...
    - Unit<Information> MEBIT  = BIT.prefix(MEBI);
    - Unit<Information> GIBYTE = BYTE.prefix(GIBI);
    - 
    - -

    - Do not use ordinal() to obtain the numeric representation of BinaryPrefix. Use getValue() and getExponent() instead. -

    - -
    -
    Implementation Requirements
    This is an immutable and thread-safe enum.
    -
    -
    -
    Since:
    -
    2.0
    -
    Version:
    -
    2.3, October 31, 2023
    -
    Author:
    -
    Werner Keil
    -
    See Also:
    -
    - -
    -
    -
    -
    -
      - -
    • -
      -

      Nested Class Summary

      -
      -

      Nested classes/interfaces inherited from class Enum

      -Enum.EnumDesc<E extends Enum<E>>
      -
      -
    • - -
    • -
      -

      Enum Constant Summary

      -
      Enum Constants
      -
      -
      Enum Constant
      -
      Description
      - -
      -
      Prefix for 10246.
      -
      - -
      -
      Prefix for 10243.
      -
      - -
      -
      Prefix for 1024.
      -
      - -
      -
      Prefix for 10242.
      -
      - -
      -
      Prefix for 10245.
      -
      - -
      -
      Prefix for 10244.
      -
      - -
      -
      Prefix for 10248.
      -
      - -
      -
      Prefix for 10247.
      -
      -
      -
      -
    • - -
    • -
      -

      Method Summary

      -
      -
      -
      -
      -
      Modifier and Type
      -
      Method
      -
      Description
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      EXBI(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10246 (binary prefix).
      -
      -
      int
      - -
      -
      Exponent part of the associated factor in base^exponent representation.
      -
      - - -
      -
      Returns the name of this prefix.
      -
      - - -
      -
      Returns the symbol of this prefix.
      -
      - - -
      -
      Base part of the associated factor in base^exponent representation.
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      GIBI(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10243 (binary prefix).
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      KIBI(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 1024 (binary prefix).
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MEBI(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10242 (binary prefix).
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      PEBI(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10245 (binary prefix).
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      TEBI(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10244 (binary prefix).
      -
      - - -
      -
      Returns the enum constant of this type with the specified name.
      -
      -
      static BinaryPrefix[]
      - -
      -
      Returns an array containing the constants of this enum type, in -the order they are declared.
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      YOBI(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10248 (binary prefix).
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      ZEBI(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10247 (binary prefix).
      -
      -
      -
      -
      - -
      -

      Methods inherited from class Object

      -getClass, notify, notifyAll, wait, wait, wait
      -
      -
    • -
    -
    -
    -
      - -
    • -
      -

      Enum Constant Details

      - -
      -
    • - -
    • -
      -

      Method Details

      -
        -
      • -
        -

        values

        -
        public static BinaryPrefix[] values()
        -
        Returns an array containing the constants of this enum type, in -the order they are declared.
        -
        -
        Returns:
        -
        an array containing the constants of this enum type, in the order they are declared
        -
        -
        -
      • -
      • -
        -

        valueOf

        -
        public static BinaryPrefix valueOf(String name)
        -
        Returns the enum constant of this type with the specified name. -The string must match exactly an identifier used to declare an -enum constant in this type. (Extraneous whitespace characters are -not permitted.)
        -
        -
        Parameters:
        -
        name - the name of the enum constant to be returned.
        -
        Returns:
        -
        the enum constant with the specified name
        -
        Throws:
        -
        IllegalArgumentException - if this enum type has no constant with the specified name
        -
        NullPointerException - if the argument is null
        -
        -
        -
      • -
      • -
        -

        KIBI

        -
        public static <Q extends Quantity<Q>> Unit<Q> KIBI(Unit<Q> unit)
        -
        Returns the specified unit multiplied by the factor 1024 (binary prefix).
        -
        -
        Type Parameters:
        -
        Q - type of the quantity measured by the unit.
        -
        Parameters:
        -
        unit - any unit.
        -
        Returns:
        -
        unit.prefix(1024).
        -
        -
        -
      • -
      • -
        -

        MEBI

        -
        public static <Q extends Quantity<Q>> Unit<Q> MEBI(Unit<Q> unit)
        -
        Returns the specified unit multiplied by the factor 10242 (binary prefix).
        -
        -
        Type Parameters:
        -
        Q - type of the quantity measured by the unit.
        -
        Parameters:
        -
        unit - any unit.
        -
        Returns:
        -
        unit.prefix(10242).
        -
        -
        -
      • -
      • -
        -

        GIBI

        -
        public static <Q extends Quantity<Q>> Unit<Q> GIBI(Unit<Q> unit)
        -
        Returns the specified unit multiplied by the factor 10243 (binary prefix).
        -
        -
        Type Parameters:
        -
        Q - type of the quantity measured by the unit.
        -
        Parameters:
        -
        unit - any unit.
        -
        Returns:
        -
        unit.prefix(10243).
        -
        -
        -
      • -
      • -
        -

        TEBI

        -
        public static <Q extends Quantity<Q>> Unit<Q> TEBI(Unit<Q> unit)
        -
        Returns the specified unit multiplied by the factor 10244 (binary prefix).
        -
        -
        Type Parameters:
        -
        Q - type of the quantity measured by the unit.
        -
        Parameters:
        -
        unit - any unit.
        -
        Returns:
        -
        unit.prefix(10244).
        -
        -
        -
      • -
      • -
        -

        PEBI

        -
        public static <Q extends Quantity<Q>> Unit<Q> PEBI(Unit<Q> unit)
        -
        Returns the specified unit multiplied by the factor 10245 (binary prefix).
        -
        -
        Type Parameters:
        -
        Q - type of the quantity measured by the unit.
        -
        Parameters:
        -
        unit - any unit.
        -
        Returns:
        -
        unit.prefix(10245).
        -
        -
        -
      • -
      • -
        -

        EXBI

        -
        public static <Q extends Quantity<Q>> Unit<Q> EXBI(Unit<Q> unit)
        -
        Returns the specified unit multiplied by the factor 10246 (binary prefix).
        -
        -
        Type Parameters:
        -
        Q - type of the quantity measured by the unit.
        -
        Parameters:
        -
        unit - any unit.
        -
        Returns:
        -
        unit.prefix(10246).
        -
        -
        -
      • -
      • -
        -

        ZEBI

        -
        public static <Q extends Quantity<Q>> Unit<Q> ZEBI(Unit<Q> unit)
        -
        Returns the specified unit multiplied by the factor 10247 (binary prefix).
        -
        -
        Type Parameters:
        -
        Q - type of the quantity measured by the unit.
        -
        Parameters:
        -
        unit - any unit.
        -
        Returns:
        -
        unit.prefix(10247).
        -
        -
        -
      • -
      • -
        -

        YOBI

        -
        public static <Q extends Quantity<Q>> Unit<Q> YOBI(Unit<Q> unit)
        -
        Returns the specified unit multiplied by the factor 10248 (binary prefix).
        -
        -
        Type Parameters:
        -
        Q - type of the quantity measured by the unit.
        -
        Parameters:
        -
        unit - any unit.
        -
        Returns:
        -
        unit.prefix(10248).
        -
        -
        -
      • -
      • -
        -

        getSymbol

        -
        public String getSymbol()
        -
        Returns the symbol of this prefix.
        -
        -
        Specified by:
        -
        getSymbol in interface Prefix
        -
        Returns:
        -
        this prefix symbol, not null.
        -
        -
        -
      • -
      • -
        -

        getValue

        -
        public Integer getValue()
        -
        Base part of the associated factor in base^exponent representation. For binary prefix, this is always 1024.
        -
        -
        Specified by:
        -
        getValue in interface Prefix
        -
        Returns:
        -
        The prefix value.
        -
        -
        -
      • -
      • -
        -

        getExponent

        -
        public int getExponent()
        -
        Exponent part of the associated factor in base^exponent representation.
        -
        -
        Specified by:
        -
        getExponent in interface Prefix
        -
        Returns:
        -
        the exponent part of this prefix.
        -
        -
        -
      • -
      • -
        -

        getName

        -
        public String getName()
        -
        Returns the name of this prefix.
        -
        -
        Specified by:
        -
        getName in interface Prefix
        -
        Returns:
        -
        this prefix name, not null.
        -
        -
        -
      • -
      -
      -
    • -
    -
    - -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/Dimension.html b/docs/site/apidocs/javax/measure/Dimension.html deleted file mode 100644 index 539e6c6c..00000000 --- a/docs/site/apidocs/javax/measure/Dimension.html +++ /dev/null @@ -1,243 +0,0 @@ - - - - -Dimension (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    -
    Package javax.measure
    -

    Interface Dimension

    -
    -
    -
    -
    public interface Dimension
    -
    Represents the dimension of a unit. - -

    - Concrete dimensions are obtained through the Unit.getDimension() method. -

    - -

    - Two units u1 and u2 are compatible if and only if - u1.getDimension().equals(u2.getDimension()). -

    -
    -
    Since:
    -
    1.0
    -
    Version:
    -
    1.0, August 8, 2016
    -
    Author:
    -
    Jean-Marie Dautelle, Werner Keil
    -
    See Also:
    -
    - -
    -
    -
    -
    -
      - -
    • -
      -

      Method Summary

      -
      -
      -
      -
      -
      Modifier and Type
      -
      Method
      -
      Description
      - -
      divide(Dimension divisor)
      -
      -
      Returns the quotient of this dimension with the one specified.
      -
      -
      Map<? extends Dimension,Integer>
      - -
      -
      Returns the (fundamental) base dimensions and their exponent whose product is this dimension, or null if this dimension is a base - dimension.
      -
      - -
      multiply(Dimension multiplicand)
      -
      -
      Returns the product of this dimension with the one specified.
      -
      - -
      pow(int n)
      -
      -
      Returns this dimension raised to an exponent.
      -
      - -
      root(int n)
      -
      -
      Returns the given root of this dimension.
      -
      -
      -
      -
      -
      -
    • -
    -
    -
    -
      - -
    • -
      -

      Method Details

      -
        -
      • -
        -

        multiply

        -
        Dimension multiply(Dimension multiplicand)
        -
        Returns the product of this dimension with the one specified.
        -
        -
        Parameters:
        -
        multiplicand - the dimension multiplicand.
        -
        Returns:
        -
        this * multiplicand
        -
        -
        -
      • -
      • -
        -

        divide

        - -
        Returns the quotient of this dimension with the one specified.
        -
        -
        Parameters:
        -
        divisor - the dimension divisor.
        -
        Returns:
        -
        this / divisor
        -
        -
        -
      • -
      • -
        -

        pow

        -
        Dimension pow(int n)
        -
        Returns this dimension raised to an exponent. (thisn)
        -
        -
        Parameters:
        -
        n - power to raise this Dimension to.
        -
        Returns:
        -
        thisn
        -
        -
        -
      • -
      • -
        -

        root

        -
        Dimension root(int n)
        -
        Returns the given root of this dimension.
        -
        -
        Parameters:
        -
        n - the root's order.
        -
        Returns:
        -
        the result of taking the given root of this dimension.
        -
        Throws:
        -
        ArithmeticException - if n == 0.
        -
        -
        -
      • -
      • -
        -

        getBaseDimensions

        - -
        Returns the (fundamental) base dimensions and their exponent whose product is this dimension, or null if this dimension is a base - dimension.
        -
        -
        Returns:
        -
        the mapping between the fundamental dimensions and their exponent.
        -
        -
        -
      • -
      -
      -
    • -
    -
    - -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/IncommensurableException.html b/docs/site/apidocs/javax/measure/IncommensurableException.html deleted file mode 100644 index 853575e9..00000000 --- a/docs/site/apidocs/javax/measure/IncommensurableException.html +++ /dev/null @@ -1,205 +0,0 @@ - - - - -IncommensurableException (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    -
    Package javax.measure
    -

    Class IncommensurableException

    -
    -
    Object -
    Throwable -
    Exception -
    IncommensurableException
    -
    -
    -
    -
    -
    -
    All Implemented Interfaces:
    -
    Serializable
    -
    -
    -
    public class IncommensurableException -extends Exception
    -
    Signals that a problem of some sort has occurred due to incommensurable of some quantities/units. Only commensurable quantity (quantities with the - same dimensions) may be compared, equated, added, or subtracted. Also, one unit can be converted to another unit only if both units are - commensurable. -

    - This is a checked exception, so it deliberately doesn't inherit from MeasurementException like most other exceptions. -

    -
    -
    Since:
    -
    1.0
    -
    Version:
    -
    1.0, August 8, 2016
    -
    Author:
    -
    Jean-Marie Dautelle, Werner Keil
    -
    See Also:
    -
    - -
    -
    -
    -
    - -
    -
    -
      - -
    • -
      -

      Constructor Details

      -
        -
      • -
        -

        IncommensurableException

        - -
        Constructs a IncommensurableException with the given message.
        -
        -
        Parameters:
        -
        message - the detail message, or null if none.
        -
        -
        -
      • -
      • -
        -

        IncommensurableException

        - -
        Constructs a IncommensurableException with the given cause.
        -
        -
        Parameters:
        -
        cause - the cause of this exception, or null if none.
        -
        -
        -
      • -
      • -
        -

        IncommensurableException

        -
        public IncommensurableException(String message, - Throwable cause)
        -
        Constructs a IncommensurableException with the given message and cause.
        -
        -
        Parameters:
        -
        message - the detail message, or null if none.
        -
        cause - the cause of this exception, or null if none.
        -
        -
        -
      • -
      -
      -
    • -
    -
    - -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/MeasurementError.html b/docs/site/apidocs/javax/measure/MeasurementError.html deleted file mode 100644 index 17f3c32c..00000000 --- a/docs/site/apidocs/javax/measure/MeasurementError.html +++ /dev/null @@ -1,215 +0,0 @@ - - - - -MeasurementError (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    -
    Package javax.measure
    -

    Class MeasurementError

    -
    -
    Object -
    Throwable -
    Error -
    MeasurementError
    -
    -
    -
    -
    -
    -
    All Implemented Interfaces:
    -
    Serializable
    -
    -
    -
    public class MeasurementError -extends Error
    -
    This error is used to indicate serious problems with creating, retrieving and manipulating units of measurement objects. - -
    -
    Implementation Requirements:
    -
    This class is intended for use in a single thread. Exception thrown when errors occur during Units of Measurement operations.
    -
    -
    -
    Since:
    -
    2.1
    -
    Version:
    -
    2.2, Feb 3, 2021
    -
    Author:
    -
    Werner Keil
    -
    See Also:
    -
    - -
    -
    -
    -
    - -
    -
    -
      - -
    • -
      -

      Constructor Details

      -
        -
      • -
        -

        MeasurementError

        - -
        Constructs a MeasurementError with no detail message.
        -
        -
      • -
      • -
        -

        MeasurementError

        -
        public MeasurementError(String message)
        -
        Constructs a MeasurementError with the specified detail message.
        -
        -
        Parameters:
        -
        message - the detail message.
        -
        -
        -
      • -
      • -
        -

        MeasurementError

        -
        public MeasurementError(Throwable cause)
        -
        Constructs a MeasurementError with the given cause.
        -
        -
        Parameters:
        -
        cause - the cause of this exception, or null if none.
        -
        -
        -
      • -
      • -
        -

        MeasurementError

        -
        public MeasurementError(String message, - Throwable cause)
        -
        Constructs a MeasurementError with the specified detail message and cause.
        -
        -
        Parameters:
        -
        message - the detail message.
        -
        cause - the cause, may be null
        -
        -
        -
      • -
      -
      -
    • -
    -
    - -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/MeasurementException.html b/docs/site/apidocs/javax/measure/MeasurementException.html deleted file mode 100644 index 1e0acc43..00000000 --- a/docs/site/apidocs/javax/measure/MeasurementException.html +++ /dev/null @@ -1,229 +0,0 @@ - - - - -MeasurementException (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    -
    Package javax.measure
    -

    Class MeasurementException

    -
    -
    Object -
    Throwable -
    Exception -
    RuntimeException -
    MeasurementException
    -
    -
    -
    -
    -
    -
    -
    All Implemented Interfaces:
    -
    Serializable
    -
    -
    -
    Direct Known Subclasses:
    -
    MeasurementParseException, UnconvertibleException
    -
    -
    - -
    Exception used to indicate a problem while dealing with units of measurement. -

    - This exception is used to indicate problems with creating, retrieving and manipulating units of measurement objects. -

    - -
    -
    Implementation Requirements:
    -
    This class is intended for use in a single thread. Exception thrown when errors occur during Units of Measurement operations.
    -
    -
    -
    Since:
    -
    1.0
    -
    Version:
    -
    2.0, Jul 4, 2020
    -
    Author:
    -
    Werner Keil
    -
    See Also:
    -
    - -
    -
    -
    -
    - -
    -
    -
      - -
    • -
      -

      Constructor Details

      -
        -
      • -
        -

        MeasurementException

        -
        public MeasurementException(String message)
        -
        Constructs a MeasurementException with the given message.
        -
        -
        Parameters:
        -
        message - the detail message, or null if none.
        -
        -
        -
      • -
      • -
        -

        MeasurementException

        - -
        Constructs a MeasurementException with the given cause.
        -
        -
        Parameters:
        -
        cause - the cause of this exception, or null if none.
        -
        -
        -
      • -
      • -
        -

        MeasurementException

        -
        public MeasurementException(String message, - Throwable cause)
        -
        Constructs a MeasurementException with the given message and cause.
        -
        -
        Parameters:
        -
        message - the detail message, or null if none.
        -
        cause - the cause of this exception, or null if none.
        -
        -
        -
      • -
      • -
        -

        MeasurementException

        - -
        Constructs a MeasurementException with no given message.
        -
        -
      • -
      -
      -
    • -
    -
    - -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/MetricPrefix.html b/docs/site/apidocs/javax/measure/MetricPrefix.html deleted file mode 100644 index 19558877..00000000 --- a/docs/site/apidocs/javax/measure/MetricPrefix.html +++ /dev/null @@ -1,1339 +0,0 @@ - - - - -MetricPrefix (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    -
    Package javax.measure
    -

    Enum MetricPrefix

    -
    -
    Object -
    Enum<MetricPrefix> -
    MetricPrefix
    -
    -
    -
    -
    -
    All Implemented Interfaces:
    -
    Serializable, Comparable<MetricPrefix>, Constable, Prefix
    -
    -
    -
    public enum MetricPrefix -extends Enum<MetricPrefix> -implements Prefix
    -
    Provides support for the 24 prefixes used in the metric system (decimal multiples and submultiples of units). For example: - -
    - import static tech.units.indriya.unit.Units.*;  // Static import (from the RI).
    - import static javax.measure.MetricPrefix.*; // Static import.
    - import javax.measure.*;
    - import javax.measure.quantity.*;
    - ...
    - Unit<Pressure> HECTOPASCAL = HECTO(PASCAL);
    - Unit<Length> KILOMETRE = KILO(METRE); 
    - 
    - You could also apply Unit.prefix: -
    - ...
    - Unit<Pressure> HECTOPASCAL = PASCAL.prefix(HECTO);
    - Unit<Length> KILOMETRE = METRE.prefix(KILO);
    - 
    - -

    - Do not use ordinal() to obtain the numeric representation of MetricPrefix. Use getValue() and getExponent() instead. -

    - -
    -
    Implementation Requirements
    This is an immutable and thread-safe enum.
    -
    -
    -
    Since:
    -
    2.0
    -
    Version:
    -
    2.4, October 31, 2023
    -
    Author:
    -
    Jean-Marie Dautelle, Werner Keil
    -
    See Also:
    -
    - -
    -
    -
    -
    -
      - -
    • -
      -

      Nested Class Summary

      -
      -

      Nested classes/interfaces inherited from class Enum

      -Enum.EnumDesc<E extends Enum<E>>
      -
      -
    • - -
    • -
      -

      Enum Constant Summary

      -
      Enum Constants
      -
      -
      Enum Constant
      -
      Description
      - -
      -
      Prefix for 10-18.
      -
      - -
      -
      Prefix for 10-2.
      -
      - -
      -
      Prefix for 101.
      -
      - -
      -
      Prefix for 10-1.
      -
      - -
      -
      Prefix for 1018.
      -
      - -
      -
      Prefix for 10-15.
      -
      - -
      -
      Prefix for 109.
      -
      - -
      -
      Prefix for 102.
      -
      - -
      -
      Prefix for 103.
      -
      - -
      -
      Prefix for 106.
      -
      - -
      -
      Prefix for 10-6.
      -
      - -
      -
      Prefix for 10-3.
      -
      - -
      -
      Prefix for 10-9.
      -
      - -
      -
      Prefix for 1015.
      -
      - -
      -
      Prefix for 10-12.
      -
      - -
      -
      Prefix for 10-30.
      -
      - -
      -
      Prefix for 1030.
      -
      - -
      -
      Prefix for 1027.
      -
      - -
      -
      Prefix for 10-27.
      -
      - -
      -
      Prefix for 1012.
      -
      - -
      -
      Prefix for 10-24.
      -
      - -
      -
      Prefix for 1024.
      -
      - -
      -
      Prefix for 10-21.
      -
      - -
      -
      Prefix for 1021.
      -
      -
      -
      -
    • - -
    • -
      -

      Method Summary

      -
      -
      -
      -
      -
      Modifier and Type
      -
      Method
      -
      Description
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      ATTO(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10-18
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      CENTI(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10-2
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      DECA(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 101
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      DECI(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10-1
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      DEKA(Unit<Q> unit)
      -
      -
      US alias for DECA.
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      EXA(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 1018
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      FEMTO(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10-15
      -
      -
      int
      - -
      -
      Exponent part of the associated factor in base^exponent representation.
      -
      - - -
      -
      Returns the name of this prefix.
      -
      - - -
      -
      Returns the symbol of this prefix.
      -
      - - -
      -
      Base part of the associated factor in base^exponent representation.
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      GIGA(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 109
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      HECTO(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 102
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      KILO(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 103
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MEGA(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 106
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MICRO(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10-6
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MILLI(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10-3
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      NANO(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10-9
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      PETA(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 1015
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      PICO(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10-12
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      QUECTO(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10-30
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      QUETTA(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 1030
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      RONNA(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 1027
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      RONTO(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10-27
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      TERA(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 1012
      -
      - - -
      -
      Returns the enum constant of this type with the specified name.
      -
      -
      static MetricPrefix[]
      - -
      -
      Returns an array containing the constants of this enum type, in -the order they are declared.
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      YOCTO(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10-24
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      YOTTA(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 1024
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      ZEPTO(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10-21
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      ZETTA(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 1021
      -
      -
      -
      -
      - -
      -

      Methods inherited from class Object

      -getClass, notify, notifyAll, wait, wait, wait
      -
      -
    • -
    -
    -
    -
      - -
    • -
      -

      Enum Constant Details

      - -
      -
    • - -
    • -
      -

      Method Details

      -
        -
      • -
        -

        values

        -
        public static MetricPrefix[] values()
        -
        Returns an array containing the constants of this enum type, in -the order they are declared.
        -
        -
        Returns:
        -
        an array containing the constants of this enum type, in the order they are declared
        -
        -
        -
      • -
      • -
        -

        valueOf

        -
        public static MetricPrefix valueOf(String name)
        -
        Returns the enum constant of this type with the specified name. -The string must match exactly an identifier used to declare an -enum constant in this type. (Extraneous whitespace characters are -not permitted.)
        -
        -
        Parameters:
        -
        name - the name of the enum constant to be returned.
        -
        Returns:
        -
        the enum constant with the specified name
        -
        Throws:
        -
        IllegalArgumentException - if this enum type has no constant with the specified name
        -
        NullPointerException - if the argument is null
        -
        -
        -
      • -
      • -
        -

        QUETTA

        -
        public static <Q extends Quantity<Q>> Unit<Q> QUETTA(Unit<Q> unit)
        -
        Returns the specified unit multiplied by the factor 1030
        -
        -
        Type Parameters:
        -
        Q - type of the quantity measured by the unit.
        -
        Parameters:
        -
        unit - any unit.
        -
        Returns:
        -
        unit.prefix(1e30).
        -
        See Also:
        -
        - -
        -
        -
        -
      • -
      • -
        -

        RONNA

        -
        public static <Q extends Quantity<Q>> Unit<Q> RONNA(Unit<Q> unit)
        -
        Returns the specified unit multiplied by the factor 1027
        -
        -
        Type Parameters:
        -
        Q - type of the quantity measured by the unit.
        -
        Parameters:
        -
        unit - any unit.
        -
        Returns:
        -
        unit.prefix(1e27).
        -
        See Also:
        -
        - -
        -
        -
        -
      • -
      • -
        -

        YOTTA

        -
        public static <Q extends Quantity<Q>> Unit<Q> YOTTA(Unit<Q> unit)
        -
        Returns the specified unit multiplied by the factor 1024
        -
        -
        Type Parameters:
        -
        Q - type of the quantity measured by the unit.
        -
        Parameters:
        -
        unit - any unit.
        -
        Returns:
        -
        unit.prefix(1e24).
        -
        See Also:
        -
        - -
        -
        -
        -
      • -
      • -
        -

        ZETTA

        -
        public static <Q extends Quantity<Q>> Unit<Q> ZETTA(Unit<Q> unit)
        -
        Returns the specified unit multiplied by the factor 1021
        -
        -
        Type Parameters:
        -
        Q - type of the quantity measured by the unit.
        -
        Parameters:
        -
        unit - any unit.
        -
        Returns:
        -
        unit.prefix(1e21).
        -
        See Also:
        -
        - -
        -
        -
        -
      • -
      • -
        -

        EXA

        -
        public static <Q extends Quantity<Q>> Unit<Q> EXA(Unit<Q> unit)
        -
        Returns the specified unit multiplied by the factor 1018
        -
        -
        Type Parameters:
        -
        Q - type of the quantity measured by the unit.
        -
        Parameters:
        -
        unit - any unit.
        -
        Returns:
        -
        unit.prefix(1e18).
        -
        See Also:
        -
        - -
        -
        -
        -
      • -
      • -
        -

        PETA

        -
        public static <Q extends Quantity<Q>> Unit<Q> PETA(Unit<Q> unit)
        -
        Returns the specified unit multiplied by the factor 1015
        -
        -
        Type Parameters:
        -
        Q - type of the quantity measured by the unit.
        -
        Parameters:
        -
        unit - any unit.
        -
        Returns:
        -
        unit.prefix(1e15).
        -
        See Also:
        -
        - -
        -
        -
        -
      • -
      • -
        -

        TERA

        -
        public static <Q extends Quantity<Q>> Unit<Q> TERA(Unit<Q> unit)
        -
        Returns the specified unit multiplied by the factor 1012
        -
        -
        Type Parameters:
        -
        Q - type of the quantity measured by the unit.
        -
        Parameters:
        -
        unit - any unit.
        -
        Returns:
        -
        unit.prefix(1e12).
        -
        See Also:
        -
        - -
        -
        -
        -
      • -
      • -
        -

        GIGA

        -
        public static <Q extends Quantity<Q>> Unit<Q> GIGA(Unit<Q> unit)
        -
        Returns the specified unit multiplied by the factor 109
        -
        -
        Type Parameters:
        -
        Q - type of the quantity measured by the unit.
        -
        Parameters:
        -
        unit - any unit.
        -
        Returns:
        -
        unit.prefix(1e9).
        -
        See Also:
        -
        - -
        -
        -
        -
      • -
      • -
        -

        MEGA

        -
        public static <Q extends Quantity<Q>> Unit<Q> MEGA(Unit<Q> unit)
        -
        Returns the specified unit multiplied by the factor 106
        -
        -
        Type Parameters:
        -
        Q - type of the quantity measured by the unit.
        -
        Parameters:
        -
        unit - any unit.
        -
        Returns:
        -
        unit.prefix(1e6).
        -
        See Also:
        -
        - -
        -
        -
        -
      • -
      • -
        -

        KILO

        -
        public static <Q extends Quantity<Q>> Unit<Q> KILO(Unit<Q> unit)
        -
        Returns the specified unit multiplied by the factor 103
        -
        -
        Type Parameters:
        -
        Q - type of the quantity measured by the unit.
        -
        Parameters:
        -
        unit - any unit.
        -
        Returns:
        -
        unit.prefix(1e3).
        -
        See Also:
        -
        - -
        -
        -
        -
      • -
      • -
        -

        HECTO

        -
        public static <Q extends Quantity<Q>> Unit<Q> HECTO(Unit<Q> unit)
        -
        Returns the specified unit multiplied by the factor 102
        -
        -
        Type Parameters:
        -
        Q - type of the quantity measured by the unit.
        -
        Parameters:
        -
        unit - any unit.
        -
        Returns:
        -
        unit.prefix(1e2).
        -
        See Also:
        -
        - -
        -
        -
        -
      • -
      • -
        -

        DECA

        -
        public static <Q extends Quantity<Q>> Unit<Q> DECA(Unit<Q> unit)
        -
        Returns the specified unit multiplied by the factor 101
        -
        -
        Type Parameters:
        -
        Q - type of the quantity measured by the unit.
        -
        Parameters:
        -
        unit - any unit.
        -
        Returns:
        -
        unit.prefix(1e1).
        -
        See Also:
        -
        - -
        -
        -
        -
      • -
      • -
        -

        DEKA

        -
        public static <Q extends Quantity<Q>> Unit<Q> DEKA(Unit<Q> unit)
        -
        US alias for DECA.
        -
        -
        Type Parameters:
        -
        Q - type of the quantity measured by the unit.
        -
        Parameters:
        -
        unit - any unit.
        -
        Returns:
        -
        unit.prefix(1e1).
        -
        See Also:
        -
        - -
        -
        -
        -
      • -
      • -
        -

        DECI

        -
        public static <Q extends Quantity<Q>> Unit<Q> DECI(Unit<Q> unit)
        -
        Returns the specified unit multiplied by the factor 10-1
        -
        -
        Type Parameters:
        -
        Q - type of the quantity measured by the unit.
        -
        Parameters:
        -
        unit - any unit.
        -
        Returns:
        -
        unit.prefix(1e-1).
        -
        See Also:
        -
        - -
        -
        -
        -
      • -
      • -
        -

        CENTI

        -
        public static <Q extends Quantity<Q>> Unit<Q> CENTI(Unit<Q> unit)
        -
        Returns the specified unit multiplied by the factor 10-2
        -
        -
        Type Parameters:
        -
        Q - type of the quantity measured by the unit.
        -
        Parameters:
        -
        unit - any unit.
        -
        Returns:
        -
        unit.prefix(1e-2).
        -
        See Also:
        -
        - -
        -
        -
        -
      • -
      • -
        -

        MILLI

        -
        public static <Q extends Quantity<Q>> Unit<Q> MILLI(Unit<Q> unit)
        -
        Returns the specified unit multiplied by the factor 10-3
        -
        -
        Type Parameters:
        -
        Q - type of the quantity measured by the unit.
        -
        Parameters:
        -
        unit - any unit.
        -
        Returns:
        -
        unit.prefix(1e-3).
        -
        See Also:
        -
        - -
        -
        -
        -
      • -
      • -
        -

        MICRO

        -
        public static <Q extends Quantity<Q>> Unit<Q> MICRO(Unit<Q> unit)
        -
        Returns the specified unit multiplied by the factor 10-6
        -
        -
        Type Parameters:
        -
        Q - type of the quantity measured by the unit.
        -
        Parameters:
        -
        unit - any unit.
        -
        Returns:
        -
        unit.prefix(1e-6).
        -
        See Also:
        -
        - -
        -
        -
        -
      • -
      • -
        -

        NANO

        -
        public static <Q extends Quantity<Q>> Unit<Q> NANO(Unit<Q> unit)
        -
        Returns the specified unit multiplied by the factor 10-9
        -
        -
        Type Parameters:
        -
        Q - type of the quantity measured by the unit.
        -
        Parameters:
        -
        unit - any unit.
        -
        Returns:
        -
        unit.prefix(1e-9).
        -
        See Also:
        -
        - -
        -
        -
        -
      • -
      • -
        -

        PICO

        -
        public static <Q extends Quantity<Q>> Unit<Q> PICO(Unit<Q> unit)
        -
        Returns the specified unit multiplied by the factor 10-12
        -
        -
        Type Parameters:
        -
        Q - type of the quantity measured by the unit.
        -
        Parameters:
        -
        unit - any unit.
        -
        Returns:
        -
        unit.prefix(1e-12).
        -
        See Also:
        -
        - -
        -
        -
        -
      • -
      • -
        -

        FEMTO

        -
        public static <Q extends Quantity<Q>> Unit<Q> FEMTO(Unit<Q> unit)
        -
        Returns the specified unit multiplied by the factor 10-15
        -
        -
        Type Parameters:
        -
        Q - type of the quantity measured by the unit.
        -
        Parameters:
        -
        unit - any unit.
        -
        Returns:
        -
        unit.prefix(1e-15).
        -
        See Also:
        -
        - -
        -
        -
        -
      • -
      • -
        -

        ATTO

        -
        public static <Q extends Quantity<Q>> Unit<Q> ATTO(Unit<Q> unit)
        -
        Returns the specified unit multiplied by the factor 10-18
        -
        -
        Type Parameters:
        -
        Q - type of the quantity measured by the unit.
        -
        Parameters:
        -
        unit - any unit.
        -
        Returns:
        -
        unit.prefix(1e-18).
        -
        See Also:
        -
        - -
        -
        -
        -
      • -
      • -
        -

        ZEPTO

        -
        public static <Q extends Quantity<Q>> Unit<Q> ZEPTO(Unit<Q> unit)
        -
        Returns the specified unit multiplied by the factor 10-21
        -
        -
        Type Parameters:
        -
        Q - type of the quantity measured by the unit.
        -
        Parameters:
        -
        unit - any unit.
        -
        Returns:
        -
        unit.prefix(1e-21). - #see ZEPTO
        -
        -
        -
      • -
      • -
        -

        YOCTO

        -
        public static <Q extends Quantity<Q>> Unit<Q> YOCTO(Unit<Q> unit)
        -
        Returns the specified unit multiplied by the factor 10-24
        -
        -
        Type Parameters:
        -
        Q - type of the quantity measured by the unit.
        -
        Parameters:
        -
        unit - any unit.
        -
        Returns:
        -
        unit.prefix(1e-24).
        -
        See Also:
        -
        - -
        -
        -
        -
      • -
      • -
        -

        RONTO

        -
        public static <Q extends Quantity<Q>> Unit<Q> RONTO(Unit<Q> unit)
        -
        Returns the specified unit multiplied by the factor 10-27
        -
        -
        Type Parameters:
        -
        Q - type of the quantity measured by the unit.
        -
        Parameters:
        -
        unit - any unit.
        -
        Returns:
        -
        unit.prefix(1e-27).
        -
        See Also:
        -
        - -
        -
        -
        -
      • -
      • -
        -

        QUECTO

        -
        public static <Q extends Quantity<Q>> Unit<Q> QUECTO(Unit<Q> unit)
        -
        Returns the specified unit multiplied by the factor 10-30
        -
        -
        Type Parameters:
        -
        Q - type of the quantity measured by the unit.
        -
        Parameters:
        -
        unit - any unit.
        -
        Returns:
        -
        unit.prefix(1e-30).
        -
        See Also:
        -
        - -
        -
        -
        -
      • -
      • -
        -

        getSymbol

        -
        public String getSymbol()
        -
        Returns the symbol of this prefix.
        -
        -
        Specified by:
        -
        getSymbol in interface Prefix
        -
        Returns:
        -
        this prefix symbol, not null.
        -
        -
        -
      • -
      • -
        -

        getValue

        -
        public Integer getValue()
        -
        Base part of the associated factor in base^exponent representation. For metric prefix, this is always 10.
        -
        -
        Specified by:
        -
        getValue in interface Prefix
        -
        Returns:
        -
        The prefix value.
        -
        -
        -
      • -
      • -
        -

        getExponent

        -
        public int getExponent()
        -
        Exponent part of the associated factor in base^exponent representation.
        -
        -
        Specified by:
        -
        getExponent in interface Prefix
        -
        Returns:
        -
        the exponent part of this prefix.
        -
        -
        -
      • -
      • -
        -

        getName

        -
        public String getName()
        -
        Returns the name of this prefix.
        -
        -
        Specified by:
        -
        getName in interface Prefix
        -
        Returns:
        -
        this prefix name, not null.
        -
        -
        -
      • -
      -
      -
    • -
    -
    - -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/Prefix.html b/docs/site/apidocs/javax/measure/Prefix.html deleted file mode 100644 index 19721f9b..00000000 --- a/docs/site/apidocs/javax/measure/Prefix.html +++ /dev/null @@ -1,210 +0,0 @@ - - - - -Prefix (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    -
    Package javax.measure
    -

    Interface Prefix

    -
    -
    -
    -
    All Known Implementing Classes:
    -
    BinaryPrefix, MetricPrefix
    -
    -
    -
    public interface Prefix
    -
    A unit prefix is a specifier or mnemonic that is prepended to units of measurement to indicate multiples or fractions of the units.
    -
    -
    Since:
    -
    2.0
    -
    Version:
    -
    1.4, April 3, 2023
    -
    Author:
    -
    Werner Keil
    -
    See Also:
    -
    - -
    -
    -
    -
    -
      - -
    • -
      -

      Method Summary

      -
      -
      -
      -
      -
      Modifier and Type
      -
      Method
      -
      Description
      -
      int
      - -
      -
      Exponent part of the associated factor in base^exponent representation.
      -
      - - -
      -
      Returns the name of this prefix.
      -
      - - -
      -
      Returns the symbol of this prefix.
      -
      - - -
      -
      Returns the value of this prefix.
      -
      -
      -
      -
      -
      -
    • -
    -
    -
    -
      - -
    • -
      -

      Method Details

      -
        -
      • -
        -

        getName

        - -
        Returns the name of this prefix.
        -
        -
        Returns:
        -
        this prefix name, not null.
        -
        -
        -
      • -
      • -
        -

        getSymbol

        - -
        Returns the symbol of this prefix.
        -
        -
        Returns:
        -
        this prefix symbol, not null.
        -
        -
        -
      • -
      • -
        -

        getValue

        - -
        Returns the value of this prefix. If the exponent is different from 1, this value is the base part of the associated - factor in base^exponent representation.
        -
        -
        Returns:
        -
        The prefix value.
        -
        -
        -
      • -
      • -
        -

        getExponent

        - -
        Exponent part of the associated factor in base^exponent representation. For different factors, e.g. rational numbers like 1/4 - the exponent is always 1.
        -
        -
        Returns:
        -
        the exponent part of this prefix.
        -
        -
        -
      • -
      -
      -
    • -
    -
    - -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/Quantity.Scale.html b/docs/site/apidocs/javax/measure/Quantity.Scale.html deleted file mode 100644 index 90b8cfcb..00000000 --- a/docs/site/apidocs/javax/measure/Quantity.Scale.html +++ /dev/null @@ -1,254 +0,0 @@ - - - - -Quantity.Scale (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    -
    Package javax.measure
    -

    Enum Quantity.Scale

    -
    - -
    -
    -
    All Implemented Interfaces:
    -
    Serializable, Comparable<Quantity.Scale>, Constable
    -
    -
    -
    Enclosing interface:
    -
    Quantity<Q extends Quantity<Q>>
    -
    -
    -
    public static enum Quantity.Scale -extends Enum<Quantity.Scale>
    -
    The scale of a Quantity, either ABSOLUTE or RELATIVE.
    -
    -
    Since:
    -
    2.0
    -
    See Also:
    -
    - -
    -
    -
    -
    - -
    -
    -
      - -
    • -
      -

      Enum Constant Details

      - -
      -
    • - -
    • -
      -

      Method Details

      -
        -
      • -
        -

        values

        -
        public static Quantity.Scale[] values()
        -
        Returns an array containing the constants of this enum type, in -the order they are declared.
        -
        -
        Returns:
        -
        an array containing the constants of this enum type, in the order they are declared
        -
        -
        -
      • -
      • -
        -

        valueOf

        -
        public static Quantity.Scale valueOf(String name)
        -
        Returns the enum constant of this type with the specified name. -The string must match exactly an identifier used to declare an -enum constant in this type. (Extraneous whitespace characters are -not permitted.)
        -
        -
        Parameters:
        -
        name - the name of the enum constant to be returned.
        -
        Returns:
        -
        the enum constant with the specified name
        -
        Throws:
        -
        IllegalArgumentException - if this enum type has no constant with the specified name
        -
        NullPointerException - if the argument is null
        -
        -
        -
      • -
      -
      -
    • -
    -
    - -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/Quantity.html b/docs/site/apidocs/javax/measure/Quantity.html deleted file mode 100644 index 26aeecab..00000000 --- a/docs/site/apidocs/javax/measure/Quantity.html +++ /dev/null @@ -1,582 +0,0 @@ - - - - -Quantity (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    -
    Package javax.measure
    -

    Interface Quantity<Q extends Quantity<Q>>

    -
    -
    -
    -
    Type Parameters:
    -
    Q - The type of the quantity.
    -
    -
    -
    All Known Subinterfaces:
    -
    Acceleration, AmountOfSubstance, Angle, Area, CatalyticActivity, Dimensionless, ElectricCapacitance, ElectricCharge, ElectricConductance, ElectricCurrent, ElectricInductance, ElectricPotential, ElectricResistance, Energy, Force, Frequency, Illuminance, Length, LuminousFlux, LuminousIntensity, MagneticFlux, MagneticFluxDensity, Mass, Power, Pressure, RadiationDoseAbsorbed, RadiationDoseEffective, Radioactivity, SolidAngle, Speed, Temperature, Time, Volume
    -
    -
    -
    public interface Quantity<Q extends Quantity<Q>>
    -
    Represents a quantitative property of a phenomenon, body, or substance, that - can be quantified by measurement. Mass, - time, distance, heat, and angular separation are among the familiar examples - of quantitative properties. -

    - Unit<Mass> pound = ... Quantity<Length> size = ... Sensor<Temperature>
    - thermometer = ... Vector3D<Speed> aircraftSpeed = ...
    -

    - -
    -
    Arithmetic operations
    -
    - This interface defines some arithmetic operations between Quantity - instances. All implementations shall produce equivalent results for - the same operation applied on equivalent quantities. Two quantities are - equivalent if, after conversion to the same unit of measurement, they have - the same numerical value (ignoring rounding errors). For example 2000 metres - is equivalent to 2 km, but 2°C is not equivalent to 2 K; it is equivalent to - 275.15 K instead. Above requirement applied to addition means that 2°C + 2 K - shall be equivalent to 275.15 K + 2 K. - -

    All operations shall preserve the - basic laws - of algebra, in particular commutativity of addition and - multiplication (A + B = B + A) - and associativity of addition and multiplication (A + - B) + C = A + (B + C). - In order to preserve those algebra laws, this specification requires all - arithmetic operations to execute as is all operands were converted - to system unit before the operation is - carried out, and the result converted back to any compatible unit at - implementation choice. For example 4 cm + 1 inch shall produce any result - equivalent to 0.04 m + 0.0254 m.

    - -

    Implementations are allowed to avoid conversion to system unit if the - result is guaranteed to be equivalent. This is often the case when the - conversion between quantity unit and system unit is only a - scale factor. However this is not - the case for conversions applying an offset or more complex formula. - For example 2°C + 1°C = 274.15°C, not 3°C. This counter-intuitive result - is essential for preserving algebra laws like associativity, and is also - the expected result from a thermodynamic point of view.

    - -
    -
    API Note:
    This interface places no restrictions on the mutability of - implementations, however immutability is strongly recommended. All - implementations must be Comparable.
    -
    -
    -
    Since:
    -
    1.0
    -
    Version:
    -
    2.5, May 20, 2023
    -
    Author:
    -
    Jean-Marie Dautelle, Martin - Desruisseaux, Werner Keil, Otavio Santana
    -
    See Also:
    -
    - -
    -
    -
    -
    -
      - -
    • -
      -

      Nested Class Summary

      -
      Nested Classes
      -
      -
      Modifier and Type
      -
      Interface
      -
      Description
      -
      static enum 
      - -
      -
      The scale of a Quantity, either ABSOLUTE or RELATIVE.
      -
      -
      -
      -
    • - -
    • -
      -

      Method Summary

      -
      -
      -
      -
      -
      Modifier and Type
      -
      Method
      -
      Description
      - -
      add(Quantity<Q> addend)
      -
      -
      Returns the sum of this Quantity with the one specified.
      -
      -
      <T extends Quantity<T>>
      Quantity<T>
      -
      asType(Class<T> type)
      -
      -
      Casts this quantity to a parameterized unit of specified nature or throw a - ClassCastException if the dimension of the specified quantity - and this measure unit's dimension do not match.
      -
      - -
      divide(Number divisor)
      -
      -
      Returns the quotient of this Quantity divided by the Number - specified.
      -
      - -
      divide(Quantity<?> divisor)
      -
      -
      Returns the quotient of this Quantity divided by the Quantity - specified.
      -
      - - -
      -
      Returns the Scale of this Quantity, if it's absolute or relative.
      -
      - - -
      -
      Returns the unit of this Quantity.
      -
      - - -
      -
      Returns the value of this Quantity.
      -
      - - -
      -
      Returns a Quantity that is the multiplicative inverse of this - Quantity, having reciprocal value and reciprocal unit as given by - this.getUnit().inverse().
      -
      -
      boolean
      - -
      -
      Compares two instances of Quantity <Q>, performing the conversion of units if necessary.
      -
      - -
      multiply(Number multiplicand)
      -
      -
      Returns the product of this Quantity with the Number value - specified.
      -
      - -
      multiply(Quantity<?> multiplicand)
      -
      -
      Returns the product of this Quantity with the one specified.
      -
      - - -
      -
      Returns a Quantity whose value is (-this.getValue()).
      -
      - -
      subtract(Quantity<Q> subtrahend)
      -
      -
      Returns the difference between this Quantity and the one specified.
      -
      - -
      to(Unit<Q> unit)
      -
      -
      Returns this Quantity converted into another (compatible) - Unit.
      -
      -
      default Quantity<Q>
      - -
      -
      Convenient method equivalent to to(getUnit().toSystemUnit()).
      -
      -
      -
      -
      -
      -
    • -
    -
    -
    -
      - -
    • -
      -

      Method Details

      -
        -
      • -
        -

        add

        -
        Quantity<Q> add(Quantity<Q> addend)
        -
        Returns the sum of this Quantity with the one specified. - The result shall be as if this quantity and the given addend were - converted to system unit before - to be added, and the result converted back to the unit of this - quantity or any other compatible unit at implementation choice.
        -
        -
        Parameters:
        -
        addend - the Quantity to be added.
        -
        Returns:
        -
        this + addend.
        -
        -
        -
      • -
      • -
        -

        subtract

        -
        Quantity<Q> subtract(Quantity<Q> subtrahend)
        -
        Returns the difference between this Quantity and the one specified. - The result shall be as if this quantity and the given subtrahend were - converted to system unit before - to be subtracted, and the result converted back to the unit of this - quantity or any other compatible unit at implementation choice.
        -
        -
        Parameters:
        -
        subtrahend - the Quantity to be subtracted.
        -
        Returns:
        -
        this - subtrahend.
        -
        -
        -
      • -
      • -
        -

        divide

        -
        Quantity<?> divide(Quantity<?> divisor)
        -
        Returns the quotient of this Quantity divided by the Quantity - specified. - The result shall be as if this quantity and the given divisor were - converted to system unit before - to be divided, and the result converted back to the unit of this - quantity or any other compatible unit at implementation choice.
        -
        -
        Parameters:
        -
        divisor - the Quantity divisor.
        -
        Returns:
        -
        this / divisor.
        -
        Throws:
        -
        ClassCastException - if the type of an element in the specified operation is - incompatible with this quantity
        -
        -
        -
      • -
      • -
        -

        divide

        -
        Quantity<Q> divide(Number divisor)
        -
        Returns the quotient of this Quantity divided by the Number - specified. - The result shall be as if this quantity was converted to - system unit before to be divided, - and the result converted back to the unit of this quantity or any - other compatible unit at implementation choice.
        -
        -
        Parameters:
        -
        divisor - the Number divisor.
        -
        Returns:
        -
        this / divisor.
        -
        -
        -
      • -
      • -
        -

        multiply

        -
        Quantity<?> multiply(Quantity<?> multiplicand)
        -
        Returns the product of this Quantity with the one specified. - The result shall be as if this quantity and the given multiplicand were - converted to system unit before - to be multiplied, and the result converted back to the unit of this - quantity or any other compatible unit at implementation choice.
        -
        -
        Parameters:
        -
        multiplicand - the Quantity multiplicand.
        -
        Returns:
        -
        this * multiplicand.
        -
        Throws:
        -
        ClassCastException - if the type of an element in the specified operation is - incompatible with this quantity
        -
        -
        -
      • -
      • -
        -

        multiply

        -
        Quantity<Q> multiply(Number multiplicand)
        -
        Returns the product of this Quantity with the Number value - specified. - The result shall be as if this quantity was converted to - system unit before to be multiplied, - and the result converted back to the unit of this quantity or any - other compatible unit at implementation choice.
        -
        -
        Parameters:
        -
        multiplicand - the Number multiplicand.
        -
        Returns:
        -
        this * multiplicand.
        -
        -
        -
      • -
      • -
        -

        to

        -
        Quantity<Q> to(Unit<Q> unit)
        -
        Returns this Quantity converted into another (compatible) - Unit.
        -
        -
        Parameters:
        -
        unit - the Unit unit in which the returned quantity is stated.
        -
        Returns:
        -
        this quantity or a new quantity equivalent to this quantity stated in the specified unit.
        -
        Throws:
        -
        ArithmeticException - if the result is inexact and the quotient has a non-terminating decimal expansion.
        -
        -
        -
      • -
      • -
        -

        inverse

        - -
        Returns a Quantity that is the multiplicative inverse of this - Quantity, having reciprocal value and reciprocal unit as given by - this.getUnit().inverse().
        -
        -
        Returns:
        -
        reciprocal Quantity
        -
        See Also:
        -
        - -
        -
        -
        -
      • -
      • -
        -

        negate

        - -
        Returns a Quantity whose value is (-this.getValue()).
        -
        -
        Returns:
        -
        -this.
        -
        -
        -
      • -
      • -
        -

        asType

        -
        <T extends Quantity<T>> Quantity<T> asType(Class<T> type) - throws ClassCastException
        -
        Casts this quantity to a parameterized unit of specified nature or throw a - ClassCastException if the dimension of the specified quantity - and this measure unit's dimension do not match. For example: -

        - - Quantity<Length> length = Quantities.getQuantity("2 km").asType(Length.class); - or - Quantity<Speed> C = length.multiply(299792458).divide(second).asType(Speed.class); - -

        -
        -
        Type Parameters:
        -
        T - The type of the quantity.
        -
        Parameters:
        -
        type - the quantity class identifying the nature of the quantity.
        -
        Returns:
        -
        this quantity parameterized with the specified type.
        -
        Throws:
        -
        ClassCastException - if the dimension of this unit is different from the specified - quantity dimension.
        -
        UnsupportedOperationException - if the specified quantity class does not have a SI unit for the - quantity.
        -
        See Also:
        -
        - -
        -
        -
        -
      • -
      • -
        -

        getValue

        - -
        Returns the value of this Quantity.
        -
        -
        Returns:
        -
        a value.
        -
        -
        -
      • -
      • -
        -

        getUnit

        - -
        Returns the unit of this Quantity.
        -
        -
        Returns:
        -
        the unit (shall not be null).
        -
        -
        -
      • -
      • -
        -

        toSystemUnit

        -
        default Quantity<Q> toSystemUnit()
        -
        Convenient method equivalent to to(getUnit().toSystemUnit()).
        -
        -
        Returns:
        -
        this quantity or a new quantity equivalent to this quantity stated in - SI units.
        -
        Throws:
        -
        ArithmeticException - if the result is inexact and the quotient has a non-terminating - decimal expansion.
        -
        -
        -
      • -
      • -
        -

        getScale

        - -
        Returns the Scale of this Quantity, if it's absolute or relative.
        -
        -
        Returns:
        -
        the scale, if it's an absolute or relative quantity.
        -
        Since:
        -
        2.0
        -
        See Also:
        -
        - -
        -
        -
        -
      • -
      • -
        -

        isEquivalentTo

        -
        boolean isEquivalentTo(Quantity<Q> that)
        -
        Compares two instances of Quantity <Q>, performing the conversion of units if necessary.
        -
        -
        Parameters:
        -
        that - the quantity<Q> to be compared with this instance.
        -
        Returns:
        -
        true if that ≡ this.
        -
        Throws:
        -
        NullPointerException - if the quantity is null
        -
        Since:
        -
        2.1
        -
        See Also:
        -
        - -
        -
        -
        -
      • -
      -
      -
    • -
    -
    - -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/UnconvertibleException.html b/docs/site/apidocs/javax/measure/UnconvertibleException.html deleted file mode 100644 index 200ce682..00000000 --- a/docs/site/apidocs/javax/measure/UnconvertibleException.html +++ /dev/null @@ -1,202 +0,0 @@ - - - - -UnconvertibleException (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    -
    Package javax.measure
    -

    Class UnconvertibleException

    -
    -
    Object -
    Throwable -
    Exception -
    RuntimeException -
    MeasurementException -
    UnconvertibleException
    -
    -
    -
    -
    -
    -
    -
    -
    All Implemented Interfaces:
    -
    Serializable
    -
    -
    - -
    Signals that a problem of some sort has occurred due to the impossibility of constructing a converter between two units. For example, the - multiplication of offset units are usually units not convertible to their system unit.
    -
    -
    Version:
    -
    1.0, Aug 8, 2016
    -
    Author:
    -
    Jean-Marie Dautelle, Werner Keil
    -
    See Also:
    -
    - -
    -
    -
    -
    - -
    -
    -
      - -
    • -
      -

      Constructor Details

      -
        -
      • -
        -

        UnconvertibleException

        -
        public UnconvertibleException(String message)
        -
        Constructs a UnconvertibleException with the given message.
        -
        -
        Parameters:
        -
        message - the detail message, or null if none.
        -
        -
        -
      • -
      • -
        -

        UnconvertibleException

        - -
        Constructs a UnconvertibleException with the given cause.
        -
        -
        Parameters:
        -
        cause - the cause of this exception, or null if none.
        -
        -
        -
      • -
      • -
        -

        UnconvertibleException

        -
        public UnconvertibleException(String message, - Throwable cause)
        -
        Constructs a UnconvertibleException with the given message and cause.
        -
        -
        Parameters:
        -
        message - the detail message, or null if none.
        -
        cause - the cause of this exception, or null if none.
        -
        -
        -
      • -
      -
      -
    • -
    -
    - -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/Unit.html b/docs/site/apidocs/javax/measure/Unit.html deleted file mode 100644 index 5f6685d6..00000000 --- a/docs/site/apidocs/javax/measure/Unit.html +++ /dev/null @@ -1,805 +0,0 @@ - - - - -Unit (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    -
    Package javax.measure
    -

    Interface Unit<Q extends Quantity<Q>>

    -
    -
    -
    -
    Type Parameters:
    -
    Q - The type of the quantity measured by this unit.
    -
    -
    -
    public interface Unit<Q extends Quantity<Q>>
    -
    Represents a determinate quantity (as of length, time, heat, or value) adopted as a standard of measurement. - -

    - It is helpful to think of instances of this class as recording the history by which they are created. Thus, for example, the string "g/kg" - (which is a dimensionless unit) would result from invoking the method toString() on a unit that was created by dividing a gram unit by a - kilogram unit. -

    - -

    - This interface supports the multiplication of offsets units. The result is usually a unit not convertible to its system unit. Such units may appear in derivative quantities. For example Celsius per meter is an unit of gradient, which is common in atmospheric - and oceanographic research. -

    - -

    - Units raised at non-integral powers are not supported. For example, LITRE.root(2) raises an ArithmeticException, but - HECTARE.root(2) returns HECTOMETRE (100 metres). -

    - -

    - Unit instances shall be immutable. -

    -
    -
    Since:
    -
    1.0
    -
    Version:
    -
    2.4, November 11, 2020
    -
    Author:
    -
    Jean-Marie Dautelle, Steve Emmerson, Martin Desruisseaux, Werner Keil
    -
    See Also:
    -
    - -
    -
    -
    -
    -
      - -
    • -
      -

      Method Summary

      -
      -
      -
      -
      -
      Modifier and Type
      -
      Method
      -
      Description
      - -
      alternate(String symbol)
      -
      -
      Returns a system unit equivalent to this unscaled standard unit but used in expressions to distinguish between quantities of a different nature - but of the same dimensions.
      -
      -
      <T extends Quantity<T>>
      Unit<T>
      -
      asType(Class<T> type)
      -
      -
      Casts this unit to a parameterized unit of specified nature or throw a ClassCastException if the dimension of the specified quantity and - this unit's dimension do not match.
      -
      - -
      divide(double divisor)
      -
      -
      Returns the result of dividing this unit by an approximate divisor.
      -
      - -
      divide(Number divisor)
      -
      -
      Returns the result of dividing this unit by a divisor.
      -
      -
      Unit<?>
      -
      divide(Unit<?> divisor)
      -
      -
      Returns the quotient of this unit with the one specified.
      -
      -
      Map<? extends Unit<?>,Integer>
      - -
      -
      Returns the base units and their exponent whose product is this unit, or null if this unit is a base unit (not a product of existing - units).
      -
      - - -
      -
      Returns a converter of numeric values from this unit to another unit of same type.
      -
      - - -
      -
      Returns a converter from this unit to the specified unit of type unknown.
      -
      - - -
      -
      Returns the dimension of this unit.
      -
      - - -
      -
      Returns the name (if any) of this unit.
      -
      - - -
      -
      Returns the symbol (if any) of this unit.
      -
      - - -
      -
      Returns the unscaled system unit from which this unit is derived.
      -
      -
      Unit<?>
      - -
      -
      Returns the reciprocal (multiplicative inverse) of this unit.
      -
      -
      boolean
      -
      isCompatible(Unit<?> that)
      -
      -
      Indicates if this unit is compatible with the unit specified.
      -
      -
      boolean
      - -
      -
      Indicates if this unit represents the same quantity than the given unit, ignoring name and symbols.
      -
      - -
      multiply(double multiplier)
      -
      -
      Returns the result of multiplying this unit by the specified factor.
      -
      - -
      multiply(Number multiplier)
      -
      -
      Returns the result of multiplying this unit by the specified factor.
      -
      -
      Unit<?>
      -
      multiply(Unit<?> multiplier)
      -
      -
      Returns the product of this unit with the one specified.
      -
      -
      Unit<?>
      -
      pow(int n)
      -
      -
      Returns an unit raised to the n-th (integer) power of this unit.
      -
      - -
      prefix(Prefix prefix)
      -
      -
      Returns a new unit equal to this unit prefixed by the specified prefix.
      -
      -
      Unit<?>
      -
      root(int n)
      -
      -
      Returns an unit that is the n-th (integer) root of this unit.
      -
      - -
      shift(double offset)
      -
      -
      Returns the result of setting the origin of the scale of measurement to the given value.
      -
      - -
      shift(Number offset)
      -
      -
      Returns the result of setting the origin of the scale of measurement to the given value.
      -
      - - -
      -
      Returns a string representation of this unit.
      -
      - - -
      -
      Returns the unit derived from this unit using the specified converter.
      -
      -
      -
      -
      -
      -
    • -
    -
    -
    -
      - -
    • -
      -

      Method Details

      -
        -
      • -
        -

        getSymbol

        - -
        Returns the symbol (if any) of this unit. This method returns null if this unit has no specific symbol associated with.
        -
        -
        Returns:
        -
        this unit symbol, or null if this unit has not specific symbol associated with (e.g. product of units).
        -
        See Also:
        -
        - -
        -
        -
        -
      • -
      • -
        -

        getName

        - -
        Returns the name (if any) of this unit. This method returns null if this unit has no specific name associated with.
        -
        -
        Returns:
        -
        this unit name, or null if this unit has not specific name associated with (e.g. product of units).
        -
        See Also:
        -
        - -
        -
        -
        -
      • -
      • -
        -

        getDimension

        - -
        Returns the dimension of this unit. Two units u1 and u2 are compatible if and only if - u1.getDimension().equals(u2.getDimension()).
        -
        -
        Returns:
        -
        the dimension of this unit.
        -
        See Also:
        -
        - -
        -
        -
        -
      • -
      • -
        -

        getSystemUnit

        - -
        Returns the unscaled system unit from which this unit is derived. System units are either base units, alternate - units or product of rational powers of system units. - -

        - Because the system unit is unique by quantity type, it can be be used to identify the quantity given the unit. For example: -

        - - static boolean isAngularSpeed(Unit<?> unit) {
        -    return unit.getSystemUnit().equals(RADIAN.divide(SECOND));
        - }
        - assert isAngularSpeed(REVOLUTION.divide(MINUTE)); // Returns true.

        -
        -
        -
        Returns:
        -
        the system unit this unit is derived from, or this if this unit is a system unit.
        -
        -
        -
      • -
      • -
        -

        getBaseUnits

        -
        Map<? extends Unit<?>,Integer> getBaseUnits()
        -
        Returns the base units and their exponent whose product is this unit, or null if this unit is a base unit (not a product of existing - units).
        -
        -
        Returns:
        -
        the base units and their exponent making up this unit.
        -
        -
        -
      • -
      • -
        -

        isCompatible

        -
        boolean isCompatible(Unit<?> that)
        -
        Indicates if this unit is compatible with the unit specified. Units don't need to be equal to be compatible. For example (assuming ONE - is a dimensionless unit):
        - - - RADIAN.equals(ONE) == false
        - RADIAN.isCompatible(ONE) == true
        - RADIAN.isEquivalentTo(ONE) doesn't compile
        -
        -
        -
        Parameters:
        -
        that - the other unit to compare for compatibility.
        -
        Returns:
        -
        this.getDimension().equals(that.getDimension())
        -
        See Also:
        -
        - -
        -
        -
        -
      • -
      • -
        -

        isEquivalentTo

        -
        boolean isEquivalentTo(Unit<Q> that)
        -
        Indicates if this unit represents the same quantity than the given unit, ignoring name and symbols. - Two units are equivalent if the conversion between them is identity. - -

        - Unlike isCompatible(Unit) an equivalence check requires both units to be strictly type-compatible, - because it makes no sense to compare e.g. gram and mm for equivalence. - By contrast, the compatibility check can works across different quantity types. -

        -
        -
        Parameters:
        -
        that - the Unit<Q> to be compared with this instance.
        -
        Returns:
        -
        true if that ≡ this.
        -
        Throws:
        -
        NullPointerException - if the unit is null
        -
        Since:
        -
        2.1
        -
        See Also:
        -
        - -
        -
        -
        -
      • -
      • -
        -

        asType

        -
        <T extends Quantity<T>> Unit<T> asType(Class<T> type) - throws ClassCastException
        -
        Casts this unit to a parameterized unit of specified nature or throw a ClassCastException if the dimension of the specified quantity and - this unit's dimension do not match. For example:
        - - - Unit<Speed> C = METRE.multiply(299792458).divide(SECOND).asType(Speed.class); -
        -
        -
        Type Parameters:
        -
        T - The type of the quantity measured by the unit.
        -
        Parameters:
        -
        type - the quantity class identifying the nature of the unit.
        -
        Returns:
        -
        this unit parameterized with the specified type.
        -
        Throws:
        -
        ClassCastException - if the dimension of this unit is different from the specified quantity dimension.
        -
        -
        -
      • -
      • -
        -

        getConverterTo

        - -
        Returns a converter of numeric values from this unit to another unit of same type. This method performs the same work as - getConverterToAny(Unit) without raising checked exception.
        -
        -
        Parameters:
        -
        that - the unit of same type to which to convert the numeric values.
        -
        Returns:
        -
        the converter from this unit to that unit.
        -
        Throws:
        -
        UnconvertibleException - if a converter cannot be constructed.
        -
        See Also:
        -
        - -
        -
        -
        -
      • -
      • -
        -

        getConverterToAny

        - -
        Returns a converter from this unit to the specified unit of type unknown. This method can be used when the quantity type of the specified unit is - unknown at compile-time or when dimensional analysis allows for conversion between units of different type. - -

        - To convert to a unit having the same parameterized type, getConverterTo(Unit) is preferred (no checked exception raised). -

        -
        -
        Parameters:
        -
        that - the unit to which to convert the numeric values.
        -
        Returns:
        -
        the converter from this unit to that unit.
        -
        Throws:
        -
        IncommensurableException - if this unit is not compatible with that unit.
        -
        UnconvertibleException - if a converter cannot be constructed.
        -
        See Also:
        -
        - -
        -
        -
        -
      • -
      • -
        -

        alternate

        -
        Unit<Q> alternate(String symbol)
        -
        Returns a system unit equivalent to this unscaled standard unit but used in expressions to distinguish between quantities of a different nature - but of the same dimensions. - -

        - Examples of alternate units: -

        - - - Unit<Angle> RADIAN = ONE.alternate("rad").asType(Angle.class);
        - Unit<Force> NEWTON = METRE.multiply(KILOGRAM).divide(SECOND.pow(2)).alternate("N").asType(Force.class);
        - Unit<Pressure> PASCAL = NEWTON.divide(METRE.pow(2)).alternate("Pa").asType(Pressure.class);
        -
        -
        -
        Parameters:
        -
        symbol - the new symbol for the alternate unit.
        -
        Returns:
        -
        the alternate unit.
        -
        Throws:
        -
        IllegalArgumentException - if this unit is not an unscaled standard unit.
        -
        MeasurementException - if the specified symbol is not valid or is already associated to a different unit.
        -
        -
        -
      • -
      • -
        -

        shift

        -
        Unit<Q> shift(Number offset)
        -
        Returns the result of setting the origin of the scale of measurement to the given value. The returned unit is convertible with all units that are - convertible with this unit. For example the following code:
        - - - CELSIUS = KELVIN.shift(273.15); - - - creates a new unit where 0°C (the origin of the new unit) is equals to 273.15 K. Converting from the old unit to the new one is equivalent to - subtracting the offset to the value in the old unit.
        -
        -
        Parameters:
        -
        offset - the offset added (expressed in this unit).
        -
        Returns:
        -
        this unit offset by the specified value.
        -
        Since:
        -
        2.0
        -
        -
        -
      • -
      • -
        -

        shift

        -
        Unit<Q> shift(double offset)
        -
        Returns the result of setting the origin of the scale of measurement to the given value. The returned unit is convertible with all units that are - convertible with this unit. For example the following code:
        - - - CELSIUS = KELVIN.shift(273.15); - - - creates a new unit where 0°C (the origin of the new unit) is equals to 273.15 K. Converting from the old unit to the new one is equivalent to - subtracting the offset to the value in the old unit.
        -
        -
        Parameters:
        -
        offset - the offset added (expressed in this unit).
        -
        Returns:
        -
        this unit offset by the specified value.
        -
        -
        -
      • -
      • -
        -

        multiply

        -
        Unit<Q> multiply(Number multiplier)
        -
        Returns the result of multiplying this unit by the specified factor. If the factor is an integer value, the multiplication is exact - (recommended). For example:
        - - - FOOT = METRE.multiply(3048).divide(10000); // Exact definition.
        - ELECTRON_MASS = KILOGRAM.multiply(9.10938188e-31); // Approximation. -
        -
        -
        Parameters:
        -
        multiplier - the multiplier
        -
        Returns:
        -
        this unit scaled by the specified multiplier.
        -
        Since:
        -
        2.0
        -
        -
        -
      • -
      • -
        -

        multiply

        -
        Unit<Q> multiply(double multiplier)
        -
        Returns the result of multiplying this unit by the specified factor. For example:
        - - - FOOT = METRE.multiply(3048).divide(10000); // Exact definition.
        - ELECTRON_MASS = KILOGRAM.multiply(9.10938188e-31); // Approximation. -
        -
        -
        Parameters:
        -
        multiplier - the multiplier
        -
        Returns:
        -
        this unit scaled by the specified multiplier.
        -
        -
        -
      • -
      • -
        -

        multiply

        -
        Unit<?> multiply(Unit<?> multiplier)
        -
        Returns the product of this unit with the one specified.
        -
        -
        Parameters:
        -
        multiplier - the unit multiplier.
        -
        Returns:
        -
        this * multiplier
        -
        -
        -
      • -
      • -
        -

        inverse

        - -
        Returns the reciprocal (multiplicative inverse) of this unit.
        -
        -
        Returns:
        -
        1 / this
        -
        See Also:
        -
        - -
        -
        -
        -
      • -
      • -
        -

        divide

        -
        Unit<Q> divide(Number divisor)
        -
        Returns the result of dividing this unit by a divisor. If the factor is an integer value, the division is exact. For example:
        - - - GRAM = KILOGRAM.divide(1000); // Exact definition. -
        -
        -
        Parameters:
        -
        divisor - the divisor value.
        -
        Returns:
        -
        this unit divided by the specified divisor.
        -
        Since:
        -
        2.0
        -
        -
        -
      • -
      • -
        -

        divide

        -
        Unit<Q> divide(double divisor)
        -
        Returns the result of dividing this unit by an approximate divisor. For example:
        - - - GRAM = KILOGRAM.divide(1000d); -
        -
        -
        Parameters:
        -
        divisor - the divisor value.
        -
        Returns:
        -
        this unit divided by the specified divisor.
        -
        -
        -
      • -
      • -
        -

        divide

        -
        Unit<?> divide(Unit<?> divisor)
        -
        Returns the quotient of this unit with the one specified.
        -
        -
        Parameters:
        -
        divisor - the unit divisor.
        -
        Returns:
        -
        this / divisor
        -
        -
        -
      • -
      • -
        -

        root

        -
        Unit<?> root(int n)
        -
        Returns an unit that is the n-th (integer) root of this unit. Equivalent to the mathematical expression unit^(1/n).
        -
        -
        Parameters:
        -
        n - an integer giving the root's order as in 'n-th root'
        -
        Returns:
        -
        the n-th root of this unit.
        -
        Throws:
        -
        ArithmeticException - if n == 0 or if this operation would result in an unit with a fractional exponent.
        -
        -
        -
      • -
      • -
        -

        pow

        -
        Unit<?> pow(int n)
        -
        Returns an unit raised to the n-th (integer) power of this unit. Equivalent to the mathematical expression unit^n.
        -
        -
        Parameters:
        -
        n - the exponent.
        -
        Returns:
        -
        the result of raising this unit to the exponent.
        -
        -
        -
      • -
      • -
        -

        transform

        - -
        Returns the unit derived from this unit using the specified converter. The converter does not need to be linear. For example:
        - -
        -     Unit<Dimensionless> DECIBEL = Unit.ONE.transform(
        -         new LogConverter(10).inverse().concatenate(
        -             new RationalConverter(1, 10)));
        - 
        -
        -
        Parameters:
        -
        operation - the converter from the transformed unit to this unit.
        -
        Returns:
        -
        the unit after the specified transformation.
        -
        -
        -
      • -
      • -
        -

        toString

        - -
        Returns a string representation of this unit. The string representation may be the unit symbol, or may be some - representation of product units, multiplication factor and offset if any. - -

        - The string may be localized at implementation choice by the means of a particular device and platform. -

        -
        -
        Overrides:
        -
        toString in class Object
        -
        Returns:
        -
        the string representation of this unit.
        -
        See Also:
        -
        - -
        -
        -
        -
      • -
      • -
        -

        prefix

        -
        Unit<Q> prefix(Prefix prefix)
        -
        Returns a new unit equal to this unit prefixed by the specified prefix.
        -
        -
        Parameters:
        -
        prefix - the prefix to apply on this unit.
        -
        Returns:
        -
        the unit with the given prefix applied.
        -
        Since:
        -
        2.0
        -
        -
        -
      • -
      -
      -
    • -
    -
    - -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/UnitConverter.html b/docs/site/apidocs/javax/measure/UnitConverter.html deleted file mode 100644 index 8fd1f793..00000000 --- a/docs/site/apidocs/javax/measure/UnitConverter.html +++ /dev/null @@ -1,309 +0,0 @@ - - - - -UnitConverter (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    -
    Package javax.measure
    -

    Interface UnitConverter

    -
    -
    -
    -
    public interface UnitConverter
    -
    A converter of numeric values between different units. - -

    - Instances of this class are usually obtained through the Unit.getConverterTo(Unit) method. -

    -
    -
    Since:
    -
    1.0
    -
    Version:
    -
    1.4, May 12, 2019
    -
    Author:
    -
    Jean-Marie Dautelle, Werner Keil, Martin - Desruisseaux, Thodoris Bais, Andi Huber
    -
    See Also:
    -
    - -
    -
    -
    -
    -
      - -
    • -
      -

      Method Summary

      -
      -
      -
      -
      -
      Modifier and Type
      -
      Method
      -
      Description
      - - -
      -
      Concatenates this converter with another converter.
      -
      -
      double
      -
      convert(double value)
      -
      -
      Converts a double value.
      -
      - -
      convert(Number value)
      -
      -
      Converts a Number value.
      -
      -
      List<? extends UnitConverter>
      - -
      -
      - Returns the steps of fundamental converters making up this converter or this if the converter is a fundamental converter.
      -
      - - -
      -
      Returns the inverse of this converter.
      -
      -
      boolean
      - -
      -
      Indicates if this converter is an identity converter.
      -
      -
      boolean
      - -
      -
      Indicates whether this converter represents a (one-dimensional) linear transformation, that is - a linear map (wikipedia) from a one-dimensional - vector space (a scalar) to a one-dimensional vector space.
      -
      -
      -
      -
      -
      -
    • -
    -
    -
    -
      - -
    • -
      -

      Method Details

      -
        -
      • -
        -

        isIdentity

        -
        boolean isIdentity()
        -
        Indicates if this converter is an identity converter. The identity converter returns its input argument (convert(x) == x). -

        - Note: Identity converters are also always 'linear', see isLinear(). -

        -
        -
        Returns:
        -
        true if this converter is an identity converter.
        -
        -
        -
      • -
      • -
        -

        isLinear

        -
        boolean isLinear()
        -
        Indicates whether this converter represents a (one-dimensional) linear transformation, that is - a linear map (wikipedia) from a one-dimensional - vector space (a scalar) to a one-dimensional vector space. Typically from 'R' to 'R', with 'R' the - real numbers. - -

        - Given such a 'linear' converter 'A', let 'u', 'v' and 'r' be arbitrary numbers, then the following - must hold by definition: - -

          -
        • A(u + v) == A(u) + A(v)
        • -
        • A(r * u) == r * A(u)
        • -
        - -

        - Given a second 'linear' converter 'B', commutativity of composition follows by above definition: - -

          -
        • (A o B) (u) == (B o A) (u)
        • -
        - - In other words, two 'linear' converters do have the property that A(B(u)) == B(A(u)), meaning - for 'A' and 'B' the order of their composition does not matter. Expressed as Java code: - -

        -A.concatenate(B).convert(u) == B.concatenate(A).convert(u) -

        - - Note: For composing UnitConverters see also concatenate(UnitConverter).
        -
        -
        Returns:
        -
        true if this converter represents a linear transformation; - false otherwise.
        -
        -
        -
      • -
      • -
        -

        inverse

        - -
        Returns the inverse of this converter. If x is a valid value, then x == inverse().convert(convert(x)) to within the accuracy of - computer arithmetic.
        -
        -
        Returns:
        -
        the inverse of this converter.
        -
        -
        -
      • -
      • -
        -

        convert

        - -
        Converts a Number value.
        -
        -
        Parameters:
        -
        value - the Number value to convert.
        -
        Returns:
        -
        the Number value after conversion.
        -
        -
        -
      • -
      • -
        -

        convert

        -
        double convert(double value)
        -
        Converts a double value.
        -
        -
        Parameters:
        -
        value - the numeric value to convert.
        -
        Returns:
        -
        the double value after conversion.
        -
        -
        -
      • -
      • -
        -

        concatenate

        - -
        Concatenates this converter with another converter. The resulting converter is equivalent to first converting by the specified converter (right - converter), and then converting by this converter (left converter).
        -
        -
        Parameters:
        -
        converter - the other converter to concatenate with this converter.
        -
        Returns:
        -
        the concatenation of this converter with the other converter.
        -
        -
        -
      • -
      • -
        -

        getConversionSteps

        - -

        - Returns the steps of fundamental converters making up this converter or this if the converter is a fundamental converter. -

        -

        - For example, converter1.getConversionSteps() returns converter1 while - converter1.concatenate(converter2).getConversionSteps() returns converter1, converter2. -

        -
        -
        Returns:
        -
        the list of fundamental converters which concatenated make up this converter.
        -
        -
        -
      • -
      -
      -
    • -
    -
    - -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/class-use/BinaryPrefix.html b/docs/site/apidocs/javax/measure/class-use/BinaryPrefix.html deleted file mode 100644 index 9ec4732f..00000000 --- a/docs/site/apidocs/javax/measure/class-use/BinaryPrefix.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - -Uses of Enum javax.measure.BinaryPrefix (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Enum
    javax.measure.BinaryPrefix

    -
    -
    Packages that use BinaryPrefix
    -
    -
    Package
    -
    Description
    - -
    -
    Specifies Java packages for the programmatic, type safe handling - of quantities and their expression as values of units.
    -
    -
    -
    - -
    -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/class-use/Dimension.html b/docs/site/apidocs/javax/measure/class-use/Dimension.html deleted file mode 100644 index c12830a0..00000000 --- a/docs/site/apidocs/javax/measure/class-use/Dimension.html +++ /dev/null @@ -1,160 +0,0 @@ - - - - -Uses of Interface javax.measure.Dimension (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Interface
    javax.measure.Dimension

    -
    -
    Packages that use Dimension
    -
    -
    Package
    -
    Description
    - -
    -
    Specifies Java packages for the programmatic, type safe handling - of quantities and their expression as values of units.
    -
    - -
    -
    [OPTIONAL] The Units of Measurement SPI.
    -
    -
    -
    - -
    -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/class-use/IncommensurableException.html b/docs/site/apidocs/javax/measure/class-use/IncommensurableException.html deleted file mode 100644 index 462e9ef8..00000000 --- a/docs/site/apidocs/javax/measure/class-use/IncommensurableException.html +++ /dev/null @@ -1,92 +0,0 @@ - - - - -Uses of Class javax.measure.IncommensurableException (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Class
    javax.measure.IncommensurableException

    -
    -
    Packages that use IncommensurableException
    -
    -
    Package
    -
    Description
    - -
    -
    Specifies Java packages for the programmatic, type safe handling - of quantities and their expression as values of units.
    -
    -
    -
    - -
    -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/class-use/MeasurementError.html b/docs/site/apidocs/javax/measure/class-use/MeasurementError.html deleted file mode 100644 index ba35857d..00000000 --- a/docs/site/apidocs/javax/measure/class-use/MeasurementError.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Class javax.measure.MeasurementError (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Class
    javax.measure.MeasurementError

    -
    -No usage of javax.measure.MeasurementError
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/class-use/MeasurementException.html b/docs/site/apidocs/javax/measure/class-use/MeasurementException.html deleted file mode 100644 index 4918dfed..00000000 --- a/docs/site/apidocs/javax/measure/class-use/MeasurementException.html +++ /dev/null @@ -1,112 +0,0 @@ - - - - -Uses of Class javax.measure.MeasurementException (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Class
    javax.measure.MeasurementException

    -
    -
    Packages that use MeasurementException
    -
    -
    Package
    -
    Description
    - -
    -
    Specifies Java packages for the programmatic, type safe handling - of quantities and their expression as values of units.
    -
    - -
    -
    [OPTIONAL] Provides Formatting and Parsing functionality for units, quantities, dimensions or their textual representation.
    -
    -
    -
    - -
    -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/class-use/MetricPrefix.html b/docs/site/apidocs/javax/measure/class-use/MetricPrefix.html deleted file mode 100644 index f3d41ef2..00000000 --- a/docs/site/apidocs/javax/measure/class-use/MetricPrefix.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - -Uses of Enum javax.measure.MetricPrefix (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Enum
    javax.measure.MetricPrefix

    -
    -
    Packages that use MetricPrefix
    -
    -
    Package
    -
    Description
    - -
    -
    Specifies Java packages for the programmatic, type safe handling - of quantities and their expression as values of units.
    -
    -
    -
    - -
    -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/class-use/Prefix.html b/docs/site/apidocs/javax/measure/class-use/Prefix.html deleted file mode 100644 index eea69dcc..00000000 --- a/docs/site/apidocs/javax/measure/class-use/Prefix.html +++ /dev/null @@ -1,129 +0,0 @@ - - - - -Uses of Interface javax.measure.Prefix (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Interface
    javax.measure.Prefix

    -
    -
    Packages that use Prefix
    -
    -
    Package
    -
    Description
    - -
    -
    Specifies Java packages for the programmatic, type safe handling - of quantities and their expression as values of units.
    -
    - -
    -
    [OPTIONAL] The Units of Measurement SPI.
    -
    -
    -
    -
      -
    • -
      -

      Uses of Prefix in javax.measure

      -
      Classes in javax.measure that implement Prefix
      -
      -
      Modifier and Type
      -
      Class
      -
      Description
      -
      enum 
      - -
      -
      Provides support for common binary prefixes to be used by units.
      -
      -
      enum 
      - -
      -
      Provides support for the 24 prefixes used in the metric system (decimal multiples and submultiples of units).
      -
      -
      -
      Methods in javax.measure with parameters of type Prefix
      -
      -
      Modifier and Type
      -
      Method
      -
      Description
      - -
      Unit.prefix(Prefix prefix)
      -
      -
      Returns a new unit equal to this unit prefixed by the specified prefix.
      -
      -
      -
      -
    • -
    • -
      -

      Uses of Prefix in javax.measure.spi

      -
      Methods in javax.measure.spi with type parameters of type Prefix
      -
      -
      Modifier and Type
      -
      Method
      -
      Description
      -
      default <P extends Prefix>
      Set<P>
      -
      SystemOfUnitsService.getPrefixes(Class<P> prefixType)
      -
      -
      Returns a Set containing the values of a particular Prefix - type.
      -
      -
      -
      -
    • -
    -
    -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/class-use/Quantity.Scale.html b/docs/site/apidocs/javax/measure/class-use/Quantity.Scale.html deleted file mode 100644 index ed1065c1..00000000 --- a/docs/site/apidocs/javax/measure/class-use/Quantity.Scale.html +++ /dev/null @@ -1,125 +0,0 @@ - - - - -Uses of Enum javax.measure.Quantity.Scale (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Enum
    javax.measure.Quantity.Scale

    -
    -
    Packages that use Quantity.Scale
    -
    -
    Package
    -
    Description
    - -
    -
    Specifies Java packages for the programmatic, type safe handling - of quantities and their expression as values of units.
    -
    - -
    -
    [OPTIONAL] The Units of Measurement SPI.
    -
    -
    -
    - -
    -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/class-use/Quantity.html b/docs/site/apidocs/javax/measure/class-use/Quantity.html deleted file mode 100644 index 0e160069..00000000 --- a/docs/site/apidocs/javax/measure/class-use/Quantity.html +++ /dev/null @@ -1,662 +0,0 @@ - - - - -Uses of Interface javax.measure.Quantity (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Interface
    javax.measure.Quantity

    -
    -
    Packages that use Quantity
    -
    -
    Package
    -
    Description
    - -
    -
    Specifies Java packages for the programmatic, type safe handling - of quantities and their expression as values of units.
    -
    - -
    -
    [OPTIONAL] Provides Formatting and Parsing functionality for units, quantities, dimensions or their textual representation.
    -
    - -
    -
    [OPTIONAL] Provides quantitative properties or attributes of thing such as - mass, time, distance, heat, and angular separation.
    -
    - -
    -
    [OPTIONAL] The Units of Measurement SPI.
    -
    -
    -
    -
      -
    • -
      -

      Uses of Quantity in javax.measure

      -
      Classes in javax.measure with type parameters of type Quantity
      -
      -
      Modifier and Type
      -
      Interface
      -
      Description
      -
      interface 
      -
      Quantity<Q extends Quantity<Q>>
      -
      -
      Represents a quantitative property of a phenomenon, body, or substance, that - can be quantified by measurement.
      -
      -
      interface 
      -
      Unit<Q extends Quantity<Q>>
      -
      -
      Represents a determinate quantity (as of length, time, heat, or value) adopted as a standard of measurement.
      -
      -
      -
      Methods in javax.measure with type parameters of type Quantity
      -
      -
      Modifier and Type
      -
      Method
      -
      Description
      -
      <T extends Quantity<T>>
      Quantity<T>
      -
      Quantity.asType(Class<T> type)
      -
      -
      Casts this quantity to a parameterized unit of specified nature or throw a - ClassCastException if the dimension of the specified quantity - and this measure unit's dimension do not match.
      -
      -
      <T extends Quantity<T>>
      Unit<T>
      -
      Unit.asType(Class<T> type)
      -
      -
      Casts this unit to a parameterized unit of specified nature or throw a ClassCastException if the dimension of the specified quantity and - this unit's dimension do not match.
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.ATTO(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10-18
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.CENTI(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10-2
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.DECA(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 101
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.DECI(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10-1
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.DEKA(Unit<Q> unit)
      -
      -
      US alias for DECA.
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.EXA(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 1018
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      BinaryPrefix.EXBI(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10246 (binary prefix).
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.FEMTO(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10-15
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      BinaryPrefix.GIBI(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10243 (binary prefix).
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.GIGA(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 109
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.HECTO(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 102
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      BinaryPrefix.KIBI(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 1024 (binary prefix).
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.KILO(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 103
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      BinaryPrefix.MEBI(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10242 (binary prefix).
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.MEGA(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 106
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.MICRO(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10-6
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.MILLI(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10-3
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.NANO(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10-9
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      BinaryPrefix.PEBI(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10245 (binary prefix).
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.PETA(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 1015
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.PICO(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10-12
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.QUECTO(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10-30
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.QUETTA(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 1030
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.RONNA(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 1027
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.RONTO(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10-27
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      BinaryPrefix.TEBI(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10244 (binary prefix).
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.TERA(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 1012
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      BinaryPrefix.YOBI(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10248 (binary prefix).
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.YOCTO(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10-24
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.YOTTA(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 1024
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      BinaryPrefix.ZEBI(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10247 (binary prefix).
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.ZEPTO(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10-21
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.ZETTA(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 1021
      -
      -
      -
      Methods in javax.measure that return Quantity
      -
      -
      Modifier and Type
      -
      Method
      -
      Description
      - -
      Quantity.add(Quantity<Q> addend)
      -
      -
      Returns the sum of this Quantity with the one specified.
      -
      -
      <T extends Quantity<T>>
      Quantity<T>
      -
      Quantity.asType(Class<T> type)
      -
      -
      Casts this quantity to a parameterized unit of specified nature or throw a - ClassCastException if the dimension of the specified quantity - and this measure unit's dimension do not match.
      -
      - -
      Quantity.divide(Number divisor)
      -
      -
      Returns the quotient of this Quantity divided by the Number - specified.
      -
      - -
      Quantity.divide(Quantity<?> divisor)
      -
      -
      Returns the quotient of this Quantity divided by the Quantity - specified.
      -
      - -
      Quantity.inverse()
      -
      -
      Returns a Quantity that is the multiplicative inverse of this - Quantity, having reciprocal value and reciprocal unit as given by - this.getUnit().inverse().
      -
      - -
      Quantity.multiply(Number multiplicand)
      -
      -
      Returns the product of this Quantity with the Number value - specified.
      -
      - -
      Quantity.multiply(Quantity<?> multiplicand)
      -
      -
      Returns the product of this Quantity with the one specified.
      -
      - -
      Quantity.negate()
      -
      -
      Returns a Quantity whose value is (-this.getValue()).
      -
      - -
      Quantity.subtract(Quantity<Q> subtrahend)
      -
      -
      Returns the difference between this Quantity and the one specified.
      -
      - -
      Quantity.to(Unit<Q> unit)
      -
      -
      Returns this Quantity converted into another (compatible) - Unit.
      -
      -
      default Quantity<Q>
      -
      Quantity.toSystemUnit()
      -
      -
      Convenient method equivalent to to(getUnit().toSystemUnit()).
      -
      -
      -
      Methods in javax.measure with parameters of type Quantity
      -
      -
      Modifier and Type
      -
      Method
      -
      Description
      - -
      Quantity.add(Quantity<Q> addend)
      -
      -
      Returns the sum of this Quantity with the one specified.
      -
      - -
      Quantity.divide(Quantity<?> divisor)
      -
      -
      Returns the quotient of this Quantity divided by the Quantity - specified.
      -
      -
      boolean
      -
      Quantity.isEquivalentTo(Quantity<Q> that)
      -
      -
      Compares two instances of Quantity <Q>, performing the conversion of units if necessary.
      -
      - -
      Quantity.multiply(Quantity<?> multiplicand)
      -
      -
      Returns the product of this Quantity with the one specified.
      -
      - -
      Quantity.subtract(Quantity<Q> subtrahend)
      -
      -
      Returns the difference between this Quantity and the one specified.
      -
      -
      -
      -
    • -
    • -
      -

      Uses of Quantity in javax.measure.format

      -
      Methods in javax.measure.format that return Quantity
      -
      -
      Modifier and Type
      -
      Method
      -
      Description
      - -
      QuantityFormat.parse(CharSequence csq)
      -
      -
      Parses the specified CharSequence to produce a Quantity.
      -
      - -
      QuantityFormat.parse(CharSequence csq, - ParsePosition pos)
      -
      -
      Parses a portion of the specified CharSequence from the specified position to produce a Quantity.
      -
      -
      -
      Methods in javax.measure.format with parameters of type Quantity
      -
      -
      Modifier and Type
      -
      Method
      -
      Description
      - -
      QuantityFormat.format(Quantity<?> quantity)
      -
      -
      Formats the specified Quantity.
      -
      - -
      QuantityFormat.format(Quantity<?> quantity, - Appendable destination)
      -
      -
      Formats the specified quantity into an Appendable.
      -
      -
      -
      -
    • -
    • -
      -

      Uses of Quantity in javax.measure.quantity

      -
      Subinterfaces of Quantity in javax.measure.quantity
      -
      -
      Modifier and Type
      -
      Interface
      -
      Description
      -
      interface 
      - -
      -
      Rate of change of velocity with respect to time.
      -
      -
      interface 
      - -
      -
      Number of elementary entities (molecules, for example) of a substance.
      -
      -
      interface 
      - -
      -
      Figure formed by two lines diverging from a common point.
      -
      -
      interface 
      - -
      -
      Extent of a planar region or of the surface of a solid measured in square units.
      -
      -
      interface 
      - -
      -
      Catalytic activity.
      -
      -
      interface 
      - -
      -
      Dimensionless quantity.
      -
      -
      interface 
      - -
      -
      Electric capacitance.
      -
      -
      interface 
      - -
      -
      Electric charge.
      -
      -
      interface 
      - -
      -
      Electric conductance.
      -
      -
      interface 
      - -
      -
      Amount of electric charge flowing past a specified circuit point per unit time.
      -
      -
      interface 
      - -
      -
      Electric inductance.
      -
      -
      interface 
      - -
      -
      Electric potential or electromotive force.
      -
      -
      interface 
      - -
      -
      Electric resistance.
      -
      -
      interface 
      - -
      -
      Capacity of a physical system to do work.
      -
      -
      interface 
      - -
      -
      Quantity that tends to produce an acceleration of a body in the direction of its application.
      -
      -
      interface 
      - -
      -
      Number of times a specified phenomenon occurs within a specified interval.
      -
      -
      interface 
      - -
      -
      Illuminance.
      -
      -
      interface 
      - -
      -
      Extent of something along its greatest dimension or the extent of space between two objects or places.
      -
      -
      interface 
      - -
      -
      Luminous flux.
      -
      -
      interface 
      - -
      -
      Luminous flux density per solid angle as measured in a given direction relative to the emitting source.
      -
      -
      interface 
      - -
      -
      Magnetic flux.
      -
      -
      interface 
      - -
      -
      Magnetic flux density.
      -
      -
      interface 
      - -
      -
      Measure of the quantity of matter that a body or an object contains.
      -
      -
      interface 
      - -
      -
      Rate at which work is done.
      -
      -
      interface 
      - -
      -
      Force applied uniformly over a surface.
      -
      -
      interface 
      - -
      -
      Amount of energy deposited per unit of mass.
      -
      -
      interface 
      - -
      -
      Effective (or "equivalent") dose of radiation received by a human or some other living organism.
      -
      -
      interface 
      - -
      -
      Radioactive activity.
      -
      -
      interface 
      - -
      -
      Angle formed by three or more planes intersecting at a common point.
      -
      -
      interface 
      - -
      -
      Distance traveled divided by the time of travel.
      -
      -
      interface 
      - -
      -
      Degree of hotness or coldness of a body or an environment.
      -
      -
      interface 
      - -
      -
      Period of existence or persistence.
      -
      -
      interface 
      - -
      -
      Amount of space occupied by a three-dimensional object or region of space.
      -
      -
      -
      -
    • -
    • -
      -

      Uses of Quantity in javax.measure.spi

      -
      Classes in javax.measure.spi with type parameters of type Quantity
      -
      -
      Modifier and Type
      -
      Interface
      -
      Description
      -
      interface 
      - -
      -
      Represents a factory that accepts Number and Unit arguments to create Quantity results.
      -
      -
      -
      Methods in javax.measure.spi with type parameters of type Quantity
      -
      -
      Modifier and Type
      -
      Method
      -
      Description
      -
      abstract <Q extends Quantity<Q>>
      QuantityFactory<Q>
      -
      ServiceProvider.getQuantityFactory(Class<Q> quantity)
      -
      -
      Returns a factory for the given Quantity type.
      -
      -
      <Q extends Quantity<Q>>
      Unit<Q>
      -
      SystemOfUnits.getUnit(Class<Q> quantityType)
      -
      -
      Returns the default unit for the specified quantity or null if none is defined for the given quantity in this unit system.
      -
      -
      -
      Methods in javax.measure.spi that return Quantity
      -
      -
      Modifier and Type
      -
      Method
      -
      Description
      - -
      QuantityFactory.create(Number value, - Unit<Q> unit)
      -
      -
      Returns the quantity for the specified number stated in the specified unit.
      -
      - -
      QuantityFactory.create(Number value, - Unit<Q> unit, - Quantity.Scale scale)
      -
      -
      Returns the quantity for the specified number stated in the specified unit and scale.
      -
      -
      -
      -
    • -
    -
    -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/class-use/UnconvertibleException.html b/docs/site/apidocs/javax/measure/class-use/UnconvertibleException.html deleted file mode 100644 index ae07da60..00000000 --- a/docs/site/apidocs/javax/measure/class-use/UnconvertibleException.html +++ /dev/null @@ -1,97 +0,0 @@ - - - - -Uses of Class javax.measure.UnconvertibleException (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Class
    javax.measure.UnconvertibleException

    -
    -
    Packages that use UnconvertibleException
    -
    -
    Package
    -
    Description
    - -
    -
    Specifies Java packages for the programmatic, type safe handling - of quantities and their expression as values of units.
    -
    -
    -
    - -
    -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/class-use/Unit.html b/docs/site/apidocs/javax/measure/class-use/Unit.html deleted file mode 100644 index 74bca831..00000000 --- a/docs/site/apidocs/javax/measure/class-use/Unit.html +++ /dev/null @@ -1,672 +0,0 @@ - - - - -Uses of Interface javax.measure.Unit (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Interface
    javax.measure.Unit

    -
    -
    Packages that use Unit
    -
    -
    Package
    -
    Description
    - -
    -
    Specifies Java packages for the programmatic, type safe handling - of quantities and their expression as values of units.
    -
    - -
    -
    [OPTIONAL] Provides Formatting and Parsing functionality for units, quantities, dimensions or their textual representation.
    -
    - -
    -
    [OPTIONAL] The Units of Measurement SPI.
    -
    -
    -
    -
      -
    • -
      -

      Uses of Unit in javax.measure

      -
      Methods in javax.measure that return Unit
      -
      -
      Modifier and Type
      -
      Method
      -
      Description
      - -
      Unit.alternate(String symbol)
      -
      -
      Returns a system unit equivalent to this unscaled standard unit but used in expressions to distinguish between quantities of a different nature - but of the same dimensions.
      -
      -
      <T extends Quantity<T>>
      Unit<T>
      -
      Unit.asType(Class<T> type)
      -
      -
      Casts this unit to a parameterized unit of specified nature or throw a ClassCastException if the dimension of the specified quantity and - this unit's dimension do not match.
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.ATTO(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10-18
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.CENTI(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10-2
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.DECA(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 101
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.DECI(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10-1
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.DEKA(Unit<Q> unit)
      -
      -
      US alias for DECA.
      -
      - -
      Unit.divide(double divisor)
      -
      -
      Returns the result of dividing this unit by an approximate divisor.
      -
      - -
      Unit.divide(Number divisor)
      -
      -
      Returns the result of dividing this unit by a divisor.
      -
      -
      Unit<?>
      -
      Unit.divide(Unit<?> divisor)
      -
      -
      Returns the quotient of this unit with the one specified.
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.EXA(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 1018
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      BinaryPrefix.EXBI(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10246 (binary prefix).
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.FEMTO(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10-15
      -
      - - -
      -
      Returns the unscaled system unit from which this unit is derived.
      -
      - -
      Quantity.getUnit()
      -
      -
      Returns the unit of this Quantity.
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      BinaryPrefix.GIBI(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10243 (binary prefix).
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.GIGA(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 109
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.HECTO(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 102
      -
      -
      Unit<?>
      -
      Unit.inverse()
      -
      -
      Returns the reciprocal (multiplicative inverse) of this unit.
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      BinaryPrefix.KIBI(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 1024 (binary prefix).
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.KILO(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 103
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      BinaryPrefix.MEBI(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10242 (binary prefix).
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.MEGA(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 106
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.MICRO(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10-6
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.MILLI(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10-3
      -
      - -
      Unit.multiply(double multiplier)
      -
      -
      Returns the result of multiplying this unit by the specified factor.
      -
      - -
      Unit.multiply(Number multiplier)
      -
      -
      Returns the result of multiplying this unit by the specified factor.
      -
      -
      Unit<?>
      -
      Unit.multiply(Unit<?> multiplier)
      -
      -
      Returns the product of this unit with the one specified.
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.NANO(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10-9
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      BinaryPrefix.PEBI(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10245 (binary prefix).
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.PETA(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 1015
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.PICO(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10-12
      -
      -
      Unit<?>
      -
      Unit.pow(int n)
      -
      -
      Returns an unit raised to the n-th (integer) power of this unit.
      -
      - -
      Unit.prefix(Prefix prefix)
      -
      -
      Returns a new unit equal to this unit prefixed by the specified prefix.
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.QUECTO(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10-30
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.QUETTA(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 1030
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.RONNA(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 1027
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.RONTO(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10-27
      -
      -
      Unit<?>
      -
      Unit.root(int n)
      -
      -
      Returns an unit that is the n-th (integer) root of this unit.
      -
      - -
      Unit.shift(double offset)
      -
      -
      Returns the result of setting the origin of the scale of measurement to the given value.
      -
      - -
      Unit.shift(Number offset)
      -
      -
      Returns the result of setting the origin of the scale of measurement to the given value.
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      BinaryPrefix.TEBI(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10244 (binary prefix).
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.TERA(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 1012
      -
      - -
      Unit.transform(UnitConverter operation)
      -
      -
      Returns the unit derived from this unit using the specified converter.
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      BinaryPrefix.YOBI(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10248 (binary prefix).
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.YOCTO(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10-24
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.YOTTA(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 1024
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      BinaryPrefix.ZEBI(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10247 (binary prefix).
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.ZEPTO(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10-21
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.ZETTA(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 1021
      -
      -
      -
      Methods in javax.measure that return types with arguments of type Unit
      -
      -
      Modifier and Type
      -
      Method
      -
      Description
      -
      Map<? extends Unit<?>,Integer>
      - -
      -
      Returns the base units and their exponent whose product is this unit, or null if this unit is a base unit (not a product of existing - units).
      -
      -
      -
      Methods in javax.measure with parameters of type Unit
      -
      -
      Modifier and Type
      -
      Method
      -
      Description
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.ATTO(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10-18
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.CENTI(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10-2
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.DECA(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 101
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.DECI(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10-1
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.DEKA(Unit<Q> unit)
      -
      -
      US alias for DECA.
      -
      -
      Unit<?>
      -
      Unit.divide(Unit<?> divisor)
      -
      -
      Returns the quotient of this unit with the one specified.
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.EXA(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 1018
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      BinaryPrefix.EXBI(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10246 (binary prefix).
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.FEMTO(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10-15
      -
      - -
      Unit.getConverterTo(Unit<Q> that)
      -
      -
      Returns a converter of numeric values from this unit to another unit of same type.
      -
      - -
      Unit.getConverterToAny(Unit<?> that)
      -
      -
      Returns a converter from this unit to the specified unit of type unknown.
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      BinaryPrefix.GIBI(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10243 (binary prefix).
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.GIGA(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 109
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.HECTO(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 102
      -
      -
      boolean
      -
      Unit.isCompatible(Unit<?> that)
      -
      -
      Indicates if this unit is compatible with the unit specified.
      -
      -
      boolean
      -
      Unit.isEquivalentTo(Unit<Q> that)
      -
      -
      Indicates if this unit represents the same quantity than the given unit, ignoring name and symbols.
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      BinaryPrefix.KIBI(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 1024 (binary prefix).
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.KILO(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 103
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      BinaryPrefix.MEBI(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10242 (binary prefix).
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.MEGA(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 106
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.MICRO(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10-6
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.MILLI(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10-3
      -
      -
      Unit<?>
      -
      Unit.multiply(Unit<?> multiplier)
      -
      -
      Returns the product of this unit with the one specified.
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.NANO(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10-9
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      BinaryPrefix.PEBI(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10245 (binary prefix).
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.PETA(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 1015
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.PICO(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10-12
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.QUECTO(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10-30
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.QUETTA(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 1030
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.RONNA(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 1027
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.RONTO(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10-27
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      BinaryPrefix.TEBI(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10244 (binary prefix).
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.TERA(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 1012
      -
      - -
      Quantity.to(Unit<Q> unit)
      -
      -
      Returns this Quantity converted into another (compatible) - Unit.
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      BinaryPrefix.YOBI(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10248 (binary prefix).
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.YOCTO(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10-24
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.YOTTA(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 1024
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      BinaryPrefix.ZEBI(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10247 (binary prefix).
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.ZEPTO(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 10-21
      -
      -
      static <Q extends Quantity<Q>>
      Unit<Q>
      -
      MetricPrefix.ZETTA(Unit<Q> unit)
      -
      -
      Returns the specified unit multiplied by the factor 1021
      -
      -
      -
      -
    • -
    • -
      -

      Uses of Unit in javax.measure.format

      -
      Methods in javax.measure.format that return Unit
      -
      -
      Modifier and Type
      -
      Method
      -
      Description
      -
      Unit<?>
      -
      UnitFormat.parse(CharSequence csq)
      -
      -
      Parses the text into an instance of Unit.
      -
      -
      Unit<?>
      -
      UnitFormat.parse(CharSequence csq, - ParsePosition pos)
      -
      -
      Parses a portion of the specified CharSequence from the specified position to produce a Unit.
      -
      -
      -
      Methods in javax.measure.format with parameters of type Unit
      -
      -
      Modifier and Type
      -
      Method
      -
      Description
      - -
      UnitFormat.format(Unit<?> unit)
      -
      -
      Formats the specified Unit.
      -
      - -
      UnitFormat.format(Unit<?> unit, - Appendable appendable)
      -
      -
      Formats the specified Unit.
      -
      -
      void
      -
      UnitFormat.label(Unit<?> unit, - String label)
      -
      -
      Attaches a system-wide label to the specified Unit.
      -
      -
      -
      -
    • -
    • -
      -

      Uses of Unit in javax.measure.spi

      -
      Methods in javax.measure.spi that return Unit
      -
      -
      Modifier and Type
      -
      Method
      -
      Description
      - -
      QuantityFactory.getSystemUnit()
      -
      -
      Returns the system unit for quantities produced by this factory or null if unknown.
      -
      -
      <Q extends Quantity<Q>>
      Unit<Q>
      -
      SystemOfUnits.getUnit(Class<Q> quantityType)
      -
      -
      Returns the default unit for the specified quantity or null if none is defined for the given quantity in this unit system.
      -
      -
      Unit<?>
      -
      SystemOfUnits.getUnit(String string)
      -
      -
      Returns a unit with the given string representation or null if none is found in this unit system.
      -
      -
      -
      Methods in javax.measure.spi that return types with arguments of type Unit
      -
      -
      Modifier and Type
      -
      Method
      -
      Description
      -
      Set<? extends Unit<?>>
      -
      SystemOfUnits.getUnits()
      -
      -
      Returns a read only view over the units explicitly defined by this system.
      -
      -
      Set<? extends Unit<?>>
      -
      SystemOfUnits.getUnits(Dimension dimension)
      -
      -
      Returns the units defined in this system having the specified dimension (convenience method).
      -
      -
      -
      Methods in javax.measure.spi with parameters of type Unit
      -
      -
      Modifier and Type
      -
      Method
      -
      Description
      - -
      QuantityFactory.create(Number value, - Unit<Q> unit)
      -
      -
      Returns the quantity for the specified number stated in the specified unit.
      -
      - -
      QuantityFactory.create(Number value, - Unit<Q> unit, - Quantity.Scale scale)
      -
      -
      Returns the quantity for the specified number stated in the specified unit and scale.
      -
      -
      -
      -
    • -
    -
    -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/class-use/UnitConverter.html b/docs/site/apidocs/javax/measure/class-use/UnitConverter.html deleted file mode 100644 index 68972095..00000000 --- a/docs/site/apidocs/javax/measure/class-use/UnitConverter.html +++ /dev/null @@ -1,135 +0,0 @@ - - - - -Uses of Interface javax.measure.UnitConverter (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Interface
    javax.measure.UnitConverter

    -
    -
    Packages that use UnitConverter
    -
    -
    Package
    -
    Description
    - -
    -
    Specifies Java packages for the programmatic, type safe handling - of quantities and their expression as values of units.
    -
    -
    -
    - -
    -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/format/MeasurementParseException.html b/docs/site/apidocs/javax/measure/format/MeasurementParseException.html deleted file mode 100644 index e882b6ad..00000000 --- a/docs/site/apidocs/javax/measure/format/MeasurementParseException.html +++ /dev/null @@ -1,281 +0,0 @@ - - - - -MeasurementParseException (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class MeasurementParseException

    -
    -
    Object -
    Throwable -
    Exception -
    RuntimeException -
    MeasurementException -
    MeasurementParseException
    -
    -
    -
    -
    -
    -
    -
    -
    All Implemented Interfaces:
    -
    Serializable
    -
    -
    - -
    Signals that an error has been reached unexpectedly while parsing.
    -
    -
    Since:
    -
    2.0
    -
    Version:
    -
    1.1, March 27, 2018
    -
    Author:
    -
    Werner Keil
    -
    See Also:
    -
    - -
    -
    -
    -
    - -
    -
    -
      - -
    • -
      -

      Constructor Details

      -
        -
      • -
        -

        MeasurementParseException

        -
        public MeasurementParseException(String message, - CharSequence parsedData, - int position)
        -
        Constructs a MeasurementParseException with the specified detail message, parsed text and index. A detail message is a String that describes - this particular exception.
        -
        -
        Parameters:
        -
        message - the detail message
        -
        parsedData - the parsed text, should not be null
        -
        position - the position where the error was found while parsing.
        -
        -
        -
      • -
      • -
        -

        MeasurementParseException

        -
        public MeasurementParseException(CharSequence parsedData, - int position)
        -
        Constructs a MeasurementParseException with the parsed text and offset. A detail message is a String that describes this particular exception.
        -
        -
        Parameters:
        -
        parsedData - the parsed text, should not be null
        -
        position - the position where the error is found while parsing.
        -
        -
        -
      • -
      • -
        -

        MeasurementParseException

        - -
        Constructs a MeasurementParseException with the specified cause.
        -
        -
        Parameters:
        -
        cause - the root cause
        -
        -
        -
      • -
      • -
        -

        MeasurementParseException

        - -
        Constructs a MeasurementParseException with the specified detail message.
        -
        -
        Parameters:
        -
        message - the detail message
        -
        -
        -
      • -
      -
      -
    • - -
    • -
      -

      Method Details

      -
        -
      • -
        -

        getPosition

        -
        public int getPosition()
        -
        Returns the position where the error was found.
        -
        -
        Returns:
        -
        the position of the error
        -
        -
        -
      • -
      • -
        -

        getParsedString

        - -
        Returns the string that was being parsed.
        -
        -
        Returns:
        -
        the parsed string, or null, if null was passed as input.
        -
        -
        -
      • -
      -
      -
    • -
    -
    - -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/format/QuantityFormat.html b/docs/site/apidocs/javax/measure/format/QuantityFormat.html deleted file mode 100644 index 695bd104..00000000 --- a/docs/site/apidocs/javax/measure/format/QuantityFormat.html +++ /dev/null @@ -1,256 +0,0 @@ - - - - -QuantityFormat (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Interface QuantityFormat

    -
    -
    -
    -
    public interface QuantityFormat
    -
    Formats instances of Quantity. - -
    -
    Synchronization
    -
    - Instances of this class are not required to be thread-safe. It is recommended to use separate format instances for each thread. If multiple threads - access a format concurrently, it must be synchronized externally.
    -
    -
    Since:
    -
    2.0
    -
    Version:
    -
    1.1, 20 May, 2023
    -
    Author:
    -
    Werner Keil, Thodoris Bais
    -
    See Also:
    -
    - -
    -
    -
    -
    - -
    -
    -
      - -
    • -
      -

      Method Details

      -
        -
      • -
        -

        format

        -
        Appendable format(Quantity<?> quantity, - Appendable destination) - throws IOException
        -
        Formats the specified quantity into an Appendable.
        -
        -
        Parameters:
        -
        quantity - the quantity to format.
        -
        destination - the appendable destination.
        -
        Returns:
        -
        the specified Appendable.
        -
        Throws:
        -
        IOException - if an I/O exception occurs.
        -
        -
        -
      • -
      • -
        -

        format

        -
        String format(Quantity<?> quantity)
        -
        Formats the specified Quantity.
        -
        -
        Parameters:
        -
        quantity - the Quantity to format, not null
        -
        Returns:
        -
        the string representation using the settings of this QuantityFormat.
        -
        -
        -
      • -
      • -
        -

        parse

        - -
        Parses a portion of the specified CharSequence from the specified position to produce a Quantity. - If parsing succeeds, then the index of the pos argument is updated to the index after the last character used.
        -
        -
        Parameters:
        -
        csq - the CharSequence to parse.
        -
        pos - a ParsePosition object holding the current parsing index and error parsing index information as described above.
        -
        Returns:
        -
        the quantity parsed from the specified character sub-sequence.
        -
        Throws:
        -
        MeasurementParseException - if any problem occurs while parsing the specified character sequence (e.g. illegal syntax).
        -
        -
        -
      • -
      • -
        -

        parse

        - -
        Parses the specified CharSequence to produce a Quantity. -

        - The parse must complete normally and parse the entire text. If the parse completes without reading the entire length of the text, an exception - is thrown. If any other problem occurs during parsing, an exception is thrown. -

        -
        -
        Parameters:
        -
        csq - the CharSequence to parse.
        -
        Returns:
        -
        the quantity parsed from the specified character sub-sequence.
        -
        Throws:
        -
        MeasurementParseException - if any problem occurs while parsing the specified character sequence (e.g. illegal syntax).
        -
        -
        -
      • -
      • -
        -

        isLocaleSensitive

        -
        default boolean isLocaleSensitive()
        -
        Returns true if this QuantityFormat depends on a Locale to perform its tasks. -

        - In environments that do not support a Locale, e.g. Java ME, this usually returns false. -

        -
        -
        Returns:
        -
        whether this format depends on the locale.
        -
        -
        -
      • -
      -
      -
    • -
    -
    - -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/format/UnitFormat.html b/docs/site/apidocs/javax/measure/format/UnitFormat.html deleted file mode 100644 index b9727d12..00000000 --- a/docs/site/apidocs/javax/measure/format/UnitFormat.html +++ /dev/null @@ -1,299 +0,0 @@ - - - - -UnitFormat (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Interface UnitFormat

    -
    -
    -
    -
    public interface UnitFormat
    -
    Formats instances of Unit to a String or Appendable and parses a CharSequence to a Unit. - -
    -
    Synchronization
    -
    -

    - Instances of this class are not required to be thread-safe. It is recommended to use separate format instances for each thread. If multiple threads - access a format concurrently, it must be synchronized externally. -

    -
    -
    Since:
    -
    1.0
    -
    Version:
    -
    2.2, May 20, 2023
    -
    Author:
    -
    Jean-Marie Dautelle, Werner Keil
    -
    See Also:
    -
    - -
    -
    -
    -
    - -
    -
    -
      - -
    • -
      -

      Method Details

      -
        -
      • -
        -

        format

        -
        Appendable format(Unit<?> unit, - Appendable appendable) - throws IOException
        -
        Formats the specified Unit.
        -
        -
        Parameters:
        -
        unit - the Unit to format, not null
        -
        appendable - the appendable destination.
        -
        Returns:
        -
        the appendable destination passed in with formatted text appended.
        -
        Throws:
        -
        IOException - if an error occurs while writing to the destination.
        -
        -
        -
      • -
      • -
        -

        format

        -
        String format(Unit<?> unit)
        -
        Formats the specified Unit.
        -
        -
        Parameters:
        -
        unit - the Unit to format, not null
        -
        Returns:
        -
        the string representation using the settings of this UnitFormat.
        -
        -
        -
      • -
      • -
        -

        label

        -
        void label(Unit<?> unit, - String label)
        -
        Attaches a system-wide label to the specified Unit. -

        - This method overrides the previous unit's label (e.g. label from unit database or unit system) as units may only have one label. Depending on the - UnitFormat implementation, this call may be ignored if the particular unit already has a label. -

        - If a UnitFormat implementation is explicitly immutable, similar to e.g. the result of Collections.unmodifiableList(), - then an UnsupportedOperationException may be thrown upon this call. -

        - Since UnitFormat implementations often apply the Singleton pattern, system-wide means, the label applies to every instance of - UnitFormatA implementing UnitFormat in this case, but not every instance of UnitFormatB or UnitFormatC both - also implementing UnitFormat. If a UnitFormat #isLocaleSensitive() it is up to the implementation, whether the label is - ignored, applied in a local-neutral manner (in addition to its local-sensitive information) or locale-specific. -

        -
        -
        Parameters:
        -
        unit - the unit being labeled.
        -
        label - the new label for this unit.
        -
        Throws:
        -
        IllegalArgumentException - if the label is not a valid identifier. This may include characters not supported by a particular UnitFormat implementation - (e.g. only ASCII characters for certain devices)
        -
        UnsupportedOperationException - if the label operation is not supported by this UnitFormat
        -
        -
        -
      • -
      • -
        -

        isLocaleSensitive

        -
        default boolean isLocaleSensitive()
        -
        Returns true if this UnitFormat depends on a Locale to perform its tasks. -

        - In environments that do not support a Locale, e.g. Java ME, this usually returns false. -

        -
        -
        Returns:
        -
        Whether this format depends on a locale.
        -
        -
        -
      • -
      • -
        -

        parse

        - -
        Parses a portion of the specified CharSequence from the specified position to produce a Unit. - If parsing succeeds, then the index of the pos argument is updated to the index after the last character used.
        -
        -
        Parameters:
        -
        csq - the CharSequence to parse.
        -
        pos - a ParsePosition object holding the current parsing index and error parsing index information as described above.
        -
        Returns:
        -
        the unit parsed from the specified character sub-sequence.
        -
        Throws:
        -
        MeasurementParseException - if any problem occurs while parsing the specified character sequence (e.g. illegal syntax).
        -
        Since:
        -
        2.0
        -
        -
        -
      • -
      • -
        -

        parse

        - -
        Parses the text into an instance of Unit. -

        - The parse must complete normally and parse the entire text. If the parse completes without reading the entire length of the text, an exception - is thrown. If any other problem occurs during parsing, an exception is thrown. -

        -
        -
        Parameters:
        -
        csq - the CharSequence to parse.
        -
        Returns:
        -
        the unit parsed from the specified character sequence.
        -
        Throws:
        -
        MeasurementParseException - if any problem occurs while parsing the specified character sequence (e.g. illegal syntax).
        -
        UnsupportedOperationException - if the UnitFormat is unable to parse.
        -
        Since:
        -
        2.0
        -
        -
        -
      • -
      -
      -
    • -
    -
    - -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/format/class-use/MeasurementParseException.html b/docs/site/apidocs/javax/measure/format/class-use/MeasurementParseException.html deleted file mode 100644 index e04bedf7..00000000 --- a/docs/site/apidocs/javax/measure/format/class-use/MeasurementParseException.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - -Uses of Class javax.measure.format.MeasurementParseException (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Class
    javax.measure.format.MeasurementParseException

    -
    -
    Packages that use MeasurementParseException
    -
    -
    Package
    -
    Description
    - -
    -
    [OPTIONAL] Provides Formatting and Parsing functionality for units, quantities, dimensions or their textual representation.
    -
    -
    -
    - -
    -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/format/class-use/QuantityFormat.html b/docs/site/apidocs/javax/measure/format/class-use/QuantityFormat.html deleted file mode 100644 index 7b3fc177..00000000 --- a/docs/site/apidocs/javax/measure/format/class-use/QuantityFormat.html +++ /dev/null @@ -1,96 +0,0 @@ - - - - -Uses of Interface javax.measure.format.QuantityFormat (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Interface
    javax.measure.format.QuantityFormat

    -
    -
    Packages that use QuantityFormat
    -
    -
    Package
    -
    Description
    - -
    -
    [OPTIONAL] The Units of Measurement SPI.
    -
    -
    -
    - -
    -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/format/class-use/UnitFormat.html b/docs/site/apidocs/javax/measure/format/class-use/UnitFormat.html deleted file mode 100644 index 81776409..00000000 --- a/docs/site/apidocs/javax/measure/format/class-use/UnitFormat.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - -Uses of Interface javax.measure.format.UnitFormat (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Interface
    javax.measure.format.UnitFormat

    -
    -
    Packages that use UnitFormat
    -
    -
    Package
    -
    Description
    - -
    -
    [OPTIONAL] The Units of Measurement SPI.
    -
    -
    -
    - -
    -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/format/package-summary.html b/docs/site/apidocs/javax/measure/format/package-summary.html deleted file mode 100644 index ef99f051..00000000 --- a/docs/site/apidocs/javax/measure/format/package-summary.html +++ /dev/null @@ -1,138 +0,0 @@ - - - - -javax.measure.format (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Package javax.measure.format

    -
    -
    -
    package javax.measure.format
    -
    -
    [OPTIONAL] Provides Formatting and Parsing functionality for units, quantities, dimensions or their textual representation.
    -
    -
    Since:
    -
    1.0
    -
    Version:
    -
    2.0, July 7, 2019
    -
    Author:
    -
    Werner Keil
    -
    -
    -
    -
      -
    • - -
    • -
    • -
      -
      -
      -
      -
      Class
      -
      Description
      - -
      -
      Signals that an error has been reached unexpectedly while parsing.
      -
      - -
      -
      Formats instances of Quantity.
      -
      - -
      -
      Formats instances of Unit to a String or Appendable and parses a CharSequence to a Unit.
      -
      -
      -
      -
      -
    • -
    -
    -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/format/package-tree.html b/docs/site/apidocs/javax/measure/format/package-tree.html deleted file mode 100644 index 1523c581..00000000 --- a/docs/site/apidocs/javax/measure/format/package-tree.html +++ /dev/null @@ -1,99 +0,0 @@ - - - - -javax.measure.format Class Hierarchy (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Hierarchy For Package javax.measure.format

    -Package Hierarchies: - -
    -
    -

    Class Hierarchy

    - -
    -
    -

    Interface Hierarchy

    - -
    -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/format/package-use.html b/docs/site/apidocs/javax/measure/format/package-use.html deleted file mode 100644 index 1edab403..00000000 --- a/docs/site/apidocs/javax/measure/format/package-use.html +++ /dev/null @@ -1,109 +0,0 @@ - - - - -Uses of Package javax.measure.format (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Package
    javax.measure.format

    -
    -
    Packages that use javax.measure.format
    -
    -
    Package
    -
    Description
    - -
    -
    [OPTIONAL] Provides Formatting and Parsing functionality for units, quantities, dimensions or their textual representation.
    -
    - -
    -
    [OPTIONAL] The Units of Measurement SPI.
    -
    -
    -
    - -
    -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/package-summary.html b/docs/site/apidocs/javax/measure/package-summary.html deleted file mode 100644 index 9261ee42..00000000 --- a/docs/site/apidocs/javax/measure/package-summary.html +++ /dev/null @@ -1,178 +0,0 @@ - - - - -javax.measure (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Package javax.measure

    -
    -
    -
    package javax.measure
    -
    -
    Specifies Java packages for the programmatic, type safe handling - of quantities and their expression as values of units. - -

    The core interfaces of this package are Dimension, Prefix, Quantity and Unit.

    -

    The package also contains the most common Prefix implementations MetricPrefix and BinaryPrefix.

    -
    -
    Since:
    -
    1.0
    -
    Version:
    -
    1.7, February 4, 2019
    -
    Author:
    -
    Jean-Marie Dautelle, Werner Keil, Otávio Gonçalves de Santana
    -
    -
    -
    -
      -
    • - -
    • -
    • -
      -
      -
      -
      -
      Class
      -
      Description
      - -
      -
      Provides support for common binary prefixes to be used by units.
      -
      - -
      -
      Represents the dimension of a unit.
      -
      - -
      -
      Signals that a problem of some sort has occurred due to incommensurable of some quantities/units.
      -
      - -
      -
      This error is used to indicate serious problems with creating, retrieving and manipulating units of measurement objects.
      -
      - -
      -
      Exception used to indicate a problem while dealing with units of measurement.
      -
      - -
      -
      Provides support for the 24 prefixes used in the metric system (decimal multiples and submultiples of units).
      -
      - -
      -
      A unit prefix is a specifier or mnemonic that is prepended to units of measurement to indicate multiples or fractions of the units.
      -
      -
      Quantity<Q extends Quantity<Q>>
      -
      -
      Represents a quantitative property of a phenomenon, body, or substance, that - can be quantified by measurement.
      -
      - -
      -
      The scale of a Quantity, either ABSOLUTE or RELATIVE.
      -
      - -
      -
      Signals that a problem of some sort has occurred due to the impossibility of constructing a converter between two units.
      -
      -
      Unit<Q extends Quantity<Q>>
      -
      -
      Represents a determinate quantity (as of length, time, heat, or value) adopted as a standard of measurement.
      -
      - -
      -
      A converter of numeric values between different units.
      -
      -
      -
      -
      -
    • -
    -
    -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/package-tree.html b/docs/site/apidocs/javax/measure/package-tree.html deleted file mode 100644 index 811ad9e6..00000000 --- a/docs/site/apidocs/javax/measure/package-tree.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - -javax.measure Class Hierarchy (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Hierarchy For Package javax.measure

    -Package Hierarchies: - -
    -
    -

    Class Hierarchy

    - -
    -
    -

    Interface Hierarchy

    - -
    -
    -

    Enum Hierarchy

    - -
    -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/package-use.html b/docs/site/apidocs/javax/measure/package-use.html deleted file mode 100644 index 161f3b87..00000000 --- a/docs/site/apidocs/javax/measure/package-use.html +++ /dev/null @@ -1,209 +0,0 @@ - - - - -Uses of Package javax.measure (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Package
    javax.measure

    -
    -
    Packages that use javax.measure
    -
    -
    Package
    -
    Description
    - -
    -
    Specifies Java packages for the programmatic, type safe handling - of quantities and their expression as values of units.
    -
    - -
    -
    [OPTIONAL] Provides Formatting and Parsing functionality for units, quantities, dimensions or their textual representation.
    -
    - -
    -
    [OPTIONAL] Provides quantitative properties or attributes of thing such as - mass, time, distance, heat, and angular separation.
    -
    - -
    -
    [OPTIONAL] The Units of Measurement SPI.
    -
    -
    -
    -
      -
    • -
      -
      Classes in javax.measure used by javax.measure
      -
      -
      Class
      -
      Description
      - -
      -
      Provides support for common binary prefixes to be used by units.
      -
      - -
      -
      Represents the dimension of a unit.
      -
      - -
      -
      Signals that a problem of some sort has occurred due to incommensurable of some quantities/units.
      -
      - -
      -
      Exception used to indicate a problem while dealing with units of measurement.
      -
      - -
      -
      Provides support for the 24 prefixes used in the metric system (decimal multiples and submultiples of units).
      -
      - -
      -
      A unit prefix is a specifier or mnemonic that is prepended to units of measurement to indicate multiples or fractions of the units.
      -
      - -
      -
      Represents a quantitative property of a phenomenon, body, or substance, that - can be quantified by measurement.
      -
      - -
      -
      The scale of a Quantity, either ABSOLUTE or RELATIVE.
      -
      - -
      -
      Signals that a problem of some sort has occurred due to the impossibility of constructing a converter between two units.
      -
      - -
      -
      Represents a determinate quantity (as of length, time, heat, or value) adopted as a standard of measurement.
      -
      - -
      -
      A converter of numeric values between different units.
      -
      -
      -
      -
    • -
    • -
      - -
      -
      Class
      -
      Description
      - -
      -
      Exception used to indicate a problem while dealing with units of measurement.
      -
      - -
      -
      Represents a quantitative property of a phenomenon, body, or substance, that - can be quantified by measurement.
      -
      - -
      -
      Represents a determinate quantity (as of length, time, heat, or value) adopted as a standard of measurement.
      -
      -
      -
      -
    • -
    • -
      - -
      -
      Class
      -
      Description
      - -
      -
      Represents a quantitative property of a phenomenon, body, or substance, that - can be quantified by measurement.
      -
      -
      -
      -
    • -
    • -
      -
      Classes in javax.measure used by javax.measure.spi
      -
      -
      Class
      -
      Description
      - -
      -
      Represents the dimension of a unit.
      -
      - -
      -
      A unit prefix is a specifier or mnemonic that is prepended to units of measurement to indicate multiples or fractions of the units.
      -
      - -
      -
      Represents a quantitative property of a phenomenon, body, or substance, that - can be quantified by measurement.
      -
      - -
      -
      The scale of a Quantity, either ABSOLUTE or RELATIVE.
      -
      - -
      -
      Represents a determinate quantity (as of length, time, heat, or value) adopted as a standard of measurement.
      -
      -
      -
      -
    • -
    -
    -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/Acceleration.html b/docs/site/apidocs/javax/measure/quantity/Acceleration.html deleted file mode 100644 index deffe059..00000000 --- a/docs/site/apidocs/javax/measure/quantity/Acceleration.html +++ /dev/null @@ -1,130 +0,0 @@ - - - - -Acceleration (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Interface Acceleration

    -
    -
    -
    -
    All Superinterfaces:
    -
    Quantity<Acceleration>
    -
    -
    -
    public interface Acceleration -extends Quantity<Acceleration>
    -
    Rate of change of velocity with respect to time. The metric system unit for this quantity is "m/s²" (metre per square second).
    -
    -
    Since:
    -
    1.0
    -
    Version:
    -
    1.2
    -
    Author:
    -
    Jean-Marie Dautelle, Werner Keil
    -
    See Also:
    -
    - -
    -
    -
    -
    - -
    - -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/AmountOfSubstance.html b/docs/site/apidocs/javax/measure/quantity/AmountOfSubstance.html deleted file mode 100644 index 8408c49f..00000000 --- a/docs/site/apidocs/javax/measure/quantity/AmountOfSubstance.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - -AmountOfSubstance (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Interface AmountOfSubstance

    -
    -
    -
    -
    All Superinterfaces:
    -
    Quantity<AmountOfSubstance>
    -
    -
    -
    public interface AmountOfSubstance -extends Quantity<AmountOfSubstance>
    -
    Number of elementary entities (molecules, for example) of a substance. The metric system unit for this quantity is "mol" (mole). - - The mole, symbol mol, is the SI unit of amount of substance. One mole contains - exactly 6.022 140 76 × 10²³ elementary entities. This number is the fixed numerical - value of the Avogadro constant, NA, when expressed in the unit mol⁻¹ and is called - the Avogadro number. - - The amount of substance, symbol n, of a system is a measure of the number of - specified elementary entities. An elementary entity may be an atom, a molecule, an - ion, an electron, any other particle or specified group of particles. - This definition implies the exact relation Nₐ = 6.022 140 76 × 10²³ mol⁻¹. - - Inverting this relation gives an exact expression for the mole in terms of the defining constant NA: - - 1 mol = 6.02214076 × 10²³ / Nₐ -
    -
    -
    API Note:
    SI Base Unit
    -
    -
    -
    Since:
    -
    1.0
    -
    Version:
    -
    2.1
    -
    Author:
    -
    Jean-Marie Dautelle, Werner Keil, Thodoris Bais
    -
    See Also:
    -
    - -
    -
    -
    -
    - -
    - -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/Angle.html b/docs/site/apidocs/javax/measure/quantity/Angle.html deleted file mode 100644 index b88eaf8f..00000000 --- a/docs/site/apidocs/javax/measure/quantity/Angle.html +++ /dev/null @@ -1,133 +0,0 @@ - - - - -Angle (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Interface Angle

    -
    -
    -
    -
    All Superinterfaces:
    -
    Quantity<Angle>
    -
    -
    -
    public interface Angle -extends Quantity<Angle>
    -
    Figure formed by two lines diverging from a common point. The metric system unit for this quantity is "rad" (radian). -
    -
    -
    API Note:
    SI Derived Unit with special name and symbol
    -
    -
    -
    Since:
    -
    1.0
    -
    Version:
    -
    2.0
    -
    Author:
    -
    Jean-Marie Dautelle, Werner Keil
    -
    See Also:
    -
    - -
    -
    -
    -
    - -
    - -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/Area.html b/docs/site/apidocs/javax/measure/quantity/Area.html deleted file mode 100644 index 1c939894..00000000 --- a/docs/site/apidocs/javax/measure/quantity/Area.html +++ /dev/null @@ -1,133 +0,0 @@ - - - - -Area (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Interface Area

    -
    -
    -
    -
    All Superinterfaces:
    -
    Quantity<Area>
    -
    -
    -
    public interface Area -extends Quantity<Area>
    -
    Extent of a planar region or of the surface of a solid measured in square units. The metric system unit for this quantity is "m²" (square metre). -
    -
    -
    API Note:
    SI Derived Unit
    -
    -
    -
    Since:
    -
    1.0
    -
    Version:
    -
    2.0
    -
    Author:
    -
    Jean-Marie Dautelle, Werner Keil
    -
    See Also:
    -
    - -
    -
    -
    -
    - -
    - -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/CatalyticActivity.html b/docs/site/apidocs/javax/measure/quantity/CatalyticActivity.html deleted file mode 100644 index c8d9dd5c..00000000 --- a/docs/site/apidocs/javax/measure/quantity/CatalyticActivity.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - -CatalyticActivity (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Interface CatalyticActivity

    -
    -
    -
    -
    All Superinterfaces:
    -
    Quantity<CatalyticActivity>
    -
    -
    -
    public interface CatalyticActivity -extends Quantity<CatalyticActivity>
    -
    Catalytic activity. The metric system unit for this quantity is "kat" (katal).
    -
    -
    Since:
    -
    1.0
    -
    Version:
    -
    1.0
    -
    Author:
    -
    Jean-Marie Dautelle
    -
    -
    -
    - -
    - -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/Dimensionless.html b/docs/site/apidocs/javax/measure/quantity/Dimensionless.html deleted file mode 100644 index 718fb80f..00000000 --- a/docs/site/apidocs/javax/measure/quantity/Dimensionless.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - -Dimensionless (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Interface Dimensionless

    -
    -
    -
    -
    All Superinterfaces:
    -
    Quantity<Dimensionless>
    -
    -
    -
    public interface Dimensionless -extends Quantity<Dimensionless>
    -
    Dimensionless quantity.
    -
    -
    Since:
    -
    1.0
    -
    Version:
    -
    1.0
    -
    Author:
    -
    Jean-Marie Dautelle
    -
    -
    -
    - -
    - -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/ElectricCapacitance.html b/docs/site/apidocs/javax/measure/quantity/ElectricCapacitance.html deleted file mode 100644 index 2eab5b78..00000000 --- a/docs/site/apidocs/javax/measure/quantity/ElectricCapacitance.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - -ElectricCapacitance (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Interface ElectricCapacitance

    -
    -
    -
    -
    All Superinterfaces:
    -
    Quantity<ElectricCapacitance>
    -
    -
    - -
    Electric capacitance. The metric system unit for this quantity is "F" (Farad).
    -
    -
    Since:
    -
    1.0
    -
    Version:
    -
    1.0
    -
    Author:
    -
    Jean-Marie Dautelle
    -
    -
    -
    - -
    - -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/ElectricCharge.html b/docs/site/apidocs/javax/measure/quantity/ElectricCharge.html deleted file mode 100644 index dc0eef98..00000000 --- a/docs/site/apidocs/javax/measure/quantity/ElectricCharge.html +++ /dev/null @@ -1,127 +0,0 @@ - - - - -ElectricCharge (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Interface ElectricCharge

    -
    -
    -
    -
    All Superinterfaces:
    -
    Quantity<ElectricCharge>
    -
    -
    -
    public interface ElectricCharge -extends Quantity<ElectricCharge>
    -
    Electric charge. The metric system unit for this quantity is "C" (Coulomb).
    -
    -
    Since:
    -
    1.0
    -
    Version:
    -
    1.0
    -
    Author:
    -
    Jean-Marie Dautelle
    -
    See Also:
    -
    - -
    -
    -
    -
    - -
    - -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/ElectricConductance.html b/docs/site/apidocs/javax/measure/quantity/ElectricConductance.html deleted file mode 100644 index 087005e2..00000000 --- a/docs/site/apidocs/javax/measure/quantity/ElectricConductance.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - -ElectricConductance (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Interface ElectricConductance

    -
    -
    -
    -
    All Superinterfaces:
    -
    Quantity<ElectricConductance>
    -
    -
    - -
    Electric conductance. The metric system unit for this quantity "S" (Siemens).
    -
    -
    Since:
    -
    1.0
    -
    Version:
    -
    1.0
    -
    Author:
    -
    Jean-Marie Dautelle
    -
    -
    -
    - -
    - -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/ElectricCurrent.html b/docs/site/apidocs/javax/measure/quantity/ElectricCurrent.html deleted file mode 100644 index 08a9ff11..00000000 --- a/docs/site/apidocs/javax/measure/quantity/ElectricCurrent.html +++ /dev/null @@ -1,144 +0,0 @@ - - - - -ElectricCurrent (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Interface ElectricCurrent

    -
    -
    -
    -
    All Superinterfaces:
    -
    Quantity<ElectricCurrent>
    -
    -
    -
    public interface ElectricCurrent -extends Quantity<ElectricCurrent>
    -
    Amount of electric charge flowing past a specified circuit point per unit time. The metric system unit for this quantity is "A" (Ampere). - - The ampere, symbol A, is the SI unit of electric current. It is defined by taking the - fixed numerical value of the elementary charge e to be 1.602 176 634 × 10⁻¹⁹ when - expressed in the unit C, which is equal to A s, where the second is defined in terms - of ∆νCs. - - This definition implies the exact relation e = 1.602 176 634 × 10⁻¹⁹ A s. Inverting this - relation gives an exact expression for the unit ampere in terms of the defining constants e - and ∆νCs: - - 1 A = (e / 1.602 176 634 × 10⁻¹⁹) s⁻¹ -
    -
    -
    API Note:
    SI Base Unit
    -
    -
    -
    Since:
    -
    1.0
    -
    Version:
    -
    2.1
    -
    Author:
    -
    Jean-Marie Dautelle, Werner Keil, Thodoris Bais
    -
    See Also:
    -
    - -
    -
    -
    -
    - -
    - -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/ElectricInductance.html b/docs/site/apidocs/javax/measure/quantity/ElectricInductance.html deleted file mode 100644 index 9c4db702..00000000 --- a/docs/site/apidocs/javax/measure/quantity/ElectricInductance.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - -ElectricInductance (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Interface ElectricInductance

    -
    -
    -
    -
    All Superinterfaces:
    -
    Quantity<ElectricInductance>
    -
    -
    - -
    Electric inductance. The metric system unit for this quantity is "H" (Henry).
    -
    -
    Since:
    -
    1.0
    -
    Version:
    -
    1.0
    -
    Author:
    -
    Jean-Marie Dautelle
    -
    -
    -
    - -
    - -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/ElectricPotential.html b/docs/site/apidocs/javax/measure/quantity/ElectricPotential.html deleted file mode 100644 index b3afcf63..00000000 --- a/docs/site/apidocs/javax/measure/quantity/ElectricPotential.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - -ElectricPotential (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Interface ElectricPotential

    -
    -
    -
    -
    All Superinterfaces:
    -
    Quantity<ElectricPotential>
    -
    -
    -
    public interface ElectricPotential -extends Quantity<ElectricPotential>
    -
    Electric potential or electromotive force. The metric system unit for this quantity is "V" (Volt).
    -
    -
    Since:
    -
    1.0
    -
    Version:
    -
    1.0
    -
    Author:
    -
    Jean-Marie Dautelle
    -
    -
    -
    - -
    - -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/ElectricResistance.html b/docs/site/apidocs/javax/measure/quantity/ElectricResistance.html deleted file mode 100644 index 26ec45e3..00000000 --- a/docs/site/apidocs/javax/measure/quantity/ElectricResistance.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - -ElectricResistance (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Interface ElectricResistance

    -
    -
    -
    -
    All Superinterfaces:
    -
    Quantity<ElectricResistance>
    -
    -
    - -
    Electric resistance. The metric system unit for this quantity is "Ohm" (Ω).
    -
    -
    Since:
    -
    1.0
    -
    Version:
    -
    1.0
    -
    Author:
    -
    Jean-Marie Dautelle
    -
    -
    -
    - -
    - -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/Energy.html b/docs/site/apidocs/javax/measure/quantity/Energy.html deleted file mode 100644 index 94ec3edd..00000000 --- a/docs/site/apidocs/javax/measure/quantity/Energy.html +++ /dev/null @@ -1,129 +0,0 @@ - - - - -Energy (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Interface Energy

    -
    -
    -
    -
    All Superinterfaces:
    -
    Quantity<Energy>
    -
    -
    -
    public interface Energy -extends Quantity<Energy>
    -
    Capacity of a physical system to do work. The metric system unit for this quantity "J" (Joule).
    -
    -
    Since:
    -
    1.0
    -
    Version:
    -
    1.0
    -
    Author:
    -
    Jean-Marie Dautelle
    -
    See Also:
    -
    - -
    -
    -
    -
    - -
    - -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/Force.html b/docs/site/apidocs/javax/measure/quantity/Force.html deleted file mode 100644 index 674be32f..00000000 --- a/docs/site/apidocs/javax/measure/quantity/Force.html +++ /dev/null @@ -1,129 +0,0 @@ - - - - -Force (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Interface Force

    -
    -
    -
    -
    All Superinterfaces:
    -
    Quantity<Force>
    -
    -
    -
    public interface Force -extends Quantity<Force>
    -
    Quantity that tends to produce an acceleration of a body in the direction of its application. The metric system unit for this quantity is "N" - (Newton).
    -
    -
    Since:
    -
    1.0
    -
    Version:
    -
    1.1
    -
    Author:
    -
    Jean-Marie Dautelle
    -
    See Also:
    -
    - -
    -
    -
    -
    - -
    - -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/Frequency.html b/docs/site/apidocs/javax/measure/quantity/Frequency.html deleted file mode 100644 index 62d940f4..00000000 --- a/docs/site/apidocs/javax/measure/quantity/Frequency.html +++ /dev/null @@ -1,127 +0,0 @@ - - - - -Frequency (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Interface Frequency

    -
    -
    -
    -
    All Superinterfaces:
    -
    Quantity<Frequency>
    -
    -
    -
    public interface Frequency -extends Quantity<Frequency>
    -
    Number of times a specified phenomenon occurs within a specified interval. The metric system unit for this quantity is "Hz" (Hertz).
    -
    -
    Since:
    -
    1.0
    -
    Version:
    -
    1.0
    -
    Author:
    -
    Jean-Marie Dautelle
    -
    See Also:
    -
    - -
    -
    -
    -
    - -
    - -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/Illuminance.html b/docs/site/apidocs/javax/measure/quantity/Illuminance.html deleted file mode 100644 index d1fe4a5d..00000000 --- a/docs/site/apidocs/javax/measure/quantity/Illuminance.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - -Illuminance (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Interface Illuminance

    -
    -
    -
    -
    All Superinterfaces:
    -
    Quantity<Illuminance>
    -
    -
    -
    public interface Illuminance -extends Quantity<Illuminance>
    -
    Illuminance. The metric system unit for this quantity is "lx" (lux).
    -
    -
    Since:
    -
    1.0
    -
    Version:
    -
    1.0
    -
    Author:
    -
    Jean-Marie Dautelle
    -
    -
    -
    - -
    - -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/Length.html b/docs/site/apidocs/javax/measure/quantity/Length.html deleted file mode 100644 index 16551b8f..00000000 --- a/docs/site/apidocs/javax/measure/quantity/Length.html +++ /dev/null @@ -1,147 +0,0 @@ - - - - -Length (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Interface Length

    -
    -
    -
    -
    All Superinterfaces:
    -
    Quantity<Length>
    -
    -
    -
    public interface Length -extends Quantity<Length>
    -
    Extent of something along its greatest dimension or the extent of space between two objects or places. - The metric system unit for this quantity is "m" (metre). - - The metre, symbol m, is the SI unit of length. It is defined by taking the fixed - numerical value of the speed of light in vacuum c to be 299 792 458 when expressed - in the unit m s⁻¹, where the second is defined in terms of the caesium frequency - ∆νCs. - - This definition implies the exact relation c = 299 792 458 m s⁻¹. Inverting this relation - gives an exact expression for the metre in terms of the defining constants c and ∆νCs: - - 1 m = (c / 299 792 458)s = 9 192 631 770 c / 299 792 458 ∆νCs ≈ 30.663 319 c / ∆νCs -
    -
    -
    API Note:
    SI Base Unit
    -
    -
    -
    Since:
    -
    1.0
    -
    Version:
    -
    2.1
    -
    Author:
    -
    Jean-Marie Dautelle, Werner Keil, Thodoris Bais
    -
    See Also:
    -
    - -
    -
    -
    -
    - -
    - -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/LuminousFlux.html b/docs/site/apidocs/javax/measure/quantity/LuminousFlux.html deleted file mode 100644 index 85075cca..00000000 --- a/docs/site/apidocs/javax/measure/quantity/LuminousFlux.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - -LuminousFlux (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Interface LuminousFlux

    -
    -
    -
    -
    All Superinterfaces:
    -
    Quantity<LuminousFlux>
    -
    -
    -
    public interface LuminousFlux -extends Quantity<LuminousFlux>
    -
    Luminous flux. The metric system unit for this quantity is "lm" (lumen).
    -
    -
    Since:
    -
    1.0
    -
    Version:
    -
    1.1
    -
    Author:
    -
    Jean-Marie Dautelle
    -
    -
    -
    - -
    - -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/LuminousIntensity.html b/docs/site/apidocs/javax/measure/quantity/LuminousIntensity.html deleted file mode 100644 index 1f9220a1..00000000 --- a/docs/site/apidocs/javax/measure/quantity/LuminousIntensity.html +++ /dev/null @@ -1,144 +0,0 @@ - - - - -LuminousIntensity (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Interface LuminousIntensity

    -
    -
    -
    -
    All Superinterfaces:
    -
    Quantity<LuminousIntensity>
    -
    -
    -
    public interface LuminousIntensity -extends Quantity<LuminousIntensity>
    -
    Luminous flux density per solid angle as measured in a given direction relative to the emitting source. - The metric system unit for this quantity is "cd" (candela). - - The candela, symbol cd, is the SI unit of luminous intensity in a given direction. It is - defined by taking the fixed numerical value of the luminous efficacy of - monochromatic radiation of frequency 540 × 10¹² Hz, Kcd, to be 683 when expressed - in the unit lm W−1, which is equal to cd sr W⁻¹, or cd sr kg⁻¹ m⁻² s³, where the kilogram, - metre and second are defined in terms of h, c and ∆νCs. - - This definition implies the exact relation Kcd = 683 cd sr kg⁻¹ m⁻² s³ for monochromatic - radiation of frequency ν = 540 × 10¹² Hz. Inverting this relation gives an exact expression - for the candela in terms of the defining constants Kcd, h and ∆νCs: - - 1 cd = (Kcd / 683) kg m² s⁻³ sr⁻¹ -
    -
    -
    API Note:
    SI Base Unit
    -
    -
    -
    Since:
    -
    1.0
    -
    Version:
    -
    2.1
    -
    Author:
    -
    Jean-Marie Dautelle, Werner Keil, Thodoris Bais
    -
    See Also:
    -
    - -
    -
    -
    -
    - -
    - -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/MagneticFlux.html b/docs/site/apidocs/javax/measure/quantity/MagneticFlux.html deleted file mode 100644 index a503349b..00000000 --- a/docs/site/apidocs/javax/measure/quantity/MagneticFlux.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - -MagneticFlux (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Interface MagneticFlux

    -
    -
    -
    -
    All Superinterfaces:
    -
    Quantity<MagneticFlux>
    -
    -
    -
    public interface MagneticFlux -extends Quantity<MagneticFlux>
    -
    Magnetic flux. The metric system unit for this quantity is "Wb" (Weber).
    -
    -
    Since:
    -
    1.0
    -
    Version:
    -
    1.0
    -
    Author:
    -
    Jean-Marie Dautelle
    -
    -
    -
    - -
    - -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/MagneticFluxDensity.html b/docs/site/apidocs/javax/measure/quantity/MagneticFluxDensity.html deleted file mode 100644 index d8004440..00000000 --- a/docs/site/apidocs/javax/measure/quantity/MagneticFluxDensity.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - -MagneticFluxDensity (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Interface MagneticFluxDensity

    -
    -
    -
    -
    All Superinterfaces:
    -
    Quantity<MagneticFluxDensity>
    -
    -
    - -
    Magnetic flux density. The metric system unit for this quantity is "T" (Tesla).
    -
    -
    Since:
    -
    1.0
    -
    Version:
    -
    1.0
    -
    Author:
    -
    Jean-Marie Dautelle
    -
    -
    -
    - -
    - -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/Mass.html b/docs/site/apidocs/javax/measure/quantity/Mass.html deleted file mode 100644 index 0d7a571e..00000000 --- a/docs/site/apidocs/javax/measure/quantity/Mass.html +++ /dev/null @@ -1,144 +0,0 @@ - - - - -Mass (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Interface Mass

    -
    -
    -
    -
    All Superinterfaces:
    -
    Quantity<Mass>
    -
    -
    -
    public interface Mass -extends Quantity<Mass>
    -
    Measure of the quantity of matter that a body or an object contains. The mass of the body is not dependent on gravity and therefore is different - from but proportional to its weight. The metric system unit for this quantity is "kg" (kilogram). - - The kilogram, symbol kg, is the SI unit of mass. It is defined by taking the fixed - numerical value of the Planck constant h to be 6.626 070 15 × 10⁻³⁴ when expressed - in the unit J s, which is equal to kg m² s−1, where the metre and the second are - defined in terms of c and ∆νCs. - - This definition implies the exact relation h = 6.626 070 15 × 10−34 kg m² s⁻¹. Inverting this - relation gives an exact expression for the kilogram in terms of the three defining constants - h, ∆νCs and c: - - 1 kg = (h / 6.626 070 15 × 10⁻³⁴) m⁻² s -
    -
    -
    API Note:
    SI Base Unit
    -
    -
    -
    Since:
    -
    1.0
    -
    Version:
    -
    2.0
    -
    Author:
    -
    Jean-Marie Dautelle, Werner Keil, Thodoris Bais
    -
    See Also:
    -
    - -
    -
    -
    -
    - -
    - -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/Power.html b/docs/site/apidocs/javax/measure/quantity/Power.html deleted file mode 100644 index f0e5b551..00000000 --- a/docs/site/apidocs/javax/measure/quantity/Power.html +++ /dev/null @@ -1,128 +0,0 @@ - - - - -Power (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Interface Power

    -
    -
    -
    -
    All Superinterfaces:
    -
    Quantity<Power>
    -
    -
    -
    public interface Power -extends Quantity<Power>
    -
    Rate at which work is done. The metric system unit for this quantity is "W" (Watt).
    -
    -
    Since:
    -
    1.0
    -
    Version:
    -
    1.0
    -
    Author:
    -
    Jean-Marie Dautelle
    -
    See Also:
    -
    - -
    -
    -
    -
    - -
    - -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/Pressure.html b/docs/site/apidocs/javax/measure/quantity/Pressure.html deleted file mode 100644 index 0951a8f6..00000000 --- a/docs/site/apidocs/javax/measure/quantity/Pressure.html +++ /dev/null @@ -1,128 +0,0 @@ - - - - -Pressure (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Interface Pressure

    -
    -
    -
    -
    All Superinterfaces:
    -
    Quantity<Pressure>
    -
    -
    -
    public interface Pressure -extends Quantity<Pressure>
    -
    Force applied uniformly over a surface. The metric system unit for this quantity is "Pa" (Pascal).
    -
    -
    Since:
    -
    1.0
    -
    Version:
    -
    1.0
    -
    Author:
    -
    Jean-Marie Dautelle
    -
    See Also:
    -
    - -
    -
    -
    -
    - -
    - -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/RadiationDoseAbsorbed.html b/docs/site/apidocs/javax/measure/quantity/RadiationDoseAbsorbed.html deleted file mode 100644 index 01784485..00000000 --- a/docs/site/apidocs/javax/measure/quantity/RadiationDoseAbsorbed.html +++ /dev/null @@ -1,127 +0,0 @@ - - - - -RadiationDoseAbsorbed (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Interface RadiationDoseAbsorbed

    -
    -
    -
    -
    All Superinterfaces:
    -
    Quantity<RadiationDoseAbsorbed>
    -
    -
    - -
    Amount of energy deposited per unit of mass. The system unit for this quantity is "Gy" (Gray).
    -
    -
    Since:
    -
    1.0
    -
    Version:
    -
    1.1
    -
    Author:
    -
    Jean-Marie Dautelle
    -
    See Also:
    -
    - -
    -
    -
    -
    - -
    - -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/RadiationDoseEffective.html b/docs/site/apidocs/javax/measure/quantity/RadiationDoseEffective.html deleted file mode 100644 index ab4cc510..00000000 --- a/docs/site/apidocs/javax/measure/quantity/RadiationDoseEffective.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - -RadiationDoseEffective (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Interface RadiationDoseEffective

    -
    -
    -
    -
    All Superinterfaces:
    -
    Quantity<RadiationDoseEffective>
    -
    -
    - -
    Effective (or "equivalent") dose of radiation received by a human or some other living organism. The metric system unit for this quantity is "Sv" - (Sievert).
    -
    -
    Since:
    -
    1.0
    -
    Version:
    -
    1.0
    -
    Author:
    -
    Jean-Marie Dautelle
    -
    -
    -
    - -
    - -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/Radioactivity.html b/docs/site/apidocs/javax/measure/quantity/Radioactivity.html deleted file mode 100644 index a7395664..00000000 --- a/docs/site/apidocs/javax/measure/quantity/Radioactivity.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - -Radioactivity (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Interface Radioactivity

    -
    -
    -
    -
    All Superinterfaces:
    -
    Quantity<Radioactivity>
    -
    -
    -
    public interface Radioactivity -extends Quantity<Radioactivity>
    -
    Radioactive activity. The metric system unit for this quantity is "Bq" (Becquerel).
    -
    -
    Since:
    -
    1.0
    -
    Version:
    -
    1.2
    -
    Author:
    -
    Jean-Marie Dautelle, Werner Keil, Martin Desruisseaux
    -
    -
    -
    - -
    - -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/SolidAngle.html b/docs/site/apidocs/javax/measure/quantity/SolidAngle.html deleted file mode 100644 index 1feff56c..00000000 --- a/docs/site/apidocs/javax/measure/quantity/SolidAngle.html +++ /dev/null @@ -1,127 +0,0 @@ - - - - -SolidAngle (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Interface SolidAngle

    -
    -
    -
    -
    All Superinterfaces:
    -
    Quantity<SolidAngle>
    -
    -
    -
    public interface SolidAngle -extends Quantity<SolidAngle>
    -
    Angle formed by three or more planes intersecting at a common point. The metric system unit for this quantity is "sr" (steradian).
    -
    -
    Since:
    -
    1.0
    -
    Version:
    -
    1.3
    -
    Author:
    -
    Jean-Marie Dautelle, Werner Keil
    -
    See Also:
    -
    - -
    -
    -
    -
    - -
    - -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/Speed.html b/docs/site/apidocs/javax/measure/quantity/Speed.html deleted file mode 100644 index 8c54d812..00000000 --- a/docs/site/apidocs/javax/measure/quantity/Speed.html +++ /dev/null @@ -1,135 +0,0 @@ - - - - -Speed (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Interface Speed

    -
    -
    -
    -
    All Superinterfaces:
    -
    Quantity<Speed>
    -
    -
    -
    public interface Speed -extends Quantity<Speed>
    -
    Distance traveled divided by the time of travel. The metric system unit for this quantity is "m/s" (metre per second). - -

    - Speed is a scalar value, while velocity is a vector. Speed is the magnitude of the velocity vector, or the components of - the velocity vector. -

    -
    -
    Since:
    -
    1.0
    -
    Version:
    -
    1.2
    -
    Author:
    -
    Jean-Marie Dautelle, Werner Keil
    -
    See Also:
    -
    - -
    -
    -
    -
    - -
    - -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/Temperature.html b/docs/site/apidocs/javax/measure/quantity/Temperature.html deleted file mode 100644 index 940809da..00000000 --- a/docs/site/apidocs/javax/measure/quantity/Temperature.html +++ /dev/null @@ -1,142 +0,0 @@ - - - - -Temperature (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Interface Temperature

    -
    -
    -
    -
    All Superinterfaces:
    -
    Quantity<Temperature>
    -
    -
    -
    public interface Temperature -extends Quantity<Temperature>
    -
    Degree of hotness or coldness of a body or an environment. The metric system unit for this quantity is "K" (Kelvin). - - The kelvin, symbol K, is the SI unit of thermodynamic temperature. It is defined by - taking the fixed numerical value of the Boltzmann constant k to be 1.380 649 × 10−²³ - when expressed in the unit J K⁻¹, which is equal to kg m² s⁻² K⁻¹, where the - kilogram, metre and second are defined in terms of h, c and ∆νCs. - - This definition implies the exact relation k = 1.380 649 × 10⁻²³ kg m² s⁻² K⁻¹. Inverting this - relation gives an exact expression for the kelvin in terms of the defining constants k, h and - ∆νCs: - - 1 K = (1.380 649 / k) × 10⁻²³ kg m² s⁻² -
    -
    -
    API Note:
    SI Base Unit
    -
    -
    -
    Since:
    -
    1.0
    -
    Version:
    -
    2.1
    -
    Author:
    -
    Jean-Marie Dautelle, Werner Keil, Thodoris Bais
    -
    See Also:
    -
    - -
    -
    -
    -
    - -
    - -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/Time.html b/docs/site/apidocs/javax/measure/quantity/Time.html deleted file mode 100644 index d12776f9..00000000 --- a/docs/site/apidocs/javax/measure/quantity/Time.html +++ /dev/null @@ -1,146 +0,0 @@ - - - - -Time (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Interface Time

    -
    -
    -
    -
    All Superinterfaces:
    -
    Quantity<Time>
    -
    -
    -
    public interface Time -extends Quantity<Time>
    -
    Period of existence or persistence. The metric system unit for this quantity is "s" (second). - - The second, symbol s, is the SI unit of time. It is defined by taking the fixed - numerical value of the caesium frequency ∆νCs, the unperturbed ground-state - hyperfine transition frequency of the caesium 133 atom, to be 9 192 631 770 when - expressed in the unit Hz, which is equal to s⁻¹. - - This definition implies the exact relation ∆νCs = 9 192 631 770 Hz. Inverting this relation - gives an expression for the unit second in terms of the defining constant ∆νCs: - - 1 Hz = ∆νCs / 9 192 631 770 or 1 s = 9 192 631 770 / ∆νCs -
    -
    -
    API Note:
    SI Base Unit
    -
    -
    -
    Since:
    -
    1.0
    -
    Version:
    -
    2.1
    -
    Author:
    -
    Werner Keil, Thodoris Bais
    -
    See Also:
    -
    - -
    -
    -
    -
    - -
    - -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/Volume.html b/docs/site/apidocs/javax/measure/quantity/Volume.html deleted file mode 100644 index d5bfc3b4..00000000 --- a/docs/site/apidocs/javax/measure/quantity/Volume.html +++ /dev/null @@ -1,128 +0,0 @@ - - - - -Volume (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Interface Volume

    -
    -
    -
    -
    All Superinterfaces:
    -
    Quantity<Volume>
    -
    -
    -
    public interface Volume -extends Quantity<Volume>
    -
    Amount of space occupied by a three-dimensional object or region of space. The metric system unit for this quantity is "m³" (cubic metre).
    -
    -
    Since:
    -
    1.0
    -
    Version:
    -
    1.3
    -
    Author:
    -
    Jean-Marie Dautelle, Werner Keil
    -
    See Also:
    -
    - -
    -
    -
    -
    - -
    - -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/class-use/Acceleration.html b/docs/site/apidocs/javax/measure/quantity/class-use/Acceleration.html deleted file mode 100644 index c55c84b6..00000000 --- a/docs/site/apidocs/javax/measure/quantity/class-use/Acceleration.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.Acceleration (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Interface
    javax.measure.quantity.Acceleration

    -
    -No usage of javax.measure.quantity.Acceleration
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/class-use/AmountOfSubstance.html b/docs/site/apidocs/javax/measure/quantity/class-use/AmountOfSubstance.html deleted file mode 100644 index b18d347e..00000000 --- a/docs/site/apidocs/javax/measure/quantity/class-use/AmountOfSubstance.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.AmountOfSubstance (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Interface
    javax.measure.quantity.AmountOfSubstance

    -
    -No usage of javax.measure.quantity.AmountOfSubstance
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/class-use/Angle.html b/docs/site/apidocs/javax/measure/quantity/class-use/Angle.html deleted file mode 100644 index e84314c2..00000000 --- a/docs/site/apidocs/javax/measure/quantity/class-use/Angle.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.Angle (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Interface
    javax.measure.quantity.Angle

    -
    -No usage of javax.measure.quantity.Angle
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/class-use/Area.html b/docs/site/apidocs/javax/measure/quantity/class-use/Area.html deleted file mode 100644 index c2f30f8c..00000000 --- a/docs/site/apidocs/javax/measure/quantity/class-use/Area.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.Area (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Interface
    javax.measure.quantity.Area

    -
    -No usage of javax.measure.quantity.Area
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/class-use/CatalyticActivity.html b/docs/site/apidocs/javax/measure/quantity/class-use/CatalyticActivity.html deleted file mode 100644 index 5d7561e8..00000000 --- a/docs/site/apidocs/javax/measure/quantity/class-use/CatalyticActivity.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.CatalyticActivity (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Interface
    javax.measure.quantity.CatalyticActivity

    -
    -No usage of javax.measure.quantity.CatalyticActivity
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/class-use/Dimensionless.html b/docs/site/apidocs/javax/measure/quantity/class-use/Dimensionless.html deleted file mode 100644 index 458fa6ba..00000000 --- a/docs/site/apidocs/javax/measure/quantity/class-use/Dimensionless.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.Dimensionless (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Interface
    javax.measure.quantity.Dimensionless

    -
    -No usage of javax.measure.quantity.Dimensionless
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/class-use/ElectricCapacitance.html b/docs/site/apidocs/javax/measure/quantity/class-use/ElectricCapacitance.html deleted file mode 100644 index 4623b653..00000000 --- a/docs/site/apidocs/javax/measure/quantity/class-use/ElectricCapacitance.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.ElectricCapacitance (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Interface
    javax.measure.quantity.ElectricCapacitance

    -
    -No usage of javax.measure.quantity.ElectricCapacitance
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/class-use/ElectricCharge.html b/docs/site/apidocs/javax/measure/quantity/class-use/ElectricCharge.html deleted file mode 100644 index 9c67d8d9..00000000 --- a/docs/site/apidocs/javax/measure/quantity/class-use/ElectricCharge.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.ElectricCharge (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Interface
    javax.measure.quantity.ElectricCharge

    -
    -No usage of javax.measure.quantity.ElectricCharge
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/class-use/ElectricConductance.html b/docs/site/apidocs/javax/measure/quantity/class-use/ElectricConductance.html deleted file mode 100644 index 2be9bb7a..00000000 --- a/docs/site/apidocs/javax/measure/quantity/class-use/ElectricConductance.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.ElectricConductance (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Interface
    javax.measure.quantity.ElectricConductance

    -
    -No usage of javax.measure.quantity.ElectricConductance
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/class-use/ElectricCurrent.html b/docs/site/apidocs/javax/measure/quantity/class-use/ElectricCurrent.html deleted file mode 100644 index 2a7fa1e8..00000000 --- a/docs/site/apidocs/javax/measure/quantity/class-use/ElectricCurrent.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.ElectricCurrent (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Interface
    javax.measure.quantity.ElectricCurrent

    -
    -No usage of javax.measure.quantity.ElectricCurrent
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/class-use/ElectricInductance.html b/docs/site/apidocs/javax/measure/quantity/class-use/ElectricInductance.html deleted file mode 100644 index 937fa646..00000000 --- a/docs/site/apidocs/javax/measure/quantity/class-use/ElectricInductance.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.ElectricInductance (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Interface
    javax.measure.quantity.ElectricInductance

    -
    -No usage of javax.measure.quantity.ElectricInductance
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/class-use/ElectricPotential.html b/docs/site/apidocs/javax/measure/quantity/class-use/ElectricPotential.html deleted file mode 100644 index f4cfe11b..00000000 --- a/docs/site/apidocs/javax/measure/quantity/class-use/ElectricPotential.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.ElectricPotential (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Interface
    javax.measure.quantity.ElectricPotential

    -
    -No usage of javax.measure.quantity.ElectricPotential
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/class-use/ElectricResistance.html b/docs/site/apidocs/javax/measure/quantity/class-use/ElectricResistance.html deleted file mode 100644 index 0842ebdc..00000000 --- a/docs/site/apidocs/javax/measure/quantity/class-use/ElectricResistance.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.ElectricResistance (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Interface
    javax.measure.quantity.ElectricResistance

    -
    -No usage of javax.measure.quantity.ElectricResistance
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/class-use/Energy.html b/docs/site/apidocs/javax/measure/quantity/class-use/Energy.html deleted file mode 100644 index d4c47e6b..00000000 --- a/docs/site/apidocs/javax/measure/quantity/class-use/Energy.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.Energy (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Interface
    javax.measure.quantity.Energy

    -
    -No usage of javax.measure.quantity.Energy
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/class-use/Force.html b/docs/site/apidocs/javax/measure/quantity/class-use/Force.html deleted file mode 100644 index 07427d0d..00000000 --- a/docs/site/apidocs/javax/measure/quantity/class-use/Force.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.Force (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Interface
    javax.measure.quantity.Force

    -
    -No usage of javax.measure.quantity.Force
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/class-use/Frequency.html b/docs/site/apidocs/javax/measure/quantity/class-use/Frequency.html deleted file mode 100644 index e60c35c2..00000000 --- a/docs/site/apidocs/javax/measure/quantity/class-use/Frequency.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.Frequency (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Interface
    javax.measure.quantity.Frequency

    -
    -No usage of javax.measure.quantity.Frequency
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/class-use/Illuminance.html b/docs/site/apidocs/javax/measure/quantity/class-use/Illuminance.html deleted file mode 100644 index 226f02fd..00000000 --- a/docs/site/apidocs/javax/measure/quantity/class-use/Illuminance.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.Illuminance (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Interface
    javax.measure.quantity.Illuminance

    -
    -No usage of javax.measure.quantity.Illuminance
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/class-use/Length.html b/docs/site/apidocs/javax/measure/quantity/class-use/Length.html deleted file mode 100644 index 25fc74e0..00000000 --- a/docs/site/apidocs/javax/measure/quantity/class-use/Length.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.Length (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Interface
    javax.measure.quantity.Length

    -
    -No usage of javax.measure.quantity.Length
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/class-use/LuminousFlux.html b/docs/site/apidocs/javax/measure/quantity/class-use/LuminousFlux.html deleted file mode 100644 index 5f929252..00000000 --- a/docs/site/apidocs/javax/measure/quantity/class-use/LuminousFlux.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.LuminousFlux (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Interface
    javax.measure.quantity.LuminousFlux

    -
    -No usage of javax.measure.quantity.LuminousFlux
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/class-use/LuminousIntensity.html b/docs/site/apidocs/javax/measure/quantity/class-use/LuminousIntensity.html deleted file mode 100644 index e4df8129..00000000 --- a/docs/site/apidocs/javax/measure/quantity/class-use/LuminousIntensity.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.LuminousIntensity (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Interface
    javax.measure.quantity.LuminousIntensity

    -
    -No usage of javax.measure.quantity.LuminousIntensity
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/class-use/MagneticFlux.html b/docs/site/apidocs/javax/measure/quantity/class-use/MagneticFlux.html deleted file mode 100644 index 69428ccc..00000000 --- a/docs/site/apidocs/javax/measure/quantity/class-use/MagneticFlux.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.MagneticFlux (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Interface
    javax.measure.quantity.MagneticFlux

    -
    -No usage of javax.measure.quantity.MagneticFlux
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/class-use/MagneticFluxDensity.html b/docs/site/apidocs/javax/measure/quantity/class-use/MagneticFluxDensity.html deleted file mode 100644 index f0808b31..00000000 --- a/docs/site/apidocs/javax/measure/quantity/class-use/MagneticFluxDensity.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.MagneticFluxDensity (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Interface
    javax.measure.quantity.MagneticFluxDensity

    -
    -No usage of javax.measure.quantity.MagneticFluxDensity
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/class-use/Mass.html b/docs/site/apidocs/javax/measure/quantity/class-use/Mass.html deleted file mode 100644 index bd5d1be6..00000000 --- a/docs/site/apidocs/javax/measure/quantity/class-use/Mass.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.Mass (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Interface
    javax.measure.quantity.Mass

    -
    -No usage of javax.measure.quantity.Mass
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/class-use/Power.html b/docs/site/apidocs/javax/measure/quantity/class-use/Power.html deleted file mode 100644 index cfe2ae90..00000000 --- a/docs/site/apidocs/javax/measure/quantity/class-use/Power.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.Power (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Interface
    javax.measure.quantity.Power

    -
    -No usage of javax.measure.quantity.Power
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/class-use/Pressure.html b/docs/site/apidocs/javax/measure/quantity/class-use/Pressure.html deleted file mode 100644 index 6449cee8..00000000 --- a/docs/site/apidocs/javax/measure/quantity/class-use/Pressure.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.Pressure (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Interface
    javax.measure.quantity.Pressure

    -
    -No usage of javax.measure.quantity.Pressure
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/class-use/RadiationDoseAbsorbed.html b/docs/site/apidocs/javax/measure/quantity/class-use/RadiationDoseAbsorbed.html deleted file mode 100644 index 17240390..00000000 --- a/docs/site/apidocs/javax/measure/quantity/class-use/RadiationDoseAbsorbed.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.RadiationDoseAbsorbed (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Interface
    javax.measure.quantity.RadiationDoseAbsorbed

    -
    -No usage of javax.measure.quantity.RadiationDoseAbsorbed
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/class-use/RadiationDoseEffective.html b/docs/site/apidocs/javax/measure/quantity/class-use/RadiationDoseEffective.html deleted file mode 100644 index 6ab7b74b..00000000 --- a/docs/site/apidocs/javax/measure/quantity/class-use/RadiationDoseEffective.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.RadiationDoseEffective (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Interface
    javax.measure.quantity.RadiationDoseEffective

    -
    -No usage of javax.measure.quantity.RadiationDoseEffective
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/class-use/Radioactivity.html b/docs/site/apidocs/javax/measure/quantity/class-use/Radioactivity.html deleted file mode 100644 index 78c6b583..00000000 --- a/docs/site/apidocs/javax/measure/quantity/class-use/Radioactivity.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.Radioactivity (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Interface
    javax.measure.quantity.Radioactivity

    -
    -No usage of javax.measure.quantity.Radioactivity
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/class-use/SolidAngle.html b/docs/site/apidocs/javax/measure/quantity/class-use/SolidAngle.html deleted file mode 100644 index fef48bd8..00000000 --- a/docs/site/apidocs/javax/measure/quantity/class-use/SolidAngle.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.SolidAngle (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Interface
    javax.measure.quantity.SolidAngle

    -
    -No usage of javax.measure.quantity.SolidAngle
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/class-use/Speed.html b/docs/site/apidocs/javax/measure/quantity/class-use/Speed.html deleted file mode 100644 index 4a8f767e..00000000 --- a/docs/site/apidocs/javax/measure/quantity/class-use/Speed.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.Speed (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Interface
    javax.measure.quantity.Speed

    -
    -No usage of javax.measure.quantity.Speed
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/class-use/Temperature.html b/docs/site/apidocs/javax/measure/quantity/class-use/Temperature.html deleted file mode 100644 index caee309c..00000000 --- a/docs/site/apidocs/javax/measure/quantity/class-use/Temperature.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.Temperature (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Interface
    javax.measure.quantity.Temperature

    -
    -No usage of javax.measure.quantity.Temperature
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/class-use/Time.html b/docs/site/apidocs/javax/measure/quantity/class-use/Time.html deleted file mode 100644 index ace4f089..00000000 --- a/docs/site/apidocs/javax/measure/quantity/class-use/Time.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.Time (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Interface
    javax.measure.quantity.Time

    -
    -No usage of javax.measure.quantity.Time
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/class-use/Volume.html b/docs/site/apidocs/javax/measure/quantity/class-use/Volume.html deleted file mode 100644 index 3f9f9b5a..00000000 --- a/docs/site/apidocs/javax/measure/quantity/class-use/Volume.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Interface javax.measure.quantity.Volume (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Interface
    javax.measure.quantity.Volume

    -
    -No usage of javax.measure.quantity.Volume
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/package-summary.html b/docs/site/apidocs/javax/measure/quantity/package-summary.html deleted file mode 100644 index ed3068ef..00000000 --- a/docs/site/apidocs/javax/measure/quantity/package-summary.html +++ /dev/null @@ -1,291 +0,0 @@ - - - - -javax.measure.quantity (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Package javax.measure.quantity

    -
    -
    -
    package javax.measure.quantity
    -
    -
    [OPTIONAL] Provides quantitative properties or attributes of thing such as - mass, time, distance, heat, and angular separation. - Quantities of different kinds are represented by sub-types of the - Quantity interface. - -

    Only quantities defined in the BIPM - SI Brochure - are provided here. Users can create their own quantity types by extending the - Quantity interface.

    - -

    This package supports measurable quantities, which can be expressed - as (Number, Unit) tuples. - Those tuples are not necessarily used directly in numerically intensive code. - They are more useful as meta-data converted to the application internal representation - (for example double primitive type with the requirement to provide values in meters) - before computation begins.

    - -

    Quantity sub-types are also used as parameterized type to characterize - generic classes and provide additional compile time check. This technique is - used extensively by the Unit interface, - but users can apply the same approach to their own classes. In the example - below, Sensor, MyQuantity and Vector3D are user-defined - classes:

    - - - // A general-purpose Sensor class used for temperature measurements:
    - Sensor<Temperature> sensor ...;
    - Temperature temp = sensor.getValue();

    - - // A vector of velocity in a three-dimensional space.
    - Unit<Speed> = metrePerSecond = METRE.divide(SECOND);
    - Vector3D<Speed> aircraftSpeed = new Vector3D(200.0, 50.0, -0.5, metrePerSecond); -
    - -

    This package holds only the quantities required by the metric system.

    -
    -
    Since:
    -
    1.0
    -
    Version:
    -
    2.8
    -
    Author:
    -
    Jean-Marie Dautelle, Werner Keil
    -
    See Also:
    -
    - -
    -
    -
    -
    -
      -
    • - -
    • -
    • -
      -
      Interfaces
      -
      -
      Class
      -
      Description
      - -
      -
      Rate of change of velocity with respect to time.
      -
      - -
      -
      Number of elementary entities (molecules, for example) of a substance.
      -
      - -
      -
      Figure formed by two lines diverging from a common point.
      -
      - -
      -
      Extent of a planar region or of the surface of a solid measured in square units.
      -
      - -
      -
      Catalytic activity.
      -
      - -
      -
      Dimensionless quantity.
      -
      - -
      -
      Electric capacitance.
      -
      - -
      -
      Electric charge.
      -
      - -
      -
      Electric conductance.
      -
      - -
      -
      Amount of electric charge flowing past a specified circuit point per unit time.
      -
      - -
      -
      Electric inductance.
      -
      - -
      -
      Electric potential or electromotive force.
      -
      - -
      -
      Electric resistance.
      -
      - -
      -
      Capacity of a physical system to do work.
      -
      - -
      -
      Quantity that tends to produce an acceleration of a body in the direction of its application.
      -
      - -
      -
      Number of times a specified phenomenon occurs within a specified interval.
      -
      - -
      -
      Illuminance.
      -
      - -
      -
      Extent of something along its greatest dimension or the extent of space between two objects or places.
      -
      - -
      -
      Luminous flux.
      -
      - -
      -
      Luminous flux density per solid angle as measured in a given direction relative to the emitting source.
      -
      - -
      -
      Magnetic flux.
      -
      - -
      -
      Magnetic flux density.
      -
      - -
      -
      Measure of the quantity of matter that a body or an object contains.
      -
      - -
      -
      Rate at which work is done.
      -
      - -
      -
      Force applied uniformly over a surface.
      -
      - -
      -
      Amount of energy deposited per unit of mass.
      -
      - -
      -
      Effective (or "equivalent") dose of radiation received by a human or some other living organism.
      -
      - -
      -
      Radioactive activity.
      -
      - -
      -
      Angle formed by three or more planes intersecting at a common point.
      -
      - -
      -
      Distance traveled divided by the time of travel.
      -
      - -
      -
      Degree of hotness or coldness of a body or an environment.
      -
      - -
      -
      Period of existence or persistence.
      -
      - -
      -
      Amount of space occupied by a three-dimensional object or region of space.
      -
      -
      -
      -
    • -
    -
    -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/quantity/package-tree.html b/docs/site/apidocs/javax/measure/quantity/package-tree.html deleted file mode 100644 index 7d79b847..00000000 --- a/docs/site/apidocs/javax/measure/quantity/package-tree.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - -javax.measure.quantity Class Hierarchy (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - - - - diff --git a/docs/site/apidocs/javax/measure/quantity/package-use.html b/docs/site/apidocs/javax/measure/quantity/package-use.html deleted file mode 100644 index d4dfac52..00000000 --- a/docs/site/apidocs/javax/measure/quantity/package-use.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Package javax.measure.quantity (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Package
    javax.measure.quantity

    -
    -No usage of javax.measure.quantity
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/spi/FormatService.FormatType.html b/docs/site/apidocs/javax/measure/spi/FormatService.FormatType.html deleted file mode 100644 index 464a769e..00000000 --- a/docs/site/apidocs/javax/measure/spi/FormatService.FormatType.html +++ /dev/null @@ -1,236 +0,0 @@ - - - - -FormatService.FormatType (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Enum FormatService.FormatType

    -
    - -
    -
    -
    All Implemented Interfaces:
    -
    Serializable, Comparable<FormatService.FormatType>, Constable
    -
    -
    -
    Enclosing interface:
    -
    FormatService
    -
    -
    - -
    The type of format, either a UnitFormat or QuantityFormat
    -
    -
    - -
    -
    -
      - -
    • -
      -

      Enum Constant Details

      - -
      -
    • - -
    • -
      -

      Method Details

      -
        -
      • -
        -

        values

        -
        public static FormatService.FormatType[] values()
        -
        Returns an array containing the constants of this enum type, in -the order they are declared.
        -
        -
        Returns:
        -
        an array containing the constants of this enum type, in the order they are declared
        -
        -
        -
      • -
      • -
        -

        valueOf

        -
        public static FormatService.FormatType valueOf(String name)
        -
        Returns the enum constant of this type with the specified name. -The string must match exactly an identifier used to declare an -enum constant in this type. (Extraneous whitespace characters are -not permitted.)
        -
        -
        Parameters:
        -
        name - the name of the enum constant to be returned.
        -
        Returns:
        -
        the enum constant with the specified name
        -
        Throws:
        -
        IllegalArgumentException - if this enum type has no constant with the specified name
        -
        NullPointerException - if the argument is null
        -
        -
        -
      • -
      -
      -
    • -
    -
    - -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/spi/FormatService.html b/docs/site/apidocs/javax/measure/spi/FormatService.html deleted file mode 100644 index 89c4f73d..00000000 --- a/docs/site/apidocs/javax/measure/spi/FormatService.html +++ /dev/null @@ -1,273 +0,0 @@ - - - - -FormatService (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Interface FormatService

    -
    -
    -
    -
    public interface FormatService
    -
    This interface represents the service to obtain instances of UnitFormat and QuantityFormat.
    -
    -
    Since:
    -
    2.0
    -
    Version:
    -
    2.3, May 20, 2023
    -
    Author:
    -
    Werner Keil
    -
    -
    -
    - -
    -
    -
      - -
    • -
      -

      Method Details

      -
        -
      • -
        -

        getQuantityFormat

        - -
        Returns the default quantity format. - - It is up to implementations what to consider a suitable default. For some (locale-sensitive) implementations it may be a quantity format based on - Locale.current() while others may return getQuantityFormat("Simple") or getQuantityFormat("ISO").
        -
        -
        Returns:
        -
        the default QuantityFormat implementation.
        -
        -
        -
      • -
      • -
        -

        getQuantityFormat

        - -
        Returns the quantity format having the specified name or null if none. - - For example (@code getQuantityFormat("Simple")} to return the simple QuantityFormat implementation.
        -
        -
        Parameters:
        -
        name - the name of the format.
        -
        Returns:
        -
        the corresponding quantity format.
        -
        -
        -
      • -
      • -
        -

        getUnitFormat

        - -
        Returns the default unit format. - - It is up to implementations what to consider a suitable default. For some (locale-sensitive) implementations it may be a unit format based on - Locale.current() while others may return getUnitFormat("Simple") or getUnitFormat("ISO").
        -
        -
        Returns:
        -
        the default UnitFormat implementation.
        -
        -
        -
      • -
      • -
        -

        getUnitFormat

        - -
        Returns the unit format having the specified name or null if none. - - For example getUnitFormat("Simple") to return a simple UnitFormat implementation.
        -
        -
        Parameters:
        -
        name - the name of the format.
        -
        Returns:
        -
        the corresponding unit format.
        -
        -
        -
      • -
      • -
        -

        getUnitFormat

        - -
        Returns the unit format having the specified name or null if none. - - For example getUnitFormat("Simple") to return a simple UnitFormat implementation.
        - The variant is an arbitrary value to allow a variation of a UnitFormat, - for example UTF vs. ASCII encoding of the simple UnitFormat - or case sensitive vs. case insensitive UCUM format. -

        If no variant is applicable, the UnitFormat matching the name only is returned.

        -
        -
        Parameters:
        -
        name - the name of the format.
        -
        variant - any arbitrary value used to indicate a variation of a UnitFormat.
        -
        Returns:
        -
        the corresponding unit format.
        -
        -
        -
      • -
      • -
        -

        getAvailableFormatNames

        - -
        Gets a list with available format names of a given type for this format service.
        -
        -
        Parameters:
        -
        type - the FormatService.FormatType
        -
        Returns:
        -
        list of available formats, never null.
        -
        -
        -
      • -
      -
      -
    • -
    -
    - -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/spi/QuantityFactory.html b/docs/site/apidocs/javax/measure/spi/QuantityFactory.html deleted file mode 100644 index 81f1975c..00000000 --- a/docs/site/apidocs/javax/measure/spi/QuantityFactory.html +++ /dev/null @@ -1,224 +0,0 @@ - - - - -QuantityFactory (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Interface QuantityFactory<Q extends Quantity<Q>>

    -
    -
    -
    -
    Type Parameters:
    -
    Q - the type of the Quantity result
    -
    -
    -
    public interface QuantityFactory<Q extends Quantity<Q>>
    -
    Represents a factory that accepts Number and Unit arguments to create Quantity results.
    -
    -
    Since:
    -
    1.0
    -
    Version:
    -
    1.4, December 18, 2018
    -
    Author:
    -
    Werner Keil, Otavio Santana
    -
    See Also:
    -
    - -
    -
    -
    -
    -
      - -
    • -
      -

      Method Summary

      -
      -
      -
      -
      -
      Modifier and Type
      -
      Method
      -
      Description
      - -
      create(Number value, - Unit<Q> unit)
      -
      -
      Returns the quantity for the specified number stated in the specified unit.
      -
      - -
      create(Number value, - Unit<Q> unit, - Quantity.Scale scale)
      -
      -
      Returns the quantity for the specified number stated in the specified unit and scale.
      -
      - - -
      -
      Returns the system unit for quantities produced by this factory or null if unknown.
      -
      -
      -
      -
      -
      -
    • -
    -
    -
    -
      - -
    • -
      -

      Method Details

      -
        -
      • -
        -

        create

        -
        Quantity<Q> create(Number value, - Unit<Q> unit, - Quantity.Scale scale)
        -
        Returns the quantity for the specified number stated in the specified unit and scale.
        -
        -
        Parameters:
        -
        value - the numeric value stated in the specified unit
        -
        unit - the unit
        -
        scale - The ABSOLUTE / RELATIVE scale of this quantity
        -
        Returns:
        -
        the corresponding quantity
        -
        Since:
        -
        2.0
        -
        -
        -
      • -
      • -
        -

        create

        -
        Quantity<Q> create(Number value, - Unit<Q> unit)
        -
        Returns the quantity for the specified number stated in the specified unit.
        -
        -
        Parameters:
        -
        value - the numeric value stated in the specified unit
        -
        unit - the unit
        -
        Returns:
        -
        the corresponding quantity
        -
        -
        -
      • -
      • -
        -

        getSystemUnit

        - -
        Returns the system unit for quantities produced by this factory or null if unknown. - -

        - Because the system unit is unique by quantity type, it can be be used to identify the quantity given the unit. For example: -

        - -
        -     static boolean isAngularSpeed(Unit<?> unit) {
        -         return unit.getSystemUnit().equals(RADIAN.divide(SECOND));
        -     }
        -     assert isAngularSpeed(REVOLUTION.divide(MINUTE)); // Returns true.
        - 
        -
        -
        Returns:
        -
        the system unit for this factory.
        -
        See Also:
        -
        - -
        -
        -
        -
      • -
      -
      -
    • -
    -
    - -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/spi/ServiceProvider.html b/docs/site/apidocs/javax/measure/spi/ServiceProvider.html deleted file mode 100644 index 146f13fe..00000000 --- a/docs/site/apidocs/javax/measure/spi/ServiceProvider.html +++ /dev/null @@ -1,363 +0,0 @@ - - - - -ServiceProvider (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class ServiceProvider

    -
    -
    Object -
    ServiceProvider
    -
    -
    -
    -
    public abstract class ServiceProvider -extends Object
    -
    Service Provider for Units of Measurement services. -

    - All the methods in this class are safe to use by multiple concurrent threads. -

    -
    -
    Since:
    -
    1.0
    -
    Version:
    -
    2.3, May 19, 2023
    -
    Author:
    -
    Werner Keil, Martin Desruisseaux
    -
    -
    -
    - -
    -
    -
      - -
    • -
      -

      Constructor Details

      -
        -
      • -
        -

        ServiceProvider

        -
        protected ServiceProvider()
        -
        Creates a new service provider. Only to be used by subclasses.
        -
        -
      • -
      -
      -
    • - -
    • -
      -

      Method Details

      -
        -
      • -
        -

        getPriority

        -
        public int getPriority()
        -
        Allows to define a priority for a registered ServiceProvider instance. - When multiple providers are registered in the system, the provider with the highest priority value is taken. - -

        If the "jakarta.annotation.Priority" annotation (from Jakarta Annotations) - or "javax.annotation.Priority" annotation (from JSR-250) is present on the ServiceProvider - implementation class, then that annotation (first if both were present) is taken and this getPriority() method is ignored. - Otherwise – if a Priority annotation is absent – this method is used as a fallback.

        -
        -
        Returns:
        -
        the provider's priority (default is 0).
        -
        -
        -
      • -
      • -
        -

        getSystemOfUnitsService

        - -
        Returns the service to obtain a SystemOfUnits, or null if none.
        -
        -
        Returns:
        -
        the service to obtain a SystemOfUnits, or null.
        -
        -
        -
      • -
      • -
        -

        getFormatService

        -
        public abstract FormatService getFormatService()
        -
        Returns the service to obtain UnitFormat and QuantityFormat or null if none.
        -
        -
        Returns:
        -
        the service to obtain a UnitFormat and QuantityFormat, or null.
        -
        Since:
        -
        2.0
        -
        -
        -
      • -
      • -
        -

        getQuantityFactory

        -
        public abstract <Q extends Quantity<Q>> -QuantityFactory<Q> getQuantityFactory(Class<Q> quantity)
        -
        Returns a factory for the given Quantity type.
        -
        -
        Type Parameters:
        -
        Q - the type of the Quantity instances created by the factory
        -
        Parameters:
        -
        quantity - the quantity type
        -
        Returns:
        -
        the QuantityFactory for the given type
        -
        -
        -
      • -
      • -
        -

        available

        -
        public static final List<ServiceProvider> available()
        -
        Returns the list of all service providers available for the current thread's context class loader. - The current service provider is always the first item in the returned list. - Other service providers after the first item may depend on the caller thread - (see service loader API note).
        -
        -
        Returns:
        -
        all service providers available for the current thread's context class loader.
        -
        -
        -
      • -
      • -
        -

        of

        -
        public static ServiceProvider of(String name)
        -
        Returns the ServiceProvider with the specified name. - The given name must match the name of at least one service provider available in the current thread's - context class loader. - The service provider names are the values of "jakarta.inject.Named" (from Jakarta Annotations) or - "javax.inject.Named" (from JSR-330) annotations when present (first if both were present), - or the value of Object.toString() method for providers without Named annotation. - -

        Implementors are encouraged to provide an Named annotation or to override Object.toString() - and use a unique enough name, e.g. the class name or other distinct attributes. - Should multiple service providers nevertheless use the same name, the one with the highest - priority wins.

        -
        -
        Parameters:
        -
        name - the name of the service provider to return
        -
        Returns:
        -
        the ServiceProvider with the specified name
        -
        Throws:
        -
        IllegalArgumentException - if available service providers do not contain a provider with the specified name
        -
        NullPointerException - if name is null
        -
        Since:
        -
        2.0
        -
        See Also:
        -
        - -
        -
        -
        -
      • -
      • -
        -

        current

        -
        public static final ServiceProvider current()
        -
        Returns the current ServiceProvider. If necessary the ServiceProvider will be lazily loaded. -

        - If there are no providers available, an IllegalStateException is thrown. - Otherwise the provider with the highest priority is used - or the one explicitly designated via setCurrent(ServiceProvider). -

        -
        -
        Returns:
        -
        the ServiceProvider used.
        -
        Throws:
        -
        IllegalStateException - if no ServiceProvider has been found.
        -
        See Also:
        -
        - -
        -
        -
        -
      • -
      • -
        -

        setCurrent

        -
        public static final ServiceProvider setCurrent(ServiceProvider provider)
        -
        Replaces the current ServiceProvider.
        -
        -
        Parameters:
        -
        provider - the new ServiceProvider
        -
        Returns:
        -
        the replaced provider, or null.
        -
        -
        -
      • -
      -
      -
    • -
    -
    - -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/spi/SystemOfUnits.html b/docs/site/apidocs/javax/measure/spi/SystemOfUnits.html deleted file mode 100644 index 46424785..00000000 --- a/docs/site/apidocs/javax/measure/spi/SystemOfUnits.html +++ /dev/null @@ -1,231 +0,0 @@ - - - - -SystemOfUnits (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Interface SystemOfUnits

    -
    -
    -
    -
    public interface SystemOfUnits
    -
    A system of units grouped together for historical or cultural reasons.
    - Common system of units are "SI" (System International), "Imperial" (British), "US" (US Customary). Nothing prevents a unit from belonging to - several systems of units at the same time (for example an Imperial system would have many of the units held by the US Customary - system).
    -
    -
    Since:
    -
    1.0
    -
    Version:
    -
    1.1, June 21, 2018
    -
    Author:
    -
    Jean-Marie Dautelle, Werner Keil
    -
    See Also:
    -
    - -
    -
    -
    -
    -
      - -
    • -
      -

      Method Summary

      -
      -
      -
      -
      -
      Modifier and Type
      -
      Method
      -
      Description
      - - -
       
      -
      <Q extends Quantity<Q>>
      Unit<Q>
      -
      getUnit(Class<Q> quantityType)
      -
      -
      Returns the default unit for the specified quantity or null if none is defined for the given quantity in this unit system.
      -
      -
      Unit<?>
      -
      getUnit(String string)
      -
      -
      Returns a unit with the given string representation or null if none is found in this unit system.
      -
      -
      Set<? extends Unit<?>>
      - -
      -
      Returns a read only view over the units explicitly defined by this system.
      -
      -
      Set<? extends Unit<?>>
      -
      getUnits(Dimension dimension)
      -
      -
      Returns the units defined in this system having the specified dimension (convenience method).
      -
      -
      -
      -
      -
      -
    • -
    -
    -
    -
      - -
    • -
      -

      Method Details

      -
        -
      • -
        -

        getName

        - -
        -
        Returns:
        -
        a name
        -
        -
        -
      • -
      • -
        -

        getUnit

        -
        <Q extends Quantity<Q>> Unit<Q> getUnit(Class<Q> quantityType)
        -
        Returns the default unit for the specified quantity or null if none is defined for the given quantity in this unit system.
        -
        -
        Type Parameters:
        -
        Q - the compile-time quantity type.
        -
        Parameters:
        -
        quantityType - the quantity type.
        -
        Returns:
        -
        the unit for the specified quantity.
        -
        -
        -
      • -
      • -
        -

        getUnit

        -
        Unit<?> getUnit(String string)
        -
        Returns a unit with the given string representation or null if none is found in this unit system.
        -
        -
        Parameters:
        -
        string - the string representation of a unit, not null.
        -
        Returns:
        -
        the unit with the given string representation.
        -
        Since:
        -
        2.0
        -
        -
        -
      • -
      • -
        -

        getUnits

        -
        Set<? extends Unit<?>> getUnits()
        -
        Returns a read only view over the units explicitly defined by this system. This include the base and derived units which are assigned a special - name and symbol. This set does not include new units created by arithmetic or other operations.
        -
        -
        Returns:
        -
        the defined collection of units.
        -
        -
        -
      • -
      • -
        -

        getUnits

        -
        Set<? extends Unit<?>> getUnits(Dimension dimension)
        -
        Returns the units defined in this system having the specified dimension (convenience method).
        -
        -
        Parameters:
        -
        dimension - the dimension of the units to be returned.
        -
        Returns:
        -
        the collection of units of specified dimension.
        -
        -
        -
      • -
      -
      -
    • -
    -
    - -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/spi/SystemOfUnitsService.html b/docs/site/apidocs/javax/measure/spi/SystemOfUnitsService.html deleted file mode 100644 index fe193ef6..00000000 --- a/docs/site/apidocs/javax/measure/spi/SystemOfUnitsService.html +++ /dev/null @@ -1,242 +0,0 @@ - - - - -SystemOfUnitsService (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Interface SystemOfUnitsService

    -
    -
    -
    -
    public interface SystemOfUnitsService
    -
    This interface represents the service to obtain a system - of units. - -

    - Common systems of units are "SI" (System International) or Metric system, - "Imperial" (British), or "US" (US Customary). -

    -
    -
    Since:
    -
    1.0
    -
    Version:
    -
    1.8, April 3, 2023
    -
    Author:
    -
    Jean-Marie Dautelle, Werner Keil, Martin - Desruisseaux
    -
    See Also:
    -
    - -
    -
    -
    -
    - -
    -
    -
      - -
    • -
      -

      Method Details

      -
        -
      • -
        -

        getSystemOfUnits

        - -
        Returns the default system of units. Depending on the - implementation this may be the International - System of Units or another default system.
        -
        -
        Returns:
        -
        the default system of units.
        -
        -
        -
      • -
      • -
        -

        getSystemOfUnits

        - -
        Returns the system of units having the specified name or null if - none is found.
        -
        -
        Parameters:
        -
        name - the system of unit name.
        -
        Returns:
        -
        the system of units for the given name.
        -
        -
        -
      • -
      • -
        -

        getAvailableSystemsOfUnits

        - -
        Gets a list with available systems for this SystemOfUnitsService.
        -
        -
        Returns:
        -
        list of available systems of units, never null.
        -
        -
        -
      • -
      • -
        -

        getPrefixes

        -
        default <P extends Prefix> Set<P> getPrefixes(Class<P> prefixType)
        -
        Returns a Set containing the values of a particular Prefix - type. - -

        - This method may be used to iterate over certain prefixes as follows: -

        -
        
        -    for(MetricPrefix mp : service.getPrefixes(MetricPrefix.class))
        -        System.out.println(p);
        - 
        - - The default implementation assumes that prefixes of the given type are implemented as an enumeration. - This is the case of the two default prefix implementations provided in JSR 385, - namely MetricPrefix and BinaryPrefix. - Implementors shall override this method if they provide prefixes implemented in a different way.
        -
        -
        Type Parameters:
        -
        P - compile-time value of the prefixType argument
        -
        Parameters:
        -
        prefixType - the Prefix type
        -
        Returns:
        -
        a set containing the constant values of this Prefix type, in the - order they're declared
        -
        Throws:
        -
        ClassCastException - if the class is not compatible with the desired - Prefix implementation or does not implement Prefix at all.
        -
        Since:
        -
        2.0
        -
        -
        -
      • -
      -
      -
    • -
    -
    - -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/spi/class-use/FormatService.FormatType.html b/docs/site/apidocs/javax/measure/spi/class-use/FormatService.FormatType.html deleted file mode 100644 index b1396302..00000000 --- a/docs/site/apidocs/javax/measure/spi/class-use/FormatService.FormatType.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - -Uses of Enum javax.measure.spi.FormatService.FormatType (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Enum
    javax.measure.spi.FormatService.FormatType

    -
    -
    Packages that use FormatService.FormatType
    -
    -
    Package
    -
    Description
    - -
    -
    [OPTIONAL] The Units of Measurement SPI.
    -
    -
    -
    - -
    -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/spi/class-use/FormatService.html b/docs/site/apidocs/javax/measure/spi/class-use/FormatService.html deleted file mode 100644 index 9a6d4183..00000000 --- a/docs/site/apidocs/javax/measure/spi/class-use/FormatService.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - -Uses of Interface javax.measure.spi.FormatService (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Interface
    javax.measure.spi.FormatService

    -
    -
    Packages that use FormatService
    -
    -
    Package
    -
    Description
    - -
    -
    [OPTIONAL] The Units of Measurement SPI.
    -
    -
    -
    - -
    -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/spi/class-use/QuantityFactory.html b/docs/site/apidocs/javax/measure/spi/class-use/QuantityFactory.html deleted file mode 100644 index cbe9ee11..00000000 --- a/docs/site/apidocs/javax/measure/spi/class-use/QuantityFactory.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - -Uses of Interface javax.measure.spi.QuantityFactory (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Interface
    javax.measure.spi.QuantityFactory

    -
    -
    Packages that use QuantityFactory
    -
    -
    Package
    -
    Description
    - -
    -
    [OPTIONAL] The Units of Measurement SPI.
    -
    -
    -
    - -
    -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/spi/class-use/ServiceProvider.html b/docs/site/apidocs/javax/measure/spi/class-use/ServiceProvider.html deleted file mode 100644 index 2c3f6f2a..00000000 --- a/docs/site/apidocs/javax/measure/spi/class-use/ServiceProvider.html +++ /dev/null @@ -1,123 +0,0 @@ - - - - -Uses of Class javax.measure.spi.ServiceProvider (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Class
    javax.measure.spi.ServiceProvider

    -
    -
    Packages that use ServiceProvider
    -
    -
    Package
    -
    Description
    - -
    -
    [OPTIONAL] The Units of Measurement SPI.
    -
    -
    -
    - -
    -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/spi/class-use/SystemOfUnits.html b/docs/site/apidocs/javax/measure/spi/class-use/SystemOfUnits.html deleted file mode 100644 index 0b9db287..00000000 --- a/docs/site/apidocs/javax/measure/spi/class-use/SystemOfUnits.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - -Uses of Interface javax.measure.spi.SystemOfUnits (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Interface
    javax.measure.spi.SystemOfUnits

    -
    -
    Packages that use SystemOfUnits
    -
    -
    Package
    -
    Description
    - -
    -
    [OPTIONAL] The Units of Measurement SPI.
    -
    -
    -
    - -
    -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/spi/class-use/SystemOfUnitsService.html b/docs/site/apidocs/javax/measure/spi/class-use/SystemOfUnitsService.html deleted file mode 100644 index 756f4731..00000000 --- a/docs/site/apidocs/javax/measure/spi/class-use/SystemOfUnitsService.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - -Uses of Interface javax.measure.spi.SystemOfUnitsService (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Interface
    javax.measure.spi.SystemOfUnitsService

    -
    -
    Packages that use SystemOfUnitsService
    -
    -
    Package
    -
    Description
    - -
    -
    [OPTIONAL] The Units of Measurement SPI.
    -
    -
    -
    - -
    -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/spi/package-summary.html b/docs/site/apidocs/javax/measure/spi/package-summary.html deleted file mode 100644 index 5b0daad0..00000000 --- a/docs/site/apidocs/javax/measure/spi/package-summary.html +++ /dev/null @@ -1,152 +0,0 @@ - - - - -javax.measure.spi (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Package javax.measure.spi

    -
    -
    -
    package javax.measure.spi
    -
    -
    [OPTIONAL] The Units of Measurement SPI. Provides services for units, quantities, unit systems and formatters/parsers.
    -
    -
    Since:
    -
    1.0
    -
    Version:
    -
    2.0, July 7, 2019
    -
    Author:
    -
    Jean-Marie Dautelle, Werner Keil, Martin Desruisseaux
    -
    -
    -
    -
      -
    • - -
    • -
    • -
      -
      -
      -
      -
      Class
      -
      Description
      - -
      -
      This interface represents the service to obtain instances of UnitFormat and QuantityFormat.
      -
      - -
      -
      The type of format, either a UnitFormat or QuantityFormat
      -
      - -
      -
      Represents a factory that accepts Number and Unit arguments to create Quantity results.
      -
      - -
      -
      Service Provider for Units of Measurement services.
      -
      - -
      -
      A system of units grouped together for historical or cultural reasons.
      - Common system of units are "SI" (System International), "Imperial" (British), "US" (US Customary).
      -
      - -
      -
      This interface represents the service to obtain a system - of units.
      -
      -
      -
      -
      -
    • -
    -
    -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/spi/package-tree.html b/docs/site/apidocs/javax/measure/spi/package-tree.html deleted file mode 100644 index 311d318a..00000000 --- a/docs/site/apidocs/javax/measure/spi/package-tree.html +++ /dev/null @@ -1,99 +0,0 @@ - - - - -javax.measure.spi Class Hierarchy (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Hierarchy For Package javax.measure.spi

    -Package Hierarchies: - -
    -
    -

    Class Hierarchy

    - -
    -
    -

    Interface Hierarchy

    - -
    -
    -

    Enum Hierarchy

    - -
    -
    - -
    -
    - - diff --git a/docs/site/apidocs/javax/measure/spi/package-use.html b/docs/site/apidocs/javax/measure/spi/package-use.html deleted file mode 100644 index ed888c05..00000000 --- a/docs/site/apidocs/javax/measure/spi/package-use.html +++ /dev/null @@ -1,110 +0,0 @@ - - - - -Uses of Package javax.measure.spi (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Package
    javax.measure.spi

    -
    -
    Packages that use javax.measure.spi
    -
    -
    Package
    -
    Description
    - -
    -
    [OPTIONAL] The Units of Measurement SPI.
    -
    -
    -
    - -
    -
    - -
    -
    - - diff --git a/docs/site/apidocs/jquery-ui.overrides.css b/docs/site/apidocs/jquery-ui.overrides.css deleted file mode 100644 index facf852c..00000000 --- a/docs/site/apidocs/jquery-ui.overrides.css +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright (c) 2020, 2022, 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; - border: 1px solid #F8981D; -} diff --git a/docs/site/apidocs/jquery/external/jquery/jquery.js b/docs/site/apidocs/jquery/external/jquery/jquery.js deleted file mode 100644 index 9b5206bc..00000000 --- a/docs/site/apidocs/jquery/external/jquery/jquery.js +++ /dev/null @@ -1,10364 +0,0 @@ -/*! - * jQuery JavaScript Library v3.3.1 - * https://jquery.com/ - * - * Includes Sizzle.js - * https://sizzlejs.com/ - * - * Copyright JS Foundation and other contributors - * Released under the MIT license - * https://jquery.org/license - * - * Date: 2018-01-20T17:24Z - */ -( function( global, factory ) { - - "use strict"; - - if ( typeof module === "object" && typeof module.exports === "object" ) { - - // For CommonJS and CommonJS-like environments where a proper `window` - // is present, execute the factory and get jQuery. - // For environments that do not have a `window` with a `document` - // (such as Node.js), expose a factory as module.exports. - // This accentuates the need for the creation of a real `window`. - // e.g. var jQuery = require("jquery")(window); - // See ticket #14549 for more info. - module.exports = global.document ? - factory( global, true ) : - function( w ) { - if ( !w.document ) { - throw new Error( "jQuery requires a window with a document" ); - } - return factory( w ); - }; - } else { - factory( global ); - } - -// Pass this if window is not defined yet -} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) { - -// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1 -// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode -// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common -// enough that all such attempts are guarded in a try block. -"use strict"; - -var arr = []; - -var document = window.document; - -var getProto = Object.getPrototypeOf; - -var slice = arr.slice; - -var concat = arr.concat; - -var push = arr.push; - -var indexOf = arr.indexOf; - -var class2type = {}; - -var toString = class2type.toString; - -var hasOwn = class2type.hasOwnProperty; - -var fnToString = hasOwn.toString; - -var ObjectFunctionString = fnToString.call( Object ); - -var support = {}; - -var isFunction = function isFunction( obj ) { - - // Support: Chrome <=57, Firefox <=52 - // In some browsers, typeof returns "function" for HTML elements - // (i.e., `typeof document.createElement( "object" ) === "function"`). - // We don't want to classify *any* DOM node as a function. - return typeof obj === "function" && typeof obj.nodeType !== "number"; - }; - - -var isWindow = function isWindow( obj ) { - return obj != null && obj === obj.window; - }; - - - - - var preservedScriptAttributes = { - type: true, - src: true, - noModule: true - }; - - function DOMEval( code, doc, node ) { - doc = doc || document; - - var i, - script = doc.createElement( "script" ); - - script.text = code; - if ( node ) { - for ( i in preservedScriptAttributes ) { - if ( node[ i ] ) { - script[ i ] = node[ i ]; - } - } - } - doc.head.appendChild( script ).parentNode.removeChild( script ); - } - - -function toType( obj ) { - if ( obj == null ) { - return obj + ""; - } - - // Support: Android <=2.3 only (functionish RegExp) - return typeof obj === "object" || typeof obj === "function" ? - class2type[ toString.call( obj ) ] || "object" : - typeof obj; -} -/* global Symbol */ -// Defining this global in .eslintrc.json would create a danger of using the global -// unguarded in another place, it seems safer to define global only for this module - - - -var - version = "3.3.1", - - // Define a local copy of jQuery - jQuery = function( selector, context ) { - - // The jQuery object is actually just the init constructor 'enhanced' - // Need init if jQuery is called (just allow error to be thrown if not included) - return new jQuery.fn.init( selector, context ); - }, - - // Support: Android <=4.0 only - // Make sure we trim BOM and NBSP - rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g; - -jQuery.fn = jQuery.prototype = { - - // The current version of jQuery being used - jquery: version, - - constructor: jQuery, - - // The default length of a jQuery object is 0 - length: 0, - - toArray: function() { - return slice.call( this ); - }, - - // Get the Nth element in the matched element set OR - // Get the whole matched element set as a clean array - get: function( num ) { - - // Return all the elements in a clean array - if ( num == null ) { - return slice.call( this ); - } - - // Return just the one element from the set - return num < 0 ? this[ num + this.length ] : this[ num ]; - }, - - // Take an array of elements and push it onto the stack - // (returning the new matched element set) - pushStack: function( elems ) { - - // Build a new jQuery matched element set - var ret = jQuery.merge( this.constructor(), elems ); - - // Add the old object onto the stack (as a reference) - ret.prevObject = this; - - // Return the newly-formed element set - return ret; - }, - - // Execute a callback for every element in the matched set. - each: function( callback ) { - return jQuery.each( this, callback ); - }, - - map: function( callback ) { - return this.pushStack( jQuery.map( this, function( elem, i ) { - return callback.call( elem, i, elem ); - } ) ); - }, - - slice: function() { - return this.pushStack( slice.apply( this, arguments ) ); - }, - - first: function() { - return this.eq( 0 ); - }, - - last: function() { - return this.eq( -1 ); - }, - - eq: function( i ) { - var len = this.length, - j = +i + ( i < 0 ? len : 0 ); - return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] ); - }, - - end: function() { - return this.prevObject || this.constructor(); - }, - - // For internal use only. - // Behaves like an Array's method, not like a jQuery method. - push: push, - sort: arr.sort, - splice: arr.splice -}; - -jQuery.extend = jQuery.fn.extend = function() { - var options, name, src, copy, copyIsArray, clone, - target = arguments[ 0 ] || {}, - i = 1, - length = arguments.length, - deep = false; - - // Handle a deep copy situation - if ( typeof target === "boolean" ) { - deep = target; - - // Skip the boolean and the target - target = arguments[ i ] || {}; - i++; - } - - // Handle case when target is a string or something (possible in deep copy) - if ( typeof target !== "object" && !isFunction( target ) ) { - target = {}; - } - - // Extend jQuery itself if only one argument is passed - if ( i === length ) { - target = this; - i--; - } - - for ( ; i < length; i++ ) { - - // Only deal with non-null/undefined values - if ( ( options = arguments[ i ] ) != null ) { - - // Extend the base object - for ( name in options ) { - src = target[ name ]; - copy = options[ name ]; - - // Prevent never-ending loop - if ( target === copy ) { - continue; - } - - // Recurse if we're merging plain objects or arrays - if ( deep && copy && ( jQuery.isPlainObject( copy ) || - ( copyIsArray = Array.isArray( copy ) ) ) ) { - - if ( copyIsArray ) { - copyIsArray = false; - clone = src && Array.isArray( src ) ? src : []; - - } else { - clone = src && jQuery.isPlainObject( src ) ? src : {}; - } - - // Never move original objects, clone them - target[ name ] = jQuery.extend( deep, clone, copy ); - - // Don't bring in undefined values - } else if ( copy !== undefined ) { - target[ name ] = copy; - } - } - } - } - - // Return the modified object - return target; -}; - -jQuery.extend( { - - // Unique for each copy of jQuery on the page - expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), - - // Assume jQuery is ready without the ready module - isReady: true, - - error: function( msg ) { - throw new Error( msg ); - }, - - noop: function() {}, - - isPlainObject: function( obj ) { - var proto, Ctor; - - // Detect obvious negatives - // Use toString instead of jQuery.type to catch host objects - if ( !obj || toString.call( obj ) !== "[object Object]" ) { - return false; - } - - proto = getProto( obj ); - - // Objects with no prototype (e.g., `Object.create( null )`) are plain - if ( !proto ) { - return true; - } - - // Objects with prototype are plain iff they were constructed by a global Object function - Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor; - return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString; - }, - - isEmptyObject: function( obj ) { - - /* eslint-disable no-unused-vars */ - // See https://github.com/eslint/eslint/issues/6125 - var name; - - for ( name in obj ) { - return false; - } - return true; - }, - - // Evaluates a script in a global context - globalEval: function( code ) { - DOMEval( code ); - }, - - each: function( obj, callback ) { - var length, i = 0; - - if ( isArrayLike( obj ) ) { - length = obj.length; - for ( ; i < length; i++ ) { - if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { - break; - } - } - } else { - for ( i in obj ) { - if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { - break; - } - } - } - - return obj; - }, - - // Support: Android <=4.0 only - trim: function( text ) { - return text == null ? - "" : - ( text + "" ).replace( rtrim, "" ); - }, - - // results is for internal usage only - makeArray: function( arr, results ) { - var ret = results || []; - - if ( arr != null ) { - if ( isArrayLike( Object( arr ) ) ) { - jQuery.merge( ret, - typeof arr === "string" ? - [ arr ] : arr - ); - } else { - push.call( ret, arr ); - } - } - - return ret; - }, - - inArray: function( elem, arr, i ) { - return arr == null ? -1 : indexOf.call( arr, elem, i ); - }, - - // Support: Android <=4.0 only, PhantomJS 1 only - // push.apply(_, arraylike) throws on ancient WebKit - merge: function( first, second ) { - var len = +second.length, - j = 0, - i = first.length; - - for ( ; j < len; j++ ) { - first[ i++ ] = second[ j ]; - } - - first.length = i; - - return first; - }, - - grep: function( elems, callback, invert ) { - var callbackInverse, - matches = [], - i = 0, - length = elems.length, - callbackExpect = !invert; - - // Go through the array, only saving the items - // that pass the validator function - for ( ; i < length; i++ ) { - callbackInverse = !callback( elems[ i ], i ); - if ( callbackInverse !== callbackExpect ) { - matches.push( elems[ i ] ); - } - } - - return matches; - }, - - // arg is for internal usage only - map: function( elems, callback, arg ) { - var length, value, - i = 0, - ret = []; - - // Go through the array, translating each of the items to their new values - if ( isArrayLike( elems ) ) { - length = elems.length; - for ( ; i < length; i++ ) { - value = callback( elems[ i ], i, arg ); - - if ( value != null ) { - ret.push( value ); - } - } - - // Go through every key on the object, - } else { - for ( i in elems ) { - value = callback( elems[ i ], i, arg ); - - if ( value != null ) { - ret.push( value ); - } - } - } - - // Flatten any nested arrays - return concat.apply( [], ret ); - }, - - // A global GUID counter for objects - guid: 1, - - // jQuery.support is not used in Core but other projects attach their - // properties to it so it needs to exist. - support: support -} ); - -if ( typeof Symbol === "function" ) { - jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ]; -} - -// Populate the class2type map -jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), -function( i, name ) { - class2type[ "[object " + name + "]" ] = name.toLowerCase(); -} ); - -function isArrayLike( obj ) { - - // Support: real iOS 8.2 only (not reproducible in simulator) - // `in` check used to prevent JIT error (gh-2145) - // hasOwn isn't used here due to false negatives - // regarding Nodelist length in IE - var length = !!obj && "length" in obj && obj.length, - type = toType( obj ); - - if ( isFunction( obj ) || isWindow( obj ) ) { - return false; - } - - return type === "array" || length === 0 || - typeof length === "number" && length > 0 && ( length - 1 ) in obj; -} -var Sizzle = -/*! - * Sizzle CSS Selector Engine v2.3.3 - * https://sizzlejs.com/ - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license - * http://jquery.org/license - * - * Date: 2016-08-08 - */ -(function( window ) { - -var i, - support, - Expr, - getText, - isXML, - tokenize, - compile, - select, - outermostContext, - sortInput, - hasDuplicate, - - // Local document vars - setDocument, - document, - docElem, - documentIsHTML, - rbuggyQSA, - rbuggyMatches, - matches, - contains, - - // Instance-specific data - expando = "sizzle" + 1 * new Date(), - preferredDoc = window.document, - dirruns = 0, - done = 0, - classCache = createCache(), - tokenCache = createCache(), - compilerCache = createCache(), - sortOrder = function( a, b ) { - if ( a === b ) { - hasDuplicate = true; - } - return 0; - }, - - // Instance methods - hasOwn = ({}).hasOwnProperty, - arr = [], - pop = arr.pop, - push_native = arr.push, - push = arr.push, - slice = arr.slice, - // Use a stripped-down indexOf as it's faster than native - // https://jsperf.com/thor-indexof-vs-for/5 - indexOf = function( list, elem ) { - var i = 0, - len = list.length; - for ( ; i < len; i++ ) { - if ( list[i] === elem ) { - return i; - } - } - return -1; - }, - - booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", - - // Regular expressions - - // http://www.w3.org/TR/css3-selectors/#whitespace - whitespace = "[\\x20\\t\\r\\n\\f]", - - // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier - identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+", - - // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors - attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + - // Operator (capture 2) - "*([*^$|!~]?=)" + whitespace + - // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" - "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace + - "*\\]", - - pseudos = ":(" + identifier + ")(?:\\((" + - // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: - // 1. quoted (capture 3; capture 4 or capture 5) - "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + - // 2. simple (capture 6) - "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + - // 3. anything else (capture 2) - ".*" + - ")\\)|)", - - // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter - rwhitespace = new RegExp( whitespace + "+", "g" ), - rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), - - rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), - rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), - - rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ), - - rpseudo = new RegExp( pseudos ), - ridentifier = new RegExp( "^" + identifier + "$" ), - - matchExpr = { - "ID": new RegExp( "^#(" + identifier + ")" ), - "CLASS": new RegExp( "^\\.(" + identifier + ")" ), - "TAG": new RegExp( "^(" + identifier + "|[*])" ), - "ATTR": new RegExp( "^" + attributes ), - "PSEUDO": new RegExp( "^" + pseudos ), - "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + - "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + - "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), - "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), - // For use in libraries implementing .is() - // We use this for POS matching in `select` - "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + - whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) - }, - - rinputs = /^(?:input|select|textarea|button)$/i, - rheader = /^h\d$/i, - - rnative = /^[^{]+\{\s*\[native \w/, - - // Easily-parseable/retrievable ID or TAG or CLASS selectors - rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, - - rsibling = /[+~]/, - - // CSS escapes - // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters - runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), - funescape = function( _, escaped, escapedWhitespace ) { - var high = "0x" + escaped - 0x10000; - // NaN means non-codepoint - // Support: Firefox<24 - // Workaround erroneous numeric interpretation of +"0x" - return high !== high || escapedWhitespace ? - escaped : - high < 0 ? - // BMP codepoint - String.fromCharCode( high + 0x10000 ) : - // Supplemental Plane codepoint (surrogate pair) - String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); - }, - - // CSS string/identifier serialization - // https://drafts.csswg.org/cssom/#common-serializing-idioms - rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, - fcssescape = function( ch, asCodePoint ) { - if ( asCodePoint ) { - - // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER - if ( ch === "\0" ) { - return "\uFFFD"; - } - - // Control characters and (dependent upon position) numbers get escaped as code points - return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; - } - - // Other potentially-special ASCII characters get backslash-escaped - return "\\" + ch; - }, - - // Used for iframes - // See setDocument() - // Removing the function wrapper causes a "Permission Denied" - // error in IE - unloadHandler = function() { - setDocument(); - }, - - disabledAncestor = addCombinator( - function( elem ) { - return elem.disabled === true && ("form" in elem || "label" in elem); - }, - { dir: "parentNode", next: "legend" } - ); - -// Optimize for push.apply( _, NodeList ) -try { - push.apply( - (arr = slice.call( preferredDoc.childNodes )), - preferredDoc.childNodes - ); - // Support: Android<4.0 - // Detect silently failing push.apply - arr[ preferredDoc.childNodes.length ].nodeType; -} catch ( e ) { - push = { apply: arr.length ? - - // Leverage slice if possible - function( target, els ) { - push_native.apply( target, slice.call(els) ); - } : - - // Support: IE<9 - // Otherwise append directly - function( target, els ) { - var j = target.length, - i = 0; - // Can't trust NodeList.length - while ( (target[j++] = els[i++]) ) {} - target.length = j - 1; - } - }; -} - -function Sizzle( selector, context, results, seed ) { - var m, i, elem, nid, match, groups, newSelector, - newContext = context && context.ownerDocument, - - // nodeType defaults to 9, since context defaults to document - nodeType = context ? context.nodeType : 9; - - results = results || []; - - // Return early from calls with invalid selector or context - if ( typeof selector !== "string" || !selector || - nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { - - return results; - } - - // Try to shortcut find operations (as opposed to filters) in HTML documents - if ( !seed ) { - - if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { - setDocument( context ); - } - context = context || document; - - if ( documentIsHTML ) { - - // If the selector is sufficiently simple, try using a "get*By*" DOM method - // (excepting DocumentFragment context, where the methods don't exist) - if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) { - - // ID selector - if ( (m = match[1]) ) { - - // Document context - if ( nodeType === 9 ) { - if ( (elem = context.getElementById( m )) ) { - - // Support: IE, Opera, Webkit - // TODO: identify versions - // getElementById can match elements by name instead of ID - if ( elem.id === m ) { - results.push( elem ); - return results; - } - } else { - return results; - } - - // Element context - } else { - - // Support: IE, Opera, Webkit - // TODO: identify versions - // getElementById can match elements by name instead of ID - if ( newContext && (elem = newContext.getElementById( m )) && - contains( context, elem ) && - elem.id === m ) { - - results.push( elem ); - return results; - } - } - - // Type selector - } else if ( match[2] ) { - push.apply( results, context.getElementsByTagName( selector ) ); - return results; - - // Class selector - } else if ( (m = match[3]) && support.getElementsByClassName && - context.getElementsByClassName ) { - - push.apply( results, context.getElementsByClassName( m ) ); - return results; - } - } - - // Take advantage of querySelectorAll - if ( support.qsa && - !compilerCache[ selector + " " ] && - (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { - - if ( nodeType !== 1 ) { - newContext = context; - newSelector = selector; - - // qSA looks outside Element context, which is not what we want - // Thanks to Andrew Dupont for this workaround technique - // Support: IE <=8 - // Exclude object elements - } else if ( context.nodeName.toLowerCase() !== "object" ) { - - // Capture the context ID, setting it first if necessary - if ( (nid = context.getAttribute( "id" )) ) { - nid = nid.replace( rcssescape, fcssescape ); - } else { - context.setAttribute( "id", (nid = expando) ); - } - - // Prefix every selector in the list - groups = tokenize( selector ); - i = groups.length; - while ( i-- ) { - groups[i] = "#" + nid + " " + toSelector( groups[i] ); - } - newSelector = groups.join( "," ); - - // Expand context for sibling selectors - newContext = rsibling.test( selector ) && testContext( context.parentNode ) || - context; - } - - if ( newSelector ) { - try { - push.apply( results, - newContext.querySelectorAll( newSelector ) - ); - return results; - } catch ( qsaError ) { - } finally { - if ( nid === expando ) { - context.removeAttribute( "id" ); - } - } - } - } - } - } - - // All others - return select( selector.replace( rtrim, "$1" ), context, results, seed ); -} - -/** - * Create key-value caches of limited size - * @returns {function(string, object)} Returns the Object data after storing it on itself with - * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) - * deleting the oldest entry - */ -function createCache() { - var keys = []; - - function cache( key, value ) { - // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) - if ( keys.push( key + " " ) > Expr.cacheLength ) { - // Only keep the most recent entries - delete cache[ keys.shift() ]; - } - return (cache[ key + " " ] = value); - } - return cache; -} - -/** - * Mark a function for special use by Sizzle - * @param {Function} fn The function to mark - */ -function markFunction( fn ) { - fn[ expando ] = true; - return fn; -} - -/** - * Support testing using an element - * @param {Function} fn Passed the created element and returns a boolean result - */ -function assert( fn ) { - var el = document.createElement("fieldset"); - - try { - return !!fn( el ); - } catch (e) { - return false; - } finally { - // Remove from its parent by default - if ( el.parentNode ) { - el.parentNode.removeChild( el ); - } - // release memory in IE - el = null; - } -} - -/** - * Adds the same handler for all of the specified attrs - * @param {String} attrs Pipe-separated list of attributes - * @param {Function} handler The method that will be applied - */ -function addHandle( attrs, handler ) { - var arr = attrs.split("|"), - i = arr.length; - - while ( i-- ) { - Expr.attrHandle[ arr[i] ] = handler; - } -} - -/** - * Checks document order of two siblings - * @param {Element} a - * @param {Element} b - * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b - */ -function siblingCheck( a, b ) { - var cur = b && a, - diff = cur && a.nodeType === 1 && b.nodeType === 1 && - a.sourceIndex - b.sourceIndex; - - // Use IE sourceIndex if available on both nodes - if ( diff ) { - return diff; - } - - // Check if b follows a - if ( cur ) { - while ( (cur = cur.nextSibling) ) { - if ( cur === b ) { - return -1; - } - } - } - - return a ? 1 : -1; -} - -/** - * Returns a function to use in pseudos for input types - * @param {String} type - */ -function createInputPseudo( type ) { - return function( elem ) { - var name = elem.nodeName.toLowerCase(); - return name === "input" && elem.type === type; - }; -} - -/** - * Returns a function to use in pseudos for buttons - * @param {String} type - */ -function createButtonPseudo( type ) { - return function( elem ) { - var name = elem.nodeName.toLowerCase(); - return (name === "input" || name === "button") && elem.type === type; - }; -} - -/** - * Returns a function to use in pseudos for :enabled/:disabled - * @param {Boolean} disabled true for :disabled; false for :enabled - */ -function createDisabledPseudo( disabled ) { - - // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable - return function( elem ) { - - // Only certain elements can match :enabled or :disabled - // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled - // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled - if ( "form" in elem ) { - - // Check for inherited disabledness on relevant non-disabled elements: - // * listed form-associated elements in a disabled fieldset - // https://html.spec.whatwg.org/multipage/forms.html#category-listed - // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled - // * option elements in a disabled optgroup - // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled - // All such elements have a "form" property. - if ( elem.parentNode && elem.disabled === false ) { - - // Option elements defer to a parent optgroup if present - if ( "label" in elem ) { - if ( "label" in elem.parentNode ) { - return elem.parentNode.disabled === disabled; - } else { - return elem.disabled === disabled; - } - } - - // Support: IE 6 - 11 - // Use the isDisabled shortcut property to check for disabled fieldset ancestors - return elem.isDisabled === disabled || - - // Where there is no isDisabled, check manually - /* jshint -W018 */ - elem.isDisabled !== !disabled && - disabledAncestor( elem ) === disabled; - } - - return elem.disabled === disabled; - - // Try to winnow out elements that can't be disabled before trusting the disabled property. - // Some victims get caught in our net (label, legend, menu, track), but it shouldn't - // even exist on them, let alone have a boolean value. - } else if ( "label" in elem ) { - return elem.disabled === disabled; - } - - // Remaining elements are neither :enabled nor :disabled - return false; - }; -} - -/** - * Returns a function to use in pseudos for positionals - * @param {Function} fn - */ -function createPositionalPseudo( fn ) { - return markFunction(function( argument ) { - argument = +argument; - return markFunction(function( seed, matches ) { - var j, - matchIndexes = fn( [], seed.length, argument ), - i = matchIndexes.length; - - // Match elements found at the specified indexes - while ( i-- ) { - if ( seed[ (j = matchIndexes[i]) ] ) { - seed[j] = !(matches[j] = seed[j]); - } - } - }); - }); -} - -/** - * Checks a node for validity as a Sizzle context - * @param {Element|Object=} context - * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value - */ -function testContext( context ) { - return context && typeof context.getElementsByTagName !== "undefined" && context; -} - -// Expose support vars for convenience -support = Sizzle.support = {}; - -/** - * Detects XML nodes - * @param {Element|Object} elem An element or a document - * @returns {Boolean} True iff elem is a non-HTML XML node - */ -isXML = Sizzle.isXML = function( elem ) { - // documentElement is verified for cases where it doesn't yet exist - // (such as loading iframes in IE - #4833) - var documentElement = elem && (elem.ownerDocument || elem).documentElement; - return documentElement ? documentElement.nodeName !== "HTML" : false; -}; - -/** - * Sets document-related variables once based on the current document - * @param {Element|Object} [doc] An element or document object to use to set the document - * @returns {Object} Returns the current document - */ -setDocument = Sizzle.setDocument = function( node ) { - var hasCompare, subWindow, - doc = node ? node.ownerDocument || node : preferredDoc; - - // Return early if doc is invalid or already selected - if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { - return document; - } - - // Update global variables - document = doc; - docElem = document.documentElement; - documentIsHTML = !isXML( document ); - - // Support: IE 9-11, Edge - // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936) - if ( preferredDoc !== document && - (subWindow = document.defaultView) && subWindow.top !== subWindow ) { - - // Support: IE 11, Edge - if ( subWindow.addEventListener ) { - subWindow.addEventListener( "unload", unloadHandler, false ); - - // Support: IE 9 - 10 only - } else if ( subWindow.attachEvent ) { - subWindow.attachEvent( "onunload", unloadHandler ); - } - } - - /* Attributes - ---------------------------------------------------------------------- */ - - // Support: IE<8 - // Verify that getAttribute really returns attributes and not properties - // (excepting IE8 booleans) - support.attributes = assert(function( el ) { - el.className = "i"; - return !el.getAttribute("className"); - }); - - /* getElement(s)By* - ---------------------------------------------------------------------- */ - - // Check if getElementsByTagName("*") returns only elements - support.getElementsByTagName = assert(function( el ) { - el.appendChild( document.createComment("") ); - return !el.getElementsByTagName("*").length; - }); - - // Support: IE<9 - support.getElementsByClassName = rnative.test( document.getElementsByClassName ); - - // Support: IE<10 - // Check if getElementById returns elements by name - // The broken getElementById methods don't pick up programmatically-set names, - // so use a roundabout getElementsByName test - support.getById = assert(function( el ) { - docElem.appendChild( el ).id = expando; - return !document.getElementsByName || !document.getElementsByName( expando ).length; - }); - - // ID filter and find - if ( support.getById ) { - Expr.filter["ID"] = function( id ) { - var attrId = id.replace( runescape, funescape ); - return function( elem ) { - return elem.getAttribute("id") === attrId; - }; - }; - Expr.find["ID"] = function( id, context ) { - if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { - var elem = context.getElementById( id ); - return elem ? [ elem ] : []; - } - }; - } else { - Expr.filter["ID"] = function( id ) { - var attrId = id.replace( runescape, funescape ); - return function( elem ) { - var node = typeof elem.getAttributeNode !== "undefined" && - elem.getAttributeNode("id"); - return node && node.value === attrId; - }; - }; - - // Support: IE 6 - 7 only - // getElementById is not reliable as a find shortcut - Expr.find["ID"] = function( id, context ) { - if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { - var node, i, elems, - elem = context.getElementById( id ); - - if ( elem ) { - - // Verify the id attribute - node = elem.getAttributeNode("id"); - if ( node && node.value === id ) { - return [ elem ]; - } - - // Fall back on getElementsByName - elems = context.getElementsByName( id ); - i = 0; - while ( (elem = elems[i++]) ) { - node = elem.getAttributeNode("id"); - if ( node && node.value === id ) { - return [ elem ]; - } - } - } - - return []; - } - }; - } - - // Tag - Expr.find["TAG"] = support.getElementsByTagName ? - function( tag, context ) { - if ( typeof context.getElementsByTagName !== "undefined" ) { - return context.getElementsByTagName( tag ); - - // DocumentFragment nodes don't have gEBTN - } else if ( support.qsa ) { - return context.querySelectorAll( tag ); - } - } : - - function( tag, context ) { - var elem, - tmp = [], - i = 0, - // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too - results = context.getElementsByTagName( tag ); - - // Filter out possible comments - if ( tag === "*" ) { - while ( (elem = results[i++]) ) { - if ( elem.nodeType === 1 ) { - tmp.push( elem ); - } - } - - return tmp; - } - return results; - }; - - // Class - Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { - if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) { - return context.getElementsByClassName( className ); - } - }; - - /* QSA/matchesSelector - ---------------------------------------------------------------------- */ - - // QSA and matchesSelector support - - // matchesSelector(:active) reports false when true (IE9/Opera 11.5) - rbuggyMatches = []; - - // qSa(:focus) reports false when true (Chrome 21) - // We allow this because of a bug in IE8/9 that throws an error - // whenever `document.activeElement` is accessed on an iframe - // So, we allow :focus to pass through QSA all the time to avoid the IE error - // See https://bugs.jquery.com/ticket/13378 - rbuggyQSA = []; - - if ( (support.qsa = rnative.test( document.querySelectorAll )) ) { - // Build QSA regex - // Regex strategy adopted from Diego Perini - assert(function( el ) { - // Select is set to empty string on purpose - // This is to test IE's treatment of not explicitly - // setting a boolean content attribute, - // since its presence should be enough - // https://bugs.jquery.com/ticket/12359 - docElem.appendChild( el ).innerHTML = "" + - ""; - - // Support: IE8, Opera 11-12.16 - // Nothing should be selected when empty strings follow ^= or $= or *= - // The test attribute must be unknown in Opera but "safe" for WinRT - // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section - if ( el.querySelectorAll("[msallowcapture^='']").length ) { - rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); - } - - // Support: IE8 - // Boolean attributes and "value" are not treated correctly - if ( !el.querySelectorAll("[selected]").length ) { - rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); - } - - // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+ - if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) { - rbuggyQSA.push("~="); - } - - // Webkit/Opera - :checked should return selected option elements - // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked - // IE8 throws error here and will not see later tests - if ( !el.querySelectorAll(":checked").length ) { - rbuggyQSA.push(":checked"); - } - - // Support: Safari 8+, iOS 8+ - // https://bugs.webkit.org/show_bug.cgi?id=136851 - // In-page `selector#id sibling-combinator selector` fails - if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) { - rbuggyQSA.push(".#.+[+~]"); - } - }); - - assert(function( el ) { - el.innerHTML = "" + - ""; - - // Support: Windows 8 Native Apps - // The type and name attributes are restricted during .innerHTML assignment - var input = document.createElement("input"); - input.setAttribute( "type", "hidden" ); - el.appendChild( input ).setAttribute( "name", "D" ); - - // Support: IE8 - // Enforce case-sensitivity of name attribute - if ( el.querySelectorAll("[name=d]").length ) { - rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); - } - - // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) - // IE8 throws error here and will not see later tests - if ( el.querySelectorAll(":enabled").length !== 2 ) { - rbuggyQSA.push( ":enabled", ":disabled" ); - } - - // Support: IE9-11+ - // IE's :disabled selector does not pick up the children of disabled fieldsets - docElem.appendChild( el ).disabled = true; - if ( el.querySelectorAll(":disabled").length !== 2 ) { - rbuggyQSA.push( ":enabled", ":disabled" ); - } - - // Opera 10-11 does not throw on post-comma invalid pseudos - el.querySelectorAll("*,:x"); - rbuggyQSA.push(",.*:"); - }); - } - - if ( (support.matchesSelector = rnative.test( (matches = docElem.matches || - docElem.webkitMatchesSelector || - docElem.mozMatchesSelector || - docElem.oMatchesSelector || - docElem.msMatchesSelector) )) ) { - - assert(function( el ) { - // Check to see if it's possible to do matchesSelector - // on a disconnected node (IE 9) - support.disconnectedMatch = matches.call( el, "*" ); - - // This should fail with an exception - // Gecko does not error, returns false instead - matches.call( el, "[s!='']:x" ); - rbuggyMatches.push( "!=", pseudos ); - }); - } - - rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); - rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); - - /* Contains - ---------------------------------------------------------------------- */ - hasCompare = rnative.test( docElem.compareDocumentPosition ); - - // Element contains another - // Purposefully self-exclusive - // As in, an element does not contain itself - contains = hasCompare || rnative.test( docElem.contains ) ? - function( a, b ) { - var adown = a.nodeType === 9 ? a.documentElement : a, - bup = b && b.parentNode; - return a === bup || !!( bup && bup.nodeType === 1 && ( - adown.contains ? - adown.contains( bup ) : - a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 - )); - } : - function( a, b ) { - if ( b ) { - while ( (b = b.parentNode) ) { - if ( b === a ) { - return true; - } - } - } - return false; - }; - - /* Sorting - ---------------------------------------------------------------------- */ - - // Document order sorting - sortOrder = hasCompare ? - function( a, b ) { - - // Flag for duplicate removal - if ( a === b ) { - hasDuplicate = true; - return 0; - } - - // Sort on method existence if only one input has compareDocumentPosition - var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; - if ( compare ) { - return compare; - } - - // Calculate position if both inputs belong to the same document - compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ? - a.compareDocumentPosition( b ) : - - // Otherwise we know they are disconnected - 1; - - // Disconnected nodes - if ( compare & 1 || - (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) { - - // Choose the first element that is related to our preferred document - if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) { - return -1; - } - if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) { - return 1; - } - - // Maintain original order - return sortInput ? - ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : - 0; - } - - return compare & 4 ? -1 : 1; - } : - function( a, b ) { - // Exit early if the nodes are identical - if ( a === b ) { - hasDuplicate = true; - return 0; - } - - var cur, - i = 0, - aup = a.parentNode, - bup = b.parentNode, - ap = [ a ], - bp = [ b ]; - - // Parentless nodes are either documents or disconnected - if ( !aup || !bup ) { - return a === document ? -1 : - b === document ? 1 : - aup ? -1 : - bup ? 1 : - sortInput ? - ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : - 0; - - // If the nodes are siblings, we can do a quick check - } else if ( aup === bup ) { - return siblingCheck( a, b ); - } - - // Otherwise we need full lists of their ancestors for comparison - cur = a; - while ( (cur = cur.parentNode) ) { - ap.unshift( cur ); - } - cur = b; - while ( (cur = cur.parentNode) ) { - bp.unshift( cur ); - } - - // Walk down the tree looking for a discrepancy - while ( ap[i] === bp[i] ) { - i++; - } - - return i ? - // Do a sibling check if the nodes have a common ancestor - siblingCheck( ap[i], bp[i] ) : - - // Otherwise nodes in our document sort first - ap[i] === preferredDoc ? -1 : - bp[i] === preferredDoc ? 1 : - 0; - }; - - return document; -}; - -Sizzle.matches = function( expr, elements ) { - return Sizzle( expr, null, null, elements ); -}; - -Sizzle.matchesSelector = function( elem, expr ) { - // Set document vars if needed - if ( ( elem.ownerDocument || elem ) !== document ) { - setDocument( elem ); - } - - // Make sure that attribute selectors are quoted - expr = expr.replace( rattributeQuotes, "='$1']" ); - - if ( support.matchesSelector && documentIsHTML && - !compilerCache[ expr + " " ] && - ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && - ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { - - try { - var ret = matches.call( elem, expr ); - - // IE 9's matchesSelector returns false on disconnected nodes - if ( ret || support.disconnectedMatch || - // As well, disconnected nodes are said to be in a document - // fragment in IE 9 - elem.document && elem.document.nodeType !== 11 ) { - return ret; - } - } catch (e) {} - } - - return Sizzle( expr, document, null, [ elem ] ).length > 0; -}; - -Sizzle.contains = function( context, elem ) { - // Set document vars if needed - if ( ( context.ownerDocument || context ) !== document ) { - setDocument( context ); - } - return contains( context, elem ); -}; - -Sizzle.attr = function( elem, name ) { - // Set document vars if needed - if ( ( elem.ownerDocument || elem ) !== document ) { - setDocument( elem ); - } - - var fn = Expr.attrHandle[ name.toLowerCase() ], - // Don't get fooled by Object.prototype properties (jQuery #13807) - val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? - fn( elem, name, !documentIsHTML ) : - undefined; - - return val !== undefined ? - val : - support.attributes || !documentIsHTML ? - elem.getAttribute( name ) : - (val = elem.getAttributeNode(name)) && val.specified ? - val.value : - null; -}; - -Sizzle.escape = function( sel ) { - return (sel + "").replace( rcssescape, fcssescape ); -}; - -Sizzle.error = function( msg ) { - throw new Error( "Syntax error, unrecognized expression: " + msg ); -}; - -/** - * Document sorting and removing duplicates - * @param {ArrayLike} results - */ -Sizzle.uniqueSort = function( results ) { - var elem, - duplicates = [], - j = 0, - i = 0; - - // Unless we *know* we can detect duplicates, assume their presence - hasDuplicate = !support.detectDuplicates; - sortInput = !support.sortStable && results.slice( 0 ); - results.sort( sortOrder ); - - if ( hasDuplicate ) { - while ( (elem = results[i++]) ) { - if ( elem === results[ i ] ) { - j = duplicates.push( i ); - } - } - while ( j-- ) { - results.splice( duplicates[ j ], 1 ); - } - } - - // Clear input after sorting to release objects - // See https://github.com/jquery/sizzle/pull/225 - sortInput = null; - - return results; -}; - -/** - * Utility function for retrieving the text value of an array of DOM nodes - * @param {Array|Element} elem - */ -getText = Sizzle.getText = function( elem ) { - var node, - ret = "", - i = 0, - nodeType = elem.nodeType; - - if ( !nodeType ) { - // If no nodeType, this is expected to be an array - while ( (node = elem[i++]) ) { - // Do not traverse comment nodes - ret += getText( node ); - } - } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { - // Use textContent for elements - // innerText usage removed for consistency of new lines (jQuery #11153) - if ( typeof elem.textContent === "string" ) { - return elem.textContent; - } else { - // Traverse its children - for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { - ret += getText( elem ); - } - } - } else if ( nodeType === 3 || nodeType === 4 ) { - return elem.nodeValue; - } - // Do not include comment or processing instruction nodes - - return ret; -}; - -Expr = Sizzle.selectors = { - - // Can be adjusted by the user - cacheLength: 50, - - createPseudo: markFunction, - - match: matchExpr, - - attrHandle: {}, - - find: {}, - - relative: { - ">": { dir: "parentNode", first: true }, - " ": { dir: "parentNode" }, - "+": { dir: "previousSibling", first: true }, - "~": { dir: "previousSibling" } - }, - - preFilter: { - "ATTR": function( match ) { - match[1] = match[1].replace( runescape, funescape ); - - // Move the given value to match[3] whether quoted or unquoted - match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape ); - - if ( match[2] === "~=" ) { - match[3] = " " + match[3] + " "; - } - - return match.slice( 0, 4 ); - }, - - "CHILD": function( match ) { - /* matches from matchExpr["CHILD"] - 1 type (only|nth|...) - 2 what (child|of-type) - 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) - 4 xn-component of xn+y argument ([+-]?\d*n|) - 5 sign of xn-component - 6 x of xn-component - 7 sign of y-component - 8 y of y-component - */ - match[1] = match[1].toLowerCase(); - - if ( match[1].slice( 0, 3 ) === "nth" ) { - // nth-* requires argument - if ( !match[3] ) { - Sizzle.error( match[0] ); - } - - // numeric x and y parameters for Expr.filter.CHILD - // remember that false/true cast respectively to 0/1 - match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); - match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); - - // other types prohibit arguments - } else if ( match[3] ) { - Sizzle.error( match[0] ); - } - - return match; - }, - - "PSEUDO": function( match ) { - var excess, - unquoted = !match[6] && match[2]; - - if ( matchExpr["CHILD"].test( match[0] ) ) { - return null; - } - - // Accept quoted arguments as-is - if ( match[3] ) { - match[2] = match[4] || match[5] || ""; - - // Strip excess characters from unquoted arguments - } else if ( unquoted && rpseudo.test( unquoted ) && - // Get excess from tokenize (recursively) - (excess = tokenize( unquoted, true )) && - // advance to the next closing parenthesis - (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { - - // excess is a negative index - match[0] = match[0].slice( 0, excess ); - match[2] = unquoted.slice( 0, excess ); - } - - // Return only captures needed by the pseudo filter method (type and argument) - return match.slice( 0, 3 ); - } - }, - - filter: { - - "TAG": function( nodeNameSelector ) { - var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); - return nodeNameSelector === "*" ? - function() { return true; } : - function( elem ) { - return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; - }; - }, - - "CLASS": function( className ) { - var pattern = classCache[ className + " " ]; - - return pattern || - (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && - classCache( className, function( elem ) { - return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" ); - }); - }, - - "ATTR": function( name, operator, check ) { - return function( elem ) { - var result = Sizzle.attr( elem, name ); - - if ( result == null ) { - return operator === "!="; - } - if ( !operator ) { - return true; - } - - result += ""; - - return operator === "=" ? result === check : - operator === "!=" ? result !== check : - operator === "^=" ? check && result.indexOf( check ) === 0 : - operator === "*=" ? check && result.indexOf( check ) > -1 : - operator === "$=" ? check && result.slice( -check.length ) === check : - operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : - operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : - false; - }; - }, - - "CHILD": function( type, what, argument, first, last ) { - var simple = type.slice( 0, 3 ) !== "nth", - forward = type.slice( -4 ) !== "last", - ofType = what === "of-type"; - - return first === 1 && last === 0 ? - - // Shortcut for :nth-*(n) - function( elem ) { - return !!elem.parentNode; - } : - - function( elem, context, xml ) { - var cache, uniqueCache, outerCache, node, nodeIndex, start, - dir = simple !== forward ? "nextSibling" : "previousSibling", - parent = elem.parentNode, - name = ofType && elem.nodeName.toLowerCase(), - useCache = !xml && !ofType, - diff = false; - - if ( parent ) { - - // :(first|last|only)-(child|of-type) - if ( simple ) { - while ( dir ) { - node = elem; - while ( (node = node[ dir ]) ) { - if ( ofType ? - node.nodeName.toLowerCase() === name : - node.nodeType === 1 ) { - - return false; - } - } - // Reverse direction for :only-* (if we haven't yet done so) - start = dir = type === "only" && !start && "nextSibling"; - } - return true; - } - - start = [ forward ? parent.firstChild : parent.lastChild ]; - - // non-xml :nth-child(...) stores cache data on `parent` - if ( forward && useCache ) { - - // Seek `elem` from a previously-cached index - - // ...in a gzip-friendly way - node = parent; - outerCache = node[ expando ] || (node[ expando ] = {}); - - // Support: IE <9 only - // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ node.uniqueID ] || - (outerCache[ node.uniqueID ] = {}); - - cache = uniqueCache[ type ] || []; - nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; - diff = nodeIndex && cache[ 2 ]; - node = nodeIndex && parent.childNodes[ nodeIndex ]; - - while ( (node = ++nodeIndex && node && node[ dir ] || - - // Fallback to seeking `elem` from the start - (diff = nodeIndex = 0) || start.pop()) ) { - - // When found, cache indexes on `parent` and break - if ( node.nodeType === 1 && ++diff && node === elem ) { - uniqueCache[ type ] = [ dirruns, nodeIndex, diff ]; - break; - } - } - - } else { - // Use previously-cached element index if available - if ( useCache ) { - // ...in a gzip-friendly way - node = elem; - outerCache = node[ expando ] || (node[ expando ] = {}); - - // Support: IE <9 only - // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ node.uniqueID ] || - (outerCache[ node.uniqueID ] = {}); - - cache = uniqueCache[ type ] || []; - nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; - diff = nodeIndex; - } - - // xml :nth-child(...) - // or :nth-last-child(...) or :nth(-last)?-of-type(...) - if ( diff === false ) { - // Use the same loop as above to seek `elem` from the start - while ( (node = ++nodeIndex && node && node[ dir ] || - (diff = nodeIndex = 0) || start.pop()) ) { - - if ( ( ofType ? - node.nodeName.toLowerCase() === name : - node.nodeType === 1 ) && - ++diff ) { - - // Cache the index of each encountered element - if ( useCache ) { - outerCache = node[ expando ] || (node[ expando ] = {}); - - // Support: IE <9 only - // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ node.uniqueID ] || - (outerCache[ node.uniqueID ] = {}); - - uniqueCache[ type ] = [ dirruns, diff ]; - } - - if ( node === elem ) { - break; - } - } - } - } - } - - // Incorporate the offset, then check against cycle size - diff -= last; - return diff === first || ( diff % first === 0 && diff / first >= 0 ); - } - }; - }, - - "PSEUDO": function( pseudo, argument ) { - // pseudo-class names are case-insensitive - // http://www.w3.org/TR/selectors/#pseudo-classes - // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters - // Remember that setFilters inherits from pseudos - var args, - fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || - Sizzle.error( "unsupported pseudo: " + pseudo ); - - // The user may use createPseudo to indicate that - // arguments are needed to create the filter function - // just as Sizzle does - if ( fn[ expando ] ) { - return fn( argument ); - } - - // But maintain support for old signatures - if ( fn.length > 1 ) { - args = [ pseudo, pseudo, "", argument ]; - return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? - markFunction(function( seed, matches ) { - var idx, - matched = fn( seed, argument ), - i = matched.length; - while ( i-- ) { - idx = indexOf( seed, matched[i] ); - seed[ idx ] = !( matches[ idx ] = matched[i] ); - } - }) : - function( elem ) { - return fn( elem, 0, args ); - }; - } - - return fn; - } - }, - - pseudos: { - // Potentially complex pseudos - "not": markFunction(function( selector ) { - // Trim the selector passed to compile - // to avoid treating leading and trailing - // spaces as combinators - var input = [], - results = [], - matcher = compile( selector.replace( rtrim, "$1" ) ); - - return matcher[ expando ] ? - markFunction(function( seed, matches, context, xml ) { - var elem, - unmatched = matcher( seed, null, xml, [] ), - i = seed.length; - - // Match elements unmatched by `matcher` - while ( i-- ) { - if ( (elem = unmatched[i]) ) { - seed[i] = !(matches[i] = elem); - } - } - }) : - function( elem, context, xml ) { - input[0] = elem; - matcher( input, null, xml, results ); - // Don't keep the element (issue #299) - input[0] = null; - return !results.pop(); - }; - }), - - "has": markFunction(function( selector ) { - return function( elem ) { - return Sizzle( selector, elem ).length > 0; - }; - }), - - "contains": markFunction(function( text ) { - text = text.replace( runescape, funescape ); - return function( elem ) { - return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; - }; - }), - - // "Whether an element is represented by a :lang() selector - // is based solely on the element's language value - // being equal to the identifier C, - // or beginning with the identifier C immediately followed by "-". - // The matching of C against the element's language value is performed case-insensitively. - // The identifier C does not have to be a valid language name." - // http://www.w3.org/TR/selectors/#lang-pseudo - "lang": markFunction( function( lang ) { - // lang value must be a valid identifier - if ( !ridentifier.test(lang || "") ) { - Sizzle.error( "unsupported lang: " + lang ); - } - lang = lang.replace( runescape, funescape ).toLowerCase(); - return function( elem ) { - var elemLang; - do { - if ( (elemLang = documentIsHTML ? - elem.lang : - elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) { - - elemLang = elemLang.toLowerCase(); - return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; - } - } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); - return false; - }; - }), - - // Miscellaneous - "target": function( elem ) { - var hash = window.location && window.location.hash; - return hash && hash.slice( 1 ) === elem.id; - }, - - "root": function( elem ) { - return elem === docElem; - }, - - "focus": function( elem ) { - return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); - }, - - // Boolean properties - "enabled": createDisabledPseudo( false ), - "disabled": createDisabledPseudo( true ), - - "checked": function( elem ) { - // In CSS3, :checked should return both checked and selected elements - // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked - var nodeName = elem.nodeName.toLowerCase(); - return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); - }, - - "selected": function( elem ) { - // Accessing this property makes selected-by-default - // options in Safari work properly - if ( elem.parentNode ) { - elem.parentNode.selectedIndex; - } - - return elem.selected === true; - }, - - // Contents - "empty": function( elem ) { - // http://www.w3.org/TR/selectors/#empty-pseudo - // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), - // but not by others (comment: 8; processing instruction: 7; etc.) - // nodeType < 6 works because attributes (2) do not appear as children - for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { - if ( elem.nodeType < 6 ) { - return false; - } - } - return true; - }, - - "parent": function( elem ) { - return !Expr.pseudos["empty"]( elem ); - }, - - // Element/input types - "header": function( elem ) { - return rheader.test( elem.nodeName ); - }, - - "input": function( elem ) { - return rinputs.test( elem.nodeName ); - }, - - "button": function( elem ) { - var name = elem.nodeName.toLowerCase(); - return name === "input" && elem.type === "button" || name === "button"; - }, - - "text": function( elem ) { - var attr; - return elem.nodeName.toLowerCase() === "input" && - elem.type === "text" && - - // Support: IE<8 - // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" - ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" ); - }, - - // Position-in-collection - "first": createPositionalPseudo(function() { - return [ 0 ]; - }), - - "last": createPositionalPseudo(function( matchIndexes, length ) { - return [ length - 1 ]; - }), - - "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { - return [ argument < 0 ? argument + length : argument ]; - }), - - "even": createPositionalPseudo(function( matchIndexes, length ) { - var i = 0; - for ( ; i < length; i += 2 ) { - matchIndexes.push( i ); - } - return matchIndexes; - }), - - "odd": createPositionalPseudo(function( matchIndexes, length ) { - var i = 1; - for ( ; i < length; i += 2 ) { - matchIndexes.push( i ); - } - return matchIndexes; - }), - - "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { - var i = argument < 0 ? argument + length : argument; - for ( ; --i >= 0; ) { - matchIndexes.push( i ); - } - return matchIndexes; - }), - - "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { - var i = argument < 0 ? argument + length : argument; - for ( ; ++i < length; ) { - matchIndexes.push( i ); - } - return matchIndexes; - }) - } -}; - -Expr.pseudos["nth"] = Expr.pseudos["eq"]; - -// Add button/input type pseudos -for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { - Expr.pseudos[ i ] = createInputPseudo( i ); -} -for ( i in { submit: true, reset: true } ) { - Expr.pseudos[ i ] = createButtonPseudo( i ); -} - -// Easy API for creating new setFilters -function setFilters() {} -setFilters.prototype = Expr.filters = Expr.pseudos; -Expr.setFilters = new setFilters(); - -tokenize = Sizzle.tokenize = function( selector, parseOnly ) { - var matched, match, tokens, type, - soFar, groups, preFilters, - cached = tokenCache[ selector + " " ]; - - if ( cached ) { - return parseOnly ? 0 : cached.slice( 0 ); - } - - soFar = selector; - groups = []; - preFilters = Expr.preFilter; - - while ( soFar ) { - - // Comma and first run - if ( !matched || (match = rcomma.exec( soFar )) ) { - if ( match ) { - // Don't consume trailing commas as valid - soFar = soFar.slice( match[0].length ) || soFar; - } - groups.push( (tokens = []) ); - } - - matched = false; - - // Combinators - if ( (match = rcombinators.exec( soFar )) ) { - matched = match.shift(); - tokens.push({ - value: matched, - // Cast descendant combinators to space - type: match[0].replace( rtrim, " " ) - }); - soFar = soFar.slice( matched.length ); - } - - // Filters - for ( type in Expr.filter ) { - if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || - (match = preFilters[ type ]( match ))) ) { - matched = match.shift(); - tokens.push({ - value: matched, - type: type, - matches: match - }); - soFar = soFar.slice( matched.length ); - } - } - - if ( !matched ) { - break; - } - } - - // Return the length of the invalid excess - // if we're just parsing - // Otherwise, throw an error or return tokens - return parseOnly ? - soFar.length : - soFar ? - Sizzle.error( selector ) : - // Cache the tokens - tokenCache( selector, groups ).slice( 0 ); -}; - -function toSelector( tokens ) { - var i = 0, - len = tokens.length, - selector = ""; - for ( ; i < len; i++ ) { - selector += tokens[i].value; - } - return selector; -} - -function addCombinator( matcher, combinator, base ) { - var dir = combinator.dir, - skip = combinator.next, - key = skip || dir, - checkNonElements = base && key === "parentNode", - doneName = done++; - - return combinator.first ? - // Check against closest ancestor/preceding element - function( elem, context, xml ) { - while ( (elem = elem[ dir ]) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - return matcher( elem, context, xml ); - } - } - return false; - } : - - // Check against all ancestor/preceding elements - function( elem, context, xml ) { - var oldCache, uniqueCache, outerCache, - newCache = [ dirruns, doneName ]; - - // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching - if ( xml ) { - while ( (elem = elem[ dir ]) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - if ( matcher( elem, context, xml ) ) { - return true; - } - } - } - } else { - while ( (elem = elem[ dir ]) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - outerCache = elem[ expando ] || (elem[ expando ] = {}); - - // Support: IE <9 only - // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {}); - - if ( skip && skip === elem.nodeName.toLowerCase() ) { - elem = elem[ dir ] || elem; - } else if ( (oldCache = uniqueCache[ key ]) && - oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { - - // Assign to newCache so results back-propagate to previous elements - return (newCache[ 2 ] = oldCache[ 2 ]); - } else { - // Reuse newcache so results back-propagate to previous elements - uniqueCache[ key ] = newCache; - - // A match means we're done; a fail means we have to keep checking - if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) { - return true; - } - } - } - } - } - return false; - }; -} - -function elementMatcher( matchers ) { - return matchers.length > 1 ? - function( elem, context, xml ) { - var i = matchers.length; - while ( i-- ) { - if ( !matchers[i]( elem, context, xml ) ) { - return false; - } - } - return true; - } : - matchers[0]; -} - -function multipleContexts( selector, contexts, results ) { - var i = 0, - len = contexts.length; - for ( ; i < len; i++ ) { - Sizzle( selector, contexts[i], results ); - } - return results; -} - -function condense( unmatched, map, filter, context, xml ) { - var elem, - newUnmatched = [], - i = 0, - len = unmatched.length, - mapped = map != null; - - for ( ; i < len; i++ ) { - if ( (elem = unmatched[i]) ) { - if ( !filter || filter( elem, context, xml ) ) { - newUnmatched.push( elem ); - if ( mapped ) { - map.push( i ); - } - } - } - } - - return newUnmatched; -} - -function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { - if ( postFilter && !postFilter[ expando ] ) { - postFilter = setMatcher( postFilter ); - } - if ( postFinder && !postFinder[ expando ] ) { - postFinder = setMatcher( postFinder, postSelector ); - } - return markFunction(function( seed, results, context, xml ) { - var temp, i, elem, - preMap = [], - postMap = [], - preexisting = results.length, - - // Get initial elements from seed or context - elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), - - // Prefilter to get matcher input, preserving a map for seed-results synchronization - matcherIn = preFilter && ( seed || !selector ) ? - condense( elems, preMap, preFilter, context, xml ) : - elems, - - matcherOut = matcher ? - // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, - postFinder || ( seed ? preFilter : preexisting || postFilter ) ? - - // ...intermediate processing is necessary - [] : - - // ...otherwise use results directly - results : - matcherIn; - - // Find primary matches - if ( matcher ) { - matcher( matcherIn, matcherOut, context, xml ); - } - - // Apply postFilter - if ( postFilter ) { - temp = condense( matcherOut, postMap ); - postFilter( temp, [], context, xml ); - - // Un-match failing elements by moving them back to matcherIn - i = temp.length; - while ( i-- ) { - if ( (elem = temp[i]) ) { - matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); - } - } - } - - if ( seed ) { - if ( postFinder || preFilter ) { - if ( postFinder ) { - // Get the final matcherOut by condensing this intermediate into postFinder contexts - temp = []; - i = matcherOut.length; - while ( i-- ) { - if ( (elem = matcherOut[i]) ) { - // Restore matcherIn since elem is not yet a final match - temp.push( (matcherIn[i] = elem) ); - } - } - postFinder( null, (matcherOut = []), temp, xml ); - } - - // Move matched elements from seed to results to keep them synchronized - i = matcherOut.length; - while ( i-- ) { - if ( (elem = matcherOut[i]) && - (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) { - - seed[temp] = !(results[temp] = elem); - } - } - } - - // Add elements to results, through postFinder if defined - } else { - matcherOut = condense( - matcherOut === results ? - matcherOut.splice( preexisting, matcherOut.length ) : - matcherOut - ); - if ( postFinder ) { - postFinder( null, results, matcherOut, xml ); - } else { - push.apply( results, matcherOut ); - } - } - }); -} - -function matcherFromTokens( tokens ) { - var checkContext, matcher, j, - len = tokens.length, - leadingRelative = Expr.relative[ tokens[0].type ], - implicitRelative = leadingRelative || Expr.relative[" "], - i = leadingRelative ? 1 : 0, - - // The foundational matcher ensures that elements are reachable from top-level context(s) - matchContext = addCombinator( function( elem ) { - return elem === checkContext; - }, implicitRelative, true ), - matchAnyContext = addCombinator( function( elem ) { - return indexOf( checkContext, elem ) > -1; - }, implicitRelative, true ), - matchers = [ function( elem, context, xml ) { - var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( - (checkContext = context).nodeType ? - matchContext( elem, context, xml ) : - matchAnyContext( elem, context, xml ) ); - // Avoid hanging onto element (issue #299) - checkContext = null; - return ret; - } ]; - - for ( ; i < len; i++ ) { - if ( (matcher = Expr.relative[ tokens[i].type ]) ) { - matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; - } else { - matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); - - // Return special upon seeing a positional matcher - if ( matcher[ expando ] ) { - // Find the next relative operator (if any) for proper handling - j = ++i; - for ( ; j < len; j++ ) { - if ( Expr.relative[ tokens[j].type ] ) { - break; - } - } - return setMatcher( - i > 1 && elementMatcher( matchers ), - i > 1 && toSelector( - // If the preceding token was a descendant combinator, insert an implicit any-element `*` - tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" }) - ).replace( rtrim, "$1" ), - matcher, - i < j && matcherFromTokens( tokens.slice( i, j ) ), - j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), - j < len && toSelector( tokens ) - ); - } - matchers.push( matcher ); - } - } - - return elementMatcher( matchers ); -} - -function matcherFromGroupMatchers( elementMatchers, setMatchers ) { - var bySet = setMatchers.length > 0, - byElement = elementMatchers.length > 0, - superMatcher = function( seed, context, xml, results, outermost ) { - var elem, j, matcher, - matchedCount = 0, - i = "0", - unmatched = seed && [], - setMatched = [], - contextBackup = outermostContext, - // We must always have either seed elements or outermost context - elems = seed || byElement && Expr.find["TAG"]( "*", outermost ), - // Use integer dirruns iff this is the outermost matcher - dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1), - len = elems.length; - - if ( outermost ) { - outermostContext = context === document || context || outermost; - } - - // Add elements passing elementMatchers directly to results - // Support: IE<9, Safari - // Tolerate NodeList properties (IE: "length"; Safari: ) matching elements by id - for ( ; i !== len && (elem = elems[i]) != null; i++ ) { - if ( byElement && elem ) { - j = 0; - if ( !context && elem.ownerDocument !== document ) { - setDocument( elem ); - xml = !documentIsHTML; - } - while ( (matcher = elementMatchers[j++]) ) { - if ( matcher( elem, context || document, xml) ) { - results.push( elem ); - break; - } - } - if ( outermost ) { - dirruns = dirrunsUnique; - } - } - - // Track unmatched elements for set filters - if ( bySet ) { - // They will have gone through all possible matchers - if ( (elem = !matcher && elem) ) { - matchedCount--; - } - - // Lengthen the array for every element, matched or not - if ( seed ) { - unmatched.push( elem ); - } - } - } - - // `i` is now the count of elements visited above, and adding it to `matchedCount` - // makes the latter nonnegative. - matchedCount += i; - - // Apply set filters to unmatched elements - // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount` - // equals `i`), unless we didn't visit _any_ elements in the above loop because we have - // no element matchers and no seed. - // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that - // case, which will result in a "00" `matchedCount` that differs from `i` but is also - // numerically zero. - if ( bySet && i !== matchedCount ) { - j = 0; - while ( (matcher = setMatchers[j++]) ) { - matcher( unmatched, setMatched, context, xml ); - } - - if ( seed ) { - // Reintegrate element matches to eliminate the need for sorting - if ( matchedCount > 0 ) { - while ( i-- ) { - if ( !(unmatched[i] || setMatched[i]) ) { - setMatched[i] = pop.call( results ); - } - } - } - - // Discard index placeholder values to get only actual matches - setMatched = condense( setMatched ); - } - - // Add matches to results - push.apply( results, setMatched ); - - // Seedless set matches succeeding multiple successful matchers stipulate sorting - if ( outermost && !seed && setMatched.length > 0 && - ( matchedCount + setMatchers.length ) > 1 ) { - - Sizzle.uniqueSort( results ); - } - } - - // Override manipulation of globals by nested matchers - if ( outermost ) { - dirruns = dirrunsUnique; - outermostContext = contextBackup; - } - - return unmatched; - }; - - return bySet ? - markFunction( superMatcher ) : - superMatcher; -} - -compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { - var i, - setMatchers = [], - elementMatchers = [], - cached = compilerCache[ selector + " " ]; - - if ( !cached ) { - // Generate a function of recursive functions that can be used to check each element - if ( !match ) { - match = tokenize( selector ); - } - i = match.length; - while ( i-- ) { - cached = matcherFromTokens( match[i] ); - if ( cached[ expando ] ) { - setMatchers.push( cached ); - } else { - elementMatchers.push( cached ); - } - } - - // Cache the compiled function - cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); - - // Save selector and tokenization - cached.selector = selector; - } - return cached; -}; - -/** - * A low-level selection function that works with Sizzle's compiled - * selector functions - * @param {String|Function} selector A selector or a pre-compiled - * selector function built with Sizzle.compile - * @param {Element} context - * @param {Array} [results] - * @param {Array} [seed] A set of elements to match against - */ -select = Sizzle.select = function( selector, context, results, seed ) { - var i, tokens, token, type, find, - compiled = typeof selector === "function" && selector, - match = !seed && tokenize( (selector = compiled.selector || selector) ); - - results = results || []; - - // Try to minimize operations if there is only one selector in the list and no seed - // (the latter of which guarantees us context) - if ( match.length === 1 ) { - - // Reduce context if the leading compound selector is an ID - tokens = match[0] = match[0].slice( 0 ); - if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && - context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) { - - context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; - if ( !context ) { - return results; - - // Precompiled matchers will still verify ancestry, so step up a level - } else if ( compiled ) { - context = context.parentNode; - } - - selector = selector.slice( tokens.shift().value.length ); - } - - // Fetch a seed set for right-to-left matching - i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; - while ( i-- ) { - token = tokens[i]; - - // Abort if we hit a combinator - if ( Expr.relative[ (type = token.type) ] ) { - break; - } - if ( (find = Expr.find[ type ]) ) { - // Search, expanding context for leading sibling combinators - if ( (seed = find( - token.matches[0].replace( runescape, funescape ), - rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context - )) ) { - - // If seed is empty or no tokens remain, we can return early - tokens.splice( i, 1 ); - selector = seed.length && toSelector( tokens ); - if ( !selector ) { - push.apply( results, seed ); - return results; - } - - break; - } - } - } - } - - // Compile and execute a filtering function if one is not provided - // Provide `match` to avoid retokenization if we modified the selector above - ( compiled || compile( selector, match ) )( - seed, - context, - !documentIsHTML, - results, - !context || rsibling.test( selector ) && testContext( context.parentNode ) || context - ); - return results; -}; - -// One-time assignments - -// Sort stability -support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; - -// Support: Chrome 14-35+ -// Always assume duplicates if they aren't passed to the comparison function -support.detectDuplicates = !!hasDuplicate; - -// Initialize against the default document -setDocument(); - -// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) -// Detached nodes confoundingly follow *each other* -support.sortDetached = assert(function( el ) { - // Should return 1, but returns 4 (following) - return el.compareDocumentPosition( document.createElement("fieldset") ) & 1; -}); - -// Support: IE<8 -// Prevent attribute/property "interpolation" -// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx -if ( !assert(function( el ) { - el.innerHTML = ""; - return el.firstChild.getAttribute("href") === "#" ; -}) ) { - addHandle( "type|href|height|width", function( elem, name, isXML ) { - if ( !isXML ) { - return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); - } - }); -} - -// Support: IE<9 -// Use defaultValue in place of getAttribute("value") -if ( !support.attributes || !assert(function( el ) { - el.innerHTML = ""; - el.firstChild.setAttribute( "value", "" ); - return el.firstChild.getAttribute( "value" ) === ""; -}) ) { - addHandle( "value", function( elem, name, isXML ) { - if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { - return elem.defaultValue; - } - }); -} - -// Support: IE<9 -// Use getAttributeNode to fetch booleans when getAttribute lies -if ( !assert(function( el ) { - return el.getAttribute("disabled") == null; -}) ) { - addHandle( booleans, function( elem, name, isXML ) { - var val; - if ( !isXML ) { - return elem[ name ] === true ? name.toLowerCase() : - (val = elem.getAttributeNode( name )) && val.specified ? - val.value : - null; - } - }); -} - -return Sizzle; - -})( window ); - - - -jQuery.find = Sizzle; -jQuery.expr = Sizzle.selectors; - -// Deprecated -jQuery.expr[ ":" ] = jQuery.expr.pseudos; -jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort; -jQuery.text = Sizzle.getText; -jQuery.isXMLDoc = Sizzle.isXML; -jQuery.contains = Sizzle.contains; -jQuery.escapeSelector = Sizzle.escape; - - - - -var dir = function( elem, dir, until ) { - var matched = [], - truncate = until !== undefined; - - while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) { - if ( elem.nodeType === 1 ) { - if ( truncate && jQuery( elem ).is( until ) ) { - break; - } - matched.push( elem ); - } - } - return matched; -}; - - -var siblings = function( n, elem ) { - var matched = []; - - for ( ; n; n = n.nextSibling ) { - if ( n.nodeType === 1 && n !== elem ) { - matched.push( n ); - } - } - - return matched; -}; - - -var rneedsContext = jQuery.expr.match.needsContext; - - - -function nodeName( elem, name ) { - - return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); - -}; -var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); - - - -// Implement the identical functionality for filter and not -function winnow( elements, qualifier, not ) { - if ( isFunction( qualifier ) ) { - return jQuery.grep( elements, function( elem, i ) { - return !!qualifier.call( elem, i, elem ) !== not; - } ); - } - - // Single element - if ( qualifier.nodeType ) { - return jQuery.grep( elements, function( elem ) { - return ( elem === qualifier ) !== not; - } ); - } - - // Arraylike of elements (jQuery, arguments, Array) - if ( typeof qualifier !== "string" ) { - return jQuery.grep( elements, function( elem ) { - return ( indexOf.call( qualifier, elem ) > -1 ) !== not; - } ); - } - - // Filtered directly for both simple and complex selectors - return jQuery.filter( qualifier, elements, not ); -} - -jQuery.filter = function( expr, elems, not ) { - var elem = elems[ 0 ]; - - if ( not ) { - expr = ":not(" + expr + ")"; - } - - if ( elems.length === 1 && elem.nodeType === 1 ) { - return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : []; - } - - return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { - return elem.nodeType === 1; - } ) ); -}; - -jQuery.fn.extend( { - find: function( selector ) { - var i, ret, - len = this.length, - self = this; - - if ( typeof selector !== "string" ) { - return this.pushStack( jQuery( selector ).filter( function() { - for ( i = 0; i < len; i++ ) { - if ( jQuery.contains( self[ i ], this ) ) { - return true; - } - } - } ) ); - } - - ret = this.pushStack( [] ); - - for ( i = 0; i < len; i++ ) { - jQuery.find( selector, self[ i ], ret ); - } - - return len > 1 ? jQuery.uniqueSort( ret ) : ret; - }, - filter: function( selector ) { - return this.pushStack( winnow( this, selector || [], false ) ); - }, - not: function( selector ) { - return this.pushStack( winnow( this, selector || [], true ) ); - }, - is: function( selector ) { - return !!winnow( - this, - - // If this is a positional/relative selector, check membership in the returned set - // so $("p:first").is("p:last") won't return true for a doc with two "p". - typeof selector === "string" && rneedsContext.test( selector ) ? - jQuery( selector ) : - selector || [], - false - ).length; - } -} ); - - -// Initialize a jQuery object - - -// A central reference to the root jQuery(document) -var rootjQuery, - - // A simple way to check for HTML strings - // Prioritize #id over to avoid XSS via location.hash (#9521) - // Strict HTML recognition (#11290: must start with <) - // Shortcut simple #id case for speed - rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/, - - init = jQuery.fn.init = function( selector, context, root ) { - var match, elem; - - // HANDLE: $(""), $(null), $(undefined), $(false) - if ( !selector ) { - return this; - } - - // Method init() accepts an alternate rootjQuery - // so migrate can support jQuery.sub (gh-2101) - root = root || rootjQuery; - - // Handle HTML strings - if ( typeof selector === "string" ) { - if ( selector[ 0 ] === "<" && - selector[ selector.length - 1 ] === ">" && - selector.length >= 3 ) { - - // Assume that strings that start and end with <> are HTML and skip the regex check - match = [ null, selector, null ]; - - } else { - match = rquickExpr.exec( selector ); - } - - // Match html or make sure no context is specified for #id - if ( match && ( match[ 1 ] || !context ) ) { - - // HANDLE: $(html) -> $(array) - if ( match[ 1 ] ) { - context = context instanceof jQuery ? context[ 0 ] : context; - - // Option to run scripts is true for back-compat - // Intentionally let the error be thrown if parseHTML is not present - jQuery.merge( this, jQuery.parseHTML( - match[ 1 ], - context && context.nodeType ? context.ownerDocument || context : document, - true - ) ); - - // HANDLE: $(html, props) - if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) { - for ( match in context ) { - - // Properties of context are called as methods if possible - if ( isFunction( this[ match ] ) ) { - this[ match ]( context[ match ] ); - - // ...and otherwise set as attributes - } else { - this.attr( match, context[ match ] ); - } - } - } - - return this; - - // HANDLE: $(#id) - } else { - elem = document.getElementById( match[ 2 ] ); - - if ( elem ) { - - // Inject the element directly into the jQuery object - this[ 0 ] = elem; - this.length = 1; - } - return this; - } - - // HANDLE: $(expr, $(...)) - } else if ( !context || context.jquery ) { - return ( context || root ).find( selector ); - - // HANDLE: $(expr, context) - // (which is just equivalent to: $(context).find(expr) - } else { - return this.constructor( context ).find( selector ); - } - - // HANDLE: $(DOMElement) - } else if ( selector.nodeType ) { - this[ 0 ] = selector; - this.length = 1; - return this; - - // HANDLE: $(function) - // Shortcut for document ready - } else if ( isFunction( selector ) ) { - return root.ready !== undefined ? - root.ready( selector ) : - - // Execute immediately if ready is not present - selector( jQuery ); - } - - return jQuery.makeArray( selector, this ); - }; - -// Give the init function the jQuery prototype for later instantiation -init.prototype = jQuery.fn; - -// Initialize central reference -rootjQuery = jQuery( document ); - - -var rparentsprev = /^(?:parents|prev(?:Until|All))/, - - // Methods guaranteed to produce a unique set when starting from a unique set - guaranteedUnique = { - children: true, - contents: true, - next: true, - prev: true - }; - -jQuery.fn.extend( { - has: function( target ) { - var targets = jQuery( target, this ), - l = targets.length; - - return this.filter( function() { - var i = 0; - for ( ; i < l; i++ ) { - if ( jQuery.contains( this, targets[ i ] ) ) { - return true; - } - } - } ); - }, - - closest: function( selectors, context ) { - var cur, - i = 0, - l = this.length, - matched = [], - targets = typeof selectors !== "string" && jQuery( selectors ); - - // Positional selectors never match, since there's no _selection_ context - if ( !rneedsContext.test( selectors ) ) { - for ( ; i < l; i++ ) { - for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) { - - // Always skip document fragments - if ( cur.nodeType < 11 && ( targets ? - targets.index( cur ) > -1 : - - // Don't pass non-elements to Sizzle - cur.nodeType === 1 && - jQuery.find.matchesSelector( cur, selectors ) ) ) { - - matched.push( cur ); - break; - } - } - } - } - - return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched ); - }, - - // Determine the position of an element within the set - index: function( elem ) { - - // No argument, return index in parent - if ( !elem ) { - return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1; - } - - // Index in selector - if ( typeof elem === "string" ) { - return indexOf.call( jQuery( elem ), this[ 0 ] ); - } - - // Locate the position of the desired element - return indexOf.call( this, - - // If it receives a jQuery object, the first element is used - elem.jquery ? elem[ 0 ] : elem - ); - }, - - add: function( selector, context ) { - return this.pushStack( - jQuery.uniqueSort( - jQuery.merge( this.get(), jQuery( selector, context ) ) - ) - ); - }, - - addBack: function( selector ) { - return this.add( selector == null ? - this.prevObject : this.prevObject.filter( selector ) - ); - } -} ); - -function sibling( cur, dir ) { - while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {} - return cur; -} - -jQuery.each( { - parent: function( elem ) { - var parent = elem.parentNode; - return parent && parent.nodeType !== 11 ? parent : null; - }, - parents: function( elem ) { - return dir( elem, "parentNode" ); - }, - parentsUntil: function( elem, i, until ) { - return dir( elem, "parentNode", until ); - }, - next: function( elem ) { - return sibling( elem, "nextSibling" ); - }, - prev: function( elem ) { - return sibling( elem, "previousSibling" ); - }, - nextAll: function( elem ) { - return dir( elem, "nextSibling" ); - }, - prevAll: function( elem ) { - return dir( elem, "previousSibling" ); - }, - nextUntil: function( elem, i, until ) { - return dir( elem, "nextSibling", until ); - }, - prevUntil: function( elem, i, until ) { - return dir( elem, "previousSibling", until ); - }, - siblings: function( elem ) { - return siblings( ( elem.parentNode || {} ).firstChild, elem ); - }, - children: function( elem ) { - return siblings( elem.firstChild ); - }, - contents: function( elem ) { - if ( nodeName( elem, "iframe" ) ) { - return elem.contentDocument; - } - - // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only - // Treat the template element as a regular one in browsers that - // don't support it. - if ( nodeName( elem, "template" ) ) { - elem = elem.content || elem; - } - - return jQuery.merge( [], elem.childNodes ); - } -}, function( name, fn ) { - jQuery.fn[ name ] = function( until, selector ) { - var matched = jQuery.map( this, fn, until ); - - if ( name.slice( -5 ) !== "Until" ) { - selector = until; - } - - if ( selector && typeof selector === "string" ) { - matched = jQuery.filter( selector, matched ); - } - - if ( this.length > 1 ) { - - // Remove duplicates - if ( !guaranteedUnique[ name ] ) { - jQuery.uniqueSort( matched ); - } - - // Reverse order for parents* and prev-derivatives - if ( rparentsprev.test( name ) ) { - matched.reverse(); - } - } - - return this.pushStack( matched ); - }; -} ); -var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g ); - - - -// Convert String-formatted options into Object-formatted ones -function createOptions( options ) { - var object = {}; - jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) { - object[ flag ] = true; - } ); - return object; -} - -/* - * Create a callback list using the following parameters: - * - * options: an optional list of space-separated options that will change how - * the callback list behaves or a more traditional option object - * - * By default a callback list will act like an event callback list and can be - * "fired" multiple times. - * - * Possible options: - * - * once: will ensure the callback list can only be fired once (like a Deferred) - * - * memory: will keep track of previous values and will call any callback added - * after the list has been fired right away with the latest "memorized" - * values (like a Deferred) - * - * unique: will ensure a callback can only be added once (no duplicate in the list) - * - * stopOnFalse: interrupt callings when a callback returns false - * - */ -jQuery.Callbacks = function( options ) { - - // Convert options from String-formatted to Object-formatted if needed - // (we check in cache first) - options = typeof options === "string" ? - createOptions( options ) : - jQuery.extend( {}, options ); - - var // Flag to know if list is currently firing - firing, - - // Last fire value for non-forgettable lists - memory, - - // Flag to know if list was already fired - fired, - - // Flag to prevent firing - locked, - - // Actual callback list - list = [], - - // Queue of execution data for repeatable lists - queue = [], - - // Index of currently firing callback (modified by add/remove as needed) - firingIndex = -1, - - // Fire callbacks - fire = function() { - - // Enforce single-firing - locked = locked || options.once; - - // Execute callbacks for all pending executions, - // respecting firingIndex overrides and runtime changes - fired = firing = true; - for ( ; queue.length; firingIndex = -1 ) { - memory = queue.shift(); - while ( ++firingIndex < list.length ) { - - // Run callback and check for early termination - if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false && - options.stopOnFalse ) { - - // Jump to end and forget the data so .add doesn't re-fire - firingIndex = list.length; - memory = false; - } - } - } - - // Forget the data if we're done with it - if ( !options.memory ) { - memory = false; - } - - firing = false; - - // Clean up if we're done firing for good - if ( locked ) { - - // Keep an empty list if we have data for future add calls - if ( memory ) { - list = []; - - // Otherwise, this object is spent - } else { - list = ""; - } - } - }, - - // Actual Callbacks object - self = { - - // Add a callback or a collection of callbacks to the list - add: function() { - if ( list ) { - - // If we have memory from a past run, we should fire after adding - if ( memory && !firing ) { - firingIndex = list.length - 1; - queue.push( memory ); - } - - ( function add( args ) { - jQuery.each( args, function( _, arg ) { - if ( isFunction( arg ) ) { - if ( !options.unique || !self.has( arg ) ) { - list.push( arg ); - } - } else if ( arg && arg.length && toType( arg ) !== "string" ) { - - // Inspect recursively - add( arg ); - } - } ); - } )( arguments ); - - if ( memory && !firing ) { - fire(); - } - } - return this; - }, - - // Remove a callback from the list - remove: function() { - jQuery.each( arguments, function( _, arg ) { - var index; - while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { - list.splice( index, 1 ); - - // Handle firing indexes - if ( index <= firingIndex ) { - firingIndex--; - } - } - } ); - return this; - }, - - // Check if a given callback is in the list. - // If no argument is given, return whether or not list has callbacks attached. - has: function( fn ) { - return fn ? - jQuery.inArray( fn, list ) > -1 : - list.length > 0; - }, - - // Remove all callbacks from the list - empty: function() { - if ( list ) { - list = []; - } - return this; - }, - - // Disable .fire and .add - // Abort any current/pending executions - // Clear all callbacks and values - disable: function() { - locked = queue = []; - list = memory = ""; - return this; - }, - disabled: function() { - return !list; - }, - - // Disable .fire - // Also disable .add unless we have memory (since it would have no effect) - // Abort any pending executions - lock: function() { - locked = queue = []; - if ( !memory && !firing ) { - list = memory = ""; - } - return this; - }, - locked: function() { - return !!locked; - }, - - // Call all callbacks with the given context and arguments - fireWith: function( context, args ) { - if ( !locked ) { - args = args || []; - args = [ context, args.slice ? args.slice() : args ]; - queue.push( args ); - if ( !firing ) { - fire(); - } - } - return this; - }, - - // Call all the callbacks with the given arguments - fire: function() { - self.fireWith( this, arguments ); - return this; - }, - - // To know if the callbacks have already been called at least once - fired: function() { - return !!fired; - } - }; - - return self; -}; - - -function Identity( v ) { - return v; -} -function Thrower( ex ) { - throw ex; -} - -function adoptValue( value, resolve, reject, noValue ) { - var method; - - try { - - // Check for promise aspect first to privilege synchronous behavior - if ( value && isFunction( ( method = value.promise ) ) ) { - method.call( value ).done( resolve ).fail( reject ); - - // Other thenables - } else if ( value && isFunction( ( method = value.then ) ) ) { - method.call( value, resolve, reject ); - - // Other non-thenables - } else { - - // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer: - // * false: [ value ].slice( 0 ) => resolve( value ) - // * true: [ value ].slice( 1 ) => resolve() - resolve.apply( undefined, [ value ].slice( noValue ) ); - } - - // For Promises/A+, convert exceptions into rejections - // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in - // Deferred#then to conditionally suppress rejection. - } catch ( value ) { - - // Support: Android 4.0 only - // Strict mode functions invoked without .call/.apply get global-object context - reject.apply( undefined, [ value ] ); - } -} - -jQuery.extend( { - - Deferred: function( func ) { - var tuples = [ - - // action, add listener, callbacks, - // ... .then handlers, argument index, [final state] - [ "notify", "progress", jQuery.Callbacks( "memory" ), - jQuery.Callbacks( "memory" ), 2 ], - [ "resolve", "done", jQuery.Callbacks( "once memory" ), - jQuery.Callbacks( "once memory" ), 0, "resolved" ], - [ "reject", "fail", jQuery.Callbacks( "once memory" ), - jQuery.Callbacks( "once memory" ), 1, "rejected" ] - ], - state = "pending", - promise = { - state: function() { - return state; - }, - always: function() { - deferred.done( arguments ).fail( arguments ); - return this; - }, - "catch": function( fn ) { - return promise.then( null, fn ); - }, - - // Keep pipe for back-compat - pipe: function( /* fnDone, fnFail, fnProgress */ ) { - var fns = arguments; - - return jQuery.Deferred( function( newDefer ) { - jQuery.each( tuples, function( i, tuple ) { - - // Map tuples (progress, done, fail) to arguments (done, fail, progress) - var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ]; - - // deferred.progress(function() { bind to newDefer or newDefer.notify }) - // deferred.done(function() { bind to newDefer or newDefer.resolve }) - // deferred.fail(function() { bind to newDefer or newDefer.reject }) - deferred[ tuple[ 1 ] ]( function() { - var returned = fn && fn.apply( this, arguments ); - if ( returned && isFunction( returned.promise ) ) { - returned.promise() - .progress( newDefer.notify ) - .done( newDefer.resolve ) - .fail( newDefer.reject ); - } else { - newDefer[ tuple[ 0 ] + "With" ]( - this, - fn ? [ returned ] : arguments - ); - } - } ); - } ); - fns = null; - } ).promise(); - }, - then: function( onFulfilled, onRejected, onProgress ) { - var maxDepth = 0; - function resolve( depth, deferred, handler, special ) { - return function() { - var that = this, - args = arguments, - mightThrow = function() { - var returned, then; - - // Support: Promises/A+ section 2.3.3.3.3 - // https://promisesaplus.com/#point-59 - // Ignore double-resolution attempts - if ( depth < maxDepth ) { - return; - } - - returned = handler.apply( that, args ); - - // Support: Promises/A+ section 2.3.1 - // https://promisesaplus.com/#point-48 - if ( returned === deferred.promise() ) { - throw new TypeError( "Thenable self-resolution" ); - } - - // Support: Promises/A+ sections 2.3.3.1, 3.5 - // https://promisesaplus.com/#point-54 - // https://promisesaplus.com/#point-75 - // Retrieve `then` only once - then = returned && - - // Support: Promises/A+ section 2.3.4 - // https://promisesaplus.com/#point-64 - // Only check objects and functions for thenability - ( typeof returned === "object" || - typeof returned === "function" ) && - returned.then; - - // Handle a returned thenable - if ( isFunction( then ) ) { - - // Special processors (notify) just wait for resolution - if ( special ) { - then.call( - returned, - resolve( maxDepth, deferred, Identity, special ), - resolve( maxDepth, deferred, Thrower, special ) - ); - - // Normal processors (resolve) also hook into progress - } else { - - // ...and disregard older resolution values - maxDepth++; - - then.call( - returned, - resolve( maxDepth, deferred, Identity, special ), - resolve( maxDepth, deferred, Thrower, special ), - resolve( maxDepth, deferred, Identity, - deferred.notifyWith ) - ); - } - - // Handle all other returned values - } else { - - // Only substitute handlers pass on context - // and multiple values (non-spec behavior) - if ( handler !== Identity ) { - that = undefined; - args = [ returned ]; - } - - // Process the value(s) - // Default process is resolve - ( special || deferred.resolveWith )( that, args ); - } - }, - - // Only normal processors (resolve) catch and reject exceptions - process = special ? - mightThrow : - function() { - try { - mightThrow(); - } catch ( e ) { - - if ( jQuery.Deferred.exceptionHook ) { - jQuery.Deferred.exceptionHook( e, - process.stackTrace ); - } - - // Support: Promises/A+ section 2.3.3.3.4.1 - // https://promisesaplus.com/#point-61 - // Ignore post-resolution exceptions - if ( depth + 1 >= maxDepth ) { - - // Only substitute handlers pass on context - // and multiple values (non-spec behavior) - if ( handler !== Thrower ) { - that = undefined; - args = [ e ]; - } - - deferred.rejectWith( that, args ); - } - } - }; - - // Support: Promises/A+ section 2.3.3.3.1 - // https://promisesaplus.com/#point-57 - // Re-resolve promises immediately to dodge false rejection from - // subsequent errors - if ( depth ) { - process(); - } else { - - // Call an optional hook to record the stack, in case of exception - // since it's otherwise lost when execution goes async - if ( jQuery.Deferred.getStackHook ) { - process.stackTrace = jQuery.Deferred.getStackHook(); - } - window.setTimeout( process ); - } - }; - } - - return jQuery.Deferred( function( newDefer ) { - - // progress_handlers.add( ... ) - tuples[ 0 ][ 3 ].add( - resolve( - 0, - newDefer, - isFunction( onProgress ) ? - onProgress : - Identity, - newDefer.notifyWith - ) - ); - - // fulfilled_handlers.add( ... ) - tuples[ 1 ][ 3 ].add( - resolve( - 0, - newDefer, - isFunction( onFulfilled ) ? - onFulfilled : - Identity - ) - ); - - // rejected_handlers.add( ... ) - tuples[ 2 ][ 3 ].add( - resolve( - 0, - newDefer, - isFunction( onRejected ) ? - onRejected : - Thrower - ) - ); - } ).promise(); - }, - - // Get a promise for this deferred - // If obj is provided, the promise aspect is added to the object - promise: function( obj ) { - return obj != null ? jQuery.extend( obj, promise ) : promise; - } - }, - deferred = {}; - - // Add list-specific methods - jQuery.each( tuples, function( i, tuple ) { - var list = tuple[ 2 ], - stateString = tuple[ 5 ]; - - // promise.progress = list.add - // promise.done = list.add - // promise.fail = list.add - promise[ tuple[ 1 ] ] = list.add; - - // Handle state - if ( stateString ) { - list.add( - function() { - - // state = "resolved" (i.e., fulfilled) - // state = "rejected" - state = stateString; - }, - - // rejected_callbacks.disable - // fulfilled_callbacks.disable - tuples[ 3 - i ][ 2 ].disable, - - // rejected_handlers.disable - // fulfilled_handlers.disable - tuples[ 3 - i ][ 3 ].disable, - - // progress_callbacks.lock - tuples[ 0 ][ 2 ].lock, - - // progress_handlers.lock - tuples[ 0 ][ 3 ].lock - ); - } - - // progress_handlers.fire - // fulfilled_handlers.fire - // rejected_handlers.fire - list.add( tuple[ 3 ].fire ); - - // deferred.notify = function() { deferred.notifyWith(...) } - // deferred.resolve = function() { deferred.resolveWith(...) } - // deferred.reject = function() { deferred.rejectWith(...) } - deferred[ tuple[ 0 ] ] = function() { - deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments ); - return this; - }; - - // deferred.notifyWith = list.fireWith - // deferred.resolveWith = list.fireWith - // deferred.rejectWith = list.fireWith - deferred[ tuple[ 0 ] + "With" ] = list.fireWith; - } ); - - // Make the deferred a promise - promise.promise( deferred ); - - // Call given func if any - if ( func ) { - func.call( deferred, deferred ); - } - - // All done! - return deferred; - }, - - // Deferred helper - when: function( singleValue ) { - var - - // count of uncompleted subordinates - remaining = arguments.length, - - // count of unprocessed arguments - i = remaining, - - // subordinate fulfillment data - resolveContexts = Array( i ), - resolveValues = slice.call( arguments ), - - // the master Deferred - master = jQuery.Deferred(), - - // subordinate callback factory - updateFunc = function( i ) { - return function( value ) { - resolveContexts[ i ] = this; - resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; - if ( !( --remaining ) ) { - master.resolveWith( resolveContexts, resolveValues ); - } - }; - }; - - // Single- and empty arguments are adopted like Promise.resolve - if ( remaining <= 1 ) { - adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject, - !remaining ); - - // Use .then() to unwrap secondary thenables (cf. gh-3000) - if ( master.state() === "pending" || - isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) { - - return master.then(); - } - } - - // Multiple arguments are aggregated like Promise.all array elements - while ( i-- ) { - adoptValue( resolveValues[ i ], updateFunc( i ), master.reject ); - } - - return master.promise(); - } -} ); - - -// These usually indicate a programmer mistake during development, -// warn about them ASAP rather than swallowing them by default. -var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; - -jQuery.Deferred.exceptionHook = function( error, stack ) { - - // Support: IE 8 - 9 only - // Console exists when dev tools are open, which can happen at any time - if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) { - window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack ); - } -}; - - - - -jQuery.readyException = function( error ) { - window.setTimeout( function() { - throw error; - } ); -}; - - - - -// The deferred used on DOM ready -var readyList = jQuery.Deferred(); - -jQuery.fn.ready = function( fn ) { - - readyList - .then( fn ) - - // Wrap jQuery.readyException in a function so that the lookup - // happens at the time of error handling instead of callback - // registration. - .catch( function( error ) { - jQuery.readyException( error ); - } ); - - return this; -}; - -jQuery.extend( { - - // Is the DOM ready to be used? Set to true once it occurs. - isReady: false, - - // A counter to track how many items to wait for before - // the ready event fires. See #6781 - readyWait: 1, - - // Handle when the DOM is ready - ready: function( wait ) { - - // Abort if there are pending holds or we're already ready - if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { - return; - } - - // Remember that the DOM is ready - jQuery.isReady = true; - - // If a normal DOM Ready event fired, decrement, and wait if need be - if ( wait !== true && --jQuery.readyWait > 0 ) { - return; - } - - // If there are functions bound, to execute - readyList.resolveWith( document, [ jQuery ] ); - } -} ); - -jQuery.ready.then = readyList.then; - -// The ready event handler and self cleanup method -function completed() { - document.removeEventListener( "DOMContentLoaded", completed ); - window.removeEventListener( "load", completed ); - jQuery.ready(); -} - -// Catch cases where $(document).ready() is called -// after the browser event has already occurred. -// Support: IE <=9 - 10 only -// Older IE sometimes signals "interactive" too soon -if ( document.readyState === "complete" || - ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) { - - // Handle it asynchronously to allow scripts the opportunity to delay ready - window.setTimeout( jQuery.ready ); - -} else { - - // Use the handy event callback - document.addEventListener( "DOMContentLoaded", completed ); - - // A fallback to window.onload, that will always work - window.addEventListener( "load", completed ); -} - - - - -// Multifunctional method to get and set values of a collection -// The value/s can optionally be executed if it's a function -var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { - var i = 0, - len = elems.length, - bulk = key == null; - - // Sets many values - if ( toType( key ) === "object" ) { - chainable = true; - for ( i in key ) { - access( elems, fn, i, key[ i ], true, emptyGet, raw ); - } - - // Sets one value - } else if ( value !== undefined ) { - chainable = true; - - if ( !isFunction( value ) ) { - raw = true; - } - - if ( bulk ) { - - // Bulk operations run against the entire set - if ( raw ) { - fn.call( elems, value ); - fn = null; - - // ...except when executing function values - } else { - bulk = fn; - fn = function( elem, key, value ) { - return bulk.call( jQuery( elem ), value ); - }; - } - } - - if ( fn ) { - for ( ; i < len; i++ ) { - fn( - elems[ i ], key, raw ? - value : - value.call( elems[ i ], i, fn( elems[ i ], key ) ) - ); - } - } - } - - if ( chainable ) { - return elems; - } - - // Gets - if ( bulk ) { - return fn.call( elems ); - } - - return len ? fn( elems[ 0 ], key ) : emptyGet; -}; - - -// Matches dashed string for camelizing -var rmsPrefix = /^-ms-/, - rdashAlpha = /-([a-z])/g; - -// Used by camelCase as callback to replace() -function fcamelCase( all, letter ) { - return letter.toUpperCase(); -} - -// Convert dashed to camelCase; used by the css and data modules -// Support: IE <=9 - 11, Edge 12 - 15 -// Microsoft forgot to hump their vendor prefix (#9572) -function camelCase( string ) { - return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); -} -var acceptData = function( owner ) { - - // Accepts only: - // - Node - // - Node.ELEMENT_NODE - // - Node.DOCUMENT_NODE - // - Object - // - Any - return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); -}; - - - - -function Data() { - this.expando = jQuery.expando + Data.uid++; -} - -Data.uid = 1; - -Data.prototype = { - - cache: function( owner ) { - - // Check if the owner object already has a cache - var value = owner[ this.expando ]; - - // If not, create one - if ( !value ) { - value = {}; - - // We can accept data for non-element nodes in modern browsers, - // but we should not, see #8335. - // Always return an empty object. - if ( acceptData( owner ) ) { - - // If it is a node unlikely to be stringify-ed or looped over - // use plain assignment - if ( owner.nodeType ) { - owner[ this.expando ] = value; - - // Otherwise secure it in a non-enumerable property - // configurable must be true to allow the property to be - // deleted when data is removed - } else { - Object.defineProperty( owner, this.expando, { - value: value, - configurable: true - } ); - } - } - } - - return value; - }, - set: function( owner, data, value ) { - var prop, - cache = this.cache( owner ); - - // Handle: [ owner, key, value ] args - // Always use camelCase key (gh-2257) - if ( typeof data === "string" ) { - cache[ camelCase( data ) ] = value; - - // Handle: [ owner, { properties } ] args - } else { - - // Copy the properties one-by-one to the cache object - for ( prop in data ) { - cache[ camelCase( prop ) ] = data[ prop ]; - } - } - return cache; - }, - get: function( owner, key ) { - return key === undefined ? - this.cache( owner ) : - - // Always use camelCase key (gh-2257) - owner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ]; - }, - access: function( owner, key, value ) { - - // In cases where either: - // - // 1. No key was specified - // 2. A string key was specified, but no value provided - // - // Take the "read" path and allow the get method to determine - // which value to return, respectively either: - // - // 1. The entire cache object - // 2. The data stored at the key - // - if ( key === undefined || - ( ( key && typeof key === "string" ) && value === undefined ) ) { - - return this.get( owner, key ); - } - - // When the key is not a string, or both a key and value - // are specified, set or extend (existing objects) with either: - // - // 1. An object of properties - // 2. A key and value - // - this.set( owner, key, value ); - - // Since the "set" path can have two possible entry points - // return the expected data based on which path was taken[*] - return value !== undefined ? value : key; - }, - remove: function( owner, key ) { - var i, - cache = owner[ this.expando ]; - - if ( cache === undefined ) { - return; - } - - if ( key !== undefined ) { - - // Support array or space separated string of keys - if ( Array.isArray( key ) ) { - - // If key is an array of keys... - // We always set camelCase keys, so remove that. - key = key.map( camelCase ); - } else { - key = camelCase( key ); - - // If a key with the spaces exists, use it. - // Otherwise, create an array by matching non-whitespace - key = key in cache ? - [ key ] : - ( key.match( rnothtmlwhite ) || [] ); - } - - i = key.length; - - while ( i-- ) { - delete cache[ key[ i ] ]; - } - } - - // Remove the expando if there's no more data - if ( key === undefined || jQuery.isEmptyObject( cache ) ) { - - // Support: Chrome <=35 - 45 - // Webkit & Blink performance suffers when deleting properties - // from DOM nodes, so set to undefined instead - // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted) - if ( owner.nodeType ) { - owner[ this.expando ] = undefined; - } else { - delete owner[ this.expando ]; - } - } - }, - hasData: function( owner ) { - var cache = owner[ this.expando ]; - return cache !== undefined && !jQuery.isEmptyObject( cache ); - } -}; -var dataPriv = new Data(); - -var dataUser = new Data(); - - - -// Implementation Summary -// -// 1. Enforce API surface and semantic compatibility with 1.9.x branch -// 2. Improve the module's maintainability by reducing the storage -// paths to a single mechanism. -// 3. Use the same single mechanism to support "private" and "user" data. -// 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData) -// 5. Avoid exposing implementation details on user objects (eg. expando properties) -// 6. Provide a clear path for implementation upgrade to WeakMap in 2014 - -var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, - rmultiDash = /[A-Z]/g; - -function getData( data ) { - if ( data === "true" ) { - return true; - } - - if ( data === "false" ) { - return false; - } - - if ( data === "null" ) { - return null; - } - - // Only convert to a number if it doesn't change the string - if ( data === +data + "" ) { - return +data; - } - - if ( rbrace.test( data ) ) { - return JSON.parse( data ); - } - - return data; -} - -function dataAttr( elem, key, data ) { - var name; - - // If nothing was found internally, try to fetch any - // data from the HTML5 data-* attribute - if ( data === undefined && elem.nodeType === 1 ) { - name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase(); - data = elem.getAttribute( name ); - - if ( typeof data === "string" ) { - try { - data = getData( data ); - } catch ( e ) {} - - // Make sure we set the data so it isn't changed later - dataUser.set( elem, key, data ); - } else { - data = undefined; - } - } - return data; -} - -jQuery.extend( { - hasData: function( elem ) { - return dataUser.hasData( elem ) || dataPriv.hasData( elem ); - }, - - data: function( elem, name, data ) { - return dataUser.access( elem, name, data ); - }, - - removeData: function( elem, name ) { - dataUser.remove( elem, name ); - }, - - // TODO: Now that all calls to _data and _removeData have been replaced - // with direct calls to dataPriv methods, these can be deprecated. - _data: function( elem, name, data ) { - return dataPriv.access( elem, name, data ); - }, - - _removeData: function( elem, name ) { - dataPriv.remove( elem, name ); - } -} ); - -jQuery.fn.extend( { - data: function( key, value ) { - var i, name, data, - elem = this[ 0 ], - attrs = elem && elem.attributes; - - // Gets all values - if ( key === undefined ) { - if ( this.length ) { - data = dataUser.get( elem ); - - if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) { - i = attrs.length; - while ( i-- ) { - - // Support: IE 11 only - // The attrs elements can be null (#14894) - if ( attrs[ i ] ) { - name = attrs[ i ].name; - if ( name.indexOf( "data-" ) === 0 ) { - name = camelCase( name.slice( 5 ) ); - dataAttr( elem, name, data[ name ] ); - } - } - } - dataPriv.set( elem, "hasDataAttrs", true ); - } - } - - return data; - } - - // Sets multiple values - if ( typeof key === "object" ) { - return this.each( function() { - dataUser.set( this, key ); - } ); - } - - return access( this, function( value ) { - var data; - - // The calling jQuery object (element matches) is not empty - // (and therefore has an element appears at this[ 0 ]) and the - // `value` parameter was not undefined. An empty jQuery object - // will result in `undefined` for elem = this[ 0 ] which will - // throw an exception if an attempt to read a data cache is made. - if ( elem && value === undefined ) { - - // Attempt to get data from the cache - // The key will always be camelCased in Data - data = dataUser.get( elem, key ); - if ( data !== undefined ) { - return data; - } - - // Attempt to "discover" the data in - // HTML5 custom data-* attrs - data = dataAttr( elem, key ); - if ( data !== undefined ) { - return data; - } - - // We tried really hard, but the data doesn't exist. - return; - } - - // Set the data... - this.each( function() { - - // We always store the camelCased key - dataUser.set( this, key, value ); - } ); - }, null, value, arguments.length > 1, null, true ); - }, - - removeData: function( key ) { - return this.each( function() { - dataUser.remove( this, key ); - } ); - } -} ); - - -jQuery.extend( { - queue: function( elem, type, data ) { - var queue; - - if ( elem ) { - type = ( type || "fx" ) + "queue"; - queue = dataPriv.get( elem, type ); - - // Speed up dequeue by getting out quickly if this is just a lookup - if ( data ) { - if ( !queue || Array.isArray( data ) ) { - queue = dataPriv.access( elem, type, jQuery.makeArray( data ) ); - } else { - queue.push( data ); - } - } - return queue || []; - } - }, - - dequeue: function( elem, type ) { - type = type || "fx"; - - var queue = jQuery.queue( elem, type ), - startLength = queue.length, - fn = queue.shift(), - hooks = jQuery._queueHooks( elem, type ), - next = function() { - jQuery.dequeue( elem, type ); - }; - - // If the fx queue is dequeued, always remove the progress sentinel - if ( fn === "inprogress" ) { - fn = queue.shift(); - startLength--; - } - - if ( fn ) { - - // Add a progress sentinel to prevent the fx queue from being - // automatically dequeued - if ( type === "fx" ) { - queue.unshift( "inprogress" ); - } - - // Clear up the last queue stop function - delete hooks.stop; - fn.call( elem, next, hooks ); - } - - if ( !startLength && hooks ) { - hooks.empty.fire(); - } - }, - - // Not public - generate a queueHooks object, or return the current one - _queueHooks: function( elem, type ) { - var key = type + "queueHooks"; - return dataPriv.get( elem, key ) || dataPriv.access( elem, key, { - empty: jQuery.Callbacks( "once memory" ).add( function() { - dataPriv.remove( elem, [ type + "queue", key ] ); - } ) - } ); - } -} ); - -jQuery.fn.extend( { - queue: function( type, data ) { - var setter = 2; - - if ( typeof type !== "string" ) { - data = type; - type = "fx"; - setter--; - } - - if ( arguments.length < setter ) { - return jQuery.queue( this[ 0 ], type ); - } - - return data === undefined ? - this : - this.each( function() { - var queue = jQuery.queue( this, type, data ); - - // Ensure a hooks for this queue - jQuery._queueHooks( this, type ); - - if ( type === "fx" && queue[ 0 ] !== "inprogress" ) { - jQuery.dequeue( this, type ); - } - } ); - }, - dequeue: function( type ) { - return this.each( function() { - jQuery.dequeue( this, type ); - } ); - }, - clearQueue: function( type ) { - return this.queue( type || "fx", [] ); - }, - - // Get a promise resolved when queues of a certain type - // are emptied (fx is the type by default) - promise: function( type, obj ) { - var tmp, - count = 1, - defer = jQuery.Deferred(), - elements = this, - i = this.length, - resolve = function() { - if ( !( --count ) ) { - defer.resolveWith( elements, [ elements ] ); - } - }; - - if ( typeof type !== "string" ) { - obj = type; - type = undefined; - } - type = type || "fx"; - - while ( i-- ) { - tmp = dataPriv.get( elements[ i ], type + "queueHooks" ); - if ( tmp && tmp.empty ) { - count++; - tmp.empty.add( resolve ); - } - } - resolve(); - return defer.promise( obj ); - } -} ); -var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source; - -var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ); - - -var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; - -var isHiddenWithinTree = function( elem, el ) { - - // isHiddenWithinTree might be called from jQuery#filter function; - // in that case, element will be second argument - elem = el || elem; - - // Inline style trumps all - return elem.style.display === "none" || - elem.style.display === "" && - - // Otherwise, check computed style - // Support: Firefox <=43 - 45 - // Disconnected elements can have computed display: none, so first confirm that elem is - // in the document. - jQuery.contains( elem.ownerDocument, elem ) && - - jQuery.css( elem, "display" ) === "none"; - }; - -var swap = function( elem, options, callback, args ) { - var ret, name, - old = {}; - - // Remember the old values, and insert the new ones - for ( name in options ) { - old[ name ] = elem.style[ name ]; - elem.style[ name ] = options[ name ]; - } - - ret = callback.apply( elem, args || [] ); - - // Revert the old values - for ( name in options ) { - elem.style[ name ] = old[ name ]; - } - - return ret; -}; - - - - -function adjustCSS( elem, prop, valueParts, tween ) { - var adjusted, scale, - maxIterations = 20, - currentValue = tween ? - function() { - return tween.cur(); - } : - function() { - return jQuery.css( elem, prop, "" ); - }, - initial = currentValue(), - unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), - - // Starting value computation is required for potential unit mismatches - initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) && - rcssNum.exec( jQuery.css( elem, prop ) ); - - if ( initialInUnit && initialInUnit[ 3 ] !== unit ) { - - // Support: Firefox <=54 - // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144) - initial = initial / 2; - - // Trust units reported by jQuery.css - unit = unit || initialInUnit[ 3 ]; - - // Iteratively approximate from a nonzero starting point - initialInUnit = +initial || 1; - - while ( maxIterations-- ) { - - // Evaluate and update our best guess (doubling guesses that zero out). - // Finish if the scale equals or crosses 1 (making the old*new product non-positive). - jQuery.style( elem, prop, initialInUnit + unit ); - if ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) { - maxIterations = 0; - } - initialInUnit = initialInUnit / scale; - - } - - initialInUnit = initialInUnit * 2; - jQuery.style( elem, prop, initialInUnit + unit ); - - // Make sure we update the tween properties later on - valueParts = valueParts || []; - } - - if ( valueParts ) { - initialInUnit = +initialInUnit || +initial || 0; - - // Apply relative offset (+=/-=) if specified - adjusted = valueParts[ 1 ] ? - initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] : - +valueParts[ 2 ]; - if ( tween ) { - tween.unit = unit; - tween.start = initialInUnit; - tween.end = adjusted; - } - } - return adjusted; -} - - -var defaultDisplayMap = {}; - -function getDefaultDisplay( elem ) { - var temp, - doc = elem.ownerDocument, - nodeName = elem.nodeName, - display = defaultDisplayMap[ nodeName ]; - - if ( display ) { - return display; - } - - temp = doc.body.appendChild( doc.createElement( nodeName ) ); - display = jQuery.css( temp, "display" ); - - temp.parentNode.removeChild( temp ); - - if ( display === "none" ) { - display = "block"; - } - defaultDisplayMap[ nodeName ] = display; - - return display; -} - -function showHide( elements, show ) { - var display, elem, - values = [], - index = 0, - length = elements.length; - - // Determine new display value for elements that need to change - for ( ; index < length; index++ ) { - elem = elements[ index ]; - if ( !elem.style ) { - continue; - } - - display = elem.style.display; - if ( show ) { - - // Since we force visibility upon cascade-hidden elements, an immediate (and slow) - // check is required in this first loop unless we have a nonempty display value (either - // inline or about-to-be-restored) - if ( display === "none" ) { - values[ index ] = dataPriv.get( elem, "display" ) || null; - if ( !values[ index ] ) { - elem.style.display = ""; - } - } - if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) { - values[ index ] = getDefaultDisplay( elem ); - } - } else { - if ( display !== "none" ) { - values[ index ] = "none"; - - // Remember what we're overwriting - dataPriv.set( elem, "display", display ); - } - } - } - - // Set the display of the elements in a second loop to avoid constant reflow - for ( index = 0; index < length; index++ ) { - if ( values[ index ] != null ) { - elements[ index ].style.display = values[ index ]; - } - } - - return elements; -} - -jQuery.fn.extend( { - show: function() { - return showHide( this, true ); - }, - hide: function() { - return showHide( this ); - }, - toggle: function( state ) { - if ( typeof state === "boolean" ) { - return state ? this.show() : this.hide(); - } - - return this.each( function() { - if ( isHiddenWithinTree( this ) ) { - jQuery( this ).show(); - } else { - jQuery( this ).hide(); - } - } ); - } -} ); -var rcheckableType = ( /^(?:checkbox|radio)$/i ); - -var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]+)/i ); - -var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i ); - - - -// We have to close these tags to support XHTML (#13200) -var wrapMap = { - - // Support: IE <=9 only - option: [ 1, "" ], - - // XHTML parsers do not magically insert elements in the - // same way that tag soup parsers do. So we cannot shorten - // this by omitting or other required elements. - thead: [ 1, "", "
    " ], - col: [ 2, "", "
    " ], - tr: [ 2, "", "
    " ], - td: [ 3, "", "
    " ], - - _default: [ 0, "", "" ] -}; - -// Support: IE <=9 only -wrapMap.optgroup = wrapMap.option; - -wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; -wrapMap.th = wrapMap.td; - - -function getAll( context, tag ) { - - // Support: IE <=9 - 11 only - // Use typeof to avoid zero-argument method invocation on host objects (#15151) - var ret; - - if ( typeof context.getElementsByTagName !== "undefined" ) { - ret = context.getElementsByTagName( tag || "*" ); - - } else if ( typeof context.querySelectorAll !== "undefined" ) { - ret = context.querySelectorAll( tag || "*" ); - - } else { - ret = []; - } - - if ( tag === undefined || tag && nodeName( context, tag ) ) { - return jQuery.merge( [ context ], ret ); - } - - return ret; -} - - -// Mark scripts as having already been evaluated -function setGlobalEval( elems, refElements ) { - var i = 0, - l = elems.length; - - for ( ; i < l; i++ ) { - dataPriv.set( - elems[ i ], - "globalEval", - !refElements || dataPriv.get( refElements[ i ], "globalEval" ) - ); - } -} - - -var rhtml = /<|&#?\w+;/; - -function buildFragment( elems, context, scripts, selection, ignored ) { - var elem, tmp, tag, wrap, contains, j, - fragment = context.createDocumentFragment(), - nodes = [], - i = 0, - l = elems.length; - - for ( ; i < l; i++ ) { - elem = elems[ i ]; - - if ( elem || elem === 0 ) { - - // Add nodes directly - if ( toType( elem ) === "object" ) { - - // Support: Android <=4.0 only, PhantomJS 1 only - // push.apply(_, arraylike) throws on ancient WebKit - jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); - - // Convert non-html into a text node - } else if ( !rhtml.test( elem ) ) { - nodes.push( context.createTextNode( elem ) ); - - // Convert html into DOM nodes - } else { - tmp = tmp || fragment.appendChild( context.createElement( "div" ) ); - - // Deserialize a standard representation - tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); - wrap = wrapMap[ tag ] || wrapMap._default; - tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ]; - - // Descend through wrappers to the right content - j = wrap[ 0 ]; - while ( j-- ) { - tmp = tmp.lastChild; - } - - // Support: Android <=4.0 only, PhantomJS 1 only - // push.apply(_, arraylike) throws on ancient WebKit - jQuery.merge( nodes, tmp.childNodes ); - - // Remember the top-level container - tmp = fragment.firstChild; - - // Ensure the created nodes are orphaned (#12392) - tmp.textContent = ""; - } - } - } - - // Remove wrapper from fragment - fragment.textContent = ""; - - i = 0; - while ( ( elem = nodes[ i++ ] ) ) { - - // Skip elements already in the context collection (trac-4087) - if ( selection && jQuery.inArray( elem, selection ) > -1 ) { - if ( ignored ) { - ignored.push( elem ); - } - continue; - } - - contains = jQuery.contains( elem.ownerDocument, elem ); - - // Append to fragment - tmp = getAll( fragment.appendChild( elem ), "script" ); - - // Preserve script evaluation history - if ( contains ) { - setGlobalEval( tmp ); - } - - // Capture executables - if ( scripts ) { - j = 0; - while ( ( elem = tmp[ j++ ] ) ) { - if ( rscriptType.test( elem.type || "" ) ) { - scripts.push( elem ); - } - } - } - } - - return fragment; -} - - -( function() { - var fragment = document.createDocumentFragment(), - div = fragment.appendChild( document.createElement( "div" ) ), - input = document.createElement( "input" ); - - // Support: Android 4.0 - 4.3 only - // Check state lost if the name is set (#11217) - // Support: Windows Web Apps (WWA) - // `name` and `type` must use .setAttribute for WWA (#14901) - input.setAttribute( "type", "radio" ); - input.setAttribute( "checked", "checked" ); - input.setAttribute( "name", "t" ); - - div.appendChild( input ); - - // Support: Android <=4.1 only - // Older WebKit doesn't clone checked state correctly in fragments - support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; - - // Support: IE <=11 only - // Make sure textarea (and checkbox) defaultValue is properly cloned - div.innerHTML = ""; - support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; -} )(); -var documentElement = document.documentElement; - - - -var - rkeyEvent = /^key/, - rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, - rtypenamespace = /^([^.]*)(?:\.(.+)|)/; - -function returnTrue() { - return true; -} - -function returnFalse() { - return false; -} - -// Support: IE <=9 only -// See #13393 for more info -function safeActiveElement() { - try { - return document.activeElement; - } catch ( err ) { } -} - -function on( elem, types, selector, data, fn, one ) { - var origFn, type; - - // Types can be a map of types/handlers - if ( typeof types === "object" ) { - - // ( types-Object, selector, data ) - if ( typeof selector !== "string" ) { - - // ( types-Object, data ) - data = data || selector; - selector = undefined; - } - for ( type in types ) { - on( elem, type, selector, data, types[ type ], one ); - } - return elem; - } - - if ( data == null && fn == null ) { - - // ( types, fn ) - fn = selector; - data = selector = undefined; - } else if ( fn == null ) { - if ( typeof selector === "string" ) { - - // ( types, selector, fn ) - fn = data; - data = undefined; - } else { - - // ( types, data, fn ) - fn = data; - data = selector; - selector = undefined; - } - } - if ( fn === false ) { - fn = returnFalse; - } else if ( !fn ) { - return elem; - } - - if ( one === 1 ) { - origFn = fn; - fn = function( event ) { - - // Can use an empty set, since event contains the info - jQuery().off( event ); - return origFn.apply( this, arguments ); - }; - - // Use same guid so caller can remove using origFn - fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); - } - return elem.each( function() { - jQuery.event.add( this, types, fn, data, selector ); - } ); -} - -/* - * Helper functions for managing events -- not part of the public interface. - * Props to Dean Edwards' addEvent library for many of the ideas. - */ -jQuery.event = { - - global: {}, - - add: function( elem, types, handler, data, selector ) { - - var handleObjIn, eventHandle, tmp, - events, t, handleObj, - special, handlers, type, namespaces, origType, - elemData = dataPriv.get( elem ); - - // Don't attach events to noData or text/comment nodes (but allow plain objects) - if ( !elemData ) { - return; - } - - // Caller can pass in an object of custom data in lieu of the handler - if ( handler.handler ) { - handleObjIn = handler; - handler = handleObjIn.handler; - selector = handleObjIn.selector; - } - - // Ensure that invalid selectors throw exceptions at attach time - // Evaluate against documentElement in case elem is a non-element node (e.g., document) - if ( selector ) { - jQuery.find.matchesSelector( documentElement, selector ); - } - - // Make sure that the handler has a unique ID, used to find/remove it later - if ( !handler.guid ) { - handler.guid = jQuery.guid++; - } - - // Init the element's event structure and main handler, if this is the first - if ( !( events = elemData.events ) ) { - events = elemData.events = {}; - } - if ( !( eventHandle = elemData.handle ) ) { - eventHandle = elemData.handle = function( e ) { - - // Discard the second event of a jQuery.event.trigger() and - // when an event is called after a page has unloaded - return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ? - jQuery.event.dispatch.apply( elem, arguments ) : undefined; - }; - } - - // Handle multiple events separated by a space - types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; - t = types.length; - while ( t-- ) { - tmp = rtypenamespace.exec( types[ t ] ) || []; - type = origType = tmp[ 1 ]; - namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); - - // There *must* be a type, no attaching namespace-only handlers - if ( !type ) { - continue; - } - - // If event changes its type, use the special event handlers for the changed type - special = jQuery.event.special[ type ] || {}; - - // If selector defined, determine special event api type, otherwise given type - type = ( selector ? special.delegateType : special.bindType ) || type; - - // Update special based on newly reset type - special = jQuery.event.special[ type ] || {}; - - // handleObj is passed to all event handlers - handleObj = jQuery.extend( { - type: type, - origType: origType, - data: data, - handler: handler, - guid: handler.guid, - selector: selector, - needsContext: selector && jQuery.expr.match.needsContext.test( selector ), - namespace: namespaces.join( "." ) - }, handleObjIn ); - - // Init the event handler queue if we're the first - if ( !( handlers = events[ type ] ) ) { - handlers = events[ type ] = []; - handlers.delegateCount = 0; - - // Only use addEventListener if the special events handler returns false - if ( !special.setup || - special.setup.call( elem, data, namespaces, eventHandle ) === false ) { - - if ( elem.addEventListener ) { - elem.addEventListener( type, eventHandle ); - } - } - } - - if ( special.add ) { - special.add.call( elem, handleObj ); - - if ( !handleObj.handler.guid ) { - handleObj.handler.guid = handler.guid; - } - } - - // Add to the element's handler list, delegates in front - if ( selector ) { - handlers.splice( handlers.delegateCount++, 0, handleObj ); - } else { - handlers.push( handleObj ); - } - - // Keep track of which events have ever been used, for event optimization - jQuery.event.global[ type ] = true; - } - - }, - - // Detach an event or set of events from an element - remove: function( elem, types, handler, selector, mappedTypes ) { - - var j, origCount, tmp, - events, t, handleObj, - special, handlers, type, namespaces, origType, - elemData = dataPriv.hasData( elem ) && dataPriv.get( elem ); - - if ( !elemData || !( events = elemData.events ) ) { - return; - } - - // Once for each type.namespace in types; type may be omitted - types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; - t = types.length; - while ( t-- ) { - tmp = rtypenamespace.exec( types[ t ] ) || []; - type = origType = tmp[ 1 ]; - namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); - - // Unbind all events (on this namespace, if provided) for the element - if ( !type ) { - for ( type in events ) { - jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); - } - continue; - } - - special = jQuery.event.special[ type ] || {}; - type = ( selector ? special.delegateType : special.bindType ) || type; - handlers = events[ type ] || []; - tmp = tmp[ 2 ] && - new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ); - - // Remove matching events - origCount = j = handlers.length; - while ( j-- ) { - handleObj = handlers[ j ]; - - if ( ( mappedTypes || origType === handleObj.origType ) && - ( !handler || handler.guid === handleObj.guid ) && - ( !tmp || tmp.test( handleObj.namespace ) ) && - ( !selector || selector === handleObj.selector || - selector === "**" && handleObj.selector ) ) { - handlers.splice( j, 1 ); - - if ( handleObj.selector ) { - handlers.delegateCount--; - } - if ( special.remove ) { - special.remove.call( elem, handleObj ); - } - } - } - - // Remove generic event handler if we removed something and no more handlers exist - // (avoids potential for endless recursion during removal of special event handlers) - if ( origCount && !handlers.length ) { - if ( !special.teardown || - special.teardown.call( elem, namespaces, elemData.handle ) === false ) { - - jQuery.removeEvent( elem, type, elemData.handle ); - } - - delete events[ type ]; - } - } - - // Remove data and the expando if it's no longer used - if ( jQuery.isEmptyObject( events ) ) { - dataPriv.remove( elem, "handle events" ); - } - }, - - dispatch: function( nativeEvent ) { - - // Make a writable jQuery.Event from the native event object - var event = jQuery.event.fix( nativeEvent ); - - var i, j, ret, matched, handleObj, handlerQueue, - args = new Array( arguments.length ), - handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [], - special = jQuery.event.special[ event.type ] || {}; - - // Use the fix-ed jQuery.Event rather than the (read-only) native event - args[ 0 ] = event; - - for ( i = 1; i < arguments.length; i++ ) { - args[ i ] = arguments[ i ]; - } - - event.delegateTarget = this; - - // Call the preDispatch hook for the mapped type, and let it bail if desired - if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { - return; - } - - // Determine handlers - handlerQueue = jQuery.event.handlers.call( this, event, handlers ); - - // Run delegates first; they may want to stop propagation beneath us - i = 0; - while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) { - event.currentTarget = matched.elem; - - j = 0; - while ( ( handleObj = matched.handlers[ j++ ] ) && - !event.isImmediatePropagationStopped() ) { - - // Triggered event must either 1) have no namespace, or 2) have namespace(s) - // a subset or equal to those in the bound event (both can have no namespace). - if ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) { - - event.handleObj = handleObj; - event.data = handleObj.data; - - ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle || - handleObj.handler ).apply( matched.elem, args ); - - if ( ret !== undefined ) { - if ( ( event.result = ret ) === false ) { - event.preventDefault(); - event.stopPropagation(); - } - } - } - } - } - - // Call the postDispatch hook for the mapped type - if ( special.postDispatch ) { - special.postDispatch.call( this, event ); - } - - return event.result; - }, - - handlers: function( event, handlers ) { - var i, handleObj, sel, matchedHandlers, matchedSelectors, - handlerQueue = [], - delegateCount = handlers.delegateCount, - cur = event.target; - - // Find delegate handlers - if ( delegateCount && - - // Support: IE <=9 - // Black-hole SVG instance trees (trac-13180) - cur.nodeType && - - // Support: Firefox <=42 - // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861) - // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click - // Support: IE 11 only - // ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343) - !( event.type === "click" && event.button >= 1 ) ) { - - for ( ; cur !== this; cur = cur.parentNode || this ) { - - // Don't check non-elements (#13208) - // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) - if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) { - matchedHandlers = []; - matchedSelectors = {}; - for ( i = 0; i < delegateCount; i++ ) { - handleObj = handlers[ i ]; - - // Don't conflict with Object.prototype properties (#13203) - sel = handleObj.selector + " "; - - if ( matchedSelectors[ sel ] === undefined ) { - matchedSelectors[ sel ] = handleObj.needsContext ? - jQuery( sel, this ).index( cur ) > -1 : - jQuery.find( sel, this, null, [ cur ] ).length; - } - if ( matchedSelectors[ sel ] ) { - matchedHandlers.push( handleObj ); - } - } - if ( matchedHandlers.length ) { - handlerQueue.push( { elem: cur, handlers: matchedHandlers } ); - } - } - } - } - - // Add the remaining (directly-bound) handlers - cur = this; - if ( delegateCount < handlers.length ) { - handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } ); - } - - return handlerQueue; - }, - - addProp: function( name, hook ) { - Object.defineProperty( jQuery.Event.prototype, name, { - enumerable: true, - configurable: true, - - get: isFunction( hook ) ? - function() { - if ( this.originalEvent ) { - return hook( this.originalEvent ); - } - } : - function() { - if ( this.originalEvent ) { - return this.originalEvent[ name ]; - } - }, - - set: function( value ) { - Object.defineProperty( this, name, { - enumerable: true, - configurable: true, - writable: true, - value: value - } ); - } - } ); - }, - - fix: function( originalEvent ) { - return originalEvent[ jQuery.expando ] ? - originalEvent : - new jQuery.Event( originalEvent ); - }, - - special: { - load: { - - // Prevent triggered image.load events from bubbling to window.load - noBubble: true - }, - focus: { - - // Fire native event if possible so blur/focus sequence is correct - trigger: function() { - if ( this !== safeActiveElement() && this.focus ) { - this.focus(); - return false; - } - }, - delegateType: "focusin" - }, - blur: { - trigger: function() { - if ( this === safeActiveElement() && this.blur ) { - this.blur(); - return false; - } - }, - delegateType: "focusout" - }, - click: { - - // For checkbox, fire native event so checked state will be right - trigger: function() { - if ( this.type === "checkbox" && this.click && nodeName( this, "input" ) ) { - this.click(); - return false; - } - }, - - // For cross-browser consistency, don't fire native .click() on links - _default: function( event ) { - return nodeName( event.target, "a" ); - } - }, - - beforeunload: { - postDispatch: function( event ) { - - // Support: Firefox 20+ - // Firefox doesn't alert if the returnValue field is not set. - if ( event.result !== undefined && event.originalEvent ) { - event.originalEvent.returnValue = event.result; - } - } - } - } -}; - -jQuery.removeEvent = function( elem, type, handle ) { - - // This "if" is needed for plain objects - if ( elem.removeEventListener ) { - elem.removeEventListener( type, handle ); - } -}; - -jQuery.Event = function( src, props ) { - - // Allow instantiation without the 'new' keyword - if ( !( this instanceof jQuery.Event ) ) { - return new jQuery.Event( src, props ); - } - - // Event object - if ( src && src.type ) { - this.originalEvent = src; - this.type = src.type; - - // Events bubbling up the document may have been marked as prevented - // by a handler lower down the tree; reflect the correct value. - this.isDefaultPrevented = src.defaultPrevented || - src.defaultPrevented === undefined && - - // Support: Android <=2.3 only - src.returnValue === false ? - returnTrue : - returnFalse; - - // Create target properties - // Support: Safari <=6 - 7 only - // Target should not be a text node (#504, #13143) - this.target = ( src.target && src.target.nodeType === 3 ) ? - src.target.parentNode : - src.target; - - this.currentTarget = src.currentTarget; - this.relatedTarget = src.relatedTarget; - - // Event type - } else { - this.type = src; - } - - // Put explicitly provided properties onto the event object - if ( props ) { - jQuery.extend( this, props ); - } - - // Create a timestamp if incoming event doesn't have one - this.timeStamp = src && src.timeStamp || Date.now(); - - // Mark it as fixed - this[ jQuery.expando ] = true; -}; - -// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding -// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html -jQuery.Event.prototype = { - constructor: jQuery.Event, - isDefaultPrevented: returnFalse, - isPropagationStopped: returnFalse, - isImmediatePropagationStopped: returnFalse, - isSimulated: false, - - preventDefault: function() { - var e = this.originalEvent; - - this.isDefaultPrevented = returnTrue; - - if ( e && !this.isSimulated ) { - e.preventDefault(); - } - }, - stopPropagation: function() { - var e = this.originalEvent; - - this.isPropagationStopped = returnTrue; - - if ( e && !this.isSimulated ) { - e.stopPropagation(); - } - }, - stopImmediatePropagation: function() { - var e = this.originalEvent; - - this.isImmediatePropagationStopped = returnTrue; - - if ( e && !this.isSimulated ) { - e.stopImmediatePropagation(); - } - - this.stopPropagation(); - } -}; - -// Includes all common event props including KeyEvent and MouseEvent specific props -jQuery.each( { - altKey: true, - bubbles: true, - cancelable: true, - changedTouches: true, - ctrlKey: true, - detail: true, - eventPhase: true, - metaKey: true, - pageX: true, - pageY: true, - shiftKey: true, - view: true, - "char": true, - charCode: true, - key: true, - keyCode: true, - button: true, - buttons: true, - clientX: true, - clientY: true, - offsetX: true, - offsetY: true, - pointerId: true, - pointerType: true, - screenX: true, - screenY: true, - targetTouches: true, - toElement: true, - touches: true, - - which: function( event ) { - var button = event.button; - - // Add which for key events - if ( event.which == null && rkeyEvent.test( event.type ) ) { - return event.charCode != null ? event.charCode : event.keyCode; - } - - // Add which for click: 1 === left; 2 === middle; 3 === right - if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) { - if ( button & 1 ) { - return 1; - } - - if ( button & 2 ) { - return 3; - } - - if ( button & 4 ) { - return 2; - } - - return 0; - } - - return event.which; - } -}, jQuery.event.addProp ); - -// Create mouseenter/leave events using mouseover/out and event-time checks -// so that event delegation works in jQuery. -// Do the same for pointerenter/pointerleave and pointerover/pointerout -// -// Support: Safari 7 only -// Safari sends mouseenter too often; see: -// https://bugs.chromium.org/p/chromium/issues/detail?id=470258 -// for the description of the bug (it existed in older Chrome versions as well). -jQuery.each( { - mouseenter: "mouseover", - mouseleave: "mouseout", - pointerenter: "pointerover", - pointerleave: "pointerout" -}, function( orig, fix ) { - jQuery.event.special[ orig ] = { - delegateType: fix, - bindType: fix, - - handle: function( event ) { - var ret, - target = this, - related = event.relatedTarget, - handleObj = event.handleObj; - - // For mouseenter/leave call the handler if related is outside the target. - // NB: No relatedTarget if the mouse left/entered the browser window - if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) { - event.type = handleObj.origType; - ret = handleObj.handler.apply( this, arguments ); - event.type = fix; - } - return ret; - } - }; -} ); - -jQuery.fn.extend( { - - on: function( types, selector, data, fn ) { - return on( this, types, selector, data, fn ); - }, - one: function( types, selector, data, fn ) { - return on( this, types, selector, data, fn, 1 ); - }, - off: function( types, selector, fn ) { - var handleObj, type; - if ( types && types.preventDefault && types.handleObj ) { - - // ( event ) dispatched jQuery.Event - handleObj = types.handleObj; - jQuery( types.delegateTarget ).off( - handleObj.namespace ? - handleObj.origType + "." + handleObj.namespace : - handleObj.origType, - handleObj.selector, - handleObj.handler - ); - return this; - } - if ( typeof types === "object" ) { - - // ( types-object [, selector] ) - for ( type in types ) { - this.off( type, selector, types[ type ] ); - } - return this; - } - if ( selector === false || typeof selector === "function" ) { - - // ( types [, fn] ) - fn = selector; - selector = undefined; - } - if ( fn === false ) { - fn = returnFalse; - } - return this.each( function() { - jQuery.event.remove( this, types, fn, selector ); - } ); - } -} ); - - -var - - /* eslint-disable max-len */ - - // See https://github.com/eslint/eslint/issues/3229 - rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi, - - /* eslint-enable */ - - // Support: IE <=10 - 11, Edge 12 - 13 only - // In IE/Edge using regex groups here causes severe slowdowns. - // See https://connect.microsoft.com/IE/feedback/details/1736512/ - rnoInnerhtml = /\s*$/g; - -// Prefer a tbody over its parent table for containing new rows -function manipulationTarget( elem, content ) { - if ( nodeName( elem, "table" ) && - nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) { - - return jQuery( elem ).children( "tbody" )[ 0 ] || elem; - } - - return elem; -} - -// Replace/restore the type attribute of script elements for safe DOM manipulation -function disableScript( elem ) { - elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type; - return elem; -} -function restoreScript( elem ) { - if ( ( elem.type || "" ).slice( 0, 5 ) === "true/" ) { - elem.type = elem.type.slice( 5 ); - } else { - elem.removeAttribute( "type" ); - } - - return elem; -} - -function cloneCopyEvent( src, dest ) { - var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events; - - if ( dest.nodeType !== 1 ) { - return; - } - - // 1. Copy private data: events, handlers, etc. - if ( dataPriv.hasData( src ) ) { - pdataOld = dataPriv.access( src ); - pdataCur = dataPriv.set( dest, pdataOld ); - events = pdataOld.events; - - if ( events ) { - delete pdataCur.handle; - pdataCur.events = {}; - - for ( type in events ) { - for ( i = 0, l = events[ type ].length; i < l; i++ ) { - jQuery.event.add( dest, type, events[ type ][ i ] ); - } - } - } - } - - // 2. Copy user data - if ( dataUser.hasData( src ) ) { - udataOld = dataUser.access( src ); - udataCur = jQuery.extend( {}, udataOld ); - - dataUser.set( dest, udataCur ); - } -} - -// Fix IE bugs, see support tests -function fixInput( src, dest ) { - var nodeName = dest.nodeName.toLowerCase(); - - // Fails to persist the checked state of a cloned checkbox or radio button. - if ( nodeName === "input" && rcheckableType.test( src.type ) ) { - dest.checked = src.checked; - - // Fails to return the selected option to the default selected state when cloning options - } else if ( nodeName === "input" || nodeName === "textarea" ) { - dest.defaultValue = src.defaultValue; - } -} - -function domManip( collection, args, callback, ignored ) { - - // Flatten any nested arrays - args = concat.apply( [], args ); - - var fragment, first, scripts, hasScripts, node, doc, - i = 0, - l = collection.length, - iNoClone = l - 1, - value = args[ 0 ], - valueIsFunction = isFunction( value ); - - // We can't cloneNode fragments that contain checked, in WebKit - if ( valueIsFunction || - ( l > 1 && typeof value === "string" && - !support.checkClone && rchecked.test( value ) ) ) { - return collection.each( function( index ) { - var self = collection.eq( index ); - if ( valueIsFunction ) { - args[ 0 ] = value.call( this, index, self.html() ); - } - domManip( self, args, callback, ignored ); - } ); - } - - if ( l ) { - fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored ); - first = fragment.firstChild; - - if ( fragment.childNodes.length === 1 ) { - fragment = first; - } - - // Require either new content or an interest in ignored elements to invoke the callback - if ( first || ignored ) { - scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); - hasScripts = scripts.length; - - // Use the original fragment for the last item - // instead of the first because it can end up - // being emptied incorrectly in certain situations (#8070). - for ( ; i < l; i++ ) { - node = fragment; - - if ( i !== iNoClone ) { - node = jQuery.clone( node, true, true ); - - // Keep references to cloned scripts for later restoration - if ( hasScripts ) { - - // Support: Android <=4.0 only, PhantomJS 1 only - // push.apply(_, arraylike) throws on ancient WebKit - jQuery.merge( scripts, getAll( node, "script" ) ); - } - } - - callback.call( collection[ i ], node, i ); - } - - if ( hasScripts ) { - doc = scripts[ scripts.length - 1 ].ownerDocument; - - // Reenable scripts - jQuery.map( scripts, restoreScript ); - - // Evaluate executable scripts on first document insertion - for ( i = 0; i < hasScripts; i++ ) { - node = scripts[ i ]; - if ( rscriptType.test( node.type || "" ) && - !dataPriv.access( node, "globalEval" ) && - jQuery.contains( doc, node ) ) { - - if ( node.src && ( node.type || "" ).toLowerCase() !== "module" ) { - - // Optional AJAX dependency, but won't run scripts if not present - if ( jQuery._evalUrl ) { - jQuery._evalUrl( node.src ); - } - } else { - DOMEval( node.textContent.replace( rcleanScript, "" ), doc, node ); - } - } - } - } - } - } - - return collection; -} - -function remove( elem, selector, keepData ) { - var node, - nodes = selector ? jQuery.filter( selector, elem ) : elem, - i = 0; - - for ( ; ( node = nodes[ i ] ) != null; i++ ) { - if ( !keepData && node.nodeType === 1 ) { - jQuery.cleanData( getAll( node ) ); - } - - if ( node.parentNode ) { - if ( keepData && jQuery.contains( node.ownerDocument, node ) ) { - setGlobalEval( getAll( node, "script" ) ); - } - node.parentNode.removeChild( node ); - } - } - - return elem; -} - -jQuery.extend( { - htmlPrefilter: function( html ) { - return html.replace( rxhtmlTag, "<$1>" ); - }, - - clone: function( elem, dataAndEvents, deepDataAndEvents ) { - var i, l, srcElements, destElements, - clone = elem.cloneNode( true ), - inPage = jQuery.contains( elem.ownerDocument, elem ); - - // Fix IE cloning issues - if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && - !jQuery.isXMLDoc( elem ) ) { - - // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2 - destElements = getAll( clone ); - srcElements = getAll( elem ); - - for ( i = 0, l = srcElements.length; i < l; i++ ) { - fixInput( srcElements[ i ], destElements[ i ] ); - } - } - - // Copy the events from the original to the clone - if ( dataAndEvents ) { - if ( deepDataAndEvents ) { - srcElements = srcElements || getAll( elem ); - destElements = destElements || getAll( clone ); - - for ( i = 0, l = srcElements.length; i < l; i++ ) { - cloneCopyEvent( srcElements[ i ], destElements[ i ] ); - } - } else { - cloneCopyEvent( elem, clone ); - } - } - - // Preserve script evaluation history - destElements = getAll( clone, "script" ); - if ( destElements.length > 0 ) { - setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); - } - - // Return the cloned set - return clone; - }, - - cleanData: function( elems ) { - var data, elem, type, - special = jQuery.event.special, - i = 0; - - for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) { - if ( acceptData( elem ) ) { - if ( ( data = elem[ dataPriv.expando ] ) ) { - if ( data.events ) { - for ( type in data.events ) { - if ( special[ type ] ) { - jQuery.event.remove( elem, type ); - - // This is a shortcut to avoid jQuery.event.remove's overhead - } else { - jQuery.removeEvent( elem, type, data.handle ); - } - } - } - - // Support: Chrome <=35 - 45+ - // Assign undefined instead of using delete, see Data#remove - elem[ dataPriv.expando ] = undefined; - } - if ( elem[ dataUser.expando ] ) { - - // Support: Chrome <=35 - 45+ - // Assign undefined instead of using delete, see Data#remove - elem[ dataUser.expando ] = undefined; - } - } - } - } -} ); - -jQuery.fn.extend( { - detach: function( selector ) { - return remove( this, selector, true ); - }, - - remove: function( selector ) { - return remove( this, selector ); - }, - - text: function( value ) { - return access( this, function( value ) { - return value === undefined ? - jQuery.text( this ) : - this.empty().each( function() { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - this.textContent = value; - } - } ); - }, null, value, arguments.length ); - }, - - append: function() { - return domManip( this, arguments, function( elem ) { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - var target = manipulationTarget( this, elem ); - target.appendChild( elem ); - } - } ); - }, - - prepend: function() { - return domManip( this, arguments, function( elem ) { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - var target = manipulationTarget( this, elem ); - target.insertBefore( elem, target.firstChild ); - } - } ); - }, - - before: function() { - return domManip( this, arguments, function( elem ) { - if ( this.parentNode ) { - this.parentNode.insertBefore( elem, this ); - } - } ); - }, - - after: function() { - return domManip( this, arguments, function( elem ) { - if ( this.parentNode ) { - this.parentNode.insertBefore( elem, this.nextSibling ); - } - } ); - }, - - empty: function() { - var elem, - i = 0; - - for ( ; ( elem = this[ i ] ) != null; i++ ) { - if ( elem.nodeType === 1 ) { - - // Prevent memory leaks - jQuery.cleanData( getAll( elem, false ) ); - - // Remove any remaining nodes - elem.textContent = ""; - } - } - - return this; - }, - - clone: function( dataAndEvents, deepDataAndEvents ) { - dataAndEvents = dataAndEvents == null ? false : dataAndEvents; - deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; - - return this.map( function() { - return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); - } ); - }, - - html: function( value ) { - return access( this, function( value ) { - var elem = this[ 0 ] || {}, - i = 0, - l = this.length; - - if ( value === undefined && elem.nodeType === 1 ) { - return elem.innerHTML; - } - - // See if we can take a shortcut and just use innerHTML - if ( typeof value === "string" && !rnoInnerhtml.test( value ) && - !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { - - value = jQuery.htmlPrefilter( value ); - - try { - for ( ; i < l; i++ ) { - elem = this[ i ] || {}; - - // Remove element nodes and prevent memory leaks - if ( elem.nodeType === 1 ) { - jQuery.cleanData( getAll( elem, false ) ); - elem.innerHTML = value; - } - } - - elem = 0; - - // If using innerHTML throws an exception, use the fallback method - } catch ( e ) {} - } - - if ( elem ) { - this.empty().append( value ); - } - }, null, value, arguments.length ); - }, - - replaceWith: function() { - var ignored = []; - - // Make the changes, replacing each non-ignored context element with the new content - return domManip( this, arguments, function( elem ) { - var parent = this.parentNode; - - if ( jQuery.inArray( this, ignored ) < 0 ) { - jQuery.cleanData( getAll( this ) ); - if ( parent ) { - parent.replaceChild( elem, this ); - } - } - - // Force callback invocation - }, ignored ); - } -} ); - -jQuery.each( { - appendTo: "append", - prependTo: "prepend", - insertBefore: "before", - insertAfter: "after", - replaceAll: "replaceWith" -}, function( name, original ) { - jQuery.fn[ name ] = function( selector ) { - var elems, - ret = [], - insert = jQuery( selector ), - last = insert.length - 1, - i = 0; - - for ( ; i <= last; i++ ) { - elems = i === last ? this : this.clone( true ); - jQuery( insert[ i ] )[ original ]( elems ); - - // Support: Android <=4.0 only, PhantomJS 1 only - // .get() because push.apply(_, arraylike) throws on ancient WebKit - push.apply( ret, elems.get() ); - } - - return this.pushStack( ret ); - }; -} ); -var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); - -var getStyles = function( elem ) { - - // Support: IE <=11 only, Firefox <=30 (#15098, #14150) - // IE throws on elements created in popups - // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" - var view = elem.ownerDocument.defaultView; - - if ( !view || !view.opener ) { - view = window; - } - - return view.getComputedStyle( elem ); - }; - -var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); - - - -( function() { - - // Executing both pixelPosition & boxSizingReliable tests require only one layout - // so they're executed at the same time to save the second computation. - function computeStyleTests() { - - // This is a singleton, we need to execute it only once - if ( !div ) { - return; - } - - container.style.cssText = "position:absolute;left:-11111px;width:60px;" + - "margin-top:1px;padding:0;border:0"; - div.style.cssText = - "position:relative;display:block;box-sizing:border-box;overflow:scroll;" + - "margin:auto;border:1px;padding:1px;" + - "width:60%;top:1%"; - documentElement.appendChild( container ).appendChild( div ); - - var divStyle = window.getComputedStyle( div ); - pixelPositionVal = divStyle.top !== "1%"; - - // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44 - reliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12; - - // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3 - // Some styles come back with percentage values, even though they shouldn't - div.style.right = "60%"; - pixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36; - - // Support: IE 9 - 11 only - // Detect misreporting of content dimensions for box-sizing:border-box elements - boxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36; - - // Support: IE 9 only - // Detect overflow:scroll screwiness (gh-3699) - div.style.position = "absolute"; - scrollboxSizeVal = div.offsetWidth === 36 || "absolute"; - - documentElement.removeChild( container ); - - // Nullify the div so it wouldn't be stored in the memory and - // it will also be a sign that checks already performed - div = null; - } - - function roundPixelMeasures( measure ) { - return Math.round( parseFloat( measure ) ); - } - - var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal, - reliableMarginLeftVal, - container = document.createElement( "div" ), - div = document.createElement( "div" ); - - // Finish early in limited (non-browser) environments - if ( !div.style ) { - return; - } - - // Support: IE <=9 - 11 only - // Style of cloned element affects source element cloned (#8908) - div.style.backgroundClip = "content-box"; - div.cloneNode( true ).style.backgroundClip = ""; - support.clearCloneStyle = div.style.backgroundClip === "content-box"; - - jQuery.extend( support, { - boxSizingReliable: function() { - computeStyleTests(); - return boxSizingReliableVal; - }, - pixelBoxStyles: function() { - computeStyleTests(); - return pixelBoxStylesVal; - }, - pixelPosition: function() { - computeStyleTests(); - return pixelPositionVal; - }, - reliableMarginLeft: function() { - computeStyleTests(); - return reliableMarginLeftVal; - }, - scrollboxSize: function() { - computeStyleTests(); - return scrollboxSizeVal; - } - } ); -} )(); - - -function curCSS( elem, name, computed ) { - var width, minWidth, maxWidth, ret, - - // Support: Firefox 51+ - // Retrieving style before computed somehow - // fixes an issue with getting wrong values - // on detached elements - style = elem.style; - - computed = computed || getStyles( elem ); - - // getPropertyValue is needed for: - // .css('filter') (IE 9 only, #12537) - // .css('--customProperty) (#3144) - if ( computed ) { - ret = computed.getPropertyValue( name ) || computed[ name ]; - - if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) { - ret = jQuery.style( elem, name ); - } - - // A tribute to the "awesome hack by Dean Edwards" - // Android Browser returns percentage for some values, - // but width seems to be reliably pixels. - // This is against the CSSOM draft spec: - // https://drafts.csswg.org/cssom/#resolved-values - if ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) { - - // Remember the original values - width = style.width; - minWidth = style.minWidth; - maxWidth = style.maxWidth; - - // Put in the new values to get a computed value out - style.minWidth = style.maxWidth = style.width = ret; - ret = computed.width; - - // Revert the changed values - style.width = width; - style.minWidth = minWidth; - style.maxWidth = maxWidth; - } - } - - return ret !== undefined ? - - // Support: IE <=9 - 11 only - // IE returns zIndex value as an integer. - ret + "" : - ret; -} - - -function addGetHookIf( conditionFn, hookFn ) { - - // Define the hook, we'll check on the first run if it's really needed. - return { - get: function() { - if ( conditionFn() ) { - - // Hook not needed (or it's not possible to use it due - // to missing dependency), remove it. - delete this.get; - return; - } - - // Hook needed; redefine it so that the support test is not executed again. - return ( this.get = hookFn ).apply( this, arguments ); - } - }; -} - - -var - - // Swappable if display is none or starts with table - // except "table", "table-cell", or "table-caption" - // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display - rdisplayswap = /^(none|table(?!-c[ea]).+)/, - rcustomProp = /^--/, - cssShow = { position: "absolute", visibility: "hidden", display: "block" }, - cssNormalTransform = { - letterSpacing: "0", - fontWeight: "400" - }, - - cssPrefixes = [ "Webkit", "Moz", "ms" ], - emptyStyle = document.createElement( "div" ).style; - -// Return a css property mapped to a potentially vendor prefixed property -function vendorPropName( name ) { - - // Shortcut for names that are not vendor prefixed - if ( name in emptyStyle ) { - return name; - } - - // Check for vendor prefixed names - var capName = name[ 0 ].toUpperCase() + name.slice( 1 ), - i = cssPrefixes.length; - - while ( i-- ) { - name = cssPrefixes[ i ] + capName; - if ( name in emptyStyle ) { - return name; - } - } -} - -// Return a property mapped along what jQuery.cssProps suggests or to -// a vendor prefixed property. -function finalPropName( name ) { - var ret = jQuery.cssProps[ name ]; - if ( !ret ) { - ret = jQuery.cssProps[ name ] = vendorPropName( name ) || name; - } - return ret; -} - -function setPositiveNumber( elem, value, subtract ) { - - // Any relative (+/-) values have already been - // normalized at this point - var matches = rcssNum.exec( value ); - return matches ? - - // Guard against undefined "subtract", e.g., when used as in cssHooks - Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) : - value; -} - -function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) { - var i = dimension === "width" ? 1 : 0, - extra = 0, - delta = 0; - - // Adjustment may not be necessary - if ( box === ( isBorderBox ? "border" : "content" ) ) { - return 0; - } - - for ( ; i < 4; i += 2 ) { - - // Both box models exclude margin - if ( box === "margin" ) { - delta += jQuery.css( elem, box + cssExpand[ i ], true, styles ); - } - - // If we get here with a content-box, we're seeking "padding" or "border" or "margin" - if ( !isBorderBox ) { - - // Add padding - delta += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); - - // For "border" or "margin", add border - if ( box !== "padding" ) { - delta += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); - - // But still keep track of it otherwise - } else { - extra += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); - } - - // If we get here with a border-box (content + padding + border), we're seeking "content" or - // "padding" or "margin" - } else { - - // For "content", subtract padding - if ( box === "content" ) { - delta -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); - } - - // For "content" or "padding", subtract border - if ( box !== "margin" ) { - delta -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); - } - } - } - - // Account for positive content-box scroll gutter when requested by providing computedVal - if ( !isBorderBox && computedVal >= 0 ) { - - // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border - // Assuming integer scroll gutter, subtract the rest and round down - delta += Math.max( 0, Math.ceil( - elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - - computedVal - - delta - - extra - - 0.5 - ) ); - } - - return delta; -} - -function getWidthOrHeight( elem, dimension, extra ) { - - // Start with computed style - var styles = getStyles( elem ), - val = curCSS( elem, dimension, styles ), - isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box", - valueIsBorderBox = isBorderBox; - - // Support: Firefox <=54 - // Return a confounding non-pixel value or feign ignorance, as appropriate. - if ( rnumnonpx.test( val ) ) { - if ( !extra ) { - return val; - } - val = "auto"; - } - - // Check for style in case a browser which returns unreliable values - // for getComputedStyle silently falls back to the reliable elem.style - valueIsBorderBox = valueIsBorderBox && - ( support.boxSizingReliable() || val === elem.style[ dimension ] ); - - // Fall back to offsetWidth/offsetHeight when value is "auto" - // This happens for inline elements with no explicit setting (gh-3571) - // Support: Android <=4.1 - 4.3 only - // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602) - if ( val === "auto" || - !parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) { - - val = elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ]; - - // offsetWidth/offsetHeight provide border-box values - valueIsBorderBox = true; - } - - // Normalize "" and auto - val = parseFloat( val ) || 0; - - // Adjust for the element's box model - return ( val + - boxModelAdjustment( - elem, - dimension, - extra || ( isBorderBox ? "border" : "content" ), - valueIsBorderBox, - styles, - - // Provide the current computed size to request scroll gutter calculation (gh-3589) - val - ) - ) + "px"; -} - -jQuery.extend( { - - // Add in style property hooks for overriding the default - // behavior of getting and setting a style property - cssHooks: { - opacity: { - get: function( elem, computed ) { - if ( computed ) { - - // We should always get a number back from opacity - var ret = curCSS( elem, "opacity" ); - return ret === "" ? "1" : ret; - } - } - } - }, - - // Don't automatically add "px" to these possibly-unitless properties - cssNumber: { - "animationIterationCount": true, - "columnCount": true, - "fillOpacity": true, - "flexGrow": true, - "flexShrink": true, - "fontWeight": true, - "lineHeight": true, - "opacity": true, - "order": true, - "orphans": true, - "widows": true, - "zIndex": true, - "zoom": true - }, - - // Add in properties whose names you wish to fix before - // setting or getting the value - cssProps: {}, - - // Get and set the style property on a DOM Node - style: function( elem, name, value, extra ) { - - // Don't set styles on text and comment nodes - if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { - return; - } - - // Make sure that we're working with the right name - var ret, type, hooks, - origName = camelCase( name ), - isCustomProp = rcustomProp.test( name ), - style = elem.style; - - // Make sure that we're working with the right name. We don't - // want to query the value if it is a CSS custom property - // since they are user-defined. - if ( !isCustomProp ) { - name = finalPropName( origName ); - } - - // Gets hook for the prefixed version, then unprefixed version - hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; - - // Check if we're setting a value - if ( value !== undefined ) { - type = typeof value; - - // Convert "+=" or "-=" to relative numbers (#7345) - if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) { - value = adjustCSS( elem, name, ret ); - - // Fixes bug #9237 - type = "number"; - } - - // Make sure that null and NaN values aren't set (#7116) - if ( value == null || value !== value ) { - return; - } - - // If a number was passed in, add the unit (except for certain CSS properties) - if ( type === "number" ) { - value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" ); - } - - // background-* props affect original clone's values - if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) { - style[ name ] = "inherit"; - } - - // If a hook was provided, use that value, otherwise just set the specified value - if ( !hooks || !( "set" in hooks ) || - ( value = hooks.set( elem, value, extra ) ) !== undefined ) { - - if ( isCustomProp ) { - style.setProperty( name, value ); - } else { - style[ name ] = value; - } - } - - } else { - - // If a hook was provided get the non-computed value from there - if ( hooks && "get" in hooks && - ( ret = hooks.get( elem, false, extra ) ) !== undefined ) { - - return ret; - } - - // Otherwise just get the value from the style object - return style[ name ]; - } - }, - - css: function( elem, name, extra, styles ) { - var val, num, hooks, - origName = camelCase( name ), - isCustomProp = rcustomProp.test( name ); - - // Make sure that we're working with the right name. We don't - // want to modify the value if it is a CSS custom property - // since they are user-defined. - if ( !isCustomProp ) { - name = finalPropName( origName ); - } - - // Try prefixed name followed by the unprefixed name - hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; - - // If a hook was provided get the computed value from there - if ( hooks && "get" in hooks ) { - val = hooks.get( elem, true, extra ); - } - - // Otherwise, if a way to get the computed value exists, use that - if ( val === undefined ) { - val = curCSS( elem, name, styles ); - } - - // Convert "normal" to computed value - if ( val === "normal" && name in cssNormalTransform ) { - val = cssNormalTransform[ name ]; - } - - // Make numeric if forced or a qualifier was provided and val looks numeric - if ( extra === "" || extra ) { - num = parseFloat( val ); - return extra === true || isFinite( num ) ? num || 0 : val; - } - - return val; - } -} ); - -jQuery.each( [ "height", "width" ], function( i, dimension ) { - jQuery.cssHooks[ dimension ] = { - get: function( elem, computed, extra ) { - if ( computed ) { - - // Certain elements can have dimension info if we invisibly show them - // but it must have a current display style that would benefit - return rdisplayswap.test( jQuery.css( elem, "display" ) ) && - - // Support: Safari 8+ - // Table columns in Safari have non-zero offsetWidth & zero - // getBoundingClientRect().width unless display is changed. - // Support: IE <=11 only - // Running getBoundingClientRect on a disconnected node - // in IE throws an error. - ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ? - swap( elem, cssShow, function() { - return getWidthOrHeight( elem, dimension, extra ); - } ) : - getWidthOrHeight( elem, dimension, extra ); - } - }, - - set: function( elem, value, extra ) { - var matches, - styles = getStyles( elem ), - isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box", - subtract = extra && boxModelAdjustment( - elem, - dimension, - extra, - isBorderBox, - styles - ); - - // Account for unreliable border-box dimensions by comparing offset* to computed and - // faking a content-box to get border and padding (gh-3699) - if ( isBorderBox && support.scrollboxSize() === styles.position ) { - subtract -= Math.ceil( - elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - - parseFloat( styles[ dimension ] ) - - boxModelAdjustment( elem, dimension, "border", false, styles ) - - 0.5 - ); - } - - // Convert to pixels if value adjustment is needed - if ( subtract && ( matches = rcssNum.exec( value ) ) && - ( matches[ 3 ] || "px" ) !== "px" ) { - - elem.style[ dimension ] = value; - value = jQuery.css( elem, dimension ); - } - - return setPositiveNumber( elem, value, subtract ); - } - }; -} ); - -jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, - function( elem, computed ) { - if ( computed ) { - return ( parseFloat( curCSS( elem, "marginLeft" ) ) || - elem.getBoundingClientRect().left - - swap( elem, { marginLeft: 0 }, function() { - return elem.getBoundingClientRect().left; - } ) - ) + "px"; - } - } -); - -// These hooks are used by animate to expand properties -jQuery.each( { - margin: "", - padding: "", - border: "Width" -}, function( prefix, suffix ) { - jQuery.cssHooks[ prefix + suffix ] = { - expand: function( value ) { - var i = 0, - expanded = {}, - - // Assumes a single number if not a string - parts = typeof value === "string" ? value.split( " " ) : [ value ]; - - for ( ; i < 4; i++ ) { - expanded[ prefix + cssExpand[ i ] + suffix ] = - parts[ i ] || parts[ i - 2 ] || parts[ 0 ]; - } - - return expanded; - } - }; - - if ( prefix !== "margin" ) { - jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; - } -} ); - -jQuery.fn.extend( { - css: function( name, value ) { - return access( this, function( elem, name, value ) { - var styles, len, - map = {}, - i = 0; - - if ( Array.isArray( name ) ) { - styles = getStyles( elem ); - len = name.length; - - for ( ; i < len; i++ ) { - map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); - } - - return map; - } - - return value !== undefined ? - jQuery.style( elem, name, value ) : - jQuery.css( elem, name ); - }, name, value, arguments.length > 1 ); - } -} ); - - -function Tween( elem, options, prop, end, easing ) { - return new Tween.prototype.init( elem, options, prop, end, easing ); -} -jQuery.Tween = Tween; - -Tween.prototype = { - constructor: Tween, - init: function( elem, options, prop, end, easing, unit ) { - this.elem = elem; - this.prop = prop; - this.easing = easing || jQuery.easing._default; - this.options = options; - this.start = this.now = this.cur(); - this.end = end; - this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" ); - }, - cur: function() { - var hooks = Tween.propHooks[ this.prop ]; - - return hooks && hooks.get ? - hooks.get( this ) : - Tween.propHooks._default.get( this ); - }, - run: function( percent ) { - var eased, - hooks = Tween.propHooks[ this.prop ]; - - if ( this.options.duration ) { - this.pos = eased = jQuery.easing[ this.easing ]( - percent, this.options.duration * percent, 0, 1, this.options.duration - ); - } else { - this.pos = eased = percent; - } - this.now = ( this.end - this.start ) * eased + this.start; - - if ( this.options.step ) { - this.options.step.call( this.elem, this.now, this ); - } - - if ( hooks && hooks.set ) { - hooks.set( this ); - } else { - Tween.propHooks._default.set( this ); - } - return this; - } -}; - -Tween.prototype.init.prototype = Tween.prototype; - -Tween.propHooks = { - _default: { - get: function( tween ) { - var result; - - // Use a property on the element directly when it is not a DOM element, - // or when there is no matching style property that exists. - if ( tween.elem.nodeType !== 1 || - tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) { - return tween.elem[ tween.prop ]; - } - - // Passing an empty string as a 3rd parameter to .css will automatically - // attempt a parseFloat and fallback to a string if the parse fails. - // Simple values such as "10px" are parsed to Float; - // complex values such as "rotate(1rad)" are returned as-is. - result = jQuery.css( tween.elem, tween.prop, "" ); - - // Empty strings, null, undefined and "auto" are converted to 0. - return !result || result === "auto" ? 0 : result; - }, - set: function( tween ) { - - // Use step hook for back compat. - // Use cssHook if its there. - // Use .style if available and use plain properties where available. - if ( jQuery.fx.step[ tween.prop ] ) { - jQuery.fx.step[ tween.prop ]( tween ); - } else if ( tween.elem.nodeType === 1 && - ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null || - jQuery.cssHooks[ tween.prop ] ) ) { - jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); - } else { - tween.elem[ tween.prop ] = tween.now; - } - } - } -}; - -// Support: IE <=9 only -// Panic based approach to setting things on disconnected nodes -Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { - set: function( tween ) { - if ( tween.elem.nodeType && tween.elem.parentNode ) { - tween.elem[ tween.prop ] = tween.now; - } - } -}; - -jQuery.easing = { - linear: function( p ) { - return p; - }, - swing: function( p ) { - return 0.5 - Math.cos( p * Math.PI ) / 2; - }, - _default: "swing" -}; - -jQuery.fx = Tween.prototype.init; - -// Back compat <1.8 extension point -jQuery.fx.step = {}; - - - - -var - fxNow, inProgress, - rfxtypes = /^(?:toggle|show|hide)$/, - rrun = /queueHooks$/; - -function schedule() { - if ( inProgress ) { - if ( document.hidden === false && window.requestAnimationFrame ) { - window.requestAnimationFrame( schedule ); - } else { - window.setTimeout( schedule, jQuery.fx.interval ); - } - - jQuery.fx.tick(); - } -} - -// Animations created synchronously will run synchronously -function createFxNow() { - window.setTimeout( function() { - fxNow = undefined; - } ); - return ( fxNow = Date.now() ); -} - -// Generate parameters to create a standard animation -function genFx( type, includeWidth ) { - var which, - i = 0, - attrs = { height: type }; - - // If we include width, step value is 1 to do all cssExpand values, - // otherwise step value is 2 to skip over Left and Right - includeWidth = includeWidth ? 1 : 0; - for ( ; i < 4; i += 2 - includeWidth ) { - which = cssExpand[ i ]; - attrs[ "margin" + which ] = attrs[ "padding" + which ] = type; - } - - if ( includeWidth ) { - attrs.opacity = attrs.width = type; - } - - return attrs; -} - -function createTween( value, prop, animation ) { - var tween, - collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ), - index = 0, - length = collection.length; - for ( ; index < length; index++ ) { - if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) { - - // We're done with this property - return tween; - } - } -} - -function defaultPrefilter( elem, props, opts ) { - var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display, - isBox = "width" in props || "height" in props, - anim = this, - orig = {}, - style = elem.style, - hidden = elem.nodeType && isHiddenWithinTree( elem ), - dataShow = dataPriv.get( elem, "fxshow" ); - - // Queue-skipping animations hijack the fx hooks - if ( !opts.queue ) { - hooks = jQuery._queueHooks( elem, "fx" ); - if ( hooks.unqueued == null ) { - hooks.unqueued = 0; - oldfire = hooks.empty.fire; - hooks.empty.fire = function() { - if ( !hooks.unqueued ) { - oldfire(); - } - }; - } - hooks.unqueued++; - - anim.always( function() { - - // Ensure the complete handler is called before this completes - anim.always( function() { - hooks.unqueued--; - if ( !jQuery.queue( elem, "fx" ).length ) { - hooks.empty.fire(); - } - } ); - } ); - } - - // Detect show/hide animations - for ( prop in props ) { - value = props[ prop ]; - if ( rfxtypes.test( value ) ) { - delete props[ prop ]; - toggle = toggle || value === "toggle"; - if ( value === ( hidden ? "hide" : "show" ) ) { - - // Pretend to be hidden if this is a "show" and - // there is still data from a stopped show/hide - if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) { - hidden = true; - - // Ignore all other no-op show/hide data - } else { - continue; - } - } - orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop ); - } - } - - // Bail out if this is a no-op like .hide().hide() - propTween = !jQuery.isEmptyObject( props ); - if ( !propTween && jQuery.isEmptyObject( orig ) ) { - return; - } - - // Restrict "overflow" and "display" styles during box animations - if ( isBox && elem.nodeType === 1 ) { - - // Support: IE <=9 - 11, Edge 12 - 15 - // Record all 3 overflow attributes because IE does not infer the shorthand - // from identically-valued overflowX and overflowY and Edge just mirrors - // the overflowX value there. - opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; - - // Identify a display type, preferring old show/hide data over the CSS cascade - restoreDisplay = dataShow && dataShow.display; - if ( restoreDisplay == null ) { - restoreDisplay = dataPriv.get( elem, "display" ); - } - display = jQuery.css( elem, "display" ); - if ( display === "none" ) { - if ( restoreDisplay ) { - display = restoreDisplay; - } else { - - // Get nonempty value(s) by temporarily forcing visibility - showHide( [ elem ], true ); - restoreDisplay = elem.style.display || restoreDisplay; - display = jQuery.css( elem, "display" ); - showHide( [ elem ] ); - } - } - - // Animate inline elements as inline-block - if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) { - if ( jQuery.css( elem, "float" ) === "none" ) { - - // Restore the original display value at the end of pure show/hide animations - if ( !propTween ) { - anim.done( function() { - style.display = restoreDisplay; - } ); - if ( restoreDisplay == null ) { - display = style.display; - restoreDisplay = display === "none" ? "" : display; - } - } - style.display = "inline-block"; - } - } - } - - if ( opts.overflow ) { - style.overflow = "hidden"; - anim.always( function() { - style.overflow = opts.overflow[ 0 ]; - style.overflowX = opts.overflow[ 1 ]; - style.overflowY = opts.overflow[ 2 ]; - } ); - } - - // Implement show/hide animations - propTween = false; - for ( prop in orig ) { - - // General show/hide setup for this element animation - if ( !propTween ) { - if ( dataShow ) { - if ( "hidden" in dataShow ) { - hidden = dataShow.hidden; - } - } else { - dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } ); - } - - // Store hidden/visible for toggle so `.stop().toggle()` "reverses" - if ( toggle ) { - dataShow.hidden = !hidden; - } - - // Show elements before animating them - if ( hidden ) { - showHide( [ elem ], true ); - } - - /* eslint-disable no-loop-func */ - - anim.done( function() { - - /* eslint-enable no-loop-func */ - - // The final step of a "hide" animation is actually hiding the element - if ( !hidden ) { - showHide( [ elem ] ); - } - dataPriv.remove( elem, "fxshow" ); - for ( prop in orig ) { - jQuery.style( elem, prop, orig[ prop ] ); - } - } ); - } - - // Per-property setup - propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim ); - if ( !( prop in dataShow ) ) { - dataShow[ prop ] = propTween.start; - if ( hidden ) { - propTween.end = propTween.start; - propTween.start = 0; - } - } - } -} - -function propFilter( props, specialEasing ) { - var index, name, easing, value, hooks; - - // camelCase, specialEasing and expand cssHook pass - for ( index in props ) { - name = camelCase( index ); - easing = specialEasing[ name ]; - value = props[ index ]; - if ( Array.isArray( value ) ) { - easing = value[ 1 ]; - value = props[ index ] = value[ 0 ]; - } - - if ( index !== name ) { - props[ name ] = value; - delete props[ index ]; - } - - hooks = jQuery.cssHooks[ name ]; - if ( hooks && "expand" in hooks ) { - value = hooks.expand( value ); - delete props[ name ]; - - // Not quite $.extend, this won't overwrite existing keys. - // Reusing 'index' because we have the correct "name" - for ( index in value ) { - if ( !( index in props ) ) { - props[ index ] = value[ index ]; - specialEasing[ index ] = easing; - } - } - } else { - specialEasing[ name ] = easing; - } - } -} - -function Animation( elem, properties, options ) { - var result, - stopped, - index = 0, - length = Animation.prefilters.length, - deferred = jQuery.Deferred().always( function() { - - // Don't match elem in the :animated selector - delete tick.elem; - } ), - tick = function() { - if ( stopped ) { - return false; - } - var currentTime = fxNow || createFxNow(), - remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), - - // Support: Android 2.3 only - // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497) - temp = remaining / animation.duration || 0, - percent = 1 - temp, - index = 0, - length = animation.tweens.length; - - for ( ; index < length; index++ ) { - animation.tweens[ index ].run( percent ); - } - - deferred.notifyWith( elem, [ animation, percent, remaining ] ); - - // If there's more to do, yield - if ( percent < 1 && length ) { - return remaining; - } - - // If this was an empty animation, synthesize a final progress notification - if ( !length ) { - deferred.notifyWith( elem, [ animation, 1, 0 ] ); - } - - // Resolve the animation and report its conclusion - deferred.resolveWith( elem, [ animation ] ); - return false; - }, - animation = deferred.promise( { - elem: elem, - props: jQuery.extend( {}, properties ), - opts: jQuery.extend( true, { - specialEasing: {}, - easing: jQuery.easing._default - }, options ), - originalProperties: properties, - originalOptions: options, - startTime: fxNow || createFxNow(), - duration: options.duration, - tweens: [], - createTween: function( prop, end ) { - var tween = jQuery.Tween( elem, animation.opts, prop, end, - animation.opts.specialEasing[ prop ] || animation.opts.easing ); - animation.tweens.push( tween ); - return tween; - }, - stop: function( gotoEnd ) { - var index = 0, - - // If we are going to the end, we want to run all the tweens - // otherwise we skip this part - length = gotoEnd ? animation.tweens.length : 0; - if ( stopped ) { - return this; - } - stopped = true; - for ( ; index < length; index++ ) { - animation.tweens[ index ].run( 1 ); - } - - // Resolve when we played the last frame; otherwise, reject - if ( gotoEnd ) { - deferred.notifyWith( elem, [ animation, 1, 0 ] ); - deferred.resolveWith( elem, [ animation, gotoEnd ] ); - } else { - deferred.rejectWith( elem, [ animation, gotoEnd ] ); - } - return this; - } - } ), - props = animation.props; - - propFilter( props, animation.opts.specialEasing ); - - for ( ; index < length; index++ ) { - result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts ); - if ( result ) { - if ( isFunction( result.stop ) ) { - jQuery._queueHooks( animation.elem, animation.opts.queue ).stop = - result.stop.bind( result ); - } - return result; - } - } - - jQuery.map( props, createTween, animation ); - - if ( isFunction( animation.opts.start ) ) { - animation.opts.start.call( elem, animation ); - } - - // Attach callbacks from options - animation - .progress( animation.opts.progress ) - .done( animation.opts.done, animation.opts.complete ) - .fail( animation.opts.fail ) - .always( animation.opts.always ); - - jQuery.fx.timer( - jQuery.extend( tick, { - elem: elem, - anim: animation, - queue: animation.opts.queue - } ) - ); - - return animation; -} - -jQuery.Animation = jQuery.extend( Animation, { - - tweeners: { - "*": [ function( prop, value ) { - var tween = this.createTween( prop, value ); - adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween ); - return tween; - } ] - }, - - tweener: function( props, callback ) { - if ( isFunction( props ) ) { - callback = props; - props = [ "*" ]; - } else { - props = props.match( rnothtmlwhite ); - } - - var prop, - index = 0, - length = props.length; - - for ( ; index < length; index++ ) { - prop = props[ index ]; - Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || []; - Animation.tweeners[ prop ].unshift( callback ); - } - }, - - prefilters: [ defaultPrefilter ], - - prefilter: function( callback, prepend ) { - if ( prepend ) { - Animation.prefilters.unshift( callback ); - } else { - Animation.prefilters.push( callback ); - } - } -} ); - -jQuery.speed = function( speed, easing, fn ) { - var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { - complete: fn || !fn && easing || - isFunction( speed ) && speed, - duration: speed, - easing: fn && easing || easing && !isFunction( easing ) && easing - }; - - // Go to the end state if fx are off - if ( jQuery.fx.off ) { - opt.duration = 0; - - } else { - if ( typeof opt.duration !== "number" ) { - if ( opt.duration in jQuery.fx.speeds ) { - opt.duration = jQuery.fx.speeds[ opt.duration ]; - - } else { - opt.duration = jQuery.fx.speeds._default; - } - } - } - - // Normalize opt.queue - true/undefined/null -> "fx" - if ( opt.queue == null || opt.queue === true ) { - opt.queue = "fx"; - } - - // Queueing - opt.old = opt.complete; - - opt.complete = function() { - if ( isFunction( opt.old ) ) { - opt.old.call( this ); - } - - if ( opt.queue ) { - jQuery.dequeue( this, opt.queue ); - } - }; - - return opt; -}; - -jQuery.fn.extend( { - fadeTo: function( speed, to, easing, callback ) { - - // Show any hidden elements after setting opacity to 0 - return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show() - - // Animate to the value specified - .end().animate( { opacity: to }, speed, easing, callback ); - }, - animate: function( prop, speed, easing, callback ) { - var empty = jQuery.isEmptyObject( prop ), - optall = jQuery.speed( speed, easing, callback ), - doAnimation = function() { - - // Operate on a copy of prop so per-property easing won't be lost - var anim = Animation( this, jQuery.extend( {}, prop ), optall ); - - // Empty animations, or finishing resolves immediately - if ( empty || dataPriv.get( this, "finish" ) ) { - anim.stop( true ); - } - }; - doAnimation.finish = doAnimation; - - return empty || optall.queue === false ? - this.each( doAnimation ) : - this.queue( optall.queue, doAnimation ); - }, - stop: function( type, clearQueue, gotoEnd ) { - var stopQueue = function( hooks ) { - var stop = hooks.stop; - delete hooks.stop; - stop( gotoEnd ); - }; - - if ( typeof type !== "string" ) { - gotoEnd = clearQueue; - clearQueue = type; - type = undefined; - } - if ( clearQueue && type !== false ) { - this.queue( type || "fx", [] ); - } - - return this.each( function() { - var dequeue = true, - index = type != null && type + "queueHooks", - timers = jQuery.timers, - data = dataPriv.get( this ); - - if ( index ) { - if ( data[ index ] && data[ index ].stop ) { - stopQueue( data[ index ] ); - } - } else { - for ( index in data ) { - if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) { - stopQueue( data[ index ] ); - } - } - } - - for ( index = timers.length; index--; ) { - if ( timers[ index ].elem === this && - ( type == null || timers[ index ].queue === type ) ) { - - timers[ index ].anim.stop( gotoEnd ); - dequeue = false; - timers.splice( index, 1 ); - } - } - - // Start the next in the queue if the last step wasn't forced. - // Timers currently will call their complete callbacks, which - // will dequeue but only if they were gotoEnd. - if ( dequeue || !gotoEnd ) { - jQuery.dequeue( this, type ); - } - } ); - }, - finish: function( type ) { - if ( type !== false ) { - type = type || "fx"; - } - return this.each( function() { - var index, - data = dataPriv.get( this ), - queue = data[ type + "queue" ], - hooks = data[ type + "queueHooks" ], - timers = jQuery.timers, - length = queue ? queue.length : 0; - - // Enable finishing flag on private data - data.finish = true; - - // Empty the queue first - jQuery.queue( this, type, [] ); - - if ( hooks && hooks.stop ) { - hooks.stop.call( this, true ); - } - - // Look for any active animations, and finish them - for ( index = timers.length; index--; ) { - if ( timers[ index ].elem === this && timers[ index ].queue === type ) { - timers[ index ].anim.stop( true ); - timers.splice( index, 1 ); - } - } - - // Look for any animations in the old queue and finish them - for ( index = 0; index < length; index++ ) { - if ( queue[ index ] && queue[ index ].finish ) { - queue[ index ].finish.call( this ); - } - } - - // Turn off finishing flag - delete data.finish; - } ); - } -} ); - -jQuery.each( [ "toggle", "show", "hide" ], function( i, name ) { - var cssFn = jQuery.fn[ name ]; - jQuery.fn[ name ] = function( speed, easing, callback ) { - return speed == null || typeof speed === "boolean" ? - cssFn.apply( this, arguments ) : - this.animate( genFx( name, true ), speed, easing, callback ); - }; -} ); - -// Generate shortcuts for custom animations -jQuery.each( { - slideDown: genFx( "show" ), - slideUp: genFx( "hide" ), - slideToggle: genFx( "toggle" ), - fadeIn: { opacity: "show" }, - fadeOut: { opacity: "hide" }, - fadeToggle: { opacity: "toggle" } -}, function( name, props ) { - jQuery.fn[ name ] = function( speed, easing, callback ) { - return this.animate( props, speed, easing, callback ); - }; -} ); - -jQuery.timers = []; -jQuery.fx.tick = function() { - var timer, - i = 0, - timers = jQuery.timers; - - fxNow = Date.now(); - - for ( ; i < timers.length; i++ ) { - timer = timers[ i ]; - - // Run the timer and safely remove it when done (allowing for external removal) - if ( !timer() && timers[ i ] === timer ) { - timers.splice( i--, 1 ); - } - } - - if ( !timers.length ) { - jQuery.fx.stop(); - } - fxNow = undefined; -}; - -jQuery.fx.timer = function( timer ) { - jQuery.timers.push( timer ); - jQuery.fx.start(); -}; - -jQuery.fx.interval = 13; -jQuery.fx.start = function() { - if ( inProgress ) { - return; - } - - inProgress = true; - schedule(); -}; - -jQuery.fx.stop = function() { - inProgress = null; -}; - -jQuery.fx.speeds = { - slow: 600, - fast: 200, - - // Default speed - _default: 400 -}; - - -// Based off of the plugin by Clint Helfers, with permission. -// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/ -jQuery.fn.delay = function( time, type ) { - time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; - type = type || "fx"; - - return this.queue( type, function( next, hooks ) { - var timeout = window.setTimeout( next, time ); - hooks.stop = function() { - window.clearTimeout( timeout ); - }; - } ); -}; - - -( function() { - var input = document.createElement( "input" ), - select = document.createElement( "select" ), - opt = select.appendChild( document.createElement( "option" ) ); - - input.type = "checkbox"; - - // Support: Android <=4.3 only - // Default value for a checkbox should be "on" - support.checkOn = input.value !== ""; - - // Support: IE <=11 only - // Must access selectedIndex to make default options select - support.optSelected = opt.selected; - - // Support: IE <=11 only - // An input loses its value after becoming a radio - input = document.createElement( "input" ); - input.value = "t"; - input.type = "radio"; - support.radioValue = input.value === "t"; -} )(); - - -var boolHook, - attrHandle = jQuery.expr.attrHandle; - -jQuery.fn.extend( { - attr: function( name, value ) { - return access( this, jQuery.attr, name, value, arguments.length > 1 ); - }, - - removeAttr: function( name ) { - return this.each( function() { - jQuery.removeAttr( this, name ); - } ); - } -} ); - -jQuery.extend( { - attr: function( elem, name, value ) { - var ret, hooks, - nType = elem.nodeType; - - // Don't get/set attributes on text, comment and attribute nodes - if ( nType === 3 || nType === 8 || nType === 2 ) { - return; - } - - // Fallback to prop when attributes are not supported - if ( typeof elem.getAttribute === "undefined" ) { - return jQuery.prop( elem, name, value ); - } - - // Attribute hooks are determined by the lowercase version - // Grab necessary hook if one is defined - if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { - hooks = jQuery.attrHooks[ name.toLowerCase() ] || - ( jQuery.expr.match.bool.test( name ) ? boolHook : undefined ); - } - - if ( value !== undefined ) { - if ( value === null ) { - jQuery.removeAttr( elem, name ); - return; - } - - if ( hooks && "set" in hooks && - ( ret = hooks.set( elem, value, name ) ) !== undefined ) { - return ret; - } - - elem.setAttribute( name, value + "" ); - return value; - } - - if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { - return ret; - } - - ret = jQuery.find.attr( elem, name ); - - // Non-existent attributes return null, we normalize to undefined - return ret == null ? undefined : ret; - }, - - attrHooks: { - type: { - set: function( elem, value ) { - if ( !support.radioValue && value === "radio" && - nodeName( elem, "input" ) ) { - var val = elem.value; - elem.setAttribute( "type", value ); - if ( val ) { - elem.value = val; - } - return value; - } - } - } - }, - - removeAttr: function( elem, value ) { - var name, - i = 0, - - // Attribute names can contain non-HTML whitespace characters - // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2 - attrNames = value && value.match( rnothtmlwhite ); - - if ( attrNames && elem.nodeType === 1 ) { - while ( ( name = attrNames[ i++ ] ) ) { - elem.removeAttribute( name ); - } - } - } -} ); - -// Hooks for boolean attributes -boolHook = { - set: function( elem, value, name ) { - if ( value === false ) { - - // Remove boolean attributes when set to false - jQuery.removeAttr( elem, name ); - } else { - elem.setAttribute( name, name ); - } - return name; - } -}; - -jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) { - var getter = attrHandle[ name ] || jQuery.find.attr; - - attrHandle[ name ] = function( elem, name, isXML ) { - var ret, handle, - lowercaseName = name.toLowerCase(); - - if ( !isXML ) { - - // Avoid an infinite loop by temporarily removing this function from the getter - handle = attrHandle[ lowercaseName ]; - attrHandle[ lowercaseName ] = ret; - ret = getter( elem, name, isXML ) != null ? - lowercaseName : - null; - attrHandle[ lowercaseName ] = handle; - } - return ret; - }; -} ); - - - - -var rfocusable = /^(?:input|select|textarea|button)$/i, - rclickable = /^(?:a|area)$/i; - -jQuery.fn.extend( { - prop: function( name, value ) { - return access( this, jQuery.prop, name, value, arguments.length > 1 ); - }, - - removeProp: function( name ) { - return this.each( function() { - delete this[ jQuery.propFix[ name ] || name ]; - } ); - } -} ); - -jQuery.extend( { - prop: function( elem, name, value ) { - var ret, hooks, - nType = elem.nodeType; - - // Don't get/set properties on text, comment and attribute nodes - if ( nType === 3 || nType === 8 || nType === 2 ) { - return; - } - - if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { - - // Fix name and attach hooks - name = jQuery.propFix[ name ] || name; - hooks = jQuery.propHooks[ name ]; - } - - if ( value !== undefined ) { - if ( hooks && "set" in hooks && - ( ret = hooks.set( elem, value, name ) ) !== undefined ) { - return ret; - } - - return ( elem[ name ] = value ); - } - - if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { - return ret; - } - - return elem[ name ]; - }, - - propHooks: { - tabIndex: { - get: function( elem ) { - - // Support: IE <=9 - 11 only - // elem.tabIndex doesn't always return the - // correct value when it hasn't been explicitly set - // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ - // Use proper attribute retrieval(#12072) - var tabindex = jQuery.find.attr( elem, "tabindex" ); - - if ( tabindex ) { - return parseInt( tabindex, 10 ); - } - - if ( - rfocusable.test( elem.nodeName ) || - rclickable.test( elem.nodeName ) && - elem.href - ) { - return 0; - } - - return -1; - } - } - }, - - propFix: { - "for": "htmlFor", - "class": "className" - } -} ); - -// Support: IE <=11 only -// Accessing the selectedIndex property -// forces the browser to respect setting selected -// on the option -// The getter ensures a default option is selected -// when in an optgroup -// eslint rule "no-unused-expressions" is disabled for this code -// since it considers such accessions noop -if ( !support.optSelected ) { - jQuery.propHooks.selected = { - get: function( elem ) { - - /* eslint no-unused-expressions: "off" */ - - var parent = elem.parentNode; - if ( parent && parent.parentNode ) { - parent.parentNode.selectedIndex; - } - return null; - }, - set: function( elem ) { - - /* eslint no-unused-expressions: "off" */ - - var parent = elem.parentNode; - if ( parent ) { - parent.selectedIndex; - - if ( parent.parentNode ) { - parent.parentNode.selectedIndex; - } - } - } - }; -} - -jQuery.each( [ - "tabIndex", - "readOnly", - "maxLength", - "cellSpacing", - "cellPadding", - "rowSpan", - "colSpan", - "useMap", - "frameBorder", - "contentEditable" -], function() { - jQuery.propFix[ this.toLowerCase() ] = this; -} ); - - - - - // Strip and collapse whitespace according to HTML spec - // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace - function stripAndCollapse( value ) { - var tokens = value.match( rnothtmlwhite ) || []; - return tokens.join( " " ); - } - - -function getClass( elem ) { - return elem.getAttribute && elem.getAttribute( "class" ) || ""; -} - -function classesToArray( value ) { - if ( Array.isArray( value ) ) { - return value; - } - if ( typeof value === "string" ) { - return value.match( rnothtmlwhite ) || []; - } - return []; -} - -jQuery.fn.extend( { - addClass: function( value ) { - var classes, elem, cur, curValue, clazz, j, finalValue, - i = 0; - - if ( isFunction( value ) ) { - return this.each( function( j ) { - jQuery( this ).addClass( value.call( this, j, getClass( this ) ) ); - } ); - } - - classes = classesToArray( value ); - - if ( classes.length ) { - while ( ( elem = this[ i++ ] ) ) { - curValue = getClass( elem ); - cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); - - if ( cur ) { - j = 0; - while ( ( clazz = classes[ j++ ] ) ) { - if ( cur.indexOf( " " + clazz + " " ) < 0 ) { - cur += clazz + " "; - } - } - - // Only assign if different to avoid unneeded rendering. - finalValue = stripAndCollapse( cur ); - if ( curValue !== finalValue ) { - elem.setAttribute( "class", finalValue ); - } - } - } - } - - return this; - }, - - removeClass: function( value ) { - var classes, elem, cur, curValue, clazz, j, finalValue, - i = 0; - - if ( isFunction( value ) ) { - return this.each( function( j ) { - jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) ); - } ); - } - - if ( !arguments.length ) { - return this.attr( "class", "" ); - } - - classes = classesToArray( value ); - - if ( classes.length ) { - while ( ( elem = this[ i++ ] ) ) { - curValue = getClass( elem ); - - // This expression is here for better compressibility (see addClass) - cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); - - if ( cur ) { - j = 0; - while ( ( clazz = classes[ j++ ] ) ) { - - // Remove *all* instances - while ( cur.indexOf( " " + clazz + " " ) > -1 ) { - cur = cur.replace( " " + clazz + " ", " " ); - } - } - - // Only assign if different to avoid unneeded rendering. - finalValue = stripAndCollapse( cur ); - if ( curValue !== finalValue ) { - elem.setAttribute( "class", finalValue ); - } - } - } - } - - return this; - }, - - toggleClass: function( value, stateVal ) { - var type = typeof value, - isValidValue = type === "string" || Array.isArray( value ); - - if ( typeof stateVal === "boolean" && isValidValue ) { - return stateVal ? this.addClass( value ) : this.removeClass( value ); - } - - if ( isFunction( value ) ) { - return this.each( function( i ) { - jQuery( this ).toggleClass( - value.call( this, i, getClass( this ), stateVal ), - stateVal - ); - } ); - } - - return this.each( function() { - var className, i, self, classNames; - - if ( isValidValue ) { - - // Toggle individual class names - i = 0; - self = jQuery( this ); - classNames = classesToArray( value ); - - while ( ( className = classNames[ i++ ] ) ) { - - // Check each className given, space separated list - if ( self.hasClass( className ) ) { - self.removeClass( className ); - } else { - self.addClass( className ); - } - } - - // Toggle whole class name - } else if ( value === undefined || type === "boolean" ) { - className = getClass( this ); - if ( className ) { - - // Store className if set - dataPriv.set( this, "__className__", className ); - } - - // If the element has a class name or if we're passed `false`, - // then remove the whole classname (if there was one, the above saved it). - // Otherwise bring back whatever was previously saved (if anything), - // falling back to the empty string if nothing was stored. - if ( this.setAttribute ) { - this.setAttribute( "class", - className || value === false ? - "" : - dataPriv.get( this, "__className__" ) || "" - ); - } - } - } ); - }, - - hasClass: function( selector ) { - var className, elem, - i = 0; - - className = " " + selector + " "; - while ( ( elem = this[ i++ ] ) ) { - if ( elem.nodeType === 1 && - ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) { - return true; - } - } - - return false; - } -} ); - - - - -var rreturn = /\r/g; - -jQuery.fn.extend( { - val: function( value ) { - var hooks, ret, valueIsFunction, - elem = this[ 0 ]; - - if ( !arguments.length ) { - if ( elem ) { - hooks = jQuery.valHooks[ elem.type ] || - jQuery.valHooks[ elem.nodeName.toLowerCase() ]; - - if ( hooks && - "get" in hooks && - ( ret = hooks.get( elem, "value" ) ) !== undefined - ) { - return ret; - } - - ret = elem.value; - - // Handle most common string cases - if ( typeof ret === "string" ) { - return ret.replace( rreturn, "" ); - } - - // Handle cases where value is null/undef or number - return ret == null ? "" : ret; - } - - return; - } - - valueIsFunction = isFunction( value ); - - return this.each( function( i ) { - var val; - - if ( this.nodeType !== 1 ) { - return; - } - - if ( valueIsFunction ) { - val = value.call( this, i, jQuery( this ).val() ); - } else { - val = value; - } - - // Treat null/undefined as ""; convert numbers to string - if ( val == null ) { - val = ""; - - } else if ( typeof val === "number" ) { - val += ""; - - } else if ( Array.isArray( val ) ) { - val = jQuery.map( val, function( value ) { - return value == null ? "" : value + ""; - } ); - } - - hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; - - // If set returns undefined, fall back to normal setting - if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) { - this.value = val; - } - } ); - } -} ); - -jQuery.extend( { - valHooks: { - option: { - get: function( elem ) { - - var val = jQuery.find.attr( elem, "value" ); - return val != null ? - val : - - // Support: IE <=10 - 11 only - // option.text throws exceptions (#14686, #14858) - // Strip and collapse whitespace - // https://html.spec.whatwg.org/#strip-and-collapse-whitespace - stripAndCollapse( jQuery.text( elem ) ); - } - }, - select: { - get: function( elem ) { - var value, option, i, - options = elem.options, - index = elem.selectedIndex, - one = elem.type === "select-one", - values = one ? null : [], - max = one ? index + 1 : options.length; - - if ( index < 0 ) { - i = max; - - } else { - i = one ? index : 0; - } - - // Loop through all the selected options - for ( ; i < max; i++ ) { - option = options[ i ]; - - // Support: IE <=9 only - // IE8-9 doesn't update selected after form reset (#2551) - if ( ( option.selected || i === index ) && - - // Don't return options that are disabled or in a disabled optgroup - !option.disabled && - ( !option.parentNode.disabled || - !nodeName( option.parentNode, "optgroup" ) ) ) { - - // Get the specific value for the option - value = jQuery( option ).val(); - - // We don't need an array for one selects - if ( one ) { - return value; - } - - // Multi-Selects return an array - values.push( value ); - } - } - - return values; - }, - - set: function( elem, value ) { - var optionSet, option, - options = elem.options, - values = jQuery.makeArray( value ), - i = options.length; - - while ( i-- ) { - option = options[ i ]; - - /* eslint-disable no-cond-assign */ - - if ( option.selected = - jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1 - ) { - optionSet = true; - } - - /* eslint-enable no-cond-assign */ - } - - // Force browsers to behave consistently when non-matching value is set - if ( !optionSet ) { - elem.selectedIndex = -1; - } - return values; - } - } - } -} ); - -// Radios and checkboxes getter/setter -jQuery.each( [ "radio", "checkbox" ], function() { - jQuery.valHooks[ this ] = { - set: function( elem, value ) { - if ( Array.isArray( value ) ) { - return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 ); - } - } - }; - if ( !support.checkOn ) { - jQuery.valHooks[ this ].get = function( elem ) { - return elem.getAttribute( "value" ) === null ? "on" : elem.value; - }; - } -} ); - - - - -// Return jQuery for attributes-only inclusion - - -support.focusin = "onfocusin" in window; - - -var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, - stopPropagationCallback = function( e ) { - e.stopPropagation(); - }; - -jQuery.extend( jQuery.event, { - - trigger: function( event, data, elem, onlyHandlers ) { - - var i, cur, tmp, bubbleType, ontype, handle, special, lastElement, - eventPath = [ elem || document ], - type = hasOwn.call( event, "type" ) ? event.type : event, - namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : []; - - cur = lastElement = tmp = elem = elem || document; - - // Don't do events on text and comment nodes - if ( elem.nodeType === 3 || elem.nodeType === 8 ) { - return; - } - - // focus/blur morphs to focusin/out; ensure we're not firing them right now - if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { - return; - } - - if ( type.indexOf( "." ) > -1 ) { - - // Namespaced trigger; create a regexp to match event type in handle() - namespaces = type.split( "." ); - type = namespaces.shift(); - namespaces.sort(); - } - ontype = type.indexOf( ":" ) < 0 && "on" + type; - - // Caller can pass in a jQuery.Event object, Object, or just an event type string - event = event[ jQuery.expando ] ? - event : - new jQuery.Event( type, typeof event === "object" && event ); - - // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) - event.isTrigger = onlyHandlers ? 2 : 3; - event.namespace = namespaces.join( "." ); - event.rnamespace = event.namespace ? - new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) : - null; - - // Clean up the event in case it is being reused - event.result = undefined; - if ( !event.target ) { - event.target = elem; - } - - // Clone any incoming data and prepend the event, creating the handler arg list - data = data == null ? - [ event ] : - jQuery.makeArray( data, [ event ] ); - - // Allow special events to draw outside the lines - special = jQuery.event.special[ type ] || {}; - if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { - return; - } - - // Determine event propagation path in advance, per W3C events spec (#9951) - // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) - if ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) { - - bubbleType = special.delegateType || type; - if ( !rfocusMorph.test( bubbleType + type ) ) { - cur = cur.parentNode; - } - for ( ; cur; cur = cur.parentNode ) { - eventPath.push( cur ); - tmp = cur; - } - - // Only add window if we got to document (e.g., not plain obj or detached DOM) - if ( tmp === ( elem.ownerDocument || document ) ) { - eventPath.push( tmp.defaultView || tmp.parentWindow || window ); - } - } - - // Fire handlers on the event path - i = 0; - while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) { - lastElement = cur; - event.type = i > 1 ? - bubbleType : - special.bindType || type; - - // jQuery handler - handle = ( dataPriv.get( cur, "events" ) || {} )[ event.type ] && - dataPriv.get( cur, "handle" ); - if ( handle ) { - handle.apply( cur, data ); - } - - // Native handler - handle = ontype && cur[ ontype ]; - if ( handle && handle.apply && acceptData( cur ) ) { - event.result = handle.apply( cur, data ); - if ( event.result === false ) { - event.preventDefault(); - } - } - } - event.type = type; - - // If nobody prevented the default action, do it now - if ( !onlyHandlers && !event.isDefaultPrevented() ) { - - if ( ( !special._default || - special._default.apply( eventPath.pop(), data ) === false ) && - acceptData( elem ) ) { - - // Call a native DOM method on the target with the same name as the event. - // Don't do default actions on window, that's where global variables be (#6170) - if ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) { - - // Don't re-trigger an onFOO event when we call its FOO() method - tmp = elem[ ontype ]; - - if ( tmp ) { - elem[ ontype ] = null; - } - - // Prevent re-triggering of the same event, since we already bubbled it above - jQuery.event.triggered = type; - - if ( event.isPropagationStopped() ) { - lastElement.addEventListener( type, stopPropagationCallback ); - } - - elem[ type ](); - - if ( event.isPropagationStopped() ) { - lastElement.removeEventListener( type, stopPropagationCallback ); - } - - jQuery.event.triggered = undefined; - - if ( tmp ) { - elem[ ontype ] = tmp; - } - } - } - } - - return event.result; - }, - - // Piggyback on a donor event to simulate a different one - // Used only for `focus(in | out)` events - simulate: function( type, elem, event ) { - var e = jQuery.extend( - new jQuery.Event(), - event, - { - type: type, - isSimulated: true - } - ); - - jQuery.event.trigger( e, null, elem ); - } - -} ); - -jQuery.fn.extend( { - - trigger: function( type, data ) { - return this.each( function() { - jQuery.event.trigger( type, data, this ); - } ); - }, - triggerHandler: function( type, data ) { - var elem = this[ 0 ]; - if ( elem ) { - return jQuery.event.trigger( type, data, elem, true ); - } - } -} ); - - -// Support: Firefox <=44 -// Firefox doesn't have focus(in | out) events -// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787 -// -// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1 -// focus(in | out) events fire after focus & blur events, -// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order -// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857 -if ( !support.focusin ) { - jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) { - - // Attach a single capturing handler on the document while someone wants focusin/focusout - var handler = function( event ) { - jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) ); - }; - - jQuery.event.special[ fix ] = { - setup: function() { - var doc = this.ownerDocument || this, - attaches = dataPriv.access( doc, fix ); - - if ( !attaches ) { - doc.addEventListener( orig, handler, true ); - } - dataPriv.access( doc, fix, ( attaches || 0 ) + 1 ); - }, - teardown: function() { - var doc = this.ownerDocument || this, - attaches = dataPriv.access( doc, fix ) - 1; - - if ( !attaches ) { - doc.removeEventListener( orig, handler, true ); - dataPriv.remove( doc, fix ); - - } else { - dataPriv.access( doc, fix, attaches ); - } - } - }; - } ); -} -var location = window.location; - -var nonce = Date.now(); - -var rquery = ( /\?/ ); - - - -// Cross-browser xml parsing -jQuery.parseXML = function( data ) { - var xml; - if ( !data || typeof data !== "string" ) { - return null; - } - - // Support: IE 9 - 11 only - // IE throws on parseFromString with invalid input. - try { - xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); - } catch ( e ) { - xml = undefined; - } - - if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { - jQuery.error( "Invalid XML: " + data ); - } - return xml; -}; - - -var - rbracket = /\[\]$/, - rCRLF = /\r?\n/g, - rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, - rsubmittable = /^(?:input|select|textarea|keygen)/i; - -function buildParams( prefix, obj, traditional, add ) { - var name; - - if ( Array.isArray( obj ) ) { - - // Serialize array item. - jQuery.each( obj, function( i, v ) { - if ( traditional || rbracket.test( prefix ) ) { - - // Treat each array item as a scalar. - add( prefix, v ); - - } else { - - // Item is non-scalar (array or object), encode its numeric index. - buildParams( - prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]", - v, - traditional, - add - ); - } - } ); - - } else if ( !traditional && toType( obj ) === "object" ) { - - // Serialize object item. - for ( name in obj ) { - buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); - } - - } else { - - // Serialize scalar item. - add( prefix, obj ); - } -} - -// Serialize an array of form elements or a set of -// key/values into a query string -jQuery.param = function( a, traditional ) { - var prefix, - s = [], - add = function( key, valueOrFunction ) { - - // If value is a function, invoke it and use its return value - var value = isFunction( valueOrFunction ) ? - valueOrFunction() : - valueOrFunction; - - s[ s.length ] = encodeURIComponent( key ) + "=" + - encodeURIComponent( value == null ? "" : value ); - }; - - // If an array was passed in, assume that it is an array of form elements. - if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { - - // Serialize the form elements - jQuery.each( a, function() { - add( this.name, this.value ); - } ); - - } else { - - // If traditional, encode the "old" way (the way 1.3.2 or older - // did it), otherwise encode params recursively. - for ( prefix in a ) { - buildParams( prefix, a[ prefix ], traditional, add ); - } - } - - // Return the resulting serialization - return s.join( "&" ); -}; - -jQuery.fn.extend( { - serialize: function() { - return jQuery.param( this.serializeArray() ); - }, - serializeArray: function() { - return this.map( function() { - - // Can add propHook for "elements" to filter or add form elements - var elements = jQuery.prop( this, "elements" ); - return elements ? jQuery.makeArray( elements ) : this; - } ) - .filter( function() { - var type = this.type; - - // Use .is( ":disabled" ) so that fieldset[disabled] works - return this.name && !jQuery( this ).is( ":disabled" ) && - rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && - ( this.checked || !rcheckableType.test( type ) ); - } ) - .map( function( i, elem ) { - var val = jQuery( this ).val(); - - if ( val == null ) { - return null; - } - - if ( Array.isArray( val ) ) { - return jQuery.map( val, function( val ) { - return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; - } ); - } - - return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; - } ).get(); - } -} ); - - -var - r20 = /%20/g, - rhash = /#.*$/, - rantiCache = /([?&])_=[^&]*/, - rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg, - - // #7653, #8125, #8152: local protocol detection - rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, - rnoContent = /^(?:GET|HEAD)$/, - rprotocol = /^\/\//, - - /* Prefilters - * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) - * 2) These are called: - * - BEFORE asking for a transport - * - AFTER param serialization (s.data is a string if s.processData is true) - * 3) key is the dataType - * 4) the catchall symbol "*" can be used - * 5) execution will start with transport dataType and THEN continue down to "*" if needed - */ - prefilters = {}, - - /* Transports bindings - * 1) key is the dataType - * 2) the catchall symbol "*" can be used - * 3) selection will start with transport dataType and THEN go to "*" if needed - */ - transports = {}, - - // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression - allTypes = "*/".concat( "*" ), - - // Anchor tag for parsing the document origin - originAnchor = document.createElement( "a" ); - originAnchor.href = location.href; - -// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport -function addToPrefiltersOrTransports( structure ) { - - // dataTypeExpression is optional and defaults to "*" - return function( dataTypeExpression, func ) { - - if ( typeof dataTypeExpression !== "string" ) { - func = dataTypeExpression; - dataTypeExpression = "*"; - } - - var dataType, - i = 0, - dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || []; - - if ( isFunction( func ) ) { - - // For each dataType in the dataTypeExpression - while ( ( dataType = dataTypes[ i++ ] ) ) { - - // Prepend if requested - if ( dataType[ 0 ] === "+" ) { - dataType = dataType.slice( 1 ) || "*"; - ( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func ); - - // Otherwise append - } else { - ( structure[ dataType ] = structure[ dataType ] || [] ).push( func ); - } - } - } - }; -} - -// Base inspection function for prefilters and transports -function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) { - - var inspected = {}, - seekingTransport = ( structure === transports ); - - function inspect( dataType ) { - var selected; - inspected[ dataType ] = true; - jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) { - var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR ); - if ( typeof dataTypeOrTransport === "string" && - !seekingTransport && !inspected[ dataTypeOrTransport ] ) { - - options.dataTypes.unshift( dataTypeOrTransport ); - inspect( dataTypeOrTransport ); - return false; - } else if ( seekingTransport ) { - return !( selected = dataTypeOrTransport ); - } - } ); - return selected; - } - - return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" ); -} - -// A special extend for ajax options -// that takes "flat" options (not to be deep extended) -// Fixes #9887 -function ajaxExtend( target, src ) { - var key, deep, - flatOptions = jQuery.ajaxSettings.flatOptions || {}; - - for ( key in src ) { - if ( src[ key ] !== undefined ) { - ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ]; - } - } - if ( deep ) { - jQuery.extend( true, target, deep ); - } - - return target; -} - -/* Handles responses to an ajax request: - * - finds the right dataType (mediates between content-type and expected dataType) - * - returns the corresponding response - */ -function ajaxHandleResponses( s, jqXHR, responses ) { - - var ct, type, finalDataType, firstDataType, - contents = s.contents, - dataTypes = s.dataTypes; - - // Remove auto dataType and get content-type in the process - while ( dataTypes[ 0 ] === "*" ) { - dataTypes.shift(); - if ( ct === undefined ) { - ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" ); - } - } - - // Check if we're dealing with a known content-type - if ( ct ) { - for ( type in contents ) { - if ( contents[ type ] && contents[ type ].test( ct ) ) { - dataTypes.unshift( type ); - break; - } - } - } - - // Check to see if we have a response for the expected dataType - if ( dataTypes[ 0 ] in responses ) { - finalDataType = dataTypes[ 0 ]; - } else { - - // Try convertible dataTypes - for ( type in responses ) { - if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) { - finalDataType = type; - break; - } - if ( !firstDataType ) { - firstDataType = type; - } - } - - // Or just use first one - finalDataType = finalDataType || firstDataType; - } - - // If we found a dataType - // We add the dataType to the list if needed - // and return the corresponding response - if ( finalDataType ) { - if ( finalDataType !== dataTypes[ 0 ] ) { - dataTypes.unshift( finalDataType ); - } - return responses[ finalDataType ]; - } -} - -/* Chain conversions given the request and the original response - * Also sets the responseXXX fields on the jqXHR instance - */ -function ajaxConvert( s, response, jqXHR, isSuccess ) { - var conv2, current, conv, tmp, prev, - converters = {}, - - // Work with a copy of dataTypes in case we need to modify it for conversion - dataTypes = s.dataTypes.slice(); - - // Create converters map with lowercased keys - if ( dataTypes[ 1 ] ) { - for ( conv in s.converters ) { - converters[ conv.toLowerCase() ] = s.converters[ conv ]; - } - } - - current = dataTypes.shift(); - - // Convert to each sequential dataType - while ( current ) { - - if ( s.responseFields[ current ] ) { - jqXHR[ s.responseFields[ current ] ] = response; - } - - // Apply the dataFilter if provided - if ( !prev && isSuccess && s.dataFilter ) { - response = s.dataFilter( response, s.dataType ); - } - - prev = current; - current = dataTypes.shift(); - - if ( current ) { - - // There's only work to do if current dataType is non-auto - if ( current === "*" ) { - - current = prev; - - // Convert response if prev dataType is non-auto and differs from current - } else if ( prev !== "*" && prev !== current ) { - - // Seek a direct converter - conv = converters[ prev + " " + current ] || converters[ "* " + current ]; - - // If none found, seek a pair - if ( !conv ) { - for ( conv2 in converters ) { - - // If conv2 outputs current - tmp = conv2.split( " " ); - if ( tmp[ 1 ] === current ) { - - // If prev can be converted to accepted input - conv = converters[ prev + " " + tmp[ 0 ] ] || - converters[ "* " + tmp[ 0 ] ]; - if ( conv ) { - - // Condense equivalence converters - if ( conv === true ) { - conv = converters[ conv2 ]; - - // Otherwise, insert the intermediate dataType - } else if ( converters[ conv2 ] !== true ) { - current = tmp[ 0 ]; - dataTypes.unshift( tmp[ 1 ] ); - } - break; - } - } - } - } - - // Apply converter (if not an equivalence) - if ( conv !== true ) { - - // Unless errors are allowed to bubble, catch and return them - if ( conv && s.throws ) { - response = conv( response ); - } else { - try { - response = conv( response ); - } catch ( e ) { - return { - state: "parsererror", - error: conv ? e : "No conversion from " + prev + " to " + current - }; - } - } - } - } - } - } - - return { state: "success", data: response }; -} - -jQuery.extend( { - - // Counter for holding the number of active queries - active: 0, - - // Last-Modified header cache for next request - lastModified: {}, - etag: {}, - - ajaxSettings: { - url: location.href, - type: "GET", - isLocal: rlocalProtocol.test( location.protocol ), - global: true, - processData: true, - async: true, - contentType: "application/x-www-form-urlencoded; charset=UTF-8", - - /* - timeout: 0, - data: null, - dataType: null, - username: null, - password: null, - cache: null, - throws: false, - traditional: false, - headers: {}, - */ - - accepts: { - "*": allTypes, - text: "text/plain", - html: "text/html", - xml: "application/xml, text/xml", - json: "application/json, text/javascript" - }, - - contents: { - xml: /\bxml\b/, - html: /\bhtml/, - json: /\bjson\b/ - }, - - responseFields: { - xml: "responseXML", - text: "responseText", - json: "responseJSON" - }, - - // Data converters - // Keys separate source (or catchall "*") and destination types with a single space - converters: { - - // Convert anything to text - "* text": String, - - // Text to html (true = no transformation) - "text html": true, - - // Evaluate text as a json expression - "text json": JSON.parse, - - // Parse text as xml - "text xml": jQuery.parseXML - }, - - // For options that shouldn't be deep extended: - // you can add your own custom options here if - // and when you create one that shouldn't be - // deep extended (see ajaxExtend) - flatOptions: { - url: true, - context: true - } - }, - - // Creates a full fledged settings object into target - // with both ajaxSettings and settings fields. - // If target is omitted, writes into ajaxSettings. - ajaxSetup: function( target, settings ) { - return settings ? - - // Building a settings object - ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) : - - // Extending ajaxSettings - ajaxExtend( jQuery.ajaxSettings, target ); - }, - - ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), - ajaxTransport: addToPrefiltersOrTransports( transports ), - - // Main method - ajax: function( url, options ) { - - // If url is an object, simulate pre-1.5 signature - if ( typeof url === "object" ) { - options = url; - url = undefined; - } - - // Force options to be an object - options = options || {}; - - var transport, - - // URL without anti-cache param - cacheURL, - - // Response headers - responseHeadersString, - responseHeaders, - - // timeout handle - timeoutTimer, - - // Url cleanup var - urlAnchor, - - // Request state (becomes false upon send and true upon completion) - completed, - - // To know if global events are to be dispatched - fireGlobals, - - // Loop variable - i, - - // uncached part of the url - uncached, - - // Create the final options object - s = jQuery.ajaxSetup( {}, options ), - - // Callbacks context - callbackContext = s.context || s, - - // Context for global events is callbackContext if it is a DOM node or jQuery collection - globalEventContext = s.context && - ( callbackContext.nodeType || callbackContext.jquery ) ? - jQuery( callbackContext ) : - jQuery.event, - - // Deferreds - deferred = jQuery.Deferred(), - completeDeferred = jQuery.Callbacks( "once memory" ), - - // Status-dependent callbacks - statusCode = s.statusCode || {}, - - // Headers (they are sent all at once) - requestHeaders = {}, - requestHeadersNames = {}, - - // Default abort message - strAbort = "canceled", - - // Fake xhr - jqXHR = { - readyState: 0, - - // Builds headers hashtable if needed - getResponseHeader: function( key ) { - var match; - if ( completed ) { - if ( !responseHeaders ) { - responseHeaders = {}; - while ( ( match = rheaders.exec( responseHeadersString ) ) ) { - responseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ]; - } - } - match = responseHeaders[ key.toLowerCase() ]; - } - return match == null ? null : match; - }, - - // Raw string - getAllResponseHeaders: function() { - return completed ? responseHeadersString : null; - }, - - // Caches the header - setRequestHeader: function( name, value ) { - if ( completed == null ) { - name = requestHeadersNames[ name.toLowerCase() ] = - requestHeadersNames[ name.toLowerCase() ] || name; - requestHeaders[ name ] = value; - } - return this; - }, - - // Overrides response content-type header - overrideMimeType: function( type ) { - if ( completed == null ) { - s.mimeType = type; - } - return this; - }, - - // Status-dependent callbacks - statusCode: function( map ) { - var code; - if ( map ) { - if ( completed ) { - - // Execute the appropriate callbacks - jqXHR.always( map[ jqXHR.status ] ); - } else { - - // Lazy-add the new callbacks in a way that preserves old ones - for ( code in map ) { - statusCode[ code ] = [ statusCode[ code ], map[ code ] ]; - } - } - } - return this; - }, - - // Cancel the request - abort: function( statusText ) { - var finalText = statusText || strAbort; - if ( transport ) { - transport.abort( finalText ); - } - done( 0, finalText ); - return this; - } - }; - - // Attach deferreds - deferred.promise( jqXHR ); - - // Add protocol if not provided (prefilters might expect it) - // Handle falsy url in the settings object (#10093: consistency with old signature) - // We also use the url parameter if available - s.url = ( ( url || s.url || location.href ) + "" ) - .replace( rprotocol, location.protocol + "//" ); - - // Alias method option to type as per ticket #12004 - s.type = options.method || options.type || s.method || s.type; - - // Extract dataTypes list - s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ]; - - // A cross-domain request is in order when the origin doesn't match the current origin. - if ( s.crossDomain == null ) { - urlAnchor = document.createElement( "a" ); - - // Support: IE <=8 - 11, Edge 12 - 15 - // IE throws exception on accessing the href property if url is malformed, - // e.g. http://example.com:80x/ - try { - urlAnchor.href = s.url; - - // Support: IE <=8 - 11 only - // Anchor's host property isn't correctly set when s.url is relative - urlAnchor.href = urlAnchor.href; - s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !== - urlAnchor.protocol + "//" + urlAnchor.host; - } catch ( e ) { - - // If there is an error parsing the URL, assume it is crossDomain, - // it can be rejected by the transport if it is invalid - s.crossDomain = true; - } - } - - // Convert data if not already a string - if ( s.data && s.processData && typeof s.data !== "string" ) { - s.data = jQuery.param( s.data, s.traditional ); - } - - // Apply prefilters - inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); - - // If request was aborted inside a prefilter, stop there - if ( completed ) { - return jqXHR; - } - - // We can fire global events as of now if asked to - // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118) - fireGlobals = jQuery.event && s.global; - - // Watch for a new set of requests - if ( fireGlobals && jQuery.active++ === 0 ) { - jQuery.event.trigger( "ajaxStart" ); - } - - // Uppercase the type - s.type = s.type.toUpperCase(); - - // Determine if request has content - s.hasContent = !rnoContent.test( s.type ); - - // Save the URL in case we're toying with the If-Modified-Since - // and/or If-None-Match header later on - // Remove hash to simplify url manipulation - cacheURL = s.url.replace( rhash, "" ); - - // More options handling for requests with no content - if ( !s.hasContent ) { - - // Remember the hash so we can put it back - uncached = s.url.slice( cacheURL.length ); - - // If data is available and should be processed, append data to url - if ( s.data && ( s.processData || typeof s.data === "string" ) ) { - cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data; - - // #9682: remove data so that it's not used in an eventual retry - delete s.data; - } - - // Add or update anti-cache param if needed - if ( s.cache === false ) { - cacheURL = cacheURL.replace( rantiCache, "$1" ); - uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce++ ) + uncached; - } - - // Put hash and anti-cache on the URL that will be requested (gh-1732) - s.url = cacheURL + uncached; - - // Change '%20' to '+' if this is encoded form body content (gh-2658) - } else if ( s.data && s.processData && - ( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) { - s.data = s.data.replace( r20, "+" ); - } - - // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. - if ( s.ifModified ) { - if ( jQuery.lastModified[ cacheURL ] ) { - jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] ); - } - if ( jQuery.etag[ cacheURL ] ) { - jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] ); - } - } - - // Set the correct header, if data is being sent - if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { - jqXHR.setRequestHeader( "Content-Type", s.contentType ); - } - - // Set the Accepts header for the server, depending on the dataType - jqXHR.setRequestHeader( - "Accept", - s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ? - s.accepts[ s.dataTypes[ 0 ] ] + - ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : - s.accepts[ "*" ] - ); - - // Check for headers option - for ( i in s.headers ) { - jqXHR.setRequestHeader( i, s.headers[ i ] ); - } - - // Allow custom headers/mimetypes and early abort - if ( s.beforeSend && - ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) { - - // Abort if not done already and return - return jqXHR.abort(); - } - - // Aborting is no longer a cancellation - strAbort = "abort"; - - // Install callbacks on deferreds - completeDeferred.add( s.complete ); - jqXHR.done( s.success ); - jqXHR.fail( s.error ); - - // Get transport - transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); - - // If no transport, we auto-abort - if ( !transport ) { - done( -1, "No Transport" ); - } else { - jqXHR.readyState = 1; - - // Send global event - if ( fireGlobals ) { - globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); - } - - // If request was aborted inside ajaxSend, stop there - if ( completed ) { - return jqXHR; - } - - // Timeout - if ( s.async && s.timeout > 0 ) { - timeoutTimer = window.setTimeout( function() { - jqXHR.abort( "timeout" ); - }, s.timeout ); - } - - try { - completed = false; - transport.send( requestHeaders, done ); - } catch ( e ) { - - // Rethrow post-completion exceptions - if ( completed ) { - throw e; - } - - // Propagate others as results - done( -1, e ); - } - } - - // Callback for when everything is done - function done( status, nativeStatusText, responses, headers ) { - var isSuccess, success, error, response, modified, - statusText = nativeStatusText; - - // Ignore repeat invocations - if ( completed ) { - return; - } - - completed = true; - - // Clear timeout if it exists - if ( timeoutTimer ) { - window.clearTimeout( timeoutTimer ); - } - - // Dereference transport for early garbage collection - // (no matter how long the jqXHR object will be used) - transport = undefined; - - // Cache response headers - responseHeadersString = headers || ""; - - // Set readyState - jqXHR.readyState = status > 0 ? 4 : 0; - - // Determine if successful - isSuccess = status >= 200 && status < 300 || status === 304; - - // Get response data - if ( responses ) { - response = ajaxHandleResponses( s, jqXHR, responses ); - } - - // Convert no matter what (that way responseXXX fields are always set) - response = ajaxConvert( s, response, jqXHR, isSuccess ); - - // If successful, handle type chaining - if ( isSuccess ) { - - // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. - if ( s.ifModified ) { - modified = jqXHR.getResponseHeader( "Last-Modified" ); - if ( modified ) { - jQuery.lastModified[ cacheURL ] = modified; - } - modified = jqXHR.getResponseHeader( "etag" ); - if ( modified ) { - jQuery.etag[ cacheURL ] = modified; - } - } - - // if no content - if ( status === 204 || s.type === "HEAD" ) { - statusText = "nocontent"; - - // if not modified - } else if ( status === 304 ) { - statusText = "notmodified"; - - // If we have data, let's convert it - } else { - statusText = response.state; - success = response.data; - error = response.error; - isSuccess = !error; - } - } else { - - // Extract error from statusText and normalize for non-aborts - error = statusText; - if ( status || !statusText ) { - statusText = "error"; - if ( status < 0 ) { - status = 0; - } - } - } - - // Set data for the fake xhr object - jqXHR.status = status; - jqXHR.statusText = ( nativeStatusText || statusText ) + ""; - - // Success/Error - if ( isSuccess ) { - deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); - } else { - deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); - } - - // Status-dependent callbacks - jqXHR.statusCode( statusCode ); - statusCode = undefined; - - if ( fireGlobals ) { - globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError", - [ jqXHR, s, isSuccess ? success : error ] ); - } - - // Complete - completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); - - if ( fireGlobals ) { - globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); - - // Handle the global AJAX counter - if ( !( --jQuery.active ) ) { - jQuery.event.trigger( "ajaxStop" ); - } - } - } - - return jqXHR; - }, - - getJSON: function( url, data, callback ) { - return jQuery.get( url, data, callback, "json" ); - }, - - getScript: function( url, callback ) { - return jQuery.get( url, undefined, callback, "script" ); - } -} ); - -jQuery.each( [ "get", "post" ], function( i, method ) { - jQuery[ method ] = function( url, data, callback, type ) { - - // Shift arguments if data argument was omitted - if ( isFunction( data ) ) { - type = type || callback; - callback = data; - data = undefined; - } - - // The url can be an options object (which then must have .url) - return jQuery.ajax( jQuery.extend( { - url: url, - type: method, - dataType: type, - data: data, - success: callback - }, jQuery.isPlainObject( url ) && url ) ); - }; -} ); - - -jQuery._evalUrl = function( url ) { - return jQuery.ajax( { - url: url, - - // Make this explicit, since user can override this through ajaxSetup (#11264) - type: "GET", - dataType: "script", - cache: true, - async: false, - global: false, - "throws": true - } ); -}; - - -jQuery.fn.extend( { - wrapAll: function( html ) { - var wrap; - - if ( this[ 0 ] ) { - if ( isFunction( html ) ) { - html = html.call( this[ 0 ] ); - } - - // The elements to wrap the target around - wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true ); - - if ( this[ 0 ].parentNode ) { - wrap.insertBefore( this[ 0 ] ); - } - - wrap.map( function() { - var elem = this; - - while ( elem.firstElementChild ) { - elem = elem.firstElementChild; - } - - return elem; - } ).append( this ); - } - - return this; - }, - - wrapInner: function( html ) { - if ( isFunction( html ) ) { - return this.each( function( i ) { - jQuery( this ).wrapInner( html.call( this, i ) ); - } ); - } - - return this.each( function() { - var self = jQuery( this ), - contents = self.contents(); - - if ( contents.length ) { - contents.wrapAll( html ); - - } else { - self.append( html ); - } - } ); - }, - - wrap: function( html ) { - var htmlIsFunction = isFunction( html ); - - return this.each( function( i ) { - jQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html ); - } ); - }, - - unwrap: function( selector ) { - this.parent( selector ).not( "body" ).each( function() { - jQuery( this ).replaceWith( this.childNodes ); - } ); - return this; - } -} ); - - -jQuery.expr.pseudos.hidden = function( elem ) { - return !jQuery.expr.pseudos.visible( elem ); -}; -jQuery.expr.pseudos.visible = function( elem ) { - return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length ); -}; - - - - -jQuery.ajaxSettings.xhr = function() { - try { - return new window.XMLHttpRequest(); - } catch ( e ) {} -}; - -var xhrSuccessStatus = { - - // File protocol always yields status code 0, assume 200 - 0: 200, - - // Support: IE <=9 only - // #1450: sometimes IE returns 1223 when it should be 204 - 1223: 204 - }, - xhrSupported = jQuery.ajaxSettings.xhr(); - -support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported ); -support.ajax = xhrSupported = !!xhrSupported; - -jQuery.ajaxTransport( function( options ) { - var callback, errorCallback; - - // Cross domain only allowed if supported through XMLHttpRequest - if ( support.cors || xhrSupported && !options.crossDomain ) { - return { - send: function( headers, complete ) { - var i, - xhr = options.xhr(); - - xhr.open( - options.type, - options.url, - options.async, - options.username, - options.password - ); - - // Apply custom fields if provided - if ( options.xhrFields ) { - for ( i in options.xhrFields ) { - xhr[ i ] = options.xhrFields[ i ]; - } - } - - // Override mime type if needed - if ( options.mimeType && xhr.overrideMimeType ) { - xhr.overrideMimeType( options.mimeType ); - } - - // X-Requested-With header - // For cross-domain requests, seeing as conditions for a preflight are - // akin to a jigsaw puzzle, we simply never set it to be sure. - // (it can always be set on a per-request basis or even using ajaxSetup) - // For same-domain requests, won't change header if already provided. - if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) { - headers[ "X-Requested-With" ] = "XMLHttpRequest"; - } - - // Set headers - for ( i in headers ) { - xhr.setRequestHeader( i, headers[ i ] ); - } - - // Callback - callback = function( type ) { - return function() { - if ( callback ) { - callback = errorCallback = xhr.onload = - xhr.onerror = xhr.onabort = xhr.ontimeout = - xhr.onreadystatechange = null; - - if ( type === "abort" ) { - xhr.abort(); - } else if ( type === "error" ) { - - // Support: IE <=9 only - // On a manual native abort, IE9 throws - // errors on any property access that is not readyState - if ( typeof xhr.status !== "number" ) { - complete( 0, "error" ); - } else { - complete( - - // File: protocol always yields status 0; see #8605, #14207 - xhr.status, - xhr.statusText - ); - } - } else { - complete( - xhrSuccessStatus[ xhr.status ] || xhr.status, - xhr.statusText, - - // Support: IE <=9 only - // IE9 has no XHR2 but throws on binary (trac-11426) - // For XHR2 non-text, let the caller handle it (gh-2498) - ( xhr.responseType || "text" ) !== "text" || - typeof xhr.responseText !== "string" ? - { binary: xhr.response } : - { text: xhr.responseText }, - xhr.getAllResponseHeaders() - ); - } - } - }; - }; - - // Listen to events - xhr.onload = callback(); - errorCallback = xhr.onerror = xhr.ontimeout = callback( "error" ); - - // Support: IE 9 only - // Use onreadystatechange to replace onabort - // to handle uncaught aborts - if ( xhr.onabort !== undefined ) { - xhr.onabort = errorCallback; - } else { - xhr.onreadystatechange = function() { - - // Check readyState before timeout as it changes - if ( xhr.readyState === 4 ) { - - // Allow onerror to be called first, - // but that will not handle a native abort - // Also, save errorCallback to a variable - // as xhr.onerror cannot be accessed - window.setTimeout( function() { - if ( callback ) { - errorCallback(); - } - } ); - } - }; - } - - // Create the abort callback - callback = callback( "abort" ); - - try { - - // Do send the request (this may raise an exception) - xhr.send( options.hasContent && options.data || null ); - } catch ( e ) { - - // #14683: Only rethrow if this hasn't been notified as an error yet - if ( callback ) { - throw e; - } - } - }, - - abort: function() { - if ( callback ) { - callback(); - } - } - }; - } -} ); - - - - -// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432) -jQuery.ajaxPrefilter( function( s ) { - if ( s.crossDomain ) { - s.contents.script = false; - } -} ); - -// Install script dataType -jQuery.ajaxSetup( { - accepts: { - script: "text/javascript, application/javascript, " + - "application/ecmascript, application/x-ecmascript" - }, - contents: { - script: /\b(?:java|ecma)script\b/ - }, - converters: { - "text script": function( text ) { - jQuery.globalEval( text ); - return text; - } - } -} ); - -// Handle cache's special case and crossDomain -jQuery.ajaxPrefilter( "script", function( s ) { - if ( s.cache === undefined ) { - s.cache = false; - } - if ( s.crossDomain ) { - s.type = "GET"; - } -} ); - -// Bind script tag hack transport -jQuery.ajaxTransport( "script", function( s ) { - - // This transport only deals with cross domain requests - if ( s.crossDomain ) { - var script, callback; - return { - send: function( _, complete ) { - script = jQuery( " - - - -
    - -

    index.html

    -
    - - diff --git a/docs/site/apidocs/overview-tree.html b/docs/site/apidocs/overview-tree.html deleted file mode 100644 index 360e4d7e..00000000 --- a/docs/site/apidocs/overview-tree.html +++ /dev/null @@ -1,172 +0,0 @@ - - - - -Class Hierarchy (Units of Measurement API 2.2.1-SNAPSHOT API) - - - - - - - - - - - - - - - -
    - - -
    - - diff --git a/docs/site/apidocs/package-search-index.js b/docs/site/apidocs/package-search-index.js deleted file mode 100644 index 450d183f..00000000 --- a/docs/site/apidocs/package-search-index.js +++ /dev/null @@ -1 +0,0 @@ -packageSearchIndex = [{"l":"All Packages","u":"allpackages-index.html"},{"l":"javax.measure"},{"l":"javax.measure.format"},{"l":"javax.measure.quantity"},{"l":"javax.measure.spi"}];updateSearchResults(); \ No newline at end of file diff --git a/docs/site/apidocs/package-search-index.zip b/docs/site/apidocs/package-search-index.zip deleted file mode 100644 index 22622dd2..00000000 Binary files a/docs/site/apidocs/package-search-index.zip and /dev/null differ diff --git a/docs/site/apidocs/script-dir/external/jquery/jquery.js b/docs/site/apidocs/script-dir/external/jquery/jquery.js deleted file mode 100644 index 5b16efa1..00000000 --- a/docs/site/apidocs/script-dir/external/jquery/jquery.js +++ /dev/null @@ -1,10598 +0,0 @@ -/*! - * jQuery JavaScript Library v3.4.1 - * https://jquery.com/ - * - * Includes Sizzle.js - * https://sizzlejs.com/ - * - * Copyright JS Foundation and other contributors - * Released under the MIT license - * https://jquery.org/license - * - * Date: 2019-05-01T21:04Z - */ -( function( global, factory ) { - - "use strict"; - - if ( typeof module === "object" && typeof module.exports === "object" ) { - - // For CommonJS and CommonJS-like environments where a proper `window` - // is present, execute the factory and get jQuery. - // For environments that do not have a `window` with a `document` - // (such as Node.js), expose a factory as module.exports. - // This accentuates the need for the creation of a real `window`. - // e.g. var jQuery = require("jquery")(window); - // See ticket #14549 for more info. - module.exports = global.document ? - factory( global, true ) : - function( w ) { - if ( !w.document ) { - throw new Error( "jQuery requires a window with a document" ); - } - return factory( w ); - }; - } else { - factory( global ); - } - -// Pass this if window is not defined yet -} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) { - -// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1 -// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode -// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common -// enough that all such attempts are guarded in a try block. -"use strict"; - -var arr = []; - -var document = window.document; - -var getProto = Object.getPrototypeOf; - -var slice = arr.slice; - -var concat = arr.concat; - -var push = arr.push; - -var indexOf = arr.indexOf; - -var class2type = {}; - -var toString = class2type.toString; - -var hasOwn = class2type.hasOwnProperty; - -var fnToString = hasOwn.toString; - -var ObjectFunctionString = fnToString.call( Object ); - -var support = {}; - -var isFunction = function isFunction( obj ) { - - // Support: Chrome <=57, Firefox <=52 - // In some browsers, typeof returns "function" for HTML elements - // (i.e., `typeof document.createElement( "object" ) === "function"`). - // We don't want to classify *any* DOM node as a function. - return typeof obj === "function" && typeof obj.nodeType !== "number"; - }; - - -var isWindow = function isWindow( obj ) { - return obj != null && obj === obj.window; - }; - - - - - var preservedScriptAttributes = { - type: true, - src: true, - nonce: true, - noModule: true - }; - - function DOMEval( code, node, doc ) { - doc = doc || document; - - var i, val, - script = doc.createElement( "script" ); - - script.text = code; - if ( node ) { - for ( i in preservedScriptAttributes ) { - - // Support: Firefox 64+, Edge 18+ - // Some browsers don't support the "nonce" property on scripts. - // On the other hand, just using `getAttribute` is not enough as - // the `nonce` attribute is reset to an empty string whenever it - // becomes browsing-context connected. - // See https://github.com/whatwg/html/issues/2369 - // See https://html.spec.whatwg.org/#nonce-attributes - // The `node.getAttribute` check was added for the sake of - // `jQuery.globalEval` so that it can fake a nonce-containing node - // via an object. - val = node[ i ] || node.getAttribute && node.getAttribute( i ); - if ( val ) { - script.setAttribute( i, val ); - } - } - } - doc.head.appendChild( script ).parentNode.removeChild( script ); - } - - -function toType( obj ) { - if ( obj == null ) { - return obj + ""; - } - - // Support: Android <=2.3 only (functionish RegExp) - return typeof obj === "object" || typeof obj === "function" ? - class2type[ toString.call( obj ) ] || "object" : - typeof obj; -} -/* global Symbol */ -// Defining this global in .eslintrc.json would create a danger of using the global -// unguarded in another place, it seems safer to define global only for this module - - - -var - version = "3.4.1", - - // Define a local copy of jQuery - jQuery = function( selector, context ) { - - // The jQuery object is actually just the init constructor 'enhanced' - // Need init if jQuery is called (just allow error to be thrown if not included) - return new jQuery.fn.init( selector, context ); - }, - - // Support: Android <=4.0 only - // Make sure we trim BOM and NBSP - rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g; - -jQuery.fn = jQuery.prototype = { - - // The current version of jQuery being used - jquery: version, - - constructor: jQuery, - - // The default length of a jQuery object is 0 - length: 0, - - toArray: function() { - return slice.call( this ); - }, - - // Get the Nth element in the matched element set OR - // Get the whole matched element set as a clean array - get: function( num ) { - - // Return all the elements in a clean array - if ( num == null ) { - return slice.call( this ); - } - - // Return just the one element from the set - return num < 0 ? this[ num + this.length ] : this[ num ]; - }, - - // Take an array of elements and push it onto the stack - // (returning the new matched element set) - pushStack: function( elems ) { - - // Build a new jQuery matched element set - var ret = jQuery.merge( this.constructor(), elems ); - - // Add the old object onto the stack (as a reference) - ret.prevObject = this; - - // Return the newly-formed element set - return ret; - }, - - // Execute a callback for every element in the matched set. - each: function( callback ) { - return jQuery.each( this, callback ); - }, - - map: function( callback ) { - return this.pushStack( jQuery.map( this, function( elem, i ) { - return callback.call( elem, i, elem ); - } ) ); - }, - - slice: function() { - return this.pushStack( slice.apply( this, arguments ) ); - }, - - first: function() { - return this.eq( 0 ); - }, - - last: function() { - return this.eq( -1 ); - }, - - eq: function( i ) { - var len = this.length, - j = +i + ( i < 0 ? len : 0 ); - return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] ); - }, - - end: function() { - return this.prevObject || this.constructor(); - }, - - // For internal use only. - // Behaves like an Array's method, not like a jQuery method. - push: push, - sort: arr.sort, - splice: arr.splice -}; - -jQuery.extend = jQuery.fn.extend = function() { - var options, name, src, copy, copyIsArray, clone, - target = arguments[ 0 ] || {}, - i = 1, - length = arguments.length, - deep = false; - - // Handle a deep copy situation - if ( typeof target === "boolean" ) { - deep = target; - - // Skip the boolean and the target - target = arguments[ i ] || {}; - i++; - } - - // Handle case when target is a string or something (possible in deep copy) - if ( typeof target !== "object" && !isFunction( target ) ) { - target = {}; - } - - // Extend jQuery itself if only one argument is passed - if ( i === length ) { - target = this; - i--; - } - - for ( ; i < length; i++ ) { - - // Only deal with non-null/undefined values - if ( ( options = arguments[ i ] ) != null ) { - - // Extend the base object - for ( name in options ) { - copy = options[ name ]; - - // Prevent Object.prototype pollution - // Prevent never-ending loop - if ( name === "__proto__" || target === copy ) { - continue; - } - - // Recurse if we're merging plain objects or arrays - if ( deep && copy && ( jQuery.isPlainObject( copy ) || - ( copyIsArray = Array.isArray( copy ) ) ) ) { - src = target[ name ]; - - // Ensure proper type for the source value - if ( copyIsArray && !Array.isArray( src ) ) { - clone = []; - } else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) { - clone = {}; - } else { - clone = src; - } - copyIsArray = false; - - // Never move original objects, clone them - target[ name ] = jQuery.extend( deep, clone, copy ); - - // Don't bring in undefined values - } else if ( copy !== undefined ) { - target[ name ] = copy; - } - } - } - } - - // Return the modified object - return target; -}; - -jQuery.extend( { - - // Unique for each copy of jQuery on the page - expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), - - // Assume jQuery is ready without the ready module - isReady: true, - - error: function( msg ) { - throw new Error( msg ); - }, - - noop: function() {}, - - isPlainObject: function( obj ) { - var proto, Ctor; - - // Detect obvious negatives - // Use toString instead of jQuery.type to catch host objects - if ( !obj || toString.call( obj ) !== "[object Object]" ) { - return false; - } - - proto = getProto( obj ); - - // Objects with no prototype (e.g., `Object.create( null )`) are plain - if ( !proto ) { - return true; - } - - // Objects with prototype are plain iff they were constructed by a global Object function - Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor; - return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString; - }, - - isEmptyObject: function( obj ) { - var name; - - for ( name in obj ) { - return false; - } - return true; - }, - - // Evaluates a script in a global context - globalEval: function( code, options ) { - DOMEval( code, { nonce: options && options.nonce } ); - }, - - each: function( obj, callback ) { - var length, i = 0; - - if ( isArrayLike( obj ) ) { - length = obj.length; - for ( ; i < length; i++ ) { - if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { - break; - } - } - } else { - for ( i in obj ) { - if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { - break; - } - } - } - - return obj; - }, - - // Support: Android <=4.0 only - trim: function( text ) { - return text == null ? - "" : - ( text + "" ).replace( rtrim, "" ); - }, - - // results is for internal usage only - makeArray: function( arr, results ) { - var ret = results || []; - - if ( arr != null ) { - if ( isArrayLike( Object( arr ) ) ) { - jQuery.merge( ret, - typeof arr === "string" ? - [ arr ] : arr - ); - } else { - push.call( ret, arr ); - } - } - - return ret; - }, - - inArray: function( elem, arr, i ) { - return arr == null ? -1 : indexOf.call( arr, elem, i ); - }, - - // Support: Android <=4.0 only, PhantomJS 1 only - // push.apply(_, arraylike) throws on ancient WebKit - merge: function( first, second ) { - var len = +second.length, - j = 0, - i = first.length; - - for ( ; j < len; j++ ) { - first[ i++ ] = second[ j ]; - } - - first.length = i; - - return first; - }, - - grep: function( elems, callback, invert ) { - var callbackInverse, - matches = [], - i = 0, - length = elems.length, - callbackExpect = !invert; - - // Go through the array, only saving the items - // that pass the validator function - for ( ; i < length; i++ ) { - callbackInverse = !callback( elems[ i ], i ); - if ( callbackInverse !== callbackExpect ) { - matches.push( elems[ i ] ); - } - } - - return matches; - }, - - // arg is for internal usage only - map: function( elems, callback, arg ) { - var length, value, - i = 0, - ret = []; - - // Go through the array, translating each of the items to their new values - if ( isArrayLike( elems ) ) { - length = elems.length; - for ( ; i < length; i++ ) { - value = callback( elems[ i ], i, arg ); - - if ( value != null ) { - ret.push( value ); - } - } - - // Go through every key on the object, - } else { - for ( i in elems ) { - value = callback( elems[ i ], i, arg ); - - if ( value != null ) { - ret.push( value ); - } - } - } - - // Flatten any nested arrays - return concat.apply( [], ret ); - }, - - // A global GUID counter for objects - guid: 1, - - // jQuery.support is not used in Core but other projects attach their - // properties to it so it needs to exist. - support: support -} ); - -if ( typeof Symbol === "function" ) { - jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ]; -} - -// Populate the class2type map -jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), -function( i, name ) { - class2type[ "[object " + name + "]" ] = name.toLowerCase(); -} ); - -function isArrayLike( obj ) { - - // Support: real iOS 8.2 only (not reproducible in simulator) - // `in` check used to prevent JIT error (gh-2145) - // hasOwn isn't used here due to false negatives - // regarding Nodelist length in IE - var length = !!obj && "length" in obj && obj.length, - type = toType( obj ); - - if ( isFunction( obj ) || isWindow( obj ) ) { - return false; - } - - return type === "array" || length === 0 || - typeof length === "number" && length > 0 && ( length - 1 ) in obj; -} -var Sizzle = -/*! - * Sizzle CSS Selector Engine v2.3.4 - * https://sizzlejs.com/ - * - * Copyright JS Foundation and other contributors - * Released under the MIT license - * https://js.foundation/ - * - * Date: 2019-04-08 - */ -(function( window ) { - -var i, - support, - Expr, - getText, - isXML, - tokenize, - compile, - select, - outermostContext, - sortInput, - hasDuplicate, - - // Local document vars - setDocument, - document, - docElem, - documentIsHTML, - rbuggyQSA, - rbuggyMatches, - matches, - contains, - - // Instance-specific data - expando = "sizzle" + 1 * new Date(), - preferredDoc = window.document, - dirruns = 0, - done = 0, - classCache = createCache(), - tokenCache = createCache(), - compilerCache = createCache(), - nonnativeSelectorCache = createCache(), - sortOrder = function( a, b ) { - if ( a === b ) { - hasDuplicate = true; - } - return 0; - }, - - // Instance methods - hasOwn = ({}).hasOwnProperty, - arr = [], - pop = arr.pop, - push_native = arr.push, - push = arr.push, - slice = arr.slice, - // Use a stripped-down indexOf as it's faster than native - // https://jsperf.com/thor-indexof-vs-for/5 - indexOf = function( list, elem ) { - var i = 0, - len = list.length; - for ( ; i < len; i++ ) { - if ( list[i] === elem ) { - return i; - } - } - return -1; - }, - - booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", - - // Regular expressions - - // http://www.w3.org/TR/css3-selectors/#whitespace - whitespace = "[\\x20\\t\\r\\n\\f]", - - // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier - identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+", - - // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors - attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + - // Operator (capture 2) - "*([*^$|!~]?=)" + whitespace + - // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" - "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace + - "*\\]", - - pseudos = ":(" + identifier + ")(?:\\((" + - // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: - // 1. quoted (capture 3; capture 4 or capture 5) - "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + - // 2. simple (capture 6) - "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + - // 3. anything else (capture 2) - ".*" + - ")\\)|)", - - // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter - rwhitespace = new RegExp( whitespace + "+", "g" ), - rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), - - rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), - rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), - rdescend = new RegExp( whitespace + "|>" ), - - rpseudo = new RegExp( pseudos ), - ridentifier = new RegExp( "^" + identifier + "$" ), - - matchExpr = { - "ID": new RegExp( "^#(" + identifier + ")" ), - "CLASS": new RegExp( "^\\.(" + identifier + ")" ), - "TAG": new RegExp( "^(" + identifier + "|[*])" ), - "ATTR": new RegExp( "^" + attributes ), - "PSEUDO": new RegExp( "^" + pseudos ), - "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + - "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + - "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), - "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), - // For use in libraries implementing .is() - // We use this for POS matching in `select` - "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + - whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) - }, - - rhtml = /HTML$/i, - rinputs = /^(?:input|select|textarea|button)$/i, - rheader = /^h\d$/i, - - rnative = /^[^{]+\{\s*\[native \w/, - - // Easily-parseable/retrievable ID or TAG or CLASS selectors - rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, - - rsibling = /[+~]/, - - // CSS escapes - // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters - runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), - funescape = function( _, escaped, escapedWhitespace ) { - var high = "0x" + escaped - 0x10000; - // NaN means non-codepoint - // Support: Firefox<24 - // Workaround erroneous numeric interpretation of +"0x" - return high !== high || escapedWhitespace ? - escaped : - high < 0 ? - // BMP codepoint - String.fromCharCode( high + 0x10000 ) : - // Supplemental Plane codepoint (surrogate pair) - String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); - }, - - // CSS string/identifier serialization - // https://drafts.csswg.org/cssom/#common-serializing-idioms - rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, - fcssescape = function( ch, asCodePoint ) { - if ( asCodePoint ) { - - // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER - if ( ch === "\0" ) { - return "\uFFFD"; - } - - // Control characters and (dependent upon position) numbers get escaped as code points - return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; - } - - // Other potentially-special ASCII characters get backslash-escaped - return "\\" + ch; - }, - - // Used for iframes - // See setDocument() - // Removing the function wrapper causes a "Permission Denied" - // error in IE - unloadHandler = function() { - setDocument(); - }, - - inDisabledFieldset = addCombinator( - function( elem ) { - return elem.disabled === true && elem.nodeName.toLowerCase() === "fieldset"; - }, - { dir: "parentNode", next: "legend" } - ); - -// Optimize for push.apply( _, NodeList ) -try { - push.apply( - (arr = slice.call( preferredDoc.childNodes )), - preferredDoc.childNodes - ); - // Support: Android<4.0 - // Detect silently failing push.apply - arr[ preferredDoc.childNodes.length ].nodeType; -} catch ( e ) { - push = { apply: arr.length ? - - // Leverage slice if possible - function( target, els ) { - push_native.apply( target, slice.call(els) ); - } : - - // Support: IE<9 - // Otherwise append directly - function( target, els ) { - var j = target.length, - i = 0; - // Can't trust NodeList.length - while ( (target[j++] = els[i++]) ) {} - target.length = j - 1; - } - }; -} - -function Sizzle( selector, context, results, seed ) { - var m, i, elem, nid, match, groups, newSelector, - newContext = context && context.ownerDocument, - - // nodeType defaults to 9, since context defaults to document - nodeType = context ? context.nodeType : 9; - - results = results || []; - - // Return early from calls with invalid selector or context - if ( typeof selector !== "string" || !selector || - nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { - - return results; - } - - // Try to shortcut find operations (as opposed to filters) in HTML documents - if ( !seed ) { - - if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { - setDocument( context ); - } - context = context || document; - - if ( documentIsHTML ) { - - // If the selector is sufficiently simple, try using a "get*By*" DOM method - // (excepting DocumentFragment context, where the methods don't exist) - if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) { - - // ID selector - if ( (m = match[1]) ) { - - // Document context - if ( nodeType === 9 ) { - if ( (elem = context.getElementById( m )) ) { - - // Support: IE, Opera, Webkit - // TODO: identify versions - // getElementById can match elements by name instead of ID - if ( elem.id === m ) { - results.push( elem ); - return results; - } - } else { - return results; - } - - // Element context - } else { - - // Support: IE, Opera, Webkit - // TODO: identify versions - // getElementById can match elements by name instead of ID - if ( newContext && (elem = newContext.getElementById( m )) && - contains( context, elem ) && - elem.id === m ) { - - results.push( elem ); - return results; - } - } - - // Type selector - } else if ( match[2] ) { - push.apply( results, context.getElementsByTagName( selector ) ); - return results; - - // Class selector - } else if ( (m = match[3]) && support.getElementsByClassName && - context.getElementsByClassName ) { - - push.apply( results, context.getElementsByClassName( m ) ); - return results; - } - } - - // Take advantage of querySelectorAll - if ( support.qsa && - !nonnativeSelectorCache[ selector + " " ] && - (!rbuggyQSA || !rbuggyQSA.test( selector )) && - - // Support: IE 8 only - // Exclude object elements - (nodeType !== 1 || context.nodeName.toLowerCase() !== "object") ) { - - newSelector = selector; - newContext = context; - - // qSA considers elements outside a scoping root when evaluating child or - // descendant combinators, which is not what we want. - // In such cases, we work around the behavior by prefixing every selector in the - // list with an ID selector referencing the scope context. - // Thanks to Andrew Dupont for this technique. - if ( nodeType === 1 && rdescend.test( selector ) ) { - - // Capture the context ID, setting it first if necessary - if ( (nid = context.getAttribute( "id" )) ) { - nid = nid.replace( rcssescape, fcssescape ); - } else { - context.setAttribute( "id", (nid = expando) ); - } - - // Prefix every selector in the list - groups = tokenize( selector ); - i = groups.length; - while ( i-- ) { - groups[i] = "#" + nid + " " + toSelector( groups[i] ); - } - newSelector = groups.join( "," ); - - // Expand context for sibling selectors - newContext = rsibling.test( selector ) && testContext( context.parentNode ) || - context; - } - - try { - push.apply( results, - newContext.querySelectorAll( newSelector ) - ); - return results; - } catch ( qsaError ) { - nonnativeSelectorCache( selector, true ); - } finally { - if ( nid === expando ) { - context.removeAttribute( "id" ); - } - } - } - } - } - - // All others - return select( selector.replace( rtrim, "$1" ), context, results, seed ); -} - -/** - * Create key-value caches of limited size - * @returns {function(string, object)} Returns the Object data after storing it on itself with - * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) - * deleting the oldest entry - */ -function createCache() { - var keys = []; - - function cache( key, value ) { - // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) - if ( keys.push( key + " " ) > Expr.cacheLength ) { - // Only keep the most recent entries - delete cache[ keys.shift() ]; - } - return (cache[ key + " " ] = value); - } - return cache; -} - -/** - * Mark a function for special use by Sizzle - * @param {Function} fn The function to mark - */ -function markFunction( fn ) { - fn[ expando ] = true; - return fn; -} - -/** - * Support testing using an element - * @param {Function} fn Passed the created element and returns a boolean result - */ -function assert( fn ) { - var el = document.createElement("fieldset"); - - try { - return !!fn( el ); - } catch (e) { - return false; - } finally { - // Remove from its parent by default - if ( el.parentNode ) { - el.parentNode.removeChild( el ); - } - // release memory in IE - el = null; - } -} - -/** - * Adds the same handler for all of the specified attrs - * @param {String} attrs Pipe-separated list of attributes - * @param {Function} handler The method that will be applied - */ -function addHandle( attrs, handler ) { - var arr = attrs.split("|"), - i = arr.length; - - while ( i-- ) { - Expr.attrHandle[ arr[i] ] = handler; - } -} - -/** - * Checks document order of two siblings - * @param {Element} a - * @param {Element} b - * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b - */ -function siblingCheck( a, b ) { - var cur = b && a, - diff = cur && a.nodeType === 1 && b.nodeType === 1 && - a.sourceIndex - b.sourceIndex; - - // Use IE sourceIndex if available on both nodes - if ( diff ) { - return diff; - } - - // Check if b follows a - if ( cur ) { - while ( (cur = cur.nextSibling) ) { - if ( cur === b ) { - return -1; - } - } - } - - return a ? 1 : -1; -} - -/** - * Returns a function to use in pseudos for input types - * @param {String} type - */ -function createInputPseudo( type ) { - return function( elem ) { - var name = elem.nodeName.toLowerCase(); - return name === "input" && elem.type === type; - }; -} - -/** - * Returns a function to use in pseudos for buttons - * @param {String} type - */ -function createButtonPseudo( type ) { - return function( elem ) { - var name = elem.nodeName.toLowerCase(); - return (name === "input" || name === "button") && elem.type === type; - }; -} - -/** - * Returns a function to use in pseudos for :enabled/:disabled - * @param {Boolean} disabled true for :disabled; false for :enabled - */ -function createDisabledPseudo( disabled ) { - - // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable - return function( elem ) { - - // Only certain elements can match :enabled or :disabled - // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled - // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled - if ( "form" in elem ) { - - // Check for inherited disabledness on relevant non-disabled elements: - // * listed form-associated elements in a disabled fieldset - // https://html.spec.whatwg.org/multipage/forms.html#category-listed - // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled - // * option elements in a disabled optgroup - // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled - // All such elements have a "form" property. - if ( elem.parentNode && elem.disabled === false ) { - - // Option elements defer to a parent optgroup if present - if ( "label" in elem ) { - if ( "label" in elem.parentNode ) { - return elem.parentNode.disabled === disabled; - } else { - return elem.disabled === disabled; - } - } - - // Support: IE 6 - 11 - // Use the isDisabled shortcut property to check for disabled fieldset ancestors - return elem.isDisabled === disabled || - - // Where there is no isDisabled, check manually - /* jshint -W018 */ - elem.isDisabled !== !disabled && - inDisabledFieldset( elem ) === disabled; - } - - return elem.disabled === disabled; - - // Try to winnow out elements that can't be disabled before trusting the disabled property. - // Some victims get caught in our net (label, legend, menu, track), but it shouldn't - // even exist on them, let alone have a boolean value. - } else if ( "label" in elem ) { - return elem.disabled === disabled; - } - - // Remaining elements are neither :enabled nor :disabled - return false; - }; -} - -/** - * Returns a function to use in pseudos for positionals - * @param {Function} fn - */ -function createPositionalPseudo( fn ) { - return markFunction(function( argument ) { - argument = +argument; - return markFunction(function( seed, matches ) { - var j, - matchIndexes = fn( [], seed.length, argument ), - i = matchIndexes.length; - - // Match elements found at the specified indexes - while ( i-- ) { - if ( seed[ (j = matchIndexes[i]) ] ) { - seed[j] = !(matches[j] = seed[j]); - } - } - }); - }); -} - -/** - * Checks a node for validity as a Sizzle context - * @param {Element|Object=} context - * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value - */ -function testContext( context ) { - return context && typeof context.getElementsByTagName !== "undefined" && context; -} - -// Expose support vars for convenience -support = Sizzle.support = {}; - -/** - * Detects XML nodes - * @param {Element|Object} elem An element or a document - * @returns {Boolean} True iff elem is a non-HTML XML node - */ -isXML = Sizzle.isXML = function( elem ) { - var namespace = elem.namespaceURI, - docElem = (elem.ownerDocument || elem).documentElement; - - // Support: IE <=8 - // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes - // https://bugs.jquery.com/ticket/4833 - return !rhtml.test( namespace || docElem && docElem.nodeName || "HTML" ); -}; - -/** - * Sets document-related variables once based on the current document - * @param {Element|Object} [doc] An element or document object to use to set the document - * @returns {Object} Returns the current document - */ -setDocument = Sizzle.setDocument = function( node ) { - var hasCompare, subWindow, - doc = node ? node.ownerDocument || node : preferredDoc; - - // Return early if doc is invalid or already selected - if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { - return document; - } - - // Update global variables - document = doc; - docElem = document.documentElement; - documentIsHTML = !isXML( document ); - - // Support: IE 9-11, Edge - // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936) - if ( preferredDoc !== document && - (subWindow = document.defaultView) && subWindow.top !== subWindow ) { - - // Support: IE 11, Edge - if ( subWindow.addEventListener ) { - subWindow.addEventListener( "unload", unloadHandler, false ); - - // Support: IE 9 - 10 only - } else if ( subWindow.attachEvent ) { - subWindow.attachEvent( "onunload", unloadHandler ); - } - } - - /* Attributes - ---------------------------------------------------------------------- */ - - // Support: IE<8 - // Verify that getAttribute really returns attributes and not properties - // (excepting IE8 booleans) - support.attributes = assert(function( el ) { - el.className = "i"; - return !el.getAttribute("className"); - }); - - /* getElement(s)By* - ---------------------------------------------------------------------- */ - - // Check if getElementsByTagName("*") returns only elements - support.getElementsByTagName = assert(function( el ) { - el.appendChild( document.createComment("") ); - return !el.getElementsByTagName("*").length; - }); - - // Support: IE<9 - support.getElementsByClassName = rnative.test( document.getElementsByClassName ); - - // Support: IE<10 - // Check if getElementById returns elements by name - // The broken getElementById methods don't pick up programmatically-set names, - // so use a roundabout getElementsByName test - support.getById = assert(function( el ) { - docElem.appendChild( el ).id = expando; - return !document.getElementsByName || !document.getElementsByName( expando ).length; - }); - - // ID filter and find - if ( support.getById ) { - Expr.filter["ID"] = function( id ) { - var attrId = id.replace( runescape, funescape ); - return function( elem ) { - return elem.getAttribute("id") === attrId; - }; - }; - Expr.find["ID"] = function( id, context ) { - if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { - var elem = context.getElementById( id ); - return elem ? [ elem ] : []; - } - }; - } else { - Expr.filter["ID"] = function( id ) { - var attrId = id.replace( runescape, funescape ); - return function( elem ) { - var node = typeof elem.getAttributeNode !== "undefined" && - elem.getAttributeNode("id"); - return node && node.value === attrId; - }; - }; - - // Support: IE 6 - 7 only - // getElementById is not reliable as a find shortcut - Expr.find["ID"] = function( id, context ) { - if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { - var node, i, elems, - elem = context.getElementById( id ); - - if ( elem ) { - - // Verify the id attribute - node = elem.getAttributeNode("id"); - if ( node && node.value === id ) { - return [ elem ]; - } - - // Fall back on getElementsByName - elems = context.getElementsByName( id ); - i = 0; - while ( (elem = elems[i++]) ) { - node = elem.getAttributeNode("id"); - if ( node && node.value === id ) { - return [ elem ]; - } - } - } - - return []; - } - }; - } - - // Tag - Expr.find["TAG"] = support.getElementsByTagName ? - function( tag, context ) { - if ( typeof context.getElementsByTagName !== "undefined" ) { - return context.getElementsByTagName( tag ); - - // DocumentFragment nodes don't have gEBTN - } else if ( support.qsa ) { - return context.querySelectorAll( tag ); - } - } : - - function( tag, context ) { - var elem, - tmp = [], - i = 0, - // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too - results = context.getElementsByTagName( tag ); - - // Filter out possible comments - if ( tag === "*" ) { - while ( (elem = results[i++]) ) { - if ( elem.nodeType === 1 ) { - tmp.push( elem ); - } - } - - return tmp; - } - return results; - }; - - // Class - Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { - if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) { - return context.getElementsByClassName( className ); - } - }; - - /* QSA/matchesSelector - ---------------------------------------------------------------------- */ - - // QSA and matchesSelector support - - // matchesSelector(:active) reports false when true (IE9/Opera 11.5) - rbuggyMatches = []; - - // qSa(:focus) reports false when true (Chrome 21) - // We allow this because of a bug in IE8/9 that throws an error - // whenever `document.activeElement` is accessed on an iframe - // So, we allow :focus to pass through QSA all the time to avoid the IE error - // See https://bugs.jquery.com/ticket/13378 - rbuggyQSA = []; - - if ( (support.qsa = rnative.test( document.querySelectorAll )) ) { - // Build QSA regex - // Regex strategy adopted from Diego Perini - assert(function( el ) { - // Select is set to empty string on purpose - // This is to test IE's treatment of not explicitly - // setting a boolean content attribute, - // since its presence should be enough - // https://bugs.jquery.com/ticket/12359 - docElem.appendChild( el ).innerHTML = "" + - ""; - - // Support: IE8, Opera 11-12.16 - // Nothing should be selected when empty strings follow ^= or $= or *= - // The test attribute must be unknown in Opera but "safe" for WinRT - // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section - if ( el.querySelectorAll("[msallowcapture^='']").length ) { - rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); - } - - // Support: IE8 - // Boolean attributes and "value" are not treated correctly - if ( !el.querySelectorAll("[selected]").length ) { - rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); - } - - // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+ - if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) { - rbuggyQSA.push("~="); - } - - // Webkit/Opera - :checked should return selected option elements - // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked - // IE8 throws error here and will not see later tests - if ( !el.querySelectorAll(":checked").length ) { - rbuggyQSA.push(":checked"); - } - - // Support: Safari 8+, iOS 8+ - // https://bugs.webkit.org/show_bug.cgi?id=136851 - // In-page `selector#id sibling-combinator selector` fails - if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) { - rbuggyQSA.push(".#.+[+~]"); - } - }); - - assert(function( el ) { - el.innerHTML = "" + - ""; - - // Support: Windows 8 Native Apps - // The type and name attributes are restricted during .innerHTML assignment - var input = document.createElement("input"); - input.setAttribute( "type", "hidden" ); - el.appendChild( input ).setAttribute( "name", "D" ); - - // Support: IE8 - // Enforce case-sensitivity of name attribute - if ( el.querySelectorAll("[name=d]").length ) { - rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); - } - - // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) - // IE8 throws error here and will not see later tests - if ( el.querySelectorAll(":enabled").length !== 2 ) { - rbuggyQSA.push( ":enabled", ":disabled" ); - } - - // Support: IE9-11+ - // IE's :disabled selector does not pick up the children of disabled fieldsets - docElem.appendChild( el ).disabled = true; - if ( el.querySelectorAll(":disabled").length !== 2 ) { - rbuggyQSA.push( ":enabled", ":disabled" ); - } - - // Opera 10-11 does not throw on post-comma invalid pseudos - el.querySelectorAll("*,:x"); - rbuggyQSA.push(",.*:"); - }); - } - - if ( (support.matchesSelector = rnative.test( (matches = docElem.matches || - docElem.webkitMatchesSelector || - docElem.mozMatchesSelector || - docElem.oMatchesSelector || - docElem.msMatchesSelector) )) ) { - - assert(function( el ) { - // Check to see if it's possible to do matchesSelector - // on a disconnected node (IE 9) - support.disconnectedMatch = matches.call( el, "*" ); - - // This should fail with an exception - // Gecko does not error, returns false instead - matches.call( el, "[s!='']:x" ); - rbuggyMatches.push( "!=", pseudos ); - }); - } - - rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); - rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); - - /* Contains - ---------------------------------------------------------------------- */ - hasCompare = rnative.test( docElem.compareDocumentPosition ); - - // Element contains another - // Purposefully self-exclusive - // As in, an element does not contain itself - contains = hasCompare || rnative.test( docElem.contains ) ? - function( a, b ) { - var adown = a.nodeType === 9 ? a.documentElement : a, - bup = b && b.parentNode; - return a === bup || !!( bup && bup.nodeType === 1 && ( - adown.contains ? - adown.contains( bup ) : - a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 - )); - } : - function( a, b ) { - if ( b ) { - while ( (b = b.parentNode) ) { - if ( b === a ) { - return true; - } - } - } - return false; - }; - - /* Sorting - ---------------------------------------------------------------------- */ - - // Document order sorting - sortOrder = hasCompare ? - function( a, b ) { - - // Flag for duplicate removal - if ( a === b ) { - hasDuplicate = true; - return 0; - } - - // Sort on method existence if only one input has compareDocumentPosition - var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; - if ( compare ) { - return compare; - } - - // Calculate position if both inputs belong to the same document - compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ? - a.compareDocumentPosition( b ) : - - // Otherwise we know they are disconnected - 1; - - // Disconnected nodes - if ( compare & 1 || - (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) { - - // Choose the first element that is related to our preferred document - if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) { - return -1; - } - if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) { - return 1; - } - - // Maintain original order - return sortInput ? - ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : - 0; - } - - return compare & 4 ? -1 : 1; - } : - function( a, b ) { - // Exit early if the nodes are identical - if ( a === b ) { - hasDuplicate = true; - return 0; - } - - var cur, - i = 0, - aup = a.parentNode, - bup = b.parentNode, - ap = [ a ], - bp = [ b ]; - - // Parentless nodes are either documents or disconnected - if ( !aup || !bup ) { - return a === document ? -1 : - b === document ? 1 : - aup ? -1 : - bup ? 1 : - sortInput ? - ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : - 0; - - // If the nodes are siblings, we can do a quick check - } else if ( aup === bup ) { - return siblingCheck( a, b ); - } - - // Otherwise we need full lists of their ancestors for comparison - cur = a; - while ( (cur = cur.parentNode) ) { - ap.unshift( cur ); - } - cur = b; - while ( (cur = cur.parentNode) ) { - bp.unshift( cur ); - } - - // Walk down the tree looking for a discrepancy - while ( ap[i] === bp[i] ) { - i++; - } - - return i ? - // Do a sibling check if the nodes have a common ancestor - siblingCheck( ap[i], bp[i] ) : - - // Otherwise nodes in our document sort first - ap[i] === preferredDoc ? -1 : - bp[i] === preferredDoc ? 1 : - 0; - }; - - return document; -}; - -Sizzle.matches = function( expr, elements ) { - return Sizzle( expr, null, null, elements ); -}; - -Sizzle.matchesSelector = function( elem, expr ) { - // Set document vars if needed - if ( ( elem.ownerDocument || elem ) !== document ) { - setDocument( elem ); - } - - if ( support.matchesSelector && documentIsHTML && - !nonnativeSelectorCache[ expr + " " ] && - ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && - ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { - - try { - var ret = matches.call( elem, expr ); - - // IE 9's matchesSelector returns false on disconnected nodes - if ( ret || support.disconnectedMatch || - // As well, disconnected nodes are said to be in a document - // fragment in IE 9 - elem.document && elem.document.nodeType !== 11 ) { - return ret; - } - } catch (e) { - nonnativeSelectorCache( expr, true ); - } - } - - return Sizzle( expr, document, null, [ elem ] ).length > 0; -}; - -Sizzle.contains = function( context, elem ) { - // Set document vars if needed - if ( ( context.ownerDocument || context ) !== document ) { - setDocument( context ); - } - return contains( context, elem ); -}; - -Sizzle.attr = function( elem, name ) { - // Set document vars if needed - if ( ( elem.ownerDocument || elem ) !== document ) { - setDocument( elem ); - } - - var fn = Expr.attrHandle[ name.toLowerCase() ], - // Don't get fooled by Object.prototype properties (jQuery #13807) - val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? - fn( elem, name, !documentIsHTML ) : - undefined; - - return val !== undefined ? - val : - support.attributes || !documentIsHTML ? - elem.getAttribute( name ) : - (val = elem.getAttributeNode(name)) && val.specified ? - val.value : - null; -}; - -Sizzle.escape = function( sel ) { - return (sel + "").replace( rcssescape, fcssescape ); -}; - -Sizzle.error = function( msg ) { - throw new Error( "Syntax error, unrecognized expression: " + msg ); -}; - -/** - * Document sorting and removing duplicates - * @param {ArrayLike} results - */ -Sizzle.uniqueSort = function( results ) { - var elem, - duplicates = [], - j = 0, - i = 0; - - // Unless we *know* we can detect duplicates, assume their presence - hasDuplicate = !support.detectDuplicates; - sortInput = !support.sortStable && results.slice( 0 ); - results.sort( sortOrder ); - - if ( hasDuplicate ) { - while ( (elem = results[i++]) ) { - if ( elem === results[ i ] ) { - j = duplicates.push( i ); - } - } - while ( j-- ) { - results.splice( duplicates[ j ], 1 ); - } - } - - // Clear input after sorting to release objects - // See https://github.com/jquery/sizzle/pull/225 - sortInput = null; - - return results; -}; - -/** - * Utility function for retrieving the text value of an array of DOM nodes - * @param {Array|Element} elem - */ -getText = Sizzle.getText = function( elem ) { - var node, - ret = "", - i = 0, - nodeType = elem.nodeType; - - if ( !nodeType ) { - // If no nodeType, this is expected to be an array - while ( (node = elem[i++]) ) { - // Do not traverse comment nodes - ret += getText( node ); - } - } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { - // Use textContent for elements - // innerText usage removed for consistency of new lines (jQuery #11153) - if ( typeof elem.textContent === "string" ) { - return elem.textContent; - } else { - // Traverse its children - for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { - ret += getText( elem ); - } - } - } else if ( nodeType === 3 || nodeType === 4 ) { - return elem.nodeValue; - } - // Do not include comment or processing instruction nodes - - return ret; -}; - -Expr = Sizzle.selectors = { - - // Can be adjusted by the user - cacheLength: 50, - - createPseudo: markFunction, - - match: matchExpr, - - attrHandle: {}, - - find: {}, - - relative: { - ">": { dir: "parentNode", first: true }, - " ": { dir: "parentNode" }, - "+": { dir: "previousSibling", first: true }, - "~": { dir: "previousSibling" } - }, - - preFilter: { - "ATTR": function( match ) { - match[1] = match[1].replace( runescape, funescape ); - - // Move the given value to match[3] whether quoted or unquoted - match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape ); - - if ( match[2] === "~=" ) { - match[3] = " " + match[3] + " "; - } - - return match.slice( 0, 4 ); - }, - - "CHILD": function( match ) { - /* matches from matchExpr["CHILD"] - 1 type (only|nth|...) - 2 what (child|of-type) - 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) - 4 xn-component of xn+y argument ([+-]?\d*n|) - 5 sign of xn-component - 6 x of xn-component - 7 sign of y-component - 8 y of y-component - */ - match[1] = match[1].toLowerCase(); - - if ( match[1].slice( 0, 3 ) === "nth" ) { - // nth-* requires argument - if ( !match[3] ) { - Sizzle.error( match[0] ); - } - - // numeric x and y parameters for Expr.filter.CHILD - // remember that false/true cast respectively to 0/1 - match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); - match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); - - // other types prohibit arguments - } else if ( match[3] ) { - Sizzle.error( match[0] ); - } - - return match; - }, - - "PSEUDO": function( match ) { - var excess, - unquoted = !match[6] && match[2]; - - if ( matchExpr["CHILD"].test( match[0] ) ) { - return null; - } - - // Accept quoted arguments as-is - if ( match[3] ) { - match[2] = match[4] || match[5] || ""; - - // Strip excess characters from unquoted arguments - } else if ( unquoted && rpseudo.test( unquoted ) && - // Get excess from tokenize (recursively) - (excess = tokenize( unquoted, true )) && - // advance to the next closing parenthesis - (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { - - // excess is a negative index - match[0] = match[0].slice( 0, excess ); - match[2] = unquoted.slice( 0, excess ); - } - - // Return only captures needed by the pseudo filter method (type and argument) - return match.slice( 0, 3 ); - } - }, - - filter: { - - "TAG": function( nodeNameSelector ) { - var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); - return nodeNameSelector === "*" ? - function() { return true; } : - function( elem ) { - return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; - }; - }, - - "CLASS": function( className ) { - var pattern = classCache[ className + " " ]; - - return pattern || - (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && - classCache( className, function( elem ) { - return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" ); - }); - }, - - "ATTR": function( name, operator, check ) { - return function( elem ) { - var result = Sizzle.attr( elem, name ); - - if ( result == null ) { - return operator === "!="; - } - if ( !operator ) { - return true; - } - - result += ""; - - return operator === "=" ? result === check : - operator === "!=" ? result !== check : - operator === "^=" ? check && result.indexOf( check ) === 0 : - operator === "*=" ? check && result.indexOf( check ) > -1 : - operator === "$=" ? check && result.slice( -check.length ) === check : - operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : - operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : - false; - }; - }, - - "CHILD": function( type, what, argument, first, last ) { - var simple = type.slice( 0, 3 ) !== "nth", - forward = type.slice( -4 ) !== "last", - ofType = what === "of-type"; - - return first === 1 && last === 0 ? - - // Shortcut for :nth-*(n) - function( elem ) { - return !!elem.parentNode; - } : - - function( elem, context, xml ) { - var cache, uniqueCache, outerCache, node, nodeIndex, start, - dir = simple !== forward ? "nextSibling" : "previousSibling", - parent = elem.parentNode, - name = ofType && elem.nodeName.toLowerCase(), - useCache = !xml && !ofType, - diff = false; - - if ( parent ) { - - // :(first|last|only)-(child|of-type) - if ( simple ) { - while ( dir ) { - node = elem; - while ( (node = node[ dir ]) ) { - if ( ofType ? - node.nodeName.toLowerCase() === name : - node.nodeType === 1 ) { - - return false; - } - } - // Reverse direction for :only-* (if we haven't yet done so) - start = dir = type === "only" && !start && "nextSibling"; - } - return true; - } - - start = [ forward ? parent.firstChild : parent.lastChild ]; - - // non-xml :nth-child(...) stores cache data on `parent` - if ( forward && useCache ) { - - // Seek `elem` from a previously-cached index - - // ...in a gzip-friendly way - node = parent; - outerCache = node[ expando ] || (node[ expando ] = {}); - - // Support: IE <9 only - // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ node.uniqueID ] || - (outerCache[ node.uniqueID ] = {}); - - cache = uniqueCache[ type ] || []; - nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; - diff = nodeIndex && cache[ 2 ]; - node = nodeIndex && parent.childNodes[ nodeIndex ]; - - while ( (node = ++nodeIndex && node && node[ dir ] || - - // Fallback to seeking `elem` from the start - (diff = nodeIndex = 0) || start.pop()) ) { - - // When found, cache indexes on `parent` and break - if ( node.nodeType === 1 && ++diff && node === elem ) { - uniqueCache[ type ] = [ dirruns, nodeIndex, diff ]; - break; - } - } - - } else { - // Use previously-cached element index if available - if ( useCache ) { - // ...in a gzip-friendly way - node = elem; - outerCache = node[ expando ] || (node[ expando ] = {}); - - // Support: IE <9 only - // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ node.uniqueID ] || - (outerCache[ node.uniqueID ] = {}); - - cache = uniqueCache[ type ] || []; - nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; - diff = nodeIndex; - } - - // xml :nth-child(...) - // or :nth-last-child(...) or :nth(-last)?-of-type(...) - if ( diff === false ) { - // Use the same loop as above to seek `elem` from the start - while ( (node = ++nodeIndex && node && node[ dir ] || - (diff = nodeIndex = 0) || start.pop()) ) { - - if ( ( ofType ? - node.nodeName.toLowerCase() === name : - node.nodeType === 1 ) && - ++diff ) { - - // Cache the index of each encountered element - if ( useCache ) { - outerCache = node[ expando ] || (node[ expando ] = {}); - - // Support: IE <9 only - // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ node.uniqueID ] || - (outerCache[ node.uniqueID ] = {}); - - uniqueCache[ type ] = [ dirruns, diff ]; - } - - if ( node === elem ) { - break; - } - } - } - } - } - - // Incorporate the offset, then check against cycle size - diff -= last; - return diff === first || ( diff % first === 0 && diff / first >= 0 ); - } - }; - }, - - "PSEUDO": function( pseudo, argument ) { - // pseudo-class names are case-insensitive - // http://www.w3.org/TR/selectors/#pseudo-classes - // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters - // Remember that setFilters inherits from pseudos - var args, - fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || - Sizzle.error( "unsupported pseudo: " + pseudo ); - - // The user may use createPseudo to indicate that - // arguments are needed to create the filter function - // just as Sizzle does - if ( fn[ expando ] ) { - return fn( argument ); - } - - // But maintain support for old signatures - if ( fn.length > 1 ) { - args = [ pseudo, pseudo, "", argument ]; - return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? - markFunction(function( seed, matches ) { - var idx, - matched = fn( seed, argument ), - i = matched.length; - while ( i-- ) { - idx = indexOf( seed, matched[i] ); - seed[ idx ] = !( matches[ idx ] = matched[i] ); - } - }) : - function( elem ) { - return fn( elem, 0, args ); - }; - } - - return fn; - } - }, - - pseudos: { - // Potentially complex pseudos - "not": markFunction(function( selector ) { - // Trim the selector passed to compile - // to avoid treating leading and trailing - // spaces as combinators - var input = [], - results = [], - matcher = compile( selector.replace( rtrim, "$1" ) ); - - return matcher[ expando ] ? - markFunction(function( seed, matches, context, xml ) { - var elem, - unmatched = matcher( seed, null, xml, [] ), - i = seed.length; - - // Match elements unmatched by `matcher` - while ( i-- ) { - if ( (elem = unmatched[i]) ) { - seed[i] = !(matches[i] = elem); - } - } - }) : - function( elem, context, xml ) { - input[0] = elem; - matcher( input, null, xml, results ); - // Don't keep the element (issue #299) - input[0] = null; - return !results.pop(); - }; - }), - - "has": markFunction(function( selector ) { - return function( elem ) { - return Sizzle( selector, elem ).length > 0; - }; - }), - - "contains": markFunction(function( text ) { - text = text.replace( runescape, funescape ); - return function( elem ) { - return ( elem.textContent || getText( elem ) ).indexOf( text ) > -1; - }; - }), - - // "Whether an element is represented by a :lang() selector - // is based solely on the element's language value - // being equal to the identifier C, - // or beginning with the identifier C immediately followed by "-". - // The matching of C against the element's language value is performed case-insensitively. - // The identifier C does not have to be a valid language name." - // http://www.w3.org/TR/selectors/#lang-pseudo - "lang": markFunction( function( lang ) { - // lang value must be a valid identifier - if ( !ridentifier.test(lang || "") ) { - Sizzle.error( "unsupported lang: " + lang ); - } - lang = lang.replace( runescape, funescape ).toLowerCase(); - return function( elem ) { - var elemLang; - do { - if ( (elemLang = documentIsHTML ? - elem.lang : - elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) { - - elemLang = elemLang.toLowerCase(); - return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; - } - } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); - return false; - }; - }), - - // Miscellaneous - "target": function( elem ) { - var hash = window.location && window.location.hash; - return hash && hash.slice( 1 ) === elem.id; - }, - - "root": function( elem ) { - return elem === docElem; - }, - - "focus": function( elem ) { - return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); - }, - - // Boolean properties - "enabled": createDisabledPseudo( false ), - "disabled": createDisabledPseudo( true ), - - "checked": function( elem ) { - // In CSS3, :checked should return both checked and selected elements - // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked - var nodeName = elem.nodeName.toLowerCase(); - return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); - }, - - "selected": function( elem ) { - // Accessing this property makes selected-by-default - // options in Safari work properly - if ( elem.parentNode ) { - elem.parentNode.selectedIndex; - } - - return elem.selected === true; - }, - - // Contents - "empty": function( elem ) { - // http://www.w3.org/TR/selectors/#empty-pseudo - // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), - // but not by others (comment: 8; processing instruction: 7; etc.) - // nodeType < 6 works because attributes (2) do not appear as children - for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { - if ( elem.nodeType < 6 ) { - return false; - } - } - return true; - }, - - "parent": function( elem ) { - return !Expr.pseudos["empty"]( elem ); - }, - - // Element/input types - "header": function( elem ) { - return rheader.test( elem.nodeName ); - }, - - "input": function( elem ) { - return rinputs.test( elem.nodeName ); - }, - - "button": function( elem ) { - var name = elem.nodeName.toLowerCase(); - return name === "input" && elem.type === "button" || name === "button"; - }, - - "text": function( elem ) { - var attr; - return elem.nodeName.toLowerCase() === "input" && - elem.type === "text" && - - // Support: IE<8 - // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" - ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" ); - }, - - // Position-in-collection - "first": createPositionalPseudo(function() { - return [ 0 ]; - }), - - "last": createPositionalPseudo(function( matchIndexes, length ) { - return [ length - 1 ]; - }), - - "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { - return [ argument < 0 ? argument + length : argument ]; - }), - - "even": createPositionalPseudo(function( matchIndexes, length ) { - var i = 0; - for ( ; i < length; i += 2 ) { - matchIndexes.push( i ); - } - return matchIndexes; - }), - - "odd": createPositionalPseudo(function( matchIndexes, length ) { - var i = 1; - for ( ; i < length; i += 2 ) { - matchIndexes.push( i ); - } - return matchIndexes; - }), - - "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { - var i = argument < 0 ? - argument + length : - argument > length ? - length : - argument; - for ( ; --i >= 0; ) { - matchIndexes.push( i ); - } - return matchIndexes; - }), - - "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { - var i = argument < 0 ? argument + length : argument; - for ( ; ++i < length; ) { - matchIndexes.push( i ); - } - return matchIndexes; - }) - } -}; - -Expr.pseudos["nth"] = Expr.pseudos["eq"]; - -// Add button/input type pseudos -for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { - Expr.pseudos[ i ] = createInputPseudo( i ); -} -for ( i in { submit: true, reset: true } ) { - Expr.pseudos[ i ] = createButtonPseudo( i ); -} - -// Easy API for creating new setFilters -function setFilters() {} -setFilters.prototype = Expr.filters = Expr.pseudos; -Expr.setFilters = new setFilters(); - -tokenize = Sizzle.tokenize = function( selector, parseOnly ) { - var matched, match, tokens, type, - soFar, groups, preFilters, - cached = tokenCache[ selector + " " ]; - - if ( cached ) { - return parseOnly ? 0 : cached.slice( 0 ); - } - - soFar = selector; - groups = []; - preFilters = Expr.preFilter; - - while ( soFar ) { - - // Comma and first run - if ( !matched || (match = rcomma.exec( soFar )) ) { - if ( match ) { - // Don't consume trailing commas as valid - soFar = soFar.slice( match[0].length ) || soFar; - } - groups.push( (tokens = []) ); - } - - matched = false; - - // Combinators - if ( (match = rcombinators.exec( soFar )) ) { - matched = match.shift(); - tokens.push({ - value: matched, - // Cast descendant combinators to space - type: match[0].replace( rtrim, " " ) - }); - soFar = soFar.slice( matched.length ); - } - - // Filters - for ( type in Expr.filter ) { - if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || - (match = preFilters[ type ]( match ))) ) { - matched = match.shift(); - tokens.push({ - value: matched, - type: type, - matches: match - }); - soFar = soFar.slice( matched.length ); - } - } - - if ( !matched ) { - break; - } - } - - // Return the length of the invalid excess - // if we're just parsing - // Otherwise, throw an error or return tokens - return parseOnly ? - soFar.length : - soFar ? - Sizzle.error( selector ) : - // Cache the tokens - tokenCache( selector, groups ).slice( 0 ); -}; - -function toSelector( tokens ) { - var i = 0, - len = tokens.length, - selector = ""; - for ( ; i < len; i++ ) { - selector += tokens[i].value; - } - return selector; -} - -function addCombinator( matcher, combinator, base ) { - var dir = combinator.dir, - skip = combinator.next, - key = skip || dir, - checkNonElements = base && key === "parentNode", - doneName = done++; - - return combinator.first ? - // Check against closest ancestor/preceding element - function( elem, context, xml ) { - while ( (elem = elem[ dir ]) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - return matcher( elem, context, xml ); - } - } - return false; - } : - - // Check against all ancestor/preceding elements - function( elem, context, xml ) { - var oldCache, uniqueCache, outerCache, - newCache = [ dirruns, doneName ]; - - // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching - if ( xml ) { - while ( (elem = elem[ dir ]) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - if ( matcher( elem, context, xml ) ) { - return true; - } - } - } - } else { - while ( (elem = elem[ dir ]) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - outerCache = elem[ expando ] || (elem[ expando ] = {}); - - // Support: IE <9 only - // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {}); - - if ( skip && skip === elem.nodeName.toLowerCase() ) { - elem = elem[ dir ] || elem; - } else if ( (oldCache = uniqueCache[ key ]) && - oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { - - // Assign to newCache so results back-propagate to previous elements - return (newCache[ 2 ] = oldCache[ 2 ]); - } else { - // Reuse newcache so results back-propagate to previous elements - uniqueCache[ key ] = newCache; - - // A match means we're done; a fail means we have to keep checking - if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) { - return true; - } - } - } - } - } - return false; - }; -} - -function elementMatcher( matchers ) { - return matchers.length > 1 ? - function( elem, context, xml ) { - var i = matchers.length; - while ( i-- ) { - if ( !matchers[i]( elem, context, xml ) ) { - return false; - } - } - return true; - } : - matchers[0]; -} - -function multipleContexts( selector, contexts, results ) { - var i = 0, - len = contexts.length; - for ( ; i < len; i++ ) { - Sizzle( selector, contexts[i], results ); - } - return results; -} - -function condense( unmatched, map, filter, context, xml ) { - var elem, - newUnmatched = [], - i = 0, - len = unmatched.length, - mapped = map != null; - - for ( ; i < len; i++ ) { - if ( (elem = unmatched[i]) ) { - if ( !filter || filter( elem, context, xml ) ) { - newUnmatched.push( elem ); - if ( mapped ) { - map.push( i ); - } - } - } - } - - return newUnmatched; -} - -function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { - if ( postFilter && !postFilter[ expando ] ) { - postFilter = setMatcher( postFilter ); - } - if ( postFinder && !postFinder[ expando ] ) { - postFinder = setMatcher( postFinder, postSelector ); - } - return markFunction(function( seed, results, context, xml ) { - var temp, i, elem, - preMap = [], - postMap = [], - preexisting = results.length, - - // Get initial elements from seed or context - elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), - - // Prefilter to get matcher input, preserving a map for seed-results synchronization - matcherIn = preFilter && ( seed || !selector ) ? - condense( elems, preMap, preFilter, context, xml ) : - elems, - - matcherOut = matcher ? - // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, - postFinder || ( seed ? preFilter : preexisting || postFilter ) ? - - // ...intermediate processing is necessary - [] : - - // ...otherwise use results directly - results : - matcherIn; - - // Find primary matches - if ( matcher ) { - matcher( matcherIn, matcherOut, context, xml ); - } - - // Apply postFilter - if ( postFilter ) { - temp = condense( matcherOut, postMap ); - postFilter( temp, [], context, xml ); - - // Un-match failing elements by moving them back to matcherIn - i = temp.length; - while ( i-- ) { - if ( (elem = temp[i]) ) { - matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); - } - } - } - - if ( seed ) { - if ( postFinder || preFilter ) { - if ( postFinder ) { - // Get the final matcherOut by condensing this intermediate into postFinder contexts - temp = []; - i = matcherOut.length; - while ( i-- ) { - if ( (elem = matcherOut[i]) ) { - // Restore matcherIn since elem is not yet a final match - temp.push( (matcherIn[i] = elem) ); - } - } - postFinder( null, (matcherOut = []), temp, xml ); - } - - // Move matched elements from seed to results to keep them synchronized - i = matcherOut.length; - while ( i-- ) { - if ( (elem = matcherOut[i]) && - (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) { - - seed[temp] = !(results[temp] = elem); - } - } - } - - // Add elements to results, through postFinder if defined - } else { - matcherOut = condense( - matcherOut === results ? - matcherOut.splice( preexisting, matcherOut.length ) : - matcherOut - ); - if ( postFinder ) { - postFinder( null, results, matcherOut, xml ); - } else { - push.apply( results, matcherOut ); - } - } - }); -} - -function matcherFromTokens( tokens ) { - var checkContext, matcher, j, - len = tokens.length, - leadingRelative = Expr.relative[ tokens[0].type ], - implicitRelative = leadingRelative || Expr.relative[" "], - i = leadingRelative ? 1 : 0, - - // The foundational matcher ensures that elements are reachable from top-level context(s) - matchContext = addCombinator( function( elem ) { - return elem === checkContext; - }, implicitRelative, true ), - matchAnyContext = addCombinator( function( elem ) { - return indexOf( checkContext, elem ) > -1; - }, implicitRelative, true ), - matchers = [ function( elem, context, xml ) { - var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( - (checkContext = context).nodeType ? - matchContext( elem, context, xml ) : - matchAnyContext( elem, context, xml ) ); - // Avoid hanging onto element (issue #299) - checkContext = null; - return ret; - } ]; - - for ( ; i < len; i++ ) { - if ( (matcher = Expr.relative[ tokens[i].type ]) ) { - matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; - } else { - matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); - - // Return special upon seeing a positional matcher - if ( matcher[ expando ] ) { - // Find the next relative operator (if any) for proper handling - j = ++i; - for ( ; j < len; j++ ) { - if ( Expr.relative[ tokens[j].type ] ) { - break; - } - } - return setMatcher( - i > 1 && elementMatcher( matchers ), - i > 1 && toSelector( - // If the preceding token was a descendant combinator, insert an implicit any-element `*` - tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" }) - ).replace( rtrim, "$1" ), - matcher, - i < j && matcherFromTokens( tokens.slice( i, j ) ), - j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), - j < len && toSelector( tokens ) - ); - } - matchers.push( matcher ); - } - } - - return elementMatcher( matchers ); -} - -function matcherFromGroupMatchers( elementMatchers, setMatchers ) { - var bySet = setMatchers.length > 0, - byElement = elementMatchers.length > 0, - superMatcher = function( seed, context, xml, results, outermost ) { - var elem, j, matcher, - matchedCount = 0, - i = "0", - unmatched = seed && [], - setMatched = [], - contextBackup = outermostContext, - // We must always have either seed elements or outermost context - elems = seed || byElement && Expr.find["TAG"]( "*", outermost ), - // Use integer dirruns iff this is the outermost matcher - dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1), - len = elems.length; - - if ( outermost ) { - outermostContext = context === document || context || outermost; - } - - // Add elements passing elementMatchers directly to results - // Support: IE<9, Safari - // Tolerate NodeList properties (IE: "length"; Safari: ) matching elements by id - for ( ; i !== len && (elem = elems[i]) != null; i++ ) { - if ( byElement && elem ) { - j = 0; - if ( !context && elem.ownerDocument !== document ) { - setDocument( elem ); - xml = !documentIsHTML; - } - while ( (matcher = elementMatchers[j++]) ) { - if ( matcher( elem, context || document, xml) ) { - results.push( elem ); - break; - } - } - if ( outermost ) { - dirruns = dirrunsUnique; - } - } - - // Track unmatched elements for set filters - if ( bySet ) { - // They will have gone through all possible matchers - if ( (elem = !matcher && elem) ) { - matchedCount--; - } - - // Lengthen the array for every element, matched or not - if ( seed ) { - unmatched.push( elem ); - } - } - } - - // `i` is now the count of elements visited above, and adding it to `matchedCount` - // makes the latter nonnegative. - matchedCount += i; - - // Apply set filters to unmatched elements - // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount` - // equals `i`), unless we didn't visit _any_ elements in the above loop because we have - // no element matchers and no seed. - // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that - // case, which will result in a "00" `matchedCount` that differs from `i` but is also - // numerically zero. - if ( bySet && i !== matchedCount ) { - j = 0; - while ( (matcher = setMatchers[j++]) ) { - matcher( unmatched, setMatched, context, xml ); - } - - if ( seed ) { - // Reintegrate element matches to eliminate the need for sorting - if ( matchedCount > 0 ) { - while ( i-- ) { - if ( !(unmatched[i] || setMatched[i]) ) { - setMatched[i] = pop.call( results ); - } - } - } - - // Discard index placeholder values to get only actual matches - setMatched = condense( setMatched ); - } - - // Add matches to results - push.apply( results, setMatched ); - - // Seedless set matches succeeding multiple successful matchers stipulate sorting - if ( outermost && !seed && setMatched.length > 0 && - ( matchedCount + setMatchers.length ) > 1 ) { - - Sizzle.uniqueSort( results ); - } - } - - // Override manipulation of globals by nested matchers - if ( outermost ) { - dirruns = dirrunsUnique; - outermostContext = contextBackup; - } - - return unmatched; - }; - - return bySet ? - markFunction( superMatcher ) : - superMatcher; -} - -compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { - var i, - setMatchers = [], - elementMatchers = [], - cached = compilerCache[ selector + " " ]; - - if ( !cached ) { - // Generate a function of recursive functions that can be used to check each element - if ( !match ) { - match = tokenize( selector ); - } - i = match.length; - while ( i-- ) { - cached = matcherFromTokens( match[i] ); - if ( cached[ expando ] ) { - setMatchers.push( cached ); - } else { - elementMatchers.push( cached ); - } - } - - // Cache the compiled function - cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); - - // Save selector and tokenization - cached.selector = selector; - } - return cached; -}; - -/** - * A low-level selection function that works with Sizzle's compiled - * selector functions - * @param {String|Function} selector A selector or a pre-compiled - * selector function built with Sizzle.compile - * @param {Element} context - * @param {Array} [results] - * @param {Array} [seed] A set of elements to match against - */ -select = Sizzle.select = function( selector, context, results, seed ) { - var i, tokens, token, type, find, - compiled = typeof selector === "function" && selector, - match = !seed && tokenize( (selector = compiled.selector || selector) ); - - results = results || []; - - // Try to minimize operations if there is only one selector in the list and no seed - // (the latter of which guarantees us context) - if ( match.length === 1 ) { - - // Reduce context if the leading compound selector is an ID - tokens = match[0] = match[0].slice( 0 ); - if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && - context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) { - - context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; - if ( !context ) { - return results; - - // Precompiled matchers will still verify ancestry, so step up a level - } else if ( compiled ) { - context = context.parentNode; - } - - selector = selector.slice( tokens.shift().value.length ); - } - - // Fetch a seed set for right-to-left matching - i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; - while ( i-- ) { - token = tokens[i]; - - // Abort if we hit a combinator - if ( Expr.relative[ (type = token.type) ] ) { - break; - } - if ( (find = Expr.find[ type ]) ) { - // Search, expanding context for leading sibling combinators - if ( (seed = find( - token.matches[0].replace( runescape, funescape ), - rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context - )) ) { - - // If seed is empty or no tokens remain, we can return early - tokens.splice( i, 1 ); - selector = seed.length && toSelector( tokens ); - if ( !selector ) { - push.apply( results, seed ); - return results; - } - - break; - } - } - } - } - - // Compile and execute a filtering function if one is not provided - // Provide `match` to avoid retokenization if we modified the selector above - ( compiled || compile( selector, match ) )( - seed, - context, - !documentIsHTML, - results, - !context || rsibling.test( selector ) && testContext( context.parentNode ) || context - ); - return results; -}; - -// One-time assignments - -// Sort stability -support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; - -// Support: Chrome 14-35+ -// Always assume duplicates if they aren't passed to the comparison function -support.detectDuplicates = !!hasDuplicate; - -// Initialize against the default document -setDocument(); - -// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) -// Detached nodes confoundingly follow *each other* -support.sortDetached = assert(function( el ) { - // Should return 1, but returns 4 (following) - return el.compareDocumentPosition( document.createElement("fieldset") ) & 1; -}); - -// Support: IE<8 -// Prevent attribute/property "interpolation" -// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx -if ( !assert(function( el ) { - el.innerHTML = ""; - return el.firstChild.getAttribute("href") === "#" ; -}) ) { - addHandle( "type|href|height|width", function( elem, name, isXML ) { - if ( !isXML ) { - return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); - } - }); -} - -// Support: IE<9 -// Use defaultValue in place of getAttribute("value") -if ( !support.attributes || !assert(function( el ) { - el.innerHTML = ""; - el.firstChild.setAttribute( "value", "" ); - return el.firstChild.getAttribute( "value" ) === ""; -}) ) { - addHandle( "value", function( elem, name, isXML ) { - if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { - return elem.defaultValue; - } - }); -} - -// Support: IE<9 -// Use getAttributeNode to fetch booleans when getAttribute lies -if ( !assert(function( el ) { - return el.getAttribute("disabled") == null; -}) ) { - addHandle( booleans, function( elem, name, isXML ) { - var val; - if ( !isXML ) { - return elem[ name ] === true ? name.toLowerCase() : - (val = elem.getAttributeNode( name )) && val.specified ? - val.value : - null; - } - }); -} - -return Sizzle; - -})( window ); - - - -jQuery.find = Sizzle; -jQuery.expr = Sizzle.selectors; - -// Deprecated -jQuery.expr[ ":" ] = jQuery.expr.pseudos; -jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort; -jQuery.text = Sizzle.getText; -jQuery.isXMLDoc = Sizzle.isXML; -jQuery.contains = Sizzle.contains; -jQuery.escapeSelector = Sizzle.escape; - - - - -var dir = function( elem, dir, until ) { - var matched = [], - truncate = until !== undefined; - - while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) { - if ( elem.nodeType === 1 ) { - if ( truncate && jQuery( elem ).is( until ) ) { - break; - } - matched.push( elem ); - } - } - return matched; -}; - - -var siblings = function( n, elem ) { - var matched = []; - - for ( ; n; n = n.nextSibling ) { - if ( n.nodeType === 1 && n !== elem ) { - matched.push( n ); - } - } - - return matched; -}; - - -var rneedsContext = jQuery.expr.match.needsContext; - - - -function nodeName( elem, name ) { - - return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); - -}; -var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); - - - -// Implement the identical functionality for filter and not -function winnow( elements, qualifier, not ) { - if ( isFunction( qualifier ) ) { - return jQuery.grep( elements, function( elem, i ) { - return !!qualifier.call( elem, i, elem ) !== not; - } ); - } - - // Single element - if ( qualifier.nodeType ) { - return jQuery.grep( elements, function( elem ) { - return ( elem === qualifier ) !== not; - } ); - } - - // Arraylike of elements (jQuery, arguments, Array) - if ( typeof qualifier !== "string" ) { - return jQuery.grep( elements, function( elem ) { - return ( indexOf.call( qualifier, elem ) > -1 ) !== not; - } ); - } - - // Filtered directly for both simple and complex selectors - return jQuery.filter( qualifier, elements, not ); -} - -jQuery.filter = function( expr, elems, not ) { - var elem = elems[ 0 ]; - - if ( not ) { - expr = ":not(" + expr + ")"; - } - - if ( elems.length === 1 && elem.nodeType === 1 ) { - return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : []; - } - - return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { - return elem.nodeType === 1; - } ) ); -}; - -jQuery.fn.extend( { - find: function( selector ) { - var i, ret, - len = this.length, - self = this; - - if ( typeof selector !== "string" ) { - return this.pushStack( jQuery( selector ).filter( function() { - for ( i = 0; i < len; i++ ) { - if ( jQuery.contains( self[ i ], this ) ) { - return true; - } - } - } ) ); - } - - ret = this.pushStack( [] ); - - for ( i = 0; i < len; i++ ) { - jQuery.find( selector, self[ i ], ret ); - } - - return len > 1 ? jQuery.uniqueSort( ret ) : ret; - }, - filter: function( selector ) { - return this.pushStack( winnow( this, selector || [], false ) ); - }, - not: function( selector ) { - return this.pushStack( winnow( this, selector || [], true ) ); - }, - is: function( selector ) { - return !!winnow( - this, - - // If this is a positional/relative selector, check membership in the returned set - // so $("p:first").is("p:last") won't return true for a doc with two "p". - typeof selector === "string" && rneedsContext.test( selector ) ? - jQuery( selector ) : - selector || [], - false - ).length; - } -} ); - - -// Initialize a jQuery object - - -// A central reference to the root jQuery(document) -var rootjQuery, - - // A simple way to check for HTML strings - // Prioritize #id over to avoid XSS via location.hash (#9521) - // Strict HTML recognition (#11290: must start with <) - // Shortcut simple #id case for speed - rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/, - - init = jQuery.fn.init = function( selector, context, root ) { - var match, elem; - - // HANDLE: $(""), $(null), $(undefined), $(false) - if ( !selector ) { - return this; - } - - // Method init() accepts an alternate rootjQuery - // so migrate can support jQuery.sub (gh-2101) - root = root || rootjQuery; - - // Handle HTML strings - if ( typeof selector === "string" ) { - if ( selector[ 0 ] === "<" && - selector[ selector.length - 1 ] === ">" && - selector.length >= 3 ) { - - // Assume that strings that start and end with <> are HTML and skip the regex check - match = [ null, selector, null ]; - - } else { - match = rquickExpr.exec( selector ); - } - - // Match html or make sure no context is specified for #id - if ( match && ( match[ 1 ] || !context ) ) { - - // HANDLE: $(html) -> $(array) - if ( match[ 1 ] ) { - context = context instanceof jQuery ? context[ 0 ] : context; - - // Option to run scripts is true for back-compat - // Intentionally let the error be thrown if parseHTML is not present - jQuery.merge( this, jQuery.parseHTML( - match[ 1 ], - context && context.nodeType ? context.ownerDocument || context : document, - true - ) ); - - // HANDLE: $(html, props) - if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) { - for ( match in context ) { - - // Properties of context are called as methods if possible - if ( isFunction( this[ match ] ) ) { - this[ match ]( context[ match ] ); - - // ...and otherwise set as attributes - } else { - this.attr( match, context[ match ] ); - } - } - } - - return this; - - // HANDLE: $(#id) - } else { - elem = document.getElementById( match[ 2 ] ); - - if ( elem ) { - - // Inject the element directly into the jQuery object - this[ 0 ] = elem; - this.length = 1; - } - return this; - } - - // HANDLE: $(expr, $(...)) - } else if ( !context || context.jquery ) { - return ( context || root ).find( selector ); - - // HANDLE: $(expr, context) - // (which is just equivalent to: $(context).find(expr) - } else { - return this.constructor( context ).find( selector ); - } - - // HANDLE: $(DOMElement) - } else if ( selector.nodeType ) { - this[ 0 ] = selector; - this.length = 1; - return this; - - // HANDLE: $(function) - // Shortcut for document ready - } else if ( isFunction( selector ) ) { - return root.ready !== undefined ? - root.ready( selector ) : - - // Execute immediately if ready is not present - selector( jQuery ); - } - - return jQuery.makeArray( selector, this ); - }; - -// Give the init function the jQuery prototype for later instantiation -init.prototype = jQuery.fn; - -// Initialize central reference -rootjQuery = jQuery( document ); - - -var rparentsprev = /^(?:parents|prev(?:Until|All))/, - - // Methods guaranteed to produce a unique set when starting from a unique set - guaranteedUnique = { - children: true, - contents: true, - next: true, - prev: true - }; - -jQuery.fn.extend( { - has: function( target ) { - var targets = jQuery( target, this ), - l = targets.length; - - return this.filter( function() { - var i = 0; - for ( ; i < l; i++ ) { - if ( jQuery.contains( this, targets[ i ] ) ) { - return true; - } - } - } ); - }, - - closest: function( selectors, context ) { - var cur, - i = 0, - l = this.length, - matched = [], - targets = typeof selectors !== "string" && jQuery( selectors ); - - // Positional selectors never match, since there's no _selection_ context - if ( !rneedsContext.test( selectors ) ) { - for ( ; i < l; i++ ) { - for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) { - - // Always skip document fragments - if ( cur.nodeType < 11 && ( targets ? - targets.index( cur ) > -1 : - - // Don't pass non-elements to Sizzle - cur.nodeType === 1 && - jQuery.find.matchesSelector( cur, selectors ) ) ) { - - matched.push( cur ); - break; - } - } - } - } - - return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched ); - }, - - // Determine the position of an element within the set - index: function( elem ) { - - // No argument, return index in parent - if ( !elem ) { - return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1; - } - - // Index in selector - if ( typeof elem === "string" ) { - return indexOf.call( jQuery( elem ), this[ 0 ] ); - } - - // Locate the position of the desired element - return indexOf.call( this, - - // If it receives a jQuery object, the first element is used - elem.jquery ? elem[ 0 ] : elem - ); - }, - - add: function( selector, context ) { - return this.pushStack( - jQuery.uniqueSort( - jQuery.merge( this.get(), jQuery( selector, context ) ) - ) - ); - }, - - addBack: function( selector ) { - return this.add( selector == null ? - this.prevObject : this.prevObject.filter( selector ) - ); - } -} ); - -function sibling( cur, dir ) { - while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {} - return cur; -} - -jQuery.each( { - parent: function( elem ) { - var parent = elem.parentNode; - return parent && parent.nodeType !== 11 ? parent : null; - }, - parents: function( elem ) { - return dir( elem, "parentNode" ); - }, - parentsUntil: function( elem, i, until ) { - return dir( elem, "parentNode", until ); - }, - next: function( elem ) { - return sibling( elem, "nextSibling" ); - }, - prev: function( elem ) { - return sibling( elem, "previousSibling" ); - }, - nextAll: function( elem ) { - return dir( elem, "nextSibling" ); - }, - prevAll: function( elem ) { - return dir( elem, "previousSibling" ); - }, - nextUntil: function( elem, i, until ) { - return dir( elem, "nextSibling", until ); - }, - prevUntil: function( elem, i, until ) { - return dir( elem, "previousSibling", until ); - }, - siblings: function( elem ) { - return siblings( ( elem.parentNode || {} ).firstChild, elem ); - }, - children: function( elem ) { - return siblings( elem.firstChild ); - }, - contents: function( elem ) { - if ( typeof elem.contentDocument !== "undefined" ) { - return elem.contentDocument; - } - - // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only - // Treat the template element as a regular one in browsers that - // don't support it. - if ( nodeName( elem, "template" ) ) { - elem = elem.content || elem; - } - - return jQuery.merge( [], elem.childNodes ); - } -}, function( name, fn ) { - jQuery.fn[ name ] = function( until, selector ) { - var matched = jQuery.map( this, fn, until ); - - if ( name.slice( -5 ) !== "Until" ) { - selector = until; - } - - if ( selector && typeof selector === "string" ) { - matched = jQuery.filter( selector, matched ); - } - - if ( this.length > 1 ) { - - // Remove duplicates - if ( !guaranteedUnique[ name ] ) { - jQuery.uniqueSort( matched ); - } - - // Reverse order for parents* and prev-derivatives - if ( rparentsprev.test( name ) ) { - matched.reverse(); - } - } - - return this.pushStack( matched ); - }; -} ); -var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g ); - - - -// Convert String-formatted options into Object-formatted ones -function createOptions( options ) { - var object = {}; - jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) { - object[ flag ] = true; - } ); - return object; -} - -/* - * Create a callback list using the following parameters: - * - * options: an optional list of space-separated options that will change how - * the callback list behaves or a more traditional option object - * - * By default a callback list will act like an event callback list and can be - * "fired" multiple times. - * - * Possible options: - * - * once: will ensure the callback list can only be fired once (like a Deferred) - * - * memory: will keep track of previous values and will call any callback added - * after the list has been fired right away with the latest "memorized" - * values (like a Deferred) - * - * unique: will ensure a callback can only be added once (no duplicate in the list) - * - * stopOnFalse: interrupt callings when a callback returns false - * - */ -jQuery.Callbacks = function( options ) { - - // Convert options from String-formatted to Object-formatted if needed - // (we check in cache first) - options = typeof options === "string" ? - createOptions( options ) : - jQuery.extend( {}, options ); - - var // Flag to know if list is currently firing - firing, - - // Last fire value for non-forgettable lists - memory, - - // Flag to know if list was already fired - fired, - - // Flag to prevent firing - locked, - - // Actual callback list - list = [], - - // Queue of execution data for repeatable lists - queue = [], - - // Index of currently firing callback (modified by add/remove as needed) - firingIndex = -1, - - // Fire callbacks - fire = function() { - - // Enforce single-firing - locked = locked || options.once; - - // Execute callbacks for all pending executions, - // respecting firingIndex overrides and runtime changes - fired = firing = true; - for ( ; queue.length; firingIndex = -1 ) { - memory = queue.shift(); - while ( ++firingIndex < list.length ) { - - // Run callback and check for early termination - if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false && - options.stopOnFalse ) { - - // Jump to end and forget the data so .add doesn't re-fire - firingIndex = list.length; - memory = false; - } - } - } - - // Forget the data if we're done with it - if ( !options.memory ) { - memory = false; - } - - firing = false; - - // Clean up if we're done firing for good - if ( locked ) { - - // Keep an empty list if we have data for future add calls - if ( memory ) { - list = []; - - // Otherwise, this object is spent - } else { - list = ""; - } - } - }, - - // Actual Callbacks object - self = { - - // Add a callback or a collection of callbacks to the list - add: function() { - if ( list ) { - - // If we have memory from a past run, we should fire after adding - if ( memory && !firing ) { - firingIndex = list.length - 1; - queue.push( memory ); - } - - ( function add( args ) { - jQuery.each( args, function( _, arg ) { - if ( isFunction( arg ) ) { - if ( !options.unique || !self.has( arg ) ) { - list.push( arg ); - } - } else if ( arg && arg.length && toType( arg ) !== "string" ) { - - // Inspect recursively - add( arg ); - } - } ); - } )( arguments ); - - if ( memory && !firing ) { - fire(); - } - } - return this; - }, - - // Remove a callback from the list - remove: function() { - jQuery.each( arguments, function( _, arg ) { - var index; - while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { - list.splice( index, 1 ); - - // Handle firing indexes - if ( index <= firingIndex ) { - firingIndex--; - } - } - } ); - return this; - }, - - // Check if a given callback is in the list. - // If no argument is given, return whether or not list has callbacks attached. - has: function( fn ) { - return fn ? - jQuery.inArray( fn, list ) > -1 : - list.length > 0; - }, - - // Remove all callbacks from the list - empty: function() { - if ( list ) { - list = []; - } - return this; - }, - - // Disable .fire and .add - // Abort any current/pending executions - // Clear all callbacks and values - disable: function() { - locked = queue = []; - list = memory = ""; - return this; - }, - disabled: function() { - return !list; - }, - - // Disable .fire - // Also disable .add unless we have memory (since it would have no effect) - // Abort any pending executions - lock: function() { - locked = queue = []; - if ( !memory && !firing ) { - list = memory = ""; - } - return this; - }, - locked: function() { - return !!locked; - }, - - // Call all callbacks with the given context and arguments - fireWith: function( context, args ) { - if ( !locked ) { - args = args || []; - args = [ context, args.slice ? args.slice() : args ]; - queue.push( args ); - if ( !firing ) { - fire(); - } - } - return this; - }, - - // Call all the callbacks with the given arguments - fire: function() { - self.fireWith( this, arguments ); - return this; - }, - - // To know if the callbacks have already been called at least once - fired: function() { - return !!fired; - } - }; - - return self; -}; - - -function Identity( v ) { - return v; -} -function Thrower( ex ) { - throw ex; -} - -function adoptValue( value, resolve, reject, noValue ) { - var method; - - try { - - // Check for promise aspect first to privilege synchronous behavior - if ( value && isFunction( ( method = value.promise ) ) ) { - method.call( value ).done( resolve ).fail( reject ); - - // Other thenables - } else if ( value && isFunction( ( method = value.then ) ) ) { - method.call( value, resolve, reject ); - - // Other non-thenables - } else { - - // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer: - // * false: [ value ].slice( 0 ) => resolve( value ) - // * true: [ value ].slice( 1 ) => resolve() - resolve.apply( undefined, [ value ].slice( noValue ) ); - } - - // For Promises/A+, convert exceptions into rejections - // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in - // Deferred#then to conditionally suppress rejection. - } catch ( value ) { - - // Support: Android 4.0 only - // Strict mode functions invoked without .call/.apply get global-object context - reject.apply( undefined, [ value ] ); - } -} - -jQuery.extend( { - - Deferred: function( func ) { - var tuples = [ - - // action, add listener, callbacks, - // ... .then handlers, argument index, [final state] - [ "notify", "progress", jQuery.Callbacks( "memory" ), - jQuery.Callbacks( "memory" ), 2 ], - [ "resolve", "done", jQuery.Callbacks( "once memory" ), - jQuery.Callbacks( "once memory" ), 0, "resolved" ], - [ "reject", "fail", jQuery.Callbacks( "once memory" ), - jQuery.Callbacks( "once memory" ), 1, "rejected" ] - ], - state = "pending", - promise = { - state: function() { - return state; - }, - always: function() { - deferred.done( arguments ).fail( arguments ); - return this; - }, - "catch": function( fn ) { - return promise.then( null, fn ); - }, - - // Keep pipe for back-compat - pipe: function( /* fnDone, fnFail, fnProgress */ ) { - var fns = arguments; - - return jQuery.Deferred( function( newDefer ) { - jQuery.each( tuples, function( i, tuple ) { - - // Map tuples (progress, done, fail) to arguments (done, fail, progress) - var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ]; - - // deferred.progress(function() { bind to newDefer or newDefer.notify }) - // deferred.done(function() { bind to newDefer or newDefer.resolve }) - // deferred.fail(function() { bind to newDefer or newDefer.reject }) - deferred[ tuple[ 1 ] ]( function() { - var returned = fn && fn.apply( this, arguments ); - if ( returned && isFunction( returned.promise ) ) { - returned.promise() - .progress( newDefer.notify ) - .done( newDefer.resolve ) - .fail( newDefer.reject ); - } else { - newDefer[ tuple[ 0 ] + "With" ]( - this, - fn ? [ returned ] : arguments - ); - } - } ); - } ); - fns = null; - } ).promise(); - }, - then: function( onFulfilled, onRejected, onProgress ) { - var maxDepth = 0; - function resolve( depth, deferred, handler, special ) { - return function() { - var that = this, - args = arguments, - mightThrow = function() { - var returned, then; - - // Support: Promises/A+ section 2.3.3.3.3 - // https://promisesaplus.com/#point-59 - // Ignore double-resolution attempts - if ( depth < maxDepth ) { - return; - } - - returned = handler.apply( that, args ); - - // Support: Promises/A+ section 2.3.1 - // https://promisesaplus.com/#point-48 - if ( returned === deferred.promise() ) { - throw new TypeError( "Thenable self-resolution" ); - } - - // Support: Promises/A+ sections 2.3.3.1, 3.5 - // https://promisesaplus.com/#point-54 - // https://promisesaplus.com/#point-75 - // Retrieve `then` only once - then = returned && - - // Support: Promises/A+ section 2.3.4 - // https://promisesaplus.com/#point-64 - // Only check objects and functions for thenability - ( typeof returned === "object" || - typeof returned === "function" ) && - returned.then; - - // Handle a returned thenable - if ( isFunction( then ) ) { - - // Special processors (notify) just wait for resolution - if ( special ) { - then.call( - returned, - resolve( maxDepth, deferred, Identity, special ), - resolve( maxDepth, deferred, Thrower, special ) - ); - - // Normal processors (resolve) also hook into progress - } else { - - // ...and disregard older resolution values - maxDepth++; - - then.call( - returned, - resolve( maxDepth, deferred, Identity, special ), - resolve( maxDepth, deferred, Thrower, special ), - resolve( maxDepth, deferred, Identity, - deferred.notifyWith ) - ); - } - - // Handle all other returned values - } else { - - // Only substitute handlers pass on context - // and multiple values (non-spec behavior) - if ( handler !== Identity ) { - that = undefined; - args = [ returned ]; - } - - // Process the value(s) - // Default process is resolve - ( special || deferred.resolveWith )( that, args ); - } - }, - - // Only normal processors (resolve) catch and reject exceptions - process = special ? - mightThrow : - function() { - try { - mightThrow(); - } catch ( e ) { - - if ( jQuery.Deferred.exceptionHook ) { - jQuery.Deferred.exceptionHook( e, - process.stackTrace ); - } - - // Support: Promises/A+ section 2.3.3.3.4.1 - // https://promisesaplus.com/#point-61 - // Ignore post-resolution exceptions - if ( depth + 1 >= maxDepth ) { - - // Only substitute handlers pass on context - // and multiple values (non-spec behavior) - if ( handler !== Thrower ) { - that = undefined; - args = [ e ]; - } - - deferred.rejectWith( that, args ); - } - } - }; - - // Support: Promises/A+ section 2.3.3.3.1 - // https://promisesaplus.com/#point-57 - // Re-resolve promises immediately to dodge false rejection from - // subsequent errors - if ( depth ) { - process(); - } else { - - // Call an optional hook to record the stack, in case of exception - // since it's otherwise lost when execution goes async - if ( jQuery.Deferred.getStackHook ) { - process.stackTrace = jQuery.Deferred.getStackHook(); - } - window.setTimeout( process ); - } - }; - } - - return jQuery.Deferred( function( newDefer ) { - - // progress_handlers.add( ... ) - tuples[ 0 ][ 3 ].add( - resolve( - 0, - newDefer, - isFunction( onProgress ) ? - onProgress : - Identity, - newDefer.notifyWith - ) - ); - - // fulfilled_handlers.add( ... ) - tuples[ 1 ][ 3 ].add( - resolve( - 0, - newDefer, - isFunction( onFulfilled ) ? - onFulfilled : - Identity - ) - ); - - // rejected_handlers.add( ... ) - tuples[ 2 ][ 3 ].add( - resolve( - 0, - newDefer, - isFunction( onRejected ) ? - onRejected : - Thrower - ) - ); - } ).promise(); - }, - - // Get a promise for this deferred - // If obj is provided, the promise aspect is added to the object - promise: function( obj ) { - return obj != null ? jQuery.extend( obj, promise ) : promise; - } - }, - deferred = {}; - - // Add list-specific methods - jQuery.each( tuples, function( i, tuple ) { - var list = tuple[ 2 ], - stateString = tuple[ 5 ]; - - // promise.progress = list.add - // promise.done = list.add - // promise.fail = list.add - promise[ tuple[ 1 ] ] = list.add; - - // Handle state - if ( stateString ) { - list.add( - function() { - - // state = "resolved" (i.e., fulfilled) - // state = "rejected" - state = stateString; - }, - - // rejected_callbacks.disable - // fulfilled_callbacks.disable - tuples[ 3 - i ][ 2 ].disable, - - // rejected_handlers.disable - // fulfilled_handlers.disable - tuples[ 3 - i ][ 3 ].disable, - - // progress_callbacks.lock - tuples[ 0 ][ 2 ].lock, - - // progress_handlers.lock - tuples[ 0 ][ 3 ].lock - ); - } - - // progress_handlers.fire - // fulfilled_handlers.fire - // rejected_handlers.fire - list.add( tuple[ 3 ].fire ); - - // deferred.notify = function() { deferred.notifyWith(...) } - // deferred.resolve = function() { deferred.resolveWith(...) } - // deferred.reject = function() { deferred.rejectWith(...) } - deferred[ tuple[ 0 ] ] = function() { - deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments ); - return this; - }; - - // deferred.notifyWith = list.fireWith - // deferred.resolveWith = list.fireWith - // deferred.rejectWith = list.fireWith - deferred[ tuple[ 0 ] + "With" ] = list.fireWith; - } ); - - // Make the deferred a promise - promise.promise( deferred ); - - // Call given func if any - if ( func ) { - func.call( deferred, deferred ); - } - - // All done! - return deferred; - }, - - // Deferred helper - when: function( singleValue ) { - var - - // count of uncompleted subordinates - remaining = arguments.length, - - // count of unprocessed arguments - i = remaining, - - // subordinate fulfillment data - resolveContexts = Array( i ), - resolveValues = slice.call( arguments ), - - // the master Deferred - master = jQuery.Deferred(), - - // subordinate callback factory - updateFunc = function( i ) { - return function( value ) { - resolveContexts[ i ] = this; - resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; - if ( !( --remaining ) ) { - master.resolveWith( resolveContexts, resolveValues ); - } - }; - }; - - // Single- and empty arguments are adopted like Promise.resolve - if ( remaining <= 1 ) { - adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject, - !remaining ); - - // Use .then() to unwrap secondary thenables (cf. gh-3000) - if ( master.state() === "pending" || - isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) { - - return master.then(); - } - } - - // Multiple arguments are aggregated like Promise.all array elements - while ( i-- ) { - adoptValue( resolveValues[ i ], updateFunc( i ), master.reject ); - } - - return master.promise(); - } -} ); - - -// These usually indicate a programmer mistake during development, -// warn about them ASAP rather than swallowing them by default. -var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; - -jQuery.Deferred.exceptionHook = function( error, stack ) { - - // Support: IE 8 - 9 only - // Console exists when dev tools are open, which can happen at any time - if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) { - window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack ); - } -}; - - - - -jQuery.readyException = function( error ) { - window.setTimeout( function() { - throw error; - } ); -}; - - - - -// The deferred used on DOM ready -var readyList = jQuery.Deferred(); - -jQuery.fn.ready = function( fn ) { - - readyList - .then( fn ) - - // Wrap jQuery.readyException in a function so that the lookup - // happens at the time of error handling instead of callback - // registration. - .catch( function( error ) { - jQuery.readyException( error ); - } ); - - return this; -}; - -jQuery.extend( { - - // Is the DOM ready to be used? Set to true once it occurs. - isReady: false, - - // A counter to track how many items to wait for before - // the ready event fires. See #6781 - readyWait: 1, - - // Handle when the DOM is ready - ready: function( wait ) { - - // Abort if there are pending holds or we're already ready - if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { - return; - } - - // Remember that the DOM is ready - jQuery.isReady = true; - - // If a normal DOM Ready event fired, decrement, and wait if need be - if ( wait !== true && --jQuery.readyWait > 0 ) { - return; - } - - // If there are functions bound, to execute - readyList.resolveWith( document, [ jQuery ] ); - } -} ); - -jQuery.ready.then = readyList.then; - -// The ready event handler and self cleanup method -function completed() { - document.removeEventListener( "DOMContentLoaded", completed ); - window.removeEventListener( "load", completed ); - jQuery.ready(); -} - -// Catch cases where $(document).ready() is called -// after the browser event has already occurred. -// Support: IE <=9 - 10 only -// Older IE sometimes signals "interactive" too soon -if ( document.readyState === "complete" || - ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) { - - // Handle it asynchronously to allow scripts the opportunity to delay ready - window.setTimeout( jQuery.ready ); - -} else { - - // Use the handy event callback - document.addEventListener( "DOMContentLoaded", completed ); - - // A fallback to window.onload, that will always work - window.addEventListener( "load", completed ); -} - - - - -// Multifunctional method to get and set values of a collection -// The value/s can optionally be executed if it's a function -var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { - var i = 0, - len = elems.length, - bulk = key == null; - - // Sets many values - if ( toType( key ) === "object" ) { - chainable = true; - for ( i in key ) { - access( elems, fn, i, key[ i ], true, emptyGet, raw ); - } - - // Sets one value - } else if ( value !== undefined ) { - chainable = true; - - if ( !isFunction( value ) ) { - raw = true; - } - - if ( bulk ) { - - // Bulk operations run against the entire set - if ( raw ) { - fn.call( elems, value ); - fn = null; - - // ...except when executing function values - } else { - bulk = fn; - fn = function( elem, key, value ) { - return bulk.call( jQuery( elem ), value ); - }; - } - } - - if ( fn ) { - for ( ; i < len; i++ ) { - fn( - elems[ i ], key, raw ? - value : - value.call( elems[ i ], i, fn( elems[ i ], key ) ) - ); - } - } - } - - if ( chainable ) { - return elems; - } - - // Gets - if ( bulk ) { - return fn.call( elems ); - } - - return len ? fn( elems[ 0 ], key ) : emptyGet; -}; - - -// Matches dashed string for camelizing -var rmsPrefix = /^-ms-/, - rdashAlpha = /-([a-z])/g; - -// Used by camelCase as callback to replace() -function fcamelCase( all, letter ) { - return letter.toUpperCase(); -} - -// Convert dashed to camelCase; used by the css and data modules -// Support: IE <=9 - 11, Edge 12 - 15 -// Microsoft forgot to hump their vendor prefix (#9572) -function camelCase( string ) { - return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); -} -var acceptData = function( owner ) { - - // Accepts only: - // - Node - // - Node.ELEMENT_NODE - // - Node.DOCUMENT_NODE - // - Object - // - Any - return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); -}; - - - - -function Data() { - this.expando = jQuery.expando + Data.uid++; -} - -Data.uid = 1; - -Data.prototype = { - - cache: function( owner ) { - - // Check if the owner object already has a cache - var value = owner[ this.expando ]; - - // If not, create one - if ( !value ) { - value = {}; - - // We can accept data for non-element nodes in modern browsers, - // but we should not, see #8335. - // Always return an empty object. - if ( acceptData( owner ) ) { - - // If it is a node unlikely to be stringify-ed or looped over - // use plain assignment - if ( owner.nodeType ) { - owner[ this.expando ] = value; - - // Otherwise secure it in a non-enumerable property - // configurable must be true to allow the property to be - // deleted when data is removed - } else { - Object.defineProperty( owner, this.expando, { - value: value, - configurable: true - } ); - } - } - } - - return value; - }, - set: function( owner, data, value ) { - var prop, - cache = this.cache( owner ); - - // Handle: [ owner, key, value ] args - // Always use camelCase key (gh-2257) - if ( typeof data === "string" ) { - cache[ camelCase( data ) ] = value; - - // Handle: [ owner, { properties } ] args - } else { - - // Copy the properties one-by-one to the cache object - for ( prop in data ) { - cache[ camelCase( prop ) ] = data[ prop ]; - } - } - return cache; - }, - get: function( owner, key ) { - return key === undefined ? - this.cache( owner ) : - - // Always use camelCase key (gh-2257) - owner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ]; - }, - access: function( owner, key, value ) { - - // In cases where either: - // - // 1. No key was specified - // 2. A string key was specified, but no value provided - // - // Take the "read" path and allow the get method to determine - // which value to return, respectively either: - // - // 1. The entire cache object - // 2. The data stored at the key - // - if ( key === undefined || - ( ( key && typeof key === "string" ) && value === undefined ) ) { - - return this.get( owner, key ); - } - - // When the key is not a string, or both a key and value - // are specified, set or extend (existing objects) with either: - // - // 1. An object of properties - // 2. A key and value - // - this.set( owner, key, value ); - - // Since the "set" path can have two possible entry points - // return the expected data based on which path was taken[*] - return value !== undefined ? value : key; - }, - remove: function( owner, key ) { - var i, - cache = owner[ this.expando ]; - - if ( cache === undefined ) { - return; - } - - if ( key !== undefined ) { - - // Support array or space separated string of keys - if ( Array.isArray( key ) ) { - - // If key is an array of keys... - // We always set camelCase keys, so remove that. - key = key.map( camelCase ); - } else { - key = camelCase( key ); - - // If a key with the spaces exists, use it. - // Otherwise, create an array by matching non-whitespace - key = key in cache ? - [ key ] : - ( key.match( rnothtmlwhite ) || [] ); - } - - i = key.length; - - while ( i-- ) { - delete cache[ key[ i ] ]; - } - } - - // Remove the expando if there's no more data - if ( key === undefined || jQuery.isEmptyObject( cache ) ) { - - // Support: Chrome <=35 - 45 - // Webkit & Blink performance suffers when deleting properties - // from DOM nodes, so set to undefined instead - // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted) - if ( owner.nodeType ) { - owner[ this.expando ] = undefined; - } else { - delete owner[ this.expando ]; - } - } - }, - hasData: function( owner ) { - var cache = owner[ this.expando ]; - return cache !== undefined && !jQuery.isEmptyObject( cache ); - } -}; -var dataPriv = new Data(); - -var dataUser = new Data(); - - - -// Implementation Summary -// -// 1. Enforce API surface and semantic compatibility with 1.9.x branch -// 2. Improve the module's maintainability by reducing the storage -// paths to a single mechanism. -// 3. Use the same single mechanism to support "private" and "user" data. -// 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData) -// 5. Avoid exposing implementation details on user objects (eg. expando properties) -// 6. Provide a clear path for implementation upgrade to WeakMap in 2014 - -var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, - rmultiDash = /[A-Z]/g; - -function getData( data ) { - if ( data === "true" ) { - return true; - } - - if ( data === "false" ) { - return false; - } - - if ( data === "null" ) { - return null; - } - - // Only convert to a number if it doesn't change the string - if ( data === +data + "" ) { - return +data; - } - - if ( rbrace.test( data ) ) { - return JSON.parse( data ); - } - - return data; -} - -function dataAttr( elem, key, data ) { - var name; - - // If nothing was found internally, try to fetch any - // data from the HTML5 data-* attribute - if ( data === undefined && elem.nodeType === 1 ) { - name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase(); - data = elem.getAttribute( name ); - - if ( typeof data === "string" ) { - try { - data = getData( data ); - } catch ( e ) {} - - // Make sure we set the data so it isn't changed later - dataUser.set( elem, key, data ); - } else { - data = undefined; - } - } - return data; -} - -jQuery.extend( { - hasData: function( elem ) { - return dataUser.hasData( elem ) || dataPriv.hasData( elem ); - }, - - data: function( elem, name, data ) { - return dataUser.access( elem, name, data ); - }, - - removeData: function( elem, name ) { - dataUser.remove( elem, name ); - }, - - // TODO: Now that all calls to _data and _removeData have been replaced - // with direct calls to dataPriv methods, these can be deprecated. - _data: function( elem, name, data ) { - return dataPriv.access( elem, name, data ); - }, - - _removeData: function( elem, name ) { - dataPriv.remove( elem, name ); - } -} ); - -jQuery.fn.extend( { - data: function( key, value ) { - var i, name, data, - elem = this[ 0 ], - attrs = elem && elem.attributes; - - // Gets all values - if ( key === undefined ) { - if ( this.length ) { - data = dataUser.get( elem ); - - if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) { - i = attrs.length; - while ( i-- ) { - - // Support: IE 11 only - // The attrs elements can be null (#14894) - if ( attrs[ i ] ) { - name = attrs[ i ].name; - if ( name.indexOf( "data-" ) === 0 ) { - name = camelCase( name.slice( 5 ) ); - dataAttr( elem, name, data[ name ] ); - } - } - } - dataPriv.set( elem, "hasDataAttrs", true ); - } - } - - return data; - } - - // Sets multiple values - if ( typeof key === "object" ) { - return this.each( function() { - dataUser.set( this, key ); - } ); - } - - return access( this, function( value ) { - var data; - - // The calling jQuery object (element matches) is not empty - // (and therefore has an element appears at this[ 0 ]) and the - // `value` parameter was not undefined. An empty jQuery object - // will result in `undefined` for elem = this[ 0 ] which will - // throw an exception if an attempt to read a data cache is made. - if ( elem && value === undefined ) { - - // Attempt to get data from the cache - // The key will always be camelCased in Data - data = dataUser.get( elem, key ); - if ( data !== undefined ) { - return data; - } - - // Attempt to "discover" the data in - // HTML5 custom data-* attrs - data = dataAttr( elem, key ); - if ( data !== undefined ) { - return data; - } - - // We tried really hard, but the data doesn't exist. - return; - } - - // Set the data... - this.each( function() { - - // We always store the camelCased key - dataUser.set( this, key, value ); - } ); - }, null, value, arguments.length > 1, null, true ); - }, - - removeData: function( key ) { - return this.each( function() { - dataUser.remove( this, key ); - } ); - } -} ); - - -jQuery.extend( { - queue: function( elem, type, data ) { - var queue; - - if ( elem ) { - type = ( type || "fx" ) + "queue"; - queue = dataPriv.get( elem, type ); - - // Speed up dequeue by getting out quickly if this is just a lookup - if ( data ) { - if ( !queue || Array.isArray( data ) ) { - queue = dataPriv.access( elem, type, jQuery.makeArray( data ) ); - } else { - queue.push( data ); - } - } - return queue || []; - } - }, - - dequeue: function( elem, type ) { - type = type || "fx"; - - var queue = jQuery.queue( elem, type ), - startLength = queue.length, - fn = queue.shift(), - hooks = jQuery._queueHooks( elem, type ), - next = function() { - jQuery.dequeue( elem, type ); - }; - - // If the fx queue is dequeued, always remove the progress sentinel - if ( fn === "inprogress" ) { - fn = queue.shift(); - startLength--; - } - - if ( fn ) { - - // Add a progress sentinel to prevent the fx queue from being - // automatically dequeued - if ( type === "fx" ) { - queue.unshift( "inprogress" ); - } - - // Clear up the last queue stop function - delete hooks.stop; - fn.call( elem, next, hooks ); - } - - if ( !startLength && hooks ) { - hooks.empty.fire(); - } - }, - - // Not public - generate a queueHooks object, or return the current one - _queueHooks: function( elem, type ) { - var key = type + "queueHooks"; - return dataPriv.get( elem, key ) || dataPriv.access( elem, key, { - empty: jQuery.Callbacks( "once memory" ).add( function() { - dataPriv.remove( elem, [ type + "queue", key ] ); - } ) - } ); - } -} ); - -jQuery.fn.extend( { - queue: function( type, data ) { - var setter = 2; - - if ( typeof type !== "string" ) { - data = type; - type = "fx"; - setter--; - } - - if ( arguments.length < setter ) { - return jQuery.queue( this[ 0 ], type ); - } - - return data === undefined ? - this : - this.each( function() { - var queue = jQuery.queue( this, type, data ); - - // Ensure a hooks for this queue - jQuery._queueHooks( this, type ); - - if ( type === "fx" && queue[ 0 ] !== "inprogress" ) { - jQuery.dequeue( this, type ); - } - } ); - }, - dequeue: function( type ) { - return this.each( function() { - jQuery.dequeue( this, type ); - } ); - }, - clearQueue: function( type ) { - return this.queue( type || "fx", [] ); - }, - - // Get a promise resolved when queues of a certain type - // are emptied (fx is the type by default) - promise: function( type, obj ) { - var tmp, - count = 1, - defer = jQuery.Deferred(), - elements = this, - i = this.length, - resolve = function() { - if ( !( --count ) ) { - defer.resolveWith( elements, [ elements ] ); - } - }; - - if ( typeof type !== "string" ) { - obj = type; - type = undefined; - } - type = type || "fx"; - - while ( i-- ) { - tmp = dataPriv.get( elements[ i ], type + "queueHooks" ); - if ( tmp && tmp.empty ) { - count++; - tmp.empty.add( resolve ); - } - } - resolve(); - return defer.promise( obj ); - } -} ); -var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source; - -var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ); - - -var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; - -var documentElement = document.documentElement; - - - - var isAttached = function( elem ) { - return jQuery.contains( elem.ownerDocument, elem ); - }, - composed = { composed: true }; - - // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only - // Check attachment across shadow DOM boundaries when possible (gh-3504) - // Support: iOS 10.0-10.2 only - // Early iOS 10 versions support `attachShadow` but not `getRootNode`, - // leading to errors. We need to check for `getRootNode`. - if ( documentElement.getRootNode ) { - isAttached = function( elem ) { - return jQuery.contains( elem.ownerDocument, elem ) || - elem.getRootNode( composed ) === elem.ownerDocument; - }; - } -var isHiddenWithinTree = function( elem, el ) { - - // isHiddenWithinTree might be called from jQuery#filter function; - // in that case, element will be second argument - elem = el || elem; - - // Inline style trumps all - return elem.style.display === "none" || - elem.style.display === "" && - - // Otherwise, check computed style - // Support: Firefox <=43 - 45 - // Disconnected elements can have computed display: none, so first confirm that elem is - // in the document. - isAttached( elem ) && - - jQuery.css( elem, "display" ) === "none"; - }; - -var swap = function( elem, options, callback, args ) { - var ret, name, - old = {}; - - // Remember the old values, and insert the new ones - for ( name in options ) { - old[ name ] = elem.style[ name ]; - elem.style[ name ] = options[ name ]; - } - - ret = callback.apply( elem, args || [] ); - - // Revert the old values - for ( name in options ) { - elem.style[ name ] = old[ name ]; - } - - return ret; -}; - - - - -function adjustCSS( elem, prop, valueParts, tween ) { - var adjusted, scale, - maxIterations = 20, - currentValue = tween ? - function() { - return tween.cur(); - } : - function() { - return jQuery.css( elem, prop, "" ); - }, - initial = currentValue(), - unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), - - // Starting value computation is required for potential unit mismatches - initialInUnit = elem.nodeType && - ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) && - rcssNum.exec( jQuery.css( elem, prop ) ); - - if ( initialInUnit && initialInUnit[ 3 ] !== unit ) { - - // Support: Firefox <=54 - // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144) - initial = initial / 2; - - // Trust units reported by jQuery.css - unit = unit || initialInUnit[ 3 ]; - - // Iteratively approximate from a nonzero starting point - initialInUnit = +initial || 1; - - while ( maxIterations-- ) { - - // Evaluate and update our best guess (doubling guesses that zero out). - // Finish if the scale equals or crosses 1 (making the old*new product non-positive). - jQuery.style( elem, prop, initialInUnit + unit ); - if ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) { - maxIterations = 0; - } - initialInUnit = initialInUnit / scale; - - } - - initialInUnit = initialInUnit * 2; - jQuery.style( elem, prop, initialInUnit + unit ); - - // Make sure we update the tween properties later on - valueParts = valueParts || []; - } - - if ( valueParts ) { - initialInUnit = +initialInUnit || +initial || 0; - - // Apply relative offset (+=/-=) if specified - adjusted = valueParts[ 1 ] ? - initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] : - +valueParts[ 2 ]; - if ( tween ) { - tween.unit = unit; - tween.start = initialInUnit; - tween.end = adjusted; - } - } - return adjusted; -} - - -var defaultDisplayMap = {}; - -function getDefaultDisplay( elem ) { - var temp, - doc = elem.ownerDocument, - nodeName = elem.nodeName, - display = defaultDisplayMap[ nodeName ]; - - if ( display ) { - return display; - } - - temp = doc.body.appendChild( doc.createElement( nodeName ) ); - display = jQuery.css( temp, "display" ); - - temp.parentNode.removeChild( temp ); - - if ( display === "none" ) { - display = "block"; - } - defaultDisplayMap[ nodeName ] = display; - - return display; -} - -function showHide( elements, show ) { - var display, elem, - values = [], - index = 0, - length = elements.length; - - // Determine new display value for elements that need to change - for ( ; index < length; index++ ) { - elem = elements[ index ]; - if ( !elem.style ) { - continue; - } - - display = elem.style.display; - if ( show ) { - - // Since we force visibility upon cascade-hidden elements, an immediate (and slow) - // check is required in this first loop unless we have a nonempty display value (either - // inline or about-to-be-restored) - if ( display === "none" ) { - values[ index ] = dataPriv.get( elem, "display" ) || null; - if ( !values[ index ] ) { - elem.style.display = ""; - } - } - if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) { - values[ index ] = getDefaultDisplay( elem ); - } - } else { - if ( display !== "none" ) { - values[ index ] = "none"; - - // Remember what we're overwriting - dataPriv.set( elem, "display", display ); - } - } - } - - // Set the display of the elements in a second loop to avoid constant reflow - for ( index = 0; index < length; index++ ) { - if ( values[ index ] != null ) { - elements[ index ].style.display = values[ index ]; - } - } - - return elements; -} - -jQuery.fn.extend( { - show: function() { - return showHide( this, true ); - }, - hide: function() { - return showHide( this ); - }, - toggle: function( state ) { - if ( typeof state === "boolean" ) { - return state ? this.show() : this.hide(); - } - - return this.each( function() { - if ( isHiddenWithinTree( this ) ) { - jQuery( this ).show(); - } else { - jQuery( this ).hide(); - } - } ); - } -} ); -var rcheckableType = ( /^(?:checkbox|radio)$/i ); - -var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]*)/i ); - -var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i ); - - - -// We have to close these tags to support XHTML (#13200) -var wrapMap = { - - // Support: IE <=9 only - option: [ 1, "" ], - - // XHTML parsers do not magically insert elements in the - // same way that tag soup parsers do. So we cannot shorten - // this by omitting or other required elements. - thead: [ 1, "", "
    " ], - col: [ 2, "", "
    " ], - tr: [ 2, "", "
    " ], - td: [ 3, "", "
    " ], - - _default: [ 0, "", "" ] -}; - -// Support: IE <=9 only -wrapMap.optgroup = wrapMap.option; - -wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; -wrapMap.th = wrapMap.td; - - -function getAll( context, tag ) { - - // Support: IE <=9 - 11 only - // Use typeof to avoid zero-argument method invocation on host objects (#15151) - var ret; - - if ( typeof context.getElementsByTagName !== "undefined" ) { - ret = context.getElementsByTagName( tag || "*" ); - - } else if ( typeof context.querySelectorAll !== "undefined" ) { - ret = context.querySelectorAll( tag || "*" ); - - } else { - ret = []; - } - - if ( tag === undefined || tag && nodeName( context, tag ) ) { - return jQuery.merge( [ context ], ret ); - } - - return ret; -} - - -// Mark scripts as having already been evaluated -function setGlobalEval( elems, refElements ) { - var i = 0, - l = elems.length; - - for ( ; i < l; i++ ) { - dataPriv.set( - elems[ i ], - "globalEval", - !refElements || dataPriv.get( refElements[ i ], "globalEval" ) - ); - } -} - - -var rhtml = /<|&#?\w+;/; - -function buildFragment( elems, context, scripts, selection, ignored ) { - var elem, tmp, tag, wrap, attached, j, - fragment = context.createDocumentFragment(), - nodes = [], - i = 0, - l = elems.length; - - for ( ; i < l; i++ ) { - elem = elems[ i ]; - - if ( elem || elem === 0 ) { - - // Add nodes directly - if ( toType( elem ) === "object" ) { - - // Support: Android <=4.0 only, PhantomJS 1 only - // push.apply(_, arraylike) throws on ancient WebKit - jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); - - // Convert non-html into a text node - } else if ( !rhtml.test( elem ) ) { - nodes.push( context.createTextNode( elem ) ); - - // Convert html into DOM nodes - } else { - tmp = tmp || fragment.appendChild( context.createElement( "div" ) ); - - // Deserialize a standard representation - tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); - wrap = wrapMap[ tag ] || wrapMap._default; - tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ]; - - // Descend through wrappers to the right content - j = wrap[ 0 ]; - while ( j-- ) { - tmp = tmp.lastChild; - } - - // Support: Android <=4.0 only, PhantomJS 1 only - // push.apply(_, arraylike) throws on ancient WebKit - jQuery.merge( nodes, tmp.childNodes ); - - // Remember the top-level container - tmp = fragment.firstChild; - - // Ensure the created nodes are orphaned (#12392) - tmp.textContent = ""; - } - } - } - - // Remove wrapper from fragment - fragment.textContent = ""; - - i = 0; - while ( ( elem = nodes[ i++ ] ) ) { - - // Skip elements already in the context collection (trac-4087) - if ( selection && jQuery.inArray( elem, selection ) > -1 ) { - if ( ignored ) { - ignored.push( elem ); - } - continue; - } - - attached = isAttached( elem ); - - // Append to fragment - tmp = getAll( fragment.appendChild( elem ), "script" ); - - // Preserve script evaluation history - if ( attached ) { - setGlobalEval( tmp ); - } - - // Capture executables - if ( scripts ) { - j = 0; - while ( ( elem = tmp[ j++ ] ) ) { - if ( rscriptType.test( elem.type || "" ) ) { - scripts.push( elem ); - } - } - } - } - - return fragment; -} - - -( function() { - var fragment = document.createDocumentFragment(), - div = fragment.appendChild( document.createElement( "div" ) ), - input = document.createElement( "input" ); - - // Support: Android 4.0 - 4.3 only - // Check state lost if the name is set (#11217) - // Support: Windows Web Apps (WWA) - // `name` and `type` must use .setAttribute for WWA (#14901) - input.setAttribute( "type", "radio" ); - input.setAttribute( "checked", "checked" ); - input.setAttribute( "name", "t" ); - - div.appendChild( input ); - - // Support: Android <=4.1 only - // Older WebKit doesn't clone checked state correctly in fragments - support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; - - // Support: IE <=11 only - // Make sure textarea (and checkbox) defaultValue is properly cloned - div.innerHTML = ""; - support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; -} )(); - - -var - rkeyEvent = /^key/, - rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, - rtypenamespace = /^([^.]*)(?:\.(.+)|)/; - -function returnTrue() { - return true; -} - -function returnFalse() { - return false; -} - -// Support: IE <=9 - 11+ -// focus() and blur() are asynchronous, except when they are no-op. -// So expect focus to be synchronous when the element is already active, -// and blur to be synchronous when the element is not already active. -// (focus and blur are always synchronous in other supported browsers, -// this just defines when we can count on it). -function expectSync( elem, type ) { - return ( elem === safeActiveElement() ) === ( type === "focus" ); -} - -// Support: IE <=9 only -// Accessing document.activeElement can throw unexpectedly -// https://bugs.jquery.com/ticket/13393 -function safeActiveElement() { - try { - return document.activeElement; - } catch ( err ) { } -} - -function on( elem, types, selector, data, fn, one ) { - var origFn, type; - - // Types can be a map of types/handlers - if ( typeof types === "object" ) { - - // ( types-Object, selector, data ) - if ( typeof selector !== "string" ) { - - // ( types-Object, data ) - data = data || selector; - selector = undefined; - } - for ( type in types ) { - on( elem, type, selector, data, types[ type ], one ); - } - return elem; - } - - if ( data == null && fn == null ) { - - // ( types, fn ) - fn = selector; - data = selector = undefined; - } else if ( fn == null ) { - if ( typeof selector === "string" ) { - - // ( types, selector, fn ) - fn = data; - data = undefined; - } else { - - // ( types, data, fn ) - fn = data; - data = selector; - selector = undefined; - } - } - if ( fn === false ) { - fn = returnFalse; - } else if ( !fn ) { - return elem; - } - - if ( one === 1 ) { - origFn = fn; - fn = function( event ) { - - // Can use an empty set, since event contains the info - jQuery().off( event ); - return origFn.apply( this, arguments ); - }; - - // Use same guid so caller can remove using origFn - fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); - } - return elem.each( function() { - jQuery.event.add( this, types, fn, data, selector ); - } ); -} - -/* - * Helper functions for managing events -- not part of the public interface. - * Props to Dean Edwards' addEvent library for many of the ideas. - */ -jQuery.event = { - - global: {}, - - add: function( elem, types, handler, data, selector ) { - - var handleObjIn, eventHandle, tmp, - events, t, handleObj, - special, handlers, type, namespaces, origType, - elemData = dataPriv.get( elem ); - - // Don't attach events to noData or text/comment nodes (but allow plain objects) - if ( !elemData ) { - return; - } - - // Caller can pass in an object of custom data in lieu of the handler - if ( handler.handler ) { - handleObjIn = handler; - handler = handleObjIn.handler; - selector = handleObjIn.selector; - } - - // Ensure that invalid selectors throw exceptions at attach time - // Evaluate against documentElement in case elem is a non-element node (e.g., document) - if ( selector ) { - jQuery.find.matchesSelector( documentElement, selector ); - } - - // Make sure that the handler has a unique ID, used to find/remove it later - if ( !handler.guid ) { - handler.guid = jQuery.guid++; - } - - // Init the element's event structure and main handler, if this is the first - if ( !( events = elemData.events ) ) { - events = elemData.events = {}; - } - if ( !( eventHandle = elemData.handle ) ) { - eventHandle = elemData.handle = function( e ) { - - // Discard the second event of a jQuery.event.trigger() and - // when an event is called after a page has unloaded - return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ? - jQuery.event.dispatch.apply( elem, arguments ) : undefined; - }; - } - - // Handle multiple events separated by a space - types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; - t = types.length; - while ( t-- ) { - tmp = rtypenamespace.exec( types[ t ] ) || []; - type = origType = tmp[ 1 ]; - namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); - - // There *must* be a type, no attaching namespace-only handlers - if ( !type ) { - continue; - } - - // If event changes its type, use the special event handlers for the changed type - special = jQuery.event.special[ type ] || {}; - - // If selector defined, determine special event api type, otherwise given type - type = ( selector ? special.delegateType : special.bindType ) || type; - - // Update special based on newly reset type - special = jQuery.event.special[ type ] || {}; - - // handleObj is passed to all event handlers - handleObj = jQuery.extend( { - type: type, - origType: origType, - data: data, - handler: handler, - guid: handler.guid, - selector: selector, - needsContext: selector && jQuery.expr.match.needsContext.test( selector ), - namespace: namespaces.join( "." ) - }, handleObjIn ); - - // Init the event handler queue if we're the first - if ( !( handlers = events[ type ] ) ) { - handlers = events[ type ] = []; - handlers.delegateCount = 0; - - // Only use addEventListener if the special events handler returns false - if ( !special.setup || - special.setup.call( elem, data, namespaces, eventHandle ) === false ) { - - if ( elem.addEventListener ) { - elem.addEventListener( type, eventHandle ); - } - } - } - - if ( special.add ) { - special.add.call( elem, handleObj ); - - if ( !handleObj.handler.guid ) { - handleObj.handler.guid = handler.guid; - } - } - - // Add to the element's handler list, delegates in front - if ( selector ) { - handlers.splice( handlers.delegateCount++, 0, handleObj ); - } else { - handlers.push( handleObj ); - } - - // Keep track of which events have ever been used, for event optimization - jQuery.event.global[ type ] = true; - } - - }, - - // Detach an event or set of events from an element - remove: function( elem, types, handler, selector, mappedTypes ) { - - var j, origCount, tmp, - events, t, handleObj, - special, handlers, type, namespaces, origType, - elemData = dataPriv.hasData( elem ) && dataPriv.get( elem ); - - if ( !elemData || !( events = elemData.events ) ) { - return; - } - - // Once for each type.namespace in types; type may be omitted - types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; - t = types.length; - while ( t-- ) { - tmp = rtypenamespace.exec( types[ t ] ) || []; - type = origType = tmp[ 1 ]; - namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); - - // Unbind all events (on this namespace, if provided) for the element - if ( !type ) { - for ( type in events ) { - jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); - } - continue; - } - - special = jQuery.event.special[ type ] || {}; - type = ( selector ? special.delegateType : special.bindType ) || type; - handlers = events[ type ] || []; - tmp = tmp[ 2 ] && - new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ); - - // Remove matching events - origCount = j = handlers.length; - while ( j-- ) { - handleObj = handlers[ j ]; - - if ( ( mappedTypes || origType === handleObj.origType ) && - ( !handler || handler.guid === handleObj.guid ) && - ( !tmp || tmp.test( handleObj.namespace ) ) && - ( !selector || selector === handleObj.selector || - selector === "**" && handleObj.selector ) ) { - handlers.splice( j, 1 ); - - if ( handleObj.selector ) { - handlers.delegateCount--; - } - if ( special.remove ) { - special.remove.call( elem, handleObj ); - } - } - } - - // Remove generic event handler if we removed something and no more handlers exist - // (avoids potential for endless recursion during removal of special event handlers) - if ( origCount && !handlers.length ) { - if ( !special.teardown || - special.teardown.call( elem, namespaces, elemData.handle ) === false ) { - - jQuery.removeEvent( elem, type, elemData.handle ); - } - - delete events[ type ]; - } - } - - // Remove data and the expando if it's no longer used - if ( jQuery.isEmptyObject( events ) ) { - dataPriv.remove( elem, "handle events" ); - } - }, - - dispatch: function( nativeEvent ) { - - // Make a writable jQuery.Event from the native event object - var event = jQuery.event.fix( nativeEvent ); - - var i, j, ret, matched, handleObj, handlerQueue, - args = new Array( arguments.length ), - handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [], - special = jQuery.event.special[ event.type ] || {}; - - // Use the fix-ed jQuery.Event rather than the (read-only) native event - args[ 0 ] = event; - - for ( i = 1; i < arguments.length; i++ ) { - args[ i ] = arguments[ i ]; - } - - event.delegateTarget = this; - - // Call the preDispatch hook for the mapped type, and let it bail if desired - if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { - return; - } - - // Determine handlers - handlerQueue = jQuery.event.handlers.call( this, event, handlers ); - - // Run delegates first; they may want to stop propagation beneath us - i = 0; - while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) { - event.currentTarget = matched.elem; - - j = 0; - while ( ( handleObj = matched.handlers[ j++ ] ) && - !event.isImmediatePropagationStopped() ) { - - // If the event is namespaced, then each handler is only invoked if it is - // specially universal or its namespaces are a superset of the event's. - if ( !event.rnamespace || handleObj.namespace === false || - event.rnamespace.test( handleObj.namespace ) ) { - - event.handleObj = handleObj; - event.data = handleObj.data; - - ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle || - handleObj.handler ).apply( matched.elem, args ); - - if ( ret !== undefined ) { - if ( ( event.result = ret ) === false ) { - event.preventDefault(); - event.stopPropagation(); - } - } - } - } - } - - // Call the postDispatch hook for the mapped type - if ( special.postDispatch ) { - special.postDispatch.call( this, event ); - } - - return event.result; - }, - - handlers: function( event, handlers ) { - var i, handleObj, sel, matchedHandlers, matchedSelectors, - handlerQueue = [], - delegateCount = handlers.delegateCount, - cur = event.target; - - // Find delegate handlers - if ( delegateCount && - - // Support: IE <=9 - // Black-hole SVG instance trees (trac-13180) - cur.nodeType && - - // Support: Firefox <=42 - // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861) - // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click - // Support: IE 11 only - // ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343) - !( event.type === "click" && event.button >= 1 ) ) { - - for ( ; cur !== this; cur = cur.parentNode || this ) { - - // Don't check non-elements (#13208) - // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) - if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) { - matchedHandlers = []; - matchedSelectors = {}; - for ( i = 0; i < delegateCount; i++ ) { - handleObj = handlers[ i ]; - - // Don't conflict with Object.prototype properties (#13203) - sel = handleObj.selector + " "; - - if ( matchedSelectors[ sel ] === undefined ) { - matchedSelectors[ sel ] = handleObj.needsContext ? - jQuery( sel, this ).index( cur ) > -1 : - jQuery.find( sel, this, null, [ cur ] ).length; - } - if ( matchedSelectors[ sel ] ) { - matchedHandlers.push( handleObj ); - } - } - if ( matchedHandlers.length ) { - handlerQueue.push( { elem: cur, handlers: matchedHandlers } ); - } - } - } - } - - // Add the remaining (directly-bound) handlers - cur = this; - if ( delegateCount < handlers.length ) { - handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } ); - } - - return handlerQueue; - }, - - addProp: function( name, hook ) { - Object.defineProperty( jQuery.Event.prototype, name, { - enumerable: true, - configurable: true, - - get: isFunction( hook ) ? - function() { - if ( this.originalEvent ) { - return hook( this.originalEvent ); - } - } : - function() { - if ( this.originalEvent ) { - return this.originalEvent[ name ]; - } - }, - - set: function( value ) { - Object.defineProperty( this, name, { - enumerable: true, - configurable: true, - writable: true, - value: value - } ); - } - } ); - }, - - fix: function( originalEvent ) { - return originalEvent[ jQuery.expando ] ? - originalEvent : - new jQuery.Event( originalEvent ); - }, - - special: { - load: { - - // Prevent triggered image.load events from bubbling to window.load - noBubble: true - }, - click: { - - // Utilize native event to ensure correct state for checkable inputs - setup: function( data ) { - - // For mutual compressibility with _default, replace `this` access with a local var. - // `|| data` is dead code meant only to preserve the variable through minification. - var el = this || data; - - // Claim the first handler - if ( rcheckableType.test( el.type ) && - el.click && nodeName( el, "input" ) ) { - - // dataPriv.set( el, "click", ... ) - leverageNative( el, "click", returnTrue ); - } - - // Return false to allow normal processing in the caller - return false; - }, - trigger: function( data ) { - - // For mutual compressibility with _default, replace `this` access with a local var. - // `|| data` is dead code meant only to preserve the variable through minification. - var el = this || data; - - // Force setup before triggering a click - if ( rcheckableType.test( el.type ) && - el.click && nodeName( el, "input" ) ) { - - leverageNative( el, "click" ); - } - - // Return non-false to allow normal event-path propagation - return true; - }, - - // For cross-browser consistency, suppress native .click() on links - // Also prevent it if we're currently inside a leveraged native-event stack - _default: function( event ) { - var target = event.target; - return rcheckableType.test( target.type ) && - target.click && nodeName( target, "input" ) && - dataPriv.get( target, "click" ) || - nodeName( target, "a" ); - } - }, - - beforeunload: { - postDispatch: function( event ) { - - // Support: Firefox 20+ - // Firefox doesn't alert if the returnValue field is not set. - if ( event.result !== undefined && event.originalEvent ) { - event.originalEvent.returnValue = event.result; - } - } - } - } -}; - -// Ensure the presence of an event listener that handles manually-triggered -// synthetic events by interrupting progress until reinvoked in response to -// *native* events that it fires directly, ensuring that state changes have -// already occurred before other listeners are invoked. -function leverageNative( el, type, expectSync ) { - - // Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add - if ( !expectSync ) { - if ( dataPriv.get( el, type ) === undefined ) { - jQuery.event.add( el, type, returnTrue ); - } - return; - } - - // Register the controller as a special universal handler for all event namespaces - dataPriv.set( el, type, false ); - jQuery.event.add( el, type, { - namespace: false, - handler: function( event ) { - var notAsync, result, - saved = dataPriv.get( this, type ); - - if ( ( event.isTrigger & 1 ) && this[ type ] ) { - - // Interrupt processing of the outer synthetic .trigger()ed event - // Saved data should be false in such cases, but might be a leftover capture object - // from an async native handler (gh-4350) - if ( !saved.length ) { - - // Store arguments for use when handling the inner native event - // There will always be at least one argument (an event object), so this array - // will not be confused with a leftover capture object. - saved = slice.call( arguments ); - dataPriv.set( this, type, saved ); - - // Trigger the native event and capture its result - // Support: IE <=9 - 11+ - // focus() and blur() are asynchronous - notAsync = expectSync( this, type ); - this[ type ](); - result = dataPriv.get( this, type ); - if ( saved !== result || notAsync ) { - dataPriv.set( this, type, false ); - } else { - result = {}; - } - if ( saved !== result ) { - - // Cancel the outer synthetic event - event.stopImmediatePropagation(); - event.preventDefault(); - return result.value; - } - - // If this is an inner synthetic event for an event with a bubbling surrogate - // (focus or blur), assume that the surrogate already propagated from triggering the - // native event and prevent that from happening again here. - // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the - // bubbling surrogate propagates *after* the non-bubbling base), but that seems - // less bad than duplication. - } else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) { - event.stopPropagation(); - } - - // If this is a native event triggered above, everything is now in order - // Fire an inner synthetic event with the original arguments - } else if ( saved.length ) { - - // ...and capture the result - dataPriv.set( this, type, { - value: jQuery.event.trigger( - - // Support: IE <=9 - 11+ - // Extend with the prototype to reset the above stopImmediatePropagation() - jQuery.extend( saved[ 0 ], jQuery.Event.prototype ), - saved.slice( 1 ), - this - ) - } ); - - // Abort handling of the native event - event.stopImmediatePropagation(); - } - } - } ); -} - -jQuery.removeEvent = function( elem, type, handle ) { - - // This "if" is needed for plain objects - if ( elem.removeEventListener ) { - elem.removeEventListener( type, handle ); - } -}; - -jQuery.Event = function( src, props ) { - - // Allow instantiation without the 'new' keyword - if ( !( this instanceof jQuery.Event ) ) { - return new jQuery.Event( src, props ); - } - - // Event object - if ( src && src.type ) { - this.originalEvent = src; - this.type = src.type; - - // Events bubbling up the document may have been marked as prevented - // by a handler lower down the tree; reflect the correct value. - this.isDefaultPrevented = src.defaultPrevented || - src.defaultPrevented === undefined && - - // Support: Android <=2.3 only - src.returnValue === false ? - returnTrue : - returnFalse; - - // Create target properties - // Support: Safari <=6 - 7 only - // Target should not be a text node (#504, #13143) - this.target = ( src.target && src.target.nodeType === 3 ) ? - src.target.parentNode : - src.target; - - this.currentTarget = src.currentTarget; - this.relatedTarget = src.relatedTarget; - - // Event type - } else { - this.type = src; - } - - // Put explicitly provided properties onto the event object - if ( props ) { - jQuery.extend( this, props ); - } - - // Create a timestamp if incoming event doesn't have one - this.timeStamp = src && src.timeStamp || Date.now(); - - // Mark it as fixed - this[ jQuery.expando ] = true; -}; - -// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding -// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html -jQuery.Event.prototype = { - constructor: jQuery.Event, - isDefaultPrevented: returnFalse, - isPropagationStopped: returnFalse, - isImmediatePropagationStopped: returnFalse, - isSimulated: false, - - preventDefault: function() { - var e = this.originalEvent; - - this.isDefaultPrevented = returnTrue; - - if ( e && !this.isSimulated ) { - e.preventDefault(); - } - }, - stopPropagation: function() { - var e = this.originalEvent; - - this.isPropagationStopped = returnTrue; - - if ( e && !this.isSimulated ) { - e.stopPropagation(); - } - }, - stopImmediatePropagation: function() { - var e = this.originalEvent; - - this.isImmediatePropagationStopped = returnTrue; - - if ( e && !this.isSimulated ) { - e.stopImmediatePropagation(); - } - - this.stopPropagation(); - } -}; - -// Includes all common event props including KeyEvent and MouseEvent specific props -jQuery.each( { - altKey: true, - bubbles: true, - cancelable: true, - changedTouches: true, - ctrlKey: true, - detail: true, - eventPhase: true, - metaKey: true, - pageX: true, - pageY: true, - shiftKey: true, - view: true, - "char": true, - code: true, - charCode: true, - key: true, - keyCode: true, - button: true, - buttons: true, - clientX: true, - clientY: true, - offsetX: true, - offsetY: true, - pointerId: true, - pointerType: true, - screenX: true, - screenY: true, - targetTouches: true, - toElement: true, - touches: true, - - which: function( event ) { - var button = event.button; - - // Add which for key events - if ( event.which == null && rkeyEvent.test( event.type ) ) { - return event.charCode != null ? event.charCode : event.keyCode; - } - - // Add which for click: 1 === left; 2 === middle; 3 === right - if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) { - if ( button & 1 ) { - return 1; - } - - if ( button & 2 ) { - return 3; - } - - if ( button & 4 ) { - return 2; - } - - return 0; - } - - return event.which; - } -}, jQuery.event.addProp ); - -jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) { - jQuery.event.special[ type ] = { - - // Utilize native event if possible so blur/focus sequence is correct - setup: function() { - - // Claim the first handler - // dataPriv.set( this, "focus", ... ) - // dataPriv.set( this, "blur", ... ) - leverageNative( this, type, expectSync ); - - // Return false to allow normal processing in the caller - return false; - }, - trigger: function() { - - // Force setup before trigger - leverageNative( this, type ); - - // Return non-false to allow normal event-path propagation - return true; - }, - - delegateType: delegateType - }; -} ); - -// Create mouseenter/leave events using mouseover/out and event-time checks -// so that event delegation works in jQuery. -// Do the same for pointerenter/pointerleave and pointerover/pointerout -// -// Support: Safari 7 only -// Safari sends mouseenter too often; see: -// https://bugs.chromium.org/p/chromium/issues/detail?id=470258 -// for the description of the bug (it existed in older Chrome versions as well). -jQuery.each( { - mouseenter: "mouseover", - mouseleave: "mouseout", - pointerenter: "pointerover", - pointerleave: "pointerout" -}, function( orig, fix ) { - jQuery.event.special[ orig ] = { - delegateType: fix, - bindType: fix, - - handle: function( event ) { - var ret, - target = this, - related = event.relatedTarget, - handleObj = event.handleObj; - - // For mouseenter/leave call the handler if related is outside the target. - // NB: No relatedTarget if the mouse left/entered the browser window - if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) { - event.type = handleObj.origType; - ret = handleObj.handler.apply( this, arguments ); - event.type = fix; - } - return ret; - } - }; -} ); - -jQuery.fn.extend( { - - on: function( types, selector, data, fn ) { - return on( this, types, selector, data, fn ); - }, - one: function( types, selector, data, fn ) { - return on( this, types, selector, data, fn, 1 ); - }, - off: function( types, selector, fn ) { - var handleObj, type; - if ( types && types.preventDefault && types.handleObj ) { - - // ( event ) dispatched jQuery.Event - handleObj = types.handleObj; - jQuery( types.delegateTarget ).off( - handleObj.namespace ? - handleObj.origType + "." + handleObj.namespace : - handleObj.origType, - handleObj.selector, - handleObj.handler - ); - return this; - } - if ( typeof types === "object" ) { - - // ( types-object [, selector] ) - for ( type in types ) { - this.off( type, selector, types[ type ] ); - } - return this; - } - if ( selector === false || typeof selector === "function" ) { - - // ( types [, fn] ) - fn = selector; - selector = undefined; - } - if ( fn === false ) { - fn = returnFalse; - } - return this.each( function() { - jQuery.event.remove( this, types, fn, selector ); - } ); - } -} ); - - -var - - /* eslint-disable max-len */ - - // See https://github.com/eslint/eslint/issues/3229 - rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi, - - /* eslint-enable */ - - // Support: IE <=10 - 11, Edge 12 - 13 only - // In IE/Edge using regex groups here causes severe slowdowns. - // See https://connect.microsoft.com/IE/feedback/details/1736512/ - rnoInnerhtml = /\s*$/g; - -// Prefer a tbody over its parent table for containing new rows -function manipulationTarget( elem, content ) { - if ( nodeName( elem, "table" ) && - nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) { - - return jQuery( elem ).children( "tbody" )[ 0 ] || elem; - } - - return elem; -} - -// Replace/restore the type attribute of script elements for safe DOM manipulation -function disableScript( elem ) { - elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type; - return elem; -} -function restoreScript( elem ) { - if ( ( elem.type || "" ).slice( 0, 5 ) === "true/" ) { - elem.type = elem.type.slice( 5 ); - } else { - elem.removeAttribute( "type" ); - } - - return elem; -} - -function cloneCopyEvent( src, dest ) { - var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events; - - if ( dest.nodeType !== 1 ) { - return; - } - - // 1. Copy private data: events, handlers, etc. - if ( dataPriv.hasData( src ) ) { - pdataOld = dataPriv.access( src ); - pdataCur = dataPriv.set( dest, pdataOld ); - events = pdataOld.events; - - if ( events ) { - delete pdataCur.handle; - pdataCur.events = {}; - - for ( type in events ) { - for ( i = 0, l = events[ type ].length; i < l; i++ ) { - jQuery.event.add( dest, type, events[ type ][ i ] ); - } - } - } - } - - // 2. Copy user data - if ( dataUser.hasData( src ) ) { - udataOld = dataUser.access( src ); - udataCur = jQuery.extend( {}, udataOld ); - - dataUser.set( dest, udataCur ); - } -} - -// Fix IE bugs, see support tests -function fixInput( src, dest ) { - var nodeName = dest.nodeName.toLowerCase(); - - // Fails to persist the checked state of a cloned checkbox or radio button. - if ( nodeName === "input" && rcheckableType.test( src.type ) ) { - dest.checked = src.checked; - - // Fails to return the selected option to the default selected state when cloning options - } else if ( nodeName === "input" || nodeName === "textarea" ) { - dest.defaultValue = src.defaultValue; - } -} - -function domManip( collection, args, callback, ignored ) { - - // Flatten any nested arrays - args = concat.apply( [], args ); - - var fragment, first, scripts, hasScripts, node, doc, - i = 0, - l = collection.length, - iNoClone = l - 1, - value = args[ 0 ], - valueIsFunction = isFunction( value ); - - // We can't cloneNode fragments that contain checked, in WebKit - if ( valueIsFunction || - ( l > 1 && typeof value === "string" && - !support.checkClone && rchecked.test( value ) ) ) { - return collection.each( function( index ) { - var self = collection.eq( index ); - if ( valueIsFunction ) { - args[ 0 ] = value.call( this, index, self.html() ); - } - domManip( self, args, callback, ignored ); - } ); - } - - if ( l ) { - fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored ); - first = fragment.firstChild; - - if ( fragment.childNodes.length === 1 ) { - fragment = first; - } - - // Require either new content or an interest in ignored elements to invoke the callback - if ( first || ignored ) { - scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); - hasScripts = scripts.length; - - // Use the original fragment for the last item - // instead of the first because it can end up - // being emptied incorrectly in certain situations (#8070). - for ( ; i < l; i++ ) { - node = fragment; - - if ( i !== iNoClone ) { - node = jQuery.clone( node, true, true ); - - // Keep references to cloned scripts for later restoration - if ( hasScripts ) { - - // Support: Android <=4.0 only, PhantomJS 1 only - // push.apply(_, arraylike) throws on ancient WebKit - jQuery.merge( scripts, getAll( node, "script" ) ); - } - } - - callback.call( collection[ i ], node, i ); - } - - if ( hasScripts ) { - doc = scripts[ scripts.length - 1 ].ownerDocument; - - // Reenable scripts - jQuery.map( scripts, restoreScript ); - - // Evaluate executable scripts on first document insertion - for ( i = 0; i < hasScripts; i++ ) { - node = scripts[ i ]; - if ( rscriptType.test( node.type || "" ) && - !dataPriv.access( node, "globalEval" ) && - jQuery.contains( doc, node ) ) { - - if ( node.src && ( node.type || "" ).toLowerCase() !== "module" ) { - - // Optional AJAX dependency, but won't run scripts if not present - if ( jQuery._evalUrl && !node.noModule ) { - jQuery._evalUrl( node.src, { - nonce: node.nonce || node.getAttribute( "nonce" ) - } ); - } - } else { - DOMEval( node.textContent.replace( rcleanScript, "" ), node, doc ); - } - } - } - } - } - } - - return collection; -} - -function remove( elem, selector, keepData ) { - var node, - nodes = selector ? jQuery.filter( selector, elem ) : elem, - i = 0; - - for ( ; ( node = nodes[ i ] ) != null; i++ ) { - if ( !keepData && node.nodeType === 1 ) { - jQuery.cleanData( getAll( node ) ); - } - - if ( node.parentNode ) { - if ( keepData && isAttached( node ) ) { - setGlobalEval( getAll( node, "script" ) ); - } - node.parentNode.removeChild( node ); - } - } - - return elem; -} - -jQuery.extend( { - htmlPrefilter: function( html ) { - return html.replace( rxhtmlTag, "<$1>" ); - }, - - clone: function( elem, dataAndEvents, deepDataAndEvents ) { - var i, l, srcElements, destElements, - clone = elem.cloneNode( true ), - inPage = isAttached( elem ); - - // Fix IE cloning issues - if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && - !jQuery.isXMLDoc( elem ) ) { - - // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2 - destElements = getAll( clone ); - srcElements = getAll( elem ); - - for ( i = 0, l = srcElements.length; i < l; i++ ) { - fixInput( srcElements[ i ], destElements[ i ] ); - } - } - - // Copy the events from the original to the clone - if ( dataAndEvents ) { - if ( deepDataAndEvents ) { - srcElements = srcElements || getAll( elem ); - destElements = destElements || getAll( clone ); - - for ( i = 0, l = srcElements.length; i < l; i++ ) { - cloneCopyEvent( srcElements[ i ], destElements[ i ] ); - } - } else { - cloneCopyEvent( elem, clone ); - } - } - - // Preserve script evaluation history - destElements = getAll( clone, "script" ); - if ( destElements.length > 0 ) { - setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); - } - - // Return the cloned set - return clone; - }, - - cleanData: function( elems ) { - var data, elem, type, - special = jQuery.event.special, - i = 0; - - for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) { - if ( acceptData( elem ) ) { - if ( ( data = elem[ dataPriv.expando ] ) ) { - if ( data.events ) { - for ( type in data.events ) { - if ( special[ type ] ) { - jQuery.event.remove( elem, type ); - - // This is a shortcut to avoid jQuery.event.remove's overhead - } else { - jQuery.removeEvent( elem, type, data.handle ); - } - } - } - - // Support: Chrome <=35 - 45+ - // Assign undefined instead of using delete, see Data#remove - elem[ dataPriv.expando ] = undefined; - } - if ( elem[ dataUser.expando ] ) { - - // Support: Chrome <=35 - 45+ - // Assign undefined instead of using delete, see Data#remove - elem[ dataUser.expando ] = undefined; - } - } - } - } -} ); - -jQuery.fn.extend( { - detach: function( selector ) { - return remove( this, selector, true ); - }, - - remove: function( selector ) { - return remove( this, selector ); - }, - - text: function( value ) { - return access( this, function( value ) { - return value === undefined ? - jQuery.text( this ) : - this.empty().each( function() { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - this.textContent = value; - } - } ); - }, null, value, arguments.length ); - }, - - append: function() { - return domManip( this, arguments, function( elem ) { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - var target = manipulationTarget( this, elem ); - target.appendChild( elem ); - } - } ); - }, - - prepend: function() { - return domManip( this, arguments, function( elem ) { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - var target = manipulationTarget( this, elem ); - target.insertBefore( elem, target.firstChild ); - } - } ); - }, - - before: function() { - return domManip( this, arguments, function( elem ) { - if ( this.parentNode ) { - this.parentNode.insertBefore( elem, this ); - } - } ); - }, - - after: function() { - return domManip( this, arguments, function( elem ) { - if ( this.parentNode ) { - this.parentNode.insertBefore( elem, this.nextSibling ); - } - } ); - }, - - empty: function() { - var elem, - i = 0; - - for ( ; ( elem = this[ i ] ) != null; i++ ) { - if ( elem.nodeType === 1 ) { - - // Prevent memory leaks - jQuery.cleanData( getAll( elem, false ) ); - - // Remove any remaining nodes - elem.textContent = ""; - } - } - - return this; - }, - - clone: function( dataAndEvents, deepDataAndEvents ) { - dataAndEvents = dataAndEvents == null ? false : dataAndEvents; - deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; - - return this.map( function() { - return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); - } ); - }, - - html: function( value ) { - return access( this, function( value ) { - var elem = this[ 0 ] || {}, - i = 0, - l = this.length; - - if ( value === undefined && elem.nodeType === 1 ) { - return elem.innerHTML; - } - - // See if we can take a shortcut and just use innerHTML - if ( typeof value === "string" && !rnoInnerhtml.test( value ) && - !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { - - value = jQuery.htmlPrefilter( value ); - - try { - for ( ; i < l; i++ ) { - elem = this[ i ] || {}; - - // Remove element nodes and prevent memory leaks - if ( elem.nodeType === 1 ) { - jQuery.cleanData( getAll( elem, false ) ); - elem.innerHTML = value; - } - } - - elem = 0; - - // If using innerHTML throws an exception, use the fallback method - } catch ( e ) {} - } - - if ( elem ) { - this.empty().append( value ); - } - }, null, value, arguments.length ); - }, - - replaceWith: function() { - var ignored = []; - - // Make the changes, replacing each non-ignored context element with the new content - return domManip( this, arguments, function( elem ) { - var parent = this.parentNode; - - if ( jQuery.inArray( this, ignored ) < 0 ) { - jQuery.cleanData( getAll( this ) ); - if ( parent ) { - parent.replaceChild( elem, this ); - } - } - - // Force callback invocation - }, ignored ); - } -} ); - -jQuery.each( { - appendTo: "append", - prependTo: "prepend", - insertBefore: "before", - insertAfter: "after", - replaceAll: "replaceWith" -}, function( name, original ) { - jQuery.fn[ name ] = function( selector ) { - var elems, - ret = [], - insert = jQuery( selector ), - last = insert.length - 1, - i = 0; - - for ( ; i <= last; i++ ) { - elems = i === last ? this : this.clone( true ); - jQuery( insert[ i ] )[ original ]( elems ); - - // Support: Android <=4.0 only, PhantomJS 1 only - // .get() because push.apply(_, arraylike) throws on ancient WebKit - push.apply( ret, elems.get() ); - } - - return this.pushStack( ret ); - }; -} ); -var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); - -var getStyles = function( elem ) { - - // Support: IE <=11 only, Firefox <=30 (#15098, #14150) - // IE throws on elements created in popups - // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" - var view = elem.ownerDocument.defaultView; - - if ( !view || !view.opener ) { - view = window; - } - - return view.getComputedStyle( elem ); - }; - -var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); - - - -( function() { - - // Executing both pixelPosition & boxSizingReliable tests require only one layout - // so they're executed at the same time to save the second computation. - function computeStyleTests() { - - // This is a singleton, we need to execute it only once - if ( !div ) { - return; - } - - container.style.cssText = "position:absolute;left:-11111px;width:60px;" + - "margin-top:1px;padding:0;border:0"; - div.style.cssText = - "position:relative;display:block;box-sizing:border-box;overflow:scroll;" + - "margin:auto;border:1px;padding:1px;" + - "width:60%;top:1%"; - documentElement.appendChild( container ).appendChild( div ); - - var divStyle = window.getComputedStyle( div ); - pixelPositionVal = divStyle.top !== "1%"; - - // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44 - reliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12; - - // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3 - // Some styles come back with percentage values, even though they shouldn't - div.style.right = "60%"; - pixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36; - - // Support: IE 9 - 11 only - // Detect misreporting of content dimensions for box-sizing:border-box elements - boxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36; - - // Support: IE 9 only - // Detect overflow:scroll screwiness (gh-3699) - // Support: Chrome <=64 - // Don't get tricked when zoom affects offsetWidth (gh-4029) - div.style.position = "absolute"; - scrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12; - - documentElement.removeChild( container ); - - // Nullify the div so it wouldn't be stored in the memory and - // it will also be a sign that checks already performed - div = null; - } - - function roundPixelMeasures( measure ) { - return Math.round( parseFloat( measure ) ); - } - - var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal, - reliableMarginLeftVal, - container = document.createElement( "div" ), - div = document.createElement( "div" ); - - // Finish early in limited (non-browser) environments - if ( !div.style ) { - return; - } - - // Support: IE <=9 - 11 only - // Style of cloned element affects source element cloned (#8908) - div.style.backgroundClip = "content-box"; - div.cloneNode( true ).style.backgroundClip = ""; - support.clearCloneStyle = div.style.backgroundClip === "content-box"; - - jQuery.extend( support, { - boxSizingReliable: function() { - computeStyleTests(); - return boxSizingReliableVal; - }, - pixelBoxStyles: function() { - computeStyleTests(); - return pixelBoxStylesVal; - }, - pixelPosition: function() { - computeStyleTests(); - return pixelPositionVal; - }, - reliableMarginLeft: function() { - computeStyleTests(); - return reliableMarginLeftVal; - }, - scrollboxSize: function() { - computeStyleTests(); - return scrollboxSizeVal; - } - } ); -} )(); - - -function curCSS( elem, name, computed ) { - var width, minWidth, maxWidth, ret, - - // Support: Firefox 51+ - // Retrieving style before computed somehow - // fixes an issue with getting wrong values - // on detached elements - style = elem.style; - - computed = computed || getStyles( elem ); - - // getPropertyValue is needed for: - // .css('filter') (IE 9 only, #12537) - // .css('--customProperty) (#3144) - if ( computed ) { - ret = computed.getPropertyValue( name ) || computed[ name ]; - - if ( ret === "" && !isAttached( elem ) ) { - ret = jQuery.style( elem, name ); - } - - // A tribute to the "awesome hack by Dean Edwards" - // Android Browser returns percentage for some values, - // but width seems to be reliably pixels. - // This is against the CSSOM draft spec: - // https://drafts.csswg.org/cssom/#resolved-values - if ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) { - - // Remember the original values - width = style.width; - minWidth = style.minWidth; - maxWidth = style.maxWidth; - - // Put in the new values to get a computed value out - style.minWidth = style.maxWidth = style.width = ret; - ret = computed.width; - - // Revert the changed values - style.width = width; - style.minWidth = minWidth; - style.maxWidth = maxWidth; - } - } - - return ret !== undefined ? - - // Support: IE <=9 - 11 only - // IE returns zIndex value as an integer. - ret + "" : - ret; -} - - -function addGetHookIf( conditionFn, hookFn ) { - - // Define the hook, we'll check on the first run if it's really needed. - return { - get: function() { - if ( conditionFn() ) { - - // Hook not needed (or it's not possible to use it due - // to missing dependency), remove it. - delete this.get; - return; - } - - // Hook needed; redefine it so that the support test is not executed again. - return ( this.get = hookFn ).apply( this, arguments ); - } - }; -} - - -var cssPrefixes = [ "Webkit", "Moz", "ms" ], - emptyStyle = document.createElement( "div" ).style, - vendorProps = {}; - -// Return a vendor-prefixed property or undefined -function vendorPropName( name ) { - - // Check for vendor prefixed names - var capName = name[ 0 ].toUpperCase() + name.slice( 1 ), - i = cssPrefixes.length; - - while ( i-- ) { - name = cssPrefixes[ i ] + capName; - if ( name in emptyStyle ) { - return name; - } - } -} - -// Return a potentially-mapped jQuery.cssProps or vendor prefixed property -function finalPropName( name ) { - var final = jQuery.cssProps[ name ] || vendorProps[ name ]; - - if ( final ) { - return final; - } - if ( name in emptyStyle ) { - return name; - } - return vendorProps[ name ] = vendorPropName( name ) || name; -} - - -var - - // Swappable if display is none or starts with table - // except "table", "table-cell", or "table-caption" - // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display - rdisplayswap = /^(none|table(?!-c[ea]).+)/, - rcustomProp = /^--/, - cssShow = { position: "absolute", visibility: "hidden", display: "block" }, - cssNormalTransform = { - letterSpacing: "0", - fontWeight: "400" - }; - -function setPositiveNumber( elem, value, subtract ) { - - // Any relative (+/-) values have already been - // normalized at this point - var matches = rcssNum.exec( value ); - return matches ? - - // Guard against undefined "subtract", e.g., when used as in cssHooks - Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) : - value; -} - -function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) { - var i = dimension === "width" ? 1 : 0, - extra = 0, - delta = 0; - - // Adjustment may not be necessary - if ( box === ( isBorderBox ? "border" : "content" ) ) { - return 0; - } - - for ( ; i < 4; i += 2 ) { - - // Both box models exclude margin - if ( box === "margin" ) { - delta += jQuery.css( elem, box + cssExpand[ i ], true, styles ); - } - - // If we get here with a content-box, we're seeking "padding" or "border" or "margin" - if ( !isBorderBox ) { - - // Add padding - delta += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); - - // For "border" or "margin", add border - if ( box !== "padding" ) { - delta += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); - - // But still keep track of it otherwise - } else { - extra += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); - } - - // If we get here with a border-box (content + padding + border), we're seeking "content" or - // "padding" or "margin" - } else { - - // For "content", subtract padding - if ( box === "content" ) { - delta -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); - } - - // For "content" or "padding", subtract border - if ( box !== "margin" ) { - delta -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); - } - } - } - - // Account for positive content-box scroll gutter when requested by providing computedVal - if ( !isBorderBox && computedVal >= 0 ) { - - // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border - // Assuming integer scroll gutter, subtract the rest and round down - delta += Math.max( 0, Math.ceil( - elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - - computedVal - - delta - - extra - - 0.5 - - // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter - // Use an explicit zero to avoid NaN (gh-3964) - ) ) || 0; - } - - return delta; -} - -function getWidthOrHeight( elem, dimension, extra ) { - - // Start with computed style - var styles = getStyles( elem ), - - // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322). - // Fake content-box until we know it's needed to know the true value. - boxSizingNeeded = !support.boxSizingReliable() || extra, - isBorderBox = boxSizingNeeded && - jQuery.css( elem, "boxSizing", false, styles ) === "border-box", - valueIsBorderBox = isBorderBox, - - val = curCSS( elem, dimension, styles ), - offsetProp = "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ); - - // Support: Firefox <=54 - // Return a confounding non-pixel value or feign ignorance, as appropriate. - if ( rnumnonpx.test( val ) ) { - if ( !extra ) { - return val; - } - val = "auto"; - } - - - // Fall back to offsetWidth/offsetHeight when value is "auto" - // This happens for inline elements with no explicit setting (gh-3571) - // Support: Android <=4.1 - 4.3 only - // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602) - // Support: IE 9-11 only - // Also use offsetWidth/offsetHeight for when box sizing is unreliable - // We use getClientRects() to check for hidden/disconnected. - // In those cases, the computed value can be trusted to be border-box - if ( ( !support.boxSizingReliable() && isBorderBox || - val === "auto" || - !parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) && - elem.getClientRects().length ) { - - isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; - - // Where available, offsetWidth/offsetHeight approximate border box dimensions. - // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the - // retrieved value as a content box dimension. - valueIsBorderBox = offsetProp in elem; - if ( valueIsBorderBox ) { - val = elem[ offsetProp ]; - } - } - - // Normalize "" and auto - val = parseFloat( val ) || 0; - - // Adjust for the element's box model - return ( val + - boxModelAdjustment( - elem, - dimension, - extra || ( isBorderBox ? "border" : "content" ), - valueIsBorderBox, - styles, - - // Provide the current computed size to request scroll gutter calculation (gh-3589) - val - ) - ) + "px"; -} - -jQuery.extend( { - - // Add in style property hooks for overriding the default - // behavior of getting and setting a style property - cssHooks: { - opacity: { - get: function( elem, computed ) { - if ( computed ) { - - // We should always get a number back from opacity - var ret = curCSS( elem, "opacity" ); - return ret === "" ? "1" : ret; - } - } - } - }, - - // Don't automatically add "px" to these possibly-unitless properties - cssNumber: { - "animationIterationCount": true, - "columnCount": true, - "fillOpacity": true, - "flexGrow": true, - "flexShrink": true, - "fontWeight": true, - "gridArea": true, - "gridColumn": true, - "gridColumnEnd": true, - "gridColumnStart": true, - "gridRow": true, - "gridRowEnd": true, - "gridRowStart": true, - "lineHeight": true, - "opacity": true, - "order": true, - "orphans": true, - "widows": true, - "zIndex": true, - "zoom": true - }, - - // Add in properties whose names you wish to fix before - // setting or getting the value - cssProps: {}, - - // Get and set the style property on a DOM Node - style: function( elem, name, value, extra ) { - - // Don't set styles on text and comment nodes - if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { - return; - } - - // Make sure that we're working with the right name - var ret, type, hooks, - origName = camelCase( name ), - isCustomProp = rcustomProp.test( name ), - style = elem.style; - - // Make sure that we're working with the right name. We don't - // want to query the value if it is a CSS custom property - // since they are user-defined. - if ( !isCustomProp ) { - name = finalPropName( origName ); - } - - // Gets hook for the prefixed version, then unprefixed version - hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; - - // Check if we're setting a value - if ( value !== undefined ) { - type = typeof value; - - // Convert "+=" or "-=" to relative numbers (#7345) - if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) { - value = adjustCSS( elem, name, ret ); - - // Fixes bug #9237 - type = "number"; - } - - // Make sure that null and NaN values aren't set (#7116) - if ( value == null || value !== value ) { - return; - } - - // If a number was passed in, add the unit (except for certain CSS properties) - // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append - // "px" to a few hardcoded values. - if ( type === "number" && !isCustomProp ) { - value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" ); - } - - // background-* props affect original clone's values - if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) { - style[ name ] = "inherit"; - } - - // If a hook was provided, use that value, otherwise just set the specified value - if ( !hooks || !( "set" in hooks ) || - ( value = hooks.set( elem, value, extra ) ) !== undefined ) { - - if ( isCustomProp ) { - style.setProperty( name, value ); - } else { - style[ name ] = value; - } - } - - } else { - - // If a hook was provided get the non-computed value from there - if ( hooks && "get" in hooks && - ( ret = hooks.get( elem, false, extra ) ) !== undefined ) { - - return ret; - } - - // Otherwise just get the value from the style object - return style[ name ]; - } - }, - - css: function( elem, name, extra, styles ) { - var val, num, hooks, - origName = camelCase( name ), - isCustomProp = rcustomProp.test( name ); - - // Make sure that we're working with the right name. We don't - // want to modify the value if it is a CSS custom property - // since they are user-defined. - if ( !isCustomProp ) { - name = finalPropName( origName ); - } - - // Try prefixed name followed by the unprefixed name - hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; - - // If a hook was provided get the computed value from there - if ( hooks && "get" in hooks ) { - val = hooks.get( elem, true, extra ); - } - - // Otherwise, if a way to get the computed value exists, use that - if ( val === undefined ) { - val = curCSS( elem, name, styles ); - } - - // Convert "normal" to computed value - if ( val === "normal" && name in cssNormalTransform ) { - val = cssNormalTransform[ name ]; - } - - // Make numeric if forced or a qualifier was provided and val looks numeric - if ( extra === "" || extra ) { - num = parseFloat( val ); - return extra === true || isFinite( num ) ? num || 0 : val; - } - - return val; - } -} ); - -jQuery.each( [ "height", "width" ], function( i, dimension ) { - jQuery.cssHooks[ dimension ] = { - get: function( elem, computed, extra ) { - if ( computed ) { - - // Certain elements can have dimension info if we invisibly show them - // but it must have a current display style that would benefit - return rdisplayswap.test( jQuery.css( elem, "display" ) ) && - - // Support: Safari 8+ - // Table columns in Safari have non-zero offsetWidth & zero - // getBoundingClientRect().width unless display is changed. - // Support: IE <=11 only - // Running getBoundingClientRect on a disconnected node - // in IE throws an error. - ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ? - swap( elem, cssShow, function() { - return getWidthOrHeight( elem, dimension, extra ); - } ) : - getWidthOrHeight( elem, dimension, extra ); - } - }, - - set: function( elem, value, extra ) { - var matches, - styles = getStyles( elem ), - - // Only read styles.position if the test has a chance to fail - // to avoid forcing a reflow. - scrollboxSizeBuggy = !support.scrollboxSize() && - styles.position === "absolute", - - // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991) - boxSizingNeeded = scrollboxSizeBuggy || extra, - isBorderBox = boxSizingNeeded && - jQuery.css( elem, "boxSizing", false, styles ) === "border-box", - subtract = extra ? - boxModelAdjustment( - elem, - dimension, - extra, - isBorderBox, - styles - ) : - 0; - - // Account for unreliable border-box dimensions by comparing offset* to computed and - // faking a content-box to get border and padding (gh-3699) - if ( isBorderBox && scrollboxSizeBuggy ) { - subtract -= Math.ceil( - elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - - parseFloat( styles[ dimension ] ) - - boxModelAdjustment( elem, dimension, "border", false, styles ) - - 0.5 - ); - } - - // Convert to pixels if value adjustment is needed - if ( subtract && ( matches = rcssNum.exec( value ) ) && - ( matches[ 3 ] || "px" ) !== "px" ) { - - elem.style[ dimension ] = value; - value = jQuery.css( elem, dimension ); - } - - return setPositiveNumber( elem, value, subtract ); - } - }; -} ); - -jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, - function( elem, computed ) { - if ( computed ) { - return ( parseFloat( curCSS( elem, "marginLeft" ) ) || - elem.getBoundingClientRect().left - - swap( elem, { marginLeft: 0 }, function() { - return elem.getBoundingClientRect().left; - } ) - ) + "px"; - } - } -); - -// These hooks are used by animate to expand properties -jQuery.each( { - margin: "", - padding: "", - border: "Width" -}, function( prefix, suffix ) { - jQuery.cssHooks[ prefix + suffix ] = { - expand: function( value ) { - var i = 0, - expanded = {}, - - // Assumes a single number if not a string - parts = typeof value === "string" ? value.split( " " ) : [ value ]; - - for ( ; i < 4; i++ ) { - expanded[ prefix + cssExpand[ i ] + suffix ] = - parts[ i ] || parts[ i - 2 ] || parts[ 0 ]; - } - - return expanded; - } - }; - - if ( prefix !== "margin" ) { - jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; - } -} ); - -jQuery.fn.extend( { - css: function( name, value ) { - return access( this, function( elem, name, value ) { - var styles, len, - map = {}, - i = 0; - - if ( Array.isArray( name ) ) { - styles = getStyles( elem ); - len = name.length; - - for ( ; i < len; i++ ) { - map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); - } - - return map; - } - - return value !== undefined ? - jQuery.style( elem, name, value ) : - jQuery.css( elem, name ); - }, name, value, arguments.length > 1 ); - } -} ); - - -function Tween( elem, options, prop, end, easing ) { - return new Tween.prototype.init( elem, options, prop, end, easing ); -} -jQuery.Tween = Tween; - -Tween.prototype = { - constructor: Tween, - init: function( elem, options, prop, end, easing, unit ) { - this.elem = elem; - this.prop = prop; - this.easing = easing || jQuery.easing._default; - this.options = options; - this.start = this.now = this.cur(); - this.end = end; - this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" ); - }, - cur: function() { - var hooks = Tween.propHooks[ this.prop ]; - - return hooks && hooks.get ? - hooks.get( this ) : - Tween.propHooks._default.get( this ); - }, - run: function( percent ) { - var eased, - hooks = Tween.propHooks[ this.prop ]; - - if ( this.options.duration ) { - this.pos = eased = jQuery.easing[ this.easing ]( - percent, this.options.duration * percent, 0, 1, this.options.duration - ); - } else { - this.pos = eased = percent; - } - this.now = ( this.end - this.start ) * eased + this.start; - - if ( this.options.step ) { - this.options.step.call( this.elem, this.now, this ); - } - - if ( hooks && hooks.set ) { - hooks.set( this ); - } else { - Tween.propHooks._default.set( this ); - } - return this; - } -}; - -Tween.prototype.init.prototype = Tween.prototype; - -Tween.propHooks = { - _default: { - get: function( tween ) { - var result; - - // Use a property on the element directly when it is not a DOM element, - // or when there is no matching style property that exists. - if ( tween.elem.nodeType !== 1 || - tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) { - return tween.elem[ tween.prop ]; - } - - // Passing an empty string as a 3rd parameter to .css will automatically - // attempt a parseFloat and fallback to a string if the parse fails. - // Simple values such as "10px" are parsed to Float; - // complex values such as "rotate(1rad)" are returned as-is. - result = jQuery.css( tween.elem, tween.prop, "" ); - - // Empty strings, null, undefined and "auto" are converted to 0. - return !result || result === "auto" ? 0 : result; - }, - set: function( tween ) { - - // Use step hook for back compat. - // Use cssHook if its there. - // Use .style if available and use plain properties where available. - if ( jQuery.fx.step[ tween.prop ] ) { - jQuery.fx.step[ tween.prop ]( tween ); - } else if ( tween.elem.nodeType === 1 && ( - jQuery.cssHooks[ tween.prop ] || - tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) { - jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); - } else { - tween.elem[ tween.prop ] = tween.now; - } - } - } -}; - -// Support: IE <=9 only -// Panic based approach to setting things on disconnected nodes -Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { - set: function( tween ) { - if ( tween.elem.nodeType && tween.elem.parentNode ) { - tween.elem[ tween.prop ] = tween.now; - } - } -}; - -jQuery.easing = { - linear: function( p ) { - return p; - }, - swing: function( p ) { - return 0.5 - Math.cos( p * Math.PI ) / 2; - }, - _default: "swing" -}; - -jQuery.fx = Tween.prototype.init; - -// Back compat <1.8 extension point -jQuery.fx.step = {}; - - - - -var - fxNow, inProgress, - rfxtypes = /^(?:toggle|show|hide)$/, - rrun = /queueHooks$/; - -function schedule() { - if ( inProgress ) { - if ( document.hidden === false && window.requestAnimationFrame ) { - window.requestAnimationFrame( schedule ); - } else { - window.setTimeout( schedule, jQuery.fx.interval ); - } - - jQuery.fx.tick(); - } -} - -// Animations created synchronously will run synchronously -function createFxNow() { - window.setTimeout( function() { - fxNow = undefined; - } ); - return ( fxNow = Date.now() ); -} - -// Generate parameters to create a standard animation -function genFx( type, includeWidth ) { - var which, - i = 0, - attrs = { height: type }; - - // If we include width, step value is 1 to do all cssExpand values, - // otherwise step value is 2 to skip over Left and Right - includeWidth = includeWidth ? 1 : 0; - for ( ; i < 4; i += 2 - includeWidth ) { - which = cssExpand[ i ]; - attrs[ "margin" + which ] = attrs[ "padding" + which ] = type; - } - - if ( includeWidth ) { - attrs.opacity = attrs.width = type; - } - - return attrs; -} - -function createTween( value, prop, animation ) { - var tween, - collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ), - index = 0, - length = collection.length; - for ( ; index < length; index++ ) { - if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) { - - // We're done with this property - return tween; - } - } -} - -function defaultPrefilter( elem, props, opts ) { - var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display, - isBox = "width" in props || "height" in props, - anim = this, - orig = {}, - style = elem.style, - hidden = elem.nodeType && isHiddenWithinTree( elem ), - dataShow = dataPriv.get( elem, "fxshow" ); - - // Queue-skipping animations hijack the fx hooks - if ( !opts.queue ) { - hooks = jQuery._queueHooks( elem, "fx" ); - if ( hooks.unqueued == null ) { - hooks.unqueued = 0; - oldfire = hooks.empty.fire; - hooks.empty.fire = function() { - if ( !hooks.unqueued ) { - oldfire(); - } - }; - } - hooks.unqueued++; - - anim.always( function() { - - // Ensure the complete handler is called before this completes - anim.always( function() { - hooks.unqueued--; - if ( !jQuery.queue( elem, "fx" ).length ) { - hooks.empty.fire(); - } - } ); - } ); - } - - // Detect show/hide animations - for ( prop in props ) { - value = props[ prop ]; - if ( rfxtypes.test( value ) ) { - delete props[ prop ]; - toggle = toggle || value === "toggle"; - if ( value === ( hidden ? "hide" : "show" ) ) { - - // Pretend to be hidden if this is a "show" and - // there is still data from a stopped show/hide - if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) { - hidden = true; - - // Ignore all other no-op show/hide data - } else { - continue; - } - } - orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop ); - } - } - - // Bail out if this is a no-op like .hide().hide() - propTween = !jQuery.isEmptyObject( props ); - if ( !propTween && jQuery.isEmptyObject( orig ) ) { - return; - } - - // Restrict "overflow" and "display" styles during box animations - if ( isBox && elem.nodeType === 1 ) { - - // Support: IE <=9 - 11, Edge 12 - 15 - // Record all 3 overflow attributes because IE does not infer the shorthand - // from identically-valued overflowX and overflowY and Edge just mirrors - // the overflowX value there. - opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; - - // Identify a display type, preferring old show/hide data over the CSS cascade - restoreDisplay = dataShow && dataShow.display; - if ( restoreDisplay == null ) { - restoreDisplay = dataPriv.get( elem, "display" ); - } - display = jQuery.css( elem, "display" ); - if ( display === "none" ) { - if ( restoreDisplay ) { - display = restoreDisplay; - } else { - - // Get nonempty value(s) by temporarily forcing visibility - showHide( [ elem ], true ); - restoreDisplay = elem.style.display || restoreDisplay; - display = jQuery.css( elem, "display" ); - showHide( [ elem ] ); - } - } - - // Animate inline elements as inline-block - if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) { - if ( jQuery.css( elem, "float" ) === "none" ) { - - // Restore the original display value at the end of pure show/hide animations - if ( !propTween ) { - anim.done( function() { - style.display = restoreDisplay; - } ); - if ( restoreDisplay == null ) { - display = style.display; - restoreDisplay = display === "none" ? "" : display; - } - } - style.display = "inline-block"; - } - } - } - - if ( opts.overflow ) { - style.overflow = "hidden"; - anim.always( function() { - style.overflow = opts.overflow[ 0 ]; - style.overflowX = opts.overflow[ 1 ]; - style.overflowY = opts.overflow[ 2 ]; - } ); - } - - // Implement show/hide animations - propTween = false; - for ( prop in orig ) { - - // General show/hide setup for this element animation - if ( !propTween ) { - if ( dataShow ) { - if ( "hidden" in dataShow ) { - hidden = dataShow.hidden; - } - } else { - dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } ); - } - - // Store hidden/visible for toggle so `.stop().toggle()` "reverses" - if ( toggle ) { - dataShow.hidden = !hidden; - } - - // Show elements before animating them - if ( hidden ) { - showHide( [ elem ], true ); - } - - /* eslint-disable no-loop-func */ - - anim.done( function() { - - /* eslint-enable no-loop-func */ - - // The final step of a "hide" animation is actually hiding the element - if ( !hidden ) { - showHide( [ elem ] ); - } - dataPriv.remove( elem, "fxshow" ); - for ( prop in orig ) { - jQuery.style( elem, prop, orig[ prop ] ); - } - } ); - } - - // Per-property setup - propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim ); - if ( !( prop in dataShow ) ) { - dataShow[ prop ] = propTween.start; - if ( hidden ) { - propTween.end = propTween.start; - propTween.start = 0; - } - } - } -} - -function propFilter( props, specialEasing ) { - var index, name, easing, value, hooks; - - // camelCase, specialEasing and expand cssHook pass - for ( index in props ) { - name = camelCase( index ); - easing = specialEasing[ name ]; - value = props[ index ]; - if ( Array.isArray( value ) ) { - easing = value[ 1 ]; - value = props[ index ] = value[ 0 ]; - } - - if ( index !== name ) { - props[ name ] = value; - delete props[ index ]; - } - - hooks = jQuery.cssHooks[ name ]; - if ( hooks && "expand" in hooks ) { - value = hooks.expand( value ); - delete props[ name ]; - - // Not quite $.extend, this won't overwrite existing keys. - // Reusing 'index' because we have the correct "name" - for ( index in value ) { - if ( !( index in props ) ) { - props[ index ] = value[ index ]; - specialEasing[ index ] = easing; - } - } - } else { - specialEasing[ name ] = easing; - } - } -} - -function Animation( elem, properties, options ) { - var result, - stopped, - index = 0, - length = Animation.prefilters.length, - deferred = jQuery.Deferred().always( function() { - - // Don't match elem in the :animated selector - delete tick.elem; - } ), - tick = function() { - if ( stopped ) { - return false; - } - var currentTime = fxNow || createFxNow(), - remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), - - // Support: Android 2.3 only - // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497) - temp = remaining / animation.duration || 0, - percent = 1 - temp, - index = 0, - length = animation.tweens.length; - - for ( ; index < length; index++ ) { - animation.tweens[ index ].run( percent ); - } - - deferred.notifyWith( elem, [ animation, percent, remaining ] ); - - // If there's more to do, yield - if ( percent < 1 && length ) { - return remaining; - } - - // If this was an empty animation, synthesize a final progress notification - if ( !length ) { - deferred.notifyWith( elem, [ animation, 1, 0 ] ); - } - - // Resolve the animation and report its conclusion - deferred.resolveWith( elem, [ animation ] ); - return false; - }, - animation = deferred.promise( { - elem: elem, - props: jQuery.extend( {}, properties ), - opts: jQuery.extend( true, { - specialEasing: {}, - easing: jQuery.easing._default - }, options ), - originalProperties: properties, - originalOptions: options, - startTime: fxNow || createFxNow(), - duration: options.duration, - tweens: [], - createTween: function( prop, end ) { - var tween = jQuery.Tween( elem, animation.opts, prop, end, - animation.opts.specialEasing[ prop ] || animation.opts.easing ); - animation.tweens.push( tween ); - return tween; - }, - stop: function( gotoEnd ) { - var index = 0, - - // If we are going to the end, we want to run all the tweens - // otherwise we skip this part - length = gotoEnd ? animation.tweens.length : 0; - if ( stopped ) { - return this; - } - stopped = true; - for ( ; index < length; index++ ) { - animation.tweens[ index ].run( 1 ); - } - - // Resolve when we played the last frame; otherwise, reject - if ( gotoEnd ) { - deferred.notifyWith( elem, [ animation, 1, 0 ] ); - deferred.resolveWith( elem, [ animation, gotoEnd ] ); - } else { - deferred.rejectWith( elem, [ animation, gotoEnd ] ); - } - return this; - } - } ), - props = animation.props; - - propFilter( props, animation.opts.specialEasing ); - - for ( ; index < length; index++ ) { - result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts ); - if ( result ) { - if ( isFunction( result.stop ) ) { - jQuery._queueHooks( animation.elem, animation.opts.queue ).stop = - result.stop.bind( result ); - } - return result; - } - } - - jQuery.map( props, createTween, animation ); - - if ( isFunction( animation.opts.start ) ) { - animation.opts.start.call( elem, animation ); - } - - // Attach callbacks from options - animation - .progress( animation.opts.progress ) - .done( animation.opts.done, animation.opts.complete ) - .fail( animation.opts.fail ) - .always( animation.opts.always ); - - jQuery.fx.timer( - jQuery.extend( tick, { - elem: elem, - anim: animation, - queue: animation.opts.queue - } ) - ); - - return animation; -} - -jQuery.Animation = jQuery.extend( Animation, { - - tweeners: { - "*": [ function( prop, value ) { - var tween = this.createTween( prop, value ); - adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween ); - return tween; - } ] - }, - - tweener: function( props, callback ) { - if ( isFunction( props ) ) { - callback = props; - props = [ "*" ]; - } else { - props = props.match( rnothtmlwhite ); - } - - var prop, - index = 0, - length = props.length; - - for ( ; index < length; index++ ) { - prop = props[ index ]; - Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || []; - Animation.tweeners[ prop ].unshift( callback ); - } - }, - - prefilters: [ defaultPrefilter ], - - prefilter: function( callback, prepend ) { - if ( prepend ) { - Animation.prefilters.unshift( callback ); - } else { - Animation.prefilters.push( callback ); - } - } -} ); - -jQuery.speed = function( speed, easing, fn ) { - var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { - complete: fn || !fn && easing || - isFunction( speed ) && speed, - duration: speed, - easing: fn && easing || easing && !isFunction( easing ) && easing - }; - - // Go to the end state if fx are off - if ( jQuery.fx.off ) { - opt.duration = 0; - - } else { - if ( typeof opt.duration !== "number" ) { - if ( opt.duration in jQuery.fx.speeds ) { - opt.duration = jQuery.fx.speeds[ opt.duration ]; - - } else { - opt.duration = jQuery.fx.speeds._default; - } - } - } - - // Normalize opt.queue - true/undefined/null -> "fx" - if ( opt.queue == null || opt.queue === true ) { - opt.queue = "fx"; - } - - // Queueing - opt.old = opt.complete; - - opt.complete = function() { - if ( isFunction( opt.old ) ) { - opt.old.call( this ); - } - - if ( opt.queue ) { - jQuery.dequeue( this, opt.queue ); - } - }; - - return opt; -}; - -jQuery.fn.extend( { - fadeTo: function( speed, to, easing, callback ) { - - // Show any hidden elements after setting opacity to 0 - return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show() - - // Animate to the value specified - .end().animate( { opacity: to }, speed, easing, callback ); - }, - animate: function( prop, speed, easing, callback ) { - var empty = jQuery.isEmptyObject( prop ), - optall = jQuery.speed( speed, easing, callback ), - doAnimation = function() { - - // Operate on a copy of prop so per-property easing won't be lost - var anim = Animation( this, jQuery.extend( {}, prop ), optall ); - - // Empty animations, or finishing resolves immediately - if ( empty || dataPriv.get( this, "finish" ) ) { - anim.stop( true ); - } - }; - doAnimation.finish = doAnimation; - - return empty || optall.queue === false ? - this.each( doAnimation ) : - this.queue( optall.queue, doAnimation ); - }, - stop: function( type, clearQueue, gotoEnd ) { - var stopQueue = function( hooks ) { - var stop = hooks.stop; - delete hooks.stop; - stop( gotoEnd ); - }; - - if ( typeof type !== "string" ) { - gotoEnd = clearQueue; - clearQueue = type; - type = undefined; - } - if ( clearQueue && type !== false ) { - this.queue( type || "fx", [] ); - } - - return this.each( function() { - var dequeue = true, - index = type != null && type + "queueHooks", - timers = jQuery.timers, - data = dataPriv.get( this ); - - if ( index ) { - if ( data[ index ] && data[ index ].stop ) { - stopQueue( data[ index ] ); - } - } else { - for ( index in data ) { - if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) { - stopQueue( data[ index ] ); - } - } - } - - for ( index = timers.length; index--; ) { - if ( timers[ index ].elem === this && - ( type == null || timers[ index ].queue === type ) ) { - - timers[ index ].anim.stop( gotoEnd ); - dequeue = false; - timers.splice( index, 1 ); - } - } - - // Start the next in the queue if the last step wasn't forced. - // Timers currently will call their complete callbacks, which - // will dequeue but only if they were gotoEnd. - if ( dequeue || !gotoEnd ) { - jQuery.dequeue( this, type ); - } - } ); - }, - finish: function( type ) { - if ( type !== false ) { - type = type || "fx"; - } - return this.each( function() { - var index, - data = dataPriv.get( this ), - queue = data[ type + "queue" ], - hooks = data[ type + "queueHooks" ], - timers = jQuery.timers, - length = queue ? queue.length : 0; - - // Enable finishing flag on private data - data.finish = true; - - // Empty the queue first - jQuery.queue( this, type, [] ); - - if ( hooks && hooks.stop ) { - hooks.stop.call( this, true ); - } - - // Look for any active animations, and finish them - for ( index = timers.length; index--; ) { - if ( timers[ index ].elem === this && timers[ index ].queue === type ) { - timers[ index ].anim.stop( true ); - timers.splice( index, 1 ); - } - } - - // Look for any animations in the old queue and finish them - for ( index = 0; index < length; index++ ) { - if ( queue[ index ] && queue[ index ].finish ) { - queue[ index ].finish.call( this ); - } - } - - // Turn off finishing flag - delete data.finish; - } ); - } -} ); - -jQuery.each( [ "toggle", "show", "hide" ], function( i, name ) { - var cssFn = jQuery.fn[ name ]; - jQuery.fn[ name ] = function( speed, easing, callback ) { - return speed == null || typeof speed === "boolean" ? - cssFn.apply( this, arguments ) : - this.animate( genFx( name, true ), speed, easing, callback ); - }; -} ); - -// Generate shortcuts for custom animations -jQuery.each( { - slideDown: genFx( "show" ), - slideUp: genFx( "hide" ), - slideToggle: genFx( "toggle" ), - fadeIn: { opacity: "show" }, - fadeOut: { opacity: "hide" }, - fadeToggle: { opacity: "toggle" } -}, function( name, props ) { - jQuery.fn[ name ] = function( speed, easing, callback ) { - return this.animate( props, speed, easing, callback ); - }; -} ); - -jQuery.timers = []; -jQuery.fx.tick = function() { - var timer, - i = 0, - timers = jQuery.timers; - - fxNow = Date.now(); - - for ( ; i < timers.length; i++ ) { - timer = timers[ i ]; - - // Run the timer and safely remove it when done (allowing for external removal) - if ( !timer() && timers[ i ] === timer ) { - timers.splice( i--, 1 ); - } - } - - if ( !timers.length ) { - jQuery.fx.stop(); - } - fxNow = undefined; -}; - -jQuery.fx.timer = function( timer ) { - jQuery.timers.push( timer ); - jQuery.fx.start(); -}; - -jQuery.fx.interval = 13; -jQuery.fx.start = function() { - if ( inProgress ) { - return; - } - - inProgress = true; - schedule(); -}; - -jQuery.fx.stop = function() { - inProgress = null; -}; - -jQuery.fx.speeds = { - slow: 600, - fast: 200, - - // Default speed - _default: 400 -}; - - -// Based off of the plugin by Clint Helfers, with permission. -// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/ -jQuery.fn.delay = function( time, type ) { - time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; - type = type || "fx"; - - return this.queue( type, function( next, hooks ) { - var timeout = window.setTimeout( next, time ); - hooks.stop = function() { - window.clearTimeout( timeout ); - }; - } ); -}; - - -( function() { - var input = document.createElement( "input" ), - select = document.createElement( "select" ), - opt = select.appendChild( document.createElement( "option" ) ); - - input.type = "checkbox"; - - // Support: Android <=4.3 only - // Default value for a checkbox should be "on" - support.checkOn = input.value !== ""; - - // Support: IE <=11 only - // Must access selectedIndex to make default options select - support.optSelected = opt.selected; - - // Support: IE <=11 only - // An input loses its value after becoming a radio - input = document.createElement( "input" ); - input.value = "t"; - input.type = "radio"; - support.radioValue = input.value === "t"; -} )(); - - -var boolHook, - attrHandle = jQuery.expr.attrHandle; - -jQuery.fn.extend( { - attr: function( name, value ) { - return access( this, jQuery.attr, name, value, arguments.length > 1 ); - }, - - removeAttr: function( name ) { - return this.each( function() { - jQuery.removeAttr( this, name ); - } ); - } -} ); - -jQuery.extend( { - attr: function( elem, name, value ) { - var ret, hooks, - nType = elem.nodeType; - - // Don't get/set attributes on text, comment and attribute nodes - if ( nType === 3 || nType === 8 || nType === 2 ) { - return; - } - - // Fallback to prop when attributes are not supported - if ( typeof elem.getAttribute === "undefined" ) { - return jQuery.prop( elem, name, value ); - } - - // Attribute hooks are determined by the lowercase version - // Grab necessary hook if one is defined - if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { - hooks = jQuery.attrHooks[ name.toLowerCase() ] || - ( jQuery.expr.match.bool.test( name ) ? boolHook : undefined ); - } - - if ( value !== undefined ) { - if ( value === null ) { - jQuery.removeAttr( elem, name ); - return; - } - - if ( hooks && "set" in hooks && - ( ret = hooks.set( elem, value, name ) ) !== undefined ) { - return ret; - } - - elem.setAttribute( name, value + "" ); - return value; - } - - if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { - return ret; - } - - ret = jQuery.find.attr( elem, name ); - - // Non-existent attributes return null, we normalize to undefined - return ret == null ? undefined : ret; - }, - - attrHooks: { - type: { - set: function( elem, value ) { - if ( !support.radioValue && value === "radio" && - nodeName( elem, "input" ) ) { - var val = elem.value; - elem.setAttribute( "type", value ); - if ( val ) { - elem.value = val; - } - return value; - } - } - } - }, - - removeAttr: function( elem, value ) { - var name, - i = 0, - - // Attribute names can contain non-HTML whitespace characters - // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2 - attrNames = value && value.match( rnothtmlwhite ); - - if ( attrNames && elem.nodeType === 1 ) { - while ( ( name = attrNames[ i++ ] ) ) { - elem.removeAttribute( name ); - } - } - } -} ); - -// Hooks for boolean attributes -boolHook = { - set: function( elem, value, name ) { - if ( value === false ) { - - // Remove boolean attributes when set to false - jQuery.removeAttr( elem, name ); - } else { - elem.setAttribute( name, name ); - } - return name; - } -}; - -jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) { - var getter = attrHandle[ name ] || jQuery.find.attr; - - attrHandle[ name ] = function( elem, name, isXML ) { - var ret, handle, - lowercaseName = name.toLowerCase(); - - if ( !isXML ) { - - // Avoid an infinite loop by temporarily removing this function from the getter - handle = attrHandle[ lowercaseName ]; - attrHandle[ lowercaseName ] = ret; - ret = getter( elem, name, isXML ) != null ? - lowercaseName : - null; - attrHandle[ lowercaseName ] = handle; - } - return ret; - }; -} ); - - - - -var rfocusable = /^(?:input|select|textarea|button)$/i, - rclickable = /^(?:a|area)$/i; - -jQuery.fn.extend( { - prop: function( name, value ) { - return access( this, jQuery.prop, name, value, arguments.length > 1 ); - }, - - removeProp: function( name ) { - return this.each( function() { - delete this[ jQuery.propFix[ name ] || name ]; - } ); - } -} ); - -jQuery.extend( { - prop: function( elem, name, value ) { - var ret, hooks, - nType = elem.nodeType; - - // Don't get/set properties on text, comment and attribute nodes - if ( nType === 3 || nType === 8 || nType === 2 ) { - return; - } - - if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { - - // Fix name and attach hooks - name = jQuery.propFix[ name ] || name; - hooks = jQuery.propHooks[ name ]; - } - - if ( value !== undefined ) { - if ( hooks && "set" in hooks && - ( ret = hooks.set( elem, value, name ) ) !== undefined ) { - return ret; - } - - return ( elem[ name ] = value ); - } - - if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { - return ret; - } - - return elem[ name ]; - }, - - propHooks: { - tabIndex: { - get: function( elem ) { - - // Support: IE <=9 - 11 only - // elem.tabIndex doesn't always return the - // correct value when it hasn't been explicitly set - // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ - // Use proper attribute retrieval(#12072) - var tabindex = jQuery.find.attr( elem, "tabindex" ); - - if ( tabindex ) { - return parseInt( tabindex, 10 ); - } - - if ( - rfocusable.test( elem.nodeName ) || - rclickable.test( elem.nodeName ) && - elem.href - ) { - return 0; - } - - return -1; - } - } - }, - - propFix: { - "for": "htmlFor", - "class": "className" - } -} ); - -// Support: IE <=11 only -// Accessing the selectedIndex property -// forces the browser to respect setting selected -// on the option -// The getter ensures a default option is selected -// when in an optgroup -// eslint rule "no-unused-expressions" is disabled for this code -// since it considers such accessions noop -if ( !support.optSelected ) { - jQuery.propHooks.selected = { - get: function( elem ) { - - /* eslint no-unused-expressions: "off" */ - - var parent = elem.parentNode; - if ( parent && parent.parentNode ) { - parent.parentNode.selectedIndex; - } - return null; - }, - set: function( elem ) { - - /* eslint no-unused-expressions: "off" */ - - var parent = elem.parentNode; - if ( parent ) { - parent.selectedIndex; - - if ( parent.parentNode ) { - parent.parentNode.selectedIndex; - } - } - } - }; -} - -jQuery.each( [ - "tabIndex", - "readOnly", - "maxLength", - "cellSpacing", - "cellPadding", - "rowSpan", - "colSpan", - "useMap", - "frameBorder", - "contentEditable" -], function() { - jQuery.propFix[ this.toLowerCase() ] = this; -} ); - - - - - // Strip and collapse whitespace according to HTML spec - // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace - function stripAndCollapse( value ) { - var tokens = value.match( rnothtmlwhite ) || []; - return tokens.join( " " ); - } - - -function getClass( elem ) { - return elem.getAttribute && elem.getAttribute( "class" ) || ""; -} - -function classesToArray( value ) { - if ( Array.isArray( value ) ) { - return value; - } - if ( typeof value === "string" ) { - return value.match( rnothtmlwhite ) || []; - } - return []; -} - -jQuery.fn.extend( { - addClass: function( value ) { - var classes, elem, cur, curValue, clazz, j, finalValue, - i = 0; - - if ( isFunction( value ) ) { - return this.each( function( j ) { - jQuery( this ).addClass( value.call( this, j, getClass( this ) ) ); - } ); - } - - classes = classesToArray( value ); - - if ( classes.length ) { - while ( ( elem = this[ i++ ] ) ) { - curValue = getClass( elem ); - cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); - - if ( cur ) { - j = 0; - while ( ( clazz = classes[ j++ ] ) ) { - if ( cur.indexOf( " " + clazz + " " ) < 0 ) { - cur += clazz + " "; - } - } - - // Only assign if different to avoid unneeded rendering. - finalValue = stripAndCollapse( cur ); - if ( curValue !== finalValue ) { - elem.setAttribute( "class", finalValue ); - } - } - } - } - - return this; - }, - - removeClass: function( value ) { - var classes, elem, cur, curValue, clazz, j, finalValue, - i = 0; - - if ( isFunction( value ) ) { - return this.each( function( j ) { - jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) ); - } ); - } - - if ( !arguments.length ) { - return this.attr( "class", "" ); - } - - classes = classesToArray( value ); - - if ( classes.length ) { - while ( ( elem = this[ i++ ] ) ) { - curValue = getClass( elem ); - - // This expression is here for better compressibility (see addClass) - cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); - - if ( cur ) { - j = 0; - while ( ( clazz = classes[ j++ ] ) ) { - - // Remove *all* instances - while ( cur.indexOf( " " + clazz + " " ) > -1 ) { - cur = cur.replace( " " + clazz + " ", " " ); - } - } - - // Only assign if different to avoid unneeded rendering. - finalValue = stripAndCollapse( cur ); - if ( curValue !== finalValue ) { - elem.setAttribute( "class", finalValue ); - } - } - } - } - - return this; - }, - - toggleClass: function( value, stateVal ) { - var type = typeof value, - isValidValue = type === "string" || Array.isArray( value ); - - if ( typeof stateVal === "boolean" && isValidValue ) { - return stateVal ? this.addClass( value ) : this.removeClass( value ); - } - - if ( isFunction( value ) ) { - return this.each( function( i ) { - jQuery( this ).toggleClass( - value.call( this, i, getClass( this ), stateVal ), - stateVal - ); - } ); - } - - return this.each( function() { - var className, i, self, classNames; - - if ( isValidValue ) { - - // Toggle individual class names - i = 0; - self = jQuery( this ); - classNames = classesToArray( value ); - - while ( ( className = classNames[ i++ ] ) ) { - - // Check each className given, space separated list - if ( self.hasClass( className ) ) { - self.removeClass( className ); - } else { - self.addClass( className ); - } - } - - // Toggle whole class name - } else if ( value === undefined || type === "boolean" ) { - className = getClass( this ); - if ( className ) { - - // Store className if set - dataPriv.set( this, "__className__", className ); - } - - // If the element has a class name or if we're passed `false`, - // then remove the whole classname (if there was one, the above saved it). - // Otherwise bring back whatever was previously saved (if anything), - // falling back to the empty string if nothing was stored. - if ( this.setAttribute ) { - this.setAttribute( "class", - className || value === false ? - "" : - dataPriv.get( this, "__className__" ) || "" - ); - } - } - } ); - }, - - hasClass: function( selector ) { - var className, elem, - i = 0; - - className = " " + selector + " "; - while ( ( elem = this[ i++ ] ) ) { - if ( elem.nodeType === 1 && - ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) { - return true; - } - } - - return false; - } -} ); - - - - -var rreturn = /\r/g; - -jQuery.fn.extend( { - val: function( value ) { - var hooks, ret, valueIsFunction, - elem = this[ 0 ]; - - if ( !arguments.length ) { - if ( elem ) { - hooks = jQuery.valHooks[ elem.type ] || - jQuery.valHooks[ elem.nodeName.toLowerCase() ]; - - if ( hooks && - "get" in hooks && - ( ret = hooks.get( elem, "value" ) ) !== undefined - ) { - return ret; - } - - ret = elem.value; - - // Handle most common string cases - if ( typeof ret === "string" ) { - return ret.replace( rreturn, "" ); - } - - // Handle cases where value is null/undef or number - return ret == null ? "" : ret; - } - - return; - } - - valueIsFunction = isFunction( value ); - - return this.each( function( i ) { - var val; - - if ( this.nodeType !== 1 ) { - return; - } - - if ( valueIsFunction ) { - val = value.call( this, i, jQuery( this ).val() ); - } else { - val = value; - } - - // Treat null/undefined as ""; convert numbers to string - if ( val == null ) { - val = ""; - - } else if ( typeof val === "number" ) { - val += ""; - - } else if ( Array.isArray( val ) ) { - val = jQuery.map( val, function( value ) { - return value == null ? "" : value + ""; - } ); - } - - hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; - - // If set returns undefined, fall back to normal setting - if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) { - this.value = val; - } - } ); - } -} ); - -jQuery.extend( { - valHooks: { - option: { - get: function( elem ) { - - var val = jQuery.find.attr( elem, "value" ); - return val != null ? - val : - - // Support: IE <=10 - 11 only - // option.text throws exceptions (#14686, #14858) - // Strip and collapse whitespace - // https://html.spec.whatwg.org/#strip-and-collapse-whitespace - stripAndCollapse( jQuery.text( elem ) ); - } - }, - select: { - get: function( elem ) { - var value, option, i, - options = elem.options, - index = elem.selectedIndex, - one = elem.type === "select-one", - values = one ? null : [], - max = one ? index + 1 : options.length; - - if ( index < 0 ) { - i = max; - - } else { - i = one ? index : 0; - } - - // Loop through all the selected options - for ( ; i < max; i++ ) { - option = options[ i ]; - - // Support: IE <=9 only - // IE8-9 doesn't update selected after form reset (#2551) - if ( ( option.selected || i === index ) && - - // Don't return options that are disabled or in a disabled optgroup - !option.disabled && - ( !option.parentNode.disabled || - !nodeName( option.parentNode, "optgroup" ) ) ) { - - // Get the specific value for the option - value = jQuery( option ).val(); - - // We don't need an array for one selects - if ( one ) { - return value; - } - - // Multi-Selects return an array - values.push( value ); - } - } - - return values; - }, - - set: function( elem, value ) { - var optionSet, option, - options = elem.options, - values = jQuery.makeArray( value ), - i = options.length; - - while ( i-- ) { - option = options[ i ]; - - /* eslint-disable no-cond-assign */ - - if ( option.selected = - jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1 - ) { - optionSet = true; - } - - /* eslint-enable no-cond-assign */ - } - - // Force browsers to behave consistently when non-matching value is set - if ( !optionSet ) { - elem.selectedIndex = -1; - } - return values; - } - } - } -} ); - -// Radios and checkboxes getter/setter -jQuery.each( [ "radio", "checkbox" ], function() { - jQuery.valHooks[ this ] = { - set: function( elem, value ) { - if ( Array.isArray( value ) ) { - return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 ); - } - } - }; - if ( !support.checkOn ) { - jQuery.valHooks[ this ].get = function( elem ) { - return elem.getAttribute( "value" ) === null ? "on" : elem.value; - }; - } -} ); - - - - -// Return jQuery for attributes-only inclusion - - -support.focusin = "onfocusin" in window; - - -var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, - stopPropagationCallback = function( e ) { - e.stopPropagation(); - }; - -jQuery.extend( jQuery.event, { - - trigger: function( event, data, elem, onlyHandlers ) { - - var i, cur, tmp, bubbleType, ontype, handle, special, lastElement, - eventPath = [ elem || document ], - type = hasOwn.call( event, "type" ) ? event.type : event, - namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : []; - - cur = lastElement = tmp = elem = elem || document; - - // Don't do events on text and comment nodes - if ( elem.nodeType === 3 || elem.nodeType === 8 ) { - return; - } - - // focus/blur morphs to focusin/out; ensure we're not firing them right now - if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { - return; - } - - if ( type.indexOf( "." ) > -1 ) { - - // Namespaced trigger; create a regexp to match event type in handle() - namespaces = type.split( "." ); - type = namespaces.shift(); - namespaces.sort(); - } - ontype = type.indexOf( ":" ) < 0 && "on" + type; - - // Caller can pass in a jQuery.Event object, Object, or just an event type string - event = event[ jQuery.expando ] ? - event : - new jQuery.Event( type, typeof event === "object" && event ); - - // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) - event.isTrigger = onlyHandlers ? 2 : 3; - event.namespace = namespaces.join( "." ); - event.rnamespace = event.namespace ? - new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) : - null; - - // Clean up the event in case it is being reused - event.result = undefined; - if ( !event.target ) { - event.target = elem; - } - - // Clone any incoming data and prepend the event, creating the handler arg list - data = data == null ? - [ event ] : - jQuery.makeArray( data, [ event ] ); - - // Allow special events to draw outside the lines - special = jQuery.event.special[ type ] || {}; - if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { - return; - } - - // Determine event propagation path in advance, per W3C events spec (#9951) - // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) - if ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) { - - bubbleType = special.delegateType || type; - if ( !rfocusMorph.test( bubbleType + type ) ) { - cur = cur.parentNode; - } - for ( ; cur; cur = cur.parentNode ) { - eventPath.push( cur ); - tmp = cur; - } - - // Only add window if we got to document (e.g., not plain obj or detached DOM) - if ( tmp === ( elem.ownerDocument || document ) ) { - eventPath.push( tmp.defaultView || tmp.parentWindow || window ); - } - } - - // Fire handlers on the event path - i = 0; - while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) { - lastElement = cur; - event.type = i > 1 ? - bubbleType : - special.bindType || type; - - // jQuery handler - handle = ( dataPriv.get( cur, "events" ) || {} )[ event.type ] && - dataPriv.get( cur, "handle" ); - if ( handle ) { - handle.apply( cur, data ); - } - - // Native handler - handle = ontype && cur[ ontype ]; - if ( handle && handle.apply && acceptData( cur ) ) { - event.result = handle.apply( cur, data ); - if ( event.result === false ) { - event.preventDefault(); - } - } - } - event.type = type; - - // If nobody prevented the default action, do it now - if ( !onlyHandlers && !event.isDefaultPrevented() ) { - - if ( ( !special._default || - special._default.apply( eventPath.pop(), data ) === false ) && - acceptData( elem ) ) { - - // Call a native DOM method on the target with the same name as the event. - // Don't do default actions on window, that's where global variables be (#6170) - if ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) { - - // Don't re-trigger an onFOO event when we call its FOO() method - tmp = elem[ ontype ]; - - if ( tmp ) { - elem[ ontype ] = null; - } - - // Prevent re-triggering of the same event, since we already bubbled it above - jQuery.event.triggered = type; - - if ( event.isPropagationStopped() ) { - lastElement.addEventListener( type, stopPropagationCallback ); - } - - elem[ type ](); - - if ( event.isPropagationStopped() ) { - lastElement.removeEventListener( type, stopPropagationCallback ); - } - - jQuery.event.triggered = undefined; - - if ( tmp ) { - elem[ ontype ] = tmp; - } - } - } - } - - return event.result; - }, - - // Piggyback on a donor event to simulate a different one - // Used only for `focus(in | out)` events - simulate: function( type, elem, event ) { - var e = jQuery.extend( - new jQuery.Event(), - event, - { - type: type, - isSimulated: true - } - ); - - jQuery.event.trigger( e, null, elem ); - } - -} ); - -jQuery.fn.extend( { - - trigger: function( type, data ) { - return this.each( function() { - jQuery.event.trigger( type, data, this ); - } ); - }, - triggerHandler: function( type, data ) { - var elem = this[ 0 ]; - if ( elem ) { - return jQuery.event.trigger( type, data, elem, true ); - } - } -} ); - - -// Support: Firefox <=44 -// Firefox doesn't have focus(in | out) events -// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787 -// -// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1 -// focus(in | out) events fire after focus & blur events, -// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order -// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857 -if ( !support.focusin ) { - jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) { - - // Attach a single capturing handler on the document while someone wants focusin/focusout - var handler = function( event ) { - jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) ); - }; - - jQuery.event.special[ fix ] = { - setup: function() { - var doc = this.ownerDocument || this, - attaches = dataPriv.access( doc, fix ); - - if ( !attaches ) { - doc.addEventListener( orig, handler, true ); - } - dataPriv.access( doc, fix, ( attaches || 0 ) + 1 ); - }, - teardown: function() { - var doc = this.ownerDocument || this, - attaches = dataPriv.access( doc, fix ) - 1; - - if ( !attaches ) { - doc.removeEventListener( orig, handler, true ); - dataPriv.remove( doc, fix ); - - } else { - dataPriv.access( doc, fix, attaches ); - } - } - }; - } ); -} -var location = window.location; - -var nonce = Date.now(); - -var rquery = ( /\?/ ); - - - -// Cross-browser xml parsing -jQuery.parseXML = function( data ) { - var xml; - if ( !data || typeof data !== "string" ) { - return null; - } - - // Support: IE 9 - 11 only - // IE throws on parseFromString with invalid input. - try { - xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); - } catch ( e ) { - xml = undefined; - } - - if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { - jQuery.error( "Invalid XML: " + data ); - } - return xml; -}; - - -var - rbracket = /\[\]$/, - rCRLF = /\r?\n/g, - rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, - rsubmittable = /^(?:input|select|textarea|keygen)/i; - -function buildParams( prefix, obj, traditional, add ) { - var name; - - if ( Array.isArray( obj ) ) { - - // Serialize array item. - jQuery.each( obj, function( i, v ) { - if ( traditional || rbracket.test( prefix ) ) { - - // Treat each array item as a scalar. - add( prefix, v ); - - } else { - - // Item is non-scalar (array or object), encode its numeric index. - buildParams( - prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]", - v, - traditional, - add - ); - } - } ); - - } else if ( !traditional && toType( obj ) === "object" ) { - - // Serialize object item. - for ( name in obj ) { - buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); - } - - } else { - - // Serialize scalar item. - add( prefix, obj ); - } -} - -// Serialize an array of form elements or a set of -// key/values into a query string -jQuery.param = function( a, traditional ) { - var prefix, - s = [], - add = function( key, valueOrFunction ) { - - // If value is a function, invoke it and use its return value - var value = isFunction( valueOrFunction ) ? - valueOrFunction() : - valueOrFunction; - - s[ s.length ] = encodeURIComponent( key ) + "=" + - encodeURIComponent( value == null ? "" : value ); - }; - - if ( a == null ) { - return ""; - } - - // If an array was passed in, assume that it is an array of form elements. - if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { - - // Serialize the form elements - jQuery.each( a, function() { - add( this.name, this.value ); - } ); - - } else { - - // If traditional, encode the "old" way (the way 1.3.2 or older - // did it), otherwise encode params recursively. - for ( prefix in a ) { - buildParams( prefix, a[ prefix ], traditional, add ); - } - } - - // Return the resulting serialization - return s.join( "&" ); -}; - -jQuery.fn.extend( { - serialize: function() { - return jQuery.param( this.serializeArray() ); - }, - serializeArray: function() { - return this.map( function() { - - // Can add propHook for "elements" to filter or add form elements - var elements = jQuery.prop( this, "elements" ); - return elements ? jQuery.makeArray( elements ) : this; - } ) - .filter( function() { - var type = this.type; - - // Use .is( ":disabled" ) so that fieldset[disabled] works - return this.name && !jQuery( this ).is( ":disabled" ) && - rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && - ( this.checked || !rcheckableType.test( type ) ); - } ) - .map( function( i, elem ) { - var val = jQuery( this ).val(); - - if ( val == null ) { - return null; - } - - if ( Array.isArray( val ) ) { - return jQuery.map( val, function( val ) { - return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; - } ); - } - - return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; - } ).get(); - } -} ); - - -var - r20 = /%20/g, - rhash = /#.*$/, - rantiCache = /([?&])_=[^&]*/, - rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg, - - // #7653, #8125, #8152: local protocol detection - rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, - rnoContent = /^(?:GET|HEAD)$/, - rprotocol = /^\/\//, - - /* Prefilters - * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) - * 2) These are called: - * - BEFORE asking for a transport - * - AFTER param serialization (s.data is a string if s.processData is true) - * 3) key is the dataType - * 4) the catchall symbol "*" can be used - * 5) execution will start with transport dataType and THEN continue down to "*" if needed - */ - prefilters = {}, - - /* Transports bindings - * 1) key is the dataType - * 2) the catchall symbol "*" can be used - * 3) selection will start with transport dataType and THEN go to "*" if needed - */ - transports = {}, - - // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression - allTypes = "*/".concat( "*" ), - - // Anchor tag for parsing the document origin - originAnchor = document.createElement( "a" ); - originAnchor.href = location.href; - -// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport -function addToPrefiltersOrTransports( structure ) { - - // dataTypeExpression is optional and defaults to "*" - return function( dataTypeExpression, func ) { - - if ( typeof dataTypeExpression !== "string" ) { - func = dataTypeExpression; - dataTypeExpression = "*"; - } - - var dataType, - i = 0, - dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || []; - - if ( isFunction( func ) ) { - - // For each dataType in the dataTypeExpression - while ( ( dataType = dataTypes[ i++ ] ) ) { - - // Prepend if requested - if ( dataType[ 0 ] === "+" ) { - dataType = dataType.slice( 1 ) || "*"; - ( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func ); - - // Otherwise append - } else { - ( structure[ dataType ] = structure[ dataType ] || [] ).push( func ); - } - } - } - }; -} - -// Base inspection function for prefilters and transports -function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) { - - var inspected = {}, - seekingTransport = ( structure === transports ); - - function inspect( dataType ) { - var selected; - inspected[ dataType ] = true; - jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) { - var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR ); - if ( typeof dataTypeOrTransport === "string" && - !seekingTransport && !inspected[ dataTypeOrTransport ] ) { - - options.dataTypes.unshift( dataTypeOrTransport ); - inspect( dataTypeOrTransport ); - return false; - } else if ( seekingTransport ) { - return !( selected = dataTypeOrTransport ); - } - } ); - return selected; - } - - return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" ); -} - -// A special extend for ajax options -// that takes "flat" options (not to be deep extended) -// Fixes #9887 -function ajaxExtend( target, src ) { - var key, deep, - flatOptions = jQuery.ajaxSettings.flatOptions || {}; - - for ( key in src ) { - if ( src[ key ] !== undefined ) { - ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ]; - } - } - if ( deep ) { - jQuery.extend( true, target, deep ); - } - - return target; -} - -/* Handles responses to an ajax request: - * - finds the right dataType (mediates between content-type and expected dataType) - * - returns the corresponding response - */ -function ajaxHandleResponses( s, jqXHR, responses ) { - - var ct, type, finalDataType, firstDataType, - contents = s.contents, - dataTypes = s.dataTypes; - - // Remove auto dataType and get content-type in the process - while ( dataTypes[ 0 ] === "*" ) { - dataTypes.shift(); - if ( ct === undefined ) { - ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" ); - } - } - - // Check if we're dealing with a known content-type - if ( ct ) { - for ( type in contents ) { - if ( contents[ type ] && contents[ type ].test( ct ) ) { - dataTypes.unshift( type ); - break; - } - } - } - - // Check to see if we have a response for the expected dataType - if ( dataTypes[ 0 ] in responses ) { - finalDataType = dataTypes[ 0 ]; - } else { - - // Try convertible dataTypes - for ( type in responses ) { - if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) { - finalDataType = type; - break; - } - if ( !firstDataType ) { - firstDataType = type; - } - } - - // Or just use first one - finalDataType = finalDataType || firstDataType; - } - - // If we found a dataType - // We add the dataType to the list if needed - // and return the corresponding response - if ( finalDataType ) { - if ( finalDataType !== dataTypes[ 0 ] ) { - dataTypes.unshift( finalDataType ); - } - return responses[ finalDataType ]; - } -} - -/* Chain conversions given the request and the original response - * Also sets the responseXXX fields on the jqXHR instance - */ -function ajaxConvert( s, response, jqXHR, isSuccess ) { - var conv2, current, conv, tmp, prev, - converters = {}, - - // Work with a copy of dataTypes in case we need to modify it for conversion - dataTypes = s.dataTypes.slice(); - - // Create converters map with lowercased keys - if ( dataTypes[ 1 ] ) { - for ( conv in s.converters ) { - converters[ conv.toLowerCase() ] = s.converters[ conv ]; - } - } - - current = dataTypes.shift(); - - // Convert to each sequential dataType - while ( current ) { - - if ( s.responseFields[ current ] ) { - jqXHR[ s.responseFields[ current ] ] = response; - } - - // Apply the dataFilter if provided - if ( !prev && isSuccess && s.dataFilter ) { - response = s.dataFilter( response, s.dataType ); - } - - prev = current; - current = dataTypes.shift(); - - if ( current ) { - - // There's only work to do if current dataType is non-auto - if ( current === "*" ) { - - current = prev; - - // Convert response if prev dataType is non-auto and differs from current - } else if ( prev !== "*" && prev !== current ) { - - // Seek a direct converter - conv = converters[ prev + " " + current ] || converters[ "* " + current ]; - - // If none found, seek a pair - if ( !conv ) { - for ( conv2 in converters ) { - - // If conv2 outputs current - tmp = conv2.split( " " ); - if ( tmp[ 1 ] === current ) { - - // If prev can be converted to accepted input - conv = converters[ prev + " " + tmp[ 0 ] ] || - converters[ "* " + tmp[ 0 ] ]; - if ( conv ) { - - // Condense equivalence converters - if ( conv === true ) { - conv = converters[ conv2 ]; - - // Otherwise, insert the intermediate dataType - } else if ( converters[ conv2 ] !== true ) { - current = tmp[ 0 ]; - dataTypes.unshift( tmp[ 1 ] ); - } - break; - } - } - } - } - - // Apply converter (if not an equivalence) - if ( conv !== true ) { - - // Unless errors are allowed to bubble, catch and return them - if ( conv && s.throws ) { - response = conv( response ); - } else { - try { - response = conv( response ); - } catch ( e ) { - return { - state: "parsererror", - error: conv ? e : "No conversion from " + prev + " to " + current - }; - } - } - } - } - } - } - - return { state: "success", data: response }; -} - -jQuery.extend( { - - // Counter for holding the number of active queries - active: 0, - - // Last-Modified header cache for next request - lastModified: {}, - etag: {}, - - ajaxSettings: { - url: location.href, - type: "GET", - isLocal: rlocalProtocol.test( location.protocol ), - global: true, - processData: true, - async: true, - contentType: "application/x-www-form-urlencoded; charset=UTF-8", - - /* - timeout: 0, - data: null, - dataType: null, - username: null, - password: null, - cache: null, - throws: false, - traditional: false, - headers: {}, - */ - - accepts: { - "*": allTypes, - text: "text/plain", - html: "text/html", - xml: "application/xml, text/xml", - json: "application/json, text/javascript" - }, - - contents: { - xml: /\bxml\b/, - html: /\bhtml/, - json: /\bjson\b/ - }, - - responseFields: { - xml: "responseXML", - text: "responseText", - json: "responseJSON" - }, - - // Data converters - // Keys separate source (or catchall "*") and destination types with a single space - converters: { - - // Convert anything to text - "* text": String, - - // Text to html (true = no transformation) - "text html": true, - - // Evaluate text as a json expression - "text json": JSON.parse, - - // Parse text as xml - "text xml": jQuery.parseXML - }, - - // For options that shouldn't be deep extended: - // you can add your own custom options here if - // and when you create one that shouldn't be - // deep extended (see ajaxExtend) - flatOptions: { - url: true, - context: true - } - }, - - // Creates a full fledged settings object into target - // with both ajaxSettings and settings fields. - // If target is omitted, writes into ajaxSettings. - ajaxSetup: function( target, settings ) { - return settings ? - - // Building a settings object - ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) : - - // Extending ajaxSettings - ajaxExtend( jQuery.ajaxSettings, target ); - }, - - ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), - ajaxTransport: addToPrefiltersOrTransports( transports ), - - // Main method - ajax: function( url, options ) { - - // If url is an object, simulate pre-1.5 signature - if ( typeof url === "object" ) { - options = url; - url = undefined; - } - - // Force options to be an object - options = options || {}; - - var transport, - - // URL without anti-cache param - cacheURL, - - // Response headers - responseHeadersString, - responseHeaders, - - // timeout handle - timeoutTimer, - - // Url cleanup var - urlAnchor, - - // Request state (becomes false upon send and true upon completion) - completed, - - // To know if global events are to be dispatched - fireGlobals, - - // Loop variable - i, - - // uncached part of the url - uncached, - - // Create the final options object - s = jQuery.ajaxSetup( {}, options ), - - // Callbacks context - callbackContext = s.context || s, - - // Context for global events is callbackContext if it is a DOM node or jQuery collection - globalEventContext = s.context && - ( callbackContext.nodeType || callbackContext.jquery ) ? - jQuery( callbackContext ) : - jQuery.event, - - // Deferreds - deferred = jQuery.Deferred(), - completeDeferred = jQuery.Callbacks( "once memory" ), - - // Status-dependent callbacks - statusCode = s.statusCode || {}, - - // Headers (they are sent all at once) - requestHeaders = {}, - requestHeadersNames = {}, - - // Default abort message - strAbort = "canceled", - - // Fake xhr - jqXHR = { - readyState: 0, - - // Builds headers hashtable if needed - getResponseHeader: function( key ) { - var match; - if ( completed ) { - if ( !responseHeaders ) { - responseHeaders = {}; - while ( ( match = rheaders.exec( responseHeadersString ) ) ) { - responseHeaders[ match[ 1 ].toLowerCase() + " " ] = - ( responseHeaders[ match[ 1 ].toLowerCase() + " " ] || [] ) - .concat( match[ 2 ] ); - } - } - match = responseHeaders[ key.toLowerCase() + " " ]; - } - return match == null ? null : match.join( ", " ); - }, - - // Raw string - getAllResponseHeaders: function() { - return completed ? responseHeadersString : null; - }, - - // Caches the header - setRequestHeader: function( name, value ) { - if ( completed == null ) { - name = requestHeadersNames[ name.toLowerCase() ] = - requestHeadersNames[ name.toLowerCase() ] || name; - requestHeaders[ name ] = value; - } - return this; - }, - - // Overrides response content-type header - overrideMimeType: function( type ) { - if ( completed == null ) { - s.mimeType = type; - } - return this; - }, - - // Status-dependent callbacks - statusCode: function( map ) { - var code; - if ( map ) { - if ( completed ) { - - // Execute the appropriate callbacks - jqXHR.always( map[ jqXHR.status ] ); - } else { - - // Lazy-add the new callbacks in a way that preserves old ones - for ( code in map ) { - statusCode[ code ] = [ statusCode[ code ], map[ code ] ]; - } - } - } - return this; - }, - - // Cancel the request - abort: function( statusText ) { - var finalText = statusText || strAbort; - if ( transport ) { - transport.abort( finalText ); - } - done( 0, finalText ); - return this; - } - }; - - // Attach deferreds - deferred.promise( jqXHR ); - - // Add protocol if not provided (prefilters might expect it) - // Handle falsy url in the settings object (#10093: consistency with old signature) - // We also use the url parameter if available - s.url = ( ( url || s.url || location.href ) + "" ) - .replace( rprotocol, location.protocol + "//" ); - - // Alias method option to type as per ticket #12004 - s.type = options.method || options.type || s.method || s.type; - - // Extract dataTypes list - s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ]; - - // A cross-domain request is in order when the origin doesn't match the current origin. - if ( s.crossDomain == null ) { - urlAnchor = document.createElement( "a" ); - - // Support: IE <=8 - 11, Edge 12 - 15 - // IE throws exception on accessing the href property if url is malformed, - // e.g. http://example.com:80x/ - try { - urlAnchor.href = s.url; - - // Support: IE <=8 - 11 only - // Anchor's host property isn't correctly set when s.url is relative - urlAnchor.href = urlAnchor.href; - s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !== - urlAnchor.protocol + "//" + urlAnchor.host; - } catch ( e ) { - - // If there is an error parsing the URL, assume it is crossDomain, - // it can be rejected by the transport if it is invalid - s.crossDomain = true; - } - } - - // Convert data if not already a string - if ( s.data && s.processData && typeof s.data !== "string" ) { - s.data = jQuery.param( s.data, s.traditional ); - } - - // Apply prefilters - inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); - - // If request was aborted inside a prefilter, stop there - if ( completed ) { - return jqXHR; - } - - // We can fire global events as of now if asked to - // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118) - fireGlobals = jQuery.event && s.global; - - // Watch for a new set of requests - if ( fireGlobals && jQuery.active++ === 0 ) { - jQuery.event.trigger( "ajaxStart" ); - } - - // Uppercase the type - s.type = s.type.toUpperCase(); - - // Determine if request has content - s.hasContent = !rnoContent.test( s.type ); - - // Save the URL in case we're toying with the If-Modified-Since - // and/or If-None-Match header later on - // Remove hash to simplify url manipulation - cacheURL = s.url.replace( rhash, "" ); - - // More options handling for requests with no content - if ( !s.hasContent ) { - - // Remember the hash so we can put it back - uncached = s.url.slice( cacheURL.length ); - - // If data is available and should be processed, append data to url - if ( s.data && ( s.processData || typeof s.data === "string" ) ) { - cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data; - - // #9682: remove data so that it's not used in an eventual retry - delete s.data; - } - - // Add or update anti-cache param if needed - if ( s.cache === false ) { - cacheURL = cacheURL.replace( rantiCache, "$1" ); - uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce++ ) + uncached; - } - - // Put hash and anti-cache on the URL that will be requested (gh-1732) - s.url = cacheURL + uncached; - - // Change '%20' to '+' if this is encoded form body content (gh-2658) - } else if ( s.data && s.processData && - ( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) { - s.data = s.data.replace( r20, "+" ); - } - - // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. - if ( s.ifModified ) { - if ( jQuery.lastModified[ cacheURL ] ) { - jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] ); - } - if ( jQuery.etag[ cacheURL ] ) { - jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] ); - } - } - - // Set the correct header, if data is being sent - if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { - jqXHR.setRequestHeader( "Content-Type", s.contentType ); - } - - // Set the Accepts header for the server, depending on the dataType - jqXHR.setRequestHeader( - "Accept", - s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ? - s.accepts[ s.dataTypes[ 0 ] ] + - ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : - s.accepts[ "*" ] - ); - - // Check for headers option - for ( i in s.headers ) { - jqXHR.setRequestHeader( i, s.headers[ i ] ); - } - - // Allow custom headers/mimetypes and early abort - if ( s.beforeSend && - ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) { - - // Abort if not done already and return - return jqXHR.abort(); - } - - // Aborting is no longer a cancellation - strAbort = "abort"; - - // Install callbacks on deferreds - completeDeferred.add( s.complete ); - jqXHR.done( s.success ); - jqXHR.fail( s.error ); - - // Get transport - transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); - - // If no transport, we auto-abort - if ( !transport ) { - done( -1, "No Transport" ); - } else { - jqXHR.readyState = 1; - - // Send global event - if ( fireGlobals ) { - globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); - } - - // If request was aborted inside ajaxSend, stop there - if ( completed ) { - return jqXHR; - } - - // Timeout - if ( s.async && s.timeout > 0 ) { - timeoutTimer = window.setTimeout( function() { - jqXHR.abort( "timeout" ); - }, s.timeout ); - } - - try { - completed = false; - transport.send( requestHeaders, done ); - } catch ( e ) { - - // Rethrow post-completion exceptions - if ( completed ) { - throw e; - } - - // Propagate others as results - done( -1, e ); - } - } - - // Callback for when everything is done - function done( status, nativeStatusText, responses, headers ) { - var isSuccess, success, error, response, modified, - statusText = nativeStatusText; - - // Ignore repeat invocations - if ( completed ) { - return; - } - - completed = true; - - // Clear timeout if it exists - if ( timeoutTimer ) { - window.clearTimeout( timeoutTimer ); - } - - // Dereference transport for early garbage collection - // (no matter how long the jqXHR object will be used) - transport = undefined; - - // Cache response headers - responseHeadersString = headers || ""; - - // Set readyState - jqXHR.readyState = status > 0 ? 4 : 0; - - // Determine if successful - isSuccess = status >= 200 && status < 300 || status === 304; - - // Get response data - if ( responses ) { - response = ajaxHandleResponses( s, jqXHR, responses ); - } - - // Convert no matter what (that way responseXXX fields are always set) - response = ajaxConvert( s, response, jqXHR, isSuccess ); - - // If successful, handle type chaining - if ( isSuccess ) { - - // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. - if ( s.ifModified ) { - modified = jqXHR.getResponseHeader( "Last-Modified" ); - if ( modified ) { - jQuery.lastModified[ cacheURL ] = modified; - } - modified = jqXHR.getResponseHeader( "etag" ); - if ( modified ) { - jQuery.etag[ cacheURL ] = modified; - } - } - - // if no content - if ( status === 204 || s.type === "HEAD" ) { - statusText = "nocontent"; - - // if not modified - } else if ( status === 304 ) { - statusText = "notmodified"; - - // If we have data, let's convert it - } else { - statusText = response.state; - success = response.data; - error = response.error; - isSuccess = !error; - } - } else { - - // Extract error from statusText and normalize for non-aborts - error = statusText; - if ( status || !statusText ) { - statusText = "error"; - if ( status < 0 ) { - status = 0; - } - } - } - - // Set data for the fake xhr object - jqXHR.status = status; - jqXHR.statusText = ( nativeStatusText || statusText ) + ""; - - // Success/Error - if ( isSuccess ) { - deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); - } else { - deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); - } - - // Status-dependent callbacks - jqXHR.statusCode( statusCode ); - statusCode = undefined; - - if ( fireGlobals ) { - globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError", - [ jqXHR, s, isSuccess ? success : error ] ); - } - - // Complete - completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); - - if ( fireGlobals ) { - globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); - - // Handle the global AJAX counter - if ( !( --jQuery.active ) ) { - jQuery.event.trigger( "ajaxStop" ); - } - } - } - - return jqXHR; - }, - - getJSON: function( url, data, callback ) { - return jQuery.get( url, data, callback, "json" ); - }, - - getScript: function( url, callback ) { - return jQuery.get( url, undefined, callback, "script" ); - } -} ); - -jQuery.each( [ "get", "post" ], function( i, method ) { - jQuery[ method ] = function( url, data, callback, type ) { - - // Shift arguments if data argument was omitted - if ( isFunction( data ) ) { - type = type || callback; - callback = data; - data = undefined; - } - - // The url can be an options object (which then must have .url) - return jQuery.ajax( jQuery.extend( { - url: url, - type: method, - dataType: type, - data: data, - success: callback - }, jQuery.isPlainObject( url ) && url ) ); - }; -} ); - - -jQuery._evalUrl = function( url, options ) { - return jQuery.ajax( { - url: url, - - // Make this explicit, since user can override this through ajaxSetup (#11264) - type: "GET", - dataType: "script", - cache: true, - async: false, - global: false, - - // Only evaluate the response if it is successful (gh-4126) - // dataFilter is not invoked for failure responses, so using it instead - // of the default converter is kludgy but it works. - converters: { - "text script": function() {} - }, - dataFilter: function( response ) { - jQuery.globalEval( response, options ); - } - } ); -}; - - -jQuery.fn.extend( { - wrapAll: function( html ) { - var wrap; - - if ( this[ 0 ] ) { - if ( isFunction( html ) ) { - html = html.call( this[ 0 ] ); - } - - // The elements to wrap the target around - wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true ); - - if ( this[ 0 ].parentNode ) { - wrap.insertBefore( this[ 0 ] ); - } - - wrap.map( function() { - var elem = this; - - while ( elem.firstElementChild ) { - elem = elem.firstElementChild; - } - - return elem; - } ).append( this ); - } - - return this; - }, - - wrapInner: function( html ) { - if ( isFunction( html ) ) { - return this.each( function( i ) { - jQuery( this ).wrapInner( html.call( this, i ) ); - } ); - } - - return this.each( function() { - var self = jQuery( this ), - contents = self.contents(); - - if ( contents.length ) { - contents.wrapAll( html ); - - } else { - self.append( html ); - } - } ); - }, - - wrap: function( html ) { - var htmlIsFunction = isFunction( html ); - - return this.each( function( i ) { - jQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html ); - } ); - }, - - unwrap: function( selector ) { - this.parent( selector ).not( "body" ).each( function() { - jQuery( this ).replaceWith( this.childNodes ); - } ); - return this; - } -} ); - - -jQuery.expr.pseudos.hidden = function( elem ) { - return !jQuery.expr.pseudos.visible( elem ); -}; -jQuery.expr.pseudos.visible = function( elem ) { - return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length ); -}; - - - - -jQuery.ajaxSettings.xhr = function() { - try { - return new window.XMLHttpRequest(); - } catch ( e ) {} -}; - -var xhrSuccessStatus = { - - // File protocol always yields status code 0, assume 200 - 0: 200, - - // Support: IE <=9 only - // #1450: sometimes IE returns 1223 when it should be 204 - 1223: 204 - }, - xhrSupported = jQuery.ajaxSettings.xhr(); - -support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported ); -support.ajax = xhrSupported = !!xhrSupported; - -jQuery.ajaxTransport( function( options ) { - var callback, errorCallback; - - // Cross domain only allowed if supported through XMLHttpRequest - if ( support.cors || xhrSupported && !options.crossDomain ) { - return { - send: function( headers, complete ) { - var i, - xhr = options.xhr(); - - xhr.open( - options.type, - options.url, - options.async, - options.username, - options.password - ); - - // Apply custom fields if provided - if ( options.xhrFields ) { - for ( i in options.xhrFields ) { - xhr[ i ] = options.xhrFields[ i ]; - } - } - - // Override mime type if needed - if ( options.mimeType && xhr.overrideMimeType ) { - xhr.overrideMimeType( options.mimeType ); - } - - // X-Requested-With header - // For cross-domain requests, seeing as conditions for a preflight are - // akin to a jigsaw puzzle, we simply never set it to be sure. - // (it can always be set on a per-request basis or even using ajaxSetup) - // For same-domain requests, won't change header if already provided. - if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) { - headers[ "X-Requested-With" ] = "XMLHttpRequest"; - } - - // Set headers - for ( i in headers ) { - xhr.setRequestHeader( i, headers[ i ] ); - } - - // Callback - callback = function( type ) { - return function() { - if ( callback ) { - callback = errorCallback = xhr.onload = - xhr.onerror = xhr.onabort = xhr.ontimeout = - xhr.onreadystatechange = null; - - if ( type === "abort" ) { - xhr.abort(); - } else if ( type === "error" ) { - - // Support: IE <=9 only - // On a manual native abort, IE9 throws - // errors on any property access that is not readyState - if ( typeof xhr.status !== "number" ) { - complete( 0, "error" ); - } else { - complete( - - // File: protocol always yields status 0; see #8605, #14207 - xhr.status, - xhr.statusText - ); - } - } else { - complete( - xhrSuccessStatus[ xhr.status ] || xhr.status, - xhr.statusText, - - // Support: IE <=9 only - // IE9 has no XHR2 but throws on binary (trac-11426) - // For XHR2 non-text, let the caller handle it (gh-2498) - ( xhr.responseType || "text" ) !== "text" || - typeof xhr.responseText !== "string" ? - { binary: xhr.response } : - { text: xhr.responseText }, - xhr.getAllResponseHeaders() - ); - } - } - }; - }; - - // Listen to events - xhr.onload = callback(); - errorCallback = xhr.onerror = xhr.ontimeout = callback( "error" ); - - // Support: IE 9 only - // Use onreadystatechange to replace onabort - // to handle uncaught aborts - if ( xhr.onabort !== undefined ) { - xhr.onabort = errorCallback; - } else { - xhr.onreadystatechange = function() { - - // Check readyState before timeout as it changes - if ( xhr.readyState === 4 ) { - - // Allow onerror to be called first, - // but that will not handle a native abort - // Also, save errorCallback to a variable - // as xhr.onerror cannot be accessed - window.setTimeout( function() { - if ( callback ) { - errorCallback(); - } - } ); - } - }; - } - - // Create the abort callback - callback = callback( "abort" ); - - try { - - // Do send the request (this may raise an exception) - xhr.send( options.hasContent && options.data || null ); - } catch ( e ) { - - // #14683: Only rethrow if this hasn't been notified as an error yet - if ( callback ) { - throw e; - } - } - }, - - abort: function() { - if ( callback ) { - callback(); - } - } - }; - } -} ); - - - - -// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432) -jQuery.ajaxPrefilter( function( s ) { - if ( s.crossDomain ) { - s.contents.script = false; - } -} ); - -// Install script dataType -jQuery.ajaxSetup( { - accepts: { - script: "text/javascript, application/javascript, " + - "application/ecmascript, application/x-ecmascript" - }, - contents: { - script: /\b(?:java|ecma)script\b/ - }, - converters: { - "text script": function( text ) { - jQuery.globalEval( text ); - return text; - } - } -} ); - -// Handle cache's special case and crossDomain -jQuery.ajaxPrefilter( "script", function( s ) { - if ( s.cache === undefined ) { - s.cache = false; - } - if ( s.crossDomain ) { - s.type = "GET"; - } -} ); - -// Bind script tag hack transport -jQuery.ajaxTransport( "script", function( s ) { - - // This transport only deals with cross domain or forced-by-attrs requests - if ( s.crossDomain || s.scriptAttrs ) { - var script, callback; - return { - send: function( _, complete ) { - script = jQuery( " - - - - - - -
    - -
    -
    -
    -

    Serialized Form

    -
    - -
    - -
    -
    - - diff --git a/docs/site/apidocs/src-html/javax/measure/BinaryPrefix.html b/docs/site/apidocs/src-html/javax/measure/BinaryPrefix.html deleted file mode 100644 index 4b7d9af5..00000000 --- a/docs/site/apidocs/src-html/javax/measure/BinaryPrefix.html +++ /dev/null @@ -1,324 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure;
    -031
    -032/**
    -033 * Provides support for common binary prefixes to be used by units. For example:
    -034 * <pre>
    -035 * {@code import static systems.uom.unicode.CLDR.*;  // Static import (from Unicode System).
    -036 * import static javax.measure.BinaryPrefix.*; // Static import.
    -037 * import javax.measure.*;
    -038 * import systems.uom.quantity.Information; // (from Systems Quantities)
    -039 * ...
    -040 * Unit<Information> MEBIT  = MEBI(BIT);
    -041 * Unit<Information> GIBYTE = GIBI(BYTE);} 
    -042 * </pre>
    -043 * You could also apply <code>Unit.prefix</code>:
    -044 * <pre>
    -045 * {@code ...
    -046 * Unit<Information> MEBIT  = BIT.prefix(MEBI);
    -047 * Unit<Information> GIBYTE = BYTE.prefix(GIBI);}
    -048 * </pre>
    -049 * 
    -050 * <p>
    -051 * <b>Do not use ordinal() to obtain the numeric representation of BinaryPrefix. Use getValue() and getExponent() instead.</b>
    -052 * </p>
    -053 * 
    -054 * <dl>
    -055 * <dt><span class="strong">Implementation Requirements</span></dt><dd>This is an immutable and thread-safe enum.</dd>
    -056 * </dl> 
    -057 *
    -058 * @author <a href="mailto:werner@units.tech">Werner Keil</a>
    -059 * @version 2.3, October 31, 2023
    -060 * @see <a href="https://en.wikipedia.org/wiki/Binary_prefix">Wikipedia: Binary Prefix</a>
    -061 * @since 2.0
    -062 */
    -063public enum BinaryPrefix implements Prefix {
    -064    /** Prefix for 1024. */
    -065    KIBI("Ki", 1),
    -066    /** Prefix for 1024<sup>2</sup>. */
    -067    MEBI("Mi", 2),
    -068    /** Prefix for 1024<sup>3</sup>. */
    -069    GIBI("Gi", 3),
    -070    /** Prefix for 1024<sup>4</sup>. */
    -071    TEBI("Ti", 4),
    -072    /** Prefix for 1024<sup>5</sup>. */
    -073    PEBI("Pi", 5),
    -074    /** Prefix for 1024<sup>6</sup>. */
    -075    EXBI("Ei", 6),
    -076    /** Prefix for 1024<sup>7</sup>. */
    -077    ZEBI("Zi", 7),
    -078    /** Prefix for 1024<sup>8</sup>. */
    -079    YOBI("Yi", 8);
    -080
    -081    /**
    -082     * The symbol of this prefix, as returned by {@link #getSymbol}.
    -083     *
    -084     * @serial
    -085     * @see #getSymbol()
    -086     */
    -087    private final String symbol;
    -088
    -089    /**
    -090     * Exponent part of the associated factor in base^exponent representation.
    -091     */
    -092    private final int exponent;
    -093
    -094    /**
    -095     * Creates a new prefix.
    -096     *
    -097     * @param symbol
    -098     *          the symbol of this prefix.
    -099     * @param exponent
    -100     *          part of the associated factor in base^exponent representation.
    -101     */
    -102    private BinaryPrefix(String symbol, int exponent) {
    -103        this.symbol = symbol;
    -104        this.exponent = exponent;
    -105    }
    -106
    -107    /**
    -108     * Returns the specified unit multiplied by the factor <code>1024</code> (binary prefix).
    -109     *
    -110     * @param <Q>
    -111     *          type of the quantity measured by the unit.
    -112     * @param unit
    -113     *          any unit.
    -114     * @return <code>unit.prefix(1024)</code>.
    -115     */
    -116    public static <Q extends Quantity<Q>> Unit<Q> KIBI(Unit<Q> unit) {
    -117        return unit.prefix(KIBI);
    -118    }
    -119
    -120    /**
    -121     * Returns the specified unit multiplied by the factor <code>1024<sup>2</sup></code> (binary prefix).
    -122     *
    -123     * @param <Q>
    -124     *          type of the quantity measured by the unit.
    -125     * @param unit
    -126     *          any unit.
    -127     * @return <code>unit.prefix(1024<sup>2</sup>)</code>.
    -128     */
    -129    public static <Q extends Quantity<Q>> Unit<Q> MEBI(Unit<Q> unit) {
    -130        return unit.prefix(MEBI);
    -131    }
    -132
    -133    /**
    -134     * Returns the specified unit multiplied by the factor <code>1024<sup>3</sup></code> (binary prefix).
    -135     *
    -136     * @param <Q>
    -137     *          type of the quantity measured by the unit.
    -138     * @param unit
    -139     *          any unit.
    -140     * @return <code>unit.prefix(1024<sup>3</sup>)</code>.
    -141     */
    -142    public static <Q extends Quantity<Q>> Unit<Q> GIBI(Unit<Q> unit) {
    -143        return unit.prefix(GIBI);
    -144    }
    -145
    -146    /**
    -147     * Returns the specified unit multiplied by the factor <code>1024<sup>4</sup></code> (binary prefix).
    -148     *
    -149     * @param <Q>
    -150     *          type of the quantity measured by the unit.
    -151     * @param unit
    -152     *          any unit.
    -153     * @return <code>unit.prefix(1024<sup>4</sup>)</code>.
    -154     */
    -155    public static <Q extends Quantity<Q>> Unit<Q> TEBI(Unit<Q> unit) {
    -156        return unit.prefix(TEBI);
    -157    }
    -158
    -159    /**
    -160     * Returns the specified unit multiplied by the factor <code>1024<sup>5</sup></code> (binary prefix).
    -161     *
    -162     * @param <Q>
    -163     *          type of the quantity measured by the unit.
    -164     * @param unit
    -165     *          any unit.
    -166     * @return <code>unit.prefix(1024<sup>5</sup>)</code>.
    -167     */
    -168    public static <Q extends Quantity<Q>> Unit<Q> PEBI(Unit<Q> unit) {
    -169        return unit.prefix(PEBI);
    -170    }
    -171
    -172    /**
    -173     * Returns the specified unit multiplied by the factor <code>1024<sup>6</sup></code> (binary prefix).
    -174     *
    -175     * @param <Q>
    -176     *          type of the quantity measured by the unit.
    -177     * @param unit
    -178     *          any unit.
    -179     * @return <code>unit.prefix(1024<sup>6</sup>)</code>.
    -180     */
    -181    public static <Q extends Quantity<Q>> Unit<Q> EXBI(Unit<Q> unit) {
    -182        return unit.prefix(EXBI);
    -183    }
    -184
    -185    /**
    -186     * Returns the specified unit multiplied by the factor <code>1024<sup>7</sup></code> (binary prefix).
    -187     *
    -188     * @param <Q>
    -189     *          type of the quantity measured by the unit.
    -190     * @param unit
    -191     *          any unit.
    -192     * @return <code>unit.prefix(1024<sup>7</sup>)</code>.
    -193     */
    -194    public static <Q extends Quantity<Q>> Unit<Q> ZEBI(Unit<Q> unit) {
    -195        return unit.prefix(ZEBI);
    -196    }
    -197
    -198    /**
    -199     * Returns the specified unit multiplied by the factor <code>1024<sup>8</sup></code> (binary prefix).
    -200     *
    -201     * @param <Q>
    -202     *          type of the quantity measured by the unit.
    -203     * @param unit
    -204     *          any unit.
    -205     * @return <code>unit.prefix(1024<sup>8</sup>)</code>.
    -206     */
    -207    public static <Q extends Quantity<Q>> Unit<Q> YOBI(Unit<Q> unit) {
    -208        return unit.prefix(YOBI);
    -209    }
    -210
    -211    /**
    -212     * Returns the symbol of this prefix.
    -213     *
    -214     * @return this prefix symbol, not {@code null}.
    -215     */
    -216    @Override
    -217    public String getSymbol() {
    -218        return symbol;
    -219    }
    -220
    -221    /**
    -222     * Base part of the associated factor in {@code base^exponent} representation. For binary prefix, this is always 1024.
    -223     */
    -224    @Override
    -225    public Integer getValue() {
    -226        return 1024;
    -227    }
    -228
    -229    /**
    -230     * Exponent part of the associated factor in {@code base^exponent} representation.
    -231     */
    -232    @Override
    -233    public int getExponent() {
    -234        return exponent;
    -235    }
    -236
    -237    /**
    -238     * Returns the name of this prefix.
    -239     *
    -240     * @return this prefix name, not {@code null}.
    -241     */
    -242    @Override
    -243    public String getName() {
    -244        return name();
    -245    }
    -246}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/site/apidocs/src-html/javax/measure/Dimension.html b/docs/site/apidocs/src-html/javax/measure/Dimension.html deleted file mode 100644 index 7f2b0813..00000000 --- a/docs/site/apidocs/src-html/javax/measure/Dimension.html +++ /dev/null @@ -1,177 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure;
    -031
    -032import java.util.Map;
    -033
    -034/**
    -035 * Represents the dimension of a unit.
    -036 *
    -037 * <p>
    -038 * Concrete dimensions are obtained through the {@link Unit#getDimension()} method.
    -039 * </p>
    -040 *
    -041 * <p>
    -042 * Two units {@code u1} and {@code u2} are {@linkplain Unit#isCompatible(Unit) compatible} if and only if
    -043 * {@code u1.getDimension().equals(u2.getDimension())}.
    -044 * </p>
    -045 *
    -046 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -047 * @author <a href="mailto:werner@uom.technology">Werner Keil</a>
    -048 * @version 1.0, August 8, 2016
    -049 * @since 1.0
    -050 * @see Unit
    -051 * @see <a href="http://en.wikipedia.org/wiki/Dimensional_analysis">Wikipedia: Dimensional Analysis</a>
    -052 */
    -053public interface Dimension {
    -054    /**
    -055     * Returns the product of this dimension with the one specified.
    -056     *
    -057     * @param multiplicand
    -058     *          the dimension multiplicand.
    -059     * @return {@code this * multiplicand}
    -060     */
    -061    Dimension multiply(Dimension multiplicand);
    -062
    -063    /**
    -064     * Returns the quotient of this dimension with the one specified.
    -065     *
    -066     * @param divisor
    -067     *          the dimension divisor.
    -068     * @return {@code this / divisor}
    -069     */
    -070    Dimension divide(Dimension divisor);
    -071
    -072    /**
    -073     * Returns this dimension raised to an exponent. <code>(this<sup>n</sup>)</code>
    -074     *
    -075     * @param n
    -076     *          power to raise this {@code Dimension} to.
    -077     * @return <code>this<sup>n</sup></code>
    -078     */
    -079    Dimension pow(int n);
    -080
    -081    /**
    -082     * Returns the given root of this dimension.
    -083     *
    -084     * @param n
    -085     *          the root's order.
    -086     * @return the result of taking the given root of this dimension.
    -087     * @throws ArithmeticException
    -088     *           if {@code n == 0}.
    -089     */
    -090    Dimension root(int n);
    -091
    -092    /**
    -093     * Returns the (fundamental) base dimensions and their exponent whose product is this dimension, or {@code null} if this dimension is a base
    -094     * dimension.
    -095     *
    -096     * @return the mapping between the fundamental dimensions and their exponent.
    -097     */
    -098    Map<? extends Dimension, Integer> getBaseDimensions();
    -099}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/site/apidocs/src-html/javax/measure/IncommensurableException.html b/docs/site/apidocs/src-html/javax/measure/IncommensurableException.html deleted file mode 100644 index b06a0b3f..00000000 --- a/docs/site/apidocs/src-html/javax/measure/IncommensurableException.html +++ /dev/null @@ -1,164 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure;
    -031
    -032/**
    -033 * Signals that a problem of some sort has occurred due to incommensurable of some quantities/units. Only commensurable quantity (quantities with the
    -034 * same dimensions) may be compared, equated, added, or subtracted. Also, one unit can be converted to another unit only if both units are
    -035 * commensurable.
    -036 * <p>
    -037 * This is a <strong>checked</strong> exception, so it deliberately doesn't inherit from <code>MeasurementException</code> like most other exceptions.
    -038 * </p>
    -039 *
    -040 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -041 * @author <a href="mailto:werner@uom.technology">Werner Keil</a>
    -042 * @version 1.0, August 8, 2016
    -043 * @since 1.0
    -044 *
    -045 * @see <a href="http://en.wikipedia.org/wiki/Unit_commensurability#Commensurability">Wikipedia: Unit Commensurability</a>
    -046 */
    -047public class IncommensurableException extends Exception {
    -048    /**
    -049     * For cross-version compatibility.
    -050     */
    -051    private static final long serialVersionUID = -3676414292638136515L;
    -052
    -053    /**
    -054     * Constructs a {@code IncommensurableException} with the given message.
    -055     *
    -056     * @param message
    -057     *            the detail message, or {@code null} if none.
    -058     */
    -059    public IncommensurableException(final String message) {
    -060        super(message);
    -061    }
    -062
    -063    /**
    -064     * Constructs a {@code IncommensurableException} with the given cause.
    -065     *
    -066     * @param cause
    -067     *            the cause of this exception, or {@code null} if none.
    -068     *
    -069     */
    -070    public IncommensurableException(final Throwable cause) {
    -071        super(cause);
    -072    }
    -073
    -074    /**
    -075     * Constructs a {@code IncommensurableException} with the given message and cause.
    -076     *
    -077     * @param message
    -078     *            the detail message, or {@code null} if none.
    -079     * @param cause
    -080     *            the cause of this exception, or {@code null} if none.
    -081     *
    -082     */
    -083    public IncommensurableException(final String message, final Throwable cause) {
    -084        super(message, cause);
    -085    }
    -086}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/site/apidocs/src-html/javax/measure/MeasurementError.html b/docs/site/apidocs/src-html/javax/measure/MeasurementError.html deleted file mode 100644 index e742aa79..00000000 --- a/docs/site/apidocs/src-html/javax/measure/MeasurementError.html +++ /dev/null @@ -1,167 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure;
    -031
    -032/**
    -033 * This error is used to indicate serious problems with creating, retrieving and manipulating units of measurement objects.
    -034 *
    -035 * <dl>
    -036 * <dt><span class="strong">Implementation Requirements:</span></dt>
    -037 * <dd>This class is intended for use in a single thread. Exception thrown when errors occur during Units of Measurement operations.</dd>
    -038 * </dl>
    -039 * 
    -040 * @author <a href="mailto:werner@uom.technology">Werner Keil</a>
    -041 * @version 2.2, Feb 3, 2021
    -042 * @since 2.1
    -043 */
    -044public class MeasurementError extends Error {
    -045
    -046    /**
    -047         * 
    -048         */
    -049    private static final long serialVersionUID = -412360965273525777L;
    -050
    -051    /**
    -052     * Constructs a {@code MeasurementError} with no detail message.
    -053     */
    -054    public MeasurementError() {
    -055        super();
    -056    }
    -057
    -058    /**
    -059     * Constructs a {@code MeasurementError} with the specified detail message.
    -060     *
    -061     * @param message
    -062     *            the detail message.
    -063     */
    -064    public MeasurementError(final String message) {
    -065        super(message);
    -066    }
    -067
    -068    /**
    -069     * Constructs a {@code MeasurementError} with the given cause.
    -070     *
    -071     * @param cause
    -072     *            the cause of this exception, or {@code null} if none.
    -073     */
    -074    public MeasurementError(final Throwable cause) {
    -075        super(cause);
    -076    }
    -077
    -078    /**
    -079     * Constructs a {@code MeasurementError} with the specified detail message and cause.
    -080     *
    -081     * @param message
    -082     *            the detail message.
    -083     * @param cause
    -084     *            the cause, may be {@code null}
    -085     */
    -086    public MeasurementError(final String message, final Throwable cause) {
    -087        super(message, cause);
    -088    }
    -089}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/site/apidocs/src-html/javax/measure/MeasurementException.html b/docs/site/apidocs/src-html/javax/measure/MeasurementException.html deleted file mode 100644 index 63db532c..00000000 --- a/docs/site/apidocs/src-html/javax/measure/MeasurementException.html +++ /dev/null @@ -1,177 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030//
    -031// This source code implements specifications defined by the Java
    -032// Community Process. In order to remain compliant with the specification
    -033// DO NOT add / change / or delete method signatures!
    -034//
    -035package javax.measure;
    -036
    -037/**
    -038 * Exception used to indicate a problem while dealing with units of measurement.
    -039 * <p>
    -040 * This exception is used to indicate problems with creating, retrieving and manipulating units of measurement objects.
    -041 * </p>
    -042 *
    -043 * <dl>
    -044 * <dt><span class="strong">Implementation Requirements:</span></dt>
    -045 * <dd>This class is intended for use in a single thread. Exception thrown when errors occur during Units of Measurement operations.</dd>
    -046 * </dl>
    -047 *
    -048 * @author <a href="mailto:werner@uom.technology">Werner Keil</a>
    -049 * @version 2.0, Jul 4, 2020
    -050 * @since 1.0
    -051 */
    -052public class MeasurementException extends RuntimeException {
    -053
    -054    /**
    -055     * For cross-version compatibility.
    -056     */
    -057    private static final long serialVersionUID = 8959937033300443361L;
    -058
    -059    /**
    -060     * Constructs a {@code MeasurementException} with the given message.
    -061     *
    -062     * @param message
    -063     *            the detail message, or {@code null} if none.
    -064     */
    -065    public MeasurementException(final String message) {
    -066        super(message);
    -067    }
    -068
    -069    /**
    -070     * Constructs a {@code MeasurementException} with the given cause.
    -071     *
    -072     * @param cause
    -073     *            the cause of this exception, or {@code null} if none.
    -074     */
    -075    public MeasurementException(final Throwable cause) {
    -076        super(cause);
    -077    }
    -078
    -079    /**
    -080     * Constructs a {@code MeasurementException} with the given message and cause.
    -081     *
    -082     * @param message
    -083     *            the detail message, or {@code null} if none.
    -084     * @param cause
    -085     *            the cause of this exception, or {@code null} if none.
    -086     *
    -087     */
    -088    public MeasurementException(final String message, final Throwable cause) {
    -089        super(message, cause);
    -090    }
    -091
    -092    /**
    -093     * Constructs a {@code MeasurementException} with no given message.
    -094     *
    -095     */
    -096    protected MeasurementException() {
    -097        super();
    -098    }
    -099}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/site/apidocs/src-html/javax/measure/MetricPrefix.html b/docs/site/apidocs/src-html/javax/measure/MetricPrefix.html deleted file mode 100644 index b6d3ea10..00000000 --- a/docs/site/apidocs/src-html/javax/measure/MetricPrefix.html +++ /dev/null @@ -1,616 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure;
    -031
    -032/**
    -033 * Provides support for the 24 prefixes used in the metric system (decimal multiples and submultiples of units). For example:
    -034 *
    -035 * <pre>
    -036 * {@code import static tech.units.indriya.unit.Units.*;  // Static import (from the RI).
    -037 * import static javax.measure.MetricPrefix.*; // Static import.
    -038 * import javax.measure.*;
    -039 * import javax.measure.quantity.*;
    -040 * ...
    -041 * Unit<Pressure> HECTOPASCAL = HECTO(PASCAL);
    -042 * Unit<Length> KILOMETRE = KILO(METRE);} 
    -043 * </pre>
    -044 * You could also apply <code>Unit.prefix</code>:
    -045 * <pre>
    -046 * {@code ...
    -047 * Unit<Pressure> HECTOPASCAL = PASCAL.prefix(HECTO);
    -048 * Unit<Length> KILOMETRE = METRE.prefix(KILO);}
    -049 * </pre>
    -050 * 
    -051 * <p>
    -052 * <b>Do not use ordinal() to obtain the numeric representation of MetricPrefix. Use getValue() and getExponent() instead.</b>
    -053 * </p>
    -054 * 
    -055 * <dl>
    -056 * <dt><span class="strong">Implementation Requirements</span></dt><dd>This is an immutable and thread-safe enum.</dd>
    -057 * </dl>
    -058 * 
    -059 * @see <a href="https://en.wikipedia.org/wiki/Metric_prefix">Wikipedia: Metric Prefix</a>
    -060 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -061 * @author <a href="mailto:werner@units.tech">Werner Keil</a>
    -062 * @version 2.4, October 31, 2023
    -063 * @since 2.0
    -064 */
    -065public enum MetricPrefix implements Prefix {
    -066        /** Prefix for 10<sup>30</sup>. */
    -067    QUETTA("Q", 30),
    -068        /** Prefix for 10<sup>27</sup>. */
    -069    RONNA("R", 27),
    -070        /** Prefix for 10<sup>24</sup>. */
    -071    YOTTA("Y", 24),
    -072    /** Prefix for 10<sup>21</sup>. */
    -073    ZETTA("Z", 21),
    -074    /** Prefix for 10<sup>18</sup>. */
    -075    EXA("E", 18),
    -076    /** Prefix for 10<sup>15</sup>. */
    -077    PETA("P", 15),
    -078    /** Prefix for 10<sup>12</sup>. */
    -079    TERA("T", 12),
    -080    /** Prefix for 10<sup>9</sup>.
    -081     * @see <a href="https://en.wikipedia.org/wiki/Giga-">Wikipedia: Giga</a>  
    -082     */
    -083    GIGA("G", 9),
    -084    /** Prefix for 10<sup>6</sup>. 
    -085     * @see <a href="https://en.wikipedia.org/wiki/Mega-">Wikipedia: Mega</a> */
    -086    MEGA("M", 6),
    -087    /** Prefix for 10<sup>3</sup>.
    -088     * @see <a href="https://en.wikipedia.org/wiki/Kilo-">Wikipedia: Kilo</a> 
    -089     */
    -090    KILO("k", 3),
    -091    /** Prefix for 10<sup>2</sup>. 
    -092     * @see <a href="https://en.wikipedia.org/wiki/Hecto-">Wikipedia: Hecto</a> */
    -093    HECTO("h", 2),
    -094    /** Prefix for 10<sup>1</sup>. 
    -095     * @see <a href="https://en.wikipedia.org/wiki/Deca-">Wikipedia: Deca</a> */
    -096    DECA("da", 1),
    -097    /** Prefix for 10<sup>-1</sup>. 
    -098     * @see <a href="https://en.wikipedia.org/wiki/Deci-">Wikipedia: Deci</a> */
    -099    DECI("d", -1),
    -100    /** Prefix for 10<sup>-2</sup>.
    -101     * @see <a href="https://en.wikipedia.org/wiki/Centi-">Wikipedia: Centi</a> */     
    -102    CENTI("c", -2),
    -103    /** Prefix for 10<sup>-3</sup>.
    -104     * @see <a href="https://en.wikipedia.org/wiki/Milli-">Wikipedia: Milli</a> */
    -105    MILLI("m", -3),
    -106    /** Prefix for 10<sup>-6</sup>.
    -107     * @see <a href="https://en.wikipedia.org/wiki/Micro-">Wikipedia: Micro</a> */
    -108    MICRO("\u00b5", -6),
    -109    /** Prefix for 10<sup>-9</sup>.
    -110     * @see <a href="https://en.wikipedia.org/wiki/Nano-">Wikipedia: Nano</a> */
    -111    NANO("n", -9),
    -112    /** Prefix for 10<sup>-12</sup>. */
    -113    PICO("p", -12),
    -114    /** Prefix for 10<sup>-15</sup>. */
    -115    FEMTO("f", -15),
    -116    /** Prefix for 10<sup>-18</sup>. */
    -117    ATTO("a", -18),
    -118    /** Prefix for 10<sup>-21</sup>. */
    -119    ZEPTO("z", -21),
    -120    /** Prefix for 10<sup>-24</sup>. */
    -121    YOCTO("y", -24),
    -122        /** Prefix for 10<sup>-27</sup>. */
    -123    RONTO("r", -27),
    -124    /** Prefix for 10<sup>-30</sup>. */
    -125    QUECTO("q", -30);
    -126
    -127    /**
    -128     * The symbol of this prefix, as returned by {@link #getSymbol}.
    -129     *
    -130     * @serial
    -131     * @see #getSymbol()
    -132     */
    -133    private final String symbol;
    -134
    -135    /**
    -136     * Exponent part of the associated factor in base^exponent representation.
    -137     */
    -138    private final int exponent;
    -139
    -140    /**
    -141     * Creates a new prefix.
    -142     *
    -143     * @param symbol
    -144     *          the symbol of this prefix.
    -145     * @param exponent
    -146     *          part of the associated factor in base^exponent representation.
    -147     */
    -148    private MetricPrefix(String symbol, int exponent) {
    -149        this.symbol = symbol;
    -150        this.exponent = exponent;
    -151    }
    -152    
    -153    /**
    -154     * Returns the specified unit multiplied by the factor <code>10<sup>30</sup></code>
    -155     *
    -156     * @param <Q>
    -157     *          type of the quantity measured by the unit.
    -158     * @param unit
    -159     *          any unit.
    -160     * @return <code>unit.prefix(1e30)</code>.
    -161     * @see #QUETTA
    -162     */
    -163    public static <Q extends Quantity<Q>> Unit<Q> QUETTA(Unit<Q> unit) {
    -164        return unit.prefix(QUETTA);
    -165    }
    -166    
    -167    /**
    -168     * Returns the specified unit multiplied by the factor <code>10<sup>27</sup></code>
    -169     *
    -170     * @param <Q>
    -171     *          type of the quantity measured by the unit.
    -172     * @param unit
    -173     *          any unit.
    -174     * @return <code>unit.prefix(1e27)</code>.
    -175     * @see #RONNA
    -176     */
    -177    public static <Q extends Quantity<Q>> Unit<Q> RONNA(Unit<Q> unit) {
    -178        return unit.prefix(RONNA);
    -179    }
    -180
    -181    /**
    -182     * Returns the specified unit multiplied by the factor <code>10<sup>24</sup></code>
    -183     *
    -184     * @param <Q>
    -185     *          type of the quantity measured by the unit.
    -186     * @param unit
    -187     *          any unit.
    -188     * @return <code>unit.prefix(1e24)</code>.
    -189     * @see #YOTTA
    -190     */
    -191    public static <Q extends Quantity<Q>> Unit<Q> YOTTA(Unit<Q> unit) {
    -192        return unit.prefix(YOTTA);
    -193    }
    -194
    -195    /**
    -196     * Returns the specified unit multiplied by the factor <code>10<sup>21</sup></code>
    -197     *
    -198     * @param <Q>
    -199     *          type of the quantity measured by the unit.
    -200     * @param unit
    -201     *          any unit.
    -202     * @return <code>unit.prefix(1e21)</code>.
    -203     * @see #ZETTA
    -204     */
    -205    public static <Q extends Quantity<Q>> Unit<Q> ZETTA(Unit<Q> unit) {
    -206        return unit.prefix(ZETTA);
    -207    }
    -208
    -209    /**
    -210     * Returns the specified unit multiplied by the factor <code>10<sup>18</sup></code>
    -211     *
    -212     * @param <Q>
    -213     *          type of the quantity measured by the unit.
    -214     * @param unit
    -215     *          any unit.
    -216     * @return <code>unit.prefix(1e18)</code>.
    -217     * @see #EXA
    -218     */
    -219    public static <Q extends Quantity<Q>> Unit<Q> EXA(Unit<Q> unit) {
    -220        return unit.prefix(EXA);
    -221    }
    -222
    -223    /**
    -224     * Returns the specified unit multiplied by the factor <code>10<sup>15</sup></code>
    -225     *
    -226     * @param <Q>
    -227     *          type of the quantity measured by the unit.
    -228     * @param unit
    -229     *          any unit.
    -230     * @return <code>unit.prefix(1e15)</code>.
    -231     * @see #PETA
    -232     */
    -233    public static <Q extends Quantity<Q>> Unit<Q> PETA(Unit<Q> unit) {
    -234        return unit.prefix(PETA);
    -235    }
    -236
    -237    /**
    -238     * Returns the specified unit multiplied by the factor <code>10<sup>12</sup></code>
    -239     *
    -240     * @param <Q>
    -241     *          type of the quantity measured by the unit.
    -242     * @param unit
    -243     *          any unit.
    -244     * @return <code>unit.prefix(1e12)</code>.
    -245     * @see #TERA
    -246     */
    -247    public static <Q extends Quantity<Q>> Unit<Q> TERA(Unit<Q> unit) {
    -248        return unit.prefix(TERA);
    -249    }
    -250
    -251    /**
    -252     * Returns the specified unit multiplied by the factor <code>10<sup>9</sup></code>
    -253     *
    -254     * @param <Q>
    -255     *          type of the quantity measured by the unit.
    -256     * @param unit
    -257     *          any unit.
    -258     * @return <code>unit.prefix(1e9)</code>.
    -259     * @see #GIGA
    -260     */
    -261    public static <Q extends Quantity<Q>> Unit<Q> GIGA(Unit<Q> unit) {
    -262        return unit.prefix(GIGA);
    -263    }
    -264
    -265    /**
    -266     * Returns the specified unit multiplied by the factor <code>10<sup>6</sup></code>
    -267     *
    -268     * @param <Q>
    -269     *          type of the quantity measured by the unit.
    -270     * @param unit
    -271     *          any unit.
    -272     * @return <code>unit.prefix(1e6)</code>.
    -273     * @see #MEGA
    -274     */
    -275    public static <Q extends Quantity<Q>> Unit<Q> MEGA(Unit<Q> unit) {
    -276        return unit.prefix(MEGA);
    -277    }
    -278
    -279    /**
    -280     * Returns the specified unit multiplied by the factor <code>10<sup>3</sup></code>
    -281     *
    -282     * @param <Q>
    -283     *          type of the quantity measured by the unit.
    -284     * @param unit
    -285     *          any unit.
    -286     * @return <code>unit.prefix(1e3)</code>.
    -287     * @see #KILO
    -288     */
    -289    public static <Q extends Quantity<Q>> Unit<Q> KILO(Unit<Q> unit) {
    -290        return unit.prefix(KILO);
    -291    }
    -292
    -293    /**
    -294     * Returns the specified unit multiplied by the factor <code>10<sup>2</sup></code>
    -295     *
    -296     * @param <Q>
    -297     *          type of the quantity measured by the unit.
    -298     * @param unit
    -299     *          any unit.
    -300     * @return <code>unit.prefix(1e2)</code>.
    -301     * @see #HECTO
    -302     */
    -303    public static <Q extends Quantity<Q>> Unit<Q> HECTO(Unit<Q> unit) {
    -304        return unit.prefix(HECTO);
    -305    }
    -306
    -307    /**
    -308     * Returns the specified unit multiplied by the factor <code>10<sup>1</sup></code>
    -309     *
    -310     * @param <Q>
    -311     *          type of the quantity measured by the unit.
    -312     * @param unit
    -313     *          any unit.
    -314     * @return <code>unit.prefix(1e1)</code>.
    -315     * @see #DECA
    -316     */
    -317    public static <Q extends Quantity<Q>> Unit<Q> DECA(Unit<Q> unit) {
    -318        return unit.prefix(DECA);
    -319    }
    -320    
    -321    /**
    -322     * US alias for <code>DECA</code>.
    -323     *
    -324     * @param <Q>
    -325     *          type of the quantity measured by the unit.
    -326     * @param unit
    -327     *          any unit.
    -328     * @return <code>unit.prefix(1e1)</code>.
    -329     * @see #DECA
    -330     */
    -331    public static <Q extends Quantity<Q>> Unit<Q> DEKA(Unit<Q> unit) {
    -332        return unit.prefix(DECA);
    -333    }
    -334
    -335    /**
    -336     * Returns the specified unit multiplied by the factor <code>10<sup>-1</sup></code>
    -337     *
    -338     * @param <Q>
    -339     *          type of the quantity measured by the unit.
    -340     * @param unit
    -341     *          any unit.
    -342     * @return <code>unit.prefix(1e-1)</code>.
    -343     * @see #DECI 
    -344     */
    -345    public static <Q extends Quantity<Q>> Unit<Q> DECI(Unit<Q> unit) {
    -346        return unit.prefix(DECI);
    -347    }
    -348
    -349    /**
    -350     * Returns the specified unit multiplied by the factor <code>10<sup>-2</sup></code>
    -351     *
    -352     * @param <Q>
    -353     *          type of the quantity measured by the unit.
    -354     * @param unit
    -355     *          any unit.
    -356     * @return <code>unit.prefix(1e-2)</code>.
    -357     * @see #CENTI
    -358     */
    -359    public static <Q extends Quantity<Q>> Unit<Q> CENTI(Unit<Q> unit) {
    -360        return unit.prefix(CENTI);
    -361    }
    -362
    -363    /**
    -364     * Returns the specified unit multiplied by the factor <code>10<sup>-3</sup></code>
    -365     *
    -366     * @param <Q>
    -367     *          type of the quantity measured by the unit.
    -368     * @param unit
    -369     *          any unit.
    -370     * @return <code>unit.prefix(1e-3)</code>.
    -371     * @see #MILLI
    -372     */
    -373    public static <Q extends Quantity<Q>> Unit<Q> MILLI(Unit<Q> unit) {
    -374        return unit.prefix(MILLI);
    -375    }
    -376
    -377    /**
    -378     * Returns the specified unit multiplied by the factor <code>10<sup>-6</sup></code>
    -379     *
    -380     * @param <Q>
    -381     *          type of the quantity measured by the unit.
    -382     * @param unit
    -383     *          any unit.
    -384     * @return <code>unit.prefix(1e-6)</code>.
    -385     * @see #MICRO 
    -386     */
    -387    public static <Q extends Quantity<Q>> Unit<Q> MICRO(Unit<Q> unit) {
    -388        return unit.prefix(MICRO);
    -389    }
    -390
    -391    /**
    -392     * Returns the specified unit multiplied by the factor <code>10<sup>-9</sup></code>
    -393     *
    -394     * @param <Q>
    -395     *          type of the quantity measured by the unit.
    -396     * @param unit
    -397     *          any unit.
    -398     * @return <code>unit.prefix(1e-9)</code>.
    -399     * @see #NANO 
    -400     */
    -401    public static <Q extends Quantity<Q>> Unit<Q> NANO(Unit<Q> unit) {
    -402        return unit.prefix(NANO);
    -403    }
    -404
    -405    /**
    -406     * Returns the specified unit multiplied by the factor <code>10<sup>-12</sup></code>
    -407     *
    -408     * @param <Q>
    -409     *          type of the quantity measured by the unit.
    -410     * @param unit
    -411     *          any unit.
    -412     * @return <code>unit.prefix(1e-12)</code>.
    -413     * @see #PICO
    -414     */
    -415    public static <Q extends Quantity<Q>> Unit<Q> PICO(Unit<Q> unit) {
    -416        return unit.prefix(PICO);
    -417    }
    -418
    -419    /**
    -420     * Returns the specified unit multiplied by the factor <code>10<sup>-15</sup></code>
    -421     *
    -422     * @param <Q>
    -423     *          type of the quantity measured by the unit.
    -424     * @param unit
    -425     *          any unit.
    -426     * @return <code>unit.prefix(1e-15)</code>.
    -427     * @see #FEMTO
    -428     */
    -429    public static <Q extends Quantity<Q>> Unit<Q> FEMTO(Unit<Q> unit) {
    -430        return unit.prefix(FEMTO);
    -431    }
    -432
    -433    /**
    -434     * Returns the specified unit multiplied by the factor <code>10<sup>-18</sup></code>
    -435     *
    -436     * @param <Q>
    -437     *          type of the quantity measured by the unit.
    -438     * @param unit
    -439     *          any unit.
    -440     * @return <code>unit.prefix(1e-18)</code>.
    -441     * @see #ATTO 
    -442     */
    -443    public static <Q extends Quantity<Q>> Unit<Q> ATTO(Unit<Q> unit) {
    -444        return unit.prefix(ATTO);
    -445    }
    -446
    -447    /**
    -448     * Returns the specified unit multiplied by the factor <code>10<sup>-21</sup></code>
    -449     *
    -450     * @param <Q>
    -451     *          type of the quantity measured by the unit.
    -452     * @param unit
    -453     *          any unit.
    -454     * @return <code>unit.prefix(1e-21)</code>.
    -455     * #see ZEPTO
    -456     */
    -457    public static <Q extends Quantity<Q>> Unit<Q> ZEPTO(Unit<Q> unit) {
    -458        return unit.prefix(ZEPTO);
    -459    }
    -460
    -461    /**
    -462     * Returns the specified unit multiplied by the factor <code>10<sup>-24</sup></code>
    -463     *
    -464     * @param <Q>
    -465     *          type of the quantity measured by the unit.
    -466     * @param unit
    -467     *          any unit.
    -468     * @return <code>unit.prefix(1e-24)</code>.
    -469     * @see #YOCTO
    -470     */
    -471    public static <Q extends Quantity<Q>> Unit<Q> YOCTO(Unit<Q> unit) {
    -472        return unit.prefix(YOCTO);
    -473    }
    -474    
    -475    /**
    -476     * Returns the specified unit multiplied by the factor <code>10<sup>-27</sup></code>
    -477     *
    -478     * @param <Q>
    -479     *          type of the quantity measured by the unit.
    -480     * @param unit
    -481     *          any unit.
    -482     * @return <code>unit.prefix(1e-27)</code>.
    -483     * @see #RONTO
    -484     */
    -485    public static <Q extends Quantity<Q>> Unit<Q> RONTO(Unit<Q> unit) {
    -486        return unit.prefix(RONTO);
    -487    }
    -488
    -489    /**
    -490     * Returns the specified unit multiplied by the factor <code>10<sup>-30</sup></code>
    -491     *
    -492     * @param <Q>
    -493     *          type of the quantity measured by the unit.
    -494     * @param unit
    -495     *          any unit.
    -496     * @return <code>unit.prefix(1e-30)</code>.
    -497     * @see #QUECTO
    -498     */
    -499    public static <Q extends Quantity<Q>> Unit<Q> QUECTO(Unit<Q> unit) {
    -500        return unit.prefix(QUECTO);
    -501    }
    -502    
    -503    /**
    -504     * Returns the symbol of this prefix.
    -505     *
    -506     * @return this prefix symbol, not {@code null}.
    -507     */
    -508    @Override
    -509    public String getSymbol() {
    -510        return symbol;
    -511    }
    -512
    -513    /**
    -514     * Base part of the associated factor in {@code base^exponent} representation. For metric prefix, this is always 10.
    -515     */
    -516    @Override
    -517    public Integer getValue() {
    -518        return 10;
    -519    }
    -520
    -521    /**
    -522     * Exponent part of the associated factor in {@code base^exponent} representation.
    -523     */
    -524    @Override
    -525    public int getExponent() {
    -526        return exponent;
    -527    }
    -528
    -529    /**
    -530     * Returns the name of this prefix.
    -531     *
    -532     * @return this prefix name, not {@code null}.
    -533     */
    -534    @Override
    -535    public String getName() {
    -536        return name();
    -537    }
    -538}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/site/apidocs/src-html/javax/measure/Prefix.html b/docs/site/apidocs/src-html/javax/measure/Prefix.html deleted file mode 100644 index e773cfe2..00000000 --- a/docs/site/apidocs/src-html/javax/measure/Prefix.html +++ /dev/null @@ -1,148 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure;
    -031
    -032/**
    -033 * A unit prefix is a specifier or mnemonic that is prepended to units of measurement to indicate multiples or fractions of the units.
    -034 *
    -035 * @see <a href="https://en.wikipedia.org/wiki/Unit_prefix">Wikipedia: Unit Prefix</a>
    -036 * @author <a href="mailto:werner@uom.technology">Werner Keil</a>
    -037 * @version 1.4, April 3, 2023
    -038 * @since 2.0
    -039 */
    -040public interface Prefix {
    -041    /**
    -042     * Returns the name of this prefix.
    -043     *
    -044     * @return this prefix name, not {@code null}.
    -045     */
    -046    String getName();
    -047
    -048    /**
    -049     * Returns the symbol of this prefix.
    -050     *
    -051     * @return this prefix symbol, not {@code null}.
    -052     */
    -053    public String getSymbol();
    -054
    -055    /**
    -056     * Returns the value of this prefix. If the {@code exponent} is different from {@code 1}, this value is the {@code base} part of the associated
    -057     * factor in {@code base^exponent} representation.
    -058     * 
    -059     * @return The prefix value.
    -060     */
    -061    Number getValue();
    -062
    -063    /**
    -064     * Exponent part of the associated factor in {@code base^exponent} representation. For different factors, e.g. rational numbers like {@code 1/4}
    -065     * the exponent is always {@code 1}.
    -066     *
    -067     * @return the exponent part of this prefix.
    -068     */
    -069    int getExponent();
    -070}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/site/apidocs/src-html/javax/measure/Quantity.Scale.html b/docs/site/apidocs/src-html/javax/measure/Quantity.Scale.html deleted file mode 100644 index 2d2c44f4..00000000 --- a/docs/site/apidocs/src-html/javax/measure/Quantity.Scale.html +++ /dev/null @@ -1,394 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure;
    -031
    -032/**
    -033 * Represents a quantitative property of a phenomenon, body, or substance, that
    -034 * can be quantified by measurement. {@link javax.measure.quantity.Mass Mass},
    -035 * time, distance, heat, and angular separation are among the familiar examples
    -036 * of quantitative properties.
    -037 * <p>
    -038 * <code> {@literal Unit<Mass>} pound = ... {@literal Quantity<Length>} size = ... {@literal Sensor<Temperature>}<br>
    -039 * thermometer = ... {@literal Vector3D<Speed>} aircraftSpeed = ... </code>
    -040 * </p>
    -041 *
    -042 * <dl>
    -043 * <dt><span class="strong">Arithmetic operations</span></dt>
    -044 * </dl> 
    -045 * This interface defines some arithmetic operations between {@code Quantity}
    -046 * instances. All implementations shall produce <em>equivalent</em> results for
    -047 * the same operation applied on equivalent quantities. Two quantities are
    -048 * equivalent if, after conversion to the same unit of measurement, they have
    -049 * the same numerical value (ignoring rounding errors). For example 2000 metres
    -050 * is equivalent to 2 km, but 2°C is not equivalent to 2 K; it is equivalent to
    -051 * 275.15 K instead. Above requirement applied to addition means that 2°C + 2 K
    -052 * shall be equivalent to 275.15 K + 2 K.
    -053 *
    -054 * <p>All operations shall preserve the
    -055 * <a href="https://en.wikiversity.org/wiki/Basic_Laws_of_Algebra">basic laws
    -056 * of algebra</a>, in particular <b>commutativity</b> of addition and
    -057 * multiplication (<var>A</var> + <var>B</var> = <var>B</var> + <var>A</var>)
    -058 * and <b>associativity</b> of addition and multiplication (<var>A</var> +
    -059 * <var>B</var>) + <var>C</var> = <var>A</var> + (<var>B</var> + <var>C</var>).
    -060 * In order to preserve those algebra laws, this specification requires all
    -061 * arithmetic operations to execute <em>as is</em> all operands were converted
    -062 * to {@linkplain Unit#getSystemUnit() system unit} before the operation is
    -063 * carried out, and the result converted back to any compatible unit at
    -064 * implementation choice. For example 4 cm + 1 inch shall produce any result
    -065 * <em>equivalent</em> to 0.04 m + 0.0254 m.</p>
    -066 *
    -067 * <p>Implementations are allowed to avoid conversion to system unit if the
    -068 * result is guaranteed to be equivalent. This is often the case when the
    -069 * conversion between quantity unit and system unit is only a
    -070 * {@linkplain UnitConverter#isLinear() scale factor}. However this is not
    -071 * the case for conversions applying an offset or more complex formula.
    -072 * For example 2°C + 1°C = 274.15°C, not 3°C. This counter-intuitive result
    -073 * is essential for preserving algebra laws like associativity, and is also
    -074 * the expected result from a thermodynamic point of view.</p>
    -075 *
    -076 * <dl>
    -077 * <dt><span class="strong">API Note:</span></dt><dd>This interface places no restrictions on the mutability of
    -078 *          implementations, however immutability is strongly recommended. All
    -079 *          implementations must be {@link Comparable}.</dd>
    -080 * </dl>
    -081 *
    -082 * @param <Q>
    -083 *            The type of the quantity.
    -084 *
    -085 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -086 * @author <a href="mailto:martin.desruisseaux@geomatys.com">Martin
    -087 *         Desruisseaux</a>
    -088 * @author <a href="mailto:werner@uom.technology">Werner Keil</a>
    -089 * @author <a href="mailto:otaviopolianasantana@gmail.com">Otavio Santana</a>
    -090 * @see Unit
    -091 * @see <a href="http://en.wikipedia.org/wiki/Quantity">Wikipedia: Quantity</a>
    -092 * @see <a href="http://martinfowler.com/eaaDev/quantity.html">Martin Fowler -
    -093 *      Quantity</a>
    -094 * @version 2.5, May 20, 2023
    -095 * @since 1.0
    -096 */
    -097public interface Quantity<Q extends Quantity<Q>> {
    -098    
    -099   /**
    -100    * The scale of a {@link Quantity}, either {@code ABSOLUTE} or {@code RELATIVE}.
    -101    *
    -102    * @since 2.0
    -103    * @see <a href="https://en.wikipedia.org/wiki/Absolute_scale">Wikipedia: Absolute scale</a>
    -104    */
    -105    public static enum Scale {
    -106        /** 
    -107         * Absolute scale
    -108         * @see <a href="https://en.wikipedia.org/wiki/Absolute_scale">Wikipedia: Absolute scale</a> 
    -109         */
    -110        ABSOLUTE, 
    -111        /** 
    -112         * Relative scale 
    -113         */
    -114        RELATIVE
    -115    }
    -116       
    -117    /**
    -118     * Returns the sum of this {@code Quantity} with the one specified.
    -119     * The result shall be as if this quantity and the given addend were
    -120     * converted to {@linkplain Unit#getSystemUnit() system unit} before
    -121     * to be added, and the result converted back to the unit of this
    -122     * quantity or any other compatible unit at implementation choice.
    -123     *
    -124     * @param addend
    -125     *            the {@code Quantity} to be added.
    -126     * @return {@code this + addend}.
    -127     */
    -128    Quantity<Q> add(Quantity<Q> addend);
    -129
    -130    /**
    -131     * Returns the difference between this {@code Quantity} and the one specified.
    -132     * The result shall be as if this quantity and the given subtrahend were
    -133     * converted to {@linkplain Unit#getSystemUnit() system unit} before
    -134     * to be subtracted, and the result converted back to the unit of this
    -135     * quantity or any other compatible unit at implementation choice.
    -136     *
    -137     * @param subtrahend
    -138     *            the {@code Quantity} to be subtracted.
    -139     * @return <code>this - subtrahend</code>.
    -140     */
    -141    Quantity<Q> subtract(Quantity<Q> subtrahend);
    -142
    -143    /**
    -144     * Returns the quotient of this {@code Quantity} divided by the {@code Quantity}
    -145     * specified.
    -146     * The result shall be as if this quantity and the given divisor were
    -147     * converted to {@linkplain Unit#getSystemUnit() system unit} before
    -148     * to be divided, and the result converted back to the unit of this
    -149     * quantity or any other compatible unit at implementation choice.
    -150     *
    -151     * @throws ClassCastException
    -152     *             if the type of an element in the specified operation is
    -153     *             incompatible with this quantity
    -154     *
    -155     * @param divisor
    -156     *            the {@code Quantity} divisor.
    -157     * @return <code>this / divisor</code>.
    -158     */
    -159    Quantity<?> divide(Quantity<?> divisor);
    -160
    -161    /**
    -162     * Returns the quotient of this {@code Quantity} divided by the {@code Number}
    -163     * specified.
    -164     * The result shall be as if this quantity was converted to
    -165     * {@linkplain Unit#getSystemUnit() system unit} before to be divided,
    -166     * and the result converted back to the unit of this quantity or any
    -167     * other compatible unit at implementation choice.
    -168     *
    -169     * @param divisor
    -170     *            the {@code Number} divisor.
    -171     * @return <code>this / divisor</code>.
    -172     */
    -173    Quantity<Q> divide(Number divisor);
    -174
    -175    /**
    -176     * Returns the product of this {@code Quantity} with the one specified.
    -177     * The result shall be as if this quantity and the given multiplicand were
    -178     * converted to {@linkplain Unit#getSystemUnit() system unit} before
    -179     * to be multiplied, and the result converted back to the unit of this
    -180     * quantity or any other compatible unit at implementation choice.
    -181     *
    -182     * @throws ClassCastException
    -183     *             if the type of an element in the specified operation is
    -184     *             incompatible with this quantity
    -185     *
    -186     * @param multiplicand
    -187     *            the {@code Quantity} multiplicand.
    -188     * @return <code>this * multiplicand</code>.
    -189     */
    -190    Quantity<?> multiply(Quantity<?> multiplicand);
    -191
    -192    /**
    -193     * Returns the product of this {@code Quantity} with the {@code Number} value
    -194     * specified.
    -195     * The result shall be as if this quantity was converted to
    -196     * {@linkplain Unit#getSystemUnit() system unit} before to be multiplied,
    -197     * and the result converted back to the unit of this quantity or any
    -198     * other compatible unit at implementation choice.
    -199     *
    -200     * @param multiplicand
    -201     *            the {@code Number} multiplicand.
    -202     * @return <code>this * multiplicand</code>.
    -203     */
    -204    Quantity<Q> multiply(Number multiplicand);
    -205
    -206    /**
    -207     * Returns this {@code Quantity} converted into another (compatible)
    -208     * {@code Unit}.
    -209     *
    -210     * @param unit
    -211     *            the {@code Unit unit} in which the returned quantity is stated.
    -212     * @return this quantity or a new quantity equivalent to this quantity stated in the specified unit.
    -213     * @throws ArithmeticException
    -214     *             if the result is inexact and the quotient has a non-terminating decimal expansion.
    -215     */
    -216    Quantity<Q> to(Unit<Q> unit);
    -217
    -218    /**
    -219     * Returns a {@code Quantity} that is the multiplicative inverse of this
    -220     * {@code Quantity}, having reciprocal value and reciprocal unit as given by
    -221     * {@code this.getUnit().inverse()}.
    -222     *
    -223     * @return reciprocal {@code Quantity}
    -224     * @see <a href=
    -225     *      "https://en.wikipedia.org/wiki/Multiplicative_inverse">Wikipedia:
    -226     *      Multiplicative inverse</a>
    -227     */
    -228    Quantity<?> inverse();
    -229
    -230    /**
    -231     * Returns a {@code Quantity} whose value is {@code (-this.getValue())}.
    -232     *
    -233     * @return {@code -this}.
    -234     */
    -235    Quantity<Q> negate();
    -236
    -237    /**
    -238     * Casts this quantity to a parameterized unit of specified nature or throw a
    -239     * <code>ClassCastException</code> if the dimension of the specified quantity
    -240     * and this measure unit's dimension do not match. For example:
    -241     * <p>
    -242     * <code>
    -243     *     {@literal Quantity<Length>} length = Quantities.getQuantity("2 km").asType(Length.class);
    -244     * </code> or <code>
    -245     *     {@literal Quantity<Speed>} C = length.multiply(299792458).divide(second).asType(Speed.class);
    -246     * </code>
    -247     * </p>
    -248     *
    -249     * @param <T>
    -250     *            The type of the quantity.
    -251     * @param type
    -252     *            the quantity class identifying the nature of the quantity.
    -253     * @return this quantity parameterized with the specified type.
    -254     * @throws ClassCastException
    -255     *             if the dimension of this unit is different from the specified
    -256     *             quantity dimension.
    -257     * @throws UnsupportedOperationException
    -258     *             if the specified quantity class does not have a SI unit for the
    -259     *             quantity.
    -260     * @see Unit#asType(Class)
    -261     */
    -262    <T extends Quantity<T>> Quantity<T> asType(Class<T> type) throws ClassCastException;
    -263
    -264    /**
    -265     * Returns the value of this {@code Quantity}.
    -266     *
    -267     * @return a value.
    -268     */
    -269    Number getValue();
    -270
    -271    /**
    -272     * Returns the unit of this {@code Quantity}.
    -273     *
    -274     * @return the unit (shall not be {@code null}).
    -275     */
    -276    Unit<Q> getUnit();
    -277    
    -278    /**
    -279     * Convenient method equivalent to {@link #to(javax.measure.Unit)
    -280     * to(getUnit().toSystemUnit())}.
    -281     *
    -282     * @return this quantity or a new quantity equivalent to this quantity stated in
    -283     *         SI units.
    -284     * @throws ArithmeticException
    -285     *             if the result is inexact and the quotient has a non-terminating
    -286     *             decimal expansion.
    -287     */
    -288    default Quantity<Q> toSystemUnit() {
    -289        return to(getUnit().getSystemUnit());
    -290    }
    -291      
    -292    /**
    -293     * Returns the {@code Scale} of this {@code Quantity}, if it's absolute or relative.
    -294     *
    -295     * @return the scale, if it's an absolute or relative quantity.
    -296     * @since 2.0
    -297     
    -298     * @see <a href="https://en.wikipedia.org/wiki/Absolute_scale">Wikipedia: Absolute scale</a>
    -299     */
    -300    Scale getScale();
    -301    
    -302    /**
    -303     * Compares two instances of {@code Quantity <Q>}, performing the conversion of units if necessary.
    -304     *
    -305     * @param that
    -306     *          the {@code quantity<Q>} to be compared with this instance.
    -307     * @return {@code true} if {@code that \u2261 this}.
    -308     * @throws NullPointerException
    -309     *           if the quantity is null
    -310     *           
    -311     * @see <a href= "https://dictionary.cambridge.org/dictionary/english/equivalent">Cambridge Dictionary: equivalent</a>
    -312     * @see <a href= "https://www.lexico.com/en/definition/equivalent">LEXICO: equivalent</a>
    -313     * @since 2.1       
    -314     */
    -315    boolean isEquivalentTo(Quantity<Q> that);
    -316}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/site/apidocs/src-html/javax/measure/Quantity.html b/docs/site/apidocs/src-html/javax/measure/Quantity.html deleted file mode 100644 index 8645a2a0..00000000 --- a/docs/site/apidocs/src-html/javax/measure/Quantity.html +++ /dev/null @@ -1,394 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure;
    -031
    -032/**
    -033 * Represents a quantitative property of a phenomenon, body, or substance, that
    -034 * can be quantified by measurement. {@link javax.measure.quantity.Mass Mass},
    -035 * time, distance, heat, and angular separation are among the familiar examples
    -036 * of quantitative properties.
    -037 * <p>
    -038 * <code> {@literal Unit<Mass>} pound = ... {@literal Quantity<Length>} size = ... {@literal Sensor<Temperature>}<br>
    -039 * thermometer = ... {@literal Vector3D<Speed>} aircraftSpeed = ... </code>
    -040 * </p>
    -041 *
    -042 * <dl>
    -043 * <dt><span class="strong">Arithmetic operations</span></dt>
    -044 * </dl> 
    -045 * This interface defines some arithmetic operations between {@code Quantity}
    -046 * instances. All implementations shall produce <em>equivalent</em> results for
    -047 * the same operation applied on equivalent quantities. Two quantities are
    -048 * equivalent if, after conversion to the same unit of measurement, they have
    -049 * the same numerical value (ignoring rounding errors). For example 2000 metres
    -050 * is equivalent to 2 km, but 2°C is not equivalent to 2 K; it is equivalent to
    -051 * 275.15 K instead. Above requirement applied to addition means that 2°C + 2 K
    -052 * shall be equivalent to 275.15 K + 2 K.
    -053 *
    -054 * <p>All operations shall preserve the
    -055 * <a href="https://en.wikiversity.org/wiki/Basic_Laws_of_Algebra">basic laws
    -056 * of algebra</a>, in particular <b>commutativity</b> of addition and
    -057 * multiplication (<var>A</var> + <var>B</var> = <var>B</var> + <var>A</var>)
    -058 * and <b>associativity</b> of addition and multiplication (<var>A</var> +
    -059 * <var>B</var>) + <var>C</var> = <var>A</var> + (<var>B</var> + <var>C</var>).
    -060 * In order to preserve those algebra laws, this specification requires all
    -061 * arithmetic operations to execute <em>as is</em> all operands were converted
    -062 * to {@linkplain Unit#getSystemUnit() system unit} before the operation is
    -063 * carried out, and the result converted back to any compatible unit at
    -064 * implementation choice. For example 4 cm + 1 inch shall produce any result
    -065 * <em>equivalent</em> to 0.04 m + 0.0254 m.</p>
    -066 *
    -067 * <p>Implementations are allowed to avoid conversion to system unit if the
    -068 * result is guaranteed to be equivalent. This is often the case when the
    -069 * conversion between quantity unit and system unit is only a
    -070 * {@linkplain UnitConverter#isLinear() scale factor}. However this is not
    -071 * the case for conversions applying an offset or more complex formula.
    -072 * For example 2°C + 1°C = 274.15°C, not 3°C. This counter-intuitive result
    -073 * is essential for preserving algebra laws like associativity, and is also
    -074 * the expected result from a thermodynamic point of view.</p>
    -075 *
    -076 * <dl>
    -077 * <dt><span class="strong">API Note:</span></dt><dd>This interface places no restrictions on the mutability of
    -078 *          implementations, however immutability is strongly recommended. All
    -079 *          implementations must be {@link Comparable}.</dd>
    -080 * </dl>
    -081 *
    -082 * @param <Q>
    -083 *            The type of the quantity.
    -084 *
    -085 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -086 * @author <a href="mailto:martin.desruisseaux@geomatys.com">Martin
    -087 *         Desruisseaux</a>
    -088 * @author <a href="mailto:werner@uom.technology">Werner Keil</a>
    -089 * @author <a href="mailto:otaviopolianasantana@gmail.com">Otavio Santana</a>
    -090 * @see Unit
    -091 * @see <a href="http://en.wikipedia.org/wiki/Quantity">Wikipedia: Quantity</a>
    -092 * @see <a href="http://martinfowler.com/eaaDev/quantity.html">Martin Fowler -
    -093 *      Quantity</a>
    -094 * @version 2.5, May 20, 2023
    -095 * @since 1.0
    -096 */
    -097public interface Quantity<Q extends Quantity<Q>> {
    -098    
    -099   /**
    -100    * The scale of a {@link Quantity}, either {@code ABSOLUTE} or {@code RELATIVE}.
    -101    *
    -102    * @since 2.0
    -103    * @see <a href="https://en.wikipedia.org/wiki/Absolute_scale">Wikipedia: Absolute scale</a>
    -104    */
    -105    public static enum Scale {
    -106        /** 
    -107         * Absolute scale
    -108         * @see <a href="https://en.wikipedia.org/wiki/Absolute_scale">Wikipedia: Absolute scale</a> 
    -109         */
    -110        ABSOLUTE, 
    -111        /** 
    -112         * Relative scale 
    -113         */
    -114        RELATIVE
    -115    }
    -116       
    -117    /**
    -118     * Returns the sum of this {@code Quantity} with the one specified.
    -119     * The result shall be as if this quantity and the given addend were
    -120     * converted to {@linkplain Unit#getSystemUnit() system unit} before
    -121     * to be added, and the result converted back to the unit of this
    -122     * quantity or any other compatible unit at implementation choice.
    -123     *
    -124     * @param addend
    -125     *            the {@code Quantity} to be added.
    -126     * @return {@code this + addend}.
    -127     */
    -128    Quantity<Q> add(Quantity<Q> addend);
    -129
    -130    /**
    -131     * Returns the difference between this {@code Quantity} and the one specified.
    -132     * The result shall be as if this quantity and the given subtrahend were
    -133     * converted to {@linkplain Unit#getSystemUnit() system unit} before
    -134     * to be subtracted, and the result converted back to the unit of this
    -135     * quantity or any other compatible unit at implementation choice.
    -136     *
    -137     * @param subtrahend
    -138     *            the {@code Quantity} to be subtracted.
    -139     * @return <code>this - subtrahend</code>.
    -140     */
    -141    Quantity<Q> subtract(Quantity<Q> subtrahend);
    -142
    -143    /**
    -144     * Returns the quotient of this {@code Quantity} divided by the {@code Quantity}
    -145     * specified.
    -146     * The result shall be as if this quantity and the given divisor were
    -147     * converted to {@linkplain Unit#getSystemUnit() system unit} before
    -148     * to be divided, and the result converted back to the unit of this
    -149     * quantity or any other compatible unit at implementation choice.
    -150     *
    -151     * @throws ClassCastException
    -152     *             if the type of an element in the specified operation is
    -153     *             incompatible with this quantity
    -154     *
    -155     * @param divisor
    -156     *            the {@code Quantity} divisor.
    -157     * @return <code>this / divisor</code>.
    -158     */
    -159    Quantity<?> divide(Quantity<?> divisor);
    -160
    -161    /**
    -162     * Returns the quotient of this {@code Quantity} divided by the {@code Number}
    -163     * specified.
    -164     * The result shall be as if this quantity was converted to
    -165     * {@linkplain Unit#getSystemUnit() system unit} before to be divided,
    -166     * and the result converted back to the unit of this quantity or any
    -167     * other compatible unit at implementation choice.
    -168     *
    -169     * @param divisor
    -170     *            the {@code Number} divisor.
    -171     * @return <code>this / divisor</code>.
    -172     */
    -173    Quantity<Q> divide(Number divisor);
    -174
    -175    /**
    -176     * Returns the product of this {@code Quantity} with the one specified.
    -177     * The result shall be as if this quantity and the given multiplicand were
    -178     * converted to {@linkplain Unit#getSystemUnit() system unit} before
    -179     * to be multiplied, and the result converted back to the unit of this
    -180     * quantity or any other compatible unit at implementation choice.
    -181     *
    -182     * @throws ClassCastException
    -183     *             if the type of an element in the specified operation is
    -184     *             incompatible with this quantity
    -185     *
    -186     * @param multiplicand
    -187     *            the {@code Quantity} multiplicand.
    -188     * @return <code>this * multiplicand</code>.
    -189     */
    -190    Quantity<?> multiply(Quantity<?> multiplicand);
    -191
    -192    /**
    -193     * Returns the product of this {@code Quantity} with the {@code Number} value
    -194     * specified.
    -195     * The result shall be as if this quantity was converted to
    -196     * {@linkplain Unit#getSystemUnit() system unit} before to be multiplied,
    -197     * and the result converted back to the unit of this quantity or any
    -198     * other compatible unit at implementation choice.
    -199     *
    -200     * @param multiplicand
    -201     *            the {@code Number} multiplicand.
    -202     * @return <code>this * multiplicand</code>.
    -203     */
    -204    Quantity<Q> multiply(Number multiplicand);
    -205
    -206    /**
    -207     * Returns this {@code Quantity} converted into another (compatible)
    -208     * {@code Unit}.
    -209     *
    -210     * @param unit
    -211     *            the {@code Unit unit} in which the returned quantity is stated.
    -212     * @return this quantity or a new quantity equivalent to this quantity stated in the specified unit.
    -213     * @throws ArithmeticException
    -214     *             if the result is inexact and the quotient has a non-terminating decimal expansion.
    -215     */
    -216    Quantity<Q> to(Unit<Q> unit);
    -217
    -218    /**
    -219     * Returns a {@code Quantity} that is the multiplicative inverse of this
    -220     * {@code Quantity}, having reciprocal value and reciprocal unit as given by
    -221     * {@code this.getUnit().inverse()}.
    -222     *
    -223     * @return reciprocal {@code Quantity}
    -224     * @see <a href=
    -225     *      "https://en.wikipedia.org/wiki/Multiplicative_inverse">Wikipedia:
    -226     *      Multiplicative inverse</a>
    -227     */
    -228    Quantity<?> inverse();
    -229
    -230    /**
    -231     * Returns a {@code Quantity} whose value is {@code (-this.getValue())}.
    -232     *
    -233     * @return {@code -this}.
    -234     */
    -235    Quantity<Q> negate();
    -236
    -237    /**
    -238     * Casts this quantity to a parameterized unit of specified nature or throw a
    -239     * <code>ClassCastException</code> if the dimension of the specified quantity
    -240     * and this measure unit's dimension do not match. For example:
    -241     * <p>
    -242     * <code>
    -243     *     {@literal Quantity<Length>} length = Quantities.getQuantity("2 km").asType(Length.class);
    -244     * </code> or <code>
    -245     *     {@literal Quantity<Speed>} C = length.multiply(299792458).divide(second).asType(Speed.class);
    -246     * </code>
    -247     * </p>
    -248     *
    -249     * @param <T>
    -250     *            The type of the quantity.
    -251     * @param type
    -252     *            the quantity class identifying the nature of the quantity.
    -253     * @return this quantity parameterized with the specified type.
    -254     * @throws ClassCastException
    -255     *             if the dimension of this unit is different from the specified
    -256     *             quantity dimension.
    -257     * @throws UnsupportedOperationException
    -258     *             if the specified quantity class does not have a SI unit for the
    -259     *             quantity.
    -260     * @see Unit#asType(Class)
    -261     */
    -262    <T extends Quantity<T>> Quantity<T> asType(Class<T> type) throws ClassCastException;
    -263
    -264    /**
    -265     * Returns the value of this {@code Quantity}.
    -266     *
    -267     * @return a value.
    -268     */
    -269    Number getValue();
    -270
    -271    /**
    -272     * Returns the unit of this {@code Quantity}.
    -273     *
    -274     * @return the unit (shall not be {@code null}).
    -275     */
    -276    Unit<Q> getUnit();
    -277    
    -278    /**
    -279     * Convenient method equivalent to {@link #to(javax.measure.Unit)
    -280     * to(getUnit().toSystemUnit())}.
    -281     *
    -282     * @return this quantity or a new quantity equivalent to this quantity stated in
    -283     *         SI units.
    -284     * @throws ArithmeticException
    -285     *             if the result is inexact and the quotient has a non-terminating
    -286     *             decimal expansion.
    -287     */
    -288    default Quantity<Q> toSystemUnit() {
    -289        return to(getUnit().getSystemUnit());
    -290    }
    -291      
    -292    /**
    -293     * Returns the {@code Scale} of this {@code Quantity}, if it's absolute or relative.
    -294     *
    -295     * @return the scale, if it's an absolute or relative quantity.
    -296     * @since 2.0
    -297     
    -298     * @see <a href="https://en.wikipedia.org/wiki/Absolute_scale">Wikipedia: Absolute scale</a>
    -299     */
    -300    Scale getScale();
    -301    
    -302    /**
    -303     * Compares two instances of {@code Quantity <Q>}, performing the conversion of units if necessary.
    -304     *
    -305     * @param that
    -306     *          the {@code quantity<Q>} to be compared with this instance.
    -307     * @return {@code true} if {@code that \u2261 this}.
    -308     * @throws NullPointerException
    -309     *           if the quantity is null
    -310     *           
    -311     * @see <a href= "https://dictionary.cambridge.org/dictionary/english/equivalent">Cambridge Dictionary: equivalent</a>
    -312     * @see <a href= "https://www.lexico.com/en/definition/equivalent">LEXICO: equivalent</a>
    -313     * @since 2.1       
    -314     */
    -315    boolean isEquivalentTo(Quantity<Q> that);
    -316}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/site/apidocs/src-html/javax/measure/UnconvertibleException.html b/docs/site/apidocs/src-html/javax/measure/UnconvertibleException.html deleted file mode 100644 index 0b36489d..00000000 --- a/docs/site/apidocs/src-html/javax/measure/UnconvertibleException.html +++ /dev/null @@ -1,157 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure;
    -031
    -032/**
    -033 * Signals that a problem of some sort has occurred due to the impossibility of constructing a converter between two units. For example, the
    -034 * multiplication of offset units are usually units not convertible to their {@linkplain Unit#getSystemUnit() system unit}.
    -035 *
    -036 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -037 * @author <a href="mailto:werner@uom.technology">Werner Keil</a>
    -038 * @version 1.0, Aug 8, 2016
    -039 *
    -040 */
    -041public class UnconvertibleException extends MeasurementException {
    -042    /**
    -043     * For cross-version compatibility.
    -044     */
    -045    private static final long serialVersionUID = -4623551240019830166L;
    -046
    -047    /**
    -048     * Constructs a {@code UnconvertibleException} with the given message.
    -049     *
    -050     * @param message
    -051     *            the detail message, or {@code null} if none.
    -052     */
    -053    public UnconvertibleException(final String message) {
    -054        super(message);
    -055    }
    -056
    -057    /**
    -058     * Constructs a {@code UnconvertibleException} with the given cause.
    -059     *
    -060     * @param cause
    -061     *            the cause of this exception, or {@code null} if none.
    -062     */
    -063    public UnconvertibleException(final Throwable cause) {
    -064        super(cause);
    -065    }
    -066
    -067    /**
    -068     * Constructs a {@code UnconvertibleException} with the given message and cause.
    -069     *
    -070     * @param message
    -071     *            the detail message, or {@code null} if none.
    -072     * @param cause
    -073     *            the cause of this exception, or {@code null} if none.
    -074     *
    -075     */
    -076    public UnconvertibleException(final String message, final Throwable cause) {
    -077        super(message, cause);
    -078    }
    -079}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/site/apidocs/src-html/javax/measure/Unit.html b/docs/site/apidocs/src-html/javax/measure/Unit.html deleted file mode 100644 index a58f31d6..00000000 --- a/docs/site/apidocs/src-html/javax/measure/Unit.html +++ /dev/null @@ -1,512 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030//
    -031// This source code implements specifications defined by the Java
    -032// Community Process. In order to remain compliant with the specification
    -033// DO NOT add / change / or delete method signatures!
    -034//
    -035package javax.measure;
    -036
    -037import java.util.Map;
    -038
    -039/**
    -040 * Represents a determinate {@linkplain Quantity quantity} (as of length, time, heat, or value) adopted as a standard of measurement.
    -041 *
    -042 * <p>
    -043 * It is helpful to think of instances of this class as recording the history by which they are created. Thus, for example, the string {@code "g/kg"}
    -044 * (which is a dimensionless unit) would result from invoking the method {@link #toString()} on a unit that was created by dividing a gram unit by a
    -045 * kilogram unit.
    -046 * </p>
    -047 *
    -048 * <p>
    -049 * This interface supports the multiplication of offsets units. The result is usually a unit not convertible to its {@linkplain #getSystemUnit()
    -050 * system unit}. Such units may appear in derivative quantities. For example Celsius per meter is an unit of gradient, which is common in atmospheric
    -051 * and oceanographic research.
    -052 * </p>
    -053 *
    -054 * <p>
    -055 * Units raised at non-integral powers are not supported. For example, {@code LITRE.root(2)} raises an {@code ArithmeticException}, but
    -056 * {@code HECTARE.root(2)} returns {@code HECTOMETRE} (100 metres).
    -057 * </p>
    -058 *
    -059 * <p>
    -060 * Unit instances shall be immutable.
    -061 * </p>
    -062 *
    -063 * @param <Q>
    -064 *          The type of the quantity measured by this unit.
    -065 *
    -066 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -067 * @author <a href="mailto:steve@unidata.ucar.edu">Steve Emmerson</a>
    -068 * @author <a href="mailto:martin.desruisseaux@geomatys.com">Martin Desruisseaux</a>
    -069 * @author <a href="mailto:werner@units.tech">Werner Keil</a>
    -070 * @version 2.4, November 11, 2020
    -071 * @since 1.0
    -072 *
    -073 * @see <a href="http://en.wikipedia.org/wiki/Units_of_measurement">Wikipedia: Units of measurement</a>
    -074 */
    -075public interface Unit<Q extends Quantity<Q>> {
    -076
    -077    /*******************/
    -078    /** Units Queries **/
    -079    /*******************/
    -080
    -081    /**
    -082     * Returns the symbol (if any) of this unit. This method returns {@code null} if this unit has no specific symbol associated with.
    -083     *
    -084     * @return this unit symbol, or {@code null} if this unit has not specific symbol associated with (e.g. product of units).
    -085     *
    -086     * @see #toString()
    -087     * @see javax.measure.format.UnitFormat
    -088     */
    -089    String getSymbol();
    -090
    -091    /**
    -092     * Returns the name (if any) of this unit. This method returns {@code null} if this unit has no specific name associated with.
    -093     *
    -094     * @return this unit name, or {@code null} if this unit has not specific name associated with (e.g. product of units).
    -095     *
    -096     * @see #toString()
    -097     * @see javax.measure.format.UnitFormat
    -098     */
    -099    String getName();
    -100
    -101    /**
    -102     * Returns the dimension of this unit. Two units {@code u1} and {@code u2} are {@linkplain #isCompatible(Unit) compatible} if and only if
    -103     * {@code u1.getDimension().equals(u2.getDimension())}.
    -104     *
    -105     * @return the dimension of this unit.
    -106     *
    -107     * @see #isCompatible(Unit)
    -108     */
    -109    Dimension getDimension();
    -110
    -111    /**
    -112     * Returns the unscaled system unit from which this unit is derived. System units are either base units, {@linkplain #alternate(String) alternate}
    -113     * units or product of rational powers of system units.
    -114     *
    -115     * <p>
    -116     * Because the system unit is unique by quantity type, it can be be used to identify the quantity given the unit. For example:
    -117     * </p>
    -118     * <code>
    -119     *     static boolean isAngularSpeed(Unit&lt;?&gt; unit) {<br>
    -120     *     &nbsp;&nbsp;    return unit.getSystemUnit().equals(RADIAN.divide(SECOND));<br>
    -121     *     }<br>
    -122     *     assert isAngularSpeed(REVOLUTION.divide(MINUTE)); // Returns true.<br><br>
    -123     * </code>
    -124     *
    -125     * @return the system unit this unit is derived from, or {@code this} if this unit is a system unit.
    -126     */
    -127    Unit<Q> getSystemUnit();
    -128
    -129    /**
    -130     * Returns the base units and their exponent whose product is this unit, or {@code null} if this unit is a base unit (not a product of existing
    -131     * units).
    -132     *
    -133     * @return the base units and their exponent making up this unit.
    -134     */
    -135    Map<? extends Unit<?>, Integer> getBaseUnits();
    -136
    -137    /**
    -138     * Indicates if this unit is compatible with the unit specified. Units don't need to be equal to be compatible. For example (assuming {@code ONE}
    -139     * is a dimensionless unit):<br>
    -140     *
    -141     * <code>
    -142     *     RADIAN.equals(ONE) == false<br>
    -143     *     RADIAN.isCompatible(ONE) == true<br>
    -144     *     RADIAN.isEquivalentTo(ONE) <b>doesn't compile</b><br>
    -145     * </code>
    -146     *
    -147     * @param that
    -148     *          the other unit to compare for compatibility.
    -149     * @return {@code this.getDimension().equals(that.getDimension())}
    -150     *
    -151     * @see #getDimension()
    -152     */
    -153    boolean isCompatible(Unit<?> that);
    -154
    -155    /**
    -156     * Indicates if this unit represents the same quantity than the given unit, ignoring name and symbols.
    -157     * Two units are equivalent if the {@linkplain #getConverterTo(Unit) conversion} between them is identity.
    -158     *
    -159     * <p>
    -160     * Unlike {@link #isCompatible(Unit)} an equivalence check requires both units to be strictly type-compatible,
    -161     * because it makes no sense to compare e.g. {@code gram} and {@code mm} for equivalence.
    -162     * By contrast, the compatibility check can works across different quantity types.
    -163     * </p>
    -164     *
    -165     * @param that the {@code Unit<Q>} to be compared with this instance.
    -166     * @return {@code true} if {@code that \u2261 this}.
    -167     * @throws NullPointerException if the unit is null
    -168     *
    -169     * @see <a href= "https://dictionary.cambridge.org/dictionary/english/equivalent">Cambridge Dictionary: equivalent</a>
    -170     * @see <a href= "https://www.lexico.com/en/definition/equivalent">LEXICO: equivalent</a>
    -171     * @since 2.1
    -172     */
    -173    boolean isEquivalentTo(Unit<Q> that);
    -174
    -175    /**
    -176     * Casts this unit to a parameterized unit of specified nature or throw a {@code ClassCastException} if the dimension of the specified quantity and
    -177     * this unit's dimension do not match. For example:<br>
    -178     *
    -179     * <code>
    -180     *      {@literal Unit<Speed>} C = METRE.multiply(299792458).divide(SECOND).asType(Speed.class);
    -181     * </code>
    -182     *
    -183     * @param <T>
    -184     *          The type of the quantity measured by the unit.
    -185     * @param type
    -186     *          the quantity class identifying the nature of the unit.
    -187     * @return this unit parameterized with the specified type.
    -188     * @throws ClassCastException
    -189     *           if the dimension of this unit is different from the specified quantity dimension.
    -190     */
    -191    <T extends Quantity<T>> Unit<T> asType(Class<T> type) throws ClassCastException;
    -192
    -193    /**
    -194     * Returns a converter of numeric values from this unit to another unit of same type. This method performs the same work as
    -195     * {@link #getConverterToAny(Unit)} without raising checked exception.
    -196     *
    -197     * @param that
    -198     *          the unit of same type to which to convert the numeric values.
    -199     * @return the converter from this unit to {@code that} unit.
    -200     * @throws UnconvertibleException
    -201     *           if a converter cannot be constructed.
    -202     *
    -203     * @see #getConverterToAny(Unit)
    -204     */
    -205    UnitConverter getConverterTo(Unit<Q> that) throws UnconvertibleException;
    -206
    -207    /**
    -208     * Returns a converter from this unit to the specified unit of type unknown. This method can be used when the quantity type of the specified unit is
    -209     * unknown at compile-time or when dimensional analysis allows for conversion between units of different type.
    -210     *
    -211     * <p>
    -212     * To convert to a unit having the same parameterized type, {@link #getConverterTo(Unit)} is preferred (no checked exception raised).
    -213     * </p>
    -214     *
    -215     * @param that
    -216     *          the unit to which to convert the numeric values.
    -217     * @return the converter from this unit to {@code that} unit.
    -218     * @throws IncommensurableException
    -219     *           if this unit is not {@linkplain #isCompatible(Unit) compatible} with {@code that} unit.
    -220     * @throws UnconvertibleException
    -221     *           if a converter cannot be constructed.
    -222     *
    -223     * @see #getConverterTo(Unit)
    -224     * @see #isCompatible(Unit)
    -225     */
    -226    UnitConverter getConverterToAny(Unit<?> that) throws IncommensurableException, UnconvertibleException;
    -227
    -228    /**********************/
    -229    /** Units Operations **/
    -230    /**********************/
    -231
    -232    /**
    -233     * Returns a system unit equivalent to this unscaled standard unit but used in expressions to distinguish between quantities of a different nature
    -234     * but of the same dimensions.
    -235     *
    -236     * <p>
    -237     * Examples of alternate units:
    -238     * </p>
    -239     *
    -240     * <code>
    -241     *     {@literal Unit<Angle>} RADIAN = ONE.alternate("rad").asType(Angle.class);<br>
    -242     *     {@literal Unit<Force>} NEWTON = METRE.multiply(KILOGRAM).divide(SECOND.pow(2)).alternate("N").asType(Force.class);<br>
    -243     *     {@literal Unit<Pressure>} PASCAL = NEWTON.divide(METRE.pow(2)).alternate("Pa").asType(Pressure.class);<br>
    -244     * </code>
    -245     *
    -246     * @param symbol
    -247     *          the new symbol for the alternate unit.
    -248     * @return the alternate unit.
    -249     * @throws IllegalArgumentException
    -250     *           if this unit is not an unscaled standard unit.
    -251     * @throws MeasurementException
    -252     *           if the specified symbol is not valid or is already associated to a different unit.
    -253     */
    -254    Unit<Q> alternate(String symbol);
    -255
    -256    /**
    -257     * Returns the result of setting the origin of the scale of measurement to the given value. The returned unit is convertible with all units that are
    -258     * convertible with this unit. For example the following code:<br>
    -259     *
    -260     * <code>
    -261     *    CELSIUS = KELVIN.shift(273.15);
    -262     * </code>
    -263     *
    -264     * creates a new unit where 0°C (the origin of the new unit) is equals to 273.15 K. Converting from the old unit to the new one is equivalent to
    -265     * <em>subtracting</em> the offset to the value in the old unit.
    -266     *
    -267     * @param offset
    -268     *          the offset added (expressed in this unit).
    -269     * @return this unit offset by the specified value.
    -270     * @since 2.0
    -271     */
    -272    Unit<Q> shift(Number offset);
    -273
    -274    /**
    -275     * Returns the result of setting the origin of the scale of measurement to the given value. The returned unit is convertible with all units that are
    -276     * convertible with this unit. For example the following code:<br>
    -277     *
    -278     * <code>
    -279     *    CELSIUS = KELVIN.shift(273.15);
    -280     * </code>
    -281     *
    -282     * creates a new unit where 0°C (the origin of the new unit) is equals to 273.15 K. Converting from the old unit to the new one is equivalent to
    -283     * <em>subtracting</em> the offset to the value in the old unit.
    -284     *
    -285     * @param offset
    -286     *          the offset added (expressed in this unit).
    -287     * @return this unit offset by the specified value.
    -288     */
    -289    Unit<Q> shift(double offset);
    -290
    -291    /**
    -292     * Returns the result of multiplying this unit by the specified factor. If the factor is an integer value, the multiplication is exact
    -293     * (recommended). For example:<br>
    -294     *
    -295     * <code>
    -296     *    FOOT = METRE.multiply(3048).divide(10000); // Exact definition.<br>
    -297     *    ELECTRON_MASS = KILOGRAM.multiply(9.10938188e-31); // Approximation.
    -298     * </code>
    -299     *
    -300     * @param multiplier
    -301     *          the multiplier
    -302     * @return this unit scaled by the specified multiplier.
    -303     * @since 2.0
    -304     */
    -305    Unit<Q> multiply(Number multiplier);
    -306
    -307    /**
    -308     * Returns the result of multiplying this unit by the specified factor. For example:<br>
    -309     *
    -310     * <code>
    -311     *    FOOT = METRE.multiply(3048).divide(10000); // Exact definition.<br>
    -312     *    ELECTRON_MASS = KILOGRAM.multiply(9.10938188e-31); // Approximation.
    -313     * </code>
    -314     *
    -315     * @param multiplier
    -316     *          the multiplier
    -317     * @return this unit scaled by the specified multiplier.
    -318     */
    -319    Unit<Q> multiply(double multiplier);
    -320
    -321    /**
    -322     * Returns the product of this unit with the one specified.
    -323     *
    -324     * @param multiplier
    -325     *          the unit multiplier.
    -326     * @return {@code this * multiplier}
    -327     */
    -328    Unit<?> multiply(Unit<?> multiplier);
    -329
    -330    /**
    -331     * Returns the reciprocal (multiplicative inverse) of this unit.
    -332     *
    -333     * @return {@code 1 / this}
    -334     * @see <a href="https://en.wikipedia.org/wiki/Multiplicative_inverse">Wikipedia: Multiplicative inverse</a>
    -335     */
    -336    Unit<?> inverse();
    -337
    -338    /**
    -339     * Returns the result of dividing this unit by a divisor. If the factor is an integer value, the division is exact. For example:<br>
    -340     *
    -341     * <code>
    -342     *    GRAM = KILOGRAM.divide(1000); // Exact definition.
    -343     * </code>
    -344     *
    -345     * @param divisor
    -346     *          the divisor value.
    -347     * @return this unit divided by the specified divisor.
    -348     * @since 2.0
    -349     */
    -350    Unit<Q> divide(Number divisor);
    -351
    -352    /**
    -353     * Returns the result of dividing this unit by an approximate divisor. For example:<br>
    -354     *
    -355     * <code>
    -356     *    GRAM = KILOGRAM.divide(1000d);
    -357     * </code>
    -358     *
    -359     * @param divisor
    -360     *          the divisor value.
    -361     * @return this unit divided by the specified divisor.
    -362     */
    -363    Unit<Q> divide(double divisor);
    -364
    -365    /**
    -366     * Returns the quotient of this unit with the one specified.
    -367     *
    -368     * @param divisor
    -369     *          the unit divisor.
    -370     * @return {@code this / divisor}
    -371     */
    -372    Unit<?> divide(Unit<?> divisor);
    -373
    -374    /**
    -375     * Returns an unit that is the n-th (integer) root of this unit. Equivalent to the mathematical expression {@code unit^(1/n)}.
    -376     *
    -377     * @param n
    -378     *          an integer giving the root's order as in 'n-th root'
    -379     * @return the n-th root of this unit.
    -380     * @throws ArithmeticException
    -381     *           if {@code n == 0} or if this operation would result in an unit with a fractional exponent.
    -382     */
    -383    Unit<?> root(int n);
    -384
    -385    /**
    -386     * Returns an unit raised to the n-th (integer) power of this unit. Equivalent to the mathematical expression {@code unit^n}.
    -387     *
    -388     * @param n
    -389     *          the exponent.
    -390     * @return the result of raising this unit to the exponent.
    -391     */
    -392    Unit<?> pow(int n);
    -393
    -394    /**
    -395     * Returns the unit derived from this unit using the specified converter. The converter does not need to be linear. For example:<br>
    -396     *
    -397     * <pre>
    -398     *     {@literal Unit<Dimensionless>} DECIBEL = Unit.ONE.transform(
    -399     *         new LogConverter(10).inverse().concatenate(
    -400     *             new RationalConverter(1, 10)));
    -401     * </pre>
    -402     *
    -403     * @param operation
    -404     *          the converter from the transformed unit to this unit.
    -405     * @return the unit after the specified transformation.
    -406     */
    -407    Unit<Q> transform(UnitConverter operation);
    -408
    -409    /**
    -410     * Returns a string representation of this unit. The string representation may be the unit {@linkplain #getSymbol() symbol}, or may be some
    -411     * representation of {@linkplain #getBaseUnits() product units}, multiplication factor and offset if any.
    -412     *
    -413     * <p>
    -414     * The string may be localized at implementation choice by the means of a particular device and platform.
    -415     * </p>
    -416     *
    -417     * @return the string representation of this unit.
    -418     *
    -419     * @see #getSymbol()
    -420     * @see javax.measure.format.UnitFormat
    -421     */
    -422    @Override
    -423    String toString();
    -424
    -425    /**
    -426     * Returns a new unit equal to this unit prefixed by the specified {@code prefix}.
    -427     *
    -428     * @param prefix
    -429     *          the prefix to apply on this unit.
    -430     * @return the unit with the given prefix applied.
    -431     * @since 2.0
    -432     */
    -433    Unit<Q> prefix(Prefix prefix);
    -434}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/site/apidocs/src-html/javax/measure/UnitConverter.html b/docs/site/apidocs/src-html/javax/measure/UnitConverter.html deleted file mode 100644 index f6d90313..00000000 --- a/docs/site/apidocs/src-html/javax/measure/UnitConverter.html +++ /dev/null @@ -1,228 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure;
    -031
    -032import java.util.List;
    -033
    -034/**
    -035 * A converter of numeric values between different units.
    -036 *
    -037 * <p>
    -038 * Instances of this class are usually obtained through the {@link Unit#getConverterTo(Unit)} method.
    -039 * </p>
    -040 *
    -041 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -042 * @author <a href="mailto:werner@uom.technology">Werner Keil</a>
    -043 * @author <a href="mailto:martin.desruisseaux@geomatys.com">Martin
    -044 *         Desruisseaux</a>
    -045 * @author <a href="mailto:thodoris.bais@gmail.com">Thodoris Bais</a>
    -046 * @author <a href="mailto:ahuber@apache.org">Andi Huber</a>
    -047 * @version 1.4, May 12, 2019
    -048 * @since 1.0
    -049 *
    -050 * @see Unit
    -051 * @see <a href="http://en.wikipedia.org/wiki/Conversion_of_units"> Wikipedia: Conversion of units</a>
    -052 */
    -053public interface UnitConverter {
    -054
    -055    /**
    -056     * Indicates if this converter is an identity converter. The identity converter returns its input argument ({@code convert(x) == x}).
    -057     * <p>
    -058     * Note: Identity converters are also always 'linear', see {@link UnitConverter#isLinear()}.
    -059     * </p>
    -060     *
    -061     * @return {@code true} if this converter is an identity converter.
    -062     */
    -063    boolean isIdentity();
    -064
    -065    /**
    -066     * Indicates whether this converter represents a (one-dimensional) linear transformation, that is
    -067     * a <a href="https://en.wikipedia.org/wiki/Linear_map">linear map (wikipedia)</a> from a one-dimensional 
    -068     * vector space (a scalar) to a one-dimensional vector space. Typically from 'R' to 'R', with 'R' the 
    -069     * real numbers.  
    -070     *
    -071     * <p>
    -072     * Given such a 'linear' converter 'A', let 'u', 'v' and 'r' be arbitrary numbers, then the following 
    -073     * must hold by definition: 
    -074     *
    -075     * <ul>
    -076     * <li>{@code A(u + v) == A(u) + A(v)}</li>
    -077     * <li>{@code A(r * u) == r * A(u)}</li>
    -078     * </ul>
    -079     *
    -080     * <p>
    -081     * Given a second 'linear' converter 'B', commutativity of composition follows by above definition:
    -082     *
    -083     * <ul>
    -084     * <li>{@code (A o B) (u) == (B o A) (u)}</li>
    -085     * </ul>
    -086     * 
    -087     * In other words, two 'linear' converters do have the property that {@code A(B(u)) == B(A(u))}, meaning 
    -088     * for 'A' and 'B' the order of their composition does not matter. Expressed as Java code:
    -089     *
    -090     * <p>
    -091     *{@code A.concatenate(B).convert(u) == B.concatenate(A).convert(u)}
    -092     * </p>
    -093     * 
    -094     * Note: For composing UnitConverters see also {@link UnitConverter#concatenate(UnitConverter)}.
    -095     *
    -096     * @return {@code true} if this converter represents a linear transformation; 
    -097     * {@code false} otherwise.
    -098     * 
    -099     */
    -100    boolean isLinear();
    -101
    -102    /**
    -103     * Returns the inverse of this converter. If {@code x} is a valid value, then {@code x == inverse().convert(convert(x))} to within the accuracy of
    -104     * computer arithmetic.
    -105     *
    -106     * @return the inverse of this converter.
    -107     */
    -108    UnitConverter inverse();
    -109
    -110    /**
    -111     * Converts a {@code Number} value.
    -112     *
    -113     * @param value
    -114     *          the {@code Number} value to convert.
    -115     * @return the {@code Number} value after conversion.
    -116     */
    -117    Number convert(Number value);
    -118
    -119    /**
    -120     * Converts a {@code double} value.
    -121     *
    -122     * @param value
    -123     *          the numeric value to convert.
    -124     * @return the {@code double} value after conversion.
    -125     */
    -126    double convert(double value);
    -127
    -128    /**
    -129     * Concatenates this converter with another converter. The resulting converter is equivalent to first converting by the specified converter (right
    -130     * converter), and then converting by this converter (left converter).
    -131     *
    -132     * @param converter
    -133     *          the other converter to concatenate with this converter.
    -134     * @return the concatenation of this converter with the other converter.
    -135     */
    -136    UnitConverter concatenate(UnitConverter converter);
    -137
    -138    /**
    -139     * <p>
    -140     * Returns the steps of fundamental converters making up this converter or {@code this} if the converter is a fundamental converter.
    -141     * </p>
    -142     * <p>
    -143     * For example, {@code converter1.getConversionSteps()} returns {@code converter1} while
    -144     * {@code converter1.concatenate(converter2).getConversionSteps()} returns {@code converter1, converter2}.
    -145     * </p>
    -146     *
    -147     * @return the list of fundamental converters which concatenated make up this converter.
    -148     */
    -149    List<? extends UnitConverter> getConversionSteps();
    -150}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/site/apidocs/src-html/javax/measure/format/MeasurementParseException.html b/docs/site/apidocs/src-html/javax/measure/format/MeasurementParseException.html deleted file mode 100644 index 259fb2bb..00000000 --- a/docs/site/apidocs/src-html/javax/measure/format/MeasurementParseException.html +++ /dev/null @@ -1,205 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.format;
    -031
    -032import javax.measure.MeasurementException;
    -033
    -034/**
    -035 * Signals that an error has been reached unexpectedly while parsing.
    -036 *
    -037 * @author Werner Keil
    -038 * @version 1.1, March 27, 2018
    -039 * @since 2.0
    -040 */
    -041public class MeasurementParseException extends MeasurementException {
    -042
    -043    /**
    -044     * For cross-version compatibility.
    -045     */
    -046    private static final long serialVersionUID = 2727457045794254852L;
    -047
    -048    /**
    -049     * The zero-based character position in the string being parsed at which the error was found while parsing.
    -050     *
    -051     * @serial
    -052     */
    -053    private int position;
    -054
    -055    /** The original input data. */
    -056    private CharSequence data;
    -057
    -058    /**
    -059     * Constructs a MeasurementParseException with the specified detail message, parsed text and index. A detail message is a String that describes
    -060     * this particular exception.
    -061     *
    -062     * @param message
    -063     *            the detail message
    -064     * @param parsedData
    -065     *            the parsed text, should not be null
    -066     * @param position
    -067     *            the position where the error was found while parsing.
    -068     */
    -069    public MeasurementParseException(String message, CharSequence parsedData, int position) {
    -070        super(message);
    -071        this.data = parsedData;
    -072        this.position = position;
    -073    }
    -074
    -075    /**
    -076     * Constructs a MeasurementParseException with the parsed text and offset. A detail message is a String that describes this particular exception.
    -077     *
    -078     * @param parsedData
    -079     *            the parsed text, should not be null
    -080     * @param position
    -081     *            the position where the error is found while parsing.
    -082     */
    -083    public MeasurementParseException(CharSequence parsedData, int position) {
    -084        this("Parse Error", parsedData, position);
    -085    }
    -086
    -087    /**
    -088     * Constructs a MeasurementParseException with the specified cause.
    -089     *
    -090     * @param cause
    -091     *            the root cause
    -092     */
    -093    public MeasurementParseException(Throwable cause) {
    -094        super(cause);
    -095    }
    -096
    -097    /**
    -098     * Constructs a MeasurementParseException with the specified detail message.
    -099     *
    -100     * @param message
    -101     *            the detail message
    -102     */
    -103    public MeasurementParseException(String message) {
    -104        super(message);
    -105    }
    -106
    -107    /**
    -108     * Returns the position where the error was found.
    -109     *
    -110     * @return the position of the error
    -111     */
    -112    public int getPosition() {
    -113        return position;
    -114    }
    -115
    -116    /**
    -117     * Returns the string that was being parsed.
    -118     *
    -119     * @return the parsed string, or {@code null}, if {@code null} was passed as input.
    -120     */
    -121    public String getParsedString() {
    -122        if (data == null) {
    -123            return null;
    -124        }
    -125        return data.toString();
    -126    }
    -127}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/site/apidocs/src-html/javax/measure/format/QuantityFormat.html b/docs/site/apidocs/src-html/javax/measure/format/QuantityFormat.html deleted file mode 100644 index 0fc1469d..00000000 --- a/docs/site/apidocs/src-html/javax/measure/format/QuantityFormat.html +++ /dev/null @@ -1,196 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.format;
    -031
    -032import java.io.IOException;
    -033import java.text.ParsePosition;
    -034
    -035import javax.measure.Quantity;
    -036
    -037/**
    -038 * Formats instances of {@link Quantity}.
    -039 *
    -040 * <dl>
    -041 * <dt><span class="strong"><a id="synchronization">Synchronization</a></span></dt>
    -042 * </dl>
    -043 * Instances of this class are not required to be thread-safe. It is recommended to use separate format instances for each thread. If multiple threads
    -044 * access a format concurrently, it must be synchronized externally.
    -045 *
    -046 * @author <a href="mailto:werner@uom.technology">Werner Keil</a>
    -047 * @author <a href="mailto:thodoris.bais@gmail.com">Thodoris Bais</a>
    -048 *
    -049 * @version 1.1, 20 May, 2023
    -050 * @since 2.0
    -051 *
    -052 * @see Quantity
    -053 */
    -054public interface QuantityFormat {
    -055
    -056    /**
    -057     * Formats the specified quantity into an {@code Appendable}.
    -058     *
    -059     * @param quantity
    -060     *          the quantity to format.
    -061     * @param destination
    -062     *          the appendable destination.
    -063     * @return the specified {@code Appendable}.
    -064     * @throws IOException
    -065     *           if an I/O exception occurs.
    -066     */
    -067    public Appendable format(Quantity<?> quantity, Appendable destination) throws IOException;
    -068
    -069    /**
    -070     * Formats the specified {@link Quantity}.
    -071     *
    -072     * @param quantity
    -073     *            the {@link Quantity} to format, not {@code null}
    -074     * @return the string representation using the settings of this {@link QuantityFormat}.
    -075     */
    -076    String format(Quantity<?> quantity);
    -077
    -078    /**
    -079     * Parses a portion of the specified {@code CharSequence} from the specified position to produce a {@link Quantity}.
    -080     * If parsing succeeds, then the index of the {@code pos} argument is updated to the index after the last character used.
    -081     *
    -082     * @param csq
    -083     *          the {@code CharSequence} to parse.
    -084     * @param pos
    -085     *          a ParsePosition object holding the current parsing index and error parsing index information as described above.
    -086     * @return the quantity parsed from the specified character sub-sequence.
    -087     * @throws MeasurementParseException
    -088     *           if any problem occurs while parsing the specified character sequence (e.g. illegal syntax).
    -089     */
    -090    public Quantity<?> parse(CharSequence csq, ParsePosition pos) throws MeasurementParseException;
    -091
    -092    /**
    -093     * Parses the specified {@code CharSequence} to produce a {@link Quantity}.
    -094     * <p>
    -095     * The parse must complete normally and parse the entire text. If the parse completes without reading the entire length of the text, an exception
    -096     * is thrown. If any other problem occurs during parsing, an exception is thrown.
    -097     * </p>
    -098     *
    -099     * @param csq
    -100     *          the {@code CharSequence} to parse.
    -101     * @return the quantity parsed from the specified character sub-sequence.
    -102     * @throws MeasurementParseException
    -103     *           if any problem occurs while parsing the specified character sequence (e.g. illegal syntax).
    -104     */
    -105    public Quantity<?> parse(CharSequence csq) throws MeasurementParseException;
    -106
    -107    /**
    -108     * Returns {@code true} if this {@link QuantityFormat} depends on a {@code Locale} to perform its tasks.
    -109     * <p>
    -110     * In environments that do not support a {@code Locale}, e.g. Java ME, this usually returns {@code false}.
    -111     * </p>
    -112     *
    -113     * @return whether this format depends on the locale.
    -114     */
    -115    default boolean isLocaleSensitive() {
    -116        return false;
    -117    }
    -118}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/site/apidocs/src-html/javax/measure/format/UnitFormat.html b/docs/site/apidocs/src-html/javax/measure/format/UnitFormat.html deleted file mode 100644 index f7aceb6b..00000000 --- a/docs/site/apidocs/src-html/javax/measure/format/UnitFormat.html +++ /dev/null @@ -1,228 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.format;
    -031
    -032import java.io.IOException;
    -033import java.text.ParsePosition;
    -034
    -035import javax.measure.Unit;
    -036
    -037/**
    -038 * Formats instances of {@link Unit} to a {@link String} or {@link Appendable} and parses a {@link CharSequence} to a {@link Unit}.
    -039 *
    -040 * <dl>
    -041 * <dt><span class="strong"><a id="synchronization">Synchronization</a></span></dt>
    -042 * </dl>
    -043 * <p>
    -044 * Instances of this class are not required to be thread-safe. It is recommended to use separate format instances for each thread. If multiple threads
    -045 * access a format concurrently, it must be synchronized externally.
    -046 * </p>
    -047 *
    -048 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -049 * @author <a href="mailto:werner@uom.technology">Werner Keil</a>
    -050 *
    -051 * @version 2.2, May 20, 2023
    -052 * @since 1.0
    -053 *
    -054 * @see Unit
    -055 */
    -056public interface UnitFormat {
    -057    /**
    -058     * Formats the specified {@link Unit}.
    -059     *
    -060     * @param unit
    -061     *            the {@link Unit} to format, not {@code null}
    -062     * @param appendable
    -063     *            the appendable destination.
    -064     * @return the appendable destination passed in with formatted text appended.
    -065     * @throws IOException
    -066     *             if an error occurs while writing to the destination.
    -067     */
    -068    Appendable format(Unit<?> unit, Appendable appendable) throws IOException;
    -069
    -070    /**
    -071     * Formats the specified {@link Unit}.
    -072     *
    -073     * @param unit
    -074     *            the {@link Unit} to format, not {@code null}
    -075     * @return the string representation using the settings of this {@link UnitFormat}.
    -076     */
    -077    String format(Unit<?> unit);
    -078
    -079    /**
    -080     * Attaches a system-wide label to the specified {@link Unit}.
    -081     * <p>
    -082     * This method overrides the previous unit's label (e.g. label from unit database or unit system) as units may only have one label. Depending on the
    -083     * {@link UnitFormat} implementation, this call may be ignored if the particular unit already has a label.
    -084     * </p>
    -085     * If a {@link UnitFormat} implementation is explicitly <b>immutable</b>, similar to e.g. the result of <code>Collections.unmodifiableList()</code>,
    -086     * then an {@linkplain UnsupportedOperationException} may be thrown upon this call.
    -087     * <p>
    -088     * Since <code>UnitFormat</code> implementations often apply the Singleton pattern, <b>system-wide</b> means, the label applies to every instance of
    -089     * <code>UnitFormatA</code> implementing <code>UnitFormat</code> in this case, but not every instance of <code>UnitFormatB</code> or <code>UnitFormatC</code> both
    -090     * also implementing <code>UnitFormat</code>. If a <code>UnitFormat</code> #isLocaleSensitive() it is up to the implementation, whether the label is
    -091     * ignored, applied in a local-neutral manner (in addition to its local-sensitive information) or locale-specific.
    -092     * </p>
    -093     *
    -094     * @param unit
    -095     *            the unit being labeled.
    -096     * @param label
    -097     *            the new label for this unit.
    -098     * @throws IllegalArgumentException
    -099     *             if the label is not a valid identifier. This may include characters not supported by a particular {@link UnitFormat} implementation
    -100     *             (e.g. only <b>ASCII</b> characters for certain devices)
    -101     * @throws UnsupportedOperationException
    -102     *             if the <code>label</code> operation is not supported by this {@link UnitFormat}
    -103     */
    -104    void label(Unit<?> unit, String label);
    -105
    -106    /**
    -107     * Returns <code>true</code> if this {@link UnitFormat} depends on a <code>Locale</code> to perform its tasks.
    -108     * <p>
    -109     * In environments that do not support a <code>Locale</code>, e.g. Java ME, this usually returns <code>false</code>.
    -110     * </p>
    -111     *
    -112     * @return Whether this format depends on a locale.
    -113     */
    -114    default boolean isLocaleSensitive() {
    -115        return false;
    -116    }
    -117
    -118    /**
    -119     * Parses a portion of the specified <code>CharSequence</code> from the specified position to produce a {@link Unit}.
    -120     * If parsing succeeds, then the index of the <code>pos</code> argument is updated to the index after the last character used.
    -121     *
    -122     * @param csq
    -123     *            the <code>CharSequence</code> to parse.
    -124     * @param pos
    -125     *            a ParsePosition object holding the current parsing index and error parsing index information as described above.
    -126     * @return the unit parsed from the specified character sub-sequence.
    -127     * @throws MeasurementParseException
    -128     *             if any problem occurs while parsing the specified character sequence (e.g. illegal syntax).
    -129     * @since 2.0
    -130     */
    -131    Unit<?> parse(CharSequence csq, ParsePosition pos) throws MeasurementParseException;
    -132
    -133    /**
    -134     * Parses the text into an instance of {@link Unit}.
    -135     * <p>
    -136     * The parse must complete normally and parse the entire text. If the parse completes without reading the entire length of the text, an exception
    -137     * is thrown. If any other problem occurs during parsing, an exception is thrown.
    -138     * </p>
    -139     *
    -140     * @param csq
    -141     *            the {@code CharSequence} to parse.
    -142     * @return the unit parsed from the specified character sequence.
    -143     * @throws MeasurementParseException
    -144     *             if any problem occurs while parsing the specified character sequence (e.g. illegal syntax).
    -145     * @throws UnsupportedOperationException
    -146     *             if the {@link UnitFormat} is unable to parse.
    -147     * @since 2.0
    -148     */
    -149    Unit<?> parse(CharSequence csq) throws MeasurementParseException;
    -150}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/site/apidocs/src-html/javax/measure/quantity/Acceleration.html b/docs/site/apidocs/src-html/javax/measure/quantity/Acceleration.html deleted file mode 100644 index 92505c34..00000000 --- a/docs/site/apidocs/src-html/javax/measure/quantity/Acceleration.html +++ /dev/null @@ -1,126 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Rate of change of velocity with respect to time. The metric system unit for this quantity is "m/s²" (metre per square second).
    -036 *
    -037 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -038 * @author <a href="mailto:werner@uom.technology">Werner Keil</a>
    -039 * @version 1.2
    -040 * @since 1.0
    -041 * @see <a href="https://en.wikipedia.org/wiki/Acceleration">Wikipedia: Acceleration</a>
    -042 *
    -043 * @see Length
    -044 * @see Speed
    -045 * @see Time
    -046 */
    -047public interface Acceleration extends Quantity<Acceleration> {
    -048}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/site/apidocs/src-html/javax/measure/quantity/AmountOfSubstance.html b/docs/site/apidocs/src-html/javax/measure/quantity/AmountOfSubstance.html deleted file mode 100644 index 6de37862..00000000 --- a/docs/site/apidocs/src-html/javax/measure/quantity/AmountOfSubstance.html +++ /dev/null @@ -1,142 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Number of elementary entities (molecules, for example) of a substance. The metric system unit for this quantity is "mol" (mole).
    -036 *
    -037 * The mole, symbol mol, is the SI unit of amount of substance. One mole contains
    -038 * exactly 6.022 140 76 × 10²³ elementary entities. This number is the fixed numerical
    -039 * value of the Avogadro constant, NA, when expressed in the unit mol⁻¹ and is called
    -040 * the Avogadro number.
    -041 *
    -042 * The amount of substance, symbol n, of a system is a measure of the number of
    -043 * specified elementary entities. An elementary entity may be an atom, a molecule, an
    -044 * ion, an electron, any other particle or specified group of particles.
    -045 * This definition implies the exact relation Nₐ = 6.022 140 76 × 10²³ mol⁻¹.
    -046 *
    -047 * Inverting this relation gives an exact expression for the mole in terms of the defining constant NA:
    -048 *
    -049 * 1 mol = 6.02214076 × 10²³ / Nₐ
    -050 * <br>
    -051 * <dl>
    -052 * <dt><span class="strong">API Note:</span></dt><dd>SI Base Unit</dd>
    -053 * </dl>
    -054 * 
    -055 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -056 * @author <a href="mailto:werner@uom.technology">Werner Keil</a>
    -057 * @author <a href="mailto:thodoris.bais@gmail.com">Thodoris Bais</a>
    -058 * @version 2.1
    -059 * @since 1.0
    -060 *
    -061 * @see <a href="http://en.wikipedia.org/wiki/Amount_of_substance">Wikipedia: Amount of Substance</a>
    -062 */
    -063public interface AmountOfSubstance extends Quantity<AmountOfSubstance> {
    -064}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/site/apidocs/src-html/javax/measure/quantity/Angle.html b/docs/site/apidocs/src-html/javax/measure/quantity/Angle.html deleted file mode 100644 index 08a9b261..00000000 --- a/docs/site/apidocs/src-html/javax/measure/quantity/Angle.html +++ /dev/null @@ -1,130 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Figure formed by two lines diverging from a common point. The metric system unit for this quantity is "rad" (radian).
    -036 * <br>
    -037 * <dl>
    -038 * <dt><span class="strong">API Note:</span></dt><dd>SI Derived Unit with special name and symbol</dd>
    -039 * </dl>
    -040 * 
    -041 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -042 * @author <a href="mailto:werner@uom.technology">Werner Keil</a>
    -043 * @version 2.0
    -044 * @since 1.0
    -045 *
    -046 * @see <a href="http://en.wikipedia.org/wiki/Angle">Wikipedia: Angle</a>
    -047 *
    -048 * @see SolidAngle
    -049 * @see Length
    -050 */
    -051public interface Angle extends Quantity<Angle> {
    -052}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/site/apidocs/src-html/javax/measure/quantity/Area.html b/docs/site/apidocs/src-html/javax/measure/quantity/Area.html deleted file mode 100644 index ba32762f..00000000 --- a/docs/site/apidocs/src-html/javax/measure/quantity/Area.html +++ /dev/null @@ -1,129 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Extent of a planar region or of the surface of a solid measured in square units. The metric system unit for this quantity is "m²" (square metre).
    -036 * <br>
    -037 * <dl>
    -038 * <dt><span class="strong">API Note:</span></dt><dd>SI Derived Unit</dd>
    -039 * </dl>
    -040 * 
    -041 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -042 * @author <a href="mailto:werner@uom.technology">Werner Keil</a>
    -043 * @version 2.0
    -044 * @since 1.0
    -045 *
    -046 * @see Length
    -047 * @see Volume
    -048 * @see Pressure
    -049 */
    -050public interface Area extends Quantity<Area> {
    -051}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/site/apidocs/src-html/javax/measure/quantity/CatalyticActivity.html b/docs/site/apidocs/src-html/javax/measure/quantity/CatalyticActivity.html deleted file mode 100644 index c680c97f..00000000 --- a/docs/site/apidocs/src-html/javax/measure/quantity/CatalyticActivity.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Catalytic activity. The metric system unit for this quantity is "kat" (katal).
    -036 *
    -037 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -038 * @version 1.0
    -039 * @since 1.0
    -040 */
    -041public interface CatalyticActivity extends Quantity<CatalyticActivity> {
    -042}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/site/apidocs/src-html/javax/measure/quantity/Dimensionless.html b/docs/site/apidocs/src-html/javax/measure/quantity/Dimensionless.html deleted file mode 100644 index 154b9b42..00000000 --- a/docs/site/apidocs/src-html/javax/measure/quantity/Dimensionless.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Dimensionless quantity.
    -036 *
    -037 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -038 * @version 1.0
    -039 * @since 1.0
    -040 */
    -041public interface Dimensionless extends Quantity<Dimensionless> {
    -042}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/site/apidocs/src-html/javax/measure/quantity/ElectricCapacitance.html b/docs/site/apidocs/src-html/javax/measure/quantity/ElectricCapacitance.html deleted file mode 100644 index 4e9e9773..00000000 --- a/docs/site/apidocs/src-html/javax/measure/quantity/ElectricCapacitance.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Electric capacitance. The metric system unit for this quantity is "F" (Farad).
    -036 *
    -037 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -038 * @version 1.0
    -039 * @since 1.0
    -040 */
    -041public interface ElectricCapacitance extends Quantity<ElectricCapacitance> {
    -042}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/site/apidocs/src-html/javax/measure/quantity/ElectricCharge.html b/docs/site/apidocs/src-html/javax/measure/quantity/ElectricCharge.html deleted file mode 100644 index 171bf18f..00000000 --- a/docs/site/apidocs/src-html/javax/measure/quantity/ElectricCharge.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Electric charge. The metric system unit for this quantity is "C" (Coulomb).
    -036 *
    -037 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -038 * @version 1.0
    -039 * @since 1.0
    -040 *
    -041 * @see ElectricCurrent
    -042 */
    -043public interface ElectricCharge extends Quantity<ElectricCharge> {
    -044}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/site/apidocs/src-html/javax/measure/quantity/ElectricConductance.html b/docs/site/apidocs/src-html/javax/measure/quantity/ElectricConductance.html deleted file mode 100644 index 99df8988..00000000 --- a/docs/site/apidocs/src-html/javax/measure/quantity/ElectricConductance.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Electric conductance. The metric system unit for this quantity "S" (Siemens).
    -036 *
    -037 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -038 * @version 1.0
    -039 * @since 1.0
    -040 */
    -041public interface ElectricConductance extends Quantity<ElectricConductance> {
    -042}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/site/apidocs/src-html/javax/measure/quantity/ElectricCurrent.html b/docs/site/apidocs/src-html/javax/measure/quantity/ElectricCurrent.html deleted file mode 100644 index 4c35c7c3..00000000 --- a/docs/site/apidocs/src-html/javax/measure/quantity/ElectricCurrent.html +++ /dev/null @@ -1,140 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Amount of electric charge flowing past a specified circuit point per unit time. The metric system unit for this quantity is "A" (Ampere).
    -036 *
    -037 * The ampere, symbol A, is the SI unit of electric current. It is defined by taking the
    -038 * fixed numerical value of the elementary charge e to be 1.602 176 634 × 10⁻¹⁹ when
    -039 * expressed in the unit C, which is equal to A s, where the second is defined in terms
    -040 * of ∆νCs.
    -041 *
    -042 * This definition implies the exact relation e = 1.602 176 634 × 10⁻¹⁹ A s. Inverting this
    -043 * relation gives an exact expression for the unit ampere in terms of the defining constants e
    -044 * and ∆νCs:
    -045 *
    -046 * 1 A = (e / 1.602 176 634 × 10⁻¹⁹) s⁻¹
    -047 * <br>
    -048 * <dl>
    -049 * <dt><span class="strong">API Note:</span></dt><dd>SI Base Unit</dd>
    -050 * </dl>
    -051 * 
    -052 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -053 * @author <a href="mailto:werner@uom.technology">Werner Keil</a>
    -054 * @author <a href="mailto:thodoris.bais@gmail.com">Thodoris Bais</a>
    -055 * @version 2.1
    -056 * @since 1.0
    -057 * @see <a href="https://en.wikipedia.org/wiki/Electric_current">Wikipedia: Electric Current</a>
    -058 * @see ElectricCharge
    -059 * @see Time
    -060 */
    -061public interface ElectricCurrent extends Quantity<ElectricCurrent> {
    -062}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/site/apidocs/src-html/javax/measure/quantity/ElectricInductance.html b/docs/site/apidocs/src-html/javax/measure/quantity/ElectricInductance.html deleted file mode 100644 index 320b0eda..00000000 --- a/docs/site/apidocs/src-html/javax/measure/quantity/ElectricInductance.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Electric inductance. The metric system unit for this quantity is "H" (Henry).
    -036 *
    -037 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -038 * @version 1.0
    -039 * @since 1.0
    -040 */
    -041public interface ElectricInductance extends Quantity<ElectricInductance> {
    -042}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/site/apidocs/src-html/javax/measure/quantity/ElectricPotential.html b/docs/site/apidocs/src-html/javax/measure/quantity/ElectricPotential.html deleted file mode 100644 index 2a3dc840..00000000 --- a/docs/site/apidocs/src-html/javax/measure/quantity/ElectricPotential.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Electric potential or electromotive force. The metric system unit for this quantity is "V" (Volt).
    -036 *
    -037 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -038 * @version 1.0
    -039 * @since 1.0
    -040 */
    -041public interface ElectricPotential extends Quantity<ElectricPotential> {
    -042}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/site/apidocs/src-html/javax/measure/quantity/ElectricResistance.html b/docs/site/apidocs/src-html/javax/measure/quantity/ElectricResistance.html deleted file mode 100644 index 980f1185..00000000 --- a/docs/site/apidocs/src-html/javax/measure/quantity/ElectricResistance.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Electric resistance. The metric system unit for this quantity is "Ohm" (Ω).
    -036 *
    -037 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -038 * @version 1.0
    -039 * @since 1.0
    -040 */
    -041public interface ElectricResistance extends Quantity<ElectricResistance> {
    -042}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/site/apidocs/src-html/javax/measure/quantity/Energy.html b/docs/site/apidocs/src-html/javax/measure/quantity/Energy.html deleted file mode 100644 index 0ba496b3..00000000 --- a/docs/site/apidocs/src-html/javax/measure/quantity/Energy.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Capacity of a physical system to do work. The metric system unit for this quantity "J" (Joule).
    -036 *
    -037 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -038 * @version 1.0
    -039 * @since 1.0
    -040 *
    -041 * @see Force
    -042 * @see Power
    -043 * @see Time
    -044 */
    -045public interface Energy extends Quantity<Energy> {
    -046}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/site/apidocs/src-html/javax/measure/quantity/Force.html b/docs/site/apidocs/src-html/javax/measure/quantity/Force.html deleted file mode 100644 index 437a66a9..00000000 --- a/docs/site/apidocs/src-html/javax/measure/quantity/Force.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Quantity that tends to produce an acceleration of a body in the direction of its application. The metric system unit for this quantity is "N"
    -036 * (Newton).
    -037 *
    -038 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -039 * @version 1.1
    -040 * @since 1.0
    -041 *
    -042 * @see Energy
    -043 * @see Pressure
    -044 */
    -045public interface Force extends Quantity<Force> {
    -046}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/site/apidocs/src-html/javax/measure/quantity/Frequency.html b/docs/site/apidocs/src-html/javax/measure/quantity/Frequency.html deleted file mode 100644 index 4f4e2741..00000000 --- a/docs/site/apidocs/src-html/javax/measure/quantity/Frequency.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Number of times a specified phenomenon occurs within a specified interval. The metric system unit for this quantity is "Hz" (Hertz).
    -036 *
    -037 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -038 * @version 1.0
    -039 * @since 1.0
    -040 *
    -041 * @see Time
    -042 */
    -043public interface Frequency extends Quantity<Frequency> {
    -044}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/site/apidocs/src-html/javax/measure/quantity/Illuminance.html b/docs/site/apidocs/src-html/javax/measure/quantity/Illuminance.html deleted file mode 100644 index 71f950b0..00000000 --- a/docs/site/apidocs/src-html/javax/measure/quantity/Illuminance.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Illuminance. The metric system unit for this quantity is "lx" (lux).
    -036 *
    -037 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -038 * @version 1.0
    -039 * @since 1.0
    -040 */
    -041public interface Illuminance extends Quantity<Illuminance> {
    -042}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/site/apidocs/src-html/javax/measure/quantity/Length.html b/docs/site/apidocs/src-html/javax/measure/quantity/Length.html deleted file mode 100644 index da6a9cb9..00000000 --- a/docs/site/apidocs/src-html/javax/measure/quantity/Length.html +++ /dev/null @@ -1,144 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Extent of something along its greatest dimension or the extent of space between two objects or places.
    -036 * The metric system unit for this quantity is "m" (metre).
    -037 *
    -038 * The metre, symbol m, is the SI unit of length. It is defined by taking the fixed
    -039 * numerical value of the speed of light in vacuum c to be 299 792 458 when expressed
    -040 * in the unit m s⁻¹, where the second is defined in terms of the caesium frequency
    -041 * ∆νCs.
    -042 *
    -043 * This definition implies the exact relation c = 299 792 458 m s⁻¹. Inverting this relation
    -044 * gives an exact expression for the metre in terms of the defining constants c and ∆νCs:
    -045 *
    -046 * 1 m = (c / 299 792 458)s = 9 192 631 770 c / 299 792 458 ∆νCs ≈ 30.663 319 c / ∆νCs
    -047 * <br>
    -048 * <dl>
    -049 * <dt><span class="strong">API Note:</span></dt><dd>SI Base Unit</dd>
    -050 * </dl>
    -051 * 
    -052 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -053 * @author <a href="mailto:werner@uom.technology">Werner Keil</a>
    -054 * @author <a href="mailto:thodoris.bais@gmail.com">Thodoris Bais</a>
    -055 * @version 2.1
    -056 * @since 1.0
    -057 * 
    -058 * @see <a href="https://en.wikipedia.org/wiki/Length">Wikipedia: Length</a>
    -059 * @see Area
    -060 * @see Volume
    -061 * @see Angle
    -062 * @see SolidAngle
    -063 * @see Speed
    -064 */
    -065public interface Length extends Quantity<Length> {
    -066}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/site/apidocs/src-html/javax/measure/quantity/LuminousFlux.html b/docs/site/apidocs/src-html/javax/measure/quantity/LuminousFlux.html deleted file mode 100644 index 60d90c39..00000000 --- a/docs/site/apidocs/src-html/javax/measure/quantity/LuminousFlux.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Luminous flux. The metric system unit for this quantity is "lm" (lumen).
    -036 *
    -037 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -038 * @version 1.1
    -039 * @since 1.0
    -040 */
    -041public interface LuminousFlux extends Quantity<LuminousFlux> {
    -042}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/site/apidocs/src-html/javax/measure/quantity/LuminousIntensity.html b/docs/site/apidocs/src-html/javax/measure/quantity/LuminousIntensity.html deleted file mode 100644 index 0cddbf0c..00000000 --- a/docs/site/apidocs/src-html/javax/measure/quantity/LuminousIntensity.html +++ /dev/null @@ -1,141 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Luminous flux density per solid angle as measured in a given direction relative to the emitting source.
    -036 * The metric system unit for this quantity is "cd" (candela).
    -037 *
    -038 * The candela, symbol cd, is the SI unit of luminous intensity in a given direction. It is
    -039 * defined by taking the fixed numerical value of the luminous efficacy of
    -040 * monochromatic radiation of frequency 540 × 10¹² Hz, Kcd, to be 683 when expressed
    -041 * in the unit lm W−1, which is equal to cd sr W⁻¹, or cd sr kg⁻¹ m⁻² s³, where the kilogram,
    -042 * metre and second are defined in terms of h, c and ∆νCs.
    -043 *
    -044 * This definition implies the exact relation Kcd = 683 cd sr kg⁻¹ m⁻² s³ for monochromatic
    -045 * radiation of frequency ν = 540 × 10¹² Hz. Inverting this relation gives an exact expression
    -046 * for the candela in terms of the defining constants Kcd, h and ∆νCs:
    -047 *
    -048 * 1 cd = (Kcd / 683) kg m² s⁻³ sr⁻¹
    -049 * <br>
    -050 * <dl>
    -051 * <dt><span class="strong">API Note:</span></dt><dd>SI Base Unit</dd>
    -052 * </dl>
    -053 * 
    -054 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -055 * @author <a href="mailto:werner@uom.technology">Werner Keil</a>
    -056 * @author <a href="mailto:thodoris.bais@gmail.com">Thodoris Bais</a>
    -057 * @version 2.1
    -058 * @since 1.0
    -059 * 
    -060 * @see <a href="https://en.wikipedia.org/wiki/Luminous_intensity">Wikipedia: Luminous intensity</a>
    -061 */
    -062public interface LuminousIntensity extends Quantity<LuminousIntensity> {
    -063}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/site/apidocs/src-html/javax/measure/quantity/MagneticFlux.html b/docs/site/apidocs/src-html/javax/measure/quantity/MagneticFlux.html deleted file mode 100644 index fe5285a3..00000000 --- a/docs/site/apidocs/src-html/javax/measure/quantity/MagneticFlux.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Magnetic flux. The metric system unit for this quantity is "Wb" (Weber).
    -036 *
    -037 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -038 * @version 1.0
    -039 * @since 1.0
    -040 */
    -041public interface MagneticFlux extends Quantity<MagneticFlux> {
    -042}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/site/apidocs/src-html/javax/measure/quantity/MagneticFluxDensity.html b/docs/site/apidocs/src-html/javax/measure/quantity/MagneticFluxDensity.html deleted file mode 100644 index 761c1ef8..00000000 --- a/docs/site/apidocs/src-html/javax/measure/quantity/MagneticFluxDensity.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Magnetic flux density. The metric system unit for this quantity is "T" (Tesla).
    -036 *
    -037 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -038 * @version 1.0
    -039 * @since 1.0
    -040 */
    -041public interface MagneticFluxDensity extends Quantity<MagneticFluxDensity> {
    -042}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/site/apidocs/src-html/javax/measure/quantity/Mass.html b/docs/site/apidocs/src-html/javax/measure/quantity/Mass.html deleted file mode 100644 index 4591a007..00000000 --- a/docs/site/apidocs/src-html/javax/measure/quantity/Mass.html +++ /dev/null @@ -1,141 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Measure of the quantity of matter that a body or an object contains. The mass of the body is not dependent on gravity and therefore is different
    -036 * from but proportional to its weight. The metric system unit for this quantity is "kg" (kilogram).
    -037 *
    -038 * The kilogram, symbol kg, is the SI unit of mass. It is defined by taking the fixed
    -039 * numerical value of the Planck constant h to be 6.626 070 15 × 10⁻³⁴ when expressed
    -040 * in the unit J s, which is equal to kg m² s−1, where the metre and the second are
    -041 * defined in terms of c and ∆νCs.
    -042 *
    -043 * This definition implies the exact relation h = 6.626 070 15 × 10−34 kg m² s⁻¹. Inverting this
    -044 * relation gives an exact expression for the kilogram in terms of the three defining constants
    -045 * h, ∆νCs and c:
    -046 *
    -047 * 1 kg = (h / 6.626 070 15 × 10⁻³⁴) m⁻² s
    -048 * <br>
    -049 * <dl>
    -050 * <dt><span class="strong">API Note:</span></dt><dd>SI Base Unit</dd>
    -051 * </dl>
    -052 *
    -053 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -054 * @author <a href="mailto:werner@uom.technology">Werner Keil</a>
    -055 * @author <a href="mailto:thodoris.bais@gmail.com">Thodoris Bais</a>
    -056 * @version 2.0
    -057 * @since 1.0
    -058 *
    -059 * @see <a href="https://en.wikipedia.org/wiki/Mass">Wikipedia: Mass</a>
    -060 * @see RadiationDoseAbsorbed
    -061 */
    -062public interface Mass extends Quantity<Mass> {
    -063}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/site/apidocs/src-html/javax/measure/quantity/Power.html b/docs/site/apidocs/src-html/javax/measure/quantity/Power.html deleted file mode 100644 index a8760341..00000000 --- a/docs/site/apidocs/src-html/javax/measure/quantity/Power.html +++ /dev/null @@ -1,123 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Rate at which work is done. The metric system unit for this quantity is "W" (Watt).
    -036 *
    -037 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -038 * @version 1.0
    -039 * @since 1.0
    -040 *
    -041 * @see Energy
    -042 * @see Time
    -043 */
    -044public interface Power extends Quantity<Power> {
    -045}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/site/apidocs/src-html/javax/measure/quantity/Pressure.html b/docs/site/apidocs/src-html/javax/measure/quantity/Pressure.html deleted file mode 100644 index eb0dca7f..00000000 --- a/docs/site/apidocs/src-html/javax/measure/quantity/Pressure.html +++ /dev/null @@ -1,123 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Force applied uniformly over a surface. The metric system unit for this quantity is "Pa" (Pascal).
    -036 *
    -037 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -038 * @version 1.0
    -039 * @since 1.0
    -040 *
    -041 * @see Force
    -042 * @see Area
    -043 */
    -044public interface Pressure extends Quantity<Pressure> {
    -045}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/site/apidocs/src-html/javax/measure/quantity/RadiationDoseAbsorbed.html b/docs/site/apidocs/src-html/javax/measure/quantity/RadiationDoseAbsorbed.html deleted file mode 100644 index e6260c6d..00000000 --- a/docs/site/apidocs/src-html/javax/measure/quantity/RadiationDoseAbsorbed.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Amount of energy deposited per unit of mass. The system unit for this quantity is "Gy" (Gray).
    -036 *
    -037 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -038 * @version 1.1
    -039 * @since 1.0
    -040 *
    -041 * @see Mass
    -042 */
    -043public interface RadiationDoseAbsorbed extends Quantity<RadiationDoseAbsorbed> {
    -044}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/site/apidocs/src-html/javax/measure/quantity/RadiationDoseEffective.html b/docs/site/apidocs/src-html/javax/measure/quantity/RadiationDoseEffective.html deleted file mode 100644 index 040e0438..00000000 --- a/docs/site/apidocs/src-html/javax/measure/quantity/RadiationDoseEffective.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Effective (or "equivalent") dose of radiation received by a human or some other living organism. The metric system unit for this quantity is "Sv"
    -036 * (Sievert).
    -037 *
    -038 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -039 * @version 1.0
    -040 * @since 1.0
    -041 */
    -042public interface RadiationDoseEffective extends Quantity<RadiationDoseEffective> {
    -043}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/site/apidocs/src-html/javax/measure/quantity/Radioactivity.html b/docs/site/apidocs/src-html/javax/measure/quantity/Radioactivity.html deleted file mode 100644 index 237b2ab2..00000000 --- a/docs/site/apidocs/src-html/javax/measure/quantity/Radioactivity.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Radioactive activity. The metric system unit for this quantity is "Bq" (Becquerel).
    -036 *
    -037 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -038 * @author <a href="mailto:werner@uom.technology">Werner Keil</a>
    -039 * @author Martin Desruisseaux
    -040 * @version 1.2
    -041 * @since 1.0
    -042 */
    -043public interface Radioactivity extends Quantity<Radioactivity> {
    -044}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/site/apidocs/src-html/javax/measure/quantity/SolidAngle.html b/docs/site/apidocs/src-html/javax/measure/quantity/SolidAngle.html deleted file mode 100644 index 76817d73..00000000 --- a/docs/site/apidocs/src-html/javax/measure/quantity/SolidAngle.html +++ /dev/null @@ -1,123 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Angle formed by three or more planes intersecting at a common point. The metric system unit for this quantity is "sr" (steradian).
    -036 *
    -037 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -038 * @author <a href="mailto:werner@uom.technology">Werner Keil</a>
    -039 * @version 1.3
    -040 * @since 1.0
    -041 *
    -042 * @see Angle
    -043 */
    -044public interface SolidAngle extends Quantity<SolidAngle> {
    -045}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/site/apidocs/src-html/javax/measure/quantity/Speed.html b/docs/site/apidocs/src-html/javax/measure/quantity/Speed.html deleted file mode 100644 index 8bc1931c..00000000 --- a/docs/site/apidocs/src-html/javax/measure/quantity/Speed.html +++ /dev/null @@ -1,131 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Distance traveled divided by the time of travel. The metric system unit for this quantity is "m/s" (metre per second).
    -036 *
    -037 * <p>
    -038 * <cite>Speed</cite> is a scalar value, while <cite>velocity</cite> is a vector. Speed is the magnitude of the velocity vector, or the components of
    -039 * the velocity vector.
    -040 * </p>
    -041 *
    -042 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -043 * @author <a href="mailto:werner@uom.technology">Werner Keil</a>
    -044 * @version 1.2
    -045 * @since 1.0
    -046 *
    -047 * @see Length
    -048 * @see Time
    -049 * @see Acceleration
    -050 * @see <a href="http://en.wikipedia.org/wiki/Speed">Wikipedia: Speed</a>
    -051 */
    -052public interface Speed extends Quantity<Speed> {
    -053}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/site/apidocs/src-html/javax/measure/quantity/Temperature.html b/docs/site/apidocs/src-html/javax/measure/quantity/Temperature.html deleted file mode 100644 index 51c03187..00000000 --- a/docs/site/apidocs/src-html/javax/measure/quantity/Temperature.html +++ /dev/null @@ -1,139 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Degree of hotness or coldness of a body or an environment. The metric system unit for this quantity is "K" (Kelvin).
    -036 *
    -037 * The kelvin, symbol K, is the SI unit of thermodynamic temperature. It is defined by
    -038 * taking the fixed numerical value of the Boltzmann constant k to be 1.380 649 × 10−²³
    -039 * when expressed in the unit J K⁻¹, which is equal to kg m² s⁻² K⁻¹, where the
    -040 * kilogram, metre and second are defined in terms of h, c and ∆νCs.
    -041 *
    -042 * This definition implies the exact relation k = 1.380 649 × 10⁻²³ kg m² s⁻² K⁻¹. Inverting this
    -043 * relation gives an exact expression for the kelvin in terms of the defining constants k, h and
    -044 * ∆νCs:
    -045 *
    -046 * 1 K = (1.380 649 / k) × 10⁻²³ kg m² s⁻²
    -047 * <br>
    -048 * <dl>
    -049 * <dt><span class="strong">API Note:</span></dt><dd>SI Base Unit</dd>
    -050 * </dl>
    -051 * 
    -052 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -053 * @author <a href="mailto:werner@uom.technology">Werner Keil</a>
    -054 * @author <a href="mailto:thodoris.bais@gmail.com">Thodoris Bais</a>
    -055 * @version 2.1
    -056 * @since 1.0
    -057 *
    -058 * @see <a href="https://en.wikipedia.org/wiki/Temperature">Wikipedia: Temperature</a>
    -059 */
    -060public interface Temperature extends Quantity<Temperature> {
    -061}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/site/apidocs/src-html/javax/measure/quantity/Time.html b/docs/site/apidocs/src-html/javax/measure/quantity/Time.html deleted file mode 100644 index 254b0176..00000000 --- a/docs/site/apidocs/src-html/javax/measure/quantity/Time.html +++ /dev/null @@ -1,142 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Period of existence or persistence. The metric system unit for this quantity is "s" (second).
    -036 *
    -037 * The second, symbol s, is the SI unit of time. It is defined by taking the fixed
    -038 * numerical value of the caesium frequency ∆νCs, the unperturbed ground-state
    -039 * hyperfine transition frequency of the caesium 133 atom, to be 9 192 631 770 when
    -040 * expressed in the unit Hz, which is equal to s⁻¹.
    -041 *
    -042 * This definition implies the exact relation ∆νCs = 9 192 631 770 Hz. Inverting this relation
    -043 * gives an expression for the unit second in terms of the defining constant ∆νCs:
    -044 *
    -045 * 1 Hz = ∆νCs / 9 192 631 770  or  1 s = 9 192 631 770 / ∆νCs
    -046 * <br>
    -047 * <dl>
    -048 * <dt><span class="strong">API Note:</span></dt><dd>SI Base Unit</dd>
    -049 * </dl>
    -050 * 
    -051 * @author <a href="mailto:werner@uom.technology">Werner Keil</a>
    -052 * @author <a href="mailto:thodoris.bais@gmail.com">Thodoris Bais</a>
    -053 * @version 2.1
    -054 * @since 1.0
    -055 *
    -056 * @see Frequency
    -057 * @see Speed
    -058 * @see Acceleration
    -059 * @see ElectricCurrent
    -060 * @see Power
    -061 * @see <a href="https://en.wikipedia.org/wiki/Unit_of_time">Wikipedia: Unit of time</a>
    -062 */
    -063public interface Time extends Quantity<Time> {
    -064}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/site/apidocs/src-html/javax/measure/quantity/Volume.html b/docs/site/apidocs/src-html/javax/measure/quantity/Volume.html deleted file mode 100644 index 3eaa49c1..00000000 --- a/docs/site/apidocs/src-html/javax/measure/quantity/Volume.html +++ /dev/null @@ -1,124 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.quantity;
    -031
    -032import javax.measure.Quantity;
    -033
    -034/**
    -035 * Amount of space occupied by a three-dimensional object or region of space. The metric system unit for this quantity is "m³" (cubic metre).
    -036 *
    -037 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -038 * @author <a href="mailto:werner@uom.technology">Werner Keil</a>
    -039 * @version 1.3
    -040 * @since 1.0
    -041 *
    -042 * @see Length
    -043 * @see Area
    -044 */
    -045public interface Volume extends Quantity<Volume> {
    -046}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/site/apidocs/src-html/javax/measure/spi/FormatService.FormatType.html b/docs/site/apidocs/src-html/javax/measure/spi/FormatService.FormatType.html deleted file mode 100644 index a5b653db..00000000 --- a/docs/site/apidocs/src-html/javax/measure/spi/FormatService.FormatType.html +++ /dev/null @@ -1,197 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.spi;
    -031
    -032import java.util.Set;
    -033
    -034import javax.measure.format.QuantityFormat;
    -035import javax.measure.format.UnitFormat;
    -036
    -037/**
    -038 * This interface represents the service to obtain instances of {@link UnitFormat} and {@link QuantityFormat}.
    -039 *
    -040 * @author <a href="mailto:werner@uom.technology">Werner Keil</a>
    -041 * @version 2.3, May 20, 2023
    -042 * @since 2.0
    -043 */
    -044public interface FormatService {
    -045
    -046        /** The type of format, either a {@link UnitFormat} or {@link QuantityFormat} */
    -047    public static enum FormatType {
    -048        /** Format of type {@link UnitFormat} */
    -049        UNIT_FORMAT, 
    -050        /** Format of type {@link QuantityFormat} */
    -051        QUANTITY_FORMAT
    -052    }
    -053
    -054    /**
    -055     * Returns the default quantity format.
    -056     *
    -057     * It is up to implementations what to consider a suitable default. For some (locale-sensitive) implementations it may be a quantity format based on
    -058     * {@code Locale.current()} while others may return {@code getQuantityFormat("Simple")} or {@code getQuantityFormat("ISO")}.
    -059     *
    -060     * @return the default {@link QuantityFormat} implementation.
    -061     */
    -062    QuantityFormat getQuantityFormat();
    -063
    -064    /**
    -065     * Returns the quantity format having the specified name or {@code null} if none.
    -066     *
    -067     * For example (@code getQuantityFormat("Simple")} to return the simple {@link QuantityFormat} implementation.
    -068     *
    -069     * @param name
    -070     *          the name of the format.
    -071     * @return the corresponding quantity format.
    -072     */
    -073    QuantityFormat getQuantityFormat(String name);
    -074
    -075    /**
    -076     * Returns the default unit format.
    -077     *
    -078     * It is up to implementations what to consider a suitable default. For some (locale-sensitive) implementations it may be a unit format based on
    -079     * {@code Locale.current()} while others may return {@code getUnitFormat("Simple")} or {@code getUnitFormat("ISO")}.
    -080     *
    -081     * @return the default {@link UnitFormat} implementation.
    -082     */
    -083    UnitFormat getUnitFormat();
    -084
    -085    /**
    -086     * Returns the unit format having the specified name or {@code null} if none.
    -087     *
    -088     * For example {@code getUnitFormat("Simple")} to return a simple {@link UnitFormat} implementation.
    -089     *
    -090     * @param name
    -091     *          the name of the format.
    -092     * @return the corresponding unit format.
    -093     */
    -094    UnitFormat getUnitFormat(String name);
    -095    
    -096    /**
    -097     * Returns the unit format having the specified name or {@code null} if none.
    -098     *
    -099     * For example {@code getUnitFormat("Simple")} to return a simple {@link UnitFormat} implementation.<br>
    -100     * The variant is an arbitrary value to allow a variation of a {@link UnitFormat}, 
    -101     * for example <code>UTF</code> vs. <code>ASCII</code> encoding of the simple <code>UnitFormat</code> 
    -102     * or <code>case sensitive</code> vs. <code>case insensitive</code> <a href="https://ucum.org/ucum.html">UCUM</a> format.
    -103     * <p>If no variant is applicable, the <code>UnitFormat</code> matching the name only is returned.</p> 
    -104     * @param name
    -105     *          the name of the format.
    -106     * @param variant any arbitrary value used to indicate a variation of a <code>UnitFormat</code>.
    -107     * @return the corresponding unit format.
    -108     */
    -109    UnitFormat getUnitFormat(String name, String variant);
    -110    
    -111    /**
    -112     * Gets a list with available format names of a given type for this format service.
    -113     *
    -114     * @param type
    -115     *          the {@link FormatType}
    -116     * @return list of available formats, never null.
    -117     */
    -118    Set<String> getAvailableFormatNames(FormatType type);
    -119}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/site/apidocs/src-html/javax/measure/spi/FormatService.html b/docs/site/apidocs/src-html/javax/measure/spi/FormatService.html deleted file mode 100644 index 754e29ce..00000000 --- a/docs/site/apidocs/src-html/javax/measure/spi/FormatService.html +++ /dev/null @@ -1,197 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.spi;
    -031
    -032import java.util.Set;
    -033
    -034import javax.measure.format.QuantityFormat;
    -035import javax.measure.format.UnitFormat;
    -036
    -037/**
    -038 * This interface represents the service to obtain instances of {@link UnitFormat} and {@link QuantityFormat}.
    -039 *
    -040 * @author <a href="mailto:werner@uom.technology">Werner Keil</a>
    -041 * @version 2.3, May 20, 2023
    -042 * @since 2.0
    -043 */
    -044public interface FormatService {
    -045
    -046        /** The type of format, either a {@link UnitFormat} or {@link QuantityFormat} */
    -047    public static enum FormatType {
    -048        /** Format of type {@link UnitFormat} */
    -049        UNIT_FORMAT, 
    -050        /** Format of type {@link QuantityFormat} */
    -051        QUANTITY_FORMAT
    -052    }
    -053
    -054    /**
    -055     * Returns the default quantity format.
    -056     *
    -057     * It is up to implementations what to consider a suitable default. For some (locale-sensitive) implementations it may be a quantity format based on
    -058     * {@code Locale.current()} while others may return {@code getQuantityFormat("Simple")} or {@code getQuantityFormat("ISO")}.
    -059     *
    -060     * @return the default {@link QuantityFormat} implementation.
    -061     */
    -062    QuantityFormat getQuantityFormat();
    -063
    -064    /**
    -065     * Returns the quantity format having the specified name or {@code null} if none.
    -066     *
    -067     * For example (@code getQuantityFormat("Simple")} to return the simple {@link QuantityFormat} implementation.
    -068     *
    -069     * @param name
    -070     *          the name of the format.
    -071     * @return the corresponding quantity format.
    -072     */
    -073    QuantityFormat getQuantityFormat(String name);
    -074
    -075    /**
    -076     * Returns the default unit format.
    -077     *
    -078     * It is up to implementations what to consider a suitable default. For some (locale-sensitive) implementations it may be a unit format based on
    -079     * {@code Locale.current()} while others may return {@code getUnitFormat("Simple")} or {@code getUnitFormat("ISO")}.
    -080     *
    -081     * @return the default {@link UnitFormat} implementation.
    -082     */
    -083    UnitFormat getUnitFormat();
    -084
    -085    /**
    -086     * Returns the unit format having the specified name or {@code null} if none.
    -087     *
    -088     * For example {@code getUnitFormat("Simple")} to return a simple {@link UnitFormat} implementation.
    -089     *
    -090     * @param name
    -091     *          the name of the format.
    -092     * @return the corresponding unit format.
    -093     */
    -094    UnitFormat getUnitFormat(String name);
    -095    
    -096    /**
    -097     * Returns the unit format having the specified name or {@code null} if none.
    -098     *
    -099     * For example {@code getUnitFormat("Simple")} to return a simple {@link UnitFormat} implementation.<br>
    -100     * The variant is an arbitrary value to allow a variation of a {@link UnitFormat}, 
    -101     * for example <code>UTF</code> vs. <code>ASCII</code> encoding of the simple <code>UnitFormat</code> 
    -102     * or <code>case sensitive</code> vs. <code>case insensitive</code> <a href="https://ucum.org/ucum.html">UCUM</a> format.
    -103     * <p>If no variant is applicable, the <code>UnitFormat</code> matching the name only is returned.</p> 
    -104     * @param name
    -105     *          the name of the format.
    -106     * @param variant any arbitrary value used to indicate a variation of a <code>UnitFormat</code>.
    -107     * @return the corresponding unit format.
    -108     */
    -109    UnitFormat getUnitFormat(String name, String variant);
    -110    
    -111    /**
    -112     * Gets a list with available format names of a given type for this format service.
    -113     *
    -114     * @param type
    -115     *          the {@link FormatType}
    -116     * @return list of available formats, never null.
    -117     */
    -118    Set<String> getAvailableFormatNames(FormatType type);
    -119}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/site/apidocs/src-html/javax/measure/spi/QuantityFactory.html b/docs/site/apidocs/src-html/javax/measure/spi/QuantityFactory.html deleted file mode 100644 index 9db410c9..00000000 --- a/docs/site/apidocs/src-html/javax/measure/spi/QuantityFactory.html +++ /dev/null @@ -1,174 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.spi;
    -031
    -032import javax.measure.Quantity;
    -033import javax.measure.Quantity.Scale;
    -034import javax.measure.Unit;
    -035
    -036/**
    -037 * Represents a factory that accepts {@link Number} and {@link Unit} arguments to create {@link Quantity} results.
    -038 *
    -039 * @param <Q>
    -040 *          the type of the {@link Quantity} result
    -041 *
    -042 * @author <a href="mailto:werner@uom.technology">Werner Keil</a>
    -043 * @author <a href="mailto:otaviopolianasantana@gmail.com">Otavio Santana</a>
    -044 * @version 1.4, December 18, 2018
    -045 * @since 1.0
    -046 *
    -047 * @see <a href="https://en.wikipedia.org/wiki/Factory_method_pattern"> Wikipedia: Factory method pattern</a>
    -048 * @see Quantity
    -049 * @see Unit
    -050 */
    -051public interface QuantityFactory<Q extends Quantity<Q>> {
    -052
    -053    /**
    -054     * Returns the quantity for the specified number stated in the specified unit and scale.
    -055     *
    -056     * @param value
    -057     *          the numeric value stated in the specified unit
    -058     * @param unit
    -059     *          the unit
    -060     * @param scale
    -061     *          The {@code ABSOLUTE} / {@code RELATIVE} {@code scale} of this quantity
    -062     * @return the corresponding quantity
    -063     * @since 2.0
    -064     */
    -065    Quantity<Q> create(Number value, Unit<Q> unit, Scale scale);
    -066    
    -067    /**
    -068     * Returns the quantity for the specified number stated in the specified unit.
    -069     *
    -070     * @param value
    -071     *          the numeric value stated in the specified unit
    -072     * @param unit
    -073     *          the unit
    -074     * @return the corresponding quantity
    -075     */
    -076    Quantity<Q> create(Number value, Unit<Q> unit);
    -077
    -078    /**
    -079     * Returns the system unit for quantities produced by this factory or {@code null} if unknown.
    -080     *
    -081     * <p>
    -082     * Because the system unit is unique by quantity type, it can be be used to identify the quantity given the unit. For example:
    -083     * </p>
    -084     *
    -085     * <pre>
    -086     *     static boolean isAngularSpeed({@literal Unit<?>} unit) {
    -087     *         return unit.getSystemUnit().equals(RADIAN.divide(SECOND));
    -088     *     }
    -089     *     assert isAngularSpeed(REVOLUTION.divide(MINUTE)); // Returns true.
    -090     * </pre>
    -091     *
    -092     * @return the system unit for this factory.
    -093     * @see Unit#getSystemUnit()
    -094     */
    -095    Unit<Q> getSystemUnit();
    -096}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/site/apidocs/src-html/javax/measure/spi/ServiceProvider.html b/docs/site/apidocs/src-html/javax/measure/spi/ServiceProvider.html deleted file mode 100644 index a028709d..00000000 --- a/docs/site/apidocs/src-html/javax/measure/spi/ServiceProvider.html +++ /dev/null @@ -1,491 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.spi;
    -031
    -032import java.lang.annotation.Annotation;
    -033import java.lang.reflect.InvocationTargetException;
    -034import java.lang.reflect.Method;
    -035import java.util.ArrayList;
    -036import java.util.Comparator;
    -037import java.util.List;
    -038import java.util.Objects;
    -039import java.util.Optional;
    -040import java.util.ServiceConfigurationError;
    -041import java.util.ServiceLoader;
    -042import java.util.concurrent.atomic.AtomicReference;
    -043import java.util.function.Predicate;
    -044import java.util.logging.Level;
    -045import java.util.logging.Logger;
    -046import java.util.stream.Collectors;
    -047import java.util.stream.Stream;
    -048import java.util.stream.StreamSupport;
    -049import javax.measure.Quantity;
    -050import javax.measure.format.QuantityFormat;
    -051import javax.measure.format.UnitFormat;
    -052
    -053/**
    -054 * Service Provider for Units of Measurement services.
    -055 * <p>
    -056 * All the methods in this class are safe to use by multiple concurrent threads.
    -057 * </p>
    -058 *
    -059 * @version 2.3, May 19, 2023
    -060 * @author Werner Keil
    -061 * @author Martin Desruisseaux
    -062 * @since 1.0
    -063 */
    -064public abstract class ServiceProvider {
    -065    /**
    -066     * Class name of JSR-330 annotation for naming a service provider.
    -067     * We use reflection for keeping JSR-330 an optional dependency.
    -068     */
    -069    private static final String LEGACY_NAMED_ANNOTATION = "javax.inject.Named";
    -070
    -071    /**
    -072     * Class name of JSR-250 annotation for assigning a priority level to a service provider.
    -073     * We use reflection for keeping JSR-250 an optional dependency.
    -074     */
    -075    private static final String LEGACY_PRIORITY_ANNOTATION = "javax.annotation.Priority";
    -076
    -077    /**
    -078     * Class name of Jakarta Dependency Injection annotation for naming a service provider.
    -079     * We use reflection for keeping Jakata Injection an optional dependency.
    -080     */
    -081    private static final String NAMED_ANNOTATION = "jakarta.inject.Named";
    -082
    -083    /**
    -084     * Class name of Jakarta Common Annotation for assigning a priority level to a service provider.
    -085     * We use reflection for keeping Jakarta Annotations an optional dependency.
    -086     */
    -087    private static final String PRIORITY_ANNOTATION = "jakarta.annotation.Priority";
    -088
    -089    /**
    -090     * The current service provider, or {@code null} if not yet determined.
    -091     *
    -092     * <p>Implementation Note: We do not cache a list of all service providers because that list depends
    -093     * indirectly on the thread invoking the {@link #available()} method. More specifically, it depends
    -094     * on the context class loader. Furthermore caching the {@code ServiceProvider}s can be a source of
    -095     * memory leaks. See {@link ServiceLoader#load(Class)} API note for reference.</p>
    -096     */
    -097    private static final AtomicReference<ServiceProvider> current = new AtomicReference<>();
    -098
    -099    /**
    -100     * Creates a new service provider. Only to be used by subclasses.
    -101     */
    -102    protected ServiceProvider() {
    -103    }
    -104
    -105    /**
    -106     * Allows to define a priority for a registered {@code ServiceProvider} instance.
    -107     * When multiple providers are registered in the system, the provider with the highest priority value is taken.
    -108     *
    -109     * <p>If the {@value #PRIORITY_ANNOTATION} annotation (from Jakarta Annotations)
    -110     * or {@value #LEGACY_PRIORITY_ANNOTATION} annotation (from JSR-250) is present on the {@code ServiceProvider}
    -111     * implementation class, then that annotation (first if both were present) is taken and this {@code getPriority()} method is ignored.
    -112     * Otherwise – if a {@code Priority} annotation is absent – this method is used as a fallback.</p>
    -113     *
    -114     * @return the provider's priority (default is 0).
    -115     */
    -116    public int getPriority() {
    -117        return 0;
    -118    }
    -119
    -120    /**
    -121     * Returns the service to obtain a {@link SystemOfUnits}, or {@code null} if none.
    -122     *
    -123     * @return the service to obtain a {@link SystemOfUnits}, or {@code null}.
    -124     */
    -125    public abstract SystemOfUnitsService getSystemOfUnitsService();
    -126
    -127    /**
    -128     * Returns the service to obtain {@link UnitFormat} and {@link QuantityFormat} or {@code null} if none.
    -129     *
    -130     * @return the service to obtain a {@link UnitFormat} and {@link QuantityFormat}, or {@code null}.
    -131     * @since 2.0
    -132     */
    -133    public abstract FormatService getFormatService();
    -134
    -135    /**
    -136     * Returns a factory for the given {@link Quantity} type.
    -137     *
    -138     * @param <Q>
    -139     *            the type of the {@link Quantity} instances created by the factory
    -140     * @param quantity
    -141     *            the quantity type
    -142     * @return the {@link QuantityFactory} for the given type
    -143     */
    -144    public abstract <Q extends Quantity<Q>> QuantityFactory<Q> getQuantityFactory(Class<Q> quantity);
    -145
    -146    /**
    -147     * A filter and a comparator for processing the stream of service providers.
    -148     * The two tasks (filtering and sorting) are implemented by the same class,
    -149     * but the filter task shall be used only if the name to search is non-null.
    -150     * The comparator is used in all cases, for sorting providers with higher priority first.
    -151     */
    -152    private static final class Selector implements Predicate<ServiceProvider>, Comparator<ServiceProvider> {
    -153        /**
    -154         * The name of the provider to search, or {@code null} if no filtering by name is applied.
    -155         */
    -156        private final String toSearch;
    -157
    -158        /**
    -159         * The {@code value()} method in the {@value #NAMED_ANNOTATION} annotation,
    -160         * or {@code null} if that class is not on the classpath.
    -161         */
    -162        private final Method nameGetter;
    -163
    -164        /**
    -165         * The {@code value()} method in the {@value #PRIORITY_ANNOTATION} annotation,
    -166         * or {@code null} if that class is not on the classpath.
    -167         */
    -168        private final Method priorityGetter;
    -169
    -170        /**
    -171         * The {@code value()} method in the {@value #LEGACY_NAMED_ANNOTATION} annotation,
    -172         * or {@code null} if that class is not on the classpath.
    -173         */
    -174        private final Method legacyNameGetter;
    -175
    -176        /**
    -177         * The {@code value()} method in the {@value #LEGACY_PRIORITY_ANNOTATION} annotation,
    -178         * or {@code null} if that class is not on the classpath.
    -179         */
    -180        private final Method legacyPriorityGetter;
    -181
    -182        /**
    -183         * Creates a new filter and comparator for a stream of service providers.
    -184         *
    -185         * @param name  name of the desired service provider, or {@code null} if no filtering by name is applied.
    -186         */
    -187        Selector(String name) {
    -188            toSearch = name;
    -189            try {
    -190                if (name != null) {
    -191                    nameGetter       = getValueMethod(NAMED_ANNOTATION);
    -192                    legacyNameGetter = getValueMethod(LEGACY_NAMED_ANNOTATION);
    -193                } else {
    -194                    nameGetter       = null;
    -195                    legacyNameGetter = null;
    -196                }
    -197                priorityGetter       = getValueMethod(PRIORITY_ANNOTATION);
    -198                legacyPriorityGetter = getValueMethod(LEGACY_PRIORITY_ANNOTATION);
    -199            } catch (NoSuchMethodException e) {
    -200                // Should never happen since value() is a standard public method of those annotations.
    -201                throw new ServiceConfigurationError("Cannot get annotation value", e);
    -202            }
    -203        }
    -204
    -205        /**
    -206         * Returns the {@code value()} method in the given annotation class.
    -207         *
    -208         * @param  classname  name of the class from which to get the {@code value()} method.
    -209         * @return the {@code value()} method, or {@code null} if the annotation class was not found.
    -210         */
    -211        private static Method getValueMethod(final String classname) throws NoSuchMethodException {
    -212            try {
    -213                return Class.forName(classname).getMethod("value", (Class[]) null);
    -214            } catch (ClassNotFoundException e) {
    -215                // Ignore because JSR-330, JSR-250 and Jakarta are optional dependencies.
    -216                return null;
    -217            }
    -218        }
    -219
    -220        /**
    -221         * Invokes the {@code value()} method on the annotation of the given class.
    -222         * The annotation on which to invoke the method is given by {@link Method#getDeclaringClass()}.
    -223         *
    -224         * @param  provider   class of the provider on which to invoke annotation {@code value()}.
    -225         * @param  getter     the preferred  {@code value()} method to invoke, or {@code null}.
    -226         * @param  fallback   an alternative {@code value()} method to invoke, or {@code null}.
    -227         * @return the value, or {@code null} if none.
    -228         */
    -229        private static Object getValue(final Class<?> provider, Method getter, Method fallback) {
    -230            if (getter == null) {
    -231                getter = fallback;
    -232                fallback = null;
    -233            }
    -234            while (getter != null) {
    -235                final Annotation a = provider.getAnnotation(getter.getDeclaringClass().asSubclass(Annotation.class));
    -236                if (a != null) try {
    -237                    return getter.invoke(a, (Object[]) null);
    -238                } catch (IllegalAccessException | InvocationTargetException e) {
    -239                    // Should never happen since value() is a public method and should not throw exception.
    -240                    throw new ServiceConfigurationError("Cannot get annotation value", e);
    -241                }
    -242                getter = fallback;
    -243                fallback = null;
    -244            }
    -245            return null;
    -246        }
    -247
    -248        /**
    -249         * Returns {@code true} if the given service provider has the name we are looking for.
    -250         * This method shall be invoked only if a non-null name has been specified to the constructor.
    -251         * This method looks for the {@value #NAMED_ANNOTATION} and {@value #LEGACY_NAMED_ANNOTATION}
    -252         * annotations in that order, and if none are found fallbacks on {@link ServiceProvider#toString()}.
    -253         */
    -254        @Override
    -255        public boolean test(final ServiceProvider provider) {
    -256            Object value = getValue(provider.getClass(), nameGetter, legacyNameGetter);
    -257            if (value == null) {
    -258                value = provider.toString();
    -259            }
    -260            return toSearch.equals(value);
    -261        }
    -262
    -263        /**
    -264         * Returns the priority of the given service provider.
    -265         * This method looks for the {@value #PRIORITY_ANNOTATION} and {@value #LEGACY_PRIORITY_ANNOTATION}
    -266         * annotations in that order, and if none are found falls back on {@link ServiceProvider#getPriority()}.
    -267         */
    -268        private int priority(final ServiceProvider provider) {
    -269            Object value = getValue(provider.getClass(), priorityGetter, legacyPriorityGetter);
    -270            if (value != null) {
    -271                return (Integer) value;
    -272            }
    -273            return provider.getPriority();
    -274        }
    -275
    -276        /**
    -277         * Compares the given service providers for order based on their priority.
    -278         * The priority of each provider is determined as documented by {@link ServiceProvider#getPriority()}.
    -279         */
    -280        @Override
    -281        public int compare(final ServiceProvider p1, final ServiceProvider p2) {
    -282            return Integer.compare(priority(p2), priority(p1)); // reverse order, higher number first.
    -283        }
    -284
    -285        /**
    -286         * Gets all {@link ServiceProvider}s sorted by priority and optionally filtered by the name in this selector.
    -287         * The list of service providers is <strong>not</strong> cached because it depends on the context class loader,
    -288         * which itself depends on which thread is invoking this method.
    -289         */
    -290        private Stream<ServiceProvider> stream() {
    -291            Stream<ServiceProvider> stream = StreamSupport.stream(ServiceLoader.load(ServiceProvider.class).spliterator(), false);
    -292            if (toSearch != null) {
    -293                stream = stream.filter(this);
    -294            }
    -295            return stream.sorted(this);
    -296        }
    -297    }
    -298
    -299    /**
    -300     * Returns the list of all service providers available for the current thread's context class loader.
    -301     * The {@linkplain #current() current} service provider is always the first item in the returned list.
    -302     * Other service providers after the first item may depend on the caller thread
    -303     * (see {@linkplain ServiceLoader#load(Class) service loader API note}).
    -304     *
    -305     * @return all service providers available for the current thread's context class loader.
    -306     */
    -307    public static final List<ServiceProvider> available() {
    -308        ArrayList<ServiceProvider> providers = new Selector(null).stream().collect(Collectors.toCollection(ArrayList::new));
    -309        final ServiceProvider first = current.get();
    -310        /*
    -311         * Make sure that 'first' is the first item in the 'providers' list. If that item appears
    -312         * somewhere else, we have to remove the second occurrence for avoiding duplicated elements.
    -313         * We compare the classes, not the instances, because new instances may be created each time
    -314         * this method is invoked and we have no guaranteed that implementors overrode 'equals'.
    -315         */
    -316setcur: if (first != null) {
    -317            final Class<?> cf = first.getClass();
    -318            final int size = providers.size();
    -319            for (int i=0; i<size; i++) {
    -320                if (cf.equals(providers.get(i).getClass())) {
    -321                    if (i == 0) break setcur;       // No change needed (note: labeled breaks on if statements are legal).
    -322                    providers.remove(i);
    -323                    break;
    -324                }
    -325            }
    -326            providers.add(0, first);
    -327        }
    -328        return providers;
    -329    }
    -330
    -331    /**
    -332     * Returns the {@link ServiceProvider} with the specified name.
    -333     * The given name must match the name of at least one service provider available in the current thread's
    -334     * context class loader.
    -335     * The service provider names are the values of {@value #NAMED_ANNOTATION} (from Jakarta Annotations) or
    -336     * {@value #LEGACY_NAMED_ANNOTATION} (from JSR-330) annotations when present (first if both were present),
    -337     * or the value of {@link #toString()} method for providers without {@code Named} annotation.
    -338     *
    -339     * <p>Implementors are encouraged to provide an {@code Named} annotation or to override {@link #toString()}
    -340     * and use a unique enough name, e.g. the class name or other distinct attributes.
    -341     * Should multiple service providers nevertheless use the same name, the one with the highest
    -342     * {@linkplain #getPriority() priority} wins.</p>
    -343     *
    -344     * @param name
    -345     *            the name of the service provider to return
    -346     * @return the {@link ServiceProvider} with the specified name
    -347     * @throws IllegalArgumentException
    -348     *             if available service providers do not contain a provider with the specified name
    -349     * @throws NullPointerException
    -350     *             if {@code name} is null
    -351     * @see #toString()
    -352     * @since 2.0
    -353     */
    -354    public static ServiceProvider of(String name) {
    -355        Objects.requireNonNull(name);
    -356        Selector select = new Selector(name);
    -357        ServiceProvider p = current.get();
    -358        if (p != null && select.test(p)) {
    -359            return p;
    -360        }
    -361        Optional<ServiceProvider> first = select.stream().findFirst();
    -362        if (first.isPresent()) {
    -363            return first.get();
    -364        } else {
    -365            throw new IllegalArgumentException("No Measurement ServiceProvider " + name + " found .");
    -366        }
    -367    }
    -368
    -369    /**
    -370     * Returns the current {@link ServiceProvider}. If necessary the {@link ServiceProvider} will be lazily loaded.
    -371     * <p>
    -372     * If there are no providers available, an {@linkplain IllegalStateException} is thrown.
    -373     * Otherwise the provider with the highest priority is used
    -374     * or the one explicitly designated via {@link #setCurrent(ServiceProvider)}.
    -375     * </p>
    -376     *
    -377     * @return the {@link ServiceProvider} used.
    -378     * @throws IllegalStateException
    -379     *             if no {@link ServiceProvider} has been found.
    -380     * @see #getPriority()
    -381     * @see #setCurrent(ServiceProvider)
    -382     */
    -383    public static final ServiceProvider current() {
    -384        ServiceProvider p = current.get();
    -385        if (p == null) {
    -386            Optional<ServiceProvider> first = new Selector(null).stream().findFirst();
    -387            if (first.isPresent()) {
    -388                p = first.get();
    -389            } else {
    -390                throw new IllegalStateException("No Measurement ServiceProvider found.");
    -391            }
    -392        }
    -393        return p;
    -394    }
    -395
    -396    /**
    -397     * Replaces the current {@link ServiceProvider}.
    -398     *
    -399     * @param provider
    -400     *            the new {@link ServiceProvider}
    -401     * @return the replaced provider, or null.
    -402     */
    -403    public static final ServiceProvider setCurrent(ServiceProvider provider) {
    -404        Objects.requireNonNull(provider);
    -405        ServiceProvider old = current.getAndSet(provider);
    -406        if (old != provider) {
    -407            Logger.getLogger("javax.measure.spi").log(Level.CONFIG,
    -408                    "Measurement ServiceProvider {1,choice,0#set to|1#replaced by} {0}.",
    -409                    new Object[] {provider.getClass().getName(), (old == null) ? 0 : 1});
    -410        }
    -411        return old;
    -412    }
    -413}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/site/apidocs/src-html/javax/measure/spi/SystemOfUnits.html b/docs/site/apidocs/src-html/javax/measure/spi/SystemOfUnits.html deleted file mode 100644 index 27dda749..00000000 --- a/docs/site/apidocs/src-html/javax/measure/spi/SystemOfUnits.html +++ /dev/null @@ -1,174 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.spi;
    -031
    -032import java.util.Set;
    -033
    -034import javax.measure.Dimension;
    -035import javax.measure.Quantity;
    -036import javax.measure.Unit;
    -037
    -038/**
    -039 * A system of units grouped together for historical or cultural reasons.<br>
    -040 * Common system of units are "SI" (System International), "Imperial" (British), "US" (US Customary). Nothing prevents a unit from belonging to
    -041 * several systems of units at the same time (for example an {@code Imperial} system would have many of the units held by the {@code US} Customary
    -042 * system).
    -043 *
    -044 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -045 * @author <a href="mailto:werner@uom.technology">Werner Keil</a>
    -046 * @version 1.1, June 21, 2018
    -047 * @since 1.0
    -048 *
    -049 * @see <a href="http://en.wikipedia.org/wiki/International_System_of_Units"> Wikipedia: International System of Units</a>
    -050 * @see <a href="http://en.wikipedia.org/wiki/Systems_of_measurement"> Wikipedia: System of measurement</a>
    -051 */
    -052public interface SystemOfUnits {
    -053
    -054    /**
    -055     * @return a name
    -056     */
    -057    String getName();
    -058
    -059    /**
    -060     * Returns the default unit for the specified quantity or {@code null} if none is defined for the given quantity in this unit system.
    -061     *
    -062     * @param <Q>
    -063     *          the compile-time quantity type.
    -064     * @param quantityType
    -065     *          the quantity type.
    -066     * @return the unit for the specified quantity.
    -067     */
    -068    <Q extends Quantity<Q>> Unit<Q> getUnit(Class<Q> quantityType);
    -069
    -070    /**
    -071     * Returns a unit with the given {@linkplain String string} representation or {@code null} if none is found in this unit system.
    -072     *
    -073     * @param string
    -074     *          the string representation of a unit, not {@code null}.
    -075     * @return the unit with the given string representation.
    -076     * @since 2.0
    -077     */
    -078    Unit<?> getUnit(String string);
    -079
    -080    /**
    -081     * Returns a read only view over the units explicitly defined by this system. This include the base and derived units which are assigned a special
    -082     * name and symbol. This set does not include new units created by arithmetic or other operations.
    -083     *
    -084     * @return the defined collection of units.
    -085     */
    -086    Set<? extends Unit<?>> getUnits();
    -087
    -088    /**
    -089     * Returns the units defined in this system having the specified dimension (convenience method).
    -090     *
    -091     * @param dimension
    -092     *          the dimension of the units to be returned.
    -093     * @return the collection of units of specified dimension.
    -094     */
    -095    Set<? extends Unit<?>> getUnits(Dimension dimension);
    -096}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/site/apidocs/src-html/javax/measure/spi/SystemOfUnitsService.html b/docs/site/apidocs/src-html/javax/measure/spi/SystemOfUnitsService.html deleted file mode 100644 index fb2aeb34..00000000 --- a/docs/site/apidocs/src-html/javax/measure/spi/SystemOfUnitsService.html +++ /dev/null @@ -1,205 +0,0 @@ - - - - -Source code - - - - - - -
    -
    -
    001/*
    -002 * Units of Measurement API
    -003 * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    -004 *
    -005 * All rights reserved.
    -006 *
    -007 * Redistribution and use in source and binary forms, with or without modification,
    -008 * are permitted provided that the following conditions are met:
    -009 *
    -010 * 1. Redistributions of source code must retain the above copyright notice,
    -011 *    this list of conditions and the following disclaimer.
    -012 *
    -013 * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    -014 *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    -015 *
    -016 * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    -017 *    derived from this software without specific prior written permission.
    -018 *
    -019 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -020 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    -021 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    -022 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -023 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    -024 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    -025 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    -026 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    -027 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    -028 * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -029 */
    -030package javax.measure.spi;
    -031
    -032import java.util.Collection;
    -033import java.util.EnumSet;
    -034import java.util.Set;
    -035import javax.measure.Prefix;
    -036
    -037/**
    -038 * This interface represents the service to obtain a {@link SystemOfUnits system
    -039 * of units}.
    -040 *
    -041 * <p>
    -042 * Common systems of units are "SI" (System International) or Metric system,
    -043 * "Imperial" (British), or "US" (US Customary).
    -044 * </p>
    -045 *
    -046 * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    -047 * @author <a href="mailto:werner@uom.technology">Werner Keil</a>
    -048 * @author <a href="mailto:martin.desruisseaux@geomatys.com">Martin
    -049 *         Desruisseaux</a>
    -050 * @version 1.8, April 3, 2023
    -051 * @since 1.0
    -052 *
    -053 * @see <a href=
    -054 *      "https://en.wikipedia.org/wiki/International_System_of_Units">Wikipedia:
    -055 *      International System of Units</a>
    -056 */
    -057public interface SystemOfUnitsService {
    -058
    -059    /**
    -060     * Returns the default {@link SystemOfUnits system of units}. Depending on the
    -061     * implementation this may be the <a href="https://en.wikipedia.org/wiki/International_System_of_Units">International
    -062     * System of Units</a> or another default system.
    -063     *
    -064     * @return the default system of units.
    -065     */
    -066    SystemOfUnits getSystemOfUnits();
    -067
    -068    /**
    -069     * Returns the system of units having the specified name or {@code null} if
    -070     * none is found.
    -071     *
    -072     * @param name the system of unit name.
    -073     * @return the system of units for the given name.
    -074     */
    -075    SystemOfUnits getSystemOfUnits(String name);
    -076
    -077    /**
    -078     * Gets a list with available systems for this {@link SystemOfUnitsService}.
    -079     *
    -080     * @return list of available systems of units, never null.
    -081     */
    -082    Collection<SystemOfUnits> getAvailableSystemsOfUnits();
    -083
    -084    /**
    -085     * Returns a {@link Set} containing the values of a particular {@link Prefix}
    -086     * type.
    -087     *
    -088     * <p>
    -089     * This method may be used to iterate over certain prefixes as follows:
    -090     * </p>
    -091     * <pre>{@code
    -092     *    for(MetricPrefix mp : service.getPrefixes(MetricPrefix.class))
    -093     *        System.out.println(p);
    -094     * }</pre>
    -095     *
    -096     * The default implementation assumes that prefixes of the given type are implemented as an enumeration.
    -097     * This is the case of the two default prefix implementations provided in JSR 385,
    -098     * namely {@link javax.measure.MetricPrefix} and {@link javax.measure.BinaryPrefix}.
    -099     * Implementors shall override this method if they provide prefixes implemented in a different way.
    -100     *
    -101     * @param <P> compile-time value of the {@code prefixType} argument
    -102     * @param prefixType the {@link Prefix} type
    -103     * @return a set containing the constant values of this Prefix type, in the
    -104     *         order they're declared
    -105     * @throws ClassCastException if the class is not compatible with the desired
    -106     *                            Prefix implementation or does not implement Prefix at all.
    -107     * @since 2.0
    -108     */
    -109    @SuppressWarnings({"unchecked", "rawtypes"})
    -110    default <P extends Prefix> Set<P> getPrefixes(Class<P> prefixType) {
    -111        // Following check is redundant with parameterized type but nevertheless applied as a safety.
    -112        if (Prefix.class.isAssignableFrom(prefixType)) {
    -113            EnumSet<? extends Enum<?>> prefixes = EnumSet.allOf(prefixType.asSubclass(Enum.class));
    -114            /*
    -115             * Following unchecked cast is safe for read operations because the given class implements
    -116             * 'prefixType' in addition of being an enumeration.  It is also safe for write operations
    -117             * because all enumerations are closed universes (so users can not add an instance unknown
    -118             * to EnumSet) and we would have got an exception before this point if 'prefixType' was not
    -119             * an enumeration in the sense of Class.isEnum().
    -120             */
    -121            return (EnumSet) prefixes;
    -122        } else {
    -123            throw new ClassCastException(String.format("%s does not implement Prefix", prefixType));
    -124            // TODO or should we throw a different exception here, MeasurementException or IllegalArgumentException?
    -125        }
    -126    }
    -127}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - diff --git a/docs/site/apidocs/stylesheet.css b/docs/site/apidocs/stylesheet.css deleted file mode 100644 index 93810d9a..00000000 --- a/docs/site/apidocs/stylesheet.css +++ /dev/null @@ -1,869 +0,0 @@ -/* - * 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; - background-color: #FFFFFF; -} -ul.ui-autocomplete li { - float:left; - clear:both; - width:100%; -} -.result-highlight { - font-weight:bold; -} -.ui-autocomplete .result-item { - font-size: inherit; -} -#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/docs/site/apidocs/system-properties.html b/docs/site/apidocs/system-properties.html deleted file mode 100644 index a654f91a..00000000 --- a/docs/site/apidocs/system-properties.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - -System Properties (Units of Measurement API 2.1.3-SNAPSHOT API) - - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    System Properties

    -
    -
    -
    - - - - - - - - -
    System Properties Summary 
    PropertyReferenced In
    -
    -
    -
    - - - diff --git a/docs/site/apidocs/tag-search-index.js b/docs/site/apidocs/tag-search-index.js deleted file mode 100644 index f38b3cb3..00000000 --- a/docs/site/apidocs/tag-search-index.js +++ /dev/null @@ -1 +0,0 @@ -tagSearchIndex = [{"l":"Serialized Form","h":"","u":"serialized-form.html"}];updateSearchResults(); \ No newline at end of file diff --git a/docs/site/apidocs/type-search-index.js b/docs/site/apidocs/type-search-index.js deleted file mode 100644 index c3580118..00000000 --- a/docs/site/apidocs/type-search-index.js +++ /dev/null @@ -1 +0,0 @@ -typeSearchIndex = [{"p":"javax.measure.quantity","l":"Acceleration"},{"l":"All Classes and Interfaces","u":"allclasses-index.html"},{"p":"javax.measure.quantity","l":"AmountOfSubstance"},{"p":"javax.measure.quantity","l":"Angle"},{"p":"javax.measure.quantity","l":"Area"},{"p":"javax.measure","l":"BinaryPrefix"},{"p":"javax.measure.quantity","l":"CatalyticActivity"},{"p":"javax.measure","l":"Dimension"},{"p":"javax.measure.quantity","l":"Dimensionless"},{"p":"javax.measure.quantity","l":"ElectricCapacitance"},{"p":"javax.measure.quantity","l":"ElectricCharge"},{"p":"javax.measure.quantity","l":"ElectricConductance"},{"p":"javax.measure.quantity","l":"ElectricCurrent"},{"p":"javax.measure.quantity","l":"ElectricInductance"},{"p":"javax.measure.quantity","l":"ElectricPotential"},{"p":"javax.measure.quantity","l":"ElectricResistance"},{"p":"javax.measure.quantity","l":"Energy"},{"p":"javax.measure.quantity","l":"Force"},{"p":"javax.measure.spi","l":"FormatService"},{"p":"javax.measure.spi","l":"FormatService.FormatType"},{"p":"javax.measure.quantity","l":"Frequency"},{"p":"javax.measure.quantity","l":"Illuminance"},{"p":"javax.measure","l":"IncommensurableException"},{"p":"javax.measure.quantity","l":"Length"},{"p":"javax.measure.quantity","l":"LuminousFlux"},{"p":"javax.measure.quantity","l":"LuminousIntensity"},{"p":"javax.measure.quantity","l":"MagneticFlux"},{"p":"javax.measure.quantity","l":"MagneticFluxDensity"},{"p":"javax.measure.quantity","l":"Mass"},{"p":"javax.measure","l":"MeasurementError"},{"p":"javax.measure","l":"MeasurementException"},{"p":"javax.measure.format","l":"MeasurementParseException"},{"p":"javax.measure","l":"MetricPrefix"},{"p":"javax.measure.quantity","l":"Power"},{"p":"javax.measure","l":"Prefix"},{"p":"javax.measure.quantity","l":"Pressure"},{"p":"javax.measure","l":"Quantity"},{"p":"javax.measure.spi","l":"QuantityFactory"},{"p":"javax.measure.format","l":"QuantityFormat"},{"p":"javax.measure.quantity","l":"RadiationDoseAbsorbed"},{"p":"javax.measure.quantity","l":"RadiationDoseEffective"},{"p":"javax.measure.quantity","l":"Radioactivity"},{"p":"javax.measure","l":"Quantity.Scale"},{"p":"javax.measure.spi","l":"ServiceProvider"},{"p":"javax.measure.quantity","l":"SolidAngle"},{"p":"javax.measure.quantity","l":"Speed"},{"p":"javax.measure.spi","l":"SystemOfUnits"},{"p":"javax.measure.spi","l":"SystemOfUnitsService"},{"p":"javax.measure.quantity","l":"Temperature"},{"p":"javax.measure.quantity","l":"Time"},{"p":"javax.measure","l":"UnconvertibleException"},{"p":"javax.measure","l":"Unit"},{"p":"javax.measure","l":"UnitConverter"},{"p":"javax.measure.format","l":"UnitFormat"},{"p":"javax.measure.quantity","l":"Volume"}];updateSearchResults(); \ No newline at end of file diff --git a/docs/site/apidocs/type-search-index.zip b/docs/site/apidocs/type-search-index.zip deleted file mode 100644 index 26471fe0..00000000 Binary files a/docs/site/apidocs/type-search-index.zip and /dev/null differ diff --git a/docs/site/images/AbstractSystemOfUnits.PNG b/docs/site/images/AbstractSystemOfUnits.PNG deleted file mode 100644 index 49379b7f..00000000 Binary files a/docs/site/images/AbstractSystemOfUnits.PNG and /dev/null differ diff --git a/docs/site/images/Dimension.PNG b/docs/site/images/Dimension.PNG deleted file mode 100644 index 3a9cae5e..00000000 Binary files a/docs/site/images/Dimension.PNG and /dev/null differ diff --git a/docs/site/images/Measurement.PNG b/docs/site/images/Measurement.PNG deleted file mode 100644 index cda3edeb..00000000 Binary files a/docs/site/images/Measurement.PNG and /dev/null differ diff --git a/docs/site/images/Prefix.PNG b/docs/site/images/Prefix.PNG deleted file mode 100644 index 5ffb3b3e..00000000 Binary files a/docs/site/images/Prefix.PNG and /dev/null differ diff --git a/docs/site/images/Quantity.PNG b/docs/site/images/Quantity.PNG deleted file mode 100644 index 5bd03d22..00000000 Binary files a/docs/site/images/Quantity.PNG and /dev/null differ diff --git a/docs/site/images/QuantityFactory.PNG b/docs/site/images/QuantityFactory.PNG deleted file mode 100644 index 1e1e460e..00000000 Binary files a/docs/site/images/QuantityFactory.PNG and /dev/null differ diff --git a/docs/site/images/QuantityFormat.PNG b/docs/site/images/QuantityFormat.PNG deleted file mode 100644 index e41a53c7..00000000 Binary files a/docs/site/images/QuantityFormat.PNG and /dev/null differ diff --git a/docs/site/images/Range.PNG b/docs/site/images/Range.PNG deleted file mode 100644 index e33e9c47..00000000 Binary files a/docs/site/images/Range.PNG and /dev/null differ diff --git a/docs/site/images/SystemOfUnits.PNG b/docs/site/images/SystemOfUnits.PNG deleted file mode 100644 index fb66b9bd..00000000 Binary files a/docs/site/images/SystemOfUnits.PNG and /dev/null differ diff --git a/docs/site/images/Unit.PNG b/docs/site/images/Unit.PNG deleted file mode 100644 index 6a1652c2..00000000 Binary files a/docs/site/images/Unit.PNG and /dev/null differ diff --git a/docs/site/images/UnitFormat.PNG b/docs/site/images/UnitFormat.PNG deleted file mode 100644 index 91abd810..00000000 Binary files a/docs/site/images/UnitFormat.PNG and /dev/null differ diff --git a/docs/site/index.html b/docs/site/index.html deleted file mode 100644 index a489d847..00000000 --- a/docs/site/index.html +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - - Units of Measurement API – Unit API home page - - - - - - - - - -
    -
    -
    -

    The Units of Measurement API for Java

    -

    Units of Measurement Standard - This JSR specifies Java packages for modeling and working with measurement values, quantities and their corresponding units.

    -

    Copyright 2014-2023 Jean-Marie Dautelle, Werner Keil, Otavio Santana All rights reserved.

    -

    See licenses for details.

    -

    The project

    -

    The project is hosted on GitHub. It runs a public mailing list for user and developer questions, other issues, and general discussion.

    -

    Links

    -
    -
    -
    -
    -
    -
    - - - diff --git a/docs/site/jacoco/index.html b/docs/site/jacoco/index.html deleted file mode 100644 index 797d016f..00000000 --- a/docs/site/jacoco/index.html +++ /dev/null @@ -1 +0,0 @@ -Units of Measurement API

    Units of Measurement API

    No class files specified.

    \ No newline at end of file diff --git a/docs/site/jacoco/jacoco-sessions.html b/docs/site/jacoco/jacoco-sessions.html deleted file mode 100644 index b3bf2e14..00000000 --- a/docs/site/jacoco/jacoco-sessions.html +++ /dev/null @@ -1 +0,0 @@ -Sessions

    Sessions

    This coverage report is based on execution data from the following sessions:

    SessionStart TimeDump Time
    DESKTOP-KNPRT5O-c7c535a01.11.2023, 20:59:2701.11.2023, 20:59:59
    DESKTOP-KNPRT5O-1f6465b01.11.2023, 20:59:2701.11.2023, 20:59:59
    DESKTOP-KNPRT5O-81aa4c3c01.11.2023, 20:59:2801.11.2023, 21:00:00
    DESKTOP-KNPRT5O-c3c83cc301.11.2023, 20:59:2701.11.2023, 21:00:00
    DESKTOP-KNPRT5O-363d7b2601.11.2023, 20:59:2801.11.2023, 21:00:00
    DESKTOP-KNPRT5O-bdf8763d01.11.2023, 20:59:2701.11.2023, 21:00:00
    DESKTOP-KNPRT5O-e86e73c501.11.2023, 21:02:1501.11.2023, 21:02:39
    DESKTOP-KNPRT5O-d16ddcd901.11.2023, 21:02:1601.11.2023, 21:02:39
    DESKTOP-KNPRT5O-7b221d9501.11.2023, 21:02:1501.11.2023, 21:02:39
    DESKTOP-KNPRT5O-eeb88ced01.11.2023, 21:02:1601.11.2023, 21:02:39
    DESKTOP-KNPRT5O-bf33dd3901.11.2023, 21:02:1601.11.2023, 21:02:39
    DESKTOP-KNPRT5O-a4f3247601.11.2023, 21:02:1501.11.2023, 21:02:39

    Execution data for the following classes is considered in this report:

    ClassId
    javax.measure.BinaryPrefixd9be59e14be27805
    javax.measure.IncommensurableExceptiona1bff251c1a4bee9
    javax.measure.MeasurementError9a8740c8d44b904c
    javax.measure.MeasurementExceptiona87ea109d070f4c8
    javax.measure.MetricPrefix09758da3fa633dcf
    javax.measure.Quantity7834494b51433404
    javax.measure.Quantity.Scale6dc6538e242dc688
    javax.measure.UnconvertibleExceptioned87fea766e9d7ea
    javax.measure.format.MeasurementParseException3f5e8087a6f66610
    javax.measure.format.QuantityFormatbb8bd9756f85caa3
    javax.measure.format.UnitFormata3c40490beea22d0
    javax.measure.spi.FormatService.FormatType2416cd9e0bb7fbe5
    javax.measure.spi.FormatServiceTest696539e59d1858b2
    javax.measure.spi.FormatServiceTest.181da73a1ee7f087c
    javax.measure.spi.FormatServiceTest.TestFormatServicecf5d355fc5b4c495
    javax.measure.spi.ServiceProvider8520a59322769b76
    javax.measure.spi.ServiceProvider.Selectora9447c36a5e38bfb
    javax.measure.spi.ServiceProviderTesta8fb0426c8e72df9
    javax.measure.spi.ServiceProviderTest.TestServiceProvider3c971e08e872af25
    javax.measure.spi.SystemOfUnitsServiceda472f8bfbf8aada
    javax.measure.spi.TestSystemOfUnitsServicea91cb6d5ce144716
    javax.measure.test.BinaryPrefixTestda2c1323fb15f6f0
    javax.measure.test.ConverterTest0db23d6203418928
    javax.measure.test.DimensionTest5ee4fca8af5d9986
    javax.measure.test.EnumUnitc3ccbf975bc22731
    javax.measure.test.ExceptionsTest393e95b31992932d
    javax.measure.test.ExceptionsTest.TestException749e5e64f5ef4ea0
    javax.measure.test.MetricPrefixTestce89fd6ada074bd7
    javax.measure.test.TestConverter90bf852dabb1f792
    javax.measure.test.TestConverter.Identitya949c9ab784c84fb
    javax.measure.test.TestDimension8288da65d4bcbf55
    javax.measure.test.TestUnit70ec1d72f00245c3
    javax.measure.test.UnitTestd1cd613bc45055e8
    javax.measure.test.format.MeasurementParseTestf3430dc4f97bb8da
    javax.measure.test.format.QuantityFormatTest29b08ba18c2f4395
    javax.measure.test.format.SimpleTestQuantityFormat8ddaa9e097917e41
    javax.measure.test.format.SimpleTestUnitFormate59bce89755c303e
    javax.measure.test.format.TestQuantityFormat33aba22639e92d6f
    javax.measure.test.format.TestUnitFormat8dcf7070302553db
    javax.measure.test.format.UnitFormatTest0c255ea29bf41818
    javax.measure.test.function.MultiplyConverter4311960a738ea732
    javax.measure.test.quantity.AreaQuantitye9c4e4ec90baa523
    javax.measure.test.quantity.AreaQuantityTest9b7f1f4ac04f9c0d
    javax.measure.test.quantity.DimensionlessQuantity0478949bf648f1bd
    javax.measure.test.quantity.DistanceQuantity1c490af612e20040
    javax.measure.test.quantity.DistanceQuantityTest0198f29755fe7795
    javax.measure.test.quantity.TemperatureQuantity9e5615faaedd602b
    javax.measure.test.quantity.TemperatureQuantityTest35b99edd6cdc45d9
    javax.measure.test.quantity.TestQuantities0014d7499b1c55ea
    javax.measure.test.quantity.TestQuantity9af78700221e2dc4
    javax.measure.test.quantity.VolumeQuantitycd68c02059a974e3
    javax.measure.test.unit.AreaUnit5db98956bc8a4f05
    javax.measure.test.unit.BaseUnit93e6fc2c04495bbd
    javax.measure.test.unit.DistanceUnitba0c96dd008c01eb
    javax.measure.test.unit.MassUnitd27873aa11bccbeb
    javax.measure.test.unit.SpeedUnit92da5b3048c4913d
    javax.measure.test.unit.TemperatureUnitd37d2bdbab3cc7d0
    javax.measure.test.unit.TimeUnit14de72ab502e00d6
    javax.measure.test.unit.VolumeUnit043994a93de20327
    org.apache.maven.plugin.surefire.log.api.NullConsoleLogger50e0945fec76b333
    org.apache.maven.surefire.api.booter.BaseProviderFactorya065300206f0a4fb
    org.apache.maven.surefire.api.booter.BiPropertyed0281592f3976b4
    org.apache.maven.surefire.api.booter.Commande978d5e725560f9c
    org.apache.maven.surefire.api.booter.Constants8f58b0da27218c74
    org.apache.maven.surefire.api.booter.DumpErrorSingletondf8370ddf5edddf9
    org.apache.maven.surefire.api.booter.ForkedProcessEventType4f32ae2d4e670365
    org.apache.maven.surefire.api.booter.ForkingReporterFactorybe06f83accc5a8aa
    org.apache.maven.surefire.api.booter.ForkingRunListenerc34d0a9f28f66585
    org.apache.maven.surefire.api.booter.MasterProcessCommand703a9da447acb0e4
    org.apache.maven.surefire.api.booter.Shutdown3bf959052b26b7d3
    org.apache.maven.surefire.api.cli.CommandLineOption0488df315d17bfbd
    org.apache.maven.surefire.api.provider.AbstractProvider2ef81cb912b59bca
    org.apache.maven.surefire.api.report.ConsoleOutputCapture7ee3451cf95e2f70
    org.apache.maven.surefire.api.report.ConsoleOutputCapture.ForwardingPrintStreamf482acd8c9848828
    org.apache.maven.surefire.api.report.ConsoleOutputCapture.NullOutputStreama81300d2d50decb6
    org.apache.maven.surefire.api.report.ReporterConfigurationbf4075c0385296c2
    org.apache.maven.surefire.api.report.RunMode70edc0a9dea60143
    org.apache.maven.surefire.api.report.SimpleReportEntryf36c2185901f2bd4
    org.apache.maven.surefire.api.stream.AbstractStreamDecoder7df85eb4f028b7df
    org.apache.maven.surefire.api.stream.AbstractStreamDecoder.BufferedStream23780cea13cacb7a
    org.apache.maven.surefire.api.stream.AbstractStreamDecoder.Mementoa26799627fa4eec8
    org.apache.maven.surefire.api.stream.AbstractStreamDecoder.Segmentd90e293455c15d95
    org.apache.maven.surefire.api.stream.AbstractStreamDecoder.StreamReadStatus8d5ee1d510b5c935
    org.apache.maven.surefire.api.stream.AbstractStreamEncoder056546e00bbd0d0a
    org.apache.maven.surefire.api.stream.SegmentType77b0d78ed3ddd126
    org.apache.maven.surefire.api.suite.RunResult1b2f159401642d2c
    org.apache.maven.surefire.api.testset.DirectoryScannerParameters526b83be1133f599
    org.apache.maven.surefire.api.testset.IncludedExcludedPatternse12220ce508068df
    org.apache.maven.surefire.api.testset.ResolvedTest108a3315282afadd
    org.apache.maven.surefire.api.testset.ResolvedTest.ClassMatcher1b24bc1cc27ce1b6
    org.apache.maven.surefire.api.testset.ResolvedTest.MethodMatcher55c85473d47129c5
    org.apache.maven.surefire.api.testset.ResolvedTest.Type6f46eedd1917ca66
    org.apache.maven.surefire.api.testset.RunOrderParametersf74f6b3eb9f1a132
    org.apache.maven.surefire.api.testset.TestArtifactInfo6d162cddde2db959
    org.apache.maven.surefire.api.testset.TestListResolver45657634a28a7058
    org.apache.maven.surefire.api.testset.TestRequest34c19c879694a301
    org.apache.maven.surefire.api.util.ReflectionUtilsea68c9b1ce256515
    org.apache.maven.surefire.api.util.RunOrderd79c70ab6fc5ca47
    org.apache.maven.surefire.api.util.TestsToRund7a5c9768171c735
    org.apache.maven.surefire.api.util.internal.AbstractNoninterruptibleReadableChannel6826ce793980b64e
    org.apache.maven.surefire.api.util.internal.AbstractNoninterruptibleWritableChannel484afcc5593fbc9a
    org.apache.maven.surefire.api.util.internal.Channelsea93201181a1dc33
    org.apache.maven.surefire.api.util.internal.Channels.3fc9a56a87311c6e4
    org.apache.maven.surefire.api.util.internal.Channels.445b0616e59e1bd28
    org.apache.maven.surefire.api.util.internal.ClassMethod089fc0ff5815db94
    org.apache.maven.surefire.api.util.internal.DaemonThreadFactoryb2161e778265b95d
    org.apache.maven.surefire.api.util.internal.DaemonThreadFactory.NamedThreadFactorye3fb668fa8792230
    org.apache.maven.surefire.api.util.internal.DumpFileUtils197806b66e42b2fb
    org.apache.maven.surefire.api.util.internal.ImmutableMap9f27da37fffaffb4
    org.apache.maven.surefire.api.util.internal.ImmutableMap.Nodede72bb82d59819e0
    org.apache.maven.surefire.api.util.internal.ObjectUtilse7c0ffe1a3f67fa5
    org.apache.maven.surefire.booter.AbstractPathConfigurationd182d59dff34303c
    org.apache.maven.surefire.booter.BooterDeserializer062841b2b101afcc
    org.apache.maven.surefire.booter.ClassLoaderConfigurationc511fbfeb1f35c23
    org.apache.maven.surefire.booter.Classpath0a65204b1ece9646
    org.apache.maven.surefire.booter.ClasspathConfigurationd14c58928ac6aa7b
    org.apache.maven.surefire.booter.CommandReader64a1bab35b1542d3
    org.apache.maven.surefire.booter.CommandReader.1e8b4ddeb08f01720
    org.apache.maven.surefire.booter.CommandReader.ClassesIterable0230a713e9d465fb
    org.apache.maven.surefire.booter.CommandReader.ClassesIterator0c6a11b28dfa32ee
    org.apache.maven.surefire.booter.CommandReader.CommandRunnable79a600ab7ca9309d
    org.apache.maven.surefire.booter.ForkedBooter2005efc2a580e0b9
    org.apache.maven.surefire.booter.ForkedBooter.168f2dae15ae26cc2
    org.apache.maven.surefire.booter.ForkedBooter.3fc217f2c1d87c099
    org.apache.maven.surefire.booter.ForkedBooter.4065a5b2290c92ffc
    org.apache.maven.surefire.booter.ForkedBooter.6850ef2748b5ef5e6
    org.apache.maven.surefire.booter.ForkedBooter.79577114e02a5bdef
    org.apache.maven.surefire.booter.ForkedBooter.83c8febd047cd2b0c
    org.apache.maven.surefire.booter.ForkedBooter.PingSchedulerc83e3af27d5d3c47
    org.apache.maven.surefire.booter.ForkedNodeArg9dbb0ff22dfc1303
    org.apache.maven.surefire.booter.LazyTestsToRun103cde445e357cfe
    org.apache.maven.surefire.booter.LazyTestsToRun.BlockingIterator60ba82f06653dbd2
    org.apache.maven.surefire.booter.PpidChecker252b46fcad1d00c8
    org.apache.maven.surefire.booter.ProcessCheckerType6c71fae7c51c4edb
    org.apache.maven.surefire.booter.PropertiesWrapperff7e60b7bec1c60a
    org.apache.maven.surefire.booter.ProviderConfigurationec2cd1e39ec4278e
    org.apache.maven.surefire.booter.StartupConfigurationb42e8c2c6fa0821c
    org.apache.maven.surefire.booter.SystemPropertyManagera02a74045a1775e8
    org.apache.maven.surefire.booter.TypeEncodedValue4f85f603057a1241
    org.apache.maven.surefire.booter.spi.AbstractMasterProcessChannelProcessorFactorye50d38cb3f425b64
    org.apache.maven.surefire.booter.spi.AbstractMasterProcessChannelProcessorFactory.16a225aa57a96c073
    org.apache.maven.surefire.booter.spi.AbstractMasterProcessChannelProcessorFactory.2a1fa70e4af42c555
    org.apache.maven.surefire.booter.spi.CommandChannelDecoder5aa21f0ab6360385
    org.apache.maven.surefire.booter.spi.EventChannelEncoderf8a182d25ad0bddf
    org.apache.maven.surefire.booter.spi.EventChannelEncoder.StackTrace2a43aa3682d5dd85
    org.apache.maven.surefire.booter.spi.LegacyMasterProcessChannelProcessorFactory3b29862697f79d34
    org.apache.maven.surefire.booter.spi.SurefireMasterProcessChannelProcessorFactory6cc6b9e0d3eb3daa
    org.apache.maven.surefire.booter.stream.CommandDecoderc416dc2480b2c9fe
    org.apache.maven.surefire.booter.stream.CommandDecoder.13e9267db1bad8617
    org.apache.maven.surefire.booter.stream.EventEncoder7c894cb22c8c16ca
    org.apache.maven.surefire.junitplatform.JUnitPlatformProvider37e5e044e6495e72
    org.apache.maven.surefire.junitplatform.LazyLauncher9d58536ee1e8ec15
    org.apache.maven.surefire.junitplatform.RunListenerAdapterd83ea3b274559631
    org.apache.maven.surefire.junitplatform.RunListenerAdapter.1e3dd0a351c69e4c0
    org.apache.maven.surefire.report.ClassMethodIndexer1847d72804b9b137
    org.apache.maven.surefire.shared.lang3.JavaVersion4e21c3be19560aac
    org.apache.maven.surefire.shared.lang3.StringUtilsf086d3427078adb7
    org.apache.maven.surefire.shared.lang3.SystemUtilse5eafc9ce14dcbec
    org.apache.maven.surefire.shared.lang3.math.NumberUtils11e46630af73f131
    org.apache.maven.surefire.shared.utils.StringUtilsabd8480c7152bf46
    org.apache.maven.surefire.shared.utils.cli.ShutdownHookUtils011b23cd829ec86c
    org.apiguardian.api.API.Status95d0ffea805fc01a
    org.junit.jupiter.api.AssertArrayEquals9546281f8fa53162
    org.junit.jupiter.api.AssertEquals02e79388fd0ddf18
    org.junit.jupiter.api.AssertFalsedea6dc33450c92f0
    org.junit.jupiter.api.AssertNotNull34eb9c4ee51b2816
    org.junit.jupiter.api.AssertNull36f7b673f5497507
    org.junit.jupiter.api.AssertSame77061b15f086bbc5
    org.junit.jupiter.api.AssertThrows2e413933639a681e
    org.junit.jupiter.api.AssertTrue6ef3923800860200
    org.junit.jupiter.api.AssertionUtilsa580a647f9b0d1af
    org.junit.jupiter.api.Assertions64a0b9756fac4df5
    org.junit.jupiter.api.DisplayNameGeneratorc35a1c5eacb0d650
    org.junit.jupiter.api.DisplayNameGenerator.IndicativeSentencesbf14238441e2d44f
    org.junit.jupiter.api.DisplayNameGenerator.ReplaceUnderscores946dd39b6ab63dc8
    org.junit.jupiter.api.DisplayNameGenerator.Simple5296f9c1389f9932
    org.junit.jupiter.api.DisplayNameGenerator.Standarda997bc0f4853379a
    org.junit.jupiter.api.TestInstance.Lifecycle37b0dab0031994d2
    org.junit.jupiter.api.extension.ConditionEvaluationResultfc311dfabd3a0e23
    org.junit.jupiter.api.extension.ExtensionContext9ee1dfa45d7441f9
    org.junit.jupiter.api.extension.ExtensionContext.Namespace0cd9bf9f40b606c0
    org.junit.jupiter.api.extension.InvocationInterceptor78636fba04d849bd
    org.junit.jupiter.engine.JupiterTestEngine011031d0b1fe58db
    org.junit.jupiter.engine.config.CachingJupiterConfiguration5a6713fc9cdf0bee
    org.junit.jupiter.engine.config.DefaultJupiterConfiguration728d0b1bd257a49b
    org.junit.jupiter.engine.config.EnumConfigurationParameterConverter433eec982a6fabbc
    org.junit.jupiter.engine.config.InstantiatingConfigurationParameterConverter665228d315b7ac04
    org.junit.jupiter.engine.descriptor.AbstractExtensionContextb3b3a7b8fc36ea23
    org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor6e33ab105860370c
    org.junit.jupiter.engine.descriptor.ClassExtensionContexte804dacaeaef4a6a
    org.junit.jupiter.engine.descriptor.ClassTestDescriptor2f87db51b4485e07
    org.junit.jupiter.engine.descriptor.DefaultTestInstanceFactoryContextb1b7d61e94c58605
    org.junit.jupiter.engine.descriptor.DisplayNameUtilse1e9919d0d67675d
    org.junit.jupiter.engine.descriptor.ExtensionUtils722183e8696c5137
    org.junit.jupiter.engine.descriptor.JupiterEngineDescriptor3d2dbddce296b041
    org.junit.jupiter.engine.descriptor.JupiterEngineExtensionContext7146ce9988edfce2
    org.junit.jupiter.engine.descriptor.JupiterTestDescriptor8af8f2d9d691826c
    org.junit.jupiter.engine.descriptor.LifecycleMethodUtils286eb923d0b68032
    org.junit.jupiter.engine.descriptor.MethodBasedTestDescriptor27c3365cc0c4e908
    org.junit.jupiter.engine.descriptor.MethodExtensionContextb5abe6523f4a32d7
    org.junit.jupiter.engine.descriptor.TestInstanceLifecycleUtilsa247fc379f47df66
    org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor6a00df6fbbc0ff9d
    org.junit.jupiter.engine.discovery.AbstractAnnotatedDescriptorWrapper90b10f2d90d7b01b
    org.junit.jupiter.engine.discovery.AbstractOrderingVisitorf8eb297929c247eb
    org.junit.jupiter.engine.discovery.AbstractOrderingVisitor.DescriptorWrapperOrdererc8e1585f8474ed61
    org.junit.jupiter.engine.discovery.ClassOrderingVisitor1f09fc1c6b9779bb
    org.junit.jupiter.engine.discovery.ClassSelectorResolver47bba3d717485ecb
    org.junit.jupiter.engine.discovery.DefaultClassDescriptor9064f3528773a161
    org.junit.jupiter.engine.discovery.DiscoverySelectorResolver5dc6be896f50996f
    org.junit.jupiter.engine.discovery.MethodFinder621c8591e557439a
    org.junit.jupiter.engine.discovery.MethodOrderingVisitor7d9864cebac818e1
    org.junit.jupiter.engine.discovery.MethodSelectorResolver679c52dec5ee3cd2
    org.junit.jupiter.engine.discovery.MethodSelectorResolver.MethodType2ca704c5264882ae
    org.junit.jupiter.engine.discovery.MethodSelectorResolver.MethodType.1b3bc3007a7dfdaa0
    org.junit.jupiter.engine.discovery.MethodSelectorResolver.MethodType.2598aec8eeefe85e3
    org.junit.jupiter.engine.discovery.MethodSelectorResolver.MethodType.3e8fd5325e2431a2b
    org.junit.jupiter.engine.discovery.predicates.IsInnerClassd746bcff9a71ec26
    org.junit.jupiter.engine.discovery.predicates.IsNestedTestClassf75dfd9ee2347890
    org.junit.jupiter.engine.discovery.predicates.IsPotentialTestContainer909f14a1b9fe84dc
    org.junit.jupiter.engine.discovery.predicates.IsTestClassWithTests34690a186bfcf3ac
    org.junit.jupiter.engine.discovery.predicates.IsTestFactoryMethod941a8af0d47a68fd
    org.junit.jupiter.engine.discovery.predicates.IsTestMethodf2039dbd13fce110
    org.junit.jupiter.engine.discovery.predicates.IsTestTemplateMethodc13a4260435c18a8
    org.junit.jupiter.engine.discovery.predicates.IsTestableMethod4be487dee199f633
    org.junit.jupiter.engine.execution.ConditionEvaluatordf91d94b180fe511
    org.junit.jupiter.engine.execution.ConstructorInvocation60b80968f2bdedc3
    org.junit.jupiter.engine.execution.DefaultExecutableInvoker97f15d1e3151968f
    org.junit.jupiter.engine.execution.DefaultTestInstances0fc6d90567826bc4
    org.junit.jupiter.engine.execution.ExtensionValuesStoree4054d96e0311350
    org.junit.jupiter.engine.execution.ExtensionValuesStore.CompositeKey66813dae6cf686fe
    org.junit.jupiter.engine.execution.ExtensionValuesStore.MemoizingSupplierdf3ce2070a75daaf
    org.junit.jupiter.engine.execution.ExtensionValuesStore.StoredValue57cb9ab75faabc0f
    org.junit.jupiter.engine.execution.InterceptingExecutableInvoker42cb185ff5e76387
    org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.ReflectiveInterceptorCall7e154d03f7a732e5
    org.junit.jupiter.engine.execution.InvocationInterceptorChain9798b2a812d2015d
    org.junit.jupiter.engine.execution.InvocationInterceptorChain.InterceptedInvocation199eef1acbe0b316
    org.junit.jupiter.engine.execution.InvocationInterceptorChain.ValidatingInvocationf064b1c2c4a4bf86
    org.junit.jupiter.engine.execution.JupiterEngineExecutionContextb48cc2a96dab0116
    org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.Builderd1557432e23d2776
    org.junit.jupiter.engine.execution.JupiterEngineExecutionContext.State3926323ef1c7fb03
    org.junit.jupiter.engine.execution.MethodInvocation8b8fd00463d994df
    org.junit.jupiter.engine.execution.NamespaceAwareStorec0df02c5fe61ed0f
    org.junit.jupiter.engine.execution.ParameterResolutionUtils5aba48e342016f8f
    org.junit.jupiter.engine.execution.TestInstancesProvider357bca6226069e7b
    org.junit.jupiter.engine.extension.DisabledCondition1604b4e34c1363e4
    org.junit.jupiter.engine.extension.ExtensionRegistrya610f9723b95715c
    org.junit.jupiter.engine.extension.MutableExtensionRegistry8bb00bdafadd1c3a
    org.junit.jupiter.engine.extension.RepeatedTestExtension32adc631c7f45534
    org.junit.jupiter.engine.extension.TempDirectorya3842c998767d9c7
    org.junit.jupiter.engine.extension.TestInfoParameterResolver3c520f8376f91ff7
    org.junit.jupiter.engine.extension.TestReporterParameterResolver7187071bfc76c6ac
    org.junit.jupiter.engine.extension.TimeoutConfiguration44b8593a8e980687
    org.junit.jupiter.engine.extension.TimeoutDurationParserbb6a412c3829dae9
    org.junit.jupiter.engine.extension.TimeoutExtension13bcdadb20fcc7bb
    org.junit.jupiter.engine.support.JupiterThrowableCollectorFactory46546a446de4c9c0
    org.junit.jupiter.engine.support.OpenTest4JAndJUnit4AwareThrowableCollectore9ee7d4e1adecdd1
    org.junit.platform.commons.function.Try5200e6adc191344c
    org.junit.platform.commons.function.Try.Failure5d1cf7b52cd7a7ea
    org.junit.platform.commons.function.Try.Success98cdc5b539e1abfd
    org.junit.platform.commons.logging.LoggerFactory39fdfe1f67bc0eda
    org.junit.platform.commons.logging.LoggerFactory.DelegatingLoggerc71dcf008235901c
    org.junit.platform.commons.support.AnnotationSupport183c2f1d296c27a5
    org.junit.platform.commons.support.ReflectionSupport945bcc92fedf115d
    org.junit.platform.commons.util.AnnotationUtils192a2ed89eaed125
    org.junit.platform.commons.util.ClassLoaderUtilsbf70ae4f9e1a53b8
    org.junit.platform.commons.util.ClassNamePatternFilterUtils661df78b93e45465
    org.junit.platform.commons.util.ClassUtils60a2276f3701443f
    org.junit.platform.commons.util.ClasspathScanner54e3df9bb2092b52
    org.junit.platform.commons.util.CollectionUtilsda7e269949986f5e
    org.junit.platform.commons.util.Preconditions2c2a6e13cda880d4
    org.junit.platform.commons.util.ReflectionUtils74e5cb62c8891604
    org.junit.platform.commons.util.ReflectionUtils.HierarchyTraversalMode3125245fc9d900bc
    org.junit.platform.commons.util.StringUtils237c0cb03ac19254
    org.junit.platform.commons.util.UnrecoverableExceptionse906a774e770e7d4
    org.junit.platform.engine.CompositeFilter6a52e5b4f7292f48
    org.junit.platform.engine.CompositeFilter.1cc0aadc5880fb4e4
    org.junit.platform.engine.EngineDiscoveryListenerf7640d771a4374d6
    org.junit.platform.engine.EngineDiscoveryListener.1a4cdbe8dd38d8f57
    org.junit.platform.engine.EngineExecutionListener693fee5cbd4c2df0
    org.junit.platform.engine.EngineExecutionListener.1999902b68f81dd9a
    org.junit.platform.engine.ExecutionRequestb74e001541d12dd1
    org.junit.platform.engine.Filter5ffaaa90df97ca04
    org.junit.platform.engine.FilterResulta787a89e1f12d534
    org.junit.platform.engine.SelectorResolutionResultb0cf35dcc829d3f4
    org.junit.platform.engine.SelectorResolutionResult.Statusc505c2274f89f01d
    org.junit.platform.engine.TestDescriptoraeaac58c9e7df241
    org.junit.platform.engine.TestDescriptor.Type20fe3e02963cb4b9
    org.junit.platform.engine.TestExecutionResult6b1b512d17bb680e
    org.junit.platform.engine.TestExecutionResult.Statusad256e9fb4407e04
    org.junit.platform.engine.UniqueIdf649a106c8945a6a
    org.junit.platform.engine.UniqueId.Segmentf77d401d3f546230
    org.junit.platform.engine.UniqueIdFormat6c86362ad62a1954
    org.junit.platform.engine.discovery.ClassSelectora1cacad45a144508
    org.junit.platform.engine.discovery.DiscoverySelectorsb6ccdda98704d231
    org.junit.platform.engine.discovery.MethodSelector69292f007e74298d
    org.junit.platform.engine.support.descriptor.AbstractTestDescriptorb9c965daf4d9a476
    org.junit.platform.engine.support.descriptor.ClassSource37bd92069360f773
    org.junit.platform.engine.support.descriptor.EngineDescriptor8f2f77769ee0e9c9
    org.junit.platform.engine.support.descriptor.MethodSource1d55ac49f5cabc20
    org.junit.platform.engine.support.discovery.ClassContainerSelectorResolverdc6114dc7e983729
    org.junit.platform.engine.support.discovery.EngineDiscoveryRequestResolution506a6b871d2fd8fe
    org.junit.platform.engine.support.discovery.EngineDiscoveryRequestResolution.DefaultContextdb18f59764ea1f2a
    org.junit.platform.engine.support.discovery.EngineDiscoveryRequestResolver687cbe6b3b72b453
    org.junit.platform.engine.support.discovery.EngineDiscoveryRequestResolver.Builder21b59a849a1e0107
    org.junit.platform.engine.support.discovery.EngineDiscoveryRequestResolver.DefaultInitializationContext1904819635770d62
    org.junit.platform.engine.support.discovery.SelectorResolver0e255bcad7a1cf5c
    org.junit.platform.engine.support.discovery.SelectorResolver.Match7260c13e30201f83
    org.junit.platform.engine.support.discovery.SelectorResolver.Match.Type4294f41b496cc4ce
    org.junit.platform.engine.support.discovery.SelectorResolver.Resolution721adb823179ce16
    org.junit.platform.engine.support.hierarchical.ExclusiveResourceefa2e06c87a351c3
    org.junit.platform.engine.support.hierarchical.ExclusiveResource.LockMode96e95d210b150f97
    org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine5c686da27ab7f7b0
    org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor963cba9b029b4b19
    org.junit.platform.engine.support.hierarchical.LockManager5aedd3bd3957b5a6
    org.junit.platform.engine.support.hierarchical.Noded5630bd7243c23ff
    org.junit.platform.engine.support.hierarchical.Node.SkipResult5aca1404ff0f9294
    org.junit.platform.engine.support.hierarchical.NodeExecutionAdvisor7c2670c7a35cfba6
    org.junit.platform.engine.support.hierarchical.NodeTestTaskf652d8cc5e11bdc5
    org.junit.platform.engine.support.hierarchical.NodeTestTask.DefaultDynamicTestExecutorabd00dd511d28b2f
    org.junit.platform.engine.support.hierarchical.NodeTestTaskContextbdf88cd3834282a5
    org.junit.platform.engine.support.hierarchical.NodeTreeWalkerc689092b060d0b12
    org.junit.platform.engine.support.hierarchical.NodeUtilsa7ec8f66d373c169
    org.junit.platform.engine.support.hierarchical.NodeUtils.15a44a7e2cbf864b4
    org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService4021fb0b954634b6
    org.junit.platform.engine.support.hierarchical.SingleLock2036ec8b92a38105
    org.junit.platform.engine.support.hierarchical.ThrowableCollector6fd7a27676be3c50
    org.junit.platform.launcher.EngineDiscoveryResult9f305fb9cafa070a
    org.junit.platform.launcher.EngineDiscoveryResult.Statusc6f73a818e869b3a
    org.junit.platform.launcher.LauncherDiscoveryListener4c7a9b5f0af6369d
    org.junit.platform.launcher.LauncherDiscoveryListener.1d946f222ae757dc1
    org.junit.platform.launcher.LauncherSessionListenere0db832b050d072e
    org.junit.platform.launcher.LauncherSessionListener.144b3640faa83f474
    org.junit.platform.launcher.TestExecutionListener07236b45fbd63c03
    org.junit.platform.launcher.TestIdentifier2b393a1d76332bc4
    org.junit.platform.launcher.TestPlanab4051f757ff4941
    org.junit.platform.launcher.core.CompositeEngineExecutionListenerd49c273c367d32cb
    org.junit.platform.launcher.core.CompositeTestExecutionListener2fec5f997b539877
    org.junit.platform.launcher.core.DefaultDiscoveryRequest5706e3938a47edbc
    org.junit.platform.launcher.core.DefaultLauncher75b262c721c1b524
    org.junit.platform.launcher.core.DefaultLauncherConfig6fbfe73d83f861ce
    org.junit.platform.launcher.core.DefaultLauncherSessionc8ae22f36a4f9c66
    org.junit.platform.launcher.core.DefaultLauncherSession.ClosedLauncher33b03a5d32880c72
    org.junit.platform.launcher.core.DefaultLauncherSession.DelegatingLauncher62a46fcfba060cd0
    org.junit.platform.launcher.core.DelegatingEngineExecutionListener98129d4f91790da1
    org.junit.platform.launcher.core.EngineDiscoveryOrchestrator9260ad30b5b1dcb4
    org.junit.platform.launcher.core.EngineDiscoveryOrchestrator.Phasec5da52319ffdb6cc
    org.junit.platform.launcher.core.EngineDiscoveryResultValidatorae8e824d499c28c0
    org.junit.platform.launcher.core.EngineExecutionOrchestratorada5b19c47df0fc9
    org.junit.platform.launcher.core.EngineFilterer5886e10a3932fe3b
    org.junit.platform.launcher.core.EngineIdValidator6ec884e3f1252b64
    org.junit.platform.launcher.core.ExecutionListenerAdapter027b702b863a1b7b
    org.junit.platform.launcher.core.InternalTestPlan6c1da5c749fc1754
    org.junit.platform.launcher.core.LauncherConfig33646d7c20caa86c
    org.junit.platform.launcher.core.LauncherConfig.Builder1a313fdb0cf517bd
    org.junit.platform.launcher.core.LauncherConfigurationParameters443c9d189d7662aa
    org.junit.platform.launcher.core.LauncherConfigurationParameters.Builder89b3d95a424a68ea
    org.junit.platform.launcher.core.LauncherConfigurationParameters.ParameterProviderda0ae1240b20de42
    org.junit.platform.launcher.core.LauncherConfigurationParameters.ParameterProvider.2481aeb52e3ac15c4
    org.junit.platform.launcher.core.LauncherConfigurationParameters.ParameterProvider.32d8e65fa362495e2
    org.junit.platform.launcher.core.LauncherDiscoveryRequestBuilder75b65d32610aecc6
    org.junit.platform.launcher.core.LauncherDiscoveryResult6ba764b26de92159
    org.junit.platform.launcher.core.LauncherFactory8e309d53ca525395
    org.junit.platform.launcher.core.ListenerRegistry387fd40f10f1e6b5
    org.junit.platform.launcher.core.OutcomeDelayingEngineExecutionListener4c68ad66a29b4dd7
    org.junit.platform.launcher.core.OutcomeDelayingEngineExecutionListener.Outcomeb6ca0889820c3cca
    org.junit.platform.launcher.core.ServiceLoaderRegistryb9cb7c73b65895b8
    org.junit.platform.launcher.core.ServiceLoaderTestEngineRegistry11cc074bf5cdf22e
    org.junit.platform.launcher.core.StreamInterceptingTestExecutionListener36972afd5e542435
    org.junit.platform.launcher.listeners.UniqueIdTrackingListenerf828b9fe46e426f0
    org.junit.platform.launcher.listeners.discovery.AbortOnFailureLauncherDiscoveryListeneree6720edc40a9ccf
    org.junit.platform.launcher.listeners.discovery.LauncherDiscoveryListenersd311082436d55ae9
    org.junit.platform.launcher.listeners.discovery.LauncherDiscoveryListeners.LauncherDiscoveryListenerTypee18e1a0e62e22287
    org.junit.platform.launcher.listeners.session.LauncherSessionListeners792ecbf10e49d607
    sun.text.resources.cldr.ext.FormatData_debb786f9842a8e946
    sun.util.resources.cldr.provider.CLDRLocaleDataMetaInfo9ed83010eeaa402e
    sun.util.resources.provider.LocaleDataProvider090384bcacb31f21
    \ No newline at end of file diff --git a/docs/site/jacoco/jacoco.csv b/docs/site/jacoco/jacoco.csv deleted file mode 100644 index aea27620..00000000 --- a/docs/site/jacoco/jacoco.csv +++ /dev/null @@ -1 +0,0 @@ -GROUP,PACKAGE,CLASS,INSTRUCTION_MISSED,INSTRUCTION_COVERED,BRANCH_MISSED,BRANCH_COVERED,LINE_MISSED,LINE_COVERED,COMPLEXITY_MISSED,COMPLEXITY_COVERED,METHOD_MISSED,METHOD_COVERED diff --git a/docs/site/jacoco/jacoco.xml b/docs/site/jacoco/jacoco.xml deleted file mode 100644 index ae460212..00000000 --- a/docs/site/jacoco/jacoco.xml +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/docs/site/jacoco/javax.measure.format/MeasurementParseException.html b/docs/site/jacoco/javax.measure.format/MeasurementParseException.html deleted file mode 100644 index 2648d863..00000000 --- a/docs/site/jacoco/javax.measure.format/MeasurementParseException.html +++ /dev/null @@ -1 +0,0 @@ -MeasurementParseException

    MeasurementParseException

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 36100 %0 of 2100 %0701406
    MeasurementParseException(String, CharSequence, int)10100 %n/a010401
    getParsedString()9100 %2100 %020301
    MeasurementParseException(CharSequence, int)6100 %n/a010201
    MeasurementParseException(Throwable)4100 %n/a010201
    MeasurementParseException(String)4100 %n/a010201
    getPosition()3100 %n/a010101
    \ No newline at end of file diff --git a/docs/site/jacoco/javax.measure.format/QuantityFormat.html b/docs/site/jacoco/javax.measure.format/QuantityFormat.html deleted file mode 100644 index 86fc3610..00000000 --- a/docs/site/jacoco/javax.measure.format/QuantityFormat.html +++ /dev/null @@ -1 +0,0 @@ -QuantityFormat

    QuantityFormat

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 2100 %0 of 0n/a010101
    isLocaleSensitive()2100 %n/a010101
    \ No newline at end of file diff --git a/docs/site/jacoco/javax.measure.format/UnitFormat.html b/docs/site/jacoco/javax.measure.format/UnitFormat.html deleted file mode 100644 index b2c50655..00000000 --- a/docs/site/jacoco/javax.measure.format/UnitFormat.html +++ /dev/null @@ -1 +0,0 @@ -UnitFormat

    UnitFormat

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 2100 %0 of 0n/a010101
    isLocaleSensitive()2100 %n/a010101
    \ No newline at end of file diff --git a/docs/site/jacoco/javax.measure.format/index.html b/docs/site/jacoco/javax.measure.format/index.html deleted file mode 100644 index 530af207..00000000 --- a/docs/site/jacoco/javax.measure.format/index.html +++ /dev/null @@ -1 +0,0 @@ -javax.measure.format

    javax.measure.format

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total0 of 40100 %0 of 2100 %090160803
    MeasurementParseException36100 %2100 %070140601
    QuantityFormat2100 %n/a01010101
    UnitFormat2100 %n/a01010101
    \ No newline at end of file diff --git a/docs/site/jacoco/javax.measure.format/index.source.html b/docs/site/jacoco/javax.measure.format/index.source.html deleted file mode 100644 index f161ad57..00000000 --- a/docs/site/jacoco/javax.measure.format/index.source.html +++ /dev/null @@ -1 +0,0 @@ -javax.measure.format

    javax.measure.format

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total0 of 40100 %0 of 2100 %090160803
    MeasurementParseException.java36100 %2100 %070140601
    UnitFormat.java2100 %n/a01010101
    QuantityFormat.java2100 %n/a01010101
    \ No newline at end of file diff --git a/docs/site/jacoco/javax.measure.spi/FormatService$FormatType.html b/docs/site/jacoco/javax.measure.spi/FormatService$FormatType.html deleted file mode 100644 index b85ca854..00000000 --- a/docs/site/jacoco/javax.measure.spi/FormatService$FormatType.html +++ /dev/null @@ -1 +0,0 @@ -FormatService.FormatType

    FormatService.FormatType

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 15100 %0 of 0n/a010301
    static {...}15100 %n/a010301
    \ No newline at end of file diff --git a/docs/site/jacoco/javax.measure.spi/FormatService.java.html b/docs/site/jacoco/javax.measure.spi/FormatService.java.html deleted file mode 100644 index 6ecc651c..00000000 --- a/docs/site/jacoco/javax.measure.spi/FormatService.java.html +++ /dev/null @@ -1,120 +0,0 @@ -FormatService.java

    FormatService.java

    /*
    - * Units of Measurement API
    - * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    - *
    - * All rights reserved.
    - *
    - * Redistribution and use in source and binary forms, with or without modification,
    - * are permitted provided that the following conditions are met:
    - *
    - * 1. Redistributions of source code must retain the above copyright notice,
    - *    this list of conditions and the following disclaimer.
    - *
    - * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    - *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    - *
    - * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    - *    derived from this software without specific prior written permission.
    - *
    - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    - * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    - * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    - */
    -package javax.measure.spi;
    -
    -import java.util.Set;
    -
    -import javax.measure.format.QuantityFormat;
    -import javax.measure.format.UnitFormat;
    -
    -/**
    - * This interface represents the service to obtain instances of {@link UnitFormat} and {@link QuantityFormat}.
    - *
    - * @author <a href="mailto:werner@uom.technology">Werner Keil</a>
    - * @version 2.3, May 20, 2023
    - * @since 2.0
    - */
    -public interface FormatService {
    -
    -	/** The type of format, either a {@link UnitFormat} or {@link QuantityFormat} */
    -    public static enum FormatType {
    -        /** Format of type {@link UnitFormat} */
    -    	UNIT_FORMAT, 
    -    	/** Format of type {@link QuantityFormat} */
    -    	QUANTITY_FORMAT
    -    }
    -
    -    /**
    -     * Returns the default quantity format.
    -     *
    -     * It is up to implementations what to consider a suitable default. For some (locale-sensitive) implementations it may be a quantity format based on
    -     * {@code Locale.current()} while others may return {@code getQuantityFormat("Simple")} or {@code getQuantityFormat("ISO")}.
    -     *
    -     * @return the default {@link QuantityFormat} implementation.
    -     */
    -    QuantityFormat getQuantityFormat();
    -
    -    /**
    -     * Returns the quantity format having the specified name or {@code null} if none.
    -     *
    -     * For example (@code getQuantityFormat("Simple")} to return the simple {@link QuantityFormat} implementation.
    -     *
    -     * @param name
    -     *          the name of the format.
    -     * @return the corresponding quantity format.
    -     */
    -    QuantityFormat getQuantityFormat(String name);
    -
    -    /**
    -     * Returns the default unit format.
    -     *
    -     * It is up to implementations what to consider a suitable default. For some (locale-sensitive) implementations it may be a unit format based on
    -     * {@code Locale.current()} while others may return {@code getUnitFormat("Simple")} or {@code getUnitFormat("ISO")}.
    -     *
    -     * @return the default {@link UnitFormat} implementation.
    -     */
    -    UnitFormat getUnitFormat();
    -
    -    /**
    -     * Returns the unit format having the specified name or {@code null} if none.
    -     *
    -     * For example {@code getUnitFormat("Simple")} to return a simple {@link UnitFormat} implementation.
    -     *
    -     * @param name
    -     *          the name of the format.
    -     * @return the corresponding unit format.
    -     */
    -    UnitFormat getUnitFormat(String name);
    -    
    -    /**
    -     * Returns the unit format having the specified name or {@code null} if none.
    -     *
    -     * For example {@code getUnitFormat("Simple")} to return a simple {@link UnitFormat} implementation.<br>
    -     * The variant is an arbitrary value to allow a variation of a {@link UnitFormat}, 
    -     * for example <code>UTF</code> vs. <code>ASCII</code> encoding of the simple <code>UnitFormat</code> 
    -     * or <code>case sensitive</code> vs. <code>case insensitive</code> <a href="https://ucum.org/ucum.html">UCUM</a> format.
    -     * <p>If no variant is applicable, the <code>UnitFormat</code> matching the name only is returned.</p> 
    -     * @param name
    -     *          the name of the format.
    -     * @param variant any arbitrary value used to indicate a variation of a <code>UnitFormat</code>.
    -     * @return the corresponding unit format.
    -     */
    -    UnitFormat getUnitFormat(String name, String variant);
    -    
    -    /**
    -     * Gets a list with available format names of a given type for this format service.
    -     *
    -     * @param type
    -     *          the {@link FormatType}
    -     * @return list of available formats, never null.
    -     */
    -    Set<String> getAvailableFormatNames(FormatType type);
    -}
    -
    \ No newline at end of file diff --git a/docs/site/jacoco/javax.measure.spi/ServiceProvider$Selector.html b/docs/site/jacoco/javax.measure.spi/ServiceProvider$Selector.html deleted file mode 100644 index 8bbdef6d..00000000 --- a/docs/site/jacoco/javax.measure.spi/ServiceProvider$Selector.html +++ /dev/null @@ -1 +0,0 @@ -ServiceProvider.Selector

    ServiceProvider.Selector

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total53 of 14663 %6 of 1457 %714164227
    getValue(Class, Method, Method)181951 %3350 %3481301
    priority(ServiceProvider)170 %20 %224411
    compare(ServiceProvider, ServiceProvider)80 %n/a111111
    ServiceProvider.Selector(String)73282 %2100 %0221301
    test(ServiceProvider)31583 %1150 %121401
    stream()17100 %2100 %020401
    getValueMethod(String)10100 %n/a010301
    \ No newline at end of file diff --git a/docs/site/jacoco/javax.measure.spi/ServiceProvider.html b/docs/site/jacoco/javax.measure.spi/ServiceProvider.html deleted file mode 100644 index ddbc0423..00000000 --- a/docs/site/jacoco/javax.measure.spi/ServiceProvider.html +++ /dev/null @@ -1 +0,0 @@ -ServiceProvider

    ServiceProvider

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total28 of 16983 %9 of 2259 %71863807
    available()183364 %5337 %3541201
    current()52382 %1375 %131701
    of(String)44191 %2466 %241901
    setCurrent(ServiceProvider)13497 %1375 %130601
    static {...}5100 %n/a010101
    ServiceProvider()3100 %n/a010201
    getPriority()2100 %n/a010101
    \ No newline at end of file diff --git a/docs/site/jacoco/javax.measure.spi/ServiceProvider.java.html b/docs/site/jacoco/javax.measure.spi/ServiceProvider.java.html deleted file mode 100644 index d0941d99..00000000 --- a/docs/site/jacoco/javax.measure.spi/ServiceProvider.java.html +++ /dev/null @@ -1,414 +0,0 @@ -ServiceProvider.java

    ServiceProvider.java

    /*
    - * Units of Measurement API
    - * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    - *
    - * All rights reserved.
    - *
    - * Redistribution and use in source and binary forms, with or without modification,
    - * are permitted provided that the following conditions are met:
    - *
    - * 1. Redistributions of source code must retain the above copyright notice,
    - *    this list of conditions and the following disclaimer.
    - *
    - * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    - *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    - *
    - * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    - *    derived from this software without specific prior written permission.
    - *
    - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    - * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    - * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    - */
    -package javax.measure.spi;
    -
    -import java.lang.annotation.Annotation;
    -import java.lang.reflect.InvocationTargetException;
    -import java.lang.reflect.Method;
    -import java.util.ArrayList;
    -import java.util.Comparator;
    -import java.util.List;
    -import java.util.Objects;
    -import java.util.Optional;
    -import java.util.ServiceConfigurationError;
    -import java.util.ServiceLoader;
    -import java.util.concurrent.atomic.AtomicReference;
    -import java.util.function.Predicate;
    -import java.util.logging.Level;
    -import java.util.logging.Logger;
    -import java.util.stream.Collectors;
    -import java.util.stream.Stream;
    -import java.util.stream.StreamSupport;
    -import javax.measure.Quantity;
    -import javax.measure.format.QuantityFormat;
    -import javax.measure.format.UnitFormat;
    -
    -/**
    - * Service Provider for Units of Measurement services.
    - * <p>
    - * All the methods in this class are safe to use by multiple concurrent threads.
    - * </p>
    - *
    - * @version 2.3, May 19, 2023
    - * @author Werner Keil
    - * @author Martin Desruisseaux
    - * @since 1.0
    - */
    -public abstract class ServiceProvider {
    -    /**
    -     * Class name of JSR-330 annotation for naming a service provider.
    -     * We use reflection for keeping JSR-330 an optional dependency.
    -     */
    -    private static final String LEGACY_NAMED_ANNOTATION = "javax.inject.Named";
    -
    -    /**
    -     * Class name of JSR-250 annotation for assigning a priority level to a service provider.
    -     * We use reflection for keeping JSR-250 an optional dependency.
    -     */
    -    private static final String LEGACY_PRIORITY_ANNOTATION = "javax.annotation.Priority";
    -
    -    /**
    -     * Class name of Jakarta Dependency Injection annotation for naming a service provider.
    -     * We use reflection for keeping Jakata Injection an optional dependency.
    -     */
    -    private static final String NAMED_ANNOTATION = "jakarta.inject.Named";
    -
    -    /**
    -     * Class name of Jakarta Common Annotation for assigning a priority level to a service provider.
    -     * We use reflection for keeping Jakarta Annotations an optional dependency.
    -     */
    -    private static final String PRIORITY_ANNOTATION = "jakarta.annotation.Priority";
    -
    -    /**
    -     * The current service provider, or {@code null} if not yet determined.
    -     *
    -     * <p>Implementation Note: We do not cache a list of all service providers because that list depends
    -     * indirectly on the thread invoking the {@link #available()} method. More specifically, it depends
    -     * on the context class loader. Furthermore caching the {@code ServiceProvider}s can be a source of
    -     * memory leaks. See {@link ServiceLoader#load(Class)} API note for reference.</p>
    -     */
    -    private static final AtomicReference<ServiceProvider> current = new AtomicReference<>();
    -
    -    /**
    -     * Creates a new service provider. Only to be used by subclasses.
    -     */
    -    protected ServiceProvider() {
    -    }
    -
    -    /**
    -     * Allows to define a priority for a registered {@code ServiceProvider} instance.
    -     * When multiple providers are registered in the system, the provider with the highest priority value is taken.
    -     *
    -     * <p>If the {@value #PRIORITY_ANNOTATION} annotation (from Jakarta Annotations)
    -     * or {@value #LEGACY_PRIORITY_ANNOTATION} annotation (from JSR-250) is present on the {@code ServiceProvider}
    -     * implementation class, then that annotation (first if both were present) is taken and this {@code getPriority()} method is ignored.
    -     * Otherwise – if a {@code Priority} annotation is absent – this method is used as a fallback.</p>
    -     *
    -     * @return the provider's priority (default is 0).
    -     */
    -    public int getPriority() {
    -        return 0;
    -    }
    -
    -    /**
    -     * Returns the service to obtain a {@link SystemOfUnits}, or {@code null} if none.
    -     *
    -     * @return the service to obtain a {@link SystemOfUnits}, or {@code null}.
    -     */
    -    public abstract SystemOfUnitsService getSystemOfUnitsService();
    -
    -    /**
    -     * Returns the service to obtain {@link UnitFormat} and {@link QuantityFormat} or {@code null} if none.
    -     *
    -     * @return the service to obtain a {@link UnitFormat} and {@link QuantityFormat}, or {@code null}.
    -     * @since 2.0
    -     */
    -    public abstract FormatService getFormatService();
    -
    -    /**
    -     * Returns a factory for the given {@link Quantity} type.
    -     *
    -     * @param <Q>
    -     *            the type of the {@link Quantity} instances created by the factory
    -     * @param quantity
    -     *            the quantity type
    -     * @return the {@link QuantityFactory} for the given type
    -     */
    -    public abstract <Q extends Quantity<Q>> QuantityFactory<Q> getQuantityFactory(Class<Q> quantity);
    -
    -    /**
    -     * A filter and a comparator for processing the stream of service providers.
    -     * The two tasks (filtering and sorting) are implemented by the same class,
    -     * but the filter task shall be used only if the name to search is non-null.
    -     * The comparator is used in all cases, for sorting providers with higher priority first.
    -     */
    -    private static final class Selector implements Predicate<ServiceProvider>, Comparator<ServiceProvider> {
    -        /**
    -         * The name of the provider to search, or {@code null} if no filtering by name is applied.
    -         */
    -        private final String toSearch;
    -
    -        /**
    -         * The {@code value()} method in the {@value #NAMED_ANNOTATION} annotation,
    -         * or {@code null} if that class is not on the classpath.
    -         */
    -        private final Method nameGetter;
    -
    -        /**
    -         * The {@code value()} method in the {@value #PRIORITY_ANNOTATION} annotation,
    -         * or {@code null} if that class is not on the classpath.
    -         */
    -        private final Method priorityGetter;
    -
    -        /**
    -         * The {@code value()} method in the {@value #LEGACY_NAMED_ANNOTATION} annotation,
    -         * or {@code null} if that class is not on the classpath.
    -         */
    -        private final Method legacyNameGetter;
    -
    -        /**
    -         * The {@code value()} method in the {@value #LEGACY_PRIORITY_ANNOTATION} annotation,
    -         * or {@code null} if that class is not on the classpath.
    -         */
    -        private final Method legacyPriorityGetter;
    -
    -        /**
    -         * Creates a new filter and comparator for a stream of service providers.
    -         *
    -         * @param name  name of the desired service provider, or {@code null} if no filtering by name is applied.
    -         */
    -        Selector(String name) {
    -            toSearch = name;
    -            try {
    -                if (name != null) {
    -                    nameGetter       = getValueMethod(NAMED_ANNOTATION);
    -                    legacyNameGetter = getValueMethod(LEGACY_NAMED_ANNOTATION);
    -                } else {
    -                    nameGetter       = null;
    -                    legacyNameGetter = null;
    -                }
    -                priorityGetter       = getValueMethod(PRIORITY_ANNOTATION);
    -                legacyPriorityGetter = getValueMethod(LEGACY_PRIORITY_ANNOTATION);
    -            } catch (NoSuchMethodException e) {
    -                // Should never happen since value() is a standard public method of those annotations.
    -                throw new ServiceConfigurationError("Cannot get annotation value", e);
    -            }
    -        }
    -
    -        /**
    -         * Returns the {@code value()} method in the given annotation class.
    -         *
    -         * @param  classname  name of the class from which to get the {@code value()} method.
    -         * @return the {@code value()} method, or {@code null} if the annotation class was not found.
    -         */
    -        private static Method getValueMethod(final String classname) throws NoSuchMethodException {
    -            try {
    -                return Class.forName(classname).getMethod("value", (Class[]) null);
    -            } catch (ClassNotFoundException e) {
    -                // Ignore because JSR-330, JSR-250 and Jakarta are optional dependencies.
    -                return null;
    -            }
    -        }
    -
    -        /**
    -         * Invokes the {@code value()} method on the annotation of the given class.
    -         * The annotation on which to invoke the method is given by {@link Method#getDeclaringClass()}.
    -         *
    -         * @param  provider   class of the provider on which to invoke annotation {@code value()}.
    -         * @param  getter     the preferred  {@code value()} method to invoke, or {@code null}.
    -         * @param  fallback   an alternative {@code value()} method to invoke, or {@code null}.
    -         * @return the value, or {@code null} if none.
    -         */
    -        private static Object getValue(final Class<?> provider, Method getter, Method fallback) {
    -            if (getter == null) {
    -                getter = fallback;
    -                fallback = null;
    -            }
    -            while (getter != null) {
    -                final Annotation a = provider.getAnnotation(getter.getDeclaringClass().asSubclass(Annotation.class));
    -                if (a != null) try {
    -                    return getter.invoke(a, (Object[]) null);
    -                } catch (IllegalAccessException | InvocationTargetException e) {
    -                    // Should never happen since value() is a public method and should not throw exception.
    -                    throw new ServiceConfigurationError("Cannot get annotation value", e);
    -                }
    -                getter = fallback;
    -                fallback = null;
    -            }
    -            return null;
    -        }
    -
    -        /**
    -         * Returns {@code true} if the given service provider has the name we are looking for.
    -         * This method shall be invoked only if a non-null name has been specified to the constructor.
    -         * This method looks for the {@value #NAMED_ANNOTATION} and {@value #LEGACY_NAMED_ANNOTATION}
    -         * annotations in that order, and if none are found fallbacks on {@link ServiceProvider#toString()}.
    -         */
    -        @Override
    -        public boolean test(final ServiceProvider provider) {
    -            Object value = getValue(provider.getClass(), nameGetter, legacyNameGetter);
    -            if (value == null) {
    -                value = provider.toString();
    -            }
    -            return toSearch.equals(value);
    -        }
    -
    -        /**
    -         * Returns the priority of the given service provider.
    -         * This method looks for the {@value #PRIORITY_ANNOTATION} and {@value #LEGACY_PRIORITY_ANNOTATION}
    -         * annotations in that order, and if none are found falls back on {@link ServiceProvider#getPriority()}.
    -         */
    -        private int priority(final ServiceProvider provider) {
    -            Object value = getValue(provider.getClass(), priorityGetter, legacyPriorityGetter);
    -            if (value != null) {
    -                return (Integer) value;
    -            }
    -            return provider.getPriority();
    -        }
    -
    -        /**
    -         * Compares the given service providers for order based on their priority.
    -         * The priority of each provider is determined as documented by {@link ServiceProvider#getPriority()}.
    -         */
    -        @Override
    -        public int compare(final ServiceProvider p1, final ServiceProvider p2) {
    -            return Integer.compare(priority(p2), priority(p1)); // reverse order, higher number first.
    -        }
    -
    -        /**
    -         * Gets all {@link ServiceProvider}s sorted by priority and optionally filtered by the name in this selector.
    -         * The list of service providers is <strong>not</strong> cached because it depends on the context class loader,
    -         * which itself depends on which thread is invoking this method.
    -         */
    -        private Stream<ServiceProvider> stream() {
    -            Stream<ServiceProvider> stream = StreamSupport.stream(ServiceLoader.load(ServiceProvider.class).spliterator(), false);
    -            if (toSearch != null) {
    -                stream = stream.filter(this);
    -            }
    -            return stream.sorted(this);
    -        }
    -    }
    -
    -    /**
    -     * Returns the list of all service providers available for the current thread's context class loader.
    -     * The {@linkplain #current() current} service provider is always the first item in the returned list.
    -     * Other service providers after the first item may depend on the caller thread
    -     * (see {@linkplain ServiceLoader#load(Class) service loader API note}).
    -     *
    -     * @return all service providers available for the current thread's context class loader.
    -     */
    -    public static final List<ServiceProvider> available() {
    -        ArrayList<ServiceProvider> providers = new Selector(null).stream().collect(Collectors.toCollection(ArrayList::new));
    -        final ServiceProvider first = current.get();
    -        /*
    -         * Make sure that 'first' is the first item in the 'providers' list. If that item appears
    -         * somewhere else, we have to remove the second occurrence for avoiding duplicated elements.
    -         * We compare the classes, not the instances, because new instances may be created each time
    -         * this method is invoked and we have no guaranteed that implementors overrode 'equals'.
    -         */
    -setcur: if (first != null) {
    -            final Class<?> cf = first.getClass();
    -            final int size = providers.size();
    -            for (int i=0; i<size; i++) {
    -                if (cf.equals(providers.get(i).getClass())) {
    -                    if (i == 0) break setcur;       // No change needed (note: labeled breaks on if statements are legal).
    -                    providers.remove(i);
    -                    break;
    -                }
    -            }
    -            providers.add(0, first);
    -        }
    -        return providers;
    -    }
    -
    -    /**
    -     * Returns the {@link ServiceProvider} with the specified name.
    -     * The given name must match the name of at least one service provider available in the current thread's
    -     * context class loader.
    -     * The service provider names are the values of {@value #NAMED_ANNOTATION} (from Jakarta Annotations) or
    -     * {@value #LEGACY_NAMED_ANNOTATION} (from JSR-330) annotations when present (first if both were present),
    -     * or the value of {@link #toString()} method for providers without {@code Named} annotation.
    -     *
    -     * <p>Implementors are encouraged to provide an {@code Named} annotation or to override {@link #toString()}
    -     * and use a unique enough name, e.g. the class name or other distinct attributes.
    -     * Should multiple service providers nevertheless use the same name, the one with the highest
    -     * {@linkplain #getPriority() priority} wins.</p>
    -     *
    -     * @param name
    -     *            the name of the service provider to return
    -     * @return the {@link ServiceProvider} with the specified name
    -     * @throws IllegalArgumentException
    -     *             if available service providers do not contain a provider with the specified name
    -     * @throws NullPointerException
    -     *             if {@code name} is null
    -     * @see #toString()
    -     * @since 2.0
    -     */
    -    public static ServiceProvider of(String name) {
    -        Objects.requireNonNull(name);
    -        Selector select = new Selector(name);
    -        ServiceProvider p = current.get();
    -        if (p != null && select.test(p)) {
    -            return p;
    -        }
    -        Optional<ServiceProvider> first = select.stream().findFirst();
    -        if (first.isPresent()) {
    -            return first.get();
    -        } else {
    -            throw new IllegalArgumentException("No Measurement ServiceProvider " + name + " found .");
    -        }
    -    }
    -
    -    /**
    -     * Returns the current {@link ServiceProvider}. If necessary the {@link ServiceProvider} will be lazily loaded.
    -     * <p>
    -     * If there are no providers available, an {@linkplain IllegalStateException} is thrown.
    -     * Otherwise the provider with the highest priority is used
    -     * or the one explicitly designated via {@link #setCurrent(ServiceProvider)}.
    -     * </p>
    -     *
    -     * @return the {@link ServiceProvider} used.
    -     * @throws IllegalStateException
    -     *             if no {@link ServiceProvider} has been found.
    -     * @see #getPriority()
    -     * @see #setCurrent(ServiceProvider)
    -     */
    -    public static final ServiceProvider current() {
    -        ServiceProvider p = current.get();
    -        if (p == null) {
    -            Optional<ServiceProvider> first = new Selector(null).stream().findFirst();
    -            if (first.isPresent()) {
    -                p = first.get();
    -            } else {
    -                throw new IllegalStateException("No Measurement ServiceProvider found.");
    -            }
    -        }
    -        return p;
    -    }
    -
    -    /**
    -     * Replaces the current {@link ServiceProvider}.
    -     *
    -     * @param provider
    -     *            the new {@link ServiceProvider}
    -     * @return the replaced provider, or null.
    -     */
    -    public static final ServiceProvider setCurrent(ServiceProvider provider) {
    -        Objects.requireNonNull(provider);
    -        ServiceProvider old = current.getAndSet(provider);
    -        if (old != provider) {
    -            Logger.getLogger("javax.measure.spi").log(Level.CONFIG,
    -                    "Measurement ServiceProvider {1,choice,0#set to|1#replaced by} {0}.",
    -                    new Object[] {provider.getClass().getName(), (old == null) ? 0 : 1});
    -        }
    -        return old;
    -    }
    -}
    -
    \ No newline at end of file diff --git a/docs/site/jacoco/javax.measure.spi/SystemOfUnitsService.html b/docs/site/jacoco/javax.measure.spi/SystemOfUnitsService.html deleted file mode 100644 index 08dfd9a7..00000000 --- a/docs/site/jacoco/javax.measure.spi/SystemOfUnitsService.html +++ /dev/null @@ -1 +0,0 @@ -SystemOfUnitsService

    SystemOfUnitsService

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 23100 %0 of 2100 %020401
    getPrefixes(Class)23100 %2100 %020401
    \ No newline at end of file diff --git a/docs/site/jacoco/javax.measure.spi/index.html b/docs/site/jacoco/javax.measure.spi/index.html deleted file mode 100644 index 6f1777ea..00000000 --- a/docs/site/jacoco/javax.measure.spi/index.html +++ /dev/null @@ -1 +0,0 @@ -javax.measure.spi

    javax.measure.spi

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total81 of 35377 %15 of 3860 %1435228721604
    ServiceProvider.Selector539363 %6857 %71416422701
    ServiceProvider2814183 %91359 %7186380701
    SystemOfUnitsService23100 %2100 %02040101
    FormatService.FormatType15100 %n/a01030101
    \ No newline at end of file diff --git a/docs/site/jacoco/javax.measure.spi/index.source.html b/docs/site/jacoco/javax.measure.spi/index.source.html deleted file mode 100644 index c317bffa..00000000 --- a/docs/site/jacoco/javax.measure.spi/index.source.html +++ /dev/null @@ -1 +0,0 @@ -javax.measure.spi

    javax.measure.spi

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total81 of 35377 %15 of 3860 %1435228721604
    ServiceProvider.java8123474 %152158 %1432228021402
    SystemOfUnitsService.java23100 %2100 %02040101
    FormatService.java15100 %n/a01030101
    \ No newline at end of file diff --git a/docs/site/jacoco/javax.measure/BinaryPrefix.html b/docs/site/jacoco/javax.measure/BinaryPrefix.html deleted file mode 100644 index c59158d3..00000000 --- a/docs/site/jacoco/javax.measure/BinaryPrefix.html +++ /dev/null @@ -1 +0,0 @@ -BinaryPrefix

    BinaryPrefix

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 122100 %0 of 0n/a014025014
    static {...}67100 %n/a010901
    BinaryPrefix(String, int, String, int)11100 %n/a010401
    KIBI(Unit)4100 %n/a010101
    MEBI(Unit)4100 %n/a010101
    GIBI(Unit)4100 %n/a010101
    TEBI(Unit)4100 %n/a010101
    PEBI(Unit)4100 %n/a010101
    EXBI(Unit)4100 %n/a010101
    ZEBI(Unit)4100 %n/a010101
    YOBI(Unit)4100 %n/a010101
    getSymbol()3100 %n/a010101
    getValue()3100 %n/a010101
    getExponent()3100 %n/a010101
    getName()3100 %n/a010101
    \ No newline at end of file diff --git a/docs/site/jacoco/javax.measure/BinaryPrefix.java.html b/docs/site/jacoco/javax.measure/BinaryPrefix.java.html deleted file mode 100644 index f7b0f2e6..00000000 --- a/docs/site/jacoco/javax.measure/BinaryPrefix.java.html +++ /dev/null @@ -1,247 +0,0 @@ -BinaryPrefix.java

    BinaryPrefix.java

    /*
    - * Units of Measurement API
    - * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    - *
    - * All rights reserved.
    - *
    - * Redistribution and use in source and binary forms, with or without modification,
    - * are permitted provided that the following conditions are met:
    - *
    - * 1. Redistributions of source code must retain the above copyright notice,
    - *    this list of conditions and the following disclaimer.
    - *
    - * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    - *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    - *
    - * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    - *    derived from this software without specific prior written permission.
    - *
    - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    - * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    - * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    - */
    -package javax.measure;
    -
    -/**
    - * Provides support for common binary prefixes to be used by units. For example:
    - * <pre>
    - * {@code import static systems.uom.unicode.CLDR.*;  // Static import (from Unicode System).
    - * import static javax.measure.BinaryPrefix.*; // Static import.
    - * import javax.measure.*;
    - * import systems.uom.quantity.Information; // (from Systems Quantities)
    - * ...
    - * Unit<Information> MEBIT  = MEBI(BIT);
    - * Unit<Information> GIBYTE = GIBI(BYTE);} 
    - * </pre>
    - * You could also apply <code>Unit.prefix</code>:
    - * <pre>
    - * {@code ...
    - * Unit<Information> MEBIT  = BIT.prefix(MEBI);
    - * Unit<Information> GIBYTE = BYTE.prefix(GIBI);}
    - * </pre>
    - * 
    - * <p>
    - * <b>Do not use ordinal() to obtain the numeric representation of BinaryPrefix. Use getValue() and getExponent() instead.</b>
    - * </p>
    - * 
    - * <dl>
    - * <dt><span class="strong">Implementation Requirements</span></dt><dd>This is an immutable and thread-safe enum.</dd>
    - * </dl> 
    - *
    - * @author <a href="mailto:werner@units.tech">Werner Keil</a>
    - * @version 2.3, October 31, 2023
    - * @see <a href="https://en.wikipedia.org/wiki/Binary_prefix">Wikipedia: Binary Prefix</a>
    - * @since 2.0
    - */
    -public enum BinaryPrefix implements Prefix {
    -    /** Prefix for 1024. */
    -    KIBI("Ki", 1),
    -    /** Prefix for 1024<sup>2</sup>. */
    -    MEBI("Mi", 2),
    -    /** Prefix for 1024<sup>3</sup>. */
    -    GIBI("Gi", 3),
    -    /** Prefix for 1024<sup>4</sup>. */
    -    TEBI("Ti", 4),
    -    /** Prefix for 1024<sup>5</sup>. */
    -    PEBI("Pi", 5),
    -    /** Prefix for 1024<sup>6</sup>. */
    -    EXBI("Ei", 6),
    -    /** Prefix for 1024<sup>7</sup>. */
    -    ZEBI("Zi", 7),
    -    /** Prefix for 1024<sup>8</sup>. */
    -    YOBI("Yi", 8);
    -
    -    /**
    -     * The symbol of this prefix, as returned by {@link #getSymbol}.
    -     *
    -     * @serial
    -     * @see #getSymbol()
    -     */
    -    private final String symbol;
    -
    -    /**
    -     * Exponent part of the associated factor in base^exponent representation.
    -     */
    -    private final int exponent;
    -
    -    /**
    -     * Creates a new prefix.
    -     *
    -     * @param symbol
    -     *          the symbol of this prefix.
    -     * @param exponent
    -     *          part of the associated factor in base^exponent representation.
    -     */
    -    private BinaryPrefix(String symbol, int exponent) {
    -        this.symbol = symbol;
    -        this.exponent = exponent;
    -    }
    -
    -    /**
    -     * Returns the specified unit multiplied by the factor <code>1024</code> (binary prefix).
    -     *
    -     * @param <Q>
    -     *          type of the quantity measured by the unit.
    -     * @param unit
    -     *          any unit.
    -     * @return <code>unit.prefix(1024)</code>.
    -     */
    -    public static <Q extends Quantity<Q>> Unit<Q> KIBI(Unit<Q> unit) {
    -        return unit.prefix(KIBI);
    -    }
    -
    -    /**
    -     * Returns the specified unit multiplied by the factor <code>1024<sup>2</sup></code> (binary prefix).
    -     *
    -     * @param <Q>
    -     *          type of the quantity measured by the unit.
    -     * @param unit
    -     *          any unit.
    -     * @return <code>unit.prefix(1024<sup>2</sup>)</code>.
    -     */
    -    public static <Q extends Quantity<Q>> Unit<Q> MEBI(Unit<Q> unit) {
    -        return unit.prefix(MEBI);
    -    }
    -
    -    /**
    -     * Returns the specified unit multiplied by the factor <code>1024<sup>3</sup></code> (binary prefix).
    -     *
    -     * @param <Q>
    -     *          type of the quantity measured by the unit.
    -     * @param unit
    -     *          any unit.
    -     * @return <code>unit.prefix(1024<sup>3</sup>)</code>.
    -     */
    -    public static <Q extends Quantity<Q>> Unit<Q> GIBI(Unit<Q> unit) {
    -        return unit.prefix(GIBI);
    -    }
    -
    -    /**
    -     * Returns the specified unit multiplied by the factor <code>1024<sup>4</sup></code> (binary prefix).
    -     *
    -     * @param <Q>
    -     *          type of the quantity measured by the unit.
    -     * @param unit
    -     *          any unit.
    -     * @return <code>unit.prefix(1024<sup>4</sup>)</code>.
    -     */
    -    public static <Q extends Quantity<Q>> Unit<Q> TEBI(Unit<Q> unit) {
    -        return unit.prefix(TEBI);
    -    }
    -
    -    /**
    -     * Returns the specified unit multiplied by the factor <code>1024<sup>5</sup></code> (binary prefix).
    -     *
    -     * @param <Q>
    -     *          type of the quantity measured by the unit.
    -     * @param unit
    -     *          any unit.
    -     * @return <code>unit.prefix(1024<sup>5</sup>)</code>.
    -     */
    -    public static <Q extends Quantity<Q>> Unit<Q> PEBI(Unit<Q> unit) {
    -        return unit.prefix(PEBI);
    -    }
    -
    -    /**
    -     * Returns the specified unit multiplied by the factor <code>1024<sup>6</sup></code> (binary prefix).
    -     *
    -     * @param <Q>
    -     *          type of the quantity measured by the unit.
    -     * @param unit
    -     *          any unit.
    -     * @return <code>unit.prefix(1024<sup>6</sup>)</code>.
    -     */
    -    public static <Q extends Quantity<Q>> Unit<Q> EXBI(Unit<Q> unit) {
    -        return unit.prefix(EXBI);
    -    }
    -
    -    /**
    -     * Returns the specified unit multiplied by the factor <code>1024<sup>7</sup></code> (binary prefix).
    -     *
    -     * @param <Q>
    -     *          type of the quantity measured by the unit.
    -     * @param unit
    -     *          any unit.
    -     * @return <code>unit.prefix(1024<sup>7</sup>)</code>.
    -     */
    -    public static <Q extends Quantity<Q>> Unit<Q> ZEBI(Unit<Q> unit) {
    -        return unit.prefix(ZEBI);
    -    }
    -
    -    /**
    -     * Returns the specified unit multiplied by the factor <code>1024<sup>8</sup></code> (binary prefix).
    -     *
    -     * @param <Q>
    -     *          type of the quantity measured by the unit.
    -     * @param unit
    -     *          any unit.
    -     * @return <code>unit.prefix(1024<sup>8</sup>)</code>.
    -     */
    -    public static <Q extends Quantity<Q>> Unit<Q> YOBI(Unit<Q> unit) {
    -        return unit.prefix(YOBI);
    -    }
    -
    -    /**
    -     * Returns the symbol of this prefix.
    -     *
    -     * @return this prefix symbol, not {@code null}.
    -     */
    -    @Override
    -    public String getSymbol() {
    -        return symbol;
    -    }
    -
    -    /**
    -     * Base part of the associated factor in {@code base^exponent} representation. For binary prefix, this is always 1024.
    -     */
    -    @Override
    -    public Integer getValue() {
    -        return 1024;
    -    }
    -
    -    /**
    -     * Exponent part of the associated factor in {@code base^exponent} representation.
    -     */
    -    @Override
    -    public int getExponent() {
    -        return exponent;
    -    }
    -
    -    /**
    -     * Returns the name of this prefix.
    -     *
    -     * @return this prefix name, not {@code null}.
    -     */
    -    @Override
    -    public String getName() {
    -        return name();
    -    }
    -}
    -
    \ No newline at end of file diff --git a/docs/site/jacoco/javax.measure/IncommensurableException.html b/docs/site/jacoco/javax.measure/IncommensurableException.html deleted file mode 100644 index 43750cbd..00000000 --- a/docs/site/jacoco/javax.measure/IncommensurableException.html +++ /dev/null @@ -1 +0,0 @@ -IncommensurableException

    IncommensurableException

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 13100 %0 of 0n/a030603
    IncommensurableException(String, Throwable)5100 %n/a010201
    IncommensurableException(String)4100 %n/a010201
    IncommensurableException(Throwable)4100 %n/a010201
    \ No newline at end of file diff --git a/docs/site/jacoco/javax.measure/MeasurementError.html b/docs/site/jacoco/javax.measure/MeasurementError.html deleted file mode 100644 index 223c8c79..00000000 --- a/docs/site/jacoco/javax.measure/MeasurementError.html +++ /dev/null @@ -1 +0,0 @@ -MeasurementError

    MeasurementError

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 16100 %0 of 0n/a040804
    MeasurementError(String, Throwable)5100 %n/a010201
    MeasurementError(String)4100 %n/a010201
    MeasurementError(Throwable)4100 %n/a010201
    MeasurementError()3100 %n/a010201
    \ No newline at end of file diff --git a/docs/site/jacoco/javax.measure/MeasurementError.java.html b/docs/site/jacoco/javax.measure/MeasurementError.java.html deleted file mode 100644 index a7901c03..00000000 --- a/docs/site/jacoco/javax.measure/MeasurementError.java.html +++ /dev/null @@ -1,90 +0,0 @@ -MeasurementError.java

    MeasurementError.java

    /*
    - * Units of Measurement API
    - * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    - *
    - * All rights reserved.
    - *
    - * Redistribution and use in source and binary forms, with or without modification,
    - * are permitted provided that the following conditions are met:
    - *
    - * 1. Redistributions of source code must retain the above copyright notice,
    - *    this list of conditions and the following disclaimer.
    - *
    - * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    - *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    - *
    - * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    - *    derived from this software without specific prior written permission.
    - *
    - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    - * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    - * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    - */
    -package javax.measure;
    -
    -/**
    - * This error is used to indicate serious problems with creating, retrieving and manipulating units of measurement objects.
    - *
    - * <dl>
    - * <dt><span class="strong">Implementation Requirements:</span></dt>
    - * <dd>This class is intended for use in a single thread. Exception thrown when errors occur during Units of Measurement operations.</dd>
    - * </dl>
    - * 
    - * @author <a href="mailto:werner@uom.technology">Werner Keil</a>
    - * @version 2.2, Feb 3, 2021
    - * @since 2.1
    - */
    -public class MeasurementError extends Error {
    -
    -    /**
    -	 * 
    -	 */
    -    private static final long serialVersionUID = -412360965273525777L;
    -
    -    /**
    -     * Constructs a {@code MeasurementError} with no detail message.
    -     */
    -    public MeasurementError() {
    -        super();
    -    }
    -
    -    /**
    -     * Constructs a {@code MeasurementError} with the specified detail message.
    -     *
    -     * @param message
    -     *            the detail message.
    -     */
    -    public MeasurementError(final String message) {
    -        super(message);
    -    }
    -
    -    /**
    -     * Constructs a {@code MeasurementError} with the given cause.
    -     *
    -     * @param cause
    -     *            the cause of this exception, or {@code null} if none.
    -     */
    -    public MeasurementError(final Throwable cause) {
    -        super(cause);
    -    }
    -
    -    /**
    -     * Constructs a {@code MeasurementError} with the specified detail message and cause.
    -     *
    -     * @param message
    -     *            the detail message.
    -     * @param cause
    -     *            the cause, may be {@code null}
    -     */
    -    public MeasurementError(final String message, final Throwable cause) {
    -        super(message, cause);
    -    }
    -}
    -
    \ No newline at end of file diff --git a/docs/site/jacoco/javax.measure/MeasurementException.html b/docs/site/jacoco/javax.measure/MeasurementException.html deleted file mode 100644 index 97578139..00000000 --- a/docs/site/jacoco/javax.measure/MeasurementException.html +++ /dev/null @@ -1 +0,0 @@ -MeasurementException

    MeasurementException

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 16100 %0 of 0n/a040804
    MeasurementException(String, Throwable)5100 %n/a010201
    MeasurementException(String)4100 %n/a010201
    MeasurementException(Throwable)4100 %n/a010201
    MeasurementException()3100 %n/a010201
    \ No newline at end of file diff --git a/docs/site/jacoco/javax.measure/MetricPrefix.html b/docs/site/jacoco/javax.measure/MetricPrefix.html deleted file mode 100644 index 7ff4ab2b..00000000 --- a/docs/site/jacoco/javax.measure/MetricPrefix.html +++ /dev/null @@ -1 +0,0 @@ -MetricPrefix

    MetricPrefix

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 318100 %0 of 0n/a031058031
    static {...}195100 %n/a0102501
    MetricPrefix(String, int, String, int)11100 %n/a010401
    QUETTA(Unit)4100 %n/a010101
    RONNA(Unit)4100 %n/a010101
    YOTTA(Unit)4100 %n/a010101
    ZETTA(Unit)4100 %n/a010101
    EXA(Unit)4100 %n/a010101
    PETA(Unit)4100 %n/a010101
    TERA(Unit)4100 %n/a010101
    GIGA(Unit)4100 %n/a010101
    MEGA(Unit)4100 %n/a010101
    KILO(Unit)4100 %n/a010101
    HECTO(Unit)4100 %n/a010101
    DECA(Unit)4100 %n/a010101
    DEKA(Unit)4100 %n/a010101
    DECI(Unit)4100 %n/a010101
    CENTI(Unit)4100 %n/a010101
    MILLI(Unit)4100 %n/a010101
    MICRO(Unit)4100 %n/a010101
    NANO(Unit)4100 %n/a010101
    PICO(Unit)4100 %n/a010101
    FEMTO(Unit)4100 %n/a010101
    ATTO(Unit)4100 %n/a010101
    ZEPTO(Unit)4100 %n/a010101
    YOCTO(Unit)4100 %n/a010101
    RONTO(Unit)4100 %n/a010101
    QUECTO(Unit)4100 %n/a010101
    getSymbol()3100 %n/a010101
    getValue()3100 %n/a010101
    getExponent()3100 %n/a010101
    getName()3100 %n/a010101
    \ No newline at end of file diff --git a/docs/site/jacoco/javax.measure/MetricPrefix.java.html b/docs/site/jacoco/javax.measure/MetricPrefix.java.html deleted file mode 100644 index e347fbad..00000000 --- a/docs/site/jacoco/javax.measure/MetricPrefix.java.html +++ /dev/null @@ -1,539 +0,0 @@ -MetricPrefix.java

    MetricPrefix.java

    /*
    - * Units of Measurement API
    - * Copyright (c) 2014-2023, Jean-Marie Dautelle, Werner Keil, Otavio Santana.
    - *
    - * All rights reserved.
    - *
    - * Redistribution and use in source and binary forms, with or without modification,
    - * are permitted provided that the following conditions are met:
    - *
    - * 1. Redistributions of source code must retain the above copyright notice,
    - *    this list of conditions and the following disclaimer.
    - *
    - * 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
    - *    and the following disclaimer in the documentation and/or other materials provided with the distribution.
    - *
    - * 3. Neither the name of JSR-385 nor the names of its contributors may be used to endorse or promote products
    - *    derived from this software without specific prior written permission.
    - *
    - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    - * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
    - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
    - * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    - * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    - */
    -package javax.measure;
    -
    -/**
    - * Provides support for the 24 prefixes used in the metric system (decimal multiples and submultiples of units). For example:
    - *
    - * <pre>
    - * {@code import static tech.units.indriya.unit.Units.*;  // Static import (from the RI).
    - * import static javax.measure.MetricPrefix.*; // Static import.
    - * import javax.measure.*;
    - * import javax.measure.quantity.*;
    - * ...
    - * Unit<Pressure> HECTOPASCAL = HECTO(PASCAL);
    - * Unit<Length> KILOMETRE = KILO(METRE);} 
    - * </pre>
    - * You could also apply <code>Unit.prefix</code>:
    - * <pre>
    - * {@code ...
    - * Unit<Pressure> HECTOPASCAL = PASCAL.prefix(HECTO);
    - * Unit<Length> KILOMETRE = METRE.prefix(KILO);}
    - * </pre>
    - * 
    - * <p>
    - * <b>Do not use ordinal() to obtain the numeric representation of MetricPrefix. Use getValue() and getExponent() instead.</b>
    - * </p>
    - * 
    - * <dl>
    - * <dt><span class="strong">Implementation Requirements</span></dt><dd>This is an immutable and thread-safe enum.</dd>
    - * </dl>
    - * 
    - * @see <a href="https://en.wikipedia.org/wiki/Metric_prefix">Wikipedia: Metric Prefix</a>
    - * @author <a href="mailto:jean-marie@dautelle.com">Jean-Marie Dautelle</a>
    - * @author <a href="mailto:werner@units.tech">Werner Keil</a>
    - * @version 2.4, October 31, 2023
    - * @since 2.0
    - */
    -public enum MetricPrefix implements Prefix {
    -	/** Prefix for 10<sup>30</sup>. */
    -    QUETTA("Q", 30),
    -	/** Prefix for 10<sup>27</sup>. */
    -    RONNA("R", 27),
    -	/** Prefix for 10<sup>24</sup>. */
    -    YOTTA("Y", 24),
    -    /** Prefix for 10<sup>21</sup>. */
    -    ZETTA("Z", 21),
    -    /** Prefix for 10<sup>18</sup>. */
    -    EXA("E", 18),
    -    /** Prefix for 10<sup>15</sup>. */
    -    PETA("P", 15),
    -    /** Prefix for 10<sup>12</sup>. */
    -    TERA("T", 12),
    -    /** Prefix for 10<sup>9</sup>.
    -     * @see <a href="https://en.wikipedia.org/wiki/Giga-">Wikipedia: Giga</a>  
    -     */
    -    GIGA("G", 9),
    -    /** Prefix for 10<sup>6</sup>. 
    -     * @see <a href="https://en.wikipedia.org/wiki/Mega-">Wikipedia: Mega</a> */
    -    MEGA("M", 6),
    -    /** Prefix for 10<sup>3</sup>.
    -     * @see <a href="https://en.wikipedia.org/wiki/Kilo-">Wikipedia: Kilo</a> 
    -     */
    -    KILO("k", 3),
    -    /** Prefix for 10<sup>2</sup>. 
    -     * @see <a href="https://en.wikipedia.org/wiki/Hecto-">Wikipedia: Hecto</a> */
    -    HECTO("h", 2),
    -    /** Prefix for 10<sup>1</sup>. 
    -     * @see <a href="https://en.wikipedia.org/wiki/Deca-">Wikipedia: Deca</a> */
    -    DECA("da", 1),
    -    /** Prefix for 10<sup>-1</sup>. 
    -     * @see <a href="https://en.wikipedia.org/wiki/Deci-">Wikipedia: Deci</a> */
    -    DECI("d", -1),
    -    /** Prefix for 10<sup>-2</sup>.
    -     * @see <a href="https://en.wikipedia.org/wiki/Centi-">Wikipedia: Centi</a> */     
    -    CENTI("c", -2),
    -    /** Prefix for 10<sup>-3</sup>.
    -     * @see <a href="https://en.wikipedia.org/wiki/Milli-">Wikipedia: Milli</a> */
    -    MILLI("m", -3),
    -    /** Prefix for 10<sup>-6</sup>.
    -     * @see <a href="https://en.wikipedia.org/wiki/Micro-">Wikipedia: Micro</a> */
    -    MICRO("\u00b5", -6),
    -    /** Prefix for 10<sup>-9</sup>.
    -     * @see <a href="https://en.wikipedia.org/wiki/Nano-">Wikipedia: Nano</a> */
    -    NANO("n", -9),
    -    /** Prefix for 10<sup>-12</sup>. */
    -    PICO("p", -12),
    -    /** Prefix for 10<sup>-15</sup>. */
    -    FEMTO("f", -15),
    -    /** Prefix for 10<sup>-18</sup>. */
    -    ATTO("a", -18),
    -    /** Prefix for 10<sup>-21</sup>. */
    -    ZEPTO("z", -21),
    -    /** Prefix for 10<sup>-24</sup>. */
    -    YOCTO("y", -24),
    -	/** Prefix for 10<sup>-27</sup>. */
    -    RONTO("r", -27),
    -    /** Prefix for 10<sup>-30</sup>. */
    -    QUECTO("q", -30);
    -
    -    /**
    -     * The symbol of this prefix, as returned by {@link #getSymbol}.
    -     *
    -     * @serial
    -     * @see #getSymbol()
    -     */
    -    private final String symbol;
    -
    -    /**
    -     * Exponent part of the associated factor in base^exponent representation.
    -     */
    -    private final int exponent;
    -
    -    /**
    -     * Creates a new prefix.
    -     *
    -     * @param symbol
    -     *          the symbol of this prefix.
    -     * @param exponent
    -     *          part of the associated factor in base^exponent representation.
    -     */
    -    private MetricPrefix(String symbol, int exponent) {
    -        this.symbol = symbol;
    -        this.exponent = exponent;
    -    }
    -    
    -    /**
    -     * Returns the specified unit multiplied by the factor <code>10<sup>30</sup></code>
    -     *
    -     * @param <Q>
    -     *          type of the quantity measured by the unit.
    -     * @param unit
    -     *          any unit.
    -     * @return <code>unit.prefix(1e30)</code>.
    -     * @see #QUETTA
    -     */
    -    public static <Q extends Quantity<Q>> Unit<Q> QUETTA(Unit<Q> unit) {
    -        return unit.prefix(QUETTA);
    -    }
    -    
    -    /**
    -     * Returns the specified unit multiplied by the factor <code>10<sup>27</sup></code>
    -     *
    -     * @param <Q>
    -     *          type of the quantity measured by the unit.
    -     * @param unit
    -     *          any unit.
    -     * @return <code>unit.prefix(1e27)</code>.
    -     * @see #RONNA
    -     */
    -    public static <Q extends Quantity<Q>> Unit<Q> RONNA(Unit<Q> unit) {
    -        return unit.prefix(RONNA);
    -    }
    -
    -    /**
    -     * Returns the specified unit multiplied by the factor <code>10<sup>24</sup></code>
    -     *
    -     * @param <Q>
    -     *          type of the quantity measured by the unit.
    -     * @param unit
    -     *          any unit.
    -     * @return <code>unit.prefix(1e24)</code>.
    -     * @see #YOTTA
    -     */
    -    public static <Q extends Quantity<Q>> Unit<Q> YOTTA(Unit<Q> unit) {
    -        return unit.prefix(YOTTA);
    -    }
    -
    -    /**
    -     * Returns the specified unit multiplied by the factor <code>10<sup>21</sup></code>
    -     *
    -     * @param <Q>
    -     *          type of the quantity measured by the unit.
    -     * @param unit
    -     *          any unit.
    -     * @return <code>unit.prefix(1e21)</code>.
    -     * @see #ZETTA
    -     */
    -    public static <Q extends Quantity<Q>> Unit<Q> ZETTA(Unit<Q> unit) {
    -        return unit.prefix(ZETTA);
    -    }
    -
    -    /**
    -     * Returns the specified unit multiplied by the factor <code>10<sup>18</sup></code>
    -     *
    -     * @param <Q>
    -     *          type of the quantity measured by the unit.
    -     * @param unit
    -     *          any unit.
    -     * @return <code>unit.prefix(1e18)</code>.
    -     * @see #EXA
    -     */
    -    public static <Q extends Quantity<Q>> Unit<Q> EXA(Unit<Q> unit) {
    -        return unit.prefix(EXA);
    -    }
    -
    -    /**
    -     * Returns the specified unit multiplied by the factor <code>10<sup>15</sup></code>
    -     *
    -     * @param <Q>
    -     *          type of the quantity measured by the unit.
    -     * @param unit
    -     *          any unit.
    -     * @return <code>unit.prefix(1e15)</code>.
    -     * @see #PETA
    -     */
    -    public static <Q extends Quantity<Q>> Unit<Q> PETA(Unit<Q> unit) {
    -        return unit.prefix(PETA);
    -    }
    -
    -    /**
    -     * Returns the specified unit multiplied by the factor <code>10<sup>12</sup></code>
    -     *
    -     * @param <Q>
    -     *          type of the quantity measured by the unit.
    -     * @param unit
    -     *          any unit.
    -     * @return <code>unit.prefix(1e12)</code>.
    -     * @see #TERA
    -     */
    -    public static <Q extends Quantity<Q>> Unit<Q> TERA(Unit<Q> unit) {
    -        return unit.prefix(TERA);
    -    }
    -
    -    /**
    -     * Returns the specified unit multiplied by the factor <code>10<sup>9</sup></code>
    -     *
    -     * @param <Q>
    -     *          type of the quantity measured by the unit.
    -     * @param unit
    -     *          any unit.
    -     * @return <code>unit.prefix(1e9)</code>.
    -     * @see #GIGA
    -     */
    -    public static <Q extends Quantity<Q>> Unit<Q> GIGA(Unit<Q> unit) {
    -        return unit.prefix(GIGA);
    -    }
    -
    -    /**
    -     * Returns the specified unit multiplied by the factor <code>10<sup>6</sup></code>
    -     *
    -     * @param <Q>
    -     *          type of the quantity measured by the unit.
    -     * @param unit
    -     *          any unit.
    -     * @return <code>unit.prefix(1e6)</code>.
    -     * @see #MEGA
    -     */
    -    public static <Q extends Quantity<Q>> Unit<Q> MEGA(Unit<Q> unit) {
    -        return unit.prefix(MEGA);
    -    }
    -
    -    /**
    -     * Returns the specified unit multiplied by the factor <code>10<sup>3</sup></code>
    -     *
    -     * @param <Q>
    -     *          type of the quantity measured by the unit.
    -     * @param unit
    -     *          any unit.
    -     * @return <code>unit.prefix(1e3)</code>.
    -     * @see #KILO
    -     */
    -    public static <Q extends Quantity<Q>> Unit<Q> KILO(Unit<Q> unit) {
    -        return unit.prefix(KILO);
    -    }
    -
    -    /**
    -     * Returns the specified unit multiplied by the factor <code>10<sup>2</sup></code>
    -     *
    -     * @param <Q>
    -     *          type of the quantity measured by the unit.
    -     * @param unit
    -     *          any unit.
    -     * @return <code>unit.prefix(1e2)</code>.
    -     * @see #HECTO
    -     */
    -    public static <Q extends Quantity<Q>> Unit<Q> HECTO(Unit<Q> unit) {
    -        return unit.prefix(HECTO);
    -    }
    -
    -    /**
    -     * Returns the specified unit multiplied by the factor <code>10<sup>1</sup></code>
    -     *
    -     * @param <Q>
    -     *          type of the quantity measured by the unit.
    -     * @param unit
    -     *          any unit.
    -     * @return <code>unit.prefix(1e1)</code>.
    -     * @see #DECA
    -     */
    -    public static <Q extends Quantity<Q>> Unit<Q> DECA(Unit<Q> unit) {
    -        return unit.prefix(DECA);
    -    }
    -    
    -    /**
    -     * US alias for <code>DECA</code>.
    -     *
    -     * @param <Q>
    -     *          type of the quantity measured by the unit.
    -     * @param unit
    -     *          any unit.
    -     * @return <code>unit.prefix(1e1)</code>.
    -     * @see #DECA
    -     */
    -    public static <Q extends Quantity<Q>> Unit<Q> DEKA(Unit<Q> unit) {
    -        return unit.prefix(DECA);
    -    }
    -
    -    /**
    -     * Returns the specified unit multiplied by the factor <code>10<sup>-1</sup></code>
    -     *
    -     * @param <Q>
    -     *          type of the quantity measured by the unit.
    -     * @param unit
    -     *          any unit.
    -     * @return <code>unit.prefix(1e-1)</code>.
    -     * @see #DECI 
    -     */
    -    public static <Q extends Quantity<Q>> Unit<Q> DECI(Unit<Q> unit) {
    -        return unit.prefix(DECI);
    -    }
    -
    -    /**
    -     * Returns the specified unit multiplied by the factor <code>10<sup>-2</sup></code>
    -     *
    -     * @param <Q>
    -     *          type of the quantity measured by the unit.
    -     * @param unit
    -     *          any unit.
    -     * @return <code>unit.prefix(1e-2)</code>.
    -     * @see #CENTI
    -     */
    -    public static <Q extends Quantity<Q>> Unit<Q> CENTI(Unit<Q> unit) {
    -        return unit.prefix(CENTI);
    -    }
    -
    -    /**
    -     * Returns the specified unit multiplied by the factor <code>10<sup>-3</sup></code>
    -     *
    -     * @param <Q>
    -     *          type of the quantity measured by the unit.
    -     * @param unit
    -     *          any unit.
    -     * @return <code>unit.prefix(1e-3)</code>.
    -     * @see #MILLI
    -     */
    -    public static <Q extends Quantity<Q>> Unit<Q> MILLI(Unit<Q> unit) {
    -        return unit.prefix(MILLI);
    -    }
    -
    -    /**
    -     * Returns the specified unit multiplied by the factor <code>10<sup>-6</sup></code>
    -     *
    -     * @param <Q>
    -     *          type of the quantity measured by the unit.
    -     * @param unit
    -     *          any unit.
    -     * @return <code>unit.prefix(1e-6)</code>.
    -     * @see #MICRO 
    -     */
    -    public static <Q extends Quantity<Q>> Unit<Q> MICRO(Unit<Q> unit) {
    -        return unit.prefix(MICRO);
    -    }
    -
    -    /**
    -     * Returns the specified unit multiplied by the factor <code>10<sup>-9</sup></code>
    -     *
    -     * @param <Q>
    -     *          type of the quantity measured by the unit.
    -     * @param unit
    -     *          any unit.
    -     * @return <code>unit.prefix(1e-9)</code>.
    -     * @see #NANO 
    -     */
    -    public static <Q extends Quantity<Q>> Unit<Q> NANO(Unit<Q> unit) {
    -        return unit.prefix(NANO);
    -    }
    -
    -    /**
    -     * Returns the specified unit multiplied by the factor <code>10<sup>-12</sup></code>
    -     *
    -     * @param <Q>
    -     *          type of the quantity measured by the unit.
    -     * @param unit
    -     *          any unit.
    -     * @return <code>unit.prefix(1e-12)</code>.
    -     * @see #PICO
    -     */
    -    public static <Q extends Quantity<Q>> Unit<Q> PICO(Unit<Q> unit) {
    -        return unit.prefix(PICO);
    -    }
    -
    -    /**
    -     * Returns the specified unit multiplied by the factor <code>10<sup>-15</sup></code>
    -     *
    -     * @param <Q>
    -     *          type of the quantity measured by the unit.
    -     * @param unit
    -     *          any unit.
    -     * @return <code>unit.prefix(1e-15)</code>.
    -     * @see #FEMTO
    -     */
    -    public static <Q extends Quantity<Q>> Unit<Q> FEMTO(Unit<Q> unit) {
    -        return unit.prefix(FEMTO);
    -    }
    -
    -    /**
    -     * Returns the specified unit multiplied by the factor <code>10<sup>-18</sup></code>
    -     *
    -     * @param <Q>
    -     *          type of the quantity measured by the unit.
    -     * @param unit
    -     *          any unit.
    -     * @return <code>unit.prefix(1e-18)</code>.
    -     * @see #ATTO 
    -     */
    -    public static <Q extends Quantity<Q>> Unit<Q> ATTO(Unit<Q> unit) {
    -        return unit.prefix(ATTO);
    -    }
    -
    -    /**
    -     * Returns the specified unit multiplied by the factor <code>10<sup>-21</sup></code>
    -     *
    -     * @param <Q>
    -     *          type of the quantity measured by the unit.
    -     * @param unit
    -     *          any unit.
    -     * @return <code>unit.prefix(1e-21)</code>.
    -     * #see ZEPTO
    -     */
    -    public static <Q extends Quantity<Q>> Unit<Q> ZEPTO(Unit<Q> unit) {
    -        return unit.prefix(ZEPTO);
    -    }
    -
    -    /**
    -     * Returns the specified unit multiplied by the factor <code>10<sup>-24</sup></code>
    -     *
    -     * @param <Q>
    -     *          type of the quantity measured by the unit.
    -     * @param unit
    -     *          any unit.
    -     * @return <code>unit.prefix(1e-24)</code>.
    -     * @see #YOCTO
    -     */
    -    public static <Q extends Quantity<Q>> Unit<Q> YOCTO(Unit<Q> unit) {
    -        return unit.prefix(YOCTO);
    -    }
    -    
    -    /**
    -     * Returns the specified unit multiplied by the factor <code>10<sup>-27</sup></code>
    -     *
    -     * @param <Q>
    -     *          type of the quantity measured by the unit.
    -     * @param unit
    -     *          any unit.
    -     * @return <code>unit.prefix(1e-27)</code>.
    -     * @see #RONTO
    -     */
    -    public static <Q extends Quantity<Q>> Unit<Q> RONTO(Unit<Q> unit) {
    -        return unit.prefix(RONTO);
    -    }
    -
    -    /**
    -     * Returns the specified unit multiplied by the factor <code>10<sup>-30</sup></code>
    -     *
    -     * @param <Q>
    -     *          type of the quantity measured by the unit.
    -     * @param unit
    -     *          any unit.
    -     * @return <code>unit.prefix(1e-30)</code>.
    -     * @see #QUECTO
    -     */
    -    public static <Q extends Quantity<Q>> Unit<Q> QUECTO(Unit<Q> unit) {
    -        return unit.prefix(QUECTO);
    -    }
    -    
    -    /**
    -     * Returns the symbol of this prefix.
    -     *
    -     * @return this prefix symbol, not {@code null}.
    -     */
    -    @Override
    -    public String getSymbol() {
    -        return symbol;
    -    }
    -
    -    /**
    -     * Base part of the associated factor in {@code base^exponent} representation. For metric prefix, this is always 10.
    -     */
    -    @Override
    -    public Integer getValue() {
    -        return 10;
    -    }
    -
    -    /**
    -     * Exponent part of the associated factor in {@code base^exponent} representation.
    -     */
    -    @Override
    -    public int getExponent() {
    -        return exponent;
    -    }
    -
    -    /**
    -     * Returns the name of this prefix.
    -     *
    -     * @return this prefix name, not {@code null}.
    -     */
    -    @Override
    -    public String getName() {
    -        return name();
    -    }
    -}
    -
    \ No newline at end of file diff --git a/docs/site/jacoco/javax.measure/Quantity$Scale.html b/docs/site/jacoco/javax.measure/Quantity$Scale.html deleted file mode 100644 index 8ef3bb96..00000000 --- a/docs/site/jacoco/javax.measure/Quantity$Scale.html +++ /dev/null @@ -1 +0,0 @@ -Quantity.Scale

    Quantity.Scale

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 15100 %0 of 0n/a010301
    static {...}15100 %n/a010301
    \ No newline at end of file diff --git a/docs/site/jacoco/javax.measure/Quantity.html b/docs/site/jacoco/javax.measure/Quantity.html deleted file mode 100644 index 1ebc5a18..00000000 --- a/docs/site/jacoco/javax.measure/Quantity.html +++ /dev/null @@ -1 +0,0 @@ -Quantity

    Quantity

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 6100 %0 of 0n/a010101
    toSystemUnit()6100 %n/a010101
    \ No newline at end of file diff --git a/docs/site/jacoco/javax.measure/UnconvertibleException.html b/docs/site/jacoco/javax.measure/UnconvertibleException.html deleted file mode 100644 index 32da2e53..00000000 --- a/docs/site/jacoco/javax.measure/UnconvertibleException.html +++ /dev/null @@ -1 +0,0 @@ -UnconvertibleException

    UnconvertibleException

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
    Total0 of 13100 %0 of 0n/a030603
    UnconvertibleException(String, Throwable)5100 %n/a010201
    UnconvertibleException(String)4100 %n/a010201
    UnconvertibleException(Throwable)4100 %n/a010201
    \ No newline at end of file diff --git a/docs/site/jacoco/javax.measure/index.html b/docs/site/jacoco/javax.measure/index.html deleted file mode 100644 index 3656d6d6..00000000 --- a/docs/site/jacoco/javax.measure/index.html +++ /dev/null @@ -1 +0,0 @@ -javax.measure

    javax.measure

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total0 of 519100 %0 of 0n/a061011506108
    MetricPrefix318100 %n/a03105803101
    BinaryPrefix122100 %n/a01402501401
    MeasurementError16100 %n/a04080401
    MeasurementException16100 %n/a04080401
    Quantity.Scale15100 %n/a01030101
    IncommensurableException13100 %n/a03060301
    UnconvertibleException13100 %n/a03060301
    Quantity6100 %n/a01010101
    \ No newline at end of file diff --git a/docs/site/jacoco/javax.measure/index.source.html b/docs/site/jacoco/javax.measure/index.source.html deleted file mode 100644 index 3651821e..00000000 --- a/docs/site/jacoco/javax.measure/index.source.html +++ /dev/null @@ -1 +0,0 @@ -javax.measure

    javax.measure

    ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
    Total0 of 519100 %0 of 0n/a061011506108
    MetricPrefix.java318100 %n/a03105803101
    BinaryPrefix.java122100 %n/a01402501401
    Quantity.java21100 %n/a02040202
    MeasurementError.java16100 %n/a04080401
    MeasurementException.java16100 %n/a04080401
    UnconvertibleException.java13100 %n/a03060301
    IncommensurableException.java13100 %n/a03060301
    \ No newline at end of file diff --git a/docs/site/license-plugin-report.xml b/docs/site/license-plugin-report.xml deleted file mode 100644 index f91f62c7..00000000 --- a/docs/site/license-plugin-report.xml +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/site/project-info.html b/docs/site/project-info.html deleted file mode 100644 index 5bda63ac..00000000 --- a/docs/site/project-info.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - - Units of Measurement API – Project Information - - - - - - - - -
    - -
    -
    -
    -
    -

    Project Information

    -

    This document provides an overview of the various documents and links that are part of this project's general information. All of this content is automatically generated by Maven on behalf of the project.

    -

    Overview

    - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    DocumentDescription
    AboutUnits of Measurement Standard - This JSR specifies Java - packages for modeling and working with measurement values, quantities - and their corresponding units.
    SummaryThis document lists other related information of this project
    LicensesThis document lists the project license(s).
    Source Code ManagementThis document lists ways to access the online source repository.
    CI ManagementThis document lists the continuous integration management system of this project for building and testing code on a frequent, regular basis.
    TeamThis document provides information on the members of this project. These are the individuals who have contributed to the project in one form or another.
    Mailing ListsThis document provides subscription and archive information for this project's mailing lists.
    Issue ManagementThis document provides information on the issue management system used in this project.
    -
    -
    -
    -
    -
    - - - diff --git a/docs/site/project-reports.html b/docs/site/project-reports.html deleted file mode 100644 index ab5515de..00000000 --- a/docs/site/project-reports.html +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - - Units of Measurement API – Generated Reports - - - - - - - - -
    - -
    -
    -
    -
    -

    Generated Reports

    -

    This document provides an overview of the various reports that are automatically generated by Maven . Each report is briefly described below.

    -

    Overview

    - - - - - - - - - - - - - - - - - - - - - -
    DocumentDescription
    JavadocJavadoc API documentation.
    Test JavadocTest Javadoc API documentation.
    CPDDuplicate code detection.
    PMDVerification of coding rules.
    SurefireReport on the test results of the project.
    SpotBugsGenerates a source code report with the SpotBugs Library.
    -
    -
    -
    -
    -
    - - - diff --git a/docs/site/surefire-report.html b/docs/site/surefire-report.html deleted file mode 100644 index 3ade25af..00000000 --- a/docs/site/surefire-report.html +++ /dev/null @@ -1,924 +0,0 @@ - - - - - - - - Units of Measurement API – Surefire Report - - - - - - - - -
    - -
    -
    -
    -
    -

    Surefire Report

    -

    Summary

    -

    [Summary] [Package List] [Test Cases]


    - - - - - - - - - - - - - - -
    TestsErrorsFailuresSkippedSuccess RateTime
    143000100%15.81 s

    -

    Note: failures are anticipated and checked for with assertions while errors are unanticipated.


    -

    Package List

    -

    [Summary] [Package List] [Test Cases]


    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    PackageTestsErrorsFailuresSkippedSuccess RateTime
    javax.measure.spi11000100%4.092 s
    javax.measure.test.quantity50000100%1.067 s
    javax.measure.test63000100%7.435 s
    javax.measure.test.format19000100%3.217 s

    -

    Note: package statistics are not computed recursively, they only sum up all of its testsuites numbers.

    -

    javax.measure.spi

    - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -ClassTestsErrorsFailuresSkippedSuccess RateTime
    FormatServiceTest2000100%1.524 s
    ServiceProviderTest9000100%2.568 s
    -

    javax.measure.test.quantity

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -ClassTestsErrorsFailuresSkippedSuccess RateTime
    AreaQuantityTest17000100%0.394 s
    DistanceQuantityTest16000100%0.471 s
    TemperatureQuantityTest17000100%0.202 s
    -

    javax.measure.test

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -ClassTestsErrorsFailuresSkippedSuccess RateTime
    BinaryPrefixTest8000100%2.054 s
    ConverterTest2000100%1.660 s
    DimensionTest6000100%1.233 s
    ExceptionsTest14000100%1.152 s
    MetricPrefixTest25000100%1.156 s
    UnitTest8000100%0.180 s
    -

    javax.measure.test.format

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -ClassTestsErrorsFailuresSkippedSuccess RateTime
    MeasurementParseTest4000100%0.173 s
    QuantityFormatTest6000100%2.319 s
    UnitFormatTest9000100%0.725 s

    -

    Test Cases

    -

    [Summary] [Package List] [Test Cases]

    -

    FormatServiceTest

    - - - - - - - - -
    testGetUnitFormats1.262 s
    testTypes0.003 s
    -

    ServiceProviderTest

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    testGetMetricPrefixes1.196 s
    testGetAndSetCurrent0.402 s
    testPriority0.012 s
    testGetBinaryPrefixes0.008 s
    testWrongPrefixType0.166 s
    testSetCurrentNull0.007 s
    testOfNull0.002 s
    testOfNonExistent0.004 s
    testWrongEnumType0.003 s
    -

    BinaryPrefixTest

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    testExbi1.045 s
    testGibi0.242 s
    testKibi0.062 s
    testMebi0.003 s
    testPebi0.004 s
    testTebi0.048 s
    testYobi0.026 s
    testZebi0.004 s
    -

    ConverterTest

    - - - - - - - - -
    testIdentity1.052 s
    testLinear0.005 s
    -

    DimensionTest

    - - - - - - - - - - - - - - - - - - - - - - - - -
    testPow0.770 s
    testRoot0.002 s
    testGetProductDimensions0.006 s
    testDivide0.002 s
    testMultiply0.003 s
    testGetInstance0.004 s
    -

    ExceptionsTest

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    testUnconvertibleExceptionWithCause0.536 s
    testUnconvertibleExceptionWithMessageAndCause0.005 s
    testMeasurementErrorWithCause0.006 s
    testMeasurementErrorWithMessageAndCause0.003 s
    testMeasurementError0.116 s
    testMeasurementExceptionWithMessage0.007 s
    testIncommensurableExceptionWithCause0.130 s
    testMeasurementExceptionWithCause0.004 s
    testIncommensurableExceptionWithMessageAndCause0.020 s
    testMeasurementExceptionWithMessageAndCause0.007 s
    testMeasurementErrorWithMessage0.050 s
    testIncommensurableException0.002 s
    testMeasurementException0.009 s
    testUnconvertibleException0.005 s
    -

    MeasurementParseTest

    - - - - - - - - - - - - - - - - -
    testOldExceptionWithMessageAndPos0.140 s
    testOldExceptionWithMessageDataAndPos0.005 s
    testExceptionWithMessage0.005 s
    testOldExceptionWithCause0.005 s
    -

    QuantityFormatTest

    - - - - - - - - - - - - - - - - - - - - - - - - -
    testParserExceptionWithNullString1.325 s
    testParseSimple0.958 s
    testParseIrregularString0.003 s
    testParserException0.004 s
    testParserExceptionWithPosition0.002 s
    testLocalSensitive0.004 s
    -

    UnitFormatTest

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    testFormatKph0.137 s
    testMoreLocalSensitive0.355 s
    testParserExceptionWithNullString0.008 s
    testParseSimple0.004 s
    testParseIrregularString0.038 s
    testParserException0.005 s
    testParserExceptionWithPosition0.002 s
    testFormatFromQuantity0.003 s
    testLocalSensitive0.102 s
    -

    MetricPrefixTest

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    testExa0.880 s
    testCenti0.003 s
    testFemto0.003 s
    testHecto0.002 s
    testMicro0.003 s
    testMilli0.003 s
    testRonna0.003 s
    testRonto0.061 s
    testYocto0.003 s
    testYotta0.002 s
    testZepto0.001 s
    testZetta0.002 s
    testAtto0.002 s
    testDeca0.002 s
    testDeci0.007 s
    testDeka0.001 s
    testGiga0.003 s
    testKilo0.003 s
    testMega0.002 s
    testNano0.002 s
    testPeta0.002 s
    testPico0.002 s
    testTera0.004 s
    testQuecto0.003 s
    testQuetta0.005 s
    -

    AreaQuantityTest

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    testMultiplyDistanceQuantity0.103 s
    testDivideDouble0.004 s
    testAdd0.005 s
    testSubtract0.003 s
    testScale0.001 s
    testAreaQuantity0.104 s
    testEq0.006 s
    testGe0.003 s
    testGt0.003 s
    testLe0.004 s
    testLt0.003 s
    testToSystemUnit0.003 s
    testMultiplyDouble0.001 s
    testConvert0.061 s
    testDivideDistanceQuantity0.003 s
    testNegate0.006 s
    testShowInUnits0.002 s
    -

    DistanceQuantityTest

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    testMultiplyDistanceQuantity0.146 s
    testAbsolute0.003 s
    testDivideDouble0.003 s
    testAdd0.002 s
    testSubtract0.003 s
    testAreaQuantity0.002 s
    testEq0.005 s
    testGe0.007 s
    testGt0.001 s
    testLe0.022 s
    testLt0.007 s
    testToSystemUnit0.011 s
    testMultiplyDouble0.004 s
    testConvert0.005 s
    testNegate0.013 s
    testShowInUnits0.021 s
    -

    TemperatureQuantityTest

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    testAbsolute0.007 s
    testDivideDouble0.004 s
    testAdd0.015 s
    testSubtract0.003 s
    testLevelCelsius0.003 s
    testScale0.002 s
    testEq0.004 s
    testGe0.002 s
    testGt0.001 s
    testLe0.001 s
    testLt0.002 s
    testQuantity0.002 s
    testToSystemUnit0.003 s
    testMultiplyDouble0.002 s
    testConvert0.003 s
    testLevelFahrenheit0.002 s
    testNegate0.002 s
    -

    UnitTest

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    testIsCompatible0.008 s
    testGetDimension0.006 s
    testMultiplyNull0.019 s
    testGetConverterTo0.005 s
    testDivideNull0.005 s
    testGetSymbol0.001 s
    testShiftNull0.088 s
    testIsEquivalentTo0.004 s

    -
    -
    -
    -
    -
    - - - diff --git a/docs/site/team.html b/docs/site/team.html deleted file mode 100644 index 1e7fdeda..00000000 --- a/docs/site/team.html +++ /dev/null @@ -1,318 +0,0 @@ - - - - - - - - Units of Measurement API – Project Team - - - - - - - - - -
    -
    -
    -

    Project Team

    -

    A successful project requires many people to play many roles. Some members write code or documentation, while others are valuable as testers, submitting patches and suggestions.

    -

    The project team is comprised of Members and Contributors. Members have direct access to the source of a project and actively evolve the code-base. Contributors improve the project through submission of patches and suggestions to the Members. The number of Contributors to the project is unbounded. Get involved today. All contributions to the project are greatly appreciated.

    -

    Members

    -

    The following is a list of developers with commit privileges that have directly contributed to the project in one way or another.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ImageIdNameEmailOrganizationOrganization URLRolesTime Zone
    dautelleJean-Marie Dautellejean-marie@dautelle.comAirbushttp://www.airbus.comArchitect, Java Developer, Spec Lead+1
    keilwWerner Keilwerner.keil@gmx.netCreative Arts & Technologieshttp://www.catmedia.usArchitect, Java Developer, Spec Lead+1
    otaviojavaOtávio Gonçalves de Santanaotaviopolianasantana@gmail.comIndividual / SouJava-Expert, Java Developer, Spec Lead0
    desruisseauxMartin Desruisseauxmartin.desruisseaux@geomatys.comGeomatyshttp://www.geomatys.comExpert, Java Developer, Architect+1
    thodorisbaisThodoris Baisthodoris.bais@gmail.comIndividual / Utrecht JUG-Expert, Java Developer+1
    Daniel-DosDaniel Diasdaniel.dias.analistati@gmail.comIndividual / SouJava-Expert, Java Developer-5
    jhg023Jacob Glickman-Individual-Expert, Java Developer-4
    magesh678Magesh Kasthuri-Individual-Expert, Java Developer+4
    mohalmoMohammed Al-Moayed-Individual-Expert, Java Developer+2
    -

    Contributors

    -

    The following additional people have contributed to this project through the way of suggestions, patches or documentation.

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ImageNameEmailOrganizationOrganization URLRolesTime Zone
    Andi Huber-Individual-Contributor+1
    Filip Van Laenenfvl@computas.comComputas-Contributor+1
    Mads Opheim-Computas-Contributor+1
    Matthijs Thoolen-Utrecht Java User Group-Contributor+1
    Anakar Parida-Individual-Contributor+5.5
    Rustam Mehmandarov-Individual-Contributor+3
    Nathan Scottnathans@redhat.comRed Hat-Contributor Emeritus+10
    Chris Seniorchristopher.senior@gmail.comSnap-on Inc.-Expert Emeritus-
    Leonardo de Moura Rocha Limallima@v2com.mobiV2COMhttp://www.v2com.mobi/Expert Emeritus, Java Developer-5
    Almas Shaikheralmas7@yahoo.comIndividual / JP Morgan-Test Engineer+5.5
    Rajmahendra Hegderajmahendra@gmail.comJUG Chennai-Expert Emeritus+5.5
    Karen Legrandkaren.legrand@iem.comInnovation Emergency Management (IEM)http://www.iem.comExpert Emeritus-5
    Mohamed Mahmoud Tamanmohamed.taman@gmail.comIndividual / Morocco JUG-Expert Emeritus+2
    Daniel Leuckdan@ikayzo.comIkayzo-Supporter-9
    Eric Russelleric-r@northwestern.edu--Supporter-5
    John Paul Morrison-J.P. Morrison Enterprises, Ltd.-Supporter-5
    Michael Gruebschmichael@mkm-rabis.de--Supporter+1
    -
    -
    -
    -
    -
    - - - diff --git a/docs/site/testapidocs/allclasses-index.html b/docs/site/testapidocs/allclasses-index.html deleted file mode 100644 index d7bf56eb..00000000 --- a/docs/site/testapidocs/allclasses-index.html +++ /dev/null @@ -1,169 +0,0 @@ - - - - -All Classes and Interfaces (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    All Classes and Interfaces

    -
    -
    -
    Classes
    -
    -
    Class
    -
    Description
    - -
     
    - -
     
    - -
     
    -
    BaseUnit<Q extends Quantity<Q>>
    -
    -
    Building blocks on top of which all others units are created.
    -
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
    -
    Tests for FormatService.
    -
    - -
     
    - -
    -
    Measurement Format Tests
    -
    - -
    -
    JUnit tests for the 24 prefixes used in the metric system (decimal multiples and submultiples of units).
    -
    - -
    -
    - This class represents a converter multiplying numeric values by a constant scaling factor (double based).
    -
    - -
     
    - -
    -
    Tests for ServiceProvider.
    -
    - -
    -
    Provides a simple interface for formatting and parsing units.
    -
    - -
     
    - -
     
    - -
     
    - -
     
    - -
    -
    - Test class for our UnitConverter implementations.
    -
    - -
    -
    This class represents converters made up of two or more separate converters (in matrix notation [pair] = [left] x [right]).
    -
    - -
    -
    Singleton class for accessing Quantity instances.
    -
    - -
     
    -
    TestUnit<Q extends Quantity<Q>>
    -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    - -
     
    -
    -
    -
    - -
    -
    - - diff --git a/docs/site/testapidocs/allpackages-index.html b/docs/site/testapidocs/allpackages-index.html deleted file mode 100644 index a3bb01f3..00000000 --- a/docs/site/testapidocs/allpackages-index.html +++ /dev/null @@ -1,79 +0,0 @@ - - - - -All Packages (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    All Packages

    -
    -
    Package Summary
    - -
    - -
    -
    - - diff --git a/docs/site/testapidocs/constant-values.html b/docs/site/testapidocs/constant-values.html deleted file mode 100644 index c92763cc..00000000 --- a/docs/site/testapidocs/constant-values.html +++ /dev/null @@ -1,102 +0,0 @@ - - - - - -Constant Field Values (Units of Measurement API 2.1.3-SNAPSHOT Test API) - - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Constant Field Values

    -
    -

    Contents

    -
    -
    -
    - -
    -
    - - diff --git a/docs/site/testapidocs/deprecated-list.html b/docs/site/testapidocs/deprecated-list.html deleted file mode 100644 index 8f294961..00000000 --- a/docs/site/testapidocs/deprecated-list.html +++ /dev/null @@ -1,100 +0,0 @@ - - - - - -Deprecated List (Units of Measurement API 2.1.3-SNAPSHOT Test API) - - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Deprecated API

    -

    Contents

    -
    -
    - -
    -
    - - diff --git a/docs/site/testapidocs/element-list b/docs/site/testapidocs/element-list deleted file mode 100644 index 68c1dc48..00000000 --- a/docs/site/testapidocs/element-list +++ /dev/null @@ -1,6 +0,0 @@ -javax.measure.spi -javax.measure.test -javax.measure.test.format -javax.measure.test.function -javax.measure.test.quantity -javax.measure.test.unit diff --git a/docs/site/testapidocs/help-doc.html b/docs/site/testapidocs/help-doc.html deleted file mode 100644 index 13a3011f..00000000 --- a/docs/site/testapidocs/help-doc.html +++ /dev/null @@ -1,186 +0,0 @@ - - - - -API Help (Units of Measurement API 2.2.1-SNAPSHOT Test 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
    • -
    • Enums
    • -
    • Exceptions
    • -
    • Errors
    • -
    • Annotation Types
    • -
    -
    -
    -

    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.

    -
    -
    -

    Use

    -

    Each documented package, class and interface has its own Use page. This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its Use page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A. You can access this page by first going to the package, class or interface, then clicking on the USE link in the navigation bar.

    -
    -
    -

    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.
    • -
    -
    -
    -

    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/docs/site/testapidocs/index-all.html b/docs/site/testapidocs/index-all.html deleted file mode 100644 index 96c3b132..00000000 --- a/docs/site/testapidocs/index-all.html +++ /dev/null @@ -1,1263 +0,0 @@ - - - - -Index (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Index

    -
    -A B C D E F G H I J K L M N O P Q R S T U V Å 
    All Classes and Interfaces|All Packages -

    A

    -
    -
    acre - Static variable in class AreaUnit
    -
     
    -
    add(Quantity<Area>) - Method in class AreaQuantity
    -
     
    -
    add(Quantity<Length>) - Method in class DistanceQuantity
    -
     
    -
    add(Quantity<Temperature>) - Method in class TemperatureQuantity
    -
     
    -
    add(Quantity<Time>) - Method in class TimeQuantity
    -
     
    -
    add(Quantity<Volume>) - Method in class VolumeQuantity
    -
     
    -
    add(AreaQuantity) - Method in class AreaQuantity
    -
     
    -
    add(DistanceQuantity) - Method in class DistanceQuantity
    -
     
    -
    add(TemperatureQuantity) - Method in class TemperatureQuantity
    -
     
    -
    add(TestQuantity<Q>, TestQuantity<Q>, TestQuantity<Q>, TestUnit<Q>) - Method in class TestQuantity
    -
     
    -
    add(TimeQuantity) - Method in class TimeQuantity
    -
     
    -
    add(VolumeQuantity) - Method in class VolumeQuantity
    -
     
    -
    alternate(String) - Method in class TestUnit
    -
     
    -
    AreaQuantity - Class in javax.measure.test.quantity
    -
     
    -
    AreaQuantity() - Constructor for class AreaQuantity
    -
     
    -
    AreaQuantity(double, AreaUnit) - Constructor for class AreaQuantity
    -
     
    -
    AreaQuantity(Number, Unit) - Constructor for class AreaQuantity
    -
     
    -
    AreaQuantityTest - Class in javax.measure.test.quantity
    -
     
    -
    AreaQuantityTest() - Constructor for class AreaQuantityTest
    -
     
    -
    AreaUnit - Class in javax.measure.test.unit
    -
     
    -
    AreaUnit(String, double) - Constructor for class AreaUnit
    -
     
    -
    asType(Class<T>) - Method in class AreaQuantity
    -
     
    -
    asType(Class<T>) - Method in class DistanceQuantity
    -
     
    -
    asType(Class<T>) - Method in class TemperatureQuantity
    -
     
    -
    asType(Class<T>) - Method in class TimeQuantity
    -
     
    -
    asType(Class<T>) - Method in class VolumeQuantity
    -
     
    -
    asType(Class<T>) - Method in class TestUnit
    -
     
    -
    asType(Class<T>) - Method in class TemperatureUnit
    -
     
    -
    AU - Static variable in class DistanceUnit
    -
     
    -
    -

    B

    -
    -
    BaseUnit<Q extends Quantity<Q>> - Class in javax.measure.test.unit
    -
    -
    Building blocks on top of which all others units are created.
    -
    -
    BaseUnit(String) - Constructor for class BaseUnit
    -
    -
    Creates a base unit having the specified symbol.
    -
    -
    BaseUnit(String, double) - Constructor for class BaseUnit
    -
    -
    Creates a base unit with name and factor
    -
    -
    BaseUnit(String, String) - Constructor for class BaseUnit
    -
    -
    Creates a base unit having the specified symbol.
    -
    -
    BinaryPrefixTest - Class in javax.measure.test
    -
     
    -
    BinaryPrefixTest() - Constructor for class BinaryPrefixTest
    -
     
    -
    bushel - Static variable in class VolumeUnit
    -
     
    -
    -

    C

    -
    -
    CalcTripLength - Class in javax.measure.test
    -
     
    -
    CalcTripLength() - Constructor for class CalcTripLength
    -
     
    -
    cc - Static variable in class VolumeUnit
    -
     
    -
    CELSIUS - Static variable in class TemperatureUnit
    -
    -
    Celsius, used by most of the world's population.
    -
    -
    CircleInfo - Class in javax.measure.test
    -
     
    -
    CircleInfo - Class in javax.measure.test.quantity
    -
     
    -
    CircleInfo() - Constructor for class CircleInfo
    -
     
    -
    CircleInfo() - Constructor for class CircleInfo
    -
     
    -
    cm - Static variable in class DistanceUnit
    -
     
    -
    compareTo(Quantity<Temperature>) - Method in class TemperatureQuantity
    -
     
    -
    compareTo(Quantity<Q>) - Method in class TestQuantity
    -
    -
    Compares this quantity to the specified Measurement quantity.
    -
    -
    compareTo(UnitConverter) - Method in class MultiplyConverter
    -
     
    -
    concatenate(TestConverter) - Method in class TestConverter
    -
    -
    Concatenates this physics converter with another unit converter.
    -
    -
    concatenate(UnitConverter) - Method in class MultiplyConverter
    -
     
    -
    concatenate(UnitConverter) - Method in class TestConverter
    -
     
    -
    Conversions - Class in javax.measure.test
    -
     
    -
    Conversions() - Constructor for class Conversions
    -
     
    -
    convert(double) - Method in class MultiplyConverter
    -
     
    -
    convert(double) - Method in class TestConverter
    -
     
    -
    convert(double) - Method in class TestConverter.Pair
    -
     
    -
    convert(Number) - Method in class TestConverter
    -
     
    -
    convert(AreaUnit) - Method in class AreaQuantity
    -
     
    -
    convert(DistanceUnit) - Method in class DistanceQuantity
    -
     
    -
    convert(TemperatureUnit) - Method in class TemperatureQuantity
    -
     
    -
    convert(TimeUnit) - Method in class TimeQuantity
    -
     
    -
    convert(VolumeUnit) - Method in class VolumeQuantity
    -
     
    -
    ConverterTest - Class in javax.measure.test
    -
     
    -
    ConverterTest() - Constructor for class ConverterTest
    -
     
    -
    cumetre - Static variable in class VolumeUnit
    -
     
    -
    cumile - Static variable in class VolumeUnit
    -
     
    -
    -

    D

    -
    -
    DimensionTest - Class in javax.measure.test
    -
     
    -
    DimensionTest() - Constructor for class DimensionTest
    -
     
    -
    DistanceQuantity - Class in javax.measure.test.quantity
    -
     
    -
    DistanceQuantity() - Constructor for class DistanceQuantity
    -
     
    -
    DistanceQuantity(double, DistanceUnit) - Constructor for class DistanceQuantity
    -
     
    -
    DistanceQuantity(Number, Unit) - Constructor for class DistanceQuantity
    -
     
    -
    DistanceQuantityTest - Class in javax.measure.test.quantity
    -
     
    -
    DistanceQuantityTest() - Constructor for class DistanceQuantityTest
    -
     
    -
    DistanceUnit - Class in javax.measure.test.unit
    -
     
    -
    DistanceUnit(String, double) - Constructor for class DistanceUnit
    -
     
    -
    DistanceUnit(String, DistanceUnit, double) - Constructor for class DistanceUnit
    -
     
    -
    divide(double) - Method in class AreaQuantity
    -
     
    -
    divide(double) - Method in class DistanceQuantity
    -
     
    -
    divide(double) - Method in class TemperatureQuantity
    -
     
    -
    divide(double) - Method in class TimeQuantity
    -
     
    -
    divide(double) - Method in class VolumeQuantity
    -
     
    -
    divide(double) - Method in class TestUnit
    -
     
    -
    divide(Number) - Method in class AreaQuantity
    -
     
    -
    divide(Number) - Method in class DistanceQuantity
    -
     
    -
    divide(Number) - Method in class TemperatureQuantity
    -
     
    -
    divide(Number) - Method in class TimeQuantity
    -
     
    -
    divide(Number) - Method in class VolumeQuantity
    -
     
    -
    divide(Number) - Method in class TestUnit
    -
     
    -
    divide(Quantity<?>) - Method in class AreaQuantity
    -
     
    -
    divide(Quantity<?>) - Method in class DistanceQuantity
    -
     
    -
    divide(Quantity<?>) - Method in class TemperatureQuantity
    -
     
    -
    divide(Quantity<?>) - Method in class TimeQuantity
    -
     
    -
    divide(Quantity<?>) - Method in class VolumeQuantity
    -
     
    -
    divide(AreaQuantity) - Method in class VolumeQuantity
    -
     
    -
    divide(DistanceQuantity) - Method in class AreaQuantity
    -
     
    -
    divide(DistanceQuantity) - Method in class VolumeQuantity
    -
     
    -
    divide(Unit<?>) - Method in class TestUnit
    -
     
    -
    doubleValue(Unit<Temperature>) - Method in class TemperatureQuantity
    -
     
    -
    -

    E

    -
    -
    eq(AreaQuantity) - Method in class AreaQuantity
    -
     
    -
    eq(DistanceQuantity) - Method in class DistanceQuantity
    -
     
    -
    eq(TemperatureQuantity) - Method in class TemperatureQuantity
    -
     
    -
    eq(TestQuantity<Temperature>) - Method in class TemperatureQuantity
    -
     
    -
    eq(TestQuantity<Q>) - Method in class TestQuantity
    -
     
    -
    eq(TimeQuantity) - Method in class TimeQuantity
    -
     
    -
    eq(VolumeQuantity) - Method in class VolumeQuantity
    -
     
    -
    equals(Object) - Method in class MultiplyConverter
    -
     
    -
    equals(Object) - Method in class TestConverter
    -
     
    -
    equals(Object) - Method in class TestConverter.Pair
    -
     
    -
    equals(Object) - Method in class BaseUnit
    -
     
    -
    ExceptionsTest - Class in javax.measure.test
    -
     
    -
    ExceptionsTest() - Constructor for class ExceptionsTest
    -
     
    -
    -

    F

    -
    -
    FAHRENHEIT - Static variable in class TemperatureUnit
    -
    -
    Fahrenheit, commonly used in the United States.
    -
    -
    format(Unit<?>) - Method in class SimpleTestUnitFormat
    -
    -
    Formats an object to produce a string.
    -
    -
    format(Unit<?>, Appendable) - Method in class SimpleTestUnitFormat
    -
     
    -
    FormatServiceTest - Class in javax.measure.spi
    -
    -
    Tests for FormatService.
    -
    -
    FormatServiceTest() - Constructor for class FormatServiceTest
    -
     
    -
    -

    G

    -
    -
    g - Static variable in class MassUnit
    -
     
    -
    ge(AreaQuantity) - Method in class AreaQuantity
    -
     
    -
    ge(DistanceQuantity) - Method in class DistanceQuantity
    -
     
    -
    ge(TestQuantity<Q>) - Method in class TestQuantity
    -
     
    -
    ge(TimeQuantity) - Method in class TimeQuantity
    -
     
    -
    ge(VolumeQuantity) - Method in class VolumeQuantity
    -
     
    -
    geInstance() - Static method in class SimpleTestUnitFormat
    -
    -
    Returns the instance for formatting and parsing using case insensitive symbols
    -
    -
    getBaseUnits() - Method in class TestUnit
    -
     
    -
    getBySymbol(String) - Static method in class TemperatureUnit
    -
     
    -
    getConversionSteps() - Method in class TestConverter
    -
     
    -
    getConversionSteps() - Method in class TestConverter.Pair
    -
     
    -
    getConverterTo(Unit<Q>) - Method in class TestUnit
    -
     
    -
    getConverterToAny(Unit<?>) - Method in class TestUnit
    -
     
    -
    getDescription() - Method in class TemperatureUnit
    -
     
    -
    getDimension() - Method in class TestUnit
    -
     
    -
    getDist() - Method in class TripLeg
    -
     
    -
    getFactor() - Method in class MultiplyConverter
    -
    -
    Returns the scale factor of this converter.
    -
    -
    getFactor() - Method in class TemperatureUnit
    -
     
    -
    getInstance() - Static method in class SimpleTestUnitFormat
    -
    -
    Returns the unit format for the default locale.
    -
    -
    getLeft() - Method in class TestConverter.Pair
    -
     
    -
    getMultFactor() - Method in class TestUnit
    -
     
    -
    getName() - Method in class TestUnit
    -
     
    -
    getName() - Method in class TemperatureUnit
    -
     
    -
    getQuantity(Number, Unit<Q>) - Static method in class TestQuantities
    -
    -
    Returns the scalar measurement.
    -
    -
    getRight() - Method in class TestConverter.Pair
    -
     
    -
    getScalar() - Method in class TemperatureQuantity
    -
     
    -
    getScale() - Method in class TestQuantity
    -
     
    -
    getSymbol() - Method in class TestUnit
    -
     
    -
    getSymbol() - Method in class BaseUnit
    -
     
    -
    getSymbol() - Method in class TemperatureUnit
    -
     
    -
    getSystemConverter() - Method in class TestUnit
    -
    -
    Returns the converter from this unit to its unscaled System Unit unit.
    -
    -
    getSystemUnit() - Method in class TestUnit
    -
     
    -
    getSystemUnit() - Method in class AreaUnit
    -
     
    -
    getSystemUnit() - Method in class BaseUnit
    -
     
    -
    getSystemUnit() - Method in class DistanceUnit
    -
     
    -
    getSystemUnit() - Method in class MassUnit
    -
     
    -
    getSystemUnit() - Method in class SpeedUnit
    -
     
    -
    getSystemUnit() - Method in class TemperatureUnit
    -
     
    -
    getSystemUnit() - Method in class TimeUnit
    -
     
    -
    getSystemUnit() - Method in class VolumeUnit
    -
     
    -
    getType() - Method in class TestQuantity
    -
     
    -
    getUnit() - Method in class TemperatureQuantity
    -
     
    -
    getUnit() - Method in class TestQuantity
    -
     
    -
    getValue() - Method in class MultiplyConverter
    -
     
    -
    getValue() - Method in class TemperatureQuantity
    -
     
    -
    getValue() - Method in class TestQuantity
    -
     
    -
    gt(AreaQuantity) - Method in class AreaQuantity
    -
     
    -
    gt(DistanceQuantity) - Method in class DistanceQuantity
    -
     
    -
    gt(TestQuantity<Q>) - Method in class TestQuantity
    -
     
    -
    gt(TimeQuantity) - Method in class TimeQuantity
    -
     
    -
    gt(VolumeQuantity) - Method in class VolumeQuantity
    -
     
    -
    -

    H

    -
    -
    h - Static variable in class TimeUnit
    -
     
    -
    hashCode() - Method in class MultiplyConverter
    -
     
    -
    hashCode() - Method in class TestConverter
    -
     
    -
    hashCode() - Method in class TestConverter.Pair
    -
     
    -
    hashCode() - Method in class BaseUnit
    -
     
    -
    hectare - Static variable in class AreaUnit
    -
     
    -
    -

    I

    -
    -
    IDENTITY - Static variable in class TestConverter
    -
    -
    Holds identity converter.
    -
    -
    in - Static variable in class DistanceUnit
    -
     
    -
    init() - Method in class ConverterTest
    -
     
    -
    init() - Method in class DimensionTest
    -
     
    -
    init() - Method in class QuantityFormatTest
    -
     
    -
    init() - Method in class UnitFormatTest
    -
     
    -
    init() - Method in class UnitTest
    -
     
    -
    inverse() - Method in class MultiplyConverter
    -
     
    -
    inverse() - Method in class AreaQuantity
    -
     
    -
    inverse() - Method in class DistanceQuantity
    -
     
    -
    inverse() - Method in class TemperatureQuantity
    -
     
    -
    inverse() - Method in class TimeQuantity
    -
     
    -
    inverse() - Method in class VolumeQuantity
    -
     
    -
    inverse() - Method in class TestConverter
    -
     
    -
    inverse() - Method in class TestConverter.Pair
    -
     
    -
    inverse() - Method in class TestUnit
    -
     
    -
    isCompatible(Unit<?>) - Method in class TestUnit
    -
     
    -
    isCompatible(Unit<?>) - Method in class TemperatureUnit
    -
     
    -
    isEquivalentTo(Quantity<Q>) - Method in class TestQuantity
    -
     
    -
    isEquivalentTo(Unit<Q>) - Method in class TestUnit
    -
     
    -
    isIdentity() - Method in class TestConverter
    -
     
    -
    isIdentity() - Method in class TestConverter.Pair
    -
     
    -
    isLinear() - Method in class MultiplyConverter
    -
     
    -
    isLinear() - Method in class TestConverter.Pair
    -
     
    -
    isZero() - Method in class TemperatureQuantity
    -
     
    -
    -

    J

    -
    -
    javax.measure.spi - package javax.measure.spi
    -
     
    -
    javax.measure.test - package javax.measure.test
    -
     
    -
    javax.measure.test.format - package javax.measure.test.format
    -
     
    -
    javax.measure.test.function - package javax.measure.test.function
    -
     
    -
    javax.measure.test.quantity - package javax.measure.test.quantity
    -
     
    -
    javax.measure.test.unit - package javax.measure.test.unit
    -
     
    -
    -

    K

    -
    -
    KELVIN - Static variable in class TemperatureUnit
    -
    -
    Kelvin, commonly used in scientific endeavors.
    -
    -
    kg - Static variable in class MassUnit
    -
     
    -
    km - Static variable in class DistanceUnit
    -
     
    -
    kmh - Static variable in class SpeedUnit
    -
     
    -
    -

    L

    -
    -
    label(Unit<?>, String) - Method in class SimpleTestUnitFormat
    -
     
    -
    le(AreaQuantity) - Method in class AreaQuantity
    -
     
    -
    le(DistanceQuantity) - Method in class DistanceQuantity
    -
     
    -
    le(TestQuantity<Q>) - Method in class TestQuantity
    -
     
    -
    le(TimeQuantity) - Method in class TimeQuantity
    -
     
    -
    le(VolumeQuantity) - Method in class VolumeQuantity
    -
     
    -
    litre - Static variable in class VolumeUnit
    -
     
    -
    lt(AreaQuantity) - Method in class AreaQuantity
    -
     
    -
    lt(DistanceQuantity) - Method in class DistanceQuantity
    -
     
    -
    lt(TestQuantity<Q>) - Method in class TestQuantity
    -
     
    -
    lt(TimeQuantity) - Method in class TimeQuantity
    -
     
    -
    lt(VolumeQuantity) - Method in class VolumeQuantity
    -
     
    -
    -

    M

    -
    -
    m - Static variable in class DistanceUnit
    -
     
    -
    main(String[]) - Static method in class CalcTripLength
    -
     
    -
    main(String[]) - Static method in class CircleInfo
    -
     
    -
    main(String[]) - Static method in class Conversions
    -
     
    -
    main(String[]) - Static method in class CircleInfo
    -
     
    -
    MassUnit - Class in javax.measure.test.unit
    -
     
    -
    MassUnit(String, double) - Constructor for class MassUnit
    -
     
    -
    MeasurementParseTest - Class in javax.measure.test.format
    -
    -
    Measurement Format Tests
    -
    -
    MeasurementParseTest() - Constructor for class MeasurementParseTest
    -
     
    -
    MetricPrefixTest - Class in javax.measure.test
    -
    -
    JUnit tests for the 24 prefixes used in the metric system (decimal multiples and submultiples of units).
    -
    -
    MetricPrefixTest() - Constructor for class MetricPrefixTest
    -
     
    -
    mile - Static variable in class DistanceUnit
    -
     
    -
    min - Static variable in class TimeUnit
    -
     
    -
    mph - Static variable in class SpeedUnit
    -
     
    -
    multFactor - Variable in class TestUnit
    -
     
    -
    multiply(double) - Method in class AreaQuantity
    -
     
    -
    multiply(double) - Method in class DistanceQuantity
    -
     
    -
    multiply(double) - Method in class TimeQuantity
    -
     
    -
    multiply(double) - Method in class VolumeQuantity
    -
     
    -
    multiply(double) - Method in class TestUnit
    -
     
    -
    multiply(double) - Method in class TemperatureUnit
    -
     
    -
    multiply(Number) - Method in class AreaQuantity
    -
     
    -
    multiply(Number) - Method in class DistanceQuantity
    -
     
    -
    multiply(Number) - Method in class TemperatureQuantity
    -
     
    -
    multiply(Number) - Method in class TimeQuantity
    -
     
    -
    multiply(Number) - Method in class VolumeQuantity
    -
     
    -
    multiply(Number) - Method in class TestUnit
    -
     
    -
    multiply(Length) - Method in class DistanceQuantity
    -
     
    -
    multiply(Quantity<?>) - Method in class AreaQuantity
    -
     
    -
    multiply(Quantity<?>) - Method in class DistanceQuantity
    -
     
    -
    multiply(Quantity<?>) - Method in class TemperatureQuantity
    -
     
    -
    multiply(Quantity<?>) - Method in class TimeQuantity
    -
     
    -
    multiply(Quantity<?>) - Method in class VolumeQuantity
    -
     
    -
    multiply(AreaQuantity) - Method in class DistanceQuantity
    -
     
    -
    multiply(DistanceQuantity) - Method in class AreaQuantity
    -
     
    -
    multiply(DistanceQuantity) - Method in class DistanceQuantity
    -
     
    -
    multiply(Unit<?>) - Method in class TestUnit
    -
     
    -
    multiply(Unit<?>) - Method in class TemperatureUnit
    -
     
    -
    MultiplyConverter - Class in javax.measure.test.function
    -
    -
    - This class represents a converter multiplying numeric values by a constant scaling factor (double based).
    -
    -
    MultiplyConverter(double) - Constructor for class MultiplyConverter
    -
    -
    Creates a multiply converter with the specified scale factor.
    -
    -
    MultiplyConverter(Number) - Constructor for class MultiplyConverter
    -
    -
    Creates a multiply converter with the specified scale factor.
    -
    -
    -

    N

    -
    -
    name - Variable in class TestUnit
    -
     
    -
    ne(AreaQuantity) - Method in class AreaQuantity
    -
     
    -
    ne(DistanceQuantity) - Method in class DistanceQuantity
    -
     
    -
    ne(TestQuantity<Q>) - Method in class TestQuantity
    -
     
    -
    ne(TimeQuantity) - Method in class TimeQuantity
    -
     
    -
    ne(VolumeQuantity) - Method in class VolumeQuantity
    -
     
    -
    negate() - Method in class AreaQuantity
    -
     
    -
    negate() - Method in class DistanceQuantity
    -
     
    -
    negate() - Method in class TemperatureQuantity
    -
     
    -
    negate() - Method in class TimeQuantity
    -
     
    -
    negate() - Method in class VolumeQuantity
    -
     
    -
    -

    O

    -
    -
    ONE - Static variable in class TestQuantity
    -
     
    -
    ONE - Static variable in class TestUnit
    -
     
    -
    -

    P

    -
    -
    Pair(UnitConverter, UnitConverter) - Constructor for class TestConverter.Pair
    -
    -
    Creates a compound converter resulting from the combined transformation of the specified converters.
    -
    -
    parse(CharSequence) - Method in class SimpleTestUnitFormat
    -
    -
    Parses the specified character sequence to produce a unit (convenience method).
    -
    -
    parse(CharSequence, int) - Method in class SimpleTestUnitFormat
    -
     
    -
    parse(CharSequence, ParsePosition) - Method in class SimpleTestUnitFormat
    -
    -
    Parses the specified character sequence to produce a unit (convenience method).
    -
    -
    parsec - Static variable in class DistanceUnit
    -
     
    -
    pow(int) - Method in class TestUnit
    -
     
    -
    pow(int) - Method in class TemperatureUnit
    -
     
    -
    prefix(Prefix) - Method in class TestUnit
    -
     
    -
    prefix(Prefix) - Method in class TemperatureUnit
    -
     
    -
    -

    Q

    -
    -
    QuantityFormatTest - Class in javax.measure.test.format
    -
     
    -
    QuantityFormatTest() - Constructor for class QuantityFormatTest
    -
     
    -
    -

    R

    -
    -
    RANKINE - Static variable in class TemperatureUnit
    -
    -
    Rankine, used in scientific endeavors.
    -
    -
    REF_UNIT - Static variable in class AreaUnit
    -
     
    -
    REF_UNIT - Static variable in class DistanceUnit
    -
     
    -
    REF_UNIT - Static variable in class MassUnit
    -
     
    -
    REF_UNIT - Static variable in class SpeedUnit
    -
     
    -
    REF_UNIT - Static variable in class TimeUnit
    -
     
    -
    REF_UNIT - Static variable in class VolumeUnit
    -
     
    -
    root(int) - Method in class TestUnit
    -
     
    -
    root(int) - Method in class TemperatureUnit
    -
     
    -
    -

    S

    -
    -
    s - Static variable in class TimeUnit
    -
     
    -
    scalar - Variable in class TestQuantity
    -
     
    -
    ServiceProviderTest - Class in javax.measure.spi
    -
    -
    Tests for ServiceProvider.
    -
    -
    ServiceProviderTest() - Constructor for class ServiceProviderTest
    -
     
    -
    setUp() - Method in class AreaQuantityTest
    -
     
    -
    setUp() - Method in class DistanceQuantityTest
    -
     
    -
    setUp() - Method in class TemperatureQuantityTest
    -
     
    -
    shift(double) - Method in class TestUnit
    -
     
    -
    shift(double) - Method in class TemperatureUnit
    -
     
    -
    shift(Number) - Method in class TestUnit
    -
     
    -
    showInUnits(TestUnit<?>, int) - Method in class TestQuantity
    -
     
    -
    showInUnits(AreaUnit, int) - Method in class AreaQuantity
    -
     
    -
    showInUnits(DistanceUnit, int) - Method in class DistanceQuantity
    -
     
    -
    showInUnits(DistanceUnit, int) - Method in class TimeQuantity
    -
     
    -
    showInUnits(VolumeUnit, int) - Method in class VolumeQuantity
    -
     
    -
    SimpleTestUnitFormat - Class in javax.measure.test.format
    -
    -
    Provides a simple interface for formatting and parsing units.
    -
    -
    SpeedUnit - Class in javax.measure.test.unit
    -
     
    -
    SpeedUnit(String, double) - Constructor for class SpeedUnit
    -
     
    -
    sqmetre - Static variable in class AreaUnit
    -
     
    -
    sqmile - Static variable in class AreaUnit
    -
     
    -
    subtract(Quantity<Area>) - Method in class AreaQuantity
    -
     
    -
    subtract(Quantity<Length>) - Method in class DistanceQuantity
    -
     
    -
    subtract(Quantity<Temperature>) - Method in class TemperatureQuantity
    -
     
    -
    subtract(Quantity<Time>) - Method in class TimeQuantity
    -
     
    -
    subtract(Quantity<Volume>) - Method in class VolumeQuantity
    -
     
    -
    subtract(AreaQuantity) - Method in class AreaQuantity
    -
     
    -
    subtract(DistanceQuantity) - Method in class DistanceQuantity
    -
     
    -
    subtract(TemperatureQuantity) - Method in class TemperatureQuantity
    -
     
    -
    subtract(TestQuantity<Q>, TestQuantity<Q>, TestQuantity<Q>, TestUnit<Q>) - Method in class TestQuantity
    -
     
    -
    subtract(TimeQuantity) - Method in class TimeQuantity
    -
     
    -
    subtract(VolumeQuantity) - Method in class VolumeQuantity
    -
     
    -
    symbol - Variable in class TestUnit
    -
     
    -
    -

    T

    -
    -
    TemperatureQuantity - Class in javax.measure.test.quantity
    -
     
    -
    TemperatureQuantity(double, TemperatureUnit) - Constructor for class TemperatureQuantity
    -
     
    -
    TemperatureQuantity(Number, Unit) - Constructor for class TemperatureQuantity
    -
     
    -
    TemperatureQuantity(Quantity.Scale) - Constructor for class TemperatureQuantity
    -
     
    -
    TemperatureQuantityTest - Class in javax.measure.test.quantity
    -
     
    -
    TemperatureQuantityTest() - Constructor for class TemperatureQuantityTest
    -
     
    -
    TemperatureUnit - Class in javax.measure.test.unit
    -
     
    -
    TemperatureUnit(double, double, TemperatureUnit, double, double, String, String) - Constructor for class TemperatureUnit
    -
    -
    Constructor for TemperatureUnit that accepts key characteristics of each - temperature scale.
    -
    -
    testAbsolute() - Method in class DistanceQuantityTest
    -
     
    -
    testAbsolute() - Method in class TemperatureQuantityTest
    -
     
    -
    testAdd() - Method in class AreaQuantityTest
    -
     
    -
    testAdd() - Method in class DistanceQuantityTest
    -
     
    -
    testAdd() - Method in class TemperatureQuantityTest
    -
     
    -
    testAreaQuantity() - Method in class AreaQuantityTest
    -
     
    -
    testAreaQuantity() - Method in class DistanceQuantityTest
    -
     
    -
    testAtto() - Method in class MetricPrefixTest
    -
     
    -
    testCenti() - Method in class MetricPrefixTest
    -
     
    -
    testConvert() - Method in class AreaQuantityTest
    -
     
    -
    testConvert() - Method in class DistanceQuantityTest
    -
     
    -
    testConvert() - Method in class TemperatureQuantityTest
    -
     
    -
    TestConverter - Class in javax.measure.test
    -
    -
    - Test class for our UnitConverter implementations.
    -
    -
    TestConverter() - Constructor for class TestConverter
    -
    -
    Default constructor.
    -
    -
    TestConverter.Pair - Class in javax.measure.test
    -
    -
    This class represents converters made up of two or more separate converters (in matrix notation [pair] = [left] x [right]).
    -
    -
    testDeca() - Method in class MetricPrefixTest
    -
     
    -
    testDeci() - Method in class MetricPrefixTest
    -
     
    -
    testDeka() - Method in class MetricPrefixTest
    -
     
    -
    testDivide() - Method in class DimensionTest
    -
     
    -
    testDivideDistanceQuantity() - Method in class AreaQuantityTest
    -
     
    -
    testDivideDouble() - Method in class AreaQuantityTest
    -
     
    -
    testDivideDouble() - Method in class DistanceQuantityTest
    -
     
    -
    testDivideDouble() - Method in class TemperatureQuantityTest
    -
     
    -
    testDivideNull() - Method in class UnitTest
    -
     
    -
    testEq() - Method in class AreaQuantityTest
    -
     
    -
    testEq() - Method in class DistanceQuantityTest
    -
     
    -
    testEq() - Method in class TemperatureQuantityTest
    -
     
    -
    testExa() - Method in class MetricPrefixTest
    -
     
    -
    testExbi() - Method in class BinaryPrefixTest
    -
     
    -
    testExceptionWithMessage() - Method in class MeasurementParseTest
    -
     
    -
    testFemto() - Method in class MetricPrefixTest
    -
     
    -
    testFormatFromQuantity() - Method in class UnitFormatTest
    -
     
    -
    testFormatKph() - Method in class UnitFormatTest
    -
     
    -
    testGe() - Method in class AreaQuantityTest
    -
     
    -
    testGe() - Method in class DistanceQuantityTest
    -
     
    -
    testGe() - Method in class TemperatureQuantityTest
    -
     
    -
    testGetAndSetCurrent() - Method in class ServiceProviderTest
    -
    - -
    -
    testGetBinaryPrefixes() - Method in class ServiceProviderTest
    -
     
    -
    testGetConverterTo() - Method in class UnitTest
    -
     
    -
    testGetDimension() - Method in class UnitTest
    -
    -
    Test method for Unit.getDimension().
    -
    -
    testGetInstance() - Method in class DimensionTest
    -
     
    -
    testGetMetricPrefixes() - Method in class ServiceProviderTest
    -
     
    -
    testGetProductDimensions() - Method in class DimensionTest
    -
     
    -
    testGetSymbol() - Method in class UnitTest
    -
    -
    Test method for Unit.getSymbol().
    -
    -
    testGetUnitFormats() - Method in class FormatServiceTest
    -
    - -
    -
    testGibi() - Method in class BinaryPrefixTest
    -
     
    -
    testGiga() - Method in class MetricPrefixTest
    -
     
    -
    testGt() - Method in class AreaQuantityTest
    -
     
    -
    testGt() - Method in class DistanceQuantityTest
    -
     
    -
    testGt() - Method in class TemperatureQuantityTest
    -
     
    -
    testHecto() - Method in class MetricPrefixTest
    -
     
    -
    testIdentity() - Method in class ConverterTest
    -
     
    -
    testIncommensurableException() - Method in class ExceptionsTest
    -
     
    -
    testIncommensurableExceptionWithCause() - Method in class ExceptionsTest
    -
     
    -
    testIncommensurableExceptionWithMessageAndCause() - Method in class ExceptionsTest
    -
     
    -
    testIsCompatible() - Method in class UnitTest
    -
    - -
    -
    testIsEquivalentTo() - Method in class UnitTest
    -
    - -
    -
    testKibi() - Method in class BinaryPrefixTest
    -
     
    -
    testKilo() - Method in class MetricPrefixTest
    -
     
    -
    testLe() - Method in class AreaQuantityTest
    -
     
    -
    testLe() - Method in class DistanceQuantityTest
    -
     
    -
    testLe() - Method in class TemperatureQuantityTest
    -
     
    -
    testLevelCelsius() - Method in class TemperatureQuantityTest
    -
     
    -
    testLevelFahrenheit() - Method in class TemperatureQuantityTest
    -
     
    -
    testLinear() - Method in class ConverterTest
    -
     
    -
    testLocalSensitive() - Method in class QuantityFormatTest
    -
     
    -
    testLocalSensitive() - Method in class UnitFormatTest
    -
     
    -
    testLt() - Method in class AreaQuantityTest
    -
     
    -
    testLt() - Method in class DistanceQuantityTest
    -
     
    -
    testLt() - Method in class TemperatureQuantityTest
    -
     
    -
    testMeasurementError() - Method in class ExceptionsTest
    -
     
    -
    testMeasurementErrorWithCause() - Method in class ExceptionsTest
    -
     
    -
    testMeasurementErrorWithMessage() - Method in class ExceptionsTest
    -
     
    -
    testMeasurementErrorWithMessageAndCause() - Method in class ExceptionsTest
    -
     
    -
    testMeasurementException() - Method in class ExceptionsTest
    -
     
    -
    testMeasurementExceptionWithCause() - Method in class ExceptionsTest
    -
     
    -
    testMeasurementExceptionWithMessage() - Method in class ExceptionsTest
    -
     
    -
    testMeasurementExceptionWithMessageAndCause() - Method in class ExceptionsTest
    -
     
    -
    testMebi() - Method in class BinaryPrefixTest
    -
     
    -
    testMega() - Method in class MetricPrefixTest
    -
     
    -
    testMicro() - Method in class MetricPrefixTest
    -
     
    -
    testMilli() - Method in class MetricPrefixTest
    -
     
    -
    testMoreLocalSensitive() - Method in class UnitFormatTest
    -
     
    -
    testMultiply() - Method in class DimensionTest
    -
     
    -
    testMultiplyDistanceQuantity() - Method in class AreaQuantityTest
    -
     
    -
    testMultiplyDistanceQuantity() - Method in class DistanceQuantityTest
    -
     
    -
    testMultiplyDouble() - Method in class AreaQuantityTest
    -
     
    -
    testMultiplyDouble() - Method in class DistanceQuantityTest
    -
     
    -
    testMultiplyDouble() - Method in class TemperatureQuantityTest
    -
     
    -
    testMultiplyNull() - Method in class UnitTest
    -
     
    -
    testNano() - Method in class MetricPrefixTest
    -
     
    -
    testNegate() - Method in class AreaQuantityTest
    -
     
    -
    testNegate() - Method in class DistanceQuantityTest
    -
     
    -
    testNegate() - Method in class TemperatureQuantityTest
    -
     
    -
    testOfNonExistent() - Method in class ServiceProviderTest
    -
    -
    Tests ServiceProvider#of() by passing a non-existing name.
    -
    -
    testOfNull() - Method in class ServiceProviderTest
    -
    -
    Tests ServiceProvider#of() by passing null.
    -
    -
    testOldExceptionWithCause() - Method in class MeasurementParseTest
    -
     
    -
    testOldExceptionWithMessageAndPos() - Method in class MeasurementParseTest
    -
     
    -
    testOldExceptionWithMessageDataAndPos() - Method in class MeasurementParseTest
    -
     
    -
    testParseIrregularString() - Method in class QuantityFormatTest
    -
     
    -
    testParseIrregularString() - Method in class UnitFormatTest
    -
     
    -
    testParserException() - Method in class QuantityFormatTest
    -
     
    -
    testParserException() - Method in class UnitFormatTest
    -
     
    -
    testParserExceptionWithNullString() - Method in class QuantityFormatTest
    -
     
    -
    testParserExceptionWithNullString() - Method in class UnitFormatTest
    -
     
    -
    testParserExceptionWithPosition() - Method in class QuantityFormatTest
    -
     
    -
    testParserExceptionWithPosition() - Method in class UnitFormatTest
    -
     
    -
    testParseSimple() - Method in class QuantityFormatTest
    -
     
    -
    testParseSimple() - Method in class UnitFormatTest
    -
     
    -
    testPebi() - Method in class BinaryPrefixTest
    -
     
    -
    testPeta() - Method in class MetricPrefixTest
    -
     
    -
    testPico() - Method in class MetricPrefixTest
    -
     
    -
    testPow() - Method in class DimensionTest
    -
     
    -
    testPriority() - Method in class ServiceProviderTest
    -
    - -
    -
    TestQuantities - Class in javax.measure.test.quantity
    -
    -
    Singleton class for accessing Quantity instances.
    -
    -
    testQuantity() - Method in class TemperatureQuantityTest
    -
     
    -
    TestQuantity<Q extends Quantity<Q>> - Class in javax.measure.test.quantity
    -
     
    -
    TestQuantity(Class<Q>) - Constructor for class TestQuantity
    -
     
    -
    TestQuantity(Class<Q>, Quantity.Scale) - Constructor for class TestQuantity
    -
     
    -
    testQuecto() - Method in class MetricPrefixTest
    -
     
    -
    testQuetta() - Method in class MetricPrefixTest
    -
     
    -
    testRonna() - Method in class MetricPrefixTest
    -
     
    -
    testRonto() - Method in class MetricPrefixTest
    -
     
    -
    testRoot() - Method in class DimensionTest
    -
     
    -
    testScale() - Method in class AreaQuantityTest
    -
     
    -
    testScale() - Method in class TemperatureQuantityTest
    -
     
    -
    testSetCurrentNull() - Method in class ServiceProviderTest
    -
     
    -
    testShiftNull() - Method in class UnitTest
    -
     
    -
    testShowInUnits() - Method in class AreaQuantityTest
    -
     
    -
    testShowInUnits() - Method in class DistanceQuantityTest
    -
     
    -
    testSubtract() - Method in class AreaQuantityTest
    -
     
    -
    testSubtract() - Method in class DistanceQuantityTest
    -
     
    -
    testSubtract() - Method in class TemperatureQuantityTest
    -
     
    -
    testTebi() - Method in class BinaryPrefixTest
    -
     
    -
    testTera() - Method in class MetricPrefixTest
    -
     
    -
    testToSystemUnit() - Method in class AreaQuantityTest
    -
     
    -
    testToSystemUnit() - Method in class DistanceQuantityTest
    -
     
    -
    testToSystemUnit() - Method in class TemperatureQuantityTest
    -
     
    -
    testTypes() - Method in class FormatServiceTest
    -
    -
    Tests FormatService#FormatType.
    -
    -
    testUnconvertibleException() - Method in class ExceptionsTest
    -
     
    -
    testUnconvertibleExceptionWithCause() - Method in class ExceptionsTest
    -
     
    -
    testUnconvertibleExceptionWithMessageAndCause() - Method in class ExceptionsTest
    -
     
    -
    TestUnit<Q extends Quantity<Q>> - Class in javax.measure.test
    -
     
    -
    TestUnit() - Constructor for class TestUnit
    -
     
    -
    TestUnit(String) - Constructor for class TestUnit
    -
     
    -
    TestUnit(String, double) - Constructor for class TestUnit
    -
     
    -
    testWrongEnumType() - Method in class ServiceProviderTest
    -
     
    -
    testWrongPrefixType() - Method in class ServiceProviderTest
    -
     
    -
    testYobi() - Method in class BinaryPrefixTest
    -
     
    -
    testYocto() - Method in class MetricPrefixTest
    -
     
    -
    testYotta() - Method in class MetricPrefixTest
    -
     
    -
    testZebi() - Method in class BinaryPrefixTest
    -
     
    -
    testZepto() - Method in class MetricPrefixTest
    -
     
    -
    testZetta() - Method in class MetricPrefixTest
    -
     
    -
    TimeQuantity - Class in javax.measure.test.quantity
    -
     
    -
    TimeQuantity() - Constructor for class TimeQuantity
    -
     
    -
    TimeQuantity(double, TimeUnit) - Constructor for class TimeQuantity
    -
     
    -
    TimeQuantity(Number, Unit) - Constructor for class TimeQuantity
    -
     
    -
    TimeUnit - Class in javax.measure.test.unit
    -
     
    -
    TimeUnit(String, double) - Constructor for class TimeUnit
    -
     
    -
    to(Unit<Area>) - Method in class AreaQuantity
    -
     
    -
    to(Unit<Length>) - Method in class DistanceQuantity
    -
     
    -
    to(Unit<Temperature>) - Method in class TemperatureQuantity
    -
     
    -
    to(Unit<Time>) - Method in class TimeQuantity
    -
     
    -
    to(Unit<Volume>) - Method in class VolumeQuantity
    -
     
    -
    toString() - Method in class MultiplyConverter
    -
     
    -
    toString() - Method in class TestQuantity
    -
     
    -
    toString() - Method in class TestUnit
    -
     
    -
    toString(boolean, boolean, int) - Method in class TemperatureQuantity
    -
     
    -
    transform(UnitConverter) - Method in class TestUnit
    -
     
    -
    transform(UnitConverter) - Method in class TemperatureUnit
    -
     
    -
    TripLeg - Class in javax.measure.test
    -
     
    -
    TripLeg(String, String, DistanceQuantity) - Constructor for class TripLeg
    -
     
    -
    -

    U

    -
    -
    unit - Variable in class TestQuantity
    -
     
    -
    UnitFormatTest - Class in javax.measure.test.format
    -
     
    -
    UnitFormatTest() - Constructor for class UnitFormatTest
    -
     
    -
    UnitTest - Class in javax.measure.test
    -
     
    -
    UnitTest() - Constructor for class UnitTest
    -
     
    -
    -

    V

    -
    -
    value - Variable in class TestQuantity
    -
     
    -
    VolumeQuantity - Class in javax.measure.test.quantity
    -
     
    -
    VolumeQuantity() - Constructor for class VolumeQuantity
    -
     
    -
    VolumeQuantity(double, VolumeUnit) - Constructor for class VolumeQuantity
    -
     
    -
    VolumeQuantity(Number, Unit) - Constructor for class VolumeQuantity
    -
     
    -
    VolumeUnit - Class in javax.measure.test.unit
    -
     
    -
    VolumeUnit(String, double) - Constructor for class VolumeUnit
    -
     
    -
    -

    Å

    -
    -
    Ångström - Static variable in class DistanceUnit
    -
     
    -
    -A B C D E F G H I J K L M N O P Q R S T U V Å 
    All Classes and Interfaces|All Packages
    - -
    -
    - - diff --git a/docs/site/testapidocs/index.html b/docs/site/testapidocs/index.html deleted file mode 100644 index 73d456cc..00000000 --- a/docs/site/testapidocs/index.html +++ /dev/null @@ -1,82 +0,0 @@ - - - - -Overview (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Units of Measurement API 2.2.1-SNAPSHOT Test API

    -
    - -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/spi/FormatServiceTest.html b/docs/site/testapidocs/javax/measure/spi/FormatServiceTest.html deleted file mode 100644 index 39f42a0c..00000000 --- a/docs/site/testapidocs/javax/measure/spi/FormatServiceTest.html +++ /dev/null @@ -1,185 +0,0 @@ - - - - -FormatServiceTest (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class FormatServiceTest

    -
    -
    Object -
    FormatServiceTest
    -
    -
    -
    -
    public class FormatServiceTest -extends Object
    -
    Tests for FormatService.
    -
    -
    - -
    -
    - -
    - -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/spi/ServiceProviderTest.html b/docs/site/testapidocs/javax/measure/spi/ServiceProviderTest.html deleted file mode 100644 index 7b9a61a2..00000000 --- a/docs/site/testapidocs/javax/measure/spi/ServiceProviderTest.html +++ /dev/null @@ -1,268 +0,0 @@ - - - - -ServiceProviderTest (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class ServiceProviderTest

    -
    -
    Object -
    ServiceProviderTest
    -
    -
    -
    -
    public class ServiceProviderTest -extends Object
    -
    Tests for ServiceProvider.
    -
    -
    - -
    -
    - -
    - -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/spi/class-use/FormatServiceTest.html b/docs/site/testapidocs/javax/measure/spi/class-use/FormatServiceTest.html deleted file mode 100644 index 218442c1..00000000 --- a/docs/site/testapidocs/javax/measure/spi/class-use/FormatServiceTest.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Class javax.measure.spi.FormatServiceTest (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Class
    javax.measure.spi.FormatServiceTest

    -
    -No usage of javax.measure.spi.FormatServiceTest
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/spi/class-use/ServiceProviderTest.html b/docs/site/testapidocs/javax/measure/spi/class-use/ServiceProviderTest.html deleted file mode 100644 index a4be4e20..00000000 --- a/docs/site/testapidocs/javax/measure/spi/class-use/ServiceProviderTest.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Class javax.measure.spi.ServiceProviderTest (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Class
    javax.measure.spi.ServiceProviderTest

    -
    -No usage of javax.measure.spi.ServiceProviderTest
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/spi/package-summary.html b/docs/site/testapidocs/javax/measure/spi/package-summary.html deleted file mode 100644 index aaed09ef..00000000 --- a/docs/site/testapidocs/javax/measure/spi/package-summary.html +++ /dev/null @@ -1,94 +0,0 @@ - - - - -javax.measure.spi (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Package javax.measure.spi

    -
    -
    -
    package javax.measure.spi
    -
    - -
    -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/spi/package-tree.html b/docs/site/testapidocs/javax/measure/spi/package-tree.html deleted file mode 100644 index 9c182a2e..00000000 --- a/docs/site/testapidocs/javax/measure/spi/package-tree.html +++ /dev/null @@ -1,77 +0,0 @@ - - - - -javax.measure.spi Class Hierarchy (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Hierarchy For Package javax.measure.spi

    -Package Hierarchies: - -
    -
    -

    Class Hierarchy

    - -
    -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/spi/package-use.html b/docs/site/testapidocs/javax/measure/spi/package-use.html deleted file mode 100644 index 2ae22ae4..00000000 --- a/docs/site/testapidocs/javax/measure/spi/package-use.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Package javax.measure.spi (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Package
    javax.measure.spi

    -
    -No usage of javax.measure.spi
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/BinaryPrefixTest.html b/docs/site/testapidocs/javax/measure/test/BinaryPrefixTest.html deleted file mode 100644 index 57d48f87..00000000 --- a/docs/site/testapidocs/javax/measure/test/BinaryPrefixTest.html +++ /dev/null @@ -1,243 +0,0 @@ - - - - -BinaryPrefixTest (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class BinaryPrefixTest

    -
    -
    Object -
    BinaryPrefixTest
    -
    -
    -
    -
    public class BinaryPrefixTest -extends Object
    -
    -
    - -
    -
    -
      - -
    • -
      -

      Constructor Details

      - -
      -
    • - -
    • -
      -

      Method Details

      -
        -
      • -
        -

        testKibi

        -
        @Test -public void testKibi()
        -
        -
      • -
      • -
        -

        testMebi

        -
        @Test -public void testMebi()
        -
        -
      • -
      • -
        -

        testExbi

        -
        @Test -public void testExbi()
        -
        -
      • -
      • -
        -

        testGibi

        -
        @Test -public void testGibi()
        -
        -
      • -
      • -
        -

        testTebi

        -
        @Test -public void testTebi()
        -
        -
      • -
      • -
        -

        testPebi

        -
        @Test -public void testPebi()
        -
        -
      • -
      • -
        -

        testYobi

        -
        @Test -public void testYobi()
        -
        -
      • -
      • -
        -

        testZebi

        -
        @Test -public void testZebi()
        -
        -
      • -
      -
      -
    • -
    -
    - -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/CalcTripLength.html b/docs/site/testapidocs/javax/measure/test/CalcTripLength.html deleted file mode 100644 index 4feba8fb..00000000 --- a/docs/site/testapidocs/javax/measure/test/CalcTripLength.html +++ /dev/null @@ -1,169 +0,0 @@ - - - - -CalcTripLength (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class CalcTripLength

    -
    -
    Object -
    CalcTripLength
    -
    -
    -
    -
    public class CalcTripLength -extends Object
    -
    -
    Author:
    -
    paul.morrison
    -
    -
    -
    - -
    -
    -
      - -
    • -
      -

      Constructor Details

      - -
      -
    • - -
    • -
      -

      Method Details

      -
        -
      • -
        -

        main

        -
        public static void main(String[] argv)
        -
        -
      • -
      -
      -
    • -
    -
    - -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/CircleInfo.html b/docs/site/testapidocs/javax/measure/test/CircleInfo.html deleted file mode 100644 index 41494b72..00000000 --- a/docs/site/testapidocs/javax/measure/test/CircleInfo.html +++ /dev/null @@ -1,165 +0,0 @@ - - - - -CircleInfo (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class CircleInfo

    -
    -
    Object -
    CircleInfo
    -
    -
    -
    -
    public class CircleInfo -extends Object
    -
    -
    - -
    -
    -
      - -
    • -
      -

      Constructor Details

      - -
      -
    • - -
    • -
      -

      Method Details

      -
        -
      • -
        -

        main

        -
        public static void main(String[] args)
        -
        -
      • -
      -
      -
    • -
    -
    - -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/Conversions.html b/docs/site/testapidocs/javax/measure/test/Conversions.html deleted file mode 100644 index a47731a8..00000000 --- a/docs/site/testapidocs/javax/measure/test/Conversions.html +++ /dev/null @@ -1,165 +0,0 @@ - - - - -Conversions (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class Conversions

    -
    -
    Object -
    Conversions
    -
    -
    -
    -
    public class Conversions -extends Object
    -
    -
    - -
    -
    -
      - -
    • -
      -

      Constructor Details

      - -
      -
    • - -
    • -
      -

      Method Details

      -
        -
      • -
        -

        main

        -
        public static void main(String[] args)
        -
        -
      • -
      -
      -
    • -
    -
    - -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/ConverterTest.html b/docs/site/testapidocs/javax/measure/test/ConverterTest.html deleted file mode 100644 index 183b126b..00000000 --- a/docs/site/testapidocs/javax/measure/test/ConverterTest.html +++ /dev/null @@ -1,188 +0,0 @@ - - - - -ConverterTest (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class ConverterTest

    -
    -
    Object -
    ConverterTest
    -
    -
    -
    -
    public class ConverterTest -extends Object
    -
    -
    - -
    -
    -
      - -
    • -
      -

      Constructor Details

      - -
      -
    • - -
    • -
      -

      Method Details

      -
        -
      • -
        -

        init

        -
        @BeforeEach -public void init()
        -
        -
      • -
      • -
        -

        testIdentity

        -
        @Test -public void testIdentity()
        -
        -
      • -
      • -
        -

        testLinear

        -
        @Test -public void testLinear()
        -
        -
      • -
      -
      -
    • -
    -
    - -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/DimensionTest.html b/docs/site/testapidocs/javax/measure/test/DimensionTest.html deleted file mode 100644 index 2f9ec293..00000000 --- a/docs/site/testapidocs/javax/measure/test/DimensionTest.html +++ /dev/null @@ -1,232 +0,0 @@ - - - - -DimensionTest (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class DimensionTest

    -
    -
    Object -
    DimensionTest
    -
    -
    -
    -
    public class DimensionTest -extends Object
    -
    -
    - -
    -
    -
      - -
    • -
      -

      Constructor Details

      - -
      -
    • - -
    • -
      -

      Method Details

      -
        -
      • -
        -

        init

        -
        @BeforeEach -public void init()
        -
        -
      • -
      • -
        -

        testGetInstance

        -
        @Test -public void testGetInstance()
        -
        -
      • -
      • -
        -

        testMultiply

        -
        @Test -public void testMultiply()
        -
        -
      • -
      • -
        -

        testDivide

        -
        @Test -public void testDivide()
        -
        -
      • -
      • -
        -

        testPow

        -
        @Test -public void testPow()
        -
        -
      • -
      • -
        -

        testRoot

        -
        @Test -public void testRoot()
        -
        -
      • -
      • -
        -

        testGetProductDimensions

        -
        @Test -public void testGetProductDimensions()
        -
        -
      • -
      -
      -
    • -
    -
    - -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/ExceptionsTest.html b/docs/site/testapidocs/javax/measure/test/ExceptionsTest.html deleted file mode 100644 index 263e1109..00000000 --- a/docs/site/testapidocs/javax/measure/test/ExceptionsTest.html +++ /dev/null @@ -1,315 +0,0 @@ - - - - -ExceptionsTest (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class ExceptionsTest

    -
    -
    Object -
    ExceptionsTest
    -
    -
    -
    -
    public class ExceptionsTest -extends Object
    -
    -
    Version:
    -
    2.0
    -
    Author:
    -
    Werner Keil
    -
    -
    -
    - -
    -
    - -
    - -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/MetricPrefixTest.html b/docs/site/testapidocs/javax/measure/test/MetricPrefixTest.html deleted file mode 100644 index 10ad0520..00000000 --- a/docs/site/testapidocs/javax/measure/test/MetricPrefixTest.html +++ /dev/null @@ -1,439 +0,0 @@ - - - - -MetricPrefixTest (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class MetricPrefixTest

    -
    -
    Object -
    MetricPrefixTest
    -
    -
    -
    -
    public class MetricPrefixTest -extends Object
    -
    JUnit tests for the 24 prefixes used in the metric system (decimal multiples and submultiples of units).
    -
    -
    Since:
    -
    2.0
    -
    Version:
    -
    2.2, May 9, 2023
    -
    Author:
    -
    Werner Keil
    -
    -
    -
    - -
    -
    -
      - -
    • -
      -

      Constructor Details

      - -
      -
    • - -
    • -
      -

      Method Details

      -
        -
      • -
        -

        testAtto

        -
        @Test -public void testAtto()
        -
        -
      • -
      • -
        -

        testCenti

        -
        @Test -public void testCenti()
        -
        -
      • -
      • -
        -

        testDeci

        -
        @Test -public void testDeci()
        -
        -
      • -
      • -
        -

        testDeca

        -
        @Test -public void testDeca()
        -
        -
      • -
      • -
        -

        testDeka

        -
        @Test -public void testDeka()
        -
        -
      • -
      • -
        -

        testExa

        -
        @Test -public void testExa()
        -
        -
      • -
      • -
        -

        testFemto

        -
        @Test -public void testFemto()
        -
        -
      • -
      • -
        -

        testGiga

        -
        @Test -public void testGiga()
        -
        -
      • -
      • -
        -

        testHecto

        -
        @Test -public void testHecto()
        -
        -
      • -
      • -
        -

        testKilo

        -
        @Test -public void testKilo()
        -
        -
      • -
      • -
        -

        testMega

        -
        @Test -public void testMega()
        -
        -
      • -
      • -
        -

        testMilli

        -
        @Test -public void testMilli()
        -
        -
      • -
      • -
        -

        testMicro

        -
        @Test -public void testMicro()
        -
        -
      • -
      • -
        -

        testNano

        -
        @Test -public void testNano()
        -
        -
      • -
      • -
        -

        testPeta

        -
        @Test -public void testPeta()
        -
        -
      • -
      • -
        -

        testPico

        -
        @Test -public void testPico()
        -
        -
      • -
      • -
        -

        testTera

        -
        @Test -public void testTera()
        -
        -
      • -
      • -
        -

        testYocto

        -
        @Test -public void testYocto()
        -
        -
      • -
      • -
        -

        testYotta

        -
        @Test -public void testYotta()
        -
        -
      • -
      • -
        -

        testZepto

        -
        @Test -public void testZepto()
        -
        -
      • -
      • -
        -

        testZetta

        -
        @Test -public void testZetta()
        -
        -
      • -
      • -
        -

        testRonna

        -
        @Test -public void testRonna()
        -
        -
      • -
      • -
        -

        testRonto

        -
        @Test -public void testRonto()
        -
        -
      • -
      • -
        -

        testQuetta

        -
        @Test -public void testQuetta()
        -
        -
      • -
      • -
        -

        testQuecto

        -
        @Test -public void testQuecto()
        -
        -
      • -
      -
      -
    • -
    -
    - -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/TestConverter.Pair.html b/docs/site/testapidocs/javax/measure/test/TestConverter.Pair.html deleted file mode 100644 index 0c171d72..00000000 --- a/docs/site/testapidocs/javax/measure/test/TestConverter.Pair.html +++ /dev/null @@ -1,321 +0,0 @@ - - - - -TestConverter.Pair (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class TestConverter.Pair

    -
    - -
    -
    -
    All Implemented Interfaces:
    -
    UnitConverter
    -
    -
    -
    Enclosing class:
    -
    TestConverter
    -
    -
    -
    public static final class TestConverter.Pair -extends TestConverter
    -
    This class represents converters made up of two or more separate converters (in matrix notation [pair] = [left] x [right]).
    -
    -
    - -
    -
    - -
    - -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/TestConverter.html b/docs/site/testapidocs/javax/measure/test/TestConverter.html deleted file mode 100644 index c2586d41..00000000 --- a/docs/site/testapidocs/javax/measure/test/TestConverter.html +++ /dev/null @@ -1,363 +0,0 @@ - - - - -TestConverter (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class TestConverter

    -
    -
    Object -
    TestConverter
    -
    -
    -
    -
    All Implemented Interfaces:
    -
    UnitConverter
    -
    -
    -
    Direct Known Subclasses:
    -
    MultiplyConverter, TestConverter.Pair
    -
    -
    -
    public abstract class TestConverter -extends Object -implements UnitConverter
    -

    - Test class for our UnitConverter implementations. -

    -
    -
    Version:
    -
    0.8.1, $Date: 2016-02-11 $
    -
    Author:
    -
    Werner Keil
    -
    -
    -
    - -
    -
    - -
    - -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/TestUnit.html b/docs/site/testapidocs/javax/measure/test/TestUnit.html deleted file mode 100644 index 34ed895d..00000000 --- a/docs/site/testapidocs/javax/measure/test/TestUnit.html +++ /dev/null @@ -1,644 +0,0 @@ - - - - -TestUnit (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class TestUnit<Q extends Quantity<Q>>

    -
    -
    Object -
    TestUnit<Q>
    -
    -
    -
    -
    All Implemented Interfaces:
    -
    Unit<Q>
    -
    -
    -
    Direct Known Subclasses:
    -
    AreaUnit, BaseUnit, SpeedUnit, TemperatureUnit, VolumeUnit
    -
    -
    -
    public abstract class TestUnit<Q extends Quantity<Q>> -extends Object -implements Unit<Q>
    -
    -
    Author:
    -
    Werner Keil
    -
    -
    -
    - -
    -
    - -
    - -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/TripLeg.html b/docs/site/testapidocs/javax/measure/test/TripLeg.html deleted file mode 100644 index d77b9aa9..00000000 --- a/docs/site/testapidocs/javax/measure/test/TripLeg.html +++ /dev/null @@ -1,173 +0,0 @@ - - - - -TripLeg (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class TripLeg

    -
    -
    Object -
    TripLeg
    -
    -
    -
    -
    public class TripLeg -extends Object
    -
    -
    Author:
    -
    paul.morrison
    -
    -
    -
    - -
    -
    - -
    - -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/UnitTest.html b/docs/site/testapidocs/javax/measure/test/UnitTest.html deleted file mode 100644 index 4c058263..00000000 --- a/docs/site/testapidocs/javax/measure/test/UnitTest.html +++ /dev/null @@ -1,270 +0,0 @@ - - - - -UnitTest (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class UnitTest

    -
    -
    Object -
    UnitTest
    -
    -
    -
    -
    public class UnitTest -extends Object
    -
    -
    Author:
    -
    Werner
    -
    -
    -
    - -
    -
    - -
    - -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/class-use/BinaryPrefixTest.html b/docs/site/testapidocs/javax/measure/test/class-use/BinaryPrefixTest.html deleted file mode 100644 index 994d8132..00000000 --- a/docs/site/testapidocs/javax/measure/test/class-use/BinaryPrefixTest.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Class javax.measure.test.BinaryPrefixTest (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Class
    javax.measure.test.BinaryPrefixTest

    -
    -No usage of javax.measure.test.BinaryPrefixTest
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/class-use/CalcTripLength.html b/docs/site/testapidocs/javax/measure/test/class-use/CalcTripLength.html deleted file mode 100644 index 5456815e..00000000 --- a/docs/site/testapidocs/javax/measure/test/class-use/CalcTripLength.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Class javax.measure.test.CalcTripLength (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Class
    javax.measure.test.CalcTripLength

    -
    -No usage of javax.measure.test.CalcTripLength
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/class-use/CircleInfo.html b/docs/site/testapidocs/javax/measure/test/class-use/CircleInfo.html deleted file mode 100644 index 3e7aa765..00000000 --- a/docs/site/testapidocs/javax/measure/test/class-use/CircleInfo.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Class javax.measure.test.CircleInfo (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Class
    javax.measure.test.CircleInfo

    -
    -No usage of javax.measure.test.CircleInfo
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/class-use/Conversions.html b/docs/site/testapidocs/javax/measure/test/class-use/Conversions.html deleted file mode 100644 index 96b6fcf6..00000000 --- a/docs/site/testapidocs/javax/measure/test/class-use/Conversions.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Class javax.measure.test.Conversions (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Class
    javax.measure.test.Conversions

    -
    -No usage of javax.measure.test.Conversions
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/class-use/ConverterTest.html b/docs/site/testapidocs/javax/measure/test/class-use/ConverterTest.html deleted file mode 100644 index b533dad9..00000000 --- a/docs/site/testapidocs/javax/measure/test/class-use/ConverterTest.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Class javax.measure.test.ConverterTest (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Class
    javax.measure.test.ConverterTest

    -
    -No usage of javax.measure.test.ConverterTest
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/class-use/DimensionTest.html b/docs/site/testapidocs/javax/measure/test/class-use/DimensionTest.html deleted file mode 100644 index f14c87e8..00000000 --- a/docs/site/testapidocs/javax/measure/test/class-use/DimensionTest.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Class javax.measure.test.DimensionTest (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Class
    javax.measure.test.DimensionTest

    -
    -No usage of javax.measure.test.DimensionTest
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/class-use/ExceptionsTest.html b/docs/site/testapidocs/javax/measure/test/class-use/ExceptionsTest.html deleted file mode 100644 index 43e494fb..00000000 --- a/docs/site/testapidocs/javax/measure/test/class-use/ExceptionsTest.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Class javax.measure.test.ExceptionsTest (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Class
    javax.measure.test.ExceptionsTest

    -
    -No usage of javax.measure.test.ExceptionsTest
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/class-use/MetricPrefixTest.html b/docs/site/testapidocs/javax/measure/test/class-use/MetricPrefixTest.html deleted file mode 100644 index c51d3574..00000000 --- a/docs/site/testapidocs/javax/measure/test/class-use/MetricPrefixTest.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Class javax.measure.test.MetricPrefixTest (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Class
    javax.measure.test.MetricPrefixTest

    -
    -No usage of javax.measure.test.MetricPrefixTest
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/class-use/TestConverter.Pair.html b/docs/site/testapidocs/javax/measure/test/class-use/TestConverter.Pair.html deleted file mode 100644 index fbe902bc..00000000 --- a/docs/site/testapidocs/javax/measure/test/class-use/TestConverter.Pair.html +++ /dev/null @@ -1,87 +0,0 @@ - - - - -Uses of Class javax.measure.test.TestConverter.Pair (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Class
    javax.measure.test.TestConverter.Pair

    -
    -
    Packages that use TestConverter.Pair
    -
    -
    Package
    -
    Description
    - -
     
    -
    -
    - -
    -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/class-use/TestConverter.html b/docs/site/testapidocs/javax/measure/test/class-use/TestConverter.html deleted file mode 100644 index 154481b0..00000000 --- a/docs/site/testapidocs/javax/measure/test/class-use/TestConverter.html +++ /dev/null @@ -1,144 +0,0 @@ - - - - -Uses of Class javax.measure.test.TestConverter (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Class
    javax.measure.test.TestConverter

    -
    -
    Packages that use TestConverter
    -
    -
    Package
    -
    Description
    - -
     
    - -
     
    -
    -
    - -
    -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/class-use/TestUnit.html b/docs/site/testapidocs/javax/measure/test/class-use/TestUnit.html deleted file mode 100644 index cd177cdd..00000000 --- a/docs/site/testapidocs/javax/measure/test/class-use/TestUnit.html +++ /dev/null @@ -1,148 +0,0 @@ - - - - -Uses of Class javax.measure.test.TestUnit (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Class
    javax.measure.test.TestUnit

    -
    -
    Packages that use TestUnit
    -
    -
    Package
    -
    Description
    - -
     
    - -
     
    -
    -
    - -
    -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/class-use/TripLeg.html b/docs/site/testapidocs/javax/measure/test/class-use/TripLeg.html deleted file mode 100644 index 69181cc6..00000000 --- a/docs/site/testapidocs/javax/measure/test/class-use/TripLeg.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Class javax.measure.test.TripLeg (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Class
    javax.measure.test.TripLeg

    -
    -No usage of javax.measure.test.TripLeg
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/class-use/UnitTest.html b/docs/site/testapidocs/javax/measure/test/class-use/UnitTest.html deleted file mode 100644 index ef513156..00000000 --- a/docs/site/testapidocs/javax/measure/test/class-use/UnitTest.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Class javax.measure.test.UnitTest (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Class
    javax.measure.test.UnitTest

    -
    -No usage of javax.measure.test.UnitTest
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/format/MeasurementParseTest.html b/docs/site/testapidocs/javax/measure/test/format/MeasurementParseTest.html deleted file mode 100644 index d25dc876..00000000 --- a/docs/site/testapidocs/javax/measure/test/format/MeasurementParseTest.html +++ /dev/null @@ -1,200 +0,0 @@ - - - - -MeasurementParseTest (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class MeasurementParseTest

    -
    -
    Object -
    MeasurementParseTest
    -
    -
    -
    -
    public class MeasurementParseTest -extends Object
    -
    Measurement Format Tests
    -
    -
    - -
    -
    - -
    - -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/format/QuantityFormatTest.html b/docs/site/testapidocs/javax/measure/test/format/QuantityFormatTest.html deleted file mode 100644 index 5d0144fa..00000000 --- a/docs/site/testapidocs/javax/measure/test/format/QuantityFormatTest.html +++ /dev/null @@ -1,236 +0,0 @@ - - - - -QuantityFormatTest (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class QuantityFormatTest

    -
    -
    Object -
    QuantityFormatTest
    -
    -
    -
    -
    public class QuantityFormatTest -extends Object
    -
    -
    Author:
    -
    Werner Keil
    -
    -
    -
    - -
    -
    - -
    - -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/format/SimpleTestUnitFormat.html b/docs/site/testapidocs/javax/measure/test/format/SimpleTestUnitFormat.html deleted file mode 100644 index 683d36e1..00000000 --- a/docs/site/testapidocs/javax/measure/test/format/SimpleTestUnitFormat.html +++ /dev/null @@ -1,304 +0,0 @@ - - - - -SimpleTestUnitFormat (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class SimpleTestUnitFormat

    -
    -
    Object -
    SimpleTestUnitFormat
    -
    -
    -
    -
    All Implemented Interfaces:
    -
    UnitFormat
    -
    -
    -
    public class SimpleTestUnitFormat -extends Object
    -
    Provides a simple interface for formatting and parsing units.
    -
    -
    Version:
    -
    1.0, February 13, 2021
    -
    Author:
    -
    Werner Keil
    -
    -
    -
    - -
    -
    -
      - -
    • -
      -

      Method Details

      -
        -
      • -
        -

        geInstance

        -
        public static UnitFormat geInstance()
        -
        Returns the instance for formatting and parsing using case insensitive symbols
        -
        -
        Returns:
        -
        the default instance
        -
        -
        -
      • -
      • -
        -

        format

        -
        public Appendable format(Unit<?> unit, - Appendable appendable) - throws IOException
        -
        Formats the specified unit.
        -
        -
        Specified by:
        -
        format in interface UnitFormat
        -
        Parameters:
        -
        unit - the unit to format.
        -
        appendable - the appendable destination.
        -
        Returns:
        -
        The appendable destination passed in as appendable, with formatted text appended.
        -
        Throws:
        -
        IOException - if an error occurs.
        -
        -
        -
      • -
      • -
        -

        label

        -
        public void label(Unit<?> unit, - String label)
        -
        -
      • -
      • -
        -

        getInstance

        -
        public static UnitFormat getInstance()
        -
        Returns the unit format for the default locale.
        -
        -
        Returns:
        -
        the locale format.
        -
        -
        -
      • -
      • -
        -

        parse

        -
        protected Unit<?> parse(CharSequence csq, - int index) - throws MeasurementParseException
        -
        -
        Throws:
        -
        MeasurementParseException
        -
        -
        -
      • -
      • -
        -

        parse

        -
        public final Unit<?> parse(CharSequence csq) - throws MeasurementParseException
        -
        Parses the specified character sequence to produce a unit (convenience method). If the specified sequence is empty, the unitary unit - (dimensionless) is returned.
        -
        -
        Specified by:
        -
        parse in interface UnitFormat
        -
        Parameters:
        -
        csq - the CharSequence to parse.
        -
        Returns:
        -
        the unit parsed from the specified character sub-sequence.
        -
        Throws:
        -
        MeasurementParseException - if any problem occurs while parsing the specified character sequence (e.g. illegal syntax).
        -
        -
        -
      • -
      • -
        -

        parse

        -
        public final Unit<?> parse(CharSequence csq, - ParsePosition pos) - throws MeasurementParseException
        -
        Parses the specified character sequence to produce a unit (convenience method). If the specified sequence is empty, the unitary unit - (dimensionless) is returned.
        -
        -
        Specified by:
        -
        parse in interface UnitFormat
        -
        Parameters:
        -
        csq - the CharSequence to parse.
        -
        pos - a ParsePosition object holding the current parsing index and error parsing index information as described above.
        -
        Returns:
        -
        the unit parsed from the specified character sub-sequence.
        -
        Throws:
        -
        MeasurementParseException - if any problem occurs while parsing the specified character sequence (e.g. illegal syntax).
        -
        -
        -
      • -
      • -
        -

        format

        -
        public final String format(Unit<?> unit)
        -
        Formats an object to produce a string. This is equivalent to
        format(unit, - new StringBuilder()).toString();
        -
        -
        Specified by:
        -
        format in interface UnitFormat
        -
        Parameters:
        -
        unit - The unit to format
        -
        Returns:
        -
        Formatted string.
        -
        Throws:
        -
        IllegalArgumentException - if the Format cannot format the given object
        -
        -
        -
      • -
      -
      -
    • -
    -
    - -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/format/UnitFormatTest.html b/docs/site/testapidocs/javax/measure/test/format/UnitFormatTest.html deleted file mode 100644 index a5395226..00000000 --- a/docs/site/testapidocs/javax/measure/test/format/UnitFormatTest.html +++ /dev/null @@ -1,269 +0,0 @@ - - - - -UnitFormatTest (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class UnitFormatTest

    -
    -
    Object -
    UnitFormatTest
    -
    -
    -
    -
    public class UnitFormatTest -extends Object
    -
    -
    Author:
    -
    Werner Keil
    -
    -
    -
    - -
    -
    - -
    - -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/format/class-use/MeasurementParseTest.html b/docs/site/testapidocs/javax/measure/test/format/class-use/MeasurementParseTest.html deleted file mode 100644 index 1fd82a28..00000000 --- a/docs/site/testapidocs/javax/measure/test/format/class-use/MeasurementParseTest.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Class javax.measure.test.format.MeasurementParseTest (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Class
    javax.measure.test.format.MeasurementParseTest

    -
    -No usage of javax.measure.test.format.MeasurementParseTest
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/format/class-use/QuantityFormatTest.html b/docs/site/testapidocs/javax/measure/test/format/class-use/QuantityFormatTest.html deleted file mode 100644 index b76eb2b3..00000000 --- a/docs/site/testapidocs/javax/measure/test/format/class-use/QuantityFormatTest.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Class javax.measure.test.format.QuantityFormatTest (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Class
    javax.measure.test.format.QuantityFormatTest

    -
    -No usage of javax.measure.test.format.QuantityFormatTest
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/format/class-use/SimpleTestUnitFormat.html b/docs/site/testapidocs/javax/measure/test/format/class-use/SimpleTestUnitFormat.html deleted file mode 100644 index 1c1a6ce9..00000000 --- a/docs/site/testapidocs/javax/measure/test/format/class-use/SimpleTestUnitFormat.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Class javax.measure.test.format.SimpleTestUnitFormat (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Class
    javax.measure.test.format.SimpleTestUnitFormat

    -
    -No usage of javax.measure.test.format.SimpleTestUnitFormat
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/format/class-use/UnitFormatTest.html b/docs/site/testapidocs/javax/measure/test/format/class-use/UnitFormatTest.html deleted file mode 100644 index 08b59b22..00000000 --- a/docs/site/testapidocs/javax/measure/test/format/class-use/UnitFormatTest.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Class javax.measure.test.format.UnitFormatTest (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Class
    javax.measure.test.format.UnitFormatTest

    -
    -No usage of javax.measure.test.format.UnitFormatTest
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/format/package-summary.html b/docs/site/testapidocs/javax/measure/test/format/package-summary.html deleted file mode 100644 index c991253b..00000000 --- a/docs/site/testapidocs/javax/measure/test/format/package-summary.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - -javax.measure.test.format (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Package javax.measure.test.format

    -
    -
    -
    package javax.measure.test.format
    -
    -
    -
    Author:
    -
    Werner
    -
    -
    -
    - -
    -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/format/package-tree.html b/docs/site/testapidocs/javax/measure/test/format/package-tree.html deleted file mode 100644 index 1626c2b3..00000000 --- a/docs/site/testapidocs/javax/measure/test/format/package-tree.html +++ /dev/null @@ -1,79 +0,0 @@ - - - - -javax.measure.test.format Class Hierarchy (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Hierarchy For Package javax.measure.test.format

    -Package Hierarchies: - -
    -
    -

    Class Hierarchy

    - -
    -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/format/package-use.html b/docs/site/testapidocs/javax/measure/test/format/package-use.html deleted file mode 100644 index 8e18f42b..00000000 --- a/docs/site/testapidocs/javax/measure/test/format/package-use.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Package javax.measure.test.format (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Package
    javax.measure.test.format

    -
    -No usage of javax.measure.test.format
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/function/MultiplyConverter.html b/docs/site/testapidocs/javax/measure/test/function/MultiplyConverter.html deleted file mode 100644 index 2a239bdc..00000000 --- a/docs/site/testapidocs/javax/measure/test/function/MultiplyConverter.html +++ /dev/null @@ -1,365 +0,0 @@ - - - - -MultiplyConverter (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class MultiplyConverter

    -
    -
    Object -
    TestConverter -
    MultiplyConverter
    -
    -
    -
    -
    -
    All Implemented Interfaces:
    -
    Comparable<UnitConverter>, UnitConverter
    -
    -
    -
    public final class MultiplyConverter -extends TestConverter -implements Comparable<UnitConverter>
    -

    - This class represents a converter multiplying numeric values by a constant scaling factor (double based). -

    -
    -
    Since:
    -
    2.0
    -
    Version:
    -
    1.1, June 28, 2019
    -
    Author:
    -
    Jean-Marie Dautelle, Werner Keil
    -
    -
    -
    - -
    -
    - -
    - -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/function/class-use/MultiplyConverter.html b/docs/site/testapidocs/javax/measure/test/function/class-use/MultiplyConverter.html deleted file mode 100644 index b0ba9563..00000000 --- a/docs/site/testapidocs/javax/measure/test/function/class-use/MultiplyConverter.html +++ /dev/null @@ -1,87 +0,0 @@ - - - - -Uses of Class javax.measure.test.function.MultiplyConverter (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Class
    javax.measure.test.function.MultiplyConverter

    -
    -
    Packages that use MultiplyConverter
    -
    -
    Package
    -
    Description
    - -
     
    -
    -
    - -
    -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/function/package-summary.html b/docs/site/testapidocs/javax/measure/test/function/package-summary.html deleted file mode 100644 index ca5d5fb3..00000000 --- a/docs/site/testapidocs/javax/measure/test/function/package-summary.html +++ /dev/null @@ -1,108 +0,0 @@ - - - - -javax.measure.test.function (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Package javax.measure.test.function

    -
    -
    -
    package javax.measure.test.function
    -
    - -
    -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/function/package-tree.html b/docs/site/testapidocs/javax/measure/test/function/package-tree.html deleted file mode 100644 index 9fe09595..00000000 --- a/docs/site/testapidocs/javax/measure/test/function/package-tree.html +++ /dev/null @@ -1,80 +0,0 @@ - - - - -javax.measure.test.function Class Hierarchy (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Hierarchy For Package javax.measure.test.function

    -Package Hierarchies: - -
    -
    -

    Class Hierarchy

    - -
    -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/function/package-use.html b/docs/site/testapidocs/javax/measure/test/function/package-use.html deleted file mode 100644 index 0e72c557..00000000 --- a/docs/site/testapidocs/javax/measure/test/function/package-use.html +++ /dev/null @@ -1,87 +0,0 @@ - - - - -Uses of Package javax.measure.test.function (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Package
    javax.measure.test.function

    -
    -
    Packages that use javax.measure.test.function
    -
    -
    Package
    -
    Description
    - -
     
    -
    -
    - -
    -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/package-summary.html b/docs/site/testapidocs/javax/measure/test/package-summary.html deleted file mode 100644 index 9eb44a15..00000000 --- a/docs/site/testapidocs/javax/measure/test/package-summary.html +++ /dev/null @@ -1,142 +0,0 @@ - - - - -javax.measure.test (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Package javax.measure.test

    -
    -
    -
    package javax.measure.test
    -
    -
    -
    Author:
    -
    Werner
    -
    -
    -
    - -
    -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/package-tree.html b/docs/site/testapidocs/javax/measure/test/package-tree.html deleted file mode 100644 index a4a39bff..00000000 --- a/docs/site/testapidocs/javax/measure/test/package-tree.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - -javax.measure.test Class Hierarchy (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Hierarchy For Package javax.measure.test

    -Package Hierarchies: - -
    -
    -

    Class Hierarchy

    - -
    -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/package-use.html b/docs/site/testapidocs/javax/measure/test/package-use.html deleted file mode 100644 index d26bdb80..00000000 --- a/docs/site/testapidocs/javax/measure/test/package-use.html +++ /dev/null @@ -1,133 +0,0 @@ - - - - -Uses of Package javax.measure.test (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Package
    javax.measure.test

    -
    -
    Packages that use javax.measure.test
    - -
    - -
    -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/quantity/AreaQuantity.html b/docs/site/testapidocs/javax/measure/test/quantity/AreaQuantity.html deleted file mode 100644 index eff229cd..00000000 --- a/docs/site/testapidocs/javax/measure/test/quantity/AreaQuantity.html +++ /dev/null @@ -1,489 +0,0 @@ - - - - -AreaQuantity (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class AreaQuantity

    -
    -
    Object -
    TestQuantity<Area> -
    AreaQuantity
    -
    -
    -
    -
    -
    All Implemented Interfaces:
    -
    Comparable<Quantity<Area>>, Quantity<Area>, Area
    -
    -
    -
    public class AreaQuantity -extends TestQuantity<Area> -implements Area
    -
    -
    Version:
    -
    0.7
    -
    Author:
    -
    Werner Keil
    -
    -
    -
    - -
    -
    - -
    - -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/quantity/AreaQuantityTest.html b/docs/site/testapidocs/javax/measure/test/quantity/AreaQuantityTest.html deleted file mode 100644 index 6178463f..00000000 --- a/docs/site/testapidocs/javax/measure/test/quantity/AreaQuantityTest.html +++ /dev/null @@ -1,357 +0,0 @@ - - - - -AreaQuantityTest (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class AreaQuantityTest

    -
    -
    Object -
    AreaQuantityTest
    -
    -
    -
    -
    public class AreaQuantityTest -extends Object
    -
    -
    Author:
    -
    Werner Keil
    -
    -
    -
    - -
    -
    -
      - -
    • -
      -

      Constructor Details

      - -
      -
    • - -
    • -
      -

      Method Details

      - -
      -
    • -
    -
    - -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/quantity/CircleInfo.html b/docs/site/testapidocs/javax/measure/test/quantity/CircleInfo.html deleted file mode 100644 index 62080e66..00000000 --- a/docs/site/testapidocs/javax/measure/test/quantity/CircleInfo.html +++ /dev/null @@ -1,169 +0,0 @@ - - - - -CircleInfo (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class CircleInfo

    -
    -
    Object -
    CircleInfo
    -
    -
    -
    -
    public class CircleInfo -extends Object
    -
    -
    - -
    -
    -
      - -
    • -
      -

      Constructor Details

      - -
      -
    • - -
    • -
      -

      Method Details

      -
        -
      • -
        -

        main

        -
        public static void main(String[] args)
        -
        -
        Parameters:
        -
        args - arguments
        -
        -
        -
      • -
      -
      -
    • -
    -
    - -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/quantity/DistanceQuantity.html b/docs/site/testapidocs/javax/measure/test/quantity/DistanceQuantity.html deleted file mode 100644 index cf3d5651..00000000 --- a/docs/site/testapidocs/javax/measure/test/quantity/DistanceQuantity.html +++ /dev/null @@ -1,498 +0,0 @@ - - - - -DistanceQuantity (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class DistanceQuantity

    -
    -
    Object -
    TestQuantity<Length> -
    DistanceQuantity
    -
    -
    -
    -
    -
    All Implemented Interfaces:
    -
    Comparable<Quantity<Length>>, Quantity<Length>, Length
    -
    -
    -
    public class DistanceQuantity -extends TestQuantity<Length> -implements Length
    -
    -
    Version:
    -
    0.7
    -
    Author:
    -
    Werner Keil
    -
    -
    -
    - -
    -
    - -
    - -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/quantity/DistanceQuantityTest.html b/docs/site/testapidocs/javax/measure/test/quantity/DistanceQuantityTest.html deleted file mode 100644 index 8ffd08af..00000000 --- a/docs/site/testapidocs/javax/measure/test/quantity/DistanceQuantityTest.html +++ /dev/null @@ -1,346 +0,0 @@ - - - - -DistanceQuantityTest (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class DistanceQuantityTest

    -
    -
    Object -
    DistanceQuantityTest
    -
    -
    -
    -
    public class DistanceQuantityTest -extends Object
    -
    -
    Author:
    -
    Werner Keil
    -
    -
    -
    - -
    -
    -
      - -
    • -
      -

      Constructor Details

      - -
      -
    • - -
    • -
      -

      Method Details

      -
        -
      • -
        -

        setUp

        -
        @BeforeEach -public void setUp()
        -
        -
      • -
      • -
        -

        testAreaQuantity

        -
        @Test -public void testAreaQuantity()
        -
        -
      • -
      • -
        -

        testAdd

        -
        @Test -public void testAdd()
        -
        -
      • -
      • -
        -

        testSubtract

        -
        @Test -public void testSubtract()
        -
        -
      • -
      • -
        -

        testEq

        -
        @Test -public void testEq()
        -
        -
      • -
      • -
        -

        testGt

        -
        @Test -public void testGt()
        -
        -
      • -
      • -
        -

        testLt

        -
        @Test -public void testLt()
        -
        -
      • -
      • -
        -

        testGe

        -
        @Test -public void testGe()
        -
        -
      • -
      • -
        -

        testLe

        -
        @Test -public void testLe()
        -
        -
      • -
      • -
        -

        testMultiplyDouble

        -
        @Test -public void testMultiplyDouble()
        -
        -
      • -
      • -
        -

        testDivideDouble

        -
        @Test -public void testDivideDouble()
        -
        -
      • -
      • -
        -

        testMultiplyDistanceQuantity

        -
        @Test -public void testMultiplyDistanceQuantity()
        -
        -
      • -
      • -
        -

        testConvert

        -
        @Test -public void testConvert()
        -
        -
      • -
      • -
        -

        testShowInUnits

        -
        @Test -public void testShowInUnits()
        -
        -
      • -
      • -
        -

        testToSystemUnit

        -
        @Test -public void testToSystemUnit()
        -
        -
      • -
      • -
        -

        testNegate

        -
        @Test -public void testNegate()
        -
        -
      • -
      • -
        -

        testAbsolute

        -
        @Test -public void testAbsolute()
        -
        -
      • -
      -
      -
    • -
    -
    - -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/quantity/TemperatureQuantity.html b/docs/site/testapidocs/javax/measure/test/quantity/TemperatureQuantity.html deleted file mode 100644 index f781dfb6..00000000 --- a/docs/site/testapidocs/javax/measure/test/quantity/TemperatureQuantity.html +++ /dev/null @@ -1,513 +0,0 @@ - - - - -TemperatureQuantity (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class TemperatureQuantity

    -
    -
    Object -
    TestQuantity<Temperature> -
    TemperatureQuantity
    -
    -
    -
    -
    -
    All Implemented Interfaces:
    -
    Comparable<Quantity<Temperature>>, Quantity<Temperature>, Temperature
    -
    -
    -
    public final class TemperatureQuantity -extends TestQuantity<Temperature> -implements Temperature
    -
    -
    Version:
    -
    1.3, $Date: 2018-12-17 $
    -
    Author:
    -
    Werner Keil
    -
    -
    -
    - -
    -
    - -
    - -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/quantity/TemperatureQuantityTest.html b/docs/site/testapidocs/javax/measure/test/quantity/TemperatureQuantityTest.html deleted file mode 100644 index 7f564be9..00000000 --- a/docs/site/testapidocs/javax/measure/test/quantity/TemperatureQuantityTest.html +++ /dev/null @@ -1,357 +0,0 @@ - - - - -TemperatureQuantityTest (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class TemperatureQuantityTest

    -
    -
    Object -
    TemperatureQuantityTest
    -
    -
    -
    -
    public class TemperatureQuantityTest -extends Object
    -
    -
    Author:
    -
    Werner Keil
    -
    -
    -
    - -
    -
    -
      - -
    • -
      -

      Constructor Details

      - -
      -
    • - -
    • -
      -

      Method Details

      -
        -
      • -
        -

        setUp

        -
        @BeforeEach -public void setUp()
        -
        -
      • -
      • -
        -

        testQuantity

        -
        @Test -public void testQuantity()
        -
        -
      • -
      • -
        -

        testAdd

        -
        @Test -public void testAdd()
        -
        -
      • -
      • -
        -

        testSubtract

        -
        @Test -public void testSubtract()
        -
        -
      • -
      • -
        -

        testEq

        -
        @Test -public void testEq()
        -
        -
      • -
      • -
        -

        testGt

        -
        @Test -public void testGt()
        -
        -
      • -
      • -
        -

        testLt

        -
        @Test -public void testLt()
        -
        -
      • -
      • -
        -

        testGe

        -
        @Test -public void testGe()
        -
        -
      • -
      • -
        -

        testLe

        -
        @Test -public void testLe()
        -
        -
      • -
      • -
        -

        testMultiplyDouble

        -
        @Test -public void testMultiplyDouble()
        -
        -
      • -
      • -
        -

        testDivideDouble

        -
        @Test -public void testDivideDouble()
        -
        -
      • -
      • -
        -

        testConvert

        -
        @Test -public void testConvert()
        -
        -
      • -
      • -
        -

        testToSystemUnit

        -
        @Test -public void testToSystemUnit()
        -
        -
      • -
      • -
        -

        testNegate

        -
        @Test -public void testNegate()
        -
        -
      • -
      • -
        -

        testScale

        -
        @Test -public void testScale()
        -
        -
      • -
      • -
        -

        testLevelCelsius

        -
        @Test -public void testLevelCelsius()
        -
        -
      • -
      • -
        -

        testLevelFahrenheit

        -
        @Test -public void testLevelFahrenheit()
        -
        -
      • -
      • -
        -

        testAbsolute

        -
        @Test -public void testAbsolute()
        -
        -
      • -
      -
      -
    • -
    -
    - -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/quantity/TestQuantities.html b/docs/site/testapidocs/javax/measure/test/quantity/TestQuantities.html deleted file mode 100644 index 748f0bc2..00000000 --- a/docs/site/testapidocs/javax/measure/test/quantity/TestQuantities.html +++ /dev/null @@ -1,162 +0,0 @@ - - - - -TestQuantities (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class TestQuantities

    -
    -
    Object -
    TestQuantities
    -
    -
    -
    -
    public final class TestQuantities -extends Object
    -
    Singleton class for accessing Quantity instances.
    -
    -
    Since:
    -
    1.0
    -
    Author:
    -
    werner, otaviojava
    -
    -
    -
    - -
    -
    -
      - -
    • -
      -

      Method Details

      -
        -
      • -
        -

        getQuantity

        -
        public static <Q extends Quantity<Q>> Quantity<Q> getQuantity(Number value, - Unit<Q> unit)
        -
        Returns the scalar measurement. When the Number was BigDecimal or BigInteger will use DecimalQuantity, when the - Number was Double will DoubleQuantity otherwise NumberQuantity. in the specified unit.
        -
        -
        Type Parameters:
        -
        Q - The type of the quantity.
        -
        Parameters:
        -
        value - the measurement value.
        -
        unit - the measurement unit.
        -
        Returns:
        -
        the corresponding numeric measurement.
        -
        Throws:
        -
        NullPointerException - when value or unit were null
        -
        -
        -
      • -
      -
      -
    • -
    -
    - -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/quantity/TestQuantity.html b/docs/site/testapidocs/javax/measure/test/quantity/TestQuantity.html deleted file mode 100644 index 2baf0a60..00000000 --- a/docs/site/testapidocs/javax/measure/test/quantity/TestQuantity.html +++ /dev/null @@ -1,462 +0,0 @@ - - - - -TestQuantity (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class TestQuantity<Q extends Quantity<Q>>

    -
    -
    Object -
    TestQuantity<Q>
    -
    -
    -
    -
    All Implemented Interfaces:
    -
    Comparable<Quantity<Q>>, Quantity<Q>
    -
    -
    -
    Direct Known Subclasses:
    -
    AreaQuantity, DistanceQuantity, TemperatureQuantity, TimeQuantity, VolumeQuantity
    -
    -
    -
    public abstract class TestQuantity<Q extends Quantity<Q>> -extends Object -implements Quantity<Q>, Comparable<Quantity<Q>>
    -
    -
    Since:
    -
    1.0
    -
    Version:
    -
    2.0
    -
    Author:
    -
    Werner Keil
    -
    -
    -
    - -
    -
    - -
    - -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/quantity/TimeQuantity.html b/docs/site/testapidocs/javax/measure/test/quantity/TimeQuantity.html deleted file mode 100644 index a1a6ce5e..00000000 --- a/docs/site/testapidocs/javax/measure/test/quantity/TimeQuantity.html +++ /dev/null @@ -1,432 +0,0 @@ - - - - -TimeQuantity (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class TimeQuantity

    -
    -
    Object -
    TestQuantity<Time> -
    TimeQuantity
    -
    -
    -
    -
    -
    All Implemented Interfaces:
    -
    Comparable<Quantity<Time>>, Quantity<Time>
    -
    -
    -
    public class TimeQuantity -extends TestQuantity<Time>
    -
    -
    Version:
    -
    0.6
    -
    Author:
    -
    Werner Keil
    -
    -
    -
    - -
    -
    - -
    - -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/quantity/VolumeQuantity.html b/docs/site/testapidocs/javax/measure/test/quantity/VolumeQuantity.html deleted file mode 100644 index 91d3555c..00000000 --- a/docs/site/testapidocs/javax/measure/test/quantity/VolumeQuantity.html +++ /dev/null @@ -1,450 +0,0 @@ - - - - -VolumeQuantity (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class VolumeQuantity

    -
    -
    Object -
    TestQuantity<Volume> -
    VolumeQuantity
    -
    -
    -
    -
    -
    All Implemented Interfaces:
    -
    Comparable<Quantity<Volume>>, Quantity<Volume>
    -
    -
    -
    public class VolumeQuantity -extends TestQuantity<Volume>
    -
    -
    Version:
    -
    0.6
    -
    Author:
    -
    Werner Keil
    -
    -
    -
    - -
    -
    - -
    - -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/quantity/class-use/AreaQuantity.html b/docs/site/testapidocs/javax/measure/test/quantity/class-use/AreaQuantity.html deleted file mode 100644 index 5c079a69..00000000 --- a/docs/site/testapidocs/javax/measure/test/quantity/class-use/AreaQuantity.html +++ /dev/null @@ -1,141 +0,0 @@ - - - - -Uses of Class javax.measure.test.quantity.AreaQuantity (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Class
    javax.measure.test.quantity.AreaQuantity

    -
    -
    Packages that use AreaQuantity
    -
    -
    Package
    -
    Description
    - -
     
    -
    -
    - -
    -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/quantity/class-use/AreaQuantityTest.html b/docs/site/testapidocs/javax/measure/test/quantity/class-use/AreaQuantityTest.html deleted file mode 100644 index 012c1b40..00000000 --- a/docs/site/testapidocs/javax/measure/test/quantity/class-use/AreaQuantityTest.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Class javax.measure.test.quantity.AreaQuantityTest (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Class
    javax.measure.test.quantity.AreaQuantityTest

    -
    -No usage of javax.measure.test.quantity.AreaQuantityTest
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/quantity/class-use/CircleInfo.html b/docs/site/testapidocs/javax/measure/test/quantity/class-use/CircleInfo.html deleted file mode 100644 index a9b37a8f..00000000 --- a/docs/site/testapidocs/javax/measure/test/quantity/class-use/CircleInfo.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Class javax.measure.test.quantity.CircleInfo (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Class
    javax.measure.test.quantity.CircleInfo

    -
    -No usage of javax.measure.test.quantity.CircleInfo
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/quantity/class-use/DistanceQuantity.html b/docs/site/testapidocs/javax/measure/test/quantity/class-use/DistanceQuantity.html deleted file mode 100644 index daf69fa6..00000000 --- a/docs/site/testapidocs/javax/measure/test/quantity/class-use/DistanceQuantity.html +++ /dev/null @@ -1,174 +0,0 @@ - - - - -Uses of Class javax.measure.test.quantity.DistanceQuantity (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Class
    javax.measure.test.quantity.DistanceQuantity

    -
    -
    Packages that use DistanceQuantity
    -
    -
    Package
    -
    Description
    - -
     
    - -
     
    -
    -
    - -
    -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/quantity/class-use/DistanceQuantityTest.html b/docs/site/testapidocs/javax/measure/test/quantity/class-use/DistanceQuantityTest.html deleted file mode 100644 index 1ee1f104..00000000 --- a/docs/site/testapidocs/javax/measure/test/quantity/class-use/DistanceQuantityTest.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Class javax.measure.test.quantity.DistanceQuantityTest (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Class
    javax.measure.test.quantity.DistanceQuantityTest

    -
    -No usage of javax.measure.test.quantity.DistanceQuantityTest
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/quantity/class-use/TemperatureQuantity.html b/docs/site/testapidocs/javax/measure/test/quantity/class-use/TemperatureQuantity.html deleted file mode 100644 index cf2c1cee..00000000 --- a/docs/site/testapidocs/javax/measure/test/quantity/class-use/TemperatureQuantity.html +++ /dev/null @@ -1,111 +0,0 @@ - - - - -Uses of Class javax.measure.test.quantity.TemperatureQuantity (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Class
    javax.measure.test.quantity.TemperatureQuantity

    -
    -
    Packages that use TemperatureQuantity
    -
    -
    Package
    -
    Description
    - -
     
    -
    -
    - -
    -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/quantity/class-use/TemperatureQuantityTest.html b/docs/site/testapidocs/javax/measure/test/quantity/class-use/TemperatureQuantityTest.html deleted file mode 100644 index dd969863..00000000 --- a/docs/site/testapidocs/javax/measure/test/quantity/class-use/TemperatureQuantityTest.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Class javax.measure.test.quantity.TemperatureQuantityTest (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Class
    javax.measure.test.quantity.TemperatureQuantityTest

    -
    -No usage of javax.measure.test.quantity.TemperatureQuantityTest
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/quantity/class-use/TestQuantities.html b/docs/site/testapidocs/javax/measure/test/quantity/class-use/TestQuantities.html deleted file mode 100644 index ad4746f8..00000000 --- a/docs/site/testapidocs/javax/measure/test/quantity/class-use/TestQuantities.html +++ /dev/null @@ -1,62 +0,0 @@ - - - - -Uses of Class javax.measure.test.quantity.TestQuantities (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Class
    javax.measure.test.quantity.TestQuantities

    -
    -No usage of javax.measure.test.quantity.TestQuantities
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/quantity/class-use/TestQuantity.html b/docs/site/testapidocs/javax/measure/test/quantity/class-use/TestQuantity.html deleted file mode 100644 index c71d16ae..00000000 --- a/docs/site/testapidocs/javax/measure/test/quantity/class-use/TestQuantity.html +++ /dev/null @@ -1,156 +0,0 @@ - - - - -Uses of Class javax.measure.test.quantity.TestQuantity (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Class
    javax.measure.test.quantity.TestQuantity

    -
    -
    Packages that use TestQuantity
    -
    -
    Package
    -
    Description
    - -
     
    -
    -
    - -
    -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/quantity/class-use/TimeQuantity.html b/docs/site/testapidocs/javax/measure/test/quantity/class-use/TimeQuantity.html deleted file mode 100644 index 9d54a11e..00000000 --- a/docs/site/testapidocs/javax/measure/test/quantity/class-use/TimeQuantity.html +++ /dev/null @@ -1,129 +0,0 @@ - - - - -Uses of Class javax.measure.test.quantity.TimeQuantity (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Class
    javax.measure.test.quantity.TimeQuantity

    -
    -
    Packages that use TimeQuantity
    -
    -
    Package
    -
    Description
    - -
     
    -
    -
    - -
    -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/quantity/class-use/VolumeQuantity.html b/docs/site/testapidocs/javax/measure/test/quantity/class-use/VolumeQuantity.html deleted file mode 100644 index a38a0a7c..00000000 --- a/docs/site/testapidocs/javax/measure/test/quantity/class-use/VolumeQuantity.html +++ /dev/null @@ -1,135 +0,0 @@ - - - - -Uses of Class javax.measure.test.quantity.VolumeQuantity (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Class
    javax.measure.test.quantity.VolumeQuantity

    -
    -
    Packages that use VolumeQuantity
    -
    -
    Package
    -
    Description
    - -
     
    -
    -
    - -
    -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/quantity/package-summary.html b/docs/site/testapidocs/javax/measure/test/quantity/package-summary.html deleted file mode 100644 index 6322a49f..00000000 --- a/docs/site/testapidocs/javax/measure/test/quantity/package-summary.html +++ /dev/null @@ -1,127 +0,0 @@ - - - - -javax.measure.test.quantity (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Package javax.measure.test.quantity

    -
    -
    -
    package javax.measure.test.quantity
    -
    - -
    -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/quantity/package-tree.html b/docs/site/testapidocs/javax/measure/test/quantity/package-tree.html deleted file mode 100644 index 87cfe770..00000000 --- a/docs/site/testapidocs/javax/measure/test/quantity/package-tree.html +++ /dev/null @@ -1,89 +0,0 @@ - - - - -javax.measure.test.quantity Class Hierarchy (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Hierarchy For Package javax.measure.test.quantity

    -Package Hierarchies: - -
    -
    -

    Class Hierarchy

    - -
    -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/quantity/package-use.html b/docs/site/testapidocs/javax/measure/test/quantity/package-use.html deleted file mode 100644 index 530fd82c..00000000 --- a/docs/site/testapidocs/javax/measure/test/quantity/package-use.html +++ /dev/null @@ -1,107 +0,0 @@ - - - - -Uses of Package javax.measure.test.quantity (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Package
    javax.measure.test.quantity

    -
    -
    Packages that use javax.measure.test.quantity
    -
    -
    Package
    -
    Description
    - -
     
    - -
     
    -
    -
    - -
    -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/unit/AreaUnit.html b/docs/site/testapidocs/javax/measure/test/unit/AreaUnit.html deleted file mode 100644 index ed76abbb..00000000 --- a/docs/site/testapidocs/javax/measure/test/unit/AreaUnit.html +++ /dev/null @@ -1,259 +0,0 @@ - - - - -AreaUnit (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class AreaUnit

    -
    -
    Object -
    TestUnit<Area> -
    AreaUnit
    -
    -
    -
    -
    -
    All Implemented Interfaces:
    -
    Unit<Area>
    -
    -
    -
    public class AreaUnit -extends TestUnit<Area>
    -
    -
    Author:
    -
    Werner Keil
    -
    -
    -
    - -
    -
    - -
    - -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/unit/BaseUnit.html b/docs/site/testapidocs/javax/measure/test/unit/BaseUnit.html deleted file mode 100644 index c3506e42..00000000 --- a/docs/site/testapidocs/javax/measure/test/unit/BaseUnit.html +++ /dev/null @@ -1,309 +0,0 @@ - - - - -BaseUnit (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class BaseUnit<Q extends Quantity<Q>>

    -
    -
    Object -
    TestUnit<Q> -
    BaseUnit<Q>
    -
    -
    -
    -
    -
    Type Parameters:
    -
    Q - The type of the quantity measured by this unit.
    -
    -
    -
    All Implemented Interfaces:
    -
    Unit<Q>
    -
    -
    -
    Direct Known Subclasses:
    -
    DistanceUnit, MassUnit, TimeUnit
    -
    -
    -
    public class BaseUnit<Q extends Quantity<Q>> -extends TestUnit<Q>
    -
    Building blocks on top of which all others units are created. Base units are always unscaled metric units. - -

    - When using the standard model (default), all seven base units are dimensionally independent. -

    -
    -
    Since:
    -
    1.0
    -
    Version:
    -
    1.1
    -
    Author:
    -
    Jean-Marie Dautelle, Werner Keil
    -
    See Also:
    -
    - -
    -
    -
    -
    - -
    -
    - -
    - -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/unit/DistanceUnit.html b/docs/site/testapidocs/javax/measure/test/unit/DistanceUnit.html deleted file mode 100644 index 3947b099..00000000 --- a/docs/site/testapidocs/javax/measure/test/unit/DistanceUnit.html +++ /dev/null @@ -1,316 +0,0 @@ - - - - -DistanceUnit (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class DistanceUnit

    -
    -
    Object -
    TestUnit<Q> -
    BaseUnit<Length> -
    DistanceUnit
    -
    -
    -
    -
    -
    -
    All Implemented Interfaces:
    -
    Unit<Length>
    -
    -
    -
    public class DistanceUnit -extends BaseUnit<Length>
    -
    -
    Author:
    -
    Werner Keil
    -
    -
    -
    - -
    -
    - -
    - -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/unit/MassUnit.html b/docs/site/testapidocs/javax/measure/test/unit/MassUnit.html deleted file mode 100644 index f0bfb609..00000000 --- a/docs/site/testapidocs/javax/measure/test/unit/MassUnit.html +++ /dev/null @@ -1,244 +0,0 @@ - - - - -MassUnit (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class MassUnit

    -
    -
    Object -
    TestUnit<Q> -
    BaseUnit<Mass> -
    MassUnit
    -
    -
    -
    -
    -
    -
    All Implemented Interfaces:
    -
    Unit<Mass>
    -
    -
    -
    public class MassUnit -extends BaseUnit<Mass>
    -
    -
    Author:
    -
    Werner Keil
    -
    -
    -
    - -
    -
    - -
    - -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/unit/SpeedUnit.html b/docs/site/testapidocs/javax/measure/test/unit/SpeedUnit.html deleted file mode 100644 index ae803ca0..00000000 --- a/docs/site/testapidocs/javax/measure/test/unit/SpeedUnit.html +++ /dev/null @@ -1,239 +0,0 @@ - - - - -SpeedUnit (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class SpeedUnit

    -
    -
    Object -
    TestUnit<Speed> -
    SpeedUnit
    -
    -
    -
    -
    -
    All Implemented Interfaces:
    -
    Unit<Speed>
    -
    -
    -
    public class SpeedUnit -extends TestUnit<Speed>
    -
    -
    Author:
    -
    Werner Keil
    -
    -
    -
    - -
    -
    - -
    - -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/unit/TemperatureUnit.html b/docs/site/testapidocs/javax/measure/test/unit/TemperatureUnit.html deleted file mode 100644 index d7220096..00000000 --- a/docs/site/testapidocs/javax/measure/test/unit/TemperatureUnit.html +++ /dev/null @@ -1,494 +0,0 @@ - - - - -TemperatureUnit (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class TemperatureUnit

    -
    -
    Object -
    TestUnit<Temperature> -
    TemperatureUnit
    -
    -
    -
    -
    -
    All Implemented Interfaces:
    -
    Unit<Temperature>
    -
    -
    -
    public class TemperatureUnit -extends TestUnit<Temperature>
    -
    -
    Version:
    -
    0.7, $Date: 2019-02-06 $
    -
    Author:
    -
    Werner Keil
    -
    -
    -
    - -
    -
    - -
    - -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/unit/TimeUnit.html b/docs/site/testapidocs/javax/measure/test/unit/TimeUnit.html deleted file mode 100644 index 433c1939..00000000 --- a/docs/site/testapidocs/javax/measure/test/unit/TimeUnit.html +++ /dev/null @@ -1,256 +0,0 @@ - - - - -TimeUnit (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class TimeUnit

    -
    -
    Object -
    TestUnit<Q> -
    BaseUnit<Time> -
    TimeUnit
    -
    -
    -
    -
    -
    -
    All Implemented Interfaces:
    -
    Unit<Time>
    -
    -
    -
    public class TimeUnit -extends BaseUnit<Time>
    -
    -
    Version:
    -
    0.2
    -
    Author:
    -
    Werner Keil
    -
    -
    -
    - -
    -
    - -
    - -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/unit/VolumeUnit.html b/docs/site/testapidocs/javax/measure/test/unit/VolumeUnit.html deleted file mode 100644 index b7d4a719..00000000 --- a/docs/site/testapidocs/javax/measure/test/unit/VolumeUnit.html +++ /dev/null @@ -1,269 +0,0 @@ - - - - -VolumeUnit (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    -
    - -
    - -

    Class VolumeUnit

    -
    -
    Object -
    TestUnit<Volume> -
    VolumeUnit
    -
    -
    -
    -
    -
    All Implemented Interfaces:
    -
    Unit<Volume>
    -
    -
    -
    public class VolumeUnit -extends TestUnit<Volume>
    -
    -
    Author:
    -
    Werner Keil
    -
    -
    -
    - -
    -
    - -
    - -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/unit/class-use/AreaUnit.html b/docs/site/testapidocs/javax/measure/test/unit/class-use/AreaUnit.html deleted file mode 100644 index addc8dbb..00000000 --- a/docs/site/testapidocs/javax/measure/test/unit/class-use/AreaUnit.html +++ /dev/null @@ -1,129 +0,0 @@ - - - - -Uses of Class javax.measure.test.unit.AreaUnit (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Class
    javax.measure.test.unit.AreaUnit

    -
    -
    Packages that use AreaUnit
    -
    -
    Package
    -
    Description
    - -
     
    - -
     
    -
    -
    - -
    -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/unit/class-use/BaseUnit.html b/docs/site/testapidocs/javax/measure/test/unit/class-use/BaseUnit.html deleted file mode 100644 index acdce79b..00000000 --- a/docs/site/testapidocs/javax/measure/test/unit/class-use/BaseUnit.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - -Uses of Class javax.measure.test.unit.BaseUnit (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Class
    javax.measure.test.unit.BaseUnit

    -
    -
    Packages that use BaseUnit
    -
    -
    Package
    -
    Description
    - -
     
    -
    -
    - -
    -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/unit/class-use/DistanceUnit.html b/docs/site/testapidocs/javax/measure/test/unit/class-use/DistanceUnit.html deleted file mode 100644 index 8bd1f92a..00000000 --- a/docs/site/testapidocs/javax/measure/test/unit/class-use/DistanceUnit.html +++ /dev/null @@ -1,156 +0,0 @@ - - - - -Uses of Class javax.measure.test.unit.DistanceUnit (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Class
    javax.measure.test.unit.DistanceUnit

    -
    -
    Packages that use DistanceUnit
    -
    -
    Package
    -
    Description
    - -
     
    - -
     
    -
    -
    - -
    -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/unit/class-use/MassUnit.html b/docs/site/testapidocs/javax/measure/test/unit/class-use/MassUnit.html deleted file mode 100644 index 71c54d05..00000000 --- a/docs/site/testapidocs/javax/measure/test/unit/class-use/MassUnit.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - -Uses of Class javax.measure.test.unit.MassUnit (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Class
    javax.measure.test.unit.MassUnit

    -
    -
    Packages that use MassUnit
    -
    -
    Package
    -
    Description
    - -
     
    -
    -
    - -
    -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/unit/class-use/SpeedUnit.html b/docs/site/testapidocs/javax/measure/test/unit/class-use/SpeedUnit.html deleted file mode 100644 index e766dc96..00000000 --- a/docs/site/testapidocs/javax/measure/test/unit/class-use/SpeedUnit.html +++ /dev/null @@ -1,93 +0,0 @@ - - - - -Uses of Class javax.measure.test.unit.SpeedUnit (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Class
    javax.measure.test.unit.SpeedUnit

    -
    -
    Packages that use SpeedUnit
    -
    -
    Package
    -
    Description
    - -
     
    -
    -
    - -
    -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/unit/class-use/TemperatureUnit.html b/docs/site/testapidocs/javax/measure/test/unit/class-use/TemperatureUnit.html deleted file mode 100644 index 7fb774f5..00000000 --- a/docs/site/testapidocs/javax/measure/test/unit/class-use/TemperatureUnit.html +++ /dev/null @@ -1,157 +0,0 @@ - - - - -Uses of Class javax.measure.test.unit.TemperatureUnit (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Class
    javax.measure.test.unit.TemperatureUnit

    -
    -
    Packages that use TemperatureUnit
    -
    -
    Package
    -
    Description
    - -
     
    - -
     
    -
    -
    - -
    -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/unit/class-use/TimeUnit.html b/docs/site/testapidocs/javax/measure/test/unit/class-use/TimeUnit.html deleted file mode 100644 index cbc549e3..00000000 --- a/docs/site/testapidocs/javax/measure/test/unit/class-use/TimeUnit.html +++ /dev/null @@ -1,122 +0,0 @@ - - - - -Uses of Class javax.measure.test.unit.TimeUnit (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Class
    javax.measure.test.unit.TimeUnit

    -
    -
    Packages that use TimeUnit
    -
    -
    Package
    -
    Description
    - -
     
    - -
     
    -
    -
    - -
    -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/unit/class-use/VolumeUnit.html b/docs/site/testapidocs/javax/measure/test/unit/class-use/VolumeUnit.html deleted file mode 100644 index 3abfd5a5..00000000 --- a/docs/site/testapidocs/javax/measure/test/unit/class-use/VolumeUnit.html +++ /dev/null @@ -1,132 +0,0 @@ - - - - -Uses of Class javax.measure.test.unit.VolumeUnit (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Class
    javax.measure.test.unit.VolumeUnit

    -
    -
    Packages that use VolumeUnit
    -
    -
    Package
    -
    Description
    - -
     
    - -
     
    -
    -
    - -
    -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/unit/package-summary.html b/docs/site/testapidocs/javax/measure/test/unit/package-summary.html deleted file mode 100644 index 25283793..00000000 --- a/docs/site/testapidocs/javax/measure/test/unit/package-summary.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - -javax.measure.test.unit (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Package javax.measure.test.unit

    -
    -
    -
    package javax.measure.test.unit
    -
    - -
    -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/unit/package-tree.html b/docs/site/testapidocs/javax/measure/test/unit/package-tree.html deleted file mode 100644 index f2634be9..00000000 --- a/docs/site/testapidocs/javax/measure/test/unit/package-tree.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - -javax.measure.test.unit Class Hierarchy (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Hierarchy For Package javax.measure.test.unit

    -Package Hierarchies: - -
    -
    -

    Class Hierarchy

    - -
    -
    - -
    -
    - - diff --git a/docs/site/testapidocs/javax/measure/test/unit/package-use.html b/docs/site/testapidocs/javax/measure/test/unit/package-use.html deleted file mode 100644 index a573fc80..00000000 --- a/docs/site/testapidocs/javax/measure/test/unit/package-use.html +++ /dev/null @@ -1,121 +0,0 @@ - - - - -Uses of Package javax.measure.test.unit (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - -
    - -
    -
    -
    -

    Uses of Package
    javax.measure.test.unit

    -
    -
    Packages that use javax.measure.test.unit
    -
    -
    Package
    -
    Description
    - -
     
    - -
     
    -
    -
    - -
    -
    - -
    -
    - - diff --git a/docs/site/testapidocs/jquery-ui.overrides.css b/docs/site/testapidocs/jquery-ui.overrides.css deleted file mode 100644 index facf852c..00000000 --- a/docs/site/testapidocs/jquery-ui.overrides.css +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Copyright (c) 2020, 2022, 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; - border: 1px solid #F8981D; -} diff --git a/docs/site/testapidocs/jquery/external/jquery/jquery.js b/docs/site/testapidocs/jquery/external/jquery/jquery.js deleted file mode 100644 index 9b5206bc..00000000 --- a/docs/site/testapidocs/jquery/external/jquery/jquery.js +++ /dev/null @@ -1,10364 +0,0 @@ -/*! - * jQuery JavaScript Library v3.3.1 - * https://jquery.com/ - * - * Includes Sizzle.js - * https://sizzlejs.com/ - * - * Copyright JS Foundation and other contributors - * Released under the MIT license - * https://jquery.org/license - * - * Date: 2018-01-20T17:24Z - */ -( function( global, factory ) { - - "use strict"; - - if ( typeof module === "object" && typeof module.exports === "object" ) { - - // For CommonJS and CommonJS-like environments where a proper `window` - // is present, execute the factory and get jQuery. - // For environments that do not have a `window` with a `document` - // (such as Node.js), expose a factory as module.exports. - // This accentuates the need for the creation of a real `window`. - // e.g. var jQuery = require("jquery")(window); - // See ticket #14549 for more info. - module.exports = global.document ? - factory( global, true ) : - function( w ) { - if ( !w.document ) { - throw new Error( "jQuery requires a window with a document" ); - } - return factory( w ); - }; - } else { - factory( global ); - } - -// Pass this if window is not defined yet -} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) { - -// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1 -// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode -// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common -// enough that all such attempts are guarded in a try block. -"use strict"; - -var arr = []; - -var document = window.document; - -var getProto = Object.getPrototypeOf; - -var slice = arr.slice; - -var concat = arr.concat; - -var push = arr.push; - -var indexOf = arr.indexOf; - -var class2type = {}; - -var toString = class2type.toString; - -var hasOwn = class2type.hasOwnProperty; - -var fnToString = hasOwn.toString; - -var ObjectFunctionString = fnToString.call( Object ); - -var support = {}; - -var isFunction = function isFunction( obj ) { - - // Support: Chrome <=57, Firefox <=52 - // In some browsers, typeof returns "function" for HTML elements - // (i.e., `typeof document.createElement( "object" ) === "function"`). - // We don't want to classify *any* DOM node as a function. - return typeof obj === "function" && typeof obj.nodeType !== "number"; - }; - - -var isWindow = function isWindow( obj ) { - return obj != null && obj === obj.window; - }; - - - - - var preservedScriptAttributes = { - type: true, - src: true, - noModule: true - }; - - function DOMEval( code, doc, node ) { - doc = doc || document; - - var i, - script = doc.createElement( "script" ); - - script.text = code; - if ( node ) { - for ( i in preservedScriptAttributes ) { - if ( node[ i ] ) { - script[ i ] = node[ i ]; - } - } - } - doc.head.appendChild( script ).parentNode.removeChild( script ); - } - - -function toType( obj ) { - if ( obj == null ) { - return obj + ""; - } - - // Support: Android <=2.3 only (functionish RegExp) - return typeof obj === "object" || typeof obj === "function" ? - class2type[ toString.call( obj ) ] || "object" : - typeof obj; -} -/* global Symbol */ -// Defining this global in .eslintrc.json would create a danger of using the global -// unguarded in another place, it seems safer to define global only for this module - - - -var - version = "3.3.1", - - // Define a local copy of jQuery - jQuery = function( selector, context ) { - - // The jQuery object is actually just the init constructor 'enhanced' - // Need init if jQuery is called (just allow error to be thrown if not included) - return new jQuery.fn.init( selector, context ); - }, - - // Support: Android <=4.0 only - // Make sure we trim BOM and NBSP - rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g; - -jQuery.fn = jQuery.prototype = { - - // The current version of jQuery being used - jquery: version, - - constructor: jQuery, - - // The default length of a jQuery object is 0 - length: 0, - - toArray: function() { - return slice.call( this ); - }, - - // Get the Nth element in the matched element set OR - // Get the whole matched element set as a clean array - get: function( num ) { - - // Return all the elements in a clean array - if ( num == null ) { - return slice.call( this ); - } - - // Return just the one element from the set - return num < 0 ? this[ num + this.length ] : this[ num ]; - }, - - // Take an array of elements and push it onto the stack - // (returning the new matched element set) - pushStack: function( elems ) { - - // Build a new jQuery matched element set - var ret = jQuery.merge( this.constructor(), elems ); - - // Add the old object onto the stack (as a reference) - ret.prevObject = this; - - // Return the newly-formed element set - return ret; - }, - - // Execute a callback for every element in the matched set. - each: function( callback ) { - return jQuery.each( this, callback ); - }, - - map: function( callback ) { - return this.pushStack( jQuery.map( this, function( elem, i ) { - return callback.call( elem, i, elem ); - } ) ); - }, - - slice: function() { - return this.pushStack( slice.apply( this, arguments ) ); - }, - - first: function() { - return this.eq( 0 ); - }, - - last: function() { - return this.eq( -1 ); - }, - - eq: function( i ) { - var len = this.length, - j = +i + ( i < 0 ? len : 0 ); - return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] ); - }, - - end: function() { - return this.prevObject || this.constructor(); - }, - - // For internal use only. - // Behaves like an Array's method, not like a jQuery method. - push: push, - sort: arr.sort, - splice: arr.splice -}; - -jQuery.extend = jQuery.fn.extend = function() { - var options, name, src, copy, copyIsArray, clone, - target = arguments[ 0 ] || {}, - i = 1, - length = arguments.length, - deep = false; - - // Handle a deep copy situation - if ( typeof target === "boolean" ) { - deep = target; - - // Skip the boolean and the target - target = arguments[ i ] || {}; - i++; - } - - // Handle case when target is a string or something (possible in deep copy) - if ( typeof target !== "object" && !isFunction( target ) ) { - target = {}; - } - - // Extend jQuery itself if only one argument is passed - if ( i === length ) { - target = this; - i--; - } - - for ( ; i < length; i++ ) { - - // Only deal with non-null/undefined values - if ( ( options = arguments[ i ] ) != null ) { - - // Extend the base object - for ( name in options ) { - src = target[ name ]; - copy = options[ name ]; - - // Prevent never-ending loop - if ( target === copy ) { - continue; - } - - // Recurse if we're merging plain objects or arrays - if ( deep && copy && ( jQuery.isPlainObject( copy ) || - ( copyIsArray = Array.isArray( copy ) ) ) ) { - - if ( copyIsArray ) { - copyIsArray = false; - clone = src && Array.isArray( src ) ? src : []; - - } else { - clone = src && jQuery.isPlainObject( src ) ? src : {}; - } - - // Never move original objects, clone them - target[ name ] = jQuery.extend( deep, clone, copy ); - - // Don't bring in undefined values - } else if ( copy !== undefined ) { - target[ name ] = copy; - } - } - } - } - - // Return the modified object - return target; -}; - -jQuery.extend( { - - // Unique for each copy of jQuery on the page - expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), - - // Assume jQuery is ready without the ready module - isReady: true, - - error: function( msg ) { - throw new Error( msg ); - }, - - noop: function() {}, - - isPlainObject: function( obj ) { - var proto, Ctor; - - // Detect obvious negatives - // Use toString instead of jQuery.type to catch host objects - if ( !obj || toString.call( obj ) !== "[object Object]" ) { - return false; - } - - proto = getProto( obj ); - - // Objects with no prototype (e.g., `Object.create( null )`) are plain - if ( !proto ) { - return true; - } - - // Objects with prototype are plain iff they were constructed by a global Object function - Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor; - return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString; - }, - - isEmptyObject: function( obj ) { - - /* eslint-disable no-unused-vars */ - // See https://github.com/eslint/eslint/issues/6125 - var name; - - for ( name in obj ) { - return false; - } - return true; - }, - - // Evaluates a script in a global context - globalEval: function( code ) { - DOMEval( code ); - }, - - each: function( obj, callback ) { - var length, i = 0; - - if ( isArrayLike( obj ) ) { - length = obj.length; - for ( ; i < length; i++ ) { - if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { - break; - } - } - } else { - for ( i in obj ) { - if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { - break; - } - } - } - - return obj; - }, - - // Support: Android <=4.0 only - trim: function( text ) { - return text == null ? - "" : - ( text + "" ).replace( rtrim, "" ); - }, - - // results is for internal usage only - makeArray: function( arr, results ) { - var ret = results || []; - - if ( arr != null ) { - if ( isArrayLike( Object( arr ) ) ) { - jQuery.merge( ret, - typeof arr === "string" ? - [ arr ] : arr - ); - } else { - push.call( ret, arr ); - } - } - - return ret; - }, - - inArray: function( elem, arr, i ) { - return arr == null ? -1 : indexOf.call( arr, elem, i ); - }, - - // Support: Android <=4.0 only, PhantomJS 1 only - // push.apply(_, arraylike) throws on ancient WebKit - merge: function( first, second ) { - var len = +second.length, - j = 0, - i = first.length; - - for ( ; j < len; j++ ) { - first[ i++ ] = second[ j ]; - } - - first.length = i; - - return first; - }, - - grep: function( elems, callback, invert ) { - var callbackInverse, - matches = [], - i = 0, - length = elems.length, - callbackExpect = !invert; - - // Go through the array, only saving the items - // that pass the validator function - for ( ; i < length; i++ ) { - callbackInverse = !callback( elems[ i ], i ); - if ( callbackInverse !== callbackExpect ) { - matches.push( elems[ i ] ); - } - } - - return matches; - }, - - // arg is for internal usage only - map: function( elems, callback, arg ) { - var length, value, - i = 0, - ret = []; - - // Go through the array, translating each of the items to their new values - if ( isArrayLike( elems ) ) { - length = elems.length; - for ( ; i < length; i++ ) { - value = callback( elems[ i ], i, arg ); - - if ( value != null ) { - ret.push( value ); - } - } - - // Go through every key on the object, - } else { - for ( i in elems ) { - value = callback( elems[ i ], i, arg ); - - if ( value != null ) { - ret.push( value ); - } - } - } - - // Flatten any nested arrays - return concat.apply( [], ret ); - }, - - // A global GUID counter for objects - guid: 1, - - // jQuery.support is not used in Core but other projects attach their - // properties to it so it needs to exist. - support: support -} ); - -if ( typeof Symbol === "function" ) { - jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ]; -} - -// Populate the class2type map -jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), -function( i, name ) { - class2type[ "[object " + name + "]" ] = name.toLowerCase(); -} ); - -function isArrayLike( obj ) { - - // Support: real iOS 8.2 only (not reproducible in simulator) - // `in` check used to prevent JIT error (gh-2145) - // hasOwn isn't used here due to false negatives - // regarding Nodelist length in IE - var length = !!obj && "length" in obj && obj.length, - type = toType( obj ); - - if ( isFunction( obj ) || isWindow( obj ) ) { - return false; - } - - return type === "array" || length === 0 || - typeof length === "number" && length > 0 && ( length - 1 ) in obj; -} -var Sizzle = -/*! - * Sizzle CSS Selector Engine v2.3.3 - * https://sizzlejs.com/ - * - * Copyright jQuery Foundation and other contributors - * Released under the MIT license - * http://jquery.org/license - * - * Date: 2016-08-08 - */ -(function( window ) { - -var i, - support, - Expr, - getText, - isXML, - tokenize, - compile, - select, - outermostContext, - sortInput, - hasDuplicate, - - // Local document vars - setDocument, - document, - docElem, - documentIsHTML, - rbuggyQSA, - rbuggyMatches, - matches, - contains, - - // Instance-specific data - expando = "sizzle" + 1 * new Date(), - preferredDoc = window.document, - dirruns = 0, - done = 0, - classCache = createCache(), - tokenCache = createCache(), - compilerCache = createCache(), - sortOrder = function( a, b ) { - if ( a === b ) { - hasDuplicate = true; - } - return 0; - }, - - // Instance methods - hasOwn = ({}).hasOwnProperty, - arr = [], - pop = arr.pop, - push_native = arr.push, - push = arr.push, - slice = arr.slice, - // Use a stripped-down indexOf as it's faster than native - // https://jsperf.com/thor-indexof-vs-for/5 - indexOf = function( list, elem ) { - var i = 0, - len = list.length; - for ( ; i < len; i++ ) { - if ( list[i] === elem ) { - return i; - } - } - return -1; - }, - - booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", - - // Regular expressions - - // http://www.w3.org/TR/css3-selectors/#whitespace - whitespace = "[\\x20\\t\\r\\n\\f]", - - // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier - identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+", - - // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors - attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + - // Operator (capture 2) - "*([*^$|!~]?=)" + whitespace + - // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" - "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace + - "*\\]", - - pseudos = ":(" + identifier + ")(?:\\((" + - // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: - // 1. quoted (capture 3; capture 4 or capture 5) - "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + - // 2. simple (capture 6) - "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + - // 3. anything else (capture 2) - ".*" + - ")\\)|)", - - // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter - rwhitespace = new RegExp( whitespace + "+", "g" ), - rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), - - rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), - rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), - - rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ), - - rpseudo = new RegExp( pseudos ), - ridentifier = new RegExp( "^" + identifier + "$" ), - - matchExpr = { - "ID": new RegExp( "^#(" + identifier + ")" ), - "CLASS": new RegExp( "^\\.(" + identifier + ")" ), - "TAG": new RegExp( "^(" + identifier + "|[*])" ), - "ATTR": new RegExp( "^" + attributes ), - "PSEUDO": new RegExp( "^" + pseudos ), - "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + - "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + - "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), - "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), - // For use in libraries implementing .is() - // We use this for POS matching in `select` - "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + - whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) - }, - - rinputs = /^(?:input|select|textarea|button)$/i, - rheader = /^h\d$/i, - - rnative = /^[^{]+\{\s*\[native \w/, - - // Easily-parseable/retrievable ID or TAG or CLASS selectors - rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, - - rsibling = /[+~]/, - - // CSS escapes - // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters - runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), - funescape = function( _, escaped, escapedWhitespace ) { - var high = "0x" + escaped - 0x10000; - // NaN means non-codepoint - // Support: Firefox<24 - // Workaround erroneous numeric interpretation of +"0x" - return high !== high || escapedWhitespace ? - escaped : - high < 0 ? - // BMP codepoint - String.fromCharCode( high + 0x10000 ) : - // Supplemental Plane codepoint (surrogate pair) - String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); - }, - - // CSS string/identifier serialization - // https://drafts.csswg.org/cssom/#common-serializing-idioms - rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, - fcssescape = function( ch, asCodePoint ) { - if ( asCodePoint ) { - - // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER - if ( ch === "\0" ) { - return "\uFFFD"; - } - - // Control characters and (dependent upon position) numbers get escaped as code points - return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; - } - - // Other potentially-special ASCII characters get backslash-escaped - return "\\" + ch; - }, - - // Used for iframes - // See setDocument() - // Removing the function wrapper causes a "Permission Denied" - // error in IE - unloadHandler = function() { - setDocument(); - }, - - disabledAncestor = addCombinator( - function( elem ) { - return elem.disabled === true && ("form" in elem || "label" in elem); - }, - { dir: "parentNode", next: "legend" } - ); - -// Optimize for push.apply( _, NodeList ) -try { - push.apply( - (arr = slice.call( preferredDoc.childNodes )), - preferredDoc.childNodes - ); - // Support: Android<4.0 - // Detect silently failing push.apply - arr[ preferredDoc.childNodes.length ].nodeType; -} catch ( e ) { - push = { apply: arr.length ? - - // Leverage slice if possible - function( target, els ) { - push_native.apply( target, slice.call(els) ); - } : - - // Support: IE<9 - // Otherwise append directly - function( target, els ) { - var j = target.length, - i = 0; - // Can't trust NodeList.length - while ( (target[j++] = els[i++]) ) {} - target.length = j - 1; - } - }; -} - -function Sizzle( selector, context, results, seed ) { - var m, i, elem, nid, match, groups, newSelector, - newContext = context && context.ownerDocument, - - // nodeType defaults to 9, since context defaults to document - nodeType = context ? context.nodeType : 9; - - results = results || []; - - // Return early from calls with invalid selector or context - if ( typeof selector !== "string" || !selector || - nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { - - return results; - } - - // Try to shortcut find operations (as opposed to filters) in HTML documents - if ( !seed ) { - - if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { - setDocument( context ); - } - context = context || document; - - if ( documentIsHTML ) { - - // If the selector is sufficiently simple, try using a "get*By*" DOM method - // (excepting DocumentFragment context, where the methods don't exist) - if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) { - - // ID selector - if ( (m = match[1]) ) { - - // Document context - if ( nodeType === 9 ) { - if ( (elem = context.getElementById( m )) ) { - - // Support: IE, Opera, Webkit - // TODO: identify versions - // getElementById can match elements by name instead of ID - if ( elem.id === m ) { - results.push( elem ); - return results; - } - } else { - return results; - } - - // Element context - } else { - - // Support: IE, Opera, Webkit - // TODO: identify versions - // getElementById can match elements by name instead of ID - if ( newContext && (elem = newContext.getElementById( m )) && - contains( context, elem ) && - elem.id === m ) { - - results.push( elem ); - return results; - } - } - - // Type selector - } else if ( match[2] ) { - push.apply( results, context.getElementsByTagName( selector ) ); - return results; - - // Class selector - } else if ( (m = match[3]) && support.getElementsByClassName && - context.getElementsByClassName ) { - - push.apply( results, context.getElementsByClassName( m ) ); - return results; - } - } - - // Take advantage of querySelectorAll - if ( support.qsa && - !compilerCache[ selector + " " ] && - (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { - - if ( nodeType !== 1 ) { - newContext = context; - newSelector = selector; - - // qSA looks outside Element context, which is not what we want - // Thanks to Andrew Dupont for this workaround technique - // Support: IE <=8 - // Exclude object elements - } else if ( context.nodeName.toLowerCase() !== "object" ) { - - // Capture the context ID, setting it first if necessary - if ( (nid = context.getAttribute( "id" )) ) { - nid = nid.replace( rcssescape, fcssescape ); - } else { - context.setAttribute( "id", (nid = expando) ); - } - - // Prefix every selector in the list - groups = tokenize( selector ); - i = groups.length; - while ( i-- ) { - groups[i] = "#" + nid + " " + toSelector( groups[i] ); - } - newSelector = groups.join( "," ); - - // Expand context for sibling selectors - newContext = rsibling.test( selector ) && testContext( context.parentNode ) || - context; - } - - if ( newSelector ) { - try { - push.apply( results, - newContext.querySelectorAll( newSelector ) - ); - return results; - } catch ( qsaError ) { - } finally { - if ( nid === expando ) { - context.removeAttribute( "id" ); - } - } - } - } - } - } - - // All others - return select( selector.replace( rtrim, "$1" ), context, results, seed ); -} - -/** - * Create key-value caches of limited size - * @returns {function(string, object)} Returns the Object data after storing it on itself with - * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) - * deleting the oldest entry - */ -function createCache() { - var keys = []; - - function cache( key, value ) { - // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) - if ( keys.push( key + " " ) > Expr.cacheLength ) { - // Only keep the most recent entries - delete cache[ keys.shift() ]; - } - return (cache[ key + " " ] = value); - } - return cache; -} - -/** - * Mark a function for special use by Sizzle - * @param {Function} fn The function to mark - */ -function markFunction( fn ) { - fn[ expando ] = true; - return fn; -} - -/** - * Support testing using an element - * @param {Function} fn Passed the created element and returns a boolean result - */ -function assert( fn ) { - var el = document.createElement("fieldset"); - - try { - return !!fn( el ); - } catch (e) { - return false; - } finally { - // Remove from its parent by default - if ( el.parentNode ) { - el.parentNode.removeChild( el ); - } - // release memory in IE - el = null; - } -} - -/** - * Adds the same handler for all of the specified attrs - * @param {String} attrs Pipe-separated list of attributes - * @param {Function} handler The method that will be applied - */ -function addHandle( attrs, handler ) { - var arr = attrs.split("|"), - i = arr.length; - - while ( i-- ) { - Expr.attrHandle[ arr[i] ] = handler; - } -} - -/** - * Checks document order of two siblings - * @param {Element} a - * @param {Element} b - * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b - */ -function siblingCheck( a, b ) { - var cur = b && a, - diff = cur && a.nodeType === 1 && b.nodeType === 1 && - a.sourceIndex - b.sourceIndex; - - // Use IE sourceIndex if available on both nodes - if ( diff ) { - return diff; - } - - // Check if b follows a - if ( cur ) { - while ( (cur = cur.nextSibling) ) { - if ( cur === b ) { - return -1; - } - } - } - - return a ? 1 : -1; -} - -/** - * Returns a function to use in pseudos for input types - * @param {String} type - */ -function createInputPseudo( type ) { - return function( elem ) { - var name = elem.nodeName.toLowerCase(); - return name === "input" && elem.type === type; - }; -} - -/** - * Returns a function to use in pseudos for buttons - * @param {String} type - */ -function createButtonPseudo( type ) { - return function( elem ) { - var name = elem.nodeName.toLowerCase(); - return (name === "input" || name === "button") && elem.type === type; - }; -} - -/** - * Returns a function to use in pseudos for :enabled/:disabled - * @param {Boolean} disabled true for :disabled; false for :enabled - */ -function createDisabledPseudo( disabled ) { - - // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable - return function( elem ) { - - // Only certain elements can match :enabled or :disabled - // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled - // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled - if ( "form" in elem ) { - - // Check for inherited disabledness on relevant non-disabled elements: - // * listed form-associated elements in a disabled fieldset - // https://html.spec.whatwg.org/multipage/forms.html#category-listed - // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled - // * option elements in a disabled optgroup - // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled - // All such elements have a "form" property. - if ( elem.parentNode && elem.disabled === false ) { - - // Option elements defer to a parent optgroup if present - if ( "label" in elem ) { - if ( "label" in elem.parentNode ) { - return elem.parentNode.disabled === disabled; - } else { - return elem.disabled === disabled; - } - } - - // Support: IE 6 - 11 - // Use the isDisabled shortcut property to check for disabled fieldset ancestors - return elem.isDisabled === disabled || - - // Where there is no isDisabled, check manually - /* jshint -W018 */ - elem.isDisabled !== !disabled && - disabledAncestor( elem ) === disabled; - } - - return elem.disabled === disabled; - - // Try to winnow out elements that can't be disabled before trusting the disabled property. - // Some victims get caught in our net (label, legend, menu, track), but it shouldn't - // even exist on them, let alone have a boolean value. - } else if ( "label" in elem ) { - return elem.disabled === disabled; - } - - // Remaining elements are neither :enabled nor :disabled - return false; - }; -} - -/** - * Returns a function to use in pseudos for positionals - * @param {Function} fn - */ -function createPositionalPseudo( fn ) { - return markFunction(function( argument ) { - argument = +argument; - return markFunction(function( seed, matches ) { - var j, - matchIndexes = fn( [], seed.length, argument ), - i = matchIndexes.length; - - // Match elements found at the specified indexes - while ( i-- ) { - if ( seed[ (j = matchIndexes[i]) ] ) { - seed[j] = !(matches[j] = seed[j]); - } - } - }); - }); -} - -/** - * Checks a node for validity as a Sizzle context - * @param {Element|Object=} context - * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value - */ -function testContext( context ) { - return context && typeof context.getElementsByTagName !== "undefined" && context; -} - -// Expose support vars for convenience -support = Sizzle.support = {}; - -/** - * Detects XML nodes - * @param {Element|Object} elem An element or a document - * @returns {Boolean} True iff elem is a non-HTML XML node - */ -isXML = Sizzle.isXML = function( elem ) { - // documentElement is verified for cases where it doesn't yet exist - // (such as loading iframes in IE - #4833) - var documentElement = elem && (elem.ownerDocument || elem).documentElement; - return documentElement ? documentElement.nodeName !== "HTML" : false; -}; - -/** - * Sets document-related variables once based on the current document - * @param {Element|Object} [doc] An element or document object to use to set the document - * @returns {Object} Returns the current document - */ -setDocument = Sizzle.setDocument = function( node ) { - var hasCompare, subWindow, - doc = node ? node.ownerDocument || node : preferredDoc; - - // Return early if doc is invalid or already selected - if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { - return document; - } - - // Update global variables - document = doc; - docElem = document.documentElement; - documentIsHTML = !isXML( document ); - - // Support: IE 9-11, Edge - // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936) - if ( preferredDoc !== document && - (subWindow = document.defaultView) && subWindow.top !== subWindow ) { - - // Support: IE 11, Edge - if ( subWindow.addEventListener ) { - subWindow.addEventListener( "unload", unloadHandler, false ); - - // Support: IE 9 - 10 only - } else if ( subWindow.attachEvent ) { - subWindow.attachEvent( "onunload", unloadHandler ); - } - } - - /* Attributes - ---------------------------------------------------------------------- */ - - // Support: IE<8 - // Verify that getAttribute really returns attributes and not properties - // (excepting IE8 booleans) - support.attributes = assert(function( el ) { - el.className = "i"; - return !el.getAttribute("className"); - }); - - /* getElement(s)By* - ---------------------------------------------------------------------- */ - - // Check if getElementsByTagName("*") returns only elements - support.getElementsByTagName = assert(function( el ) { - el.appendChild( document.createComment("") ); - return !el.getElementsByTagName("*").length; - }); - - // Support: IE<9 - support.getElementsByClassName = rnative.test( document.getElementsByClassName ); - - // Support: IE<10 - // Check if getElementById returns elements by name - // The broken getElementById methods don't pick up programmatically-set names, - // so use a roundabout getElementsByName test - support.getById = assert(function( el ) { - docElem.appendChild( el ).id = expando; - return !document.getElementsByName || !document.getElementsByName( expando ).length; - }); - - // ID filter and find - if ( support.getById ) { - Expr.filter["ID"] = function( id ) { - var attrId = id.replace( runescape, funescape ); - return function( elem ) { - return elem.getAttribute("id") === attrId; - }; - }; - Expr.find["ID"] = function( id, context ) { - if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { - var elem = context.getElementById( id ); - return elem ? [ elem ] : []; - } - }; - } else { - Expr.filter["ID"] = function( id ) { - var attrId = id.replace( runescape, funescape ); - return function( elem ) { - var node = typeof elem.getAttributeNode !== "undefined" && - elem.getAttributeNode("id"); - return node && node.value === attrId; - }; - }; - - // Support: IE 6 - 7 only - // getElementById is not reliable as a find shortcut - Expr.find["ID"] = function( id, context ) { - if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { - var node, i, elems, - elem = context.getElementById( id ); - - if ( elem ) { - - // Verify the id attribute - node = elem.getAttributeNode("id"); - if ( node && node.value === id ) { - return [ elem ]; - } - - // Fall back on getElementsByName - elems = context.getElementsByName( id ); - i = 0; - while ( (elem = elems[i++]) ) { - node = elem.getAttributeNode("id"); - if ( node && node.value === id ) { - return [ elem ]; - } - } - } - - return []; - } - }; - } - - // Tag - Expr.find["TAG"] = support.getElementsByTagName ? - function( tag, context ) { - if ( typeof context.getElementsByTagName !== "undefined" ) { - return context.getElementsByTagName( tag ); - - // DocumentFragment nodes don't have gEBTN - } else if ( support.qsa ) { - return context.querySelectorAll( tag ); - } - } : - - function( tag, context ) { - var elem, - tmp = [], - i = 0, - // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too - results = context.getElementsByTagName( tag ); - - // Filter out possible comments - if ( tag === "*" ) { - while ( (elem = results[i++]) ) { - if ( elem.nodeType === 1 ) { - tmp.push( elem ); - } - } - - return tmp; - } - return results; - }; - - // Class - Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { - if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) { - return context.getElementsByClassName( className ); - } - }; - - /* QSA/matchesSelector - ---------------------------------------------------------------------- */ - - // QSA and matchesSelector support - - // matchesSelector(:active) reports false when true (IE9/Opera 11.5) - rbuggyMatches = []; - - // qSa(:focus) reports false when true (Chrome 21) - // We allow this because of a bug in IE8/9 that throws an error - // whenever `document.activeElement` is accessed on an iframe - // So, we allow :focus to pass through QSA all the time to avoid the IE error - // See https://bugs.jquery.com/ticket/13378 - rbuggyQSA = []; - - if ( (support.qsa = rnative.test( document.querySelectorAll )) ) { - // Build QSA regex - // Regex strategy adopted from Diego Perini - assert(function( el ) { - // Select is set to empty string on purpose - // This is to test IE's treatment of not explicitly - // setting a boolean content attribute, - // since its presence should be enough - // https://bugs.jquery.com/ticket/12359 - docElem.appendChild( el ).innerHTML = "" + - ""; - - // Support: IE8, Opera 11-12.16 - // Nothing should be selected when empty strings follow ^= or $= or *= - // The test attribute must be unknown in Opera but "safe" for WinRT - // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section - if ( el.querySelectorAll("[msallowcapture^='']").length ) { - rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); - } - - // Support: IE8 - // Boolean attributes and "value" are not treated correctly - if ( !el.querySelectorAll("[selected]").length ) { - rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); - } - - // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+ - if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) { - rbuggyQSA.push("~="); - } - - // Webkit/Opera - :checked should return selected option elements - // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked - // IE8 throws error here and will not see later tests - if ( !el.querySelectorAll(":checked").length ) { - rbuggyQSA.push(":checked"); - } - - // Support: Safari 8+, iOS 8+ - // https://bugs.webkit.org/show_bug.cgi?id=136851 - // In-page `selector#id sibling-combinator selector` fails - if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) { - rbuggyQSA.push(".#.+[+~]"); - } - }); - - assert(function( el ) { - el.innerHTML = "" + - ""; - - // Support: Windows 8 Native Apps - // The type and name attributes are restricted during .innerHTML assignment - var input = document.createElement("input"); - input.setAttribute( "type", "hidden" ); - el.appendChild( input ).setAttribute( "name", "D" ); - - // Support: IE8 - // Enforce case-sensitivity of name attribute - if ( el.querySelectorAll("[name=d]").length ) { - rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); - } - - // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) - // IE8 throws error here and will not see later tests - if ( el.querySelectorAll(":enabled").length !== 2 ) { - rbuggyQSA.push( ":enabled", ":disabled" ); - } - - // Support: IE9-11+ - // IE's :disabled selector does not pick up the children of disabled fieldsets - docElem.appendChild( el ).disabled = true; - if ( el.querySelectorAll(":disabled").length !== 2 ) { - rbuggyQSA.push( ":enabled", ":disabled" ); - } - - // Opera 10-11 does not throw on post-comma invalid pseudos - el.querySelectorAll("*,:x"); - rbuggyQSA.push(",.*:"); - }); - } - - if ( (support.matchesSelector = rnative.test( (matches = docElem.matches || - docElem.webkitMatchesSelector || - docElem.mozMatchesSelector || - docElem.oMatchesSelector || - docElem.msMatchesSelector) )) ) { - - assert(function( el ) { - // Check to see if it's possible to do matchesSelector - // on a disconnected node (IE 9) - support.disconnectedMatch = matches.call( el, "*" ); - - // This should fail with an exception - // Gecko does not error, returns false instead - matches.call( el, "[s!='']:x" ); - rbuggyMatches.push( "!=", pseudos ); - }); - } - - rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); - rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); - - /* Contains - ---------------------------------------------------------------------- */ - hasCompare = rnative.test( docElem.compareDocumentPosition ); - - // Element contains another - // Purposefully self-exclusive - // As in, an element does not contain itself - contains = hasCompare || rnative.test( docElem.contains ) ? - function( a, b ) { - var adown = a.nodeType === 9 ? a.documentElement : a, - bup = b && b.parentNode; - return a === bup || !!( bup && bup.nodeType === 1 && ( - adown.contains ? - adown.contains( bup ) : - a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 - )); - } : - function( a, b ) { - if ( b ) { - while ( (b = b.parentNode) ) { - if ( b === a ) { - return true; - } - } - } - return false; - }; - - /* Sorting - ---------------------------------------------------------------------- */ - - // Document order sorting - sortOrder = hasCompare ? - function( a, b ) { - - // Flag for duplicate removal - if ( a === b ) { - hasDuplicate = true; - return 0; - } - - // Sort on method existence if only one input has compareDocumentPosition - var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; - if ( compare ) { - return compare; - } - - // Calculate position if both inputs belong to the same document - compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ? - a.compareDocumentPosition( b ) : - - // Otherwise we know they are disconnected - 1; - - // Disconnected nodes - if ( compare & 1 || - (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) { - - // Choose the first element that is related to our preferred document - if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) { - return -1; - } - if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) { - return 1; - } - - // Maintain original order - return sortInput ? - ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : - 0; - } - - return compare & 4 ? -1 : 1; - } : - function( a, b ) { - // Exit early if the nodes are identical - if ( a === b ) { - hasDuplicate = true; - return 0; - } - - var cur, - i = 0, - aup = a.parentNode, - bup = b.parentNode, - ap = [ a ], - bp = [ b ]; - - // Parentless nodes are either documents or disconnected - if ( !aup || !bup ) { - return a === document ? -1 : - b === document ? 1 : - aup ? -1 : - bup ? 1 : - sortInput ? - ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : - 0; - - // If the nodes are siblings, we can do a quick check - } else if ( aup === bup ) { - return siblingCheck( a, b ); - } - - // Otherwise we need full lists of their ancestors for comparison - cur = a; - while ( (cur = cur.parentNode) ) { - ap.unshift( cur ); - } - cur = b; - while ( (cur = cur.parentNode) ) { - bp.unshift( cur ); - } - - // Walk down the tree looking for a discrepancy - while ( ap[i] === bp[i] ) { - i++; - } - - return i ? - // Do a sibling check if the nodes have a common ancestor - siblingCheck( ap[i], bp[i] ) : - - // Otherwise nodes in our document sort first - ap[i] === preferredDoc ? -1 : - bp[i] === preferredDoc ? 1 : - 0; - }; - - return document; -}; - -Sizzle.matches = function( expr, elements ) { - return Sizzle( expr, null, null, elements ); -}; - -Sizzle.matchesSelector = function( elem, expr ) { - // Set document vars if needed - if ( ( elem.ownerDocument || elem ) !== document ) { - setDocument( elem ); - } - - // Make sure that attribute selectors are quoted - expr = expr.replace( rattributeQuotes, "='$1']" ); - - if ( support.matchesSelector && documentIsHTML && - !compilerCache[ expr + " " ] && - ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && - ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { - - try { - var ret = matches.call( elem, expr ); - - // IE 9's matchesSelector returns false on disconnected nodes - if ( ret || support.disconnectedMatch || - // As well, disconnected nodes are said to be in a document - // fragment in IE 9 - elem.document && elem.document.nodeType !== 11 ) { - return ret; - } - } catch (e) {} - } - - return Sizzle( expr, document, null, [ elem ] ).length > 0; -}; - -Sizzle.contains = function( context, elem ) { - // Set document vars if needed - if ( ( context.ownerDocument || context ) !== document ) { - setDocument( context ); - } - return contains( context, elem ); -}; - -Sizzle.attr = function( elem, name ) { - // Set document vars if needed - if ( ( elem.ownerDocument || elem ) !== document ) { - setDocument( elem ); - } - - var fn = Expr.attrHandle[ name.toLowerCase() ], - // Don't get fooled by Object.prototype properties (jQuery #13807) - val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? - fn( elem, name, !documentIsHTML ) : - undefined; - - return val !== undefined ? - val : - support.attributes || !documentIsHTML ? - elem.getAttribute( name ) : - (val = elem.getAttributeNode(name)) && val.specified ? - val.value : - null; -}; - -Sizzle.escape = function( sel ) { - return (sel + "").replace( rcssescape, fcssescape ); -}; - -Sizzle.error = function( msg ) { - throw new Error( "Syntax error, unrecognized expression: " + msg ); -}; - -/** - * Document sorting and removing duplicates - * @param {ArrayLike} results - */ -Sizzle.uniqueSort = function( results ) { - var elem, - duplicates = [], - j = 0, - i = 0; - - // Unless we *know* we can detect duplicates, assume their presence - hasDuplicate = !support.detectDuplicates; - sortInput = !support.sortStable && results.slice( 0 ); - results.sort( sortOrder ); - - if ( hasDuplicate ) { - while ( (elem = results[i++]) ) { - if ( elem === results[ i ] ) { - j = duplicates.push( i ); - } - } - while ( j-- ) { - results.splice( duplicates[ j ], 1 ); - } - } - - // Clear input after sorting to release objects - // See https://github.com/jquery/sizzle/pull/225 - sortInput = null; - - return results; -}; - -/** - * Utility function for retrieving the text value of an array of DOM nodes - * @param {Array|Element} elem - */ -getText = Sizzle.getText = function( elem ) { - var node, - ret = "", - i = 0, - nodeType = elem.nodeType; - - if ( !nodeType ) { - // If no nodeType, this is expected to be an array - while ( (node = elem[i++]) ) { - // Do not traverse comment nodes - ret += getText( node ); - } - } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { - // Use textContent for elements - // innerText usage removed for consistency of new lines (jQuery #11153) - if ( typeof elem.textContent === "string" ) { - return elem.textContent; - } else { - // Traverse its children - for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { - ret += getText( elem ); - } - } - } else if ( nodeType === 3 || nodeType === 4 ) { - return elem.nodeValue; - } - // Do not include comment or processing instruction nodes - - return ret; -}; - -Expr = Sizzle.selectors = { - - // Can be adjusted by the user - cacheLength: 50, - - createPseudo: markFunction, - - match: matchExpr, - - attrHandle: {}, - - find: {}, - - relative: { - ">": { dir: "parentNode", first: true }, - " ": { dir: "parentNode" }, - "+": { dir: "previousSibling", first: true }, - "~": { dir: "previousSibling" } - }, - - preFilter: { - "ATTR": function( match ) { - match[1] = match[1].replace( runescape, funescape ); - - // Move the given value to match[3] whether quoted or unquoted - match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape ); - - if ( match[2] === "~=" ) { - match[3] = " " + match[3] + " "; - } - - return match.slice( 0, 4 ); - }, - - "CHILD": function( match ) { - /* matches from matchExpr["CHILD"] - 1 type (only|nth|...) - 2 what (child|of-type) - 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) - 4 xn-component of xn+y argument ([+-]?\d*n|) - 5 sign of xn-component - 6 x of xn-component - 7 sign of y-component - 8 y of y-component - */ - match[1] = match[1].toLowerCase(); - - if ( match[1].slice( 0, 3 ) === "nth" ) { - // nth-* requires argument - if ( !match[3] ) { - Sizzle.error( match[0] ); - } - - // numeric x and y parameters for Expr.filter.CHILD - // remember that false/true cast respectively to 0/1 - match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); - match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); - - // other types prohibit arguments - } else if ( match[3] ) { - Sizzle.error( match[0] ); - } - - return match; - }, - - "PSEUDO": function( match ) { - var excess, - unquoted = !match[6] && match[2]; - - if ( matchExpr["CHILD"].test( match[0] ) ) { - return null; - } - - // Accept quoted arguments as-is - if ( match[3] ) { - match[2] = match[4] || match[5] || ""; - - // Strip excess characters from unquoted arguments - } else if ( unquoted && rpseudo.test( unquoted ) && - // Get excess from tokenize (recursively) - (excess = tokenize( unquoted, true )) && - // advance to the next closing parenthesis - (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { - - // excess is a negative index - match[0] = match[0].slice( 0, excess ); - match[2] = unquoted.slice( 0, excess ); - } - - // Return only captures needed by the pseudo filter method (type and argument) - return match.slice( 0, 3 ); - } - }, - - filter: { - - "TAG": function( nodeNameSelector ) { - var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); - return nodeNameSelector === "*" ? - function() { return true; } : - function( elem ) { - return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; - }; - }, - - "CLASS": function( className ) { - var pattern = classCache[ className + " " ]; - - return pattern || - (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && - classCache( className, function( elem ) { - return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" ); - }); - }, - - "ATTR": function( name, operator, check ) { - return function( elem ) { - var result = Sizzle.attr( elem, name ); - - if ( result == null ) { - return operator === "!="; - } - if ( !operator ) { - return true; - } - - result += ""; - - return operator === "=" ? result === check : - operator === "!=" ? result !== check : - operator === "^=" ? check && result.indexOf( check ) === 0 : - operator === "*=" ? check && result.indexOf( check ) > -1 : - operator === "$=" ? check && result.slice( -check.length ) === check : - operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : - operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : - false; - }; - }, - - "CHILD": function( type, what, argument, first, last ) { - var simple = type.slice( 0, 3 ) !== "nth", - forward = type.slice( -4 ) !== "last", - ofType = what === "of-type"; - - return first === 1 && last === 0 ? - - // Shortcut for :nth-*(n) - function( elem ) { - return !!elem.parentNode; - } : - - function( elem, context, xml ) { - var cache, uniqueCache, outerCache, node, nodeIndex, start, - dir = simple !== forward ? "nextSibling" : "previousSibling", - parent = elem.parentNode, - name = ofType && elem.nodeName.toLowerCase(), - useCache = !xml && !ofType, - diff = false; - - if ( parent ) { - - // :(first|last|only)-(child|of-type) - if ( simple ) { - while ( dir ) { - node = elem; - while ( (node = node[ dir ]) ) { - if ( ofType ? - node.nodeName.toLowerCase() === name : - node.nodeType === 1 ) { - - return false; - } - } - // Reverse direction for :only-* (if we haven't yet done so) - start = dir = type === "only" && !start && "nextSibling"; - } - return true; - } - - start = [ forward ? parent.firstChild : parent.lastChild ]; - - // non-xml :nth-child(...) stores cache data on `parent` - if ( forward && useCache ) { - - // Seek `elem` from a previously-cached index - - // ...in a gzip-friendly way - node = parent; - outerCache = node[ expando ] || (node[ expando ] = {}); - - // Support: IE <9 only - // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ node.uniqueID ] || - (outerCache[ node.uniqueID ] = {}); - - cache = uniqueCache[ type ] || []; - nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; - diff = nodeIndex && cache[ 2 ]; - node = nodeIndex && parent.childNodes[ nodeIndex ]; - - while ( (node = ++nodeIndex && node && node[ dir ] || - - // Fallback to seeking `elem` from the start - (diff = nodeIndex = 0) || start.pop()) ) { - - // When found, cache indexes on `parent` and break - if ( node.nodeType === 1 && ++diff && node === elem ) { - uniqueCache[ type ] = [ dirruns, nodeIndex, diff ]; - break; - } - } - - } else { - // Use previously-cached element index if available - if ( useCache ) { - // ...in a gzip-friendly way - node = elem; - outerCache = node[ expando ] || (node[ expando ] = {}); - - // Support: IE <9 only - // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ node.uniqueID ] || - (outerCache[ node.uniqueID ] = {}); - - cache = uniqueCache[ type ] || []; - nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; - diff = nodeIndex; - } - - // xml :nth-child(...) - // or :nth-last-child(...) or :nth(-last)?-of-type(...) - if ( diff === false ) { - // Use the same loop as above to seek `elem` from the start - while ( (node = ++nodeIndex && node && node[ dir ] || - (diff = nodeIndex = 0) || start.pop()) ) { - - if ( ( ofType ? - node.nodeName.toLowerCase() === name : - node.nodeType === 1 ) && - ++diff ) { - - // Cache the index of each encountered element - if ( useCache ) { - outerCache = node[ expando ] || (node[ expando ] = {}); - - // Support: IE <9 only - // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ node.uniqueID ] || - (outerCache[ node.uniqueID ] = {}); - - uniqueCache[ type ] = [ dirruns, diff ]; - } - - if ( node === elem ) { - break; - } - } - } - } - } - - // Incorporate the offset, then check against cycle size - diff -= last; - return diff === first || ( diff % first === 0 && diff / first >= 0 ); - } - }; - }, - - "PSEUDO": function( pseudo, argument ) { - // pseudo-class names are case-insensitive - // http://www.w3.org/TR/selectors/#pseudo-classes - // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters - // Remember that setFilters inherits from pseudos - var args, - fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || - Sizzle.error( "unsupported pseudo: " + pseudo ); - - // The user may use createPseudo to indicate that - // arguments are needed to create the filter function - // just as Sizzle does - if ( fn[ expando ] ) { - return fn( argument ); - } - - // But maintain support for old signatures - if ( fn.length > 1 ) { - args = [ pseudo, pseudo, "", argument ]; - return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? - markFunction(function( seed, matches ) { - var idx, - matched = fn( seed, argument ), - i = matched.length; - while ( i-- ) { - idx = indexOf( seed, matched[i] ); - seed[ idx ] = !( matches[ idx ] = matched[i] ); - } - }) : - function( elem ) { - return fn( elem, 0, args ); - }; - } - - return fn; - } - }, - - pseudos: { - // Potentially complex pseudos - "not": markFunction(function( selector ) { - // Trim the selector passed to compile - // to avoid treating leading and trailing - // spaces as combinators - var input = [], - results = [], - matcher = compile( selector.replace( rtrim, "$1" ) ); - - return matcher[ expando ] ? - markFunction(function( seed, matches, context, xml ) { - var elem, - unmatched = matcher( seed, null, xml, [] ), - i = seed.length; - - // Match elements unmatched by `matcher` - while ( i-- ) { - if ( (elem = unmatched[i]) ) { - seed[i] = !(matches[i] = elem); - } - } - }) : - function( elem, context, xml ) { - input[0] = elem; - matcher( input, null, xml, results ); - // Don't keep the element (issue #299) - input[0] = null; - return !results.pop(); - }; - }), - - "has": markFunction(function( selector ) { - return function( elem ) { - return Sizzle( selector, elem ).length > 0; - }; - }), - - "contains": markFunction(function( text ) { - text = text.replace( runescape, funescape ); - return function( elem ) { - return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; - }; - }), - - // "Whether an element is represented by a :lang() selector - // is based solely on the element's language value - // being equal to the identifier C, - // or beginning with the identifier C immediately followed by "-". - // The matching of C against the element's language value is performed case-insensitively. - // The identifier C does not have to be a valid language name." - // http://www.w3.org/TR/selectors/#lang-pseudo - "lang": markFunction( function( lang ) { - // lang value must be a valid identifier - if ( !ridentifier.test(lang || "") ) { - Sizzle.error( "unsupported lang: " + lang ); - } - lang = lang.replace( runescape, funescape ).toLowerCase(); - return function( elem ) { - var elemLang; - do { - if ( (elemLang = documentIsHTML ? - elem.lang : - elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) { - - elemLang = elemLang.toLowerCase(); - return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; - } - } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); - return false; - }; - }), - - // Miscellaneous - "target": function( elem ) { - var hash = window.location && window.location.hash; - return hash && hash.slice( 1 ) === elem.id; - }, - - "root": function( elem ) { - return elem === docElem; - }, - - "focus": function( elem ) { - return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); - }, - - // Boolean properties - "enabled": createDisabledPseudo( false ), - "disabled": createDisabledPseudo( true ), - - "checked": function( elem ) { - // In CSS3, :checked should return both checked and selected elements - // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked - var nodeName = elem.nodeName.toLowerCase(); - return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); - }, - - "selected": function( elem ) { - // Accessing this property makes selected-by-default - // options in Safari work properly - if ( elem.parentNode ) { - elem.parentNode.selectedIndex; - } - - return elem.selected === true; - }, - - // Contents - "empty": function( elem ) { - // http://www.w3.org/TR/selectors/#empty-pseudo - // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), - // but not by others (comment: 8; processing instruction: 7; etc.) - // nodeType < 6 works because attributes (2) do not appear as children - for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { - if ( elem.nodeType < 6 ) { - return false; - } - } - return true; - }, - - "parent": function( elem ) { - return !Expr.pseudos["empty"]( elem ); - }, - - // Element/input types - "header": function( elem ) { - return rheader.test( elem.nodeName ); - }, - - "input": function( elem ) { - return rinputs.test( elem.nodeName ); - }, - - "button": function( elem ) { - var name = elem.nodeName.toLowerCase(); - return name === "input" && elem.type === "button" || name === "button"; - }, - - "text": function( elem ) { - var attr; - return elem.nodeName.toLowerCase() === "input" && - elem.type === "text" && - - // Support: IE<8 - // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" - ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" ); - }, - - // Position-in-collection - "first": createPositionalPseudo(function() { - return [ 0 ]; - }), - - "last": createPositionalPseudo(function( matchIndexes, length ) { - return [ length - 1 ]; - }), - - "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { - return [ argument < 0 ? argument + length : argument ]; - }), - - "even": createPositionalPseudo(function( matchIndexes, length ) { - var i = 0; - for ( ; i < length; i += 2 ) { - matchIndexes.push( i ); - } - return matchIndexes; - }), - - "odd": createPositionalPseudo(function( matchIndexes, length ) { - var i = 1; - for ( ; i < length; i += 2 ) { - matchIndexes.push( i ); - } - return matchIndexes; - }), - - "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { - var i = argument < 0 ? argument + length : argument; - for ( ; --i >= 0; ) { - matchIndexes.push( i ); - } - return matchIndexes; - }), - - "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { - var i = argument < 0 ? argument + length : argument; - for ( ; ++i < length; ) { - matchIndexes.push( i ); - } - return matchIndexes; - }) - } -}; - -Expr.pseudos["nth"] = Expr.pseudos["eq"]; - -// Add button/input type pseudos -for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { - Expr.pseudos[ i ] = createInputPseudo( i ); -} -for ( i in { submit: true, reset: true } ) { - Expr.pseudos[ i ] = createButtonPseudo( i ); -} - -// Easy API for creating new setFilters -function setFilters() {} -setFilters.prototype = Expr.filters = Expr.pseudos; -Expr.setFilters = new setFilters(); - -tokenize = Sizzle.tokenize = function( selector, parseOnly ) { - var matched, match, tokens, type, - soFar, groups, preFilters, - cached = tokenCache[ selector + " " ]; - - if ( cached ) { - return parseOnly ? 0 : cached.slice( 0 ); - } - - soFar = selector; - groups = []; - preFilters = Expr.preFilter; - - while ( soFar ) { - - // Comma and first run - if ( !matched || (match = rcomma.exec( soFar )) ) { - if ( match ) { - // Don't consume trailing commas as valid - soFar = soFar.slice( match[0].length ) || soFar; - } - groups.push( (tokens = []) ); - } - - matched = false; - - // Combinators - if ( (match = rcombinators.exec( soFar )) ) { - matched = match.shift(); - tokens.push({ - value: matched, - // Cast descendant combinators to space - type: match[0].replace( rtrim, " " ) - }); - soFar = soFar.slice( matched.length ); - } - - // Filters - for ( type in Expr.filter ) { - if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || - (match = preFilters[ type ]( match ))) ) { - matched = match.shift(); - tokens.push({ - value: matched, - type: type, - matches: match - }); - soFar = soFar.slice( matched.length ); - } - } - - if ( !matched ) { - break; - } - } - - // Return the length of the invalid excess - // if we're just parsing - // Otherwise, throw an error or return tokens - return parseOnly ? - soFar.length : - soFar ? - Sizzle.error( selector ) : - // Cache the tokens - tokenCache( selector, groups ).slice( 0 ); -}; - -function toSelector( tokens ) { - var i = 0, - len = tokens.length, - selector = ""; - for ( ; i < len; i++ ) { - selector += tokens[i].value; - } - return selector; -} - -function addCombinator( matcher, combinator, base ) { - var dir = combinator.dir, - skip = combinator.next, - key = skip || dir, - checkNonElements = base && key === "parentNode", - doneName = done++; - - return combinator.first ? - // Check against closest ancestor/preceding element - function( elem, context, xml ) { - while ( (elem = elem[ dir ]) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - return matcher( elem, context, xml ); - } - } - return false; - } : - - // Check against all ancestor/preceding elements - function( elem, context, xml ) { - var oldCache, uniqueCache, outerCache, - newCache = [ dirruns, doneName ]; - - // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching - if ( xml ) { - while ( (elem = elem[ dir ]) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - if ( matcher( elem, context, xml ) ) { - return true; - } - } - } - } else { - while ( (elem = elem[ dir ]) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - outerCache = elem[ expando ] || (elem[ expando ] = {}); - - // Support: IE <9 only - // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {}); - - if ( skip && skip === elem.nodeName.toLowerCase() ) { - elem = elem[ dir ] || elem; - } else if ( (oldCache = uniqueCache[ key ]) && - oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { - - // Assign to newCache so results back-propagate to previous elements - return (newCache[ 2 ] = oldCache[ 2 ]); - } else { - // Reuse newcache so results back-propagate to previous elements - uniqueCache[ key ] = newCache; - - // A match means we're done; a fail means we have to keep checking - if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) { - return true; - } - } - } - } - } - return false; - }; -} - -function elementMatcher( matchers ) { - return matchers.length > 1 ? - function( elem, context, xml ) { - var i = matchers.length; - while ( i-- ) { - if ( !matchers[i]( elem, context, xml ) ) { - return false; - } - } - return true; - } : - matchers[0]; -} - -function multipleContexts( selector, contexts, results ) { - var i = 0, - len = contexts.length; - for ( ; i < len; i++ ) { - Sizzle( selector, contexts[i], results ); - } - return results; -} - -function condense( unmatched, map, filter, context, xml ) { - var elem, - newUnmatched = [], - i = 0, - len = unmatched.length, - mapped = map != null; - - for ( ; i < len; i++ ) { - if ( (elem = unmatched[i]) ) { - if ( !filter || filter( elem, context, xml ) ) { - newUnmatched.push( elem ); - if ( mapped ) { - map.push( i ); - } - } - } - } - - return newUnmatched; -} - -function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { - if ( postFilter && !postFilter[ expando ] ) { - postFilter = setMatcher( postFilter ); - } - if ( postFinder && !postFinder[ expando ] ) { - postFinder = setMatcher( postFinder, postSelector ); - } - return markFunction(function( seed, results, context, xml ) { - var temp, i, elem, - preMap = [], - postMap = [], - preexisting = results.length, - - // Get initial elements from seed or context - elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), - - // Prefilter to get matcher input, preserving a map for seed-results synchronization - matcherIn = preFilter && ( seed || !selector ) ? - condense( elems, preMap, preFilter, context, xml ) : - elems, - - matcherOut = matcher ? - // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, - postFinder || ( seed ? preFilter : preexisting || postFilter ) ? - - // ...intermediate processing is necessary - [] : - - // ...otherwise use results directly - results : - matcherIn; - - // Find primary matches - if ( matcher ) { - matcher( matcherIn, matcherOut, context, xml ); - } - - // Apply postFilter - if ( postFilter ) { - temp = condense( matcherOut, postMap ); - postFilter( temp, [], context, xml ); - - // Un-match failing elements by moving them back to matcherIn - i = temp.length; - while ( i-- ) { - if ( (elem = temp[i]) ) { - matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); - } - } - } - - if ( seed ) { - if ( postFinder || preFilter ) { - if ( postFinder ) { - // Get the final matcherOut by condensing this intermediate into postFinder contexts - temp = []; - i = matcherOut.length; - while ( i-- ) { - if ( (elem = matcherOut[i]) ) { - // Restore matcherIn since elem is not yet a final match - temp.push( (matcherIn[i] = elem) ); - } - } - postFinder( null, (matcherOut = []), temp, xml ); - } - - // Move matched elements from seed to results to keep them synchronized - i = matcherOut.length; - while ( i-- ) { - if ( (elem = matcherOut[i]) && - (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) { - - seed[temp] = !(results[temp] = elem); - } - } - } - - // Add elements to results, through postFinder if defined - } else { - matcherOut = condense( - matcherOut === results ? - matcherOut.splice( preexisting, matcherOut.length ) : - matcherOut - ); - if ( postFinder ) { - postFinder( null, results, matcherOut, xml ); - } else { - push.apply( results, matcherOut ); - } - } - }); -} - -function matcherFromTokens( tokens ) { - var checkContext, matcher, j, - len = tokens.length, - leadingRelative = Expr.relative[ tokens[0].type ], - implicitRelative = leadingRelative || Expr.relative[" "], - i = leadingRelative ? 1 : 0, - - // The foundational matcher ensures that elements are reachable from top-level context(s) - matchContext = addCombinator( function( elem ) { - return elem === checkContext; - }, implicitRelative, true ), - matchAnyContext = addCombinator( function( elem ) { - return indexOf( checkContext, elem ) > -1; - }, implicitRelative, true ), - matchers = [ function( elem, context, xml ) { - var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( - (checkContext = context).nodeType ? - matchContext( elem, context, xml ) : - matchAnyContext( elem, context, xml ) ); - // Avoid hanging onto element (issue #299) - checkContext = null; - return ret; - } ]; - - for ( ; i < len; i++ ) { - if ( (matcher = Expr.relative[ tokens[i].type ]) ) { - matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; - } else { - matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); - - // Return special upon seeing a positional matcher - if ( matcher[ expando ] ) { - // Find the next relative operator (if any) for proper handling - j = ++i; - for ( ; j < len; j++ ) { - if ( Expr.relative[ tokens[j].type ] ) { - break; - } - } - return setMatcher( - i > 1 && elementMatcher( matchers ), - i > 1 && toSelector( - // If the preceding token was a descendant combinator, insert an implicit any-element `*` - tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" }) - ).replace( rtrim, "$1" ), - matcher, - i < j && matcherFromTokens( tokens.slice( i, j ) ), - j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), - j < len && toSelector( tokens ) - ); - } - matchers.push( matcher ); - } - } - - return elementMatcher( matchers ); -} - -function matcherFromGroupMatchers( elementMatchers, setMatchers ) { - var bySet = setMatchers.length > 0, - byElement = elementMatchers.length > 0, - superMatcher = function( seed, context, xml, results, outermost ) { - var elem, j, matcher, - matchedCount = 0, - i = "0", - unmatched = seed && [], - setMatched = [], - contextBackup = outermostContext, - // We must always have either seed elements or outermost context - elems = seed || byElement && Expr.find["TAG"]( "*", outermost ), - // Use integer dirruns iff this is the outermost matcher - dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1), - len = elems.length; - - if ( outermost ) { - outermostContext = context === document || context || outermost; - } - - // Add elements passing elementMatchers directly to results - // Support: IE<9, Safari - // Tolerate NodeList properties (IE: "length"; Safari: ) matching elements by id - for ( ; i !== len && (elem = elems[i]) != null; i++ ) { - if ( byElement && elem ) { - j = 0; - if ( !context && elem.ownerDocument !== document ) { - setDocument( elem ); - xml = !documentIsHTML; - } - while ( (matcher = elementMatchers[j++]) ) { - if ( matcher( elem, context || document, xml) ) { - results.push( elem ); - break; - } - } - if ( outermost ) { - dirruns = dirrunsUnique; - } - } - - // Track unmatched elements for set filters - if ( bySet ) { - // They will have gone through all possible matchers - if ( (elem = !matcher && elem) ) { - matchedCount--; - } - - // Lengthen the array for every element, matched or not - if ( seed ) { - unmatched.push( elem ); - } - } - } - - // `i` is now the count of elements visited above, and adding it to `matchedCount` - // makes the latter nonnegative. - matchedCount += i; - - // Apply set filters to unmatched elements - // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount` - // equals `i`), unless we didn't visit _any_ elements in the above loop because we have - // no element matchers and no seed. - // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that - // case, which will result in a "00" `matchedCount` that differs from `i` but is also - // numerically zero. - if ( bySet && i !== matchedCount ) { - j = 0; - while ( (matcher = setMatchers[j++]) ) { - matcher( unmatched, setMatched, context, xml ); - } - - if ( seed ) { - // Reintegrate element matches to eliminate the need for sorting - if ( matchedCount > 0 ) { - while ( i-- ) { - if ( !(unmatched[i] || setMatched[i]) ) { - setMatched[i] = pop.call( results ); - } - } - } - - // Discard index placeholder values to get only actual matches - setMatched = condense( setMatched ); - } - - // Add matches to results - push.apply( results, setMatched ); - - // Seedless set matches succeeding multiple successful matchers stipulate sorting - if ( outermost && !seed && setMatched.length > 0 && - ( matchedCount + setMatchers.length ) > 1 ) { - - Sizzle.uniqueSort( results ); - } - } - - // Override manipulation of globals by nested matchers - if ( outermost ) { - dirruns = dirrunsUnique; - outermostContext = contextBackup; - } - - return unmatched; - }; - - return bySet ? - markFunction( superMatcher ) : - superMatcher; -} - -compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { - var i, - setMatchers = [], - elementMatchers = [], - cached = compilerCache[ selector + " " ]; - - if ( !cached ) { - // Generate a function of recursive functions that can be used to check each element - if ( !match ) { - match = tokenize( selector ); - } - i = match.length; - while ( i-- ) { - cached = matcherFromTokens( match[i] ); - if ( cached[ expando ] ) { - setMatchers.push( cached ); - } else { - elementMatchers.push( cached ); - } - } - - // Cache the compiled function - cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); - - // Save selector and tokenization - cached.selector = selector; - } - return cached; -}; - -/** - * A low-level selection function that works with Sizzle's compiled - * selector functions - * @param {String|Function} selector A selector or a pre-compiled - * selector function built with Sizzle.compile - * @param {Element} context - * @param {Array} [results] - * @param {Array} [seed] A set of elements to match against - */ -select = Sizzle.select = function( selector, context, results, seed ) { - var i, tokens, token, type, find, - compiled = typeof selector === "function" && selector, - match = !seed && tokenize( (selector = compiled.selector || selector) ); - - results = results || []; - - // Try to minimize operations if there is only one selector in the list and no seed - // (the latter of which guarantees us context) - if ( match.length === 1 ) { - - // Reduce context if the leading compound selector is an ID - tokens = match[0] = match[0].slice( 0 ); - if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && - context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) { - - context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; - if ( !context ) { - return results; - - // Precompiled matchers will still verify ancestry, so step up a level - } else if ( compiled ) { - context = context.parentNode; - } - - selector = selector.slice( tokens.shift().value.length ); - } - - // Fetch a seed set for right-to-left matching - i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; - while ( i-- ) { - token = tokens[i]; - - // Abort if we hit a combinator - if ( Expr.relative[ (type = token.type) ] ) { - break; - } - if ( (find = Expr.find[ type ]) ) { - // Search, expanding context for leading sibling combinators - if ( (seed = find( - token.matches[0].replace( runescape, funescape ), - rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context - )) ) { - - // If seed is empty or no tokens remain, we can return early - tokens.splice( i, 1 ); - selector = seed.length && toSelector( tokens ); - if ( !selector ) { - push.apply( results, seed ); - return results; - } - - break; - } - } - } - } - - // Compile and execute a filtering function if one is not provided - // Provide `match` to avoid retokenization if we modified the selector above - ( compiled || compile( selector, match ) )( - seed, - context, - !documentIsHTML, - results, - !context || rsibling.test( selector ) && testContext( context.parentNode ) || context - ); - return results; -}; - -// One-time assignments - -// Sort stability -support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; - -// Support: Chrome 14-35+ -// Always assume duplicates if they aren't passed to the comparison function -support.detectDuplicates = !!hasDuplicate; - -// Initialize against the default document -setDocument(); - -// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) -// Detached nodes confoundingly follow *each other* -support.sortDetached = assert(function( el ) { - // Should return 1, but returns 4 (following) - return el.compareDocumentPosition( document.createElement("fieldset") ) & 1; -}); - -// Support: IE<8 -// Prevent attribute/property "interpolation" -// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx -if ( !assert(function( el ) { - el.innerHTML = ""; - return el.firstChild.getAttribute("href") === "#" ; -}) ) { - addHandle( "type|href|height|width", function( elem, name, isXML ) { - if ( !isXML ) { - return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); - } - }); -} - -// Support: IE<9 -// Use defaultValue in place of getAttribute("value") -if ( !support.attributes || !assert(function( el ) { - el.innerHTML = ""; - el.firstChild.setAttribute( "value", "" ); - return el.firstChild.getAttribute( "value" ) === ""; -}) ) { - addHandle( "value", function( elem, name, isXML ) { - if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { - return elem.defaultValue; - } - }); -} - -// Support: IE<9 -// Use getAttributeNode to fetch booleans when getAttribute lies -if ( !assert(function( el ) { - return el.getAttribute("disabled") == null; -}) ) { - addHandle( booleans, function( elem, name, isXML ) { - var val; - if ( !isXML ) { - return elem[ name ] === true ? name.toLowerCase() : - (val = elem.getAttributeNode( name )) && val.specified ? - val.value : - null; - } - }); -} - -return Sizzle; - -})( window ); - - - -jQuery.find = Sizzle; -jQuery.expr = Sizzle.selectors; - -// Deprecated -jQuery.expr[ ":" ] = jQuery.expr.pseudos; -jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort; -jQuery.text = Sizzle.getText; -jQuery.isXMLDoc = Sizzle.isXML; -jQuery.contains = Sizzle.contains; -jQuery.escapeSelector = Sizzle.escape; - - - - -var dir = function( elem, dir, until ) { - var matched = [], - truncate = until !== undefined; - - while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) { - if ( elem.nodeType === 1 ) { - if ( truncate && jQuery( elem ).is( until ) ) { - break; - } - matched.push( elem ); - } - } - return matched; -}; - - -var siblings = function( n, elem ) { - var matched = []; - - for ( ; n; n = n.nextSibling ) { - if ( n.nodeType === 1 && n !== elem ) { - matched.push( n ); - } - } - - return matched; -}; - - -var rneedsContext = jQuery.expr.match.needsContext; - - - -function nodeName( elem, name ) { - - return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); - -}; -var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); - - - -// Implement the identical functionality for filter and not -function winnow( elements, qualifier, not ) { - if ( isFunction( qualifier ) ) { - return jQuery.grep( elements, function( elem, i ) { - return !!qualifier.call( elem, i, elem ) !== not; - } ); - } - - // Single element - if ( qualifier.nodeType ) { - return jQuery.grep( elements, function( elem ) { - return ( elem === qualifier ) !== not; - } ); - } - - // Arraylike of elements (jQuery, arguments, Array) - if ( typeof qualifier !== "string" ) { - return jQuery.grep( elements, function( elem ) { - return ( indexOf.call( qualifier, elem ) > -1 ) !== not; - } ); - } - - // Filtered directly for both simple and complex selectors - return jQuery.filter( qualifier, elements, not ); -} - -jQuery.filter = function( expr, elems, not ) { - var elem = elems[ 0 ]; - - if ( not ) { - expr = ":not(" + expr + ")"; - } - - if ( elems.length === 1 && elem.nodeType === 1 ) { - return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : []; - } - - return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { - return elem.nodeType === 1; - } ) ); -}; - -jQuery.fn.extend( { - find: function( selector ) { - var i, ret, - len = this.length, - self = this; - - if ( typeof selector !== "string" ) { - return this.pushStack( jQuery( selector ).filter( function() { - for ( i = 0; i < len; i++ ) { - if ( jQuery.contains( self[ i ], this ) ) { - return true; - } - } - } ) ); - } - - ret = this.pushStack( [] ); - - for ( i = 0; i < len; i++ ) { - jQuery.find( selector, self[ i ], ret ); - } - - return len > 1 ? jQuery.uniqueSort( ret ) : ret; - }, - filter: function( selector ) { - return this.pushStack( winnow( this, selector || [], false ) ); - }, - not: function( selector ) { - return this.pushStack( winnow( this, selector || [], true ) ); - }, - is: function( selector ) { - return !!winnow( - this, - - // If this is a positional/relative selector, check membership in the returned set - // so $("p:first").is("p:last") won't return true for a doc with two "p". - typeof selector === "string" && rneedsContext.test( selector ) ? - jQuery( selector ) : - selector || [], - false - ).length; - } -} ); - - -// Initialize a jQuery object - - -// A central reference to the root jQuery(document) -var rootjQuery, - - // A simple way to check for HTML strings - // Prioritize #id over to avoid XSS via location.hash (#9521) - // Strict HTML recognition (#11290: must start with <) - // Shortcut simple #id case for speed - rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/, - - init = jQuery.fn.init = function( selector, context, root ) { - var match, elem; - - // HANDLE: $(""), $(null), $(undefined), $(false) - if ( !selector ) { - return this; - } - - // Method init() accepts an alternate rootjQuery - // so migrate can support jQuery.sub (gh-2101) - root = root || rootjQuery; - - // Handle HTML strings - if ( typeof selector === "string" ) { - if ( selector[ 0 ] === "<" && - selector[ selector.length - 1 ] === ">" && - selector.length >= 3 ) { - - // Assume that strings that start and end with <> are HTML and skip the regex check - match = [ null, selector, null ]; - - } else { - match = rquickExpr.exec( selector ); - } - - // Match html or make sure no context is specified for #id - if ( match && ( match[ 1 ] || !context ) ) { - - // HANDLE: $(html) -> $(array) - if ( match[ 1 ] ) { - context = context instanceof jQuery ? context[ 0 ] : context; - - // Option to run scripts is true for back-compat - // Intentionally let the error be thrown if parseHTML is not present - jQuery.merge( this, jQuery.parseHTML( - match[ 1 ], - context && context.nodeType ? context.ownerDocument || context : document, - true - ) ); - - // HANDLE: $(html, props) - if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) { - for ( match in context ) { - - // Properties of context are called as methods if possible - if ( isFunction( this[ match ] ) ) { - this[ match ]( context[ match ] ); - - // ...and otherwise set as attributes - } else { - this.attr( match, context[ match ] ); - } - } - } - - return this; - - // HANDLE: $(#id) - } else { - elem = document.getElementById( match[ 2 ] ); - - if ( elem ) { - - // Inject the element directly into the jQuery object - this[ 0 ] = elem; - this.length = 1; - } - return this; - } - - // HANDLE: $(expr, $(...)) - } else if ( !context || context.jquery ) { - return ( context || root ).find( selector ); - - // HANDLE: $(expr, context) - // (which is just equivalent to: $(context).find(expr) - } else { - return this.constructor( context ).find( selector ); - } - - // HANDLE: $(DOMElement) - } else if ( selector.nodeType ) { - this[ 0 ] = selector; - this.length = 1; - return this; - - // HANDLE: $(function) - // Shortcut for document ready - } else if ( isFunction( selector ) ) { - return root.ready !== undefined ? - root.ready( selector ) : - - // Execute immediately if ready is not present - selector( jQuery ); - } - - return jQuery.makeArray( selector, this ); - }; - -// Give the init function the jQuery prototype for later instantiation -init.prototype = jQuery.fn; - -// Initialize central reference -rootjQuery = jQuery( document ); - - -var rparentsprev = /^(?:parents|prev(?:Until|All))/, - - // Methods guaranteed to produce a unique set when starting from a unique set - guaranteedUnique = { - children: true, - contents: true, - next: true, - prev: true - }; - -jQuery.fn.extend( { - has: function( target ) { - var targets = jQuery( target, this ), - l = targets.length; - - return this.filter( function() { - var i = 0; - for ( ; i < l; i++ ) { - if ( jQuery.contains( this, targets[ i ] ) ) { - return true; - } - } - } ); - }, - - closest: function( selectors, context ) { - var cur, - i = 0, - l = this.length, - matched = [], - targets = typeof selectors !== "string" && jQuery( selectors ); - - // Positional selectors never match, since there's no _selection_ context - if ( !rneedsContext.test( selectors ) ) { - for ( ; i < l; i++ ) { - for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) { - - // Always skip document fragments - if ( cur.nodeType < 11 && ( targets ? - targets.index( cur ) > -1 : - - // Don't pass non-elements to Sizzle - cur.nodeType === 1 && - jQuery.find.matchesSelector( cur, selectors ) ) ) { - - matched.push( cur ); - break; - } - } - } - } - - return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched ); - }, - - // Determine the position of an element within the set - index: function( elem ) { - - // No argument, return index in parent - if ( !elem ) { - return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1; - } - - // Index in selector - if ( typeof elem === "string" ) { - return indexOf.call( jQuery( elem ), this[ 0 ] ); - } - - // Locate the position of the desired element - return indexOf.call( this, - - // If it receives a jQuery object, the first element is used - elem.jquery ? elem[ 0 ] : elem - ); - }, - - add: function( selector, context ) { - return this.pushStack( - jQuery.uniqueSort( - jQuery.merge( this.get(), jQuery( selector, context ) ) - ) - ); - }, - - addBack: function( selector ) { - return this.add( selector == null ? - this.prevObject : this.prevObject.filter( selector ) - ); - } -} ); - -function sibling( cur, dir ) { - while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {} - return cur; -} - -jQuery.each( { - parent: function( elem ) { - var parent = elem.parentNode; - return parent && parent.nodeType !== 11 ? parent : null; - }, - parents: function( elem ) { - return dir( elem, "parentNode" ); - }, - parentsUntil: function( elem, i, until ) { - return dir( elem, "parentNode", until ); - }, - next: function( elem ) { - return sibling( elem, "nextSibling" ); - }, - prev: function( elem ) { - return sibling( elem, "previousSibling" ); - }, - nextAll: function( elem ) { - return dir( elem, "nextSibling" ); - }, - prevAll: function( elem ) { - return dir( elem, "previousSibling" ); - }, - nextUntil: function( elem, i, until ) { - return dir( elem, "nextSibling", until ); - }, - prevUntil: function( elem, i, until ) { - return dir( elem, "previousSibling", until ); - }, - siblings: function( elem ) { - return siblings( ( elem.parentNode || {} ).firstChild, elem ); - }, - children: function( elem ) { - return siblings( elem.firstChild ); - }, - contents: function( elem ) { - if ( nodeName( elem, "iframe" ) ) { - return elem.contentDocument; - } - - // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only - // Treat the template element as a regular one in browsers that - // don't support it. - if ( nodeName( elem, "template" ) ) { - elem = elem.content || elem; - } - - return jQuery.merge( [], elem.childNodes ); - } -}, function( name, fn ) { - jQuery.fn[ name ] = function( until, selector ) { - var matched = jQuery.map( this, fn, until ); - - if ( name.slice( -5 ) !== "Until" ) { - selector = until; - } - - if ( selector && typeof selector === "string" ) { - matched = jQuery.filter( selector, matched ); - } - - if ( this.length > 1 ) { - - // Remove duplicates - if ( !guaranteedUnique[ name ] ) { - jQuery.uniqueSort( matched ); - } - - // Reverse order for parents* and prev-derivatives - if ( rparentsprev.test( name ) ) { - matched.reverse(); - } - } - - return this.pushStack( matched ); - }; -} ); -var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g ); - - - -// Convert String-formatted options into Object-formatted ones -function createOptions( options ) { - var object = {}; - jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) { - object[ flag ] = true; - } ); - return object; -} - -/* - * Create a callback list using the following parameters: - * - * options: an optional list of space-separated options that will change how - * the callback list behaves or a more traditional option object - * - * By default a callback list will act like an event callback list and can be - * "fired" multiple times. - * - * Possible options: - * - * once: will ensure the callback list can only be fired once (like a Deferred) - * - * memory: will keep track of previous values and will call any callback added - * after the list has been fired right away with the latest "memorized" - * values (like a Deferred) - * - * unique: will ensure a callback can only be added once (no duplicate in the list) - * - * stopOnFalse: interrupt callings when a callback returns false - * - */ -jQuery.Callbacks = function( options ) { - - // Convert options from String-formatted to Object-formatted if needed - // (we check in cache first) - options = typeof options === "string" ? - createOptions( options ) : - jQuery.extend( {}, options ); - - var // Flag to know if list is currently firing - firing, - - // Last fire value for non-forgettable lists - memory, - - // Flag to know if list was already fired - fired, - - // Flag to prevent firing - locked, - - // Actual callback list - list = [], - - // Queue of execution data for repeatable lists - queue = [], - - // Index of currently firing callback (modified by add/remove as needed) - firingIndex = -1, - - // Fire callbacks - fire = function() { - - // Enforce single-firing - locked = locked || options.once; - - // Execute callbacks for all pending executions, - // respecting firingIndex overrides and runtime changes - fired = firing = true; - for ( ; queue.length; firingIndex = -1 ) { - memory = queue.shift(); - while ( ++firingIndex < list.length ) { - - // Run callback and check for early termination - if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false && - options.stopOnFalse ) { - - // Jump to end and forget the data so .add doesn't re-fire - firingIndex = list.length; - memory = false; - } - } - } - - // Forget the data if we're done with it - if ( !options.memory ) { - memory = false; - } - - firing = false; - - // Clean up if we're done firing for good - if ( locked ) { - - // Keep an empty list if we have data for future add calls - if ( memory ) { - list = []; - - // Otherwise, this object is spent - } else { - list = ""; - } - } - }, - - // Actual Callbacks object - self = { - - // Add a callback or a collection of callbacks to the list - add: function() { - if ( list ) { - - // If we have memory from a past run, we should fire after adding - if ( memory && !firing ) { - firingIndex = list.length - 1; - queue.push( memory ); - } - - ( function add( args ) { - jQuery.each( args, function( _, arg ) { - if ( isFunction( arg ) ) { - if ( !options.unique || !self.has( arg ) ) { - list.push( arg ); - } - } else if ( arg && arg.length && toType( arg ) !== "string" ) { - - // Inspect recursively - add( arg ); - } - } ); - } )( arguments ); - - if ( memory && !firing ) { - fire(); - } - } - return this; - }, - - // Remove a callback from the list - remove: function() { - jQuery.each( arguments, function( _, arg ) { - var index; - while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { - list.splice( index, 1 ); - - // Handle firing indexes - if ( index <= firingIndex ) { - firingIndex--; - } - } - } ); - return this; - }, - - // Check if a given callback is in the list. - // If no argument is given, return whether or not list has callbacks attached. - has: function( fn ) { - return fn ? - jQuery.inArray( fn, list ) > -1 : - list.length > 0; - }, - - // Remove all callbacks from the list - empty: function() { - if ( list ) { - list = []; - } - return this; - }, - - // Disable .fire and .add - // Abort any current/pending executions - // Clear all callbacks and values - disable: function() { - locked = queue = []; - list = memory = ""; - return this; - }, - disabled: function() { - return !list; - }, - - // Disable .fire - // Also disable .add unless we have memory (since it would have no effect) - // Abort any pending executions - lock: function() { - locked = queue = []; - if ( !memory && !firing ) { - list = memory = ""; - } - return this; - }, - locked: function() { - return !!locked; - }, - - // Call all callbacks with the given context and arguments - fireWith: function( context, args ) { - if ( !locked ) { - args = args || []; - args = [ context, args.slice ? args.slice() : args ]; - queue.push( args ); - if ( !firing ) { - fire(); - } - } - return this; - }, - - // Call all the callbacks with the given arguments - fire: function() { - self.fireWith( this, arguments ); - return this; - }, - - // To know if the callbacks have already been called at least once - fired: function() { - return !!fired; - } - }; - - return self; -}; - - -function Identity( v ) { - return v; -} -function Thrower( ex ) { - throw ex; -} - -function adoptValue( value, resolve, reject, noValue ) { - var method; - - try { - - // Check for promise aspect first to privilege synchronous behavior - if ( value && isFunction( ( method = value.promise ) ) ) { - method.call( value ).done( resolve ).fail( reject ); - - // Other thenables - } else if ( value && isFunction( ( method = value.then ) ) ) { - method.call( value, resolve, reject ); - - // Other non-thenables - } else { - - // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer: - // * false: [ value ].slice( 0 ) => resolve( value ) - // * true: [ value ].slice( 1 ) => resolve() - resolve.apply( undefined, [ value ].slice( noValue ) ); - } - - // For Promises/A+, convert exceptions into rejections - // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in - // Deferred#then to conditionally suppress rejection. - } catch ( value ) { - - // Support: Android 4.0 only - // Strict mode functions invoked without .call/.apply get global-object context - reject.apply( undefined, [ value ] ); - } -} - -jQuery.extend( { - - Deferred: function( func ) { - var tuples = [ - - // action, add listener, callbacks, - // ... .then handlers, argument index, [final state] - [ "notify", "progress", jQuery.Callbacks( "memory" ), - jQuery.Callbacks( "memory" ), 2 ], - [ "resolve", "done", jQuery.Callbacks( "once memory" ), - jQuery.Callbacks( "once memory" ), 0, "resolved" ], - [ "reject", "fail", jQuery.Callbacks( "once memory" ), - jQuery.Callbacks( "once memory" ), 1, "rejected" ] - ], - state = "pending", - promise = { - state: function() { - return state; - }, - always: function() { - deferred.done( arguments ).fail( arguments ); - return this; - }, - "catch": function( fn ) { - return promise.then( null, fn ); - }, - - // Keep pipe for back-compat - pipe: function( /* fnDone, fnFail, fnProgress */ ) { - var fns = arguments; - - return jQuery.Deferred( function( newDefer ) { - jQuery.each( tuples, function( i, tuple ) { - - // Map tuples (progress, done, fail) to arguments (done, fail, progress) - var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ]; - - // deferred.progress(function() { bind to newDefer or newDefer.notify }) - // deferred.done(function() { bind to newDefer or newDefer.resolve }) - // deferred.fail(function() { bind to newDefer or newDefer.reject }) - deferred[ tuple[ 1 ] ]( function() { - var returned = fn && fn.apply( this, arguments ); - if ( returned && isFunction( returned.promise ) ) { - returned.promise() - .progress( newDefer.notify ) - .done( newDefer.resolve ) - .fail( newDefer.reject ); - } else { - newDefer[ tuple[ 0 ] + "With" ]( - this, - fn ? [ returned ] : arguments - ); - } - } ); - } ); - fns = null; - } ).promise(); - }, - then: function( onFulfilled, onRejected, onProgress ) { - var maxDepth = 0; - function resolve( depth, deferred, handler, special ) { - return function() { - var that = this, - args = arguments, - mightThrow = function() { - var returned, then; - - // Support: Promises/A+ section 2.3.3.3.3 - // https://promisesaplus.com/#point-59 - // Ignore double-resolution attempts - if ( depth < maxDepth ) { - return; - } - - returned = handler.apply( that, args ); - - // Support: Promises/A+ section 2.3.1 - // https://promisesaplus.com/#point-48 - if ( returned === deferred.promise() ) { - throw new TypeError( "Thenable self-resolution" ); - } - - // Support: Promises/A+ sections 2.3.3.1, 3.5 - // https://promisesaplus.com/#point-54 - // https://promisesaplus.com/#point-75 - // Retrieve `then` only once - then = returned && - - // Support: Promises/A+ section 2.3.4 - // https://promisesaplus.com/#point-64 - // Only check objects and functions for thenability - ( typeof returned === "object" || - typeof returned === "function" ) && - returned.then; - - // Handle a returned thenable - if ( isFunction( then ) ) { - - // Special processors (notify) just wait for resolution - if ( special ) { - then.call( - returned, - resolve( maxDepth, deferred, Identity, special ), - resolve( maxDepth, deferred, Thrower, special ) - ); - - // Normal processors (resolve) also hook into progress - } else { - - // ...and disregard older resolution values - maxDepth++; - - then.call( - returned, - resolve( maxDepth, deferred, Identity, special ), - resolve( maxDepth, deferred, Thrower, special ), - resolve( maxDepth, deferred, Identity, - deferred.notifyWith ) - ); - } - - // Handle all other returned values - } else { - - // Only substitute handlers pass on context - // and multiple values (non-spec behavior) - if ( handler !== Identity ) { - that = undefined; - args = [ returned ]; - } - - // Process the value(s) - // Default process is resolve - ( special || deferred.resolveWith )( that, args ); - } - }, - - // Only normal processors (resolve) catch and reject exceptions - process = special ? - mightThrow : - function() { - try { - mightThrow(); - } catch ( e ) { - - if ( jQuery.Deferred.exceptionHook ) { - jQuery.Deferred.exceptionHook( e, - process.stackTrace ); - } - - // Support: Promises/A+ section 2.3.3.3.4.1 - // https://promisesaplus.com/#point-61 - // Ignore post-resolution exceptions - if ( depth + 1 >= maxDepth ) { - - // Only substitute handlers pass on context - // and multiple values (non-spec behavior) - if ( handler !== Thrower ) { - that = undefined; - args = [ e ]; - } - - deferred.rejectWith( that, args ); - } - } - }; - - // Support: Promises/A+ section 2.3.3.3.1 - // https://promisesaplus.com/#point-57 - // Re-resolve promises immediately to dodge false rejection from - // subsequent errors - if ( depth ) { - process(); - } else { - - // Call an optional hook to record the stack, in case of exception - // since it's otherwise lost when execution goes async - if ( jQuery.Deferred.getStackHook ) { - process.stackTrace = jQuery.Deferred.getStackHook(); - } - window.setTimeout( process ); - } - }; - } - - return jQuery.Deferred( function( newDefer ) { - - // progress_handlers.add( ... ) - tuples[ 0 ][ 3 ].add( - resolve( - 0, - newDefer, - isFunction( onProgress ) ? - onProgress : - Identity, - newDefer.notifyWith - ) - ); - - // fulfilled_handlers.add( ... ) - tuples[ 1 ][ 3 ].add( - resolve( - 0, - newDefer, - isFunction( onFulfilled ) ? - onFulfilled : - Identity - ) - ); - - // rejected_handlers.add( ... ) - tuples[ 2 ][ 3 ].add( - resolve( - 0, - newDefer, - isFunction( onRejected ) ? - onRejected : - Thrower - ) - ); - } ).promise(); - }, - - // Get a promise for this deferred - // If obj is provided, the promise aspect is added to the object - promise: function( obj ) { - return obj != null ? jQuery.extend( obj, promise ) : promise; - } - }, - deferred = {}; - - // Add list-specific methods - jQuery.each( tuples, function( i, tuple ) { - var list = tuple[ 2 ], - stateString = tuple[ 5 ]; - - // promise.progress = list.add - // promise.done = list.add - // promise.fail = list.add - promise[ tuple[ 1 ] ] = list.add; - - // Handle state - if ( stateString ) { - list.add( - function() { - - // state = "resolved" (i.e., fulfilled) - // state = "rejected" - state = stateString; - }, - - // rejected_callbacks.disable - // fulfilled_callbacks.disable - tuples[ 3 - i ][ 2 ].disable, - - // rejected_handlers.disable - // fulfilled_handlers.disable - tuples[ 3 - i ][ 3 ].disable, - - // progress_callbacks.lock - tuples[ 0 ][ 2 ].lock, - - // progress_handlers.lock - tuples[ 0 ][ 3 ].lock - ); - } - - // progress_handlers.fire - // fulfilled_handlers.fire - // rejected_handlers.fire - list.add( tuple[ 3 ].fire ); - - // deferred.notify = function() { deferred.notifyWith(...) } - // deferred.resolve = function() { deferred.resolveWith(...) } - // deferred.reject = function() { deferred.rejectWith(...) } - deferred[ tuple[ 0 ] ] = function() { - deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments ); - return this; - }; - - // deferred.notifyWith = list.fireWith - // deferred.resolveWith = list.fireWith - // deferred.rejectWith = list.fireWith - deferred[ tuple[ 0 ] + "With" ] = list.fireWith; - } ); - - // Make the deferred a promise - promise.promise( deferred ); - - // Call given func if any - if ( func ) { - func.call( deferred, deferred ); - } - - // All done! - return deferred; - }, - - // Deferred helper - when: function( singleValue ) { - var - - // count of uncompleted subordinates - remaining = arguments.length, - - // count of unprocessed arguments - i = remaining, - - // subordinate fulfillment data - resolveContexts = Array( i ), - resolveValues = slice.call( arguments ), - - // the master Deferred - master = jQuery.Deferred(), - - // subordinate callback factory - updateFunc = function( i ) { - return function( value ) { - resolveContexts[ i ] = this; - resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; - if ( !( --remaining ) ) { - master.resolveWith( resolveContexts, resolveValues ); - } - }; - }; - - // Single- and empty arguments are adopted like Promise.resolve - if ( remaining <= 1 ) { - adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject, - !remaining ); - - // Use .then() to unwrap secondary thenables (cf. gh-3000) - if ( master.state() === "pending" || - isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) { - - return master.then(); - } - } - - // Multiple arguments are aggregated like Promise.all array elements - while ( i-- ) { - adoptValue( resolveValues[ i ], updateFunc( i ), master.reject ); - } - - return master.promise(); - } -} ); - - -// These usually indicate a programmer mistake during development, -// warn about them ASAP rather than swallowing them by default. -var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; - -jQuery.Deferred.exceptionHook = function( error, stack ) { - - // Support: IE 8 - 9 only - // Console exists when dev tools are open, which can happen at any time - if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) { - window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack ); - } -}; - - - - -jQuery.readyException = function( error ) { - window.setTimeout( function() { - throw error; - } ); -}; - - - - -// The deferred used on DOM ready -var readyList = jQuery.Deferred(); - -jQuery.fn.ready = function( fn ) { - - readyList - .then( fn ) - - // Wrap jQuery.readyException in a function so that the lookup - // happens at the time of error handling instead of callback - // registration. - .catch( function( error ) { - jQuery.readyException( error ); - } ); - - return this; -}; - -jQuery.extend( { - - // Is the DOM ready to be used? Set to true once it occurs. - isReady: false, - - // A counter to track how many items to wait for before - // the ready event fires. See #6781 - readyWait: 1, - - // Handle when the DOM is ready - ready: function( wait ) { - - // Abort if there are pending holds or we're already ready - if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { - return; - } - - // Remember that the DOM is ready - jQuery.isReady = true; - - // If a normal DOM Ready event fired, decrement, and wait if need be - if ( wait !== true && --jQuery.readyWait > 0 ) { - return; - } - - // If there are functions bound, to execute - readyList.resolveWith( document, [ jQuery ] ); - } -} ); - -jQuery.ready.then = readyList.then; - -// The ready event handler and self cleanup method -function completed() { - document.removeEventListener( "DOMContentLoaded", completed ); - window.removeEventListener( "load", completed ); - jQuery.ready(); -} - -// Catch cases where $(document).ready() is called -// after the browser event has already occurred. -// Support: IE <=9 - 10 only -// Older IE sometimes signals "interactive" too soon -if ( document.readyState === "complete" || - ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) { - - // Handle it asynchronously to allow scripts the opportunity to delay ready - window.setTimeout( jQuery.ready ); - -} else { - - // Use the handy event callback - document.addEventListener( "DOMContentLoaded", completed ); - - // A fallback to window.onload, that will always work - window.addEventListener( "load", completed ); -} - - - - -// Multifunctional method to get and set values of a collection -// The value/s can optionally be executed if it's a function -var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { - var i = 0, - len = elems.length, - bulk = key == null; - - // Sets many values - if ( toType( key ) === "object" ) { - chainable = true; - for ( i in key ) { - access( elems, fn, i, key[ i ], true, emptyGet, raw ); - } - - // Sets one value - } else if ( value !== undefined ) { - chainable = true; - - if ( !isFunction( value ) ) { - raw = true; - } - - if ( bulk ) { - - // Bulk operations run against the entire set - if ( raw ) { - fn.call( elems, value ); - fn = null; - - // ...except when executing function values - } else { - bulk = fn; - fn = function( elem, key, value ) { - return bulk.call( jQuery( elem ), value ); - }; - } - } - - if ( fn ) { - for ( ; i < len; i++ ) { - fn( - elems[ i ], key, raw ? - value : - value.call( elems[ i ], i, fn( elems[ i ], key ) ) - ); - } - } - } - - if ( chainable ) { - return elems; - } - - // Gets - if ( bulk ) { - return fn.call( elems ); - } - - return len ? fn( elems[ 0 ], key ) : emptyGet; -}; - - -// Matches dashed string for camelizing -var rmsPrefix = /^-ms-/, - rdashAlpha = /-([a-z])/g; - -// Used by camelCase as callback to replace() -function fcamelCase( all, letter ) { - return letter.toUpperCase(); -} - -// Convert dashed to camelCase; used by the css and data modules -// Support: IE <=9 - 11, Edge 12 - 15 -// Microsoft forgot to hump their vendor prefix (#9572) -function camelCase( string ) { - return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); -} -var acceptData = function( owner ) { - - // Accepts only: - // - Node - // - Node.ELEMENT_NODE - // - Node.DOCUMENT_NODE - // - Object - // - Any - return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); -}; - - - - -function Data() { - this.expando = jQuery.expando + Data.uid++; -} - -Data.uid = 1; - -Data.prototype = { - - cache: function( owner ) { - - // Check if the owner object already has a cache - var value = owner[ this.expando ]; - - // If not, create one - if ( !value ) { - value = {}; - - // We can accept data for non-element nodes in modern browsers, - // but we should not, see #8335. - // Always return an empty object. - if ( acceptData( owner ) ) { - - // If it is a node unlikely to be stringify-ed or looped over - // use plain assignment - if ( owner.nodeType ) { - owner[ this.expando ] = value; - - // Otherwise secure it in a non-enumerable property - // configurable must be true to allow the property to be - // deleted when data is removed - } else { - Object.defineProperty( owner, this.expando, { - value: value, - configurable: true - } ); - } - } - } - - return value; - }, - set: function( owner, data, value ) { - var prop, - cache = this.cache( owner ); - - // Handle: [ owner, key, value ] args - // Always use camelCase key (gh-2257) - if ( typeof data === "string" ) { - cache[ camelCase( data ) ] = value; - - // Handle: [ owner, { properties } ] args - } else { - - // Copy the properties one-by-one to the cache object - for ( prop in data ) { - cache[ camelCase( prop ) ] = data[ prop ]; - } - } - return cache; - }, - get: function( owner, key ) { - return key === undefined ? - this.cache( owner ) : - - // Always use camelCase key (gh-2257) - owner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ]; - }, - access: function( owner, key, value ) { - - // In cases where either: - // - // 1. No key was specified - // 2. A string key was specified, but no value provided - // - // Take the "read" path and allow the get method to determine - // which value to return, respectively either: - // - // 1. The entire cache object - // 2. The data stored at the key - // - if ( key === undefined || - ( ( key && typeof key === "string" ) && value === undefined ) ) { - - return this.get( owner, key ); - } - - // When the key is not a string, or both a key and value - // are specified, set or extend (existing objects) with either: - // - // 1. An object of properties - // 2. A key and value - // - this.set( owner, key, value ); - - // Since the "set" path can have two possible entry points - // return the expected data based on which path was taken[*] - return value !== undefined ? value : key; - }, - remove: function( owner, key ) { - var i, - cache = owner[ this.expando ]; - - if ( cache === undefined ) { - return; - } - - if ( key !== undefined ) { - - // Support array or space separated string of keys - if ( Array.isArray( key ) ) { - - // If key is an array of keys... - // We always set camelCase keys, so remove that. - key = key.map( camelCase ); - } else { - key = camelCase( key ); - - // If a key with the spaces exists, use it. - // Otherwise, create an array by matching non-whitespace - key = key in cache ? - [ key ] : - ( key.match( rnothtmlwhite ) || [] ); - } - - i = key.length; - - while ( i-- ) { - delete cache[ key[ i ] ]; - } - } - - // Remove the expando if there's no more data - if ( key === undefined || jQuery.isEmptyObject( cache ) ) { - - // Support: Chrome <=35 - 45 - // Webkit & Blink performance suffers when deleting properties - // from DOM nodes, so set to undefined instead - // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted) - if ( owner.nodeType ) { - owner[ this.expando ] = undefined; - } else { - delete owner[ this.expando ]; - } - } - }, - hasData: function( owner ) { - var cache = owner[ this.expando ]; - return cache !== undefined && !jQuery.isEmptyObject( cache ); - } -}; -var dataPriv = new Data(); - -var dataUser = new Data(); - - - -// Implementation Summary -// -// 1. Enforce API surface and semantic compatibility with 1.9.x branch -// 2. Improve the module's maintainability by reducing the storage -// paths to a single mechanism. -// 3. Use the same single mechanism to support "private" and "user" data. -// 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData) -// 5. Avoid exposing implementation details on user objects (eg. expando properties) -// 6. Provide a clear path for implementation upgrade to WeakMap in 2014 - -var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, - rmultiDash = /[A-Z]/g; - -function getData( data ) { - if ( data === "true" ) { - return true; - } - - if ( data === "false" ) { - return false; - } - - if ( data === "null" ) { - return null; - } - - // Only convert to a number if it doesn't change the string - if ( data === +data + "" ) { - return +data; - } - - if ( rbrace.test( data ) ) { - return JSON.parse( data ); - } - - return data; -} - -function dataAttr( elem, key, data ) { - var name; - - // If nothing was found internally, try to fetch any - // data from the HTML5 data-* attribute - if ( data === undefined && elem.nodeType === 1 ) { - name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase(); - data = elem.getAttribute( name ); - - if ( typeof data === "string" ) { - try { - data = getData( data ); - } catch ( e ) {} - - // Make sure we set the data so it isn't changed later - dataUser.set( elem, key, data ); - } else { - data = undefined; - } - } - return data; -} - -jQuery.extend( { - hasData: function( elem ) { - return dataUser.hasData( elem ) || dataPriv.hasData( elem ); - }, - - data: function( elem, name, data ) { - return dataUser.access( elem, name, data ); - }, - - removeData: function( elem, name ) { - dataUser.remove( elem, name ); - }, - - // TODO: Now that all calls to _data and _removeData have been replaced - // with direct calls to dataPriv methods, these can be deprecated. - _data: function( elem, name, data ) { - return dataPriv.access( elem, name, data ); - }, - - _removeData: function( elem, name ) { - dataPriv.remove( elem, name ); - } -} ); - -jQuery.fn.extend( { - data: function( key, value ) { - var i, name, data, - elem = this[ 0 ], - attrs = elem && elem.attributes; - - // Gets all values - if ( key === undefined ) { - if ( this.length ) { - data = dataUser.get( elem ); - - if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) { - i = attrs.length; - while ( i-- ) { - - // Support: IE 11 only - // The attrs elements can be null (#14894) - if ( attrs[ i ] ) { - name = attrs[ i ].name; - if ( name.indexOf( "data-" ) === 0 ) { - name = camelCase( name.slice( 5 ) ); - dataAttr( elem, name, data[ name ] ); - } - } - } - dataPriv.set( elem, "hasDataAttrs", true ); - } - } - - return data; - } - - // Sets multiple values - if ( typeof key === "object" ) { - return this.each( function() { - dataUser.set( this, key ); - } ); - } - - return access( this, function( value ) { - var data; - - // The calling jQuery object (element matches) is not empty - // (and therefore has an element appears at this[ 0 ]) and the - // `value` parameter was not undefined. An empty jQuery object - // will result in `undefined` for elem = this[ 0 ] which will - // throw an exception if an attempt to read a data cache is made. - if ( elem && value === undefined ) { - - // Attempt to get data from the cache - // The key will always be camelCased in Data - data = dataUser.get( elem, key ); - if ( data !== undefined ) { - return data; - } - - // Attempt to "discover" the data in - // HTML5 custom data-* attrs - data = dataAttr( elem, key ); - if ( data !== undefined ) { - return data; - } - - // We tried really hard, but the data doesn't exist. - return; - } - - // Set the data... - this.each( function() { - - // We always store the camelCased key - dataUser.set( this, key, value ); - } ); - }, null, value, arguments.length > 1, null, true ); - }, - - removeData: function( key ) { - return this.each( function() { - dataUser.remove( this, key ); - } ); - } -} ); - - -jQuery.extend( { - queue: function( elem, type, data ) { - var queue; - - if ( elem ) { - type = ( type || "fx" ) + "queue"; - queue = dataPriv.get( elem, type ); - - // Speed up dequeue by getting out quickly if this is just a lookup - if ( data ) { - if ( !queue || Array.isArray( data ) ) { - queue = dataPriv.access( elem, type, jQuery.makeArray( data ) ); - } else { - queue.push( data ); - } - } - return queue || []; - } - }, - - dequeue: function( elem, type ) { - type = type || "fx"; - - var queue = jQuery.queue( elem, type ), - startLength = queue.length, - fn = queue.shift(), - hooks = jQuery._queueHooks( elem, type ), - next = function() { - jQuery.dequeue( elem, type ); - }; - - // If the fx queue is dequeued, always remove the progress sentinel - if ( fn === "inprogress" ) { - fn = queue.shift(); - startLength--; - } - - if ( fn ) { - - // Add a progress sentinel to prevent the fx queue from being - // automatically dequeued - if ( type === "fx" ) { - queue.unshift( "inprogress" ); - } - - // Clear up the last queue stop function - delete hooks.stop; - fn.call( elem, next, hooks ); - } - - if ( !startLength && hooks ) { - hooks.empty.fire(); - } - }, - - // Not public - generate a queueHooks object, or return the current one - _queueHooks: function( elem, type ) { - var key = type + "queueHooks"; - return dataPriv.get( elem, key ) || dataPriv.access( elem, key, { - empty: jQuery.Callbacks( "once memory" ).add( function() { - dataPriv.remove( elem, [ type + "queue", key ] ); - } ) - } ); - } -} ); - -jQuery.fn.extend( { - queue: function( type, data ) { - var setter = 2; - - if ( typeof type !== "string" ) { - data = type; - type = "fx"; - setter--; - } - - if ( arguments.length < setter ) { - return jQuery.queue( this[ 0 ], type ); - } - - return data === undefined ? - this : - this.each( function() { - var queue = jQuery.queue( this, type, data ); - - // Ensure a hooks for this queue - jQuery._queueHooks( this, type ); - - if ( type === "fx" && queue[ 0 ] !== "inprogress" ) { - jQuery.dequeue( this, type ); - } - } ); - }, - dequeue: function( type ) { - return this.each( function() { - jQuery.dequeue( this, type ); - } ); - }, - clearQueue: function( type ) { - return this.queue( type || "fx", [] ); - }, - - // Get a promise resolved when queues of a certain type - // are emptied (fx is the type by default) - promise: function( type, obj ) { - var tmp, - count = 1, - defer = jQuery.Deferred(), - elements = this, - i = this.length, - resolve = function() { - if ( !( --count ) ) { - defer.resolveWith( elements, [ elements ] ); - } - }; - - if ( typeof type !== "string" ) { - obj = type; - type = undefined; - } - type = type || "fx"; - - while ( i-- ) { - tmp = dataPriv.get( elements[ i ], type + "queueHooks" ); - if ( tmp && tmp.empty ) { - count++; - tmp.empty.add( resolve ); - } - } - resolve(); - return defer.promise( obj ); - } -} ); -var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source; - -var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ); - - -var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; - -var isHiddenWithinTree = function( elem, el ) { - - // isHiddenWithinTree might be called from jQuery#filter function; - // in that case, element will be second argument - elem = el || elem; - - // Inline style trumps all - return elem.style.display === "none" || - elem.style.display === "" && - - // Otherwise, check computed style - // Support: Firefox <=43 - 45 - // Disconnected elements can have computed display: none, so first confirm that elem is - // in the document. - jQuery.contains( elem.ownerDocument, elem ) && - - jQuery.css( elem, "display" ) === "none"; - }; - -var swap = function( elem, options, callback, args ) { - var ret, name, - old = {}; - - // Remember the old values, and insert the new ones - for ( name in options ) { - old[ name ] = elem.style[ name ]; - elem.style[ name ] = options[ name ]; - } - - ret = callback.apply( elem, args || [] ); - - // Revert the old values - for ( name in options ) { - elem.style[ name ] = old[ name ]; - } - - return ret; -}; - - - - -function adjustCSS( elem, prop, valueParts, tween ) { - var adjusted, scale, - maxIterations = 20, - currentValue = tween ? - function() { - return tween.cur(); - } : - function() { - return jQuery.css( elem, prop, "" ); - }, - initial = currentValue(), - unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), - - // Starting value computation is required for potential unit mismatches - initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) && - rcssNum.exec( jQuery.css( elem, prop ) ); - - if ( initialInUnit && initialInUnit[ 3 ] !== unit ) { - - // Support: Firefox <=54 - // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144) - initial = initial / 2; - - // Trust units reported by jQuery.css - unit = unit || initialInUnit[ 3 ]; - - // Iteratively approximate from a nonzero starting point - initialInUnit = +initial || 1; - - while ( maxIterations-- ) { - - // Evaluate and update our best guess (doubling guesses that zero out). - // Finish if the scale equals or crosses 1 (making the old*new product non-positive). - jQuery.style( elem, prop, initialInUnit + unit ); - if ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) { - maxIterations = 0; - } - initialInUnit = initialInUnit / scale; - - } - - initialInUnit = initialInUnit * 2; - jQuery.style( elem, prop, initialInUnit + unit ); - - // Make sure we update the tween properties later on - valueParts = valueParts || []; - } - - if ( valueParts ) { - initialInUnit = +initialInUnit || +initial || 0; - - // Apply relative offset (+=/-=) if specified - adjusted = valueParts[ 1 ] ? - initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] : - +valueParts[ 2 ]; - if ( tween ) { - tween.unit = unit; - tween.start = initialInUnit; - tween.end = adjusted; - } - } - return adjusted; -} - - -var defaultDisplayMap = {}; - -function getDefaultDisplay( elem ) { - var temp, - doc = elem.ownerDocument, - nodeName = elem.nodeName, - display = defaultDisplayMap[ nodeName ]; - - if ( display ) { - return display; - } - - temp = doc.body.appendChild( doc.createElement( nodeName ) ); - display = jQuery.css( temp, "display" ); - - temp.parentNode.removeChild( temp ); - - if ( display === "none" ) { - display = "block"; - } - defaultDisplayMap[ nodeName ] = display; - - return display; -} - -function showHide( elements, show ) { - var display, elem, - values = [], - index = 0, - length = elements.length; - - // Determine new display value for elements that need to change - for ( ; index < length; index++ ) { - elem = elements[ index ]; - if ( !elem.style ) { - continue; - } - - display = elem.style.display; - if ( show ) { - - // Since we force visibility upon cascade-hidden elements, an immediate (and slow) - // check is required in this first loop unless we have a nonempty display value (either - // inline or about-to-be-restored) - if ( display === "none" ) { - values[ index ] = dataPriv.get( elem, "display" ) || null; - if ( !values[ index ] ) { - elem.style.display = ""; - } - } - if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) { - values[ index ] = getDefaultDisplay( elem ); - } - } else { - if ( display !== "none" ) { - values[ index ] = "none"; - - // Remember what we're overwriting - dataPriv.set( elem, "display", display ); - } - } - } - - // Set the display of the elements in a second loop to avoid constant reflow - for ( index = 0; index < length; index++ ) { - if ( values[ index ] != null ) { - elements[ index ].style.display = values[ index ]; - } - } - - return elements; -} - -jQuery.fn.extend( { - show: function() { - return showHide( this, true ); - }, - hide: function() { - return showHide( this ); - }, - toggle: function( state ) { - if ( typeof state === "boolean" ) { - return state ? this.show() : this.hide(); - } - - return this.each( function() { - if ( isHiddenWithinTree( this ) ) { - jQuery( this ).show(); - } else { - jQuery( this ).hide(); - } - } ); - } -} ); -var rcheckableType = ( /^(?:checkbox|radio)$/i ); - -var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]+)/i ); - -var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i ); - - - -// We have to close these tags to support XHTML (#13200) -var wrapMap = { - - // Support: IE <=9 only - option: [ 1, "" ], - - // XHTML parsers do not magically insert elements in the - // same way that tag soup parsers do. So we cannot shorten - // this by omitting or other required elements. - thead: [ 1, "", "
    " ], - col: [ 2, "", "
    " ], - tr: [ 2, "", "
    " ], - td: [ 3, "", "
    " ], - - _default: [ 0, "", "" ] -}; - -// Support: IE <=9 only -wrapMap.optgroup = wrapMap.option; - -wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; -wrapMap.th = wrapMap.td; - - -function getAll( context, tag ) { - - // Support: IE <=9 - 11 only - // Use typeof to avoid zero-argument method invocation on host objects (#15151) - var ret; - - if ( typeof context.getElementsByTagName !== "undefined" ) { - ret = context.getElementsByTagName( tag || "*" ); - - } else if ( typeof context.querySelectorAll !== "undefined" ) { - ret = context.querySelectorAll( tag || "*" ); - - } else { - ret = []; - } - - if ( tag === undefined || tag && nodeName( context, tag ) ) { - return jQuery.merge( [ context ], ret ); - } - - return ret; -} - - -// Mark scripts as having already been evaluated -function setGlobalEval( elems, refElements ) { - var i = 0, - l = elems.length; - - for ( ; i < l; i++ ) { - dataPriv.set( - elems[ i ], - "globalEval", - !refElements || dataPriv.get( refElements[ i ], "globalEval" ) - ); - } -} - - -var rhtml = /<|&#?\w+;/; - -function buildFragment( elems, context, scripts, selection, ignored ) { - var elem, tmp, tag, wrap, contains, j, - fragment = context.createDocumentFragment(), - nodes = [], - i = 0, - l = elems.length; - - for ( ; i < l; i++ ) { - elem = elems[ i ]; - - if ( elem || elem === 0 ) { - - // Add nodes directly - if ( toType( elem ) === "object" ) { - - // Support: Android <=4.0 only, PhantomJS 1 only - // push.apply(_, arraylike) throws on ancient WebKit - jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); - - // Convert non-html into a text node - } else if ( !rhtml.test( elem ) ) { - nodes.push( context.createTextNode( elem ) ); - - // Convert html into DOM nodes - } else { - tmp = tmp || fragment.appendChild( context.createElement( "div" ) ); - - // Deserialize a standard representation - tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); - wrap = wrapMap[ tag ] || wrapMap._default; - tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ]; - - // Descend through wrappers to the right content - j = wrap[ 0 ]; - while ( j-- ) { - tmp = tmp.lastChild; - } - - // Support: Android <=4.0 only, PhantomJS 1 only - // push.apply(_, arraylike) throws on ancient WebKit - jQuery.merge( nodes, tmp.childNodes ); - - // Remember the top-level container - tmp = fragment.firstChild; - - // Ensure the created nodes are orphaned (#12392) - tmp.textContent = ""; - } - } - } - - // Remove wrapper from fragment - fragment.textContent = ""; - - i = 0; - while ( ( elem = nodes[ i++ ] ) ) { - - // Skip elements already in the context collection (trac-4087) - if ( selection && jQuery.inArray( elem, selection ) > -1 ) { - if ( ignored ) { - ignored.push( elem ); - } - continue; - } - - contains = jQuery.contains( elem.ownerDocument, elem ); - - // Append to fragment - tmp = getAll( fragment.appendChild( elem ), "script" ); - - // Preserve script evaluation history - if ( contains ) { - setGlobalEval( tmp ); - } - - // Capture executables - if ( scripts ) { - j = 0; - while ( ( elem = tmp[ j++ ] ) ) { - if ( rscriptType.test( elem.type || "" ) ) { - scripts.push( elem ); - } - } - } - } - - return fragment; -} - - -( function() { - var fragment = document.createDocumentFragment(), - div = fragment.appendChild( document.createElement( "div" ) ), - input = document.createElement( "input" ); - - // Support: Android 4.0 - 4.3 only - // Check state lost if the name is set (#11217) - // Support: Windows Web Apps (WWA) - // `name` and `type` must use .setAttribute for WWA (#14901) - input.setAttribute( "type", "radio" ); - input.setAttribute( "checked", "checked" ); - input.setAttribute( "name", "t" ); - - div.appendChild( input ); - - // Support: Android <=4.1 only - // Older WebKit doesn't clone checked state correctly in fragments - support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; - - // Support: IE <=11 only - // Make sure textarea (and checkbox) defaultValue is properly cloned - div.innerHTML = ""; - support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; -} )(); -var documentElement = document.documentElement; - - - -var - rkeyEvent = /^key/, - rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, - rtypenamespace = /^([^.]*)(?:\.(.+)|)/; - -function returnTrue() { - return true; -} - -function returnFalse() { - return false; -} - -// Support: IE <=9 only -// See #13393 for more info -function safeActiveElement() { - try { - return document.activeElement; - } catch ( err ) { } -} - -function on( elem, types, selector, data, fn, one ) { - var origFn, type; - - // Types can be a map of types/handlers - if ( typeof types === "object" ) { - - // ( types-Object, selector, data ) - if ( typeof selector !== "string" ) { - - // ( types-Object, data ) - data = data || selector; - selector = undefined; - } - for ( type in types ) { - on( elem, type, selector, data, types[ type ], one ); - } - return elem; - } - - if ( data == null && fn == null ) { - - // ( types, fn ) - fn = selector; - data = selector = undefined; - } else if ( fn == null ) { - if ( typeof selector === "string" ) { - - // ( types, selector, fn ) - fn = data; - data = undefined; - } else { - - // ( types, data, fn ) - fn = data; - data = selector; - selector = undefined; - } - } - if ( fn === false ) { - fn = returnFalse; - } else if ( !fn ) { - return elem; - } - - if ( one === 1 ) { - origFn = fn; - fn = function( event ) { - - // Can use an empty set, since event contains the info - jQuery().off( event ); - return origFn.apply( this, arguments ); - }; - - // Use same guid so caller can remove using origFn - fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); - } - return elem.each( function() { - jQuery.event.add( this, types, fn, data, selector ); - } ); -} - -/* - * Helper functions for managing events -- not part of the public interface. - * Props to Dean Edwards' addEvent library for many of the ideas. - */ -jQuery.event = { - - global: {}, - - add: function( elem, types, handler, data, selector ) { - - var handleObjIn, eventHandle, tmp, - events, t, handleObj, - special, handlers, type, namespaces, origType, - elemData = dataPriv.get( elem ); - - // Don't attach events to noData or text/comment nodes (but allow plain objects) - if ( !elemData ) { - return; - } - - // Caller can pass in an object of custom data in lieu of the handler - if ( handler.handler ) { - handleObjIn = handler; - handler = handleObjIn.handler; - selector = handleObjIn.selector; - } - - // Ensure that invalid selectors throw exceptions at attach time - // Evaluate against documentElement in case elem is a non-element node (e.g., document) - if ( selector ) { - jQuery.find.matchesSelector( documentElement, selector ); - } - - // Make sure that the handler has a unique ID, used to find/remove it later - if ( !handler.guid ) { - handler.guid = jQuery.guid++; - } - - // Init the element's event structure and main handler, if this is the first - if ( !( events = elemData.events ) ) { - events = elemData.events = {}; - } - if ( !( eventHandle = elemData.handle ) ) { - eventHandle = elemData.handle = function( e ) { - - // Discard the second event of a jQuery.event.trigger() and - // when an event is called after a page has unloaded - return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ? - jQuery.event.dispatch.apply( elem, arguments ) : undefined; - }; - } - - // Handle multiple events separated by a space - types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; - t = types.length; - while ( t-- ) { - tmp = rtypenamespace.exec( types[ t ] ) || []; - type = origType = tmp[ 1 ]; - namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); - - // There *must* be a type, no attaching namespace-only handlers - if ( !type ) { - continue; - } - - // If event changes its type, use the special event handlers for the changed type - special = jQuery.event.special[ type ] || {}; - - // If selector defined, determine special event api type, otherwise given type - type = ( selector ? special.delegateType : special.bindType ) || type; - - // Update special based on newly reset type - special = jQuery.event.special[ type ] || {}; - - // handleObj is passed to all event handlers - handleObj = jQuery.extend( { - type: type, - origType: origType, - data: data, - handler: handler, - guid: handler.guid, - selector: selector, - needsContext: selector && jQuery.expr.match.needsContext.test( selector ), - namespace: namespaces.join( "." ) - }, handleObjIn ); - - // Init the event handler queue if we're the first - if ( !( handlers = events[ type ] ) ) { - handlers = events[ type ] = []; - handlers.delegateCount = 0; - - // Only use addEventListener if the special events handler returns false - if ( !special.setup || - special.setup.call( elem, data, namespaces, eventHandle ) === false ) { - - if ( elem.addEventListener ) { - elem.addEventListener( type, eventHandle ); - } - } - } - - if ( special.add ) { - special.add.call( elem, handleObj ); - - if ( !handleObj.handler.guid ) { - handleObj.handler.guid = handler.guid; - } - } - - // Add to the element's handler list, delegates in front - if ( selector ) { - handlers.splice( handlers.delegateCount++, 0, handleObj ); - } else { - handlers.push( handleObj ); - } - - // Keep track of which events have ever been used, for event optimization - jQuery.event.global[ type ] = true; - } - - }, - - // Detach an event or set of events from an element - remove: function( elem, types, handler, selector, mappedTypes ) { - - var j, origCount, tmp, - events, t, handleObj, - special, handlers, type, namespaces, origType, - elemData = dataPriv.hasData( elem ) && dataPriv.get( elem ); - - if ( !elemData || !( events = elemData.events ) ) { - return; - } - - // Once for each type.namespace in types; type may be omitted - types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; - t = types.length; - while ( t-- ) { - tmp = rtypenamespace.exec( types[ t ] ) || []; - type = origType = tmp[ 1 ]; - namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); - - // Unbind all events (on this namespace, if provided) for the element - if ( !type ) { - for ( type in events ) { - jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); - } - continue; - } - - special = jQuery.event.special[ type ] || {}; - type = ( selector ? special.delegateType : special.bindType ) || type; - handlers = events[ type ] || []; - tmp = tmp[ 2 ] && - new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ); - - // Remove matching events - origCount = j = handlers.length; - while ( j-- ) { - handleObj = handlers[ j ]; - - if ( ( mappedTypes || origType === handleObj.origType ) && - ( !handler || handler.guid === handleObj.guid ) && - ( !tmp || tmp.test( handleObj.namespace ) ) && - ( !selector || selector === handleObj.selector || - selector === "**" && handleObj.selector ) ) { - handlers.splice( j, 1 ); - - if ( handleObj.selector ) { - handlers.delegateCount--; - } - if ( special.remove ) { - special.remove.call( elem, handleObj ); - } - } - } - - // Remove generic event handler if we removed something and no more handlers exist - // (avoids potential for endless recursion during removal of special event handlers) - if ( origCount && !handlers.length ) { - if ( !special.teardown || - special.teardown.call( elem, namespaces, elemData.handle ) === false ) { - - jQuery.removeEvent( elem, type, elemData.handle ); - } - - delete events[ type ]; - } - } - - // Remove data and the expando if it's no longer used - if ( jQuery.isEmptyObject( events ) ) { - dataPriv.remove( elem, "handle events" ); - } - }, - - dispatch: function( nativeEvent ) { - - // Make a writable jQuery.Event from the native event object - var event = jQuery.event.fix( nativeEvent ); - - var i, j, ret, matched, handleObj, handlerQueue, - args = new Array( arguments.length ), - handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [], - special = jQuery.event.special[ event.type ] || {}; - - // Use the fix-ed jQuery.Event rather than the (read-only) native event - args[ 0 ] = event; - - for ( i = 1; i < arguments.length; i++ ) { - args[ i ] = arguments[ i ]; - } - - event.delegateTarget = this; - - // Call the preDispatch hook for the mapped type, and let it bail if desired - if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { - return; - } - - // Determine handlers - handlerQueue = jQuery.event.handlers.call( this, event, handlers ); - - // Run delegates first; they may want to stop propagation beneath us - i = 0; - while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) { - event.currentTarget = matched.elem; - - j = 0; - while ( ( handleObj = matched.handlers[ j++ ] ) && - !event.isImmediatePropagationStopped() ) { - - // Triggered event must either 1) have no namespace, or 2) have namespace(s) - // a subset or equal to those in the bound event (both can have no namespace). - if ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) { - - event.handleObj = handleObj; - event.data = handleObj.data; - - ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle || - handleObj.handler ).apply( matched.elem, args ); - - if ( ret !== undefined ) { - if ( ( event.result = ret ) === false ) { - event.preventDefault(); - event.stopPropagation(); - } - } - } - } - } - - // Call the postDispatch hook for the mapped type - if ( special.postDispatch ) { - special.postDispatch.call( this, event ); - } - - return event.result; - }, - - handlers: function( event, handlers ) { - var i, handleObj, sel, matchedHandlers, matchedSelectors, - handlerQueue = [], - delegateCount = handlers.delegateCount, - cur = event.target; - - // Find delegate handlers - if ( delegateCount && - - // Support: IE <=9 - // Black-hole SVG instance trees (trac-13180) - cur.nodeType && - - // Support: Firefox <=42 - // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861) - // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click - // Support: IE 11 only - // ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343) - !( event.type === "click" && event.button >= 1 ) ) { - - for ( ; cur !== this; cur = cur.parentNode || this ) { - - // Don't check non-elements (#13208) - // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) - if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) { - matchedHandlers = []; - matchedSelectors = {}; - for ( i = 0; i < delegateCount; i++ ) { - handleObj = handlers[ i ]; - - // Don't conflict with Object.prototype properties (#13203) - sel = handleObj.selector + " "; - - if ( matchedSelectors[ sel ] === undefined ) { - matchedSelectors[ sel ] = handleObj.needsContext ? - jQuery( sel, this ).index( cur ) > -1 : - jQuery.find( sel, this, null, [ cur ] ).length; - } - if ( matchedSelectors[ sel ] ) { - matchedHandlers.push( handleObj ); - } - } - if ( matchedHandlers.length ) { - handlerQueue.push( { elem: cur, handlers: matchedHandlers } ); - } - } - } - } - - // Add the remaining (directly-bound) handlers - cur = this; - if ( delegateCount < handlers.length ) { - handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } ); - } - - return handlerQueue; - }, - - addProp: function( name, hook ) { - Object.defineProperty( jQuery.Event.prototype, name, { - enumerable: true, - configurable: true, - - get: isFunction( hook ) ? - function() { - if ( this.originalEvent ) { - return hook( this.originalEvent ); - } - } : - function() { - if ( this.originalEvent ) { - return this.originalEvent[ name ]; - } - }, - - set: function( value ) { - Object.defineProperty( this, name, { - enumerable: true, - configurable: true, - writable: true, - value: value - } ); - } - } ); - }, - - fix: function( originalEvent ) { - return originalEvent[ jQuery.expando ] ? - originalEvent : - new jQuery.Event( originalEvent ); - }, - - special: { - load: { - - // Prevent triggered image.load events from bubbling to window.load - noBubble: true - }, - focus: { - - // Fire native event if possible so blur/focus sequence is correct - trigger: function() { - if ( this !== safeActiveElement() && this.focus ) { - this.focus(); - return false; - } - }, - delegateType: "focusin" - }, - blur: { - trigger: function() { - if ( this === safeActiveElement() && this.blur ) { - this.blur(); - return false; - } - }, - delegateType: "focusout" - }, - click: { - - // For checkbox, fire native event so checked state will be right - trigger: function() { - if ( this.type === "checkbox" && this.click && nodeName( this, "input" ) ) { - this.click(); - return false; - } - }, - - // For cross-browser consistency, don't fire native .click() on links - _default: function( event ) { - return nodeName( event.target, "a" ); - } - }, - - beforeunload: { - postDispatch: function( event ) { - - // Support: Firefox 20+ - // Firefox doesn't alert if the returnValue field is not set. - if ( event.result !== undefined && event.originalEvent ) { - event.originalEvent.returnValue = event.result; - } - } - } - } -}; - -jQuery.removeEvent = function( elem, type, handle ) { - - // This "if" is needed for plain objects - if ( elem.removeEventListener ) { - elem.removeEventListener( type, handle ); - } -}; - -jQuery.Event = function( src, props ) { - - // Allow instantiation without the 'new' keyword - if ( !( this instanceof jQuery.Event ) ) { - return new jQuery.Event( src, props ); - } - - // Event object - if ( src && src.type ) { - this.originalEvent = src; - this.type = src.type; - - // Events bubbling up the document may have been marked as prevented - // by a handler lower down the tree; reflect the correct value. - this.isDefaultPrevented = src.defaultPrevented || - src.defaultPrevented === undefined && - - // Support: Android <=2.3 only - src.returnValue === false ? - returnTrue : - returnFalse; - - // Create target properties - // Support: Safari <=6 - 7 only - // Target should not be a text node (#504, #13143) - this.target = ( src.target && src.target.nodeType === 3 ) ? - src.target.parentNode : - src.target; - - this.currentTarget = src.currentTarget; - this.relatedTarget = src.relatedTarget; - - // Event type - } else { - this.type = src; - } - - // Put explicitly provided properties onto the event object - if ( props ) { - jQuery.extend( this, props ); - } - - // Create a timestamp if incoming event doesn't have one - this.timeStamp = src && src.timeStamp || Date.now(); - - // Mark it as fixed - this[ jQuery.expando ] = true; -}; - -// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding -// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html -jQuery.Event.prototype = { - constructor: jQuery.Event, - isDefaultPrevented: returnFalse, - isPropagationStopped: returnFalse, - isImmediatePropagationStopped: returnFalse, - isSimulated: false, - - preventDefault: function() { - var e = this.originalEvent; - - this.isDefaultPrevented = returnTrue; - - if ( e && !this.isSimulated ) { - e.preventDefault(); - } - }, - stopPropagation: function() { - var e = this.originalEvent; - - this.isPropagationStopped = returnTrue; - - if ( e && !this.isSimulated ) { - e.stopPropagation(); - } - }, - stopImmediatePropagation: function() { - var e = this.originalEvent; - - this.isImmediatePropagationStopped = returnTrue; - - if ( e && !this.isSimulated ) { - e.stopImmediatePropagation(); - } - - this.stopPropagation(); - } -}; - -// Includes all common event props including KeyEvent and MouseEvent specific props -jQuery.each( { - altKey: true, - bubbles: true, - cancelable: true, - changedTouches: true, - ctrlKey: true, - detail: true, - eventPhase: true, - metaKey: true, - pageX: true, - pageY: true, - shiftKey: true, - view: true, - "char": true, - charCode: true, - key: true, - keyCode: true, - button: true, - buttons: true, - clientX: true, - clientY: true, - offsetX: true, - offsetY: true, - pointerId: true, - pointerType: true, - screenX: true, - screenY: true, - targetTouches: true, - toElement: true, - touches: true, - - which: function( event ) { - var button = event.button; - - // Add which for key events - if ( event.which == null && rkeyEvent.test( event.type ) ) { - return event.charCode != null ? event.charCode : event.keyCode; - } - - // Add which for click: 1 === left; 2 === middle; 3 === right - if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) { - if ( button & 1 ) { - return 1; - } - - if ( button & 2 ) { - return 3; - } - - if ( button & 4 ) { - return 2; - } - - return 0; - } - - return event.which; - } -}, jQuery.event.addProp ); - -// Create mouseenter/leave events using mouseover/out and event-time checks -// so that event delegation works in jQuery. -// Do the same for pointerenter/pointerleave and pointerover/pointerout -// -// Support: Safari 7 only -// Safari sends mouseenter too often; see: -// https://bugs.chromium.org/p/chromium/issues/detail?id=470258 -// for the description of the bug (it existed in older Chrome versions as well). -jQuery.each( { - mouseenter: "mouseover", - mouseleave: "mouseout", - pointerenter: "pointerover", - pointerleave: "pointerout" -}, function( orig, fix ) { - jQuery.event.special[ orig ] = { - delegateType: fix, - bindType: fix, - - handle: function( event ) { - var ret, - target = this, - related = event.relatedTarget, - handleObj = event.handleObj; - - // For mouseenter/leave call the handler if related is outside the target. - // NB: No relatedTarget if the mouse left/entered the browser window - if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) { - event.type = handleObj.origType; - ret = handleObj.handler.apply( this, arguments ); - event.type = fix; - } - return ret; - } - }; -} ); - -jQuery.fn.extend( { - - on: function( types, selector, data, fn ) { - return on( this, types, selector, data, fn ); - }, - one: function( types, selector, data, fn ) { - return on( this, types, selector, data, fn, 1 ); - }, - off: function( types, selector, fn ) { - var handleObj, type; - if ( types && types.preventDefault && types.handleObj ) { - - // ( event ) dispatched jQuery.Event - handleObj = types.handleObj; - jQuery( types.delegateTarget ).off( - handleObj.namespace ? - handleObj.origType + "." + handleObj.namespace : - handleObj.origType, - handleObj.selector, - handleObj.handler - ); - return this; - } - if ( typeof types === "object" ) { - - // ( types-object [, selector] ) - for ( type in types ) { - this.off( type, selector, types[ type ] ); - } - return this; - } - if ( selector === false || typeof selector === "function" ) { - - // ( types [, fn] ) - fn = selector; - selector = undefined; - } - if ( fn === false ) { - fn = returnFalse; - } - return this.each( function() { - jQuery.event.remove( this, types, fn, selector ); - } ); - } -} ); - - -var - - /* eslint-disable max-len */ - - // See https://github.com/eslint/eslint/issues/3229 - rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi, - - /* eslint-enable */ - - // Support: IE <=10 - 11, Edge 12 - 13 only - // In IE/Edge using regex groups here causes severe slowdowns. - // See https://connect.microsoft.com/IE/feedback/details/1736512/ - rnoInnerhtml = /\s*$/g; - -// Prefer a tbody over its parent table for containing new rows -function manipulationTarget( elem, content ) { - if ( nodeName( elem, "table" ) && - nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) { - - return jQuery( elem ).children( "tbody" )[ 0 ] || elem; - } - - return elem; -} - -// Replace/restore the type attribute of script elements for safe DOM manipulation -function disableScript( elem ) { - elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type; - return elem; -} -function restoreScript( elem ) { - if ( ( elem.type || "" ).slice( 0, 5 ) === "true/" ) { - elem.type = elem.type.slice( 5 ); - } else { - elem.removeAttribute( "type" ); - } - - return elem; -} - -function cloneCopyEvent( src, dest ) { - var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events; - - if ( dest.nodeType !== 1 ) { - return; - } - - // 1. Copy private data: events, handlers, etc. - if ( dataPriv.hasData( src ) ) { - pdataOld = dataPriv.access( src ); - pdataCur = dataPriv.set( dest, pdataOld ); - events = pdataOld.events; - - if ( events ) { - delete pdataCur.handle; - pdataCur.events = {}; - - for ( type in events ) { - for ( i = 0, l = events[ type ].length; i < l; i++ ) { - jQuery.event.add( dest, type, events[ type ][ i ] ); - } - } - } - } - - // 2. Copy user data - if ( dataUser.hasData( src ) ) { - udataOld = dataUser.access( src ); - udataCur = jQuery.extend( {}, udataOld ); - - dataUser.set( dest, udataCur ); - } -} - -// Fix IE bugs, see support tests -function fixInput( src, dest ) { - var nodeName = dest.nodeName.toLowerCase(); - - // Fails to persist the checked state of a cloned checkbox or radio button. - if ( nodeName === "input" && rcheckableType.test( src.type ) ) { - dest.checked = src.checked; - - // Fails to return the selected option to the default selected state when cloning options - } else if ( nodeName === "input" || nodeName === "textarea" ) { - dest.defaultValue = src.defaultValue; - } -} - -function domManip( collection, args, callback, ignored ) { - - // Flatten any nested arrays - args = concat.apply( [], args ); - - var fragment, first, scripts, hasScripts, node, doc, - i = 0, - l = collection.length, - iNoClone = l - 1, - value = args[ 0 ], - valueIsFunction = isFunction( value ); - - // We can't cloneNode fragments that contain checked, in WebKit - if ( valueIsFunction || - ( l > 1 && typeof value === "string" && - !support.checkClone && rchecked.test( value ) ) ) { - return collection.each( function( index ) { - var self = collection.eq( index ); - if ( valueIsFunction ) { - args[ 0 ] = value.call( this, index, self.html() ); - } - domManip( self, args, callback, ignored ); - } ); - } - - if ( l ) { - fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored ); - first = fragment.firstChild; - - if ( fragment.childNodes.length === 1 ) { - fragment = first; - } - - // Require either new content or an interest in ignored elements to invoke the callback - if ( first || ignored ) { - scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); - hasScripts = scripts.length; - - // Use the original fragment for the last item - // instead of the first because it can end up - // being emptied incorrectly in certain situations (#8070). - for ( ; i < l; i++ ) { - node = fragment; - - if ( i !== iNoClone ) { - node = jQuery.clone( node, true, true ); - - // Keep references to cloned scripts for later restoration - if ( hasScripts ) { - - // Support: Android <=4.0 only, PhantomJS 1 only - // push.apply(_, arraylike) throws on ancient WebKit - jQuery.merge( scripts, getAll( node, "script" ) ); - } - } - - callback.call( collection[ i ], node, i ); - } - - if ( hasScripts ) { - doc = scripts[ scripts.length - 1 ].ownerDocument; - - // Reenable scripts - jQuery.map( scripts, restoreScript ); - - // Evaluate executable scripts on first document insertion - for ( i = 0; i < hasScripts; i++ ) { - node = scripts[ i ]; - if ( rscriptType.test( node.type || "" ) && - !dataPriv.access( node, "globalEval" ) && - jQuery.contains( doc, node ) ) { - - if ( node.src && ( node.type || "" ).toLowerCase() !== "module" ) { - - // Optional AJAX dependency, but won't run scripts if not present - if ( jQuery._evalUrl ) { - jQuery._evalUrl( node.src ); - } - } else { - DOMEval( node.textContent.replace( rcleanScript, "" ), doc, node ); - } - } - } - } - } - } - - return collection; -} - -function remove( elem, selector, keepData ) { - var node, - nodes = selector ? jQuery.filter( selector, elem ) : elem, - i = 0; - - for ( ; ( node = nodes[ i ] ) != null; i++ ) { - if ( !keepData && node.nodeType === 1 ) { - jQuery.cleanData( getAll( node ) ); - } - - if ( node.parentNode ) { - if ( keepData && jQuery.contains( node.ownerDocument, node ) ) { - setGlobalEval( getAll( node, "script" ) ); - } - node.parentNode.removeChild( node ); - } - } - - return elem; -} - -jQuery.extend( { - htmlPrefilter: function( html ) { - return html.replace( rxhtmlTag, "<$1>" ); - }, - - clone: function( elem, dataAndEvents, deepDataAndEvents ) { - var i, l, srcElements, destElements, - clone = elem.cloneNode( true ), - inPage = jQuery.contains( elem.ownerDocument, elem ); - - // Fix IE cloning issues - if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && - !jQuery.isXMLDoc( elem ) ) { - - // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2 - destElements = getAll( clone ); - srcElements = getAll( elem ); - - for ( i = 0, l = srcElements.length; i < l; i++ ) { - fixInput( srcElements[ i ], destElements[ i ] ); - } - } - - // Copy the events from the original to the clone - if ( dataAndEvents ) { - if ( deepDataAndEvents ) { - srcElements = srcElements || getAll( elem ); - destElements = destElements || getAll( clone ); - - for ( i = 0, l = srcElements.length; i < l; i++ ) { - cloneCopyEvent( srcElements[ i ], destElements[ i ] ); - } - } else { - cloneCopyEvent( elem, clone ); - } - } - - // Preserve script evaluation history - destElements = getAll( clone, "script" ); - if ( destElements.length > 0 ) { - setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); - } - - // Return the cloned set - return clone; - }, - - cleanData: function( elems ) { - var data, elem, type, - special = jQuery.event.special, - i = 0; - - for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) { - if ( acceptData( elem ) ) { - if ( ( data = elem[ dataPriv.expando ] ) ) { - if ( data.events ) { - for ( type in data.events ) { - if ( special[ type ] ) { - jQuery.event.remove( elem, type ); - - // This is a shortcut to avoid jQuery.event.remove's overhead - } else { - jQuery.removeEvent( elem, type, data.handle ); - } - } - } - - // Support: Chrome <=35 - 45+ - // Assign undefined instead of using delete, see Data#remove - elem[ dataPriv.expando ] = undefined; - } - if ( elem[ dataUser.expando ] ) { - - // Support: Chrome <=35 - 45+ - // Assign undefined instead of using delete, see Data#remove - elem[ dataUser.expando ] = undefined; - } - } - } - } -} ); - -jQuery.fn.extend( { - detach: function( selector ) { - return remove( this, selector, true ); - }, - - remove: function( selector ) { - return remove( this, selector ); - }, - - text: function( value ) { - return access( this, function( value ) { - return value === undefined ? - jQuery.text( this ) : - this.empty().each( function() { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - this.textContent = value; - } - } ); - }, null, value, arguments.length ); - }, - - append: function() { - return domManip( this, arguments, function( elem ) { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - var target = manipulationTarget( this, elem ); - target.appendChild( elem ); - } - } ); - }, - - prepend: function() { - return domManip( this, arguments, function( elem ) { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - var target = manipulationTarget( this, elem ); - target.insertBefore( elem, target.firstChild ); - } - } ); - }, - - before: function() { - return domManip( this, arguments, function( elem ) { - if ( this.parentNode ) { - this.parentNode.insertBefore( elem, this ); - } - } ); - }, - - after: function() { - return domManip( this, arguments, function( elem ) { - if ( this.parentNode ) { - this.parentNode.insertBefore( elem, this.nextSibling ); - } - } ); - }, - - empty: function() { - var elem, - i = 0; - - for ( ; ( elem = this[ i ] ) != null; i++ ) { - if ( elem.nodeType === 1 ) { - - // Prevent memory leaks - jQuery.cleanData( getAll( elem, false ) ); - - // Remove any remaining nodes - elem.textContent = ""; - } - } - - return this; - }, - - clone: function( dataAndEvents, deepDataAndEvents ) { - dataAndEvents = dataAndEvents == null ? false : dataAndEvents; - deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; - - return this.map( function() { - return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); - } ); - }, - - html: function( value ) { - return access( this, function( value ) { - var elem = this[ 0 ] || {}, - i = 0, - l = this.length; - - if ( value === undefined && elem.nodeType === 1 ) { - return elem.innerHTML; - } - - // See if we can take a shortcut and just use innerHTML - if ( typeof value === "string" && !rnoInnerhtml.test( value ) && - !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { - - value = jQuery.htmlPrefilter( value ); - - try { - for ( ; i < l; i++ ) { - elem = this[ i ] || {}; - - // Remove element nodes and prevent memory leaks - if ( elem.nodeType === 1 ) { - jQuery.cleanData( getAll( elem, false ) ); - elem.innerHTML = value; - } - } - - elem = 0; - - // If using innerHTML throws an exception, use the fallback method - } catch ( e ) {} - } - - if ( elem ) { - this.empty().append( value ); - } - }, null, value, arguments.length ); - }, - - replaceWith: function() { - var ignored = []; - - // Make the changes, replacing each non-ignored context element with the new content - return domManip( this, arguments, function( elem ) { - var parent = this.parentNode; - - if ( jQuery.inArray( this, ignored ) < 0 ) { - jQuery.cleanData( getAll( this ) ); - if ( parent ) { - parent.replaceChild( elem, this ); - } - } - - // Force callback invocation - }, ignored ); - } -} ); - -jQuery.each( { - appendTo: "append", - prependTo: "prepend", - insertBefore: "before", - insertAfter: "after", - replaceAll: "replaceWith" -}, function( name, original ) { - jQuery.fn[ name ] = function( selector ) { - var elems, - ret = [], - insert = jQuery( selector ), - last = insert.length - 1, - i = 0; - - for ( ; i <= last; i++ ) { - elems = i === last ? this : this.clone( true ); - jQuery( insert[ i ] )[ original ]( elems ); - - // Support: Android <=4.0 only, PhantomJS 1 only - // .get() because push.apply(_, arraylike) throws on ancient WebKit - push.apply( ret, elems.get() ); - } - - return this.pushStack( ret ); - }; -} ); -var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); - -var getStyles = function( elem ) { - - // Support: IE <=11 only, Firefox <=30 (#15098, #14150) - // IE throws on elements created in popups - // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" - var view = elem.ownerDocument.defaultView; - - if ( !view || !view.opener ) { - view = window; - } - - return view.getComputedStyle( elem ); - }; - -var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); - - - -( function() { - - // Executing both pixelPosition & boxSizingReliable tests require only one layout - // so they're executed at the same time to save the second computation. - function computeStyleTests() { - - // This is a singleton, we need to execute it only once - if ( !div ) { - return; - } - - container.style.cssText = "position:absolute;left:-11111px;width:60px;" + - "margin-top:1px;padding:0;border:0"; - div.style.cssText = - "position:relative;display:block;box-sizing:border-box;overflow:scroll;" + - "margin:auto;border:1px;padding:1px;" + - "width:60%;top:1%"; - documentElement.appendChild( container ).appendChild( div ); - - var divStyle = window.getComputedStyle( div ); - pixelPositionVal = divStyle.top !== "1%"; - - // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44 - reliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12; - - // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3 - // Some styles come back with percentage values, even though they shouldn't - div.style.right = "60%"; - pixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36; - - // Support: IE 9 - 11 only - // Detect misreporting of content dimensions for box-sizing:border-box elements - boxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36; - - // Support: IE 9 only - // Detect overflow:scroll screwiness (gh-3699) - div.style.position = "absolute"; - scrollboxSizeVal = div.offsetWidth === 36 || "absolute"; - - documentElement.removeChild( container ); - - // Nullify the div so it wouldn't be stored in the memory and - // it will also be a sign that checks already performed - div = null; - } - - function roundPixelMeasures( measure ) { - return Math.round( parseFloat( measure ) ); - } - - var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal, - reliableMarginLeftVal, - container = document.createElement( "div" ), - div = document.createElement( "div" ); - - // Finish early in limited (non-browser) environments - if ( !div.style ) { - return; - } - - // Support: IE <=9 - 11 only - // Style of cloned element affects source element cloned (#8908) - div.style.backgroundClip = "content-box"; - div.cloneNode( true ).style.backgroundClip = ""; - support.clearCloneStyle = div.style.backgroundClip === "content-box"; - - jQuery.extend( support, { - boxSizingReliable: function() { - computeStyleTests(); - return boxSizingReliableVal; - }, - pixelBoxStyles: function() { - computeStyleTests(); - return pixelBoxStylesVal; - }, - pixelPosition: function() { - computeStyleTests(); - return pixelPositionVal; - }, - reliableMarginLeft: function() { - computeStyleTests(); - return reliableMarginLeftVal; - }, - scrollboxSize: function() { - computeStyleTests(); - return scrollboxSizeVal; - } - } ); -} )(); - - -function curCSS( elem, name, computed ) { - var width, minWidth, maxWidth, ret, - - // Support: Firefox 51+ - // Retrieving style before computed somehow - // fixes an issue with getting wrong values - // on detached elements - style = elem.style; - - computed = computed || getStyles( elem ); - - // getPropertyValue is needed for: - // .css('filter') (IE 9 only, #12537) - // .css('--customProperty) (#3144) - if ( computed ) { - ret = computed.getPropertyValue( name ) || computed[ name ]; - - if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) { - ret = jQuery.style( elem, name ); - } - - // A tribute to the "awesome hack by Dean Edwards" - // Android Browser returns percentage for some values, - // but width seems to be reliably pixels. - // This is against the CSSOM draft spec: - // https://drafts.csswg.org/cssom/#resolved-values - if ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) { - - // Remember the original values - width = style.width; - minWidth = style.minWidth; - maxWidth = style.maxWidth; - - // Put in the new values to get a computed value out - style.minWidth = style.maxWidth = style.width = ret; - ret = computed.width; - - // Revert the changed values - style.width = width; - style.minWidth = minWidth; - style.maxWidth = maxWidth; - } - } - - return ret !== undefined ? - - // Support: IE <=9 - 11 only - // IE returns zIndex value as an integer. - ret + "" : - ret; -} - - -function addGetHookIf( conditionFn, hookFn ) { - - // Define the hook, we'll check on the first run if it's really needed. - return { - get: function() { - if ( conditionFn() ) { - - // Hook not needed (or it's not possible to use it due - // to missing dependency), remove it. - delete this.get; - return; - } - - // Hook needed; redefine it so that the support test is not executed again. - return ( this.get = hookFn ).apply( this, arguments ); - } - }; -} - - -var - - // Swappable if display is none or starts with table - // except "table", "table-cell", or "table-caption" - // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display - rdisplayswap = /^(none|table(?!-c[ea]).+)/, - rcustomProp = /^--/, - cssShow = { position: "absolute", visibility: "hidden", display: "block" }, - cssNormalTransform = { - letterSpacing: "0", - fontWeight: "400" - }, - - cssPrefixes = [ "Webkit", "Moz", "ms" ], - emptyStyle = document.createElement( "div" ).style; - -// Return a css property mapped to a potentially vendor prefixed property -function vendorPropName( name ) { - - // Shortcut for names that are not vendor prefixed - if ( name in emptyStyle ) { - return name; - } - - // Check for vendor prefixed names - var capName = name[ 0 ].toUpperCase() + name.slice( 1 ), - i = cssPrefixes.length; - - while ( i-- ) { - name = cssPrefixes[ i ] + capName; - if ( name in emptyStyle ) { - return name; - } - } -} - -// Return a property mapped along what jQuery.cssProps suggests or to -// a vendor prefixed property. -function finalPropName( name ) { - var ret = jQuery.cssProps[ name ]; - if ( !ret ) { - ret = jQuery.cssProps[ name ] = vendorPropName( name ) || name; - } - return ret; -} - -function setPositiveNumber( elem, value, subtract ) { - - // Any relative (+/-) values have already been - // normalized at this point - var matches = rcssNum.exec( value ); - return matches ? - - // Guard against undefined "subtract", e.g., when used as in cssHooks - Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) : - value; -} - -function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) { - var i = dimension === "width" ? 1 : 0, - extra = 0, - delta = 0; - - // Adjustment may not be necessary - if ( box === ( isBorderBox ? "border" : "content" ) ) { - return 0; - } - - for ( ; i < 4; i += 2 ) { - - // Both box models exclude margin - if ( box === "margin" ) { - delta += jQuery.css( elem, box + cssExpand[ i ], true, styles ); - } - - // If we get here with a content-box, we're seeking "padding" or "border" or "margin" - if ( !isBorderBox ) { - - // Add padding - delta += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); - - // For "border" or "margin", add border - if ( box !== "padding" ) { - delta += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); - - // But still keep track of it otherwise - } else { - extra += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); - } - - // If we get here with a border-box (content + padding + border), we're seeking "content" or - // "padding" or "margin" - } else { - - // For "content", subtract padding - if ( box === "content" ) { - delta -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); - } - - // For "content" or "padding", subtract border - if ( box !== "margin" ) { - delta -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); - } - } - } - - // Account for positive content-box scroll gutter when requested by providing computedVal - if ( !isBorderBox && computedVal >= 0 ) { - - // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border - // Assuming integer scroll gutter, subtract the rest and round down - delta += Math.max( 0, Math.ceil( - elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - - computedVal - - delta - - extra - - 0.5 - ) ); - } - - return delta; -} - -function getWidthOrHeight( elem, dimension, extra ) { - - // Start with computed style - var styles = getStyles( elem ), - val = curCSS( elem, dimension, styles ), - isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box", - valueIsBorderBox = isBorderBox; - - // Support: Firefox <=54 - // Return a confounding non-pixel value or feign ignorance, as appropriate. - if ( rnumnonpx.test( val ) ) { - if ( !extra ) { - return val; - } - val = "auto"; - } - - // Check for style in case a browser which returns unreliable values - // for getComputedStyle silently falls back to the reliable elem.style - valueIsBorderBox = valueIsBorderBox && - ( support.boxSizingReliable() || val === elem.style[ dimension ] ); - - // Fall back to offsetWidth/offsetHeight when value is "auto" - // This happens for inline elements with no explicit setting (gh-3571) - // Support: Android <=4.1 - 4.3 only - // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602) - if ( val === "auto" || - !parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) { - - val = elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ]; - - // offsetWidth/offsetHeight provide border-box values - valueIsBorderBox = true; - } - - // Normalize "" and auto - val = parseFloat( val ) || 0; - - // Adjust for the element's box model - return ( val + - boxModelAdjustment( - elem, - dimension, - extra || ( isBorderBox ? "border" : "content" ), - valueIsBorderBox, - styles, - - // Provide the current computed size to request scroll gutter calculation (gh-3589) - val - ) - ) + "px"; -} - -jQuery.extend( { - - // Add in style property hooks for overriding the default - // behavior of getting and setting a style property - cssHooks: { - opacity: { - get: function( elem, computed ) { - if ( computed ) { - - // We should always get a number back from opacity - var ret = curCSS( elem, "opacity" ); - return ret === "" ? "1" : ret; - } - } - } - }, - - // Don't automatically add "px" to these possibly-unitless properties - cssNumber: { - "animationIterationCount": true, - "columnCount": true, - "fillOpacity": true, - "flexGrow": true, - "flexShrink": true, - "fontWeight": true, - "lineHeight": true, - "opacity": true, - "order": true, - "orphans": true, - "widows": true, - "zIndex": true, - "zoom": true - }, - - // Add in properties whose names you wish to fix before - // setting or getting the value - cssProps: {}, - - // Get and set the style property on a DOM Node - style: function( elem, name, value, extra ) { - - // Don't set styles on text and comment nodes - if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { - return; - } - - // Make sure that we're working with the right name - var ret, type, hooks, - origName = camelCase( name ), - isCustomProp = rcustomProp.test( name ), - style = elem.style; - - // Make sure that we're working with the right name. We don't - // want to query the value if it is a CSS custom property - // since they are user-defined. - if ( !isCustomProp ) { - name = finalPropName( origName ); - } - - // Gets hook for the prefixed version, then unprefixed version - hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; - - // Check if we're setting a value - if ( value !== undefined ) { - type = typeof value; - - // Convert "+=" or "-=" to relative numbers (#7345) - if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) { - value = adjustCSS( elem, name, ret ); - - // Fixes bug #9237 - type = "number"; - } - - // Make sure that null and NaN values aren't set (#7116) - if ( value == null || value !== value ) { - return; - } - - // If a number was passed in, add the unit (except for certain CSS properties) - if ( type === "number" ) { - value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" ); - } - - // background-* props affect original clone's values - if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) { - style[ name ] = "inherit"; - } - - // If a hook was provided, use that value, otherwise just set the specified value - if ( !hooks || !( "set" in hooks ) || - ( value = hooks.set( elem, value, extra ) ) !== undefined ) { - - if ( isCustomProp ) { - style.setProperty( name, value ); - } else { - style[ name ] = value; - } - } - - } else { - - // If a hook was provided get the non-computed value from there - if ( hooks && "get" in hooks && - ( ret = hooks.get( elem, false, extra ) ) !== undefined ) { - - return ret; - } - - // Otherwise just get the value from the style object - return style[ name ]; - } - }, - - css: function( elem, name, extra, styles ) { - var val, num, hooks, - origName = camelCase( name ), - isCustomProp = rcustomProp.test( name ); - - // Make sure that we're working with the right name. We don't - // want to modify the value if it is a CSS custom property - // since they are user-defined. - if ( !isCustomProp ) { - name = finalPropName( origName ); - } - - // Try prefixed name followed by the unprefixed name - hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; - - // If a hook was provided get the computed value from there - if ( hooks && "get" in hooks ) { - val = hooks.get( elem, true, extra ); - } - - // Otherwise, if a way to get the computed value exists, use that - if ( val === undefined ) { - val = curCSS( elem, name, styles ); - } - - // Convert "normal" to computed value - if ( val === "normal" && name in cssNormalTransform ) { - val = cssNormalTransform[ name ]; - } - - // Make numeric if forced or a qualifier was provided and val looks numeric - if ( extra === "" || extra ) { - num = parseFloat( val ); - return extra === true || isFinite( num ) ? num || 0 : val; - } - - return val; - } -} ); - -jQuery.each( [ "height", "width" ], function( i, dimension ) { - jQuery.cssHooks[ dimension ] = { - get: function( elem, computed, extra ) { - if ( computed ) { - - // Certain elements can have dimension info if we invisibly show them - // but it must have a current display style that would benefit - return rdisplayswap.test( jQuery.css( elem, "display" ) ) && - - // Support: Safari 8+ - // Table columns in Safari have non-zero offsetWidth & zero - // getBoundingClientRect().width unless display is changed. - // Support: IE <=11 only - // Running getBoundingClientRect on a disconnected node - // in IE throws an error. - ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ? - swap( elem, cssShow, function() { - return getWidthOrHeight( elem, dimension, extra ); - } ) : - getWidthOrHeight( elem, dimension, extra ); - } - }, - - set: function( elem, value, extra ) { - var matches, - styles = getStyles( elem ), - isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box", - subtract = extra && boxModelAdjustment( - elem, - dimension, - extra, - isBorderBox, - styles - ); - - // Account for unreliable border-box dimensions by comparing offset* to computed and - // faking a content-box to get border and padding (gh-3699) - if ( isBorderBox && support.scrollboxSize() === styles.position ) { - subtract -= Math.ceil( - elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - - parseFloat( styles[ dimension ] ) - - boxModelAdjustment( elem, dimension, "border", false, styles ) - - 0.5 - ); - } - - // Convert to pixels if value adjustment is needed - if ( subtract && ( matches = rcssNum.exec( value ) ) && - ( matches[ 3 ] || "px" ) !== "px" ) { - - elem.style[ dimension ] = value; - value = jQuery.css( elem, dimension ); - } - - return setPositiveNumber( elem, value, subtract ); - } - }; -} ); - -jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, - function( elem, computed ) { - if ( computed ) { - return ( parseFloat( curCSS( elem, "marginLeft" ) ) || - elem.getBoundingClientRect().left - - swap( elem, { marginLeft: 0 }, function() { - return elem.getBoundingClientRect().left; - } ) - ) + "px"; - } - } -); - -// These hooks are used by animate to expand properties -jQuery.each( { - margin: "", - padding: "", - border: "Width" -}, function( prefix, suffix ) { - jQuery.cssHooks[ prefix + suffix ] = { - expand: function( value ) { - var i = 0, - expanded = {}, - - // Assumes a single number if not a string - parts = typeof value === "string" ? value.split( " " ) : [ value ]; - - for ( ; i < 4; i++ ) { - expanded[ prefix + cssExpand[ i ] + suffix ] = - parts[ i ] || parts[ i - 2 ] || parts[ 0 ]; - } - - return expanded; - } - }; - - if ( prefix !== "margin" ) { - jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; - } -} ); - -jQuery.fn.extend( { - css: function( name, value ) { - return access( this, function( elem, name, value ) { - var styles, len, - map = {}, - i = 0; - - if ( Array.isArray( name ) ) { - styles = getStyles( elem ); - len = name.length; - - for ( ; i < len; i++ ) { - map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); - } - - return map; - } - - return value !== undefined ? - jQuery.style( elem, name, value ) : - jQuery.css( elem, name ); - }, name, value, arguments.length > 1 ); - } -} ); - - -function Tween( elem, options, prop, end, easing ) { - return new Tween.prototype.init( elem, options, prop, end, easing ); -} -jQuery.Tween = Tween; - -Tween.prototype = { - constructor: Tween, - init: function( elem, options, prop, end, easing, unit ) { - this.elem = elem; - this.prop = prop; - this.easing = easing || jQuery.easing._default; - this.options = options; - this.start = this.now = this.cur(); - this.end = end; - this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" ); - }, - cur: function() { - var hooks = Tween.propHooks[ this.prop ]; - - return hooks && hooks.get ? - hooks.get( this ) : - Tween.propHooks._default.get( this ); - }, - run: function( percent ) { - var eased, - hooks = Tween.propHooks[ this.prop ]; - - if ( this.options.duration ) { - this.pos = eased = jQuery.easing[ this.easing ]( - percent, this.options.duration * percent, 0, 1, this.options.duration - ); - } else { - this.pos = eased = percent; - } - this.now = ( this.end - this.start ) * eased + this.start; - - if ( this.options.step ) { - this.options.step.call( this.elem, this.now, this ); - } - - if ( hooks && hooks.set ) { - hooks.set( this ); - } else { - Tween.propHooks._default.set( this ); - } - return this; - } -}; - -Tween.prototype.init.prototype = Tween.prototype; - -Tween.propHooks = { - _default: { - get: function( tween ) { - var result; - - // Use a property on the element directly when it is not a DOM element, - // or when there is no matching style property that exists. - if ( tween.elem.nodeType !== 1 || - tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) { - return tween.elem[ tween.prop ]; - } - - // Passing an empty string as a 3rd parameter to .css will automatically - // attempt a parseFloat and fallback to a string if the parse fails. - // Simple values such as "10px" are parsed to Float; - // complex values such as "rotate(1rad)" are returned as-is. - result = jQuery.css( tween.elem, tween.prop, "" ); - - // Empty strings, null, undefined and "auto" are converted to 0. - return !result || result === "auto" ? 0 : result; - }, - set: function( tween ) { - - // Use step hook for back compat. - // Use cssHook if its there. - // Use .style if available and use plain properties where available. - if ( jQuery.fx.step[ tween.prop ] ) { - jQuery.fx.step[ tween.prop ]( tween ); - } else if ( tween.elem.nodeType === 1 && - ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null || - jQuery.cssHooks[ tween.prop ] ) ) { - jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); - } else { - tween.elem[ tween.prop ] = tween.now; - } - } - } -}; - -// Support: IE <=9 only -// Panic based approach to setting things on disconnected nodes -Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { - set: function( tween ) { - if ( tween.elem.nodeType && tween.elem.parentNode ) { - tween.elem[ tween.prop ] = tween.now; - } - } -}; - -jQuery.easing = { - linear: function( p ) { - return p; - }, - swing: function( p ) { - return 0.5 - Math.cos( p * Math.PI ) / 2; - }, - _default: "swing" -}; - -jQuery.fx = Tween.prototype.init; - -// Back compat <1.8 extension point -jQuery.fx.step = {}; - - - - -var - fxNow, inProgress, - rfxtypes = /^(?:toggle|show|hide)$/, - rrun = /queueHooks$/; - -function schedule() { - if ( inProgress ) { - if ( document.hidden === false && window.requestAnimationFrame ) { - window.requestAnimationFrame( schedule ); - } else { - window.setTimeout( schedule, jQuery.fx.interval ); - } - - jQuery.fx.tick(); - } -} - -// Animations created synchronously will run synchronously -function createFxNow() { - window.setTimeout( function() { - fxNow = undefined; - } ); - return ( fxNow = Date.now() ); -} - -// Generate parameters to create a standard animation -function genFx( type, includeWidth ) { - var which, - i = 0, - attrs = { height: type }; - - // If we include width, step value is 1 to do all cssExpand values, - // otherwise step value is 2 to skip over Left and Right - includeWidth = includeWidth ? 1 : 0; - for ( ; i < 4; i += 2 - includeWidth ) { - which = cssExpand[ i ]; - attrs[ "margin" + which ] = attrs[ "padding" + which ] = type; - } - - if ( includeWidth ) { - attrs.opacity = attrs.width = type; - } - - return attrs; -} - -function createTween( value, prop, animation ) { - var tween, - collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ), - index = 0, - length = collection.length; - for ( ; index < length; index++ ) { - if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) { - - // We're done with this property - return tween; - } - } -} - -function defaultPrefilter( elem, props, opts ) { - var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display, - isBox = "width" in props || "height" in props, - anim = this, - orig = {}, - style = elem.style, - hidden = elem.nodeType && isHiddenWithinTree( elem ), - dataShow = dataPriv.get( elem, "fxshow" ); - - // Queue-skipping animations hijack the fx hooks - if ( !opts.queue ) { - hooks = jQuery._queueHooks( elem, "fx" ); - if ( hooks.unqueued == null ) { - hooks.unqueued = 0; - oldfire = hooks.empty.fire; - hooks.empty.fire = function() { - if ( !hooks.unqueued ) { - oldfire(); - } - }; - } - hooks.unqueued++; - - anim.always( function() { - - // Ensure the complete handler is called before this completes - anim.always( function() { - hooks.unqueued--; - if ( !jQuery.queue( elem, "fx" ).length ) { - hooks.empty.fire(); - } - } ); - } ); - } - - // Detect show/hide animations - for ( prop in props ) { - value = props[ prop ]; - if ( rfxtypes.test( value ) ) { - delete props[ prop ]; - toggle = toggle || value === "toggle"; - if ( value === ( hidden ? "hide" : "show" ) ) { - - // Pretend to be hidden if this is a "show" and - // there is still data from a stopped show/hide - if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) { - hidden = true; - - // Ignore all other no-op show/hide data - } else { - continue; - } - } - orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop ); - } - } - - // Bail out if this is a no-op like .hide().hide() - propTween = !jQuery.isEmptyObject( props ); - if ( !propTween && jQuery.isEmptyObject( orig ) ) { - return; - } - - // Restrict "overflow" and "display" styles during box animations - if ( isBox && elem.nodeType === 1 ) { - - // Support: IE <=9 - 11, Edge 12 - 15 - // Record all 3 overflow attributes because IE does not infer the shorthand - // from identically-valued overflowX and overflowY and Edge just mirrors - // the overflowX value there. - opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; - - // Identify a display type, preferring old show/hide data over the CSS cascade - restoreDisplay = dataShow && dataShow.display; - if ( restoreDisplay == null ) { - restoreDisplay = dataPriv.get( elem, "display" ); - } - display = jQuery.css( elem, "display" ); - if ( display === "none" ) { - if ( restoreDisplay ) { - display = restoreDisplay; - } else { - - // Get nonempty value(s) by temporarily forcing visibility - showHide( [ elem ], true ); - restoreDisplay = elem.style.display || restoreDisplay; - display = jQuery.css( elem, "display" ); - showHide( [ elem ] ); - } - } - - // Animate inline elements as inline-block - if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) { - if ( jQuery.css( elem, "float" ) === "none" ) { - - // Restore the original display value at the end of pure show/hide animations - if ( !propTween ) { - anim.done( function() { - style.display = restoreDisplay; - } ); - if ( restoreDisplay == null ) { - display = style.display; - restoreDisplay = display === "none" ? "" : display; - } - } - style.display = "inline-block"; - } - } - } - - if ( opts.overflow ) { - style.overflow = "hidden"; - anim.always( function() { - style.overflow = opts.overflow[ 0 ]; - style.overflowX = opts.overflow[ 1 ]; - style.overflowY = opts.overflow[ 2 ]; - } ); - } - - // Implement show/hide animations - propTween = false; - for ( prop in orig ) { - - // General show/hide setup for this element animation - if ( !propTween ) { - if ( dataShow ) { - if ( "hidden" in dataShow ) { - hidden = dataShow.hidden; - } - } else { - dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } ); - } - - // Store hidden/visible for toggle so `.stop().toggle()` "reverses" - if ( toggle ) { - dataShow.hidden = !hidden; - } - - // Show elements before animating them - if ( hidden ) { - showHide( [ elem ], true ); - } - - /* eslint-disable no-loop-func */ - - anim.done( function() { - - /* eslint-enable no-loop-func */ - - // The final step of a "hide" animation is actually hiding the element - if ( !hidden ) { - showHide( [ elem ] ); - } - dataPriv.remove( elem, "fxshow" ); - for ( prop in orig ) { - jQuery.style( elem, prop, orig[ prop ] ); - } - } ); - } - - // Per-property setup - propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim ); - if ( !( prop in dataShow ) ) { - dataShow[ prop ] = propTween.start; - if ( hidden ) { - propTween.end = propTween.start; - propTween.start = 0; - } - } - } -} - -function propFilter( props, specialEasing ) { - var index, name, easing, value, hooks; - - // camelCase, specialEasing and expand cssHook pass - for ( index in props ) { - name = camelCase( index ); - easing = specialEasing[ name ]; - value = props[ index ]; - if ( Array.isArray( value ) ) { - easing = value[ 1 ]; - value = props[ index ] = value[ 0 ]; - } - - if ( index !== name ) { - props[ name ] = value; - delete props[ index ]; - } - - hooks = jQuery.cssHooks[ name ]; - if ( hooks && "expand" in hooks ) { - value = hooks.expand( value ); - delete props[ name ]; - - // Not quite $.extend, this won't overwrite existing keys. - // Reusing 'index' because we have the correct "name" - for ( index in value ) { - if ( !( index in props ) ) { - props[ index ] = value[ index ]; - specialEasing[ index ] = easing; - } - } - } else { - specialEasing[ name ] = easing; - } - } -} - -function Animation( elem, properties, options ) { - var result, - stopped, - index = 0, - length = Animation.prefilters.length, - deferred = jQuery.Deferred().always( function() { - - // Don't match elem in the :animated selector - delete tick.elem; - } ), - tick = function() { - if ( stopped ) { - return false; - } - var currentTime = fxNow || createFxNow(), - remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), - - // Support: Android 2.3 only - // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497) - temp = remaining / animation.duration || 0, - percent = 1 - temp, - index = 0, - length = animation.tweens.length; - - for ( ; index < length; index++ ) { - animation.tweens[ index ].run( percent ); - } - - deferred.notifyWith( elem, [ animation, percent, remaining ] ); - - // If there's more to do, yield - if ( percent < 1 && length ) { - return remaining; - } - - // If this was an empty animation, synthesize a final progress notification - if ( !length ) { - deferred.notifyWith( elem, [ animation, 1, 0 ] ); - } - - // Resolve the animation and report its conclusion - deferred.resolveWith( elem, [ animation ] ); - return false; - }, - animation = deferred.promise( { - elem: elem, - props: jQuery.extend( {}, properties ), - opts: jQuery.extend( true, { - specialEasing: {}, - easing: jQuery.easing._default - }, options ), - originalProperties: properties, - originalOptions: options, - startTime: fxNow || createFxNow(), - duration: options.duration, - tweens: [], - createTween: function( prop, end ) { - var tween = jQuery.Tween( elem, animation.opts, prop, end, - animation.opts.specialEasing[ prop ] || animation.opts.easing ); - animation.tweens.push( tween ); - return tween; - }, - stop: function( gotoEnd ) { - var index = 0, - - // If we are going to the end, we want to run all the tweens - // otherwise we skip this part - length = gotoEnd ? animation.tweens.length : 0; - if ( stopped ) { - return this; - } - stopped = true; - for ( ; index < length; index++ ) { - animation.tweens[ index ].run( 1 ); - } - - // Resolve when we played the last frame; otherwise, reject - if ( gotoEnd ) { - deferred.notifyWith( elem, [ animation, 1, 0 ] ); - deferred.resolveWith( elem, [ animation, gotoEnd ] ); - } else { - deferred.rejectWith( elem, [ animation, gotoEnd ] ); - } - return this; - } - } ), - props = animation.props; - - propFilter( props, animation.opts.specialEasing ); - - for ( ; index < length; index++ ) { - result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts ); - if ( result ) { - if ( isFunction( result.stop ) ) { - jQuery._queueHooks( animation.elem, animation.opts.queue ).stop = - result.stop.bind( result ); - } - return result; - } - } - - jQuery.map( props, createTween, animation ); - - if ( isFunction( animation.opts.start ) ) { - animation.opts.start.call( elem, animation ); - } - - // Attach callbacks from options - animation - .progress( animation.opts.progress ) - .done( animation.opts.done, animation.opts.complete ) - .fail( animation.opts.fail ) - .always( animation.opts.always ); - - jQuery.fx.timer( - jQuery.extend( tick, { - elem: elem, - anim: animation, - queue: animation.opts.queue - } ) - ); - - return animation; -} - -jQuery.Animation = jQuery.extend( Animation, { - - tweeners: { - "*": [ function( prop, value ) { - var tween = this.createTween( prop, value ); - adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween ); - return tween; - } ] - }, - - tweener: function( props, callback ) { - if ( isFunction( props ) ) { - callback = props; - props = [ "*" ]; - } else { - props = props.match( rnothtmlwhite ); - } - - var prop, - index = 0, - length = props.length; - - for ( ; index < length; index++ ) { - prop = props[ index ]; - Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || []; - Animation.tweeners[ prop ].unshift( callback ); - } - }, - - prefilters: [ defaultPrefilter ], - - prefilter: function( callback, prepend ) { - if ( prepend ) { - Animation.prefilters.unshift( callback ); - } else { - Animation.prefilters.push( callback ); - } - } -} ); - -jQuery.speed = function( speed, easing, fn ) { - var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { - complete: fn || !fn && easing || - isFunction( speed ) && speed, - duration: speed, - easing: fn && easing || easing && !isFunction( easing ) && easing - }; - - // Go to the end state if fx are off - if ( jQuery.fx.off ) { - opt.duration = 0; - - } else { - if ( typeof opt.duration !== "number" ) { - if ( opt.duration in jQuery.fx.speeds ) { - opt.duration = jQuery.fx.speeds[ opt.duration ]; - - } else { - opt.duration = jQuery.fx.speeds._default; - } - } - } - - // Normalize opt.queue - true/undefined/null -> "fx" - if ( opt.queue == null || opt.queue === true ) { - opt.queue = "fx"; - } - - // Queueing - opt.old = opt.complete; - - opt.complete = function() { - if ( isFunction( opt.old ) ) { - opt.old.call( this ); - } - - if ( opt.queue ) { - jQuery.dequeue( this, opt.queue ); - } - }; - - return opt; -}; - -jQuery.fn.extend( { - fadeTo: function( speed, to, easing, callback ) { - - // Show any hidden elements after setting opacity to 0 - return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show() - - // Animate to the value specified - .end().animate( { opacity: to }, speed, easing, callback ); - }, - animate: function( prop, speed, easing, callback ) { - var empty = jQuery.isEmptyObject( prop ), - optall = jQuery.speed( speed, easing, callback ), - doAnimation = function() { - - // Operate on a copy of prop so per-property easing won't be lost - var anim = Animation( this, jQuery.extend( {}, prop ), optall ); - - // Empty animations, or finishing resolves immediately - if ( empty || dataPriv.get( this, "finish" ) ) { - anim.stop( true ); - } - }; - doAnimation.finish = doAnimation; - - return empty || optall.queue === false ? - this.each( doAnimation ) : - this.queue( optall.queue, doAnimation ); - }, - stop: function( type, clearQueue, gotoEnd ) { - var stopQueue = function( hooks ) { - var stop = hooks.stop; - delete hooks.stop; - stop( gotoEnd ); - }; - - if ( typeof type !== "string" ) { - gotoEnd = clearQueue; - clearQueue = type; - type = undefined; - } - if ( clearQueue && type !== false ) { - this.queue( type || "fx", [] ); - } - - return this.each( function() { - var dequeue = true, - index = type != null && type + "queueHooks", - timers = jQuery.timers, - data = dataPriv.get( this ); - - if ( index ) { - if ( data[ index ] && data[ index ].stop ) { - stopQueue( data[ index ] ); - } - } else { - for ( index in data ) { - if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) { - stopQueue( data[ index ] ); - } - } - } - - for ( index = timers.length; index--; ) { - if ( timers[ index ].elem === this && - ( type == null || timers[ index ].queue === type ) ) { - - timers[ index ].anim.stop( gotoEnd ); - dequeue = false; - timers.splice( index, 1 ); - } - } - - // Start the next in the queue if the last step wasn't forced. - // Timers currently will call their complete callbacks, which - // will dequeue but only if they were gotoEnd. - if ( dequeue || !gotoEnd ) { - jQuery.dequeue( this, type ); - } - } ); - }, - finish: function( type ) { - if ( type !== false ) { - type = type || "fx"; - } - return this.each( function() { - var index, - data = dataPriv.get( this ), - queue = data[ type + "queue" ], - hooks = data[ type + "queueHooks" ], - timers = jQuery.timers, - length = queue ? queue.length : 0; - - // Enable finishing flag on private data - data.finish = true; - - // Empty the queue first - jQuery.queue( this, type, [] ); - - if ( hooks && hooks.stop ) { - hooks.stop.call( this, true ); - } - - // Look for any active animations, and finish them - for ( index = timers.length; index--; ) { - if ( timers[ index ].elem === this && timers[ index ].queue === type ) { - timers[ index ].anim.stop( true ); - timers.splice( index, 1 ); - } - } - - // Look for any animations in the old queue and finish them - for ( index = 0; index < length; index++ ) { - if ( queue[ index ] && queue[ index ].finish ) { - queue[ index ].finish.call( this ); - } - } - - // Turn off finishing flag - delete data.finish; - } ); - } -} ); - -jQuery.each( [ "toggle", "show", "hide" ], function( i, name ) { - var cssFn = jQuery.fn[ name ]; - jQuery.fn[ name ] = function( speed, easing, callback ) { - return speed == null || typeof speed === "boolean" ? - cssFn.apply( this, arguments ) : - this.animate( genFx( name, true ), speed, easing, callback ); - }; -} ); - -// Generate shortcuts for custom animations -jQuery.each( { - slideDown: genFx( "show" ), - slideUp: genFx( "hide" ), - slideToggle: genFx( "toggle" ), - fadeIn: { opacity: "show" }, - fadeOut: { opacity: "hide" }, - fadeToggle: { opacity: "toggle" } -}, function( name, props ) { - jQuery.fn[ name ] = function( speed, easing, callback ) { - return this.animate( props, speed, easing, callback ); - }; -} ); - -jQuery.timers = []; -jQuery.fx.tick = function() { - var timer, - i = 0, - timers = jQuery.timers; - - fxNow = Date.now(); - - for ( ; i < timers.length; i++ ) { - timer = timers[ i ]; - - // Run the timer and safely remove it when done (allowing for external removal) - if ( !timer() && timers[ i ] === timer ) { - timers.splice( i--, 1 ); - } - } - - if ( !timers.length ) { - jQuery.fx.stop(); - } - fxNow = undefined; -}; - -jQuery.fx.timer = function( timer ) { - jQuery.timers.push( timer ); - jQuery.fx.start(); -}; - -jQuery.fx.interval = 13; -jQuery.fx.start = function() { - if ( inProgress ) { - return; - } - - inProgress = true; - schedule(); -}; - -jQuery.fx.stop = function() { - inProgress = null; -}; - -jQuery.fx.speeds = { - slow: 600, - fast: 200, - - // Default speed - _default: 400 -}; - - -// Based off of the plugin by Clint Helfers, with permission. -// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/ -jQuery.fn.delay = function( time, type ) { - time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; - type = type || "fx"; - - return this.queue( type, function( next, hooks ) { - var timeout = window.setTimeout( next, time ); - hooks.stop = function() { - window.clearTimeout( timeout ); - }; - } ); -}; - - -( function() { - var input = document.createElement( "input" ), - select = document.createElement( "select" ), - opt = select.appendChild( document.createElement( "option" ) ); - - input.type = "checkbox"; - - // Support: Android <=4.3 only - // Default value for a checkbox should be "on" - support.checkOn = input.value !== ""; - - // Support: IE <=11 only - // Must access selectedIndex to make default options select - support.optSelected = opt.selected; - - // Support: IE <=11 only - // An input loses its value after becoming a radio - input = document.createElement( "input" ); - input.value = "t"; - input.type = "radio"; - support.radioValue = input.value === "t"; -} )(); - - -var boolHook, - attrHandle = jQuery.expr.attrHandle; - -jQuery.fn.extend( { - attr: function( name, value ) { - return access( this, jQuery.attr, name, value, arguments.length > 1 ); - }, - - removeAttr: function( name ) { - return this.each( function() { - jQuery.removeAttr( this, name ); - } ); - } -} ); - -jQuery.extend( { - attr: function( elem, name, value ) { - var ret, hooks, - nType = elem.nodeType; - - // Don't get/set attributes on text, comment and attribute nodes - if ( nType === 3 || nType === 8 || nType === 2 ) { - return; - } - - // Fallback to prop when attributes are not supported - if ( typeof elem.getAttribute === "undefined" ) { - return jQuery.prop( elem, name, value ); - } - - // Attribute hooks are determined by the lowercase version - // Grab necessary hook if one is defined - if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { - hooks = jQuery.attrHooks[ name.toLowerCase() ] || - ( jQuery.expr.match.bool.test( name ) ? boolHook : undefined ); - } - - if ( value !== undefined ) { - if ( value === null ) { - jQuery.removeAttr( elem, name ); - return; - } - - if ( hooks && "set" in hooks && - ( ret = hooks.set( elem, value, name ) ) !== undefined ) { - return ret; - } - - elem.setAttribute( name, value + "" ); - return value; - } - - if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { - return ret; - } - - ret = jQuery.find.attr( elem, name ); - - // Non-existent attributes return null, we normalize to undefined - return ret == null ? undefined : ret; - }, - - attrHooks: { - type: { - set: function( elem, value ) { - if ( !support.radioValue && value === "radio" && - nodeName( elem, "input" ) ) { - var val = elem.value; - elem.setAttribute( "type", value ); - if ( val ) { - elem.value = val; - } - return value; - } - } - } - }, - - removeAttr: function( elem, value ) { - var name, - i = 0, - - // Attribute names can contain non-HTML whitespace characters - // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2 - attrNames = value && value.match( rnothtmlwhite ); - - if ( attrNames && elem.nodeType === 1 ) { - while ( ( name = attrNames[ i++ ] ) ) { - elem.removeAttribute( name ); - } - } - } -} ); - -// Hooks for boolean attributes -boolHook = { - set: function( elem, value, name ) { - if ( value === false ) { - - // Remove boolean attributes when set to false - jQuery.removeAttr( elem, name ); - } else { - elem.setAttribute( name, name ); - } - return name; - } -}; - -jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) { - var getter = attrHandle[ name ] || jQuery.find.attr; - - attrHandle[ name ] = function( elem, name, isXML ) { - var ret, handle, - lowercaseName = name.toLowerCase(); - - if ( !isXML ) { - - // Avoid an infinite loop by temporarily removing this function from the getter - handle = attrHandle[ lowercaseName ]; - attrHandle[ lowercaseName ] = ret; - ret = getter( elem, name, isXML ) != null ? - lowercaseName : - null; - attrHandle[ lowercaseName ] = handle; - } - return ret; - }; -} ); - - - - -var rfocusable = /^(?:input|select|textarea|button)$/i, - rclickable = /^(?:a|area)$/i; - -jQuery.fn.extend( { - prop: function( name, value ) { - return access( this, jQuery.prop, name, value, arguments.length > 1 ); - }, - - removeProp: function( name ) { - return this.each( function() { - delete this[ jQuery.propFix[ name ] || name ]; - } ); - } -} ); - -jQuery.extend( { - prop: function( elem, name, value ) { - var ret, hooks, - nType = elem.nodeType; - - // Don't get/set properties on text, comment and attribute nodes - if ( nType === 3 || nType === 8 || nType === 2 ) { - return; - } - - if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { - - // Fix name and attach hooks - name = jQuery.propFix[ name ] || name; - hooks = jQuery.propHooks[ name ]; - } - - if ( value !== undefined ) { - if ( hooks && "set" in hooks && - ( ret = hooks.set( elem, value, name ) ) !== undefined ) { - return ret; - } - - return ( elem[ name ] = value ); - } - - if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { - return ret; - } - - return elem[ name ]; - }, - - propHooks: { - tabIndex: { - get: function( elem ) { - - // Support: IE <=9 - 11 only - // elem.tabIndex doesn't always return the - // correct value when it hasn't been explicitly set - // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ - // Use proper attribute retrieval(#12072) - var tabindex = jQuery.find.attr( elem, "tabindex" ); - - if ( tabindex ) { - return parseInt( tabindex, 10 ); - } - - if ( - rfocusable.test( elem.nodeName ) || - rclickable.test( elem.nodeName ) && - elem.href - ) { - return 0; - } - - return -1; - } - } - }, - - propFix: { - "for": "htmlFor", - "class": "className" - } -} ); - -// Support: IE <=11 only -// Accessing the selectedIndex property -// forces the browser to respect setting selected -// on the option -// The getter ensures a default option is selected -// when in an optgroup -// eslint rule "no-unused-expressions" is disabled for this code -// since it considers such accessions noop -if ( !support.optSelected ) { - jQuery.propHooks.selected = { - get: function( elem ) { - - /* eslint no-unused-expressions: "off" */ - - var parent = elem.parentNode; - if ( parent && parent.parentNode ) { - parent.parentNode.selectedIndex; - } - return null; - }, - set: function( elem ) { - - /* eslint no-unused-expressions: "off" */ - - var parent = elem.parentNode; - if ( parent ) { - parent.selectedIndex; - - if ( parent.parentNode ) { - parent.parentNode.selectedIndex; - } - } - } - }; -} - -jQuery.each( [ - "tabIndex", - "readOnly", - "maxLength", - "cellSpacing", - "cellPadding", - "rowSpan", - "colSpan", - "useMap", - "frameBorder", - "contentEditable" -], function() { - jQuery.propFix[ this.toLowerCase() ] = this; -} ); - - - - - // Strip and collapse whitespace according to HTML spec - // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace - function stripAndCollapse( value ) { - var tokens = value.match( rnothtmlwhite ) || []; - return tokens.join( " " ); - } - - -function getClass( elem ) { - return elem.getAttribute && elem.getAttribute( "class" ) || ""; -} - -function classesToArray( value ) { - if ( Array.isArray( value ) ) { - return value; - } - if ( typeof value === "string" ) { - return value.match( rnothtmlwhite ) || []; - } - return []; -} - -jQuery.fn.extend( { - addClass: function( value ) { - var classes, elem, cur, curValue, clazz, j, finalValue, - i = 0; - - if ( isFunction( value ) ) { - return this.each( function( j ) { - jQuery( this ).addClass( value.call( this, j, getClass( this ) ) ); - } ); - } - - classes = classesToArray( value ); - - if ( classes.length ) { - while ( ( elem = this[ i++ ] ) ) { - curValue = getClass( elem ); - cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); - - if ( cur ) { - j = 0; - while ( ( clazz = classes[ j++ ] ) ) { - if ( cur.indexOf( " " + clazz + " " ) < 0 ) { - cur += clazz + " "; - } - } - - // Only assign if different to avoid unneeded rendering. - finalValue = stripAndCollapse( cur ); - if ( curValue !== finalValue ) { - elem.setAttribute( "class", finalValue ); - } - } - } - } - - return this; - }, - - removeClass: function( value ) { - var classes, elem, cur, curValue, clazz, j, finalValue, - i = 0; - - if ( isFunction( value ) ) { - return this.each( function( j ) { - jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) ); - } ); - } - - if ( !arguments.length ) { - return this.attr( "class", "" ); - } - - classes = classesToArray( value ); - - if ( classes.length ) { - while ( ( elem = this[ i++ ] ) ) { - curValue = getClass( elem ); - - // This expression is here for better compressibility (see addClass) - cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); - - if ( cur ) { - j = 0; - while ( ( clazz = classes[ j++ ] ) ) { - - // Remove *all* instances - while ( cur.indexOf( " " + clazz + " " ) > -1 ) { - cur = cur.replace( " " + clazz + " ", " " ); - } - } - - // Only assign if different to avoid unneeded rendering. - finalValue = stripAndCollapse( cur ); - if ( curValue !== finalValue ) { - elem.setAttribute( "class", finalValue ); - } - } - } - } - - return this; - }, - - toggleClass: function( value, stateVal ) { - var type = typeof value, - isValidValue = type === "string" || Array.isArray( value ); - - if ( typeof stateVal === "boolean" && isValidValue ) { - return stateVal ? this.addClass( value ) : this.removeClass( value ); - } - - if ( isFunction( value ) ) { - return this.each( function( i ) { - jQuery( this ).toggleClass( - value.call( this, i, getClass( this ), stateVal ), - stateVal - ); - } ); - } - - return this.each( function() { - var className, i, self, classNames; - - if ( isValidValue ) { - - // Toggle individual class names - i = 0; - self = jQuery( this ); - classNames = classesToArray( value ); - - while ( ( className = classNames[ i++ ] ) ) { - - // Check each className given, space separated list - if ( self.hasClass( className ) ) { - self.removeClass( className ); - } else { - self.addClass( className ); - } - } - - // Toggle whole class name - } else if ( value === undefined || type === "boolean" ) { - className = getClass( this ); - if ( className ) { - - // Store className if set - dataPriv.set( this, "__className__", className ); - } - - // If the element has a class name or if we're passed `false`, - // then remove the whole classname (if there was one, the above saved it). - // Otherwise bring back whatever was previously saved (if anything), - // falling back to the empty string if nothing was stored. - if ( this.setAttribute ) { - this.setAttribute( "class", - className || value === false ? - "" : - dataPriv.get( this, "__className__" ) || "" - ); - } - } - } ); - }, - - hasClass: function( selector ) { - var className, elem, - i = 0; - - className = " " + selector + " "; - while ( ( elem = this[ i++ ] ) ) { - if ( elem.nodeType === 1 && - ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) { - return true; - } - } - - return false; - } -} ); - - - - -var rreturn = /\r/g; - -jQuery.fn.extend( { - val: function( value ) { - var hooks, ret, valueIsFunction, - elem = this[ 0 ]; - - if ( !arguments.length ) { - if ( elem ) { - hooks = jQuery.valHooks[ elem.type ] || - jQuery.valHooks[ elem.nodeName.toLowerCase() ]; - - if ( hooks && - "get" in hooks && - ( ret = hooks.get( elem, "value" ) ) !== undefined - ) { - return ret; - } - - ret = elem.value; - - // Handle most common string cases - if ( typeof ret === "string" ) { - return ret.replace( rreturn, "" ); - } - - // Handle cases where value is null/undef or number - return ret == null ? "" : ret; - } - - return; - } - - valueIsFunction = isFunction( value ); - - return this.each( function( i ) { - var val; - - if ( this.nodeType !== 1 ) { - return; - } - - if ( valueIsFunction ) { - val = value.call( this, i, jQuery( this ).val() ); - } else { - val = value; - } - - // Treat null/undefined as ""; convert numbers to string - if ( val == null ) { - val = ""; - - } else if ( typeof val === "number" ) { - val += ""; - - } else if ( Array.isArray( val ) ) { - val = jQuery.map( val, function( value ) { - return value == null ? "" : value + ""; - } ); - } - - hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; - - // If set returns undefined, fall back to normal setting - if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) { - this.value = val; - } - } ); - } -} ); - -jQuery.extend( { - valHooks: { - option: { - get: function( elem ) { - - var val = jQuery.find.attr( elem, "value" ); - return val != null ? - val : - - // Support: IE <=10 - 11 only - // option.text throws exceptions (#14686, #14858) - // Strip and collapse whitespace - // https://html.spec.whatwg.org/#strip-and-collapse-whitespace - stripAndCollapse( jQuery.text( elem ) ); - } - }, - select: { - get: function( elem ) { - var value, option, i, - options = elem.options, - index = elem.selectedIndex, - one = elem.type === "select-one", - values = one ? null : [], - max = one ? index + 1 : options.length; - - if ( index < 0 ) { - i = max; - - } else { - i = one ? index : 0; - } - - // Loop through all the selected options - for ( ; i < max; i++ ) { - option = options[ i ]; - - // Support: IE <=9 only - // IE8-9 doesn't update selected after form reset (#2551) - if ( ( option.selected || i === index ) && - - // Don't return options that are disabled or in a disabled optgroup - !option.disabled && - ( !option.parentNode.disabled || - !nodeName( option.parentNode, "optgroup" ) ) ) { - - // Get the specific value for the option - value = jQuery( option ).val(); - - // We don't need an array for one selects - if ( one ) { - return value; - } - - // Multi-Selects return an array - values.push( value ); - } - } - - return values; - }, - - set: function( elem, value ) { - var optionSet, option, - options = elem.options, - values = jQuery.makeArray( value ), - i = options.length; - - while ( i-- ) { - option = options[ i ]; - - /* eslint-disable no-cond-assign */ - - if ( option.selected = - jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1 - ) { - optionSet = true; - } - - /* eslint-enable no-cond-assign */ - } - - // Force browsers to behave consistently when non-matching value is set - if ( !optionSet ) { - elem.selectedIndex = -1; - } - return values; - } - } - } -} ); - -// Radios and checkboxes getter/setter -jQuery.each( [ "radio", "checkbox" ], function() { - jQuery.valHooks[ this ] = { - set: function( elem, value ) { - if ( Array.isArray( value ) ) { - return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 ); - } - } - }; - if ( !support.checkOn ) { - jQuery.valHooks[ this ].get = function( elem ) { - return elem.getAttribute( "value" ) === null ? "on" : elem.value; - }; - } -} ); - - - - -// Return jQuery for attributes-only inclusion - - -support.focusin = "onfocusin" in window; - - -var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, - stopPropagationCallback = function( e ) { - e.stopPropagation(); - }; - -jQuery.extend( jQuery.event, { - - trigger: function( event, data, elem, onlyHandlers ) { - - var i, cur, tmp, bubbleType, ontype, handle, special, lastElement, - eventPath = [ elem || document ], - type = hasOwn.call( event, "type" ) ? event.type : event, - namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : []; - - cur = lastElement = tmp = elem = elem || document; - - // Don't do events on text and comment nodes - if ( elem.nodeType === 3 || elem.nodeType === 8 ) { - return; - } - - // focus/blur morphs to focusin/out; ensure we're not firing them right now - if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { - return; - } - - if ( type.indexOf( "." ) > -1 ) { - - // Namespaced trigger; create a regexp to match event type in handle() - namespaces = type.split( "." ); - type = namespaces.shift(); - namespaces.sort(); - } - ontype = type.indexOf( ":" ) < 0 && "on" + type; - - // Caller can pass in a jQuery.Event object, Object, or just an event type string - event = event[ jQuery.expando ] ? - event : - new jQuery.Event( type, typeof event === "object" && event ); - - // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) - event.isTrigger = onlyHandlers ? 2 : 3; - event.namespace = namespaces.join( "." ); - event.rnamespace = event.namespace ? - new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) : - null; - - // Clean up the event in case it is being reused - event.result = undefined; - if ( !event.target ) { - event.target = elem; - } - - // Clone any incoming data and prepend the event, creating the handler arg list - data = data == null ? - [ event ] : - jQuery.makeArray( data, [ event ] ); - - // Allow special events to draw outside the lines - special = jQuery.event.special[ type ] || {}; - if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { - return; - } - - // Determine event propagation path in advance, per W3C events spec (#9951) - // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) - if ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) { - - bubbleType = special.delegateType || type; - if ( !rfocusMorph.test( bubbleType + type ) ) { - cur = cur.parentNode; - } - for ( ; cur; cur = cur.parentNode ) { - eventPath.push( cur ); - tmp = cur; - } - - // Only add window if we got to document (e.g., not plain obj or detached DOM) - if ( tmp === ( elem.ownerDocument || document ) ) { - eventPath.push( tmp.defaultView || tmp.parentWindow || window ); - } - } - - // Fire handlers on the event path - i = 0; - while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) { - lastElement = cur; - event.type = i > 1 ? - bubbleType : - special.bindType || type; - - // jQuery handler - handle = ( dataPriv.get( cur, "events" ) || {} )[ event.type ] && - dataPriv.get( cur, "handle" ); - if ( handle ) { - handle.apply( cur, data ); - } - - // Native handler - handle = ontype && cur[ ontype ]; - if ( handle && handle.apply && acceptData( cur ) ) { - event.result = handle.apply( cur, data ); - if ( event.result === false ) { - event.preventDefault(); - } - } - } - event.type = type; - - // If nobody prevented the default action, do it now - if ( !onlyHandlers && !event.isDefaultPrevented() ) { - - if ( ( !special._default || - special._default.apply( eventPath.pop(), data ) === false ) && - acceptData( elem ) ) { - - // Call a native DOM method on the target with the same name as the event. - // Don't do default actions on window, that's where global variables be (#6170) - if ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) { - - // Don't re-trigger an onFOO event when we call its FOO() method - tmp = elem[ ontype ]; - - if ( tmp ) { - elem[ ontype ] = null; - } - - // Prevent re-triggering of the same event, since we already bubbled it above - jQuery.event.triggered = type; - - if ( event.isPropagationStopped() ) { - lastElement.addEventListener( type, stopPropagationCallback ); - } - - elem[ type ](); - - if ( event.isPropagationStopped() ) { - lastElement.removeEventListener( type, stopPropagationCallback ); - } - - jQuery.event.triggered = undefined; - - if ( tmp ) { - elem[ ontype ] = tmp; - } - } - } - } - - return event.result; - }, - - // Piggyback on a donor event to simulate a different one - // Used only for `focus(in | out)` events - simulate: function( type, elem, event ) { - var e = jQuery.extend( - new jQuery.Event(), - event, - { - type: type, - isSimulated: true - } - ); - - jQuery.event.trigger( e, null, elem ); - } - -} ); - -jQuery.fn.extend( { - - trigger: function( type, data ) { - return this.each( function() { - jQuery.event.trigger( type, data, this ); - } ); - }, - triggerHandler: function( type, data ) { - var elem = this[ 0 ]; - if ( elem ) { - return jQuery.event.trigger( type, data, elem, true ); - } - } -} ); - - -// Support: Firefox <=44 -// Firefox doesn't have focus(in | out) events -// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787 -// -// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1 -// focus(in | out) events fire after focus & blur events, -// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order -// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857 -if ( !support.focusin ) { - jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) { - - // Attach a single capturing handler on the document while someone wants focusin/focusout - var handler = function( event ) { - jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) ); - }; - - jQuery.event.special[ fix ] = { - setup: function() { - var doc = this.ownerDocument || this, - attaches = dataPriv.access( doc, fix ); - - if ( !attaches ) { - doc.addEventListener( orig, handler, true ); - } - dataPriv.access( doc, fix, ( attaches || 0 ) + 1 ); - }, - teardown: function() { - var doc = this.ownerDocument || this, - attaches = dataPriv.access( doc, fix ) - 1; - - if ( !attaches ) { - doc.removeEventListener( orig, handler, true ); - dataPriv.remove( doc, fix ); - - } else { - dataPriv.access( doc, fix, attaches ); - } - } - }; - } ); -} -var location = window.location; - -var nonce = Date.now(); - -var rquery = ( /\?/ ); - - - -// Cross-browser xml parsing -jQuery.parseXML = function( data ) { - var xml; - if ( !data || typeof data !== "string" ) { - return null; - } - - // Support: IE 9 - 11 only - // IE throws on parseFromString with invalid input. - try { - xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); - } catch ( e ) { - xml = undefined; - } - - if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { - jQuery.error( "Invalid XML: " + data ); - } - return xml; -}; - - -var - rbracket = /\[\]$/, - rCRLF = /\r?\n/g, - rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, - rsubmittable = /^(?:input|select|textarea|keygen)/i; - -function buildParams( prefix, obj, traditional, add ) { - var name; - - if ( Array.isArray( obj ) ) { - - // Serialize array item. - jQuery.each( obj, function( i, v ) { - if ( traditional || rbracket.test( prefix ) ) { - - // Treat each array item as a scalar. - add( prefix, v ); - - } else { - - // Item is non-scalar (array or object), encode its numeric index. - buildParams( - prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]", - v, - traditional, - add - ); - } - } ); - - } else if ( !traditional && toType( obj ) === "object" ) { - - // Serialize object item. - for ( name in obj ) { - buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); - } - - } else { - - // Serialize scalar item. - add( prefix, obj ); - } -} - -// Serialize an array of form elements or a set of -// key/values into a query string -jQuery.param = function( a, traditional ) { - var prefix, - s = [], - add = function( key, valueOrFunction ) { - - // If value is a function, invoke it and use its return value - var value = isFunction( valueOrFunction ) ? - valueOrFunction() : - valueOrFunction; - - s[ s.length ] = encodeURIComponent( key ) + "=" + - encodeURIComponent( value == null ? "" : value ); - }; - - // If an array was passed in, assume that it is an array of form elements. - if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { - - // Serialize the form elements - jQuery.each( a, function() { - add( this.name, this.value ); - } ); - - } else { - - // If traditional, encode the "old" way (the way 1.3.2 or older - // did it), otherwise encode params recursively. - for ( prefix in a ) { - buildParams( prefix, a[ prefix ], traditional, add ); - } - } - - // Return the resulting serialization - return s.join( "&" ); -}; - -jQuery.fn.extend( { - serialize: function() { - return jQuery.param( this.serializeArray() ); - }, - serializeArray: function() { - return this.map( function() { - - // Can add propHook for "elements" to filter or add form elements - var elements = jQuery.prop( this, "elements" ); - return elements ? jQuery.makeArray( elements ) : this; - } ) - .filter( function() { - var type = this.type; - - // Use .is( ":disabled" ) so that fieldset[disabled] works - return this.name && !jQuery( this ).is( ":disabled" ) && - rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && - ( this.checked || !rcheckableType.test( type ) ); - } ) - .map( function( i, elem ) { - var val = jQuery( this ).val(); - - if ( val == null ) { - return null; - } - - if ( Array.isArray( val ) ) { - return jQuery.map( val, function( val ) { - return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; - } ); - } - - return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; - } ).get(); - } -} ); - - -var - r20 = /%20/g, - rhash = /#.*$/, - rantiCache = /([?&])_=[^&]*/, - rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg, - - // #7653, #8125, #8152: local protocol detection - rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, - rnoContent = /^(?:GET|HEAD)$/, - rprotocol = /^\/\//, - - /* Prefilters - * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) - * 2) These are called: - * - BEFORE asking for a transport - * - AFTER param serialization (s.data is a string if s.processData is true) - * 3) key is the dataType - * 4) the catchall symbol "*" can be used - * 5) execution will start with transport dataType and THEN continue down to "*" if needed - */ - prefilters = {}, - - /* Transports bindings - * 1) key is the dataType - * 2) the catchall symbol "*" can be used - * 3) selection will start with transport dataType and THEN go to "*" if needed - */ - transports = {}, - - // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression - allTypes = "*/".concat( "*" ), - - // Anchor tag for parsing the document origin - originAnchor = document.createElement( "a" ); - originAnchor.href = location.href; - -// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport -function addToPrefiltersOrTransports( structure ) { - - // dataTypeExpression is optional and defaults to "*" - return function( dataTypeExpression, func ) { - - if ( typeof dataTypeExpression !== "string" ) { - func = dataTypeExpression; - dataTypeExpression = "*"; - } - - var dataType, - i = 0, - dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || []; - - if ( isFunction( func ) ) { - - // For each dataType in the dataTypeExpression - while ( ( dataType = dataTypes[ i++ ] ) ) { - - // Prepend if requested - if ( dataType[ 0 ] === "+" ) { - dataType = dataType.slice( 1 ) || "*"; - ( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func ); - - // Otherwise append - } else { - ( structure[ dataType ] = structure[ dataType ] || [] ).push( func ); - } - } - } - }; -} - -// Base inspection function for prefilters and transports -function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) { - - var inspected = {}, - seekingTransport = ( structure === transports ); - - function inspect( dataType ) { - var selected; - inspected[ dataType ] = true; - jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) { - var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR ); - if ( typeof dataTypeOrTransport === "string" && - !seekingTransport && !inspected[ dataTypeOrTransport ] ) { - - options.dataTypes.unshift( dataTypeOrTransport ); - inspect( dataTypeOrTransport ); - return false; - } else if ( seekingTransport ) { - return !( selected = dataTypeOrTransport ); - } - } ); - return selected; - } - - return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" ); -} - -// A special extend for ajax options -// that takes "flat" options (not to be deep extended) -// Fixes #9887 -function ajaxExtend( target, src ) { - var key, deep, - flatOptions = jQuery.ajaxSettings.flatOptions || {}; - - for ( key in src ) { - if ( src[ key ] !== undefined ) { - ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ]; - } - } - if ( deep ) { - jQuery.extend( true, target, deep ); - } - - return target; -} - -/* Handles responses to an ajax request: - * - finds the right dataType (mediates between content-type and expected dataType) - * - returns the corresponding response - */ -function ajaxHandleResponses( s, jqXHR, responses ) { - - var ct, type, finalDataType, firstDataType, - contents = s.contents, - dataTypes = s.dataTypes; - - // Remove auto dataType and get content-type in the process - while ( dataTypes[ 0 ] === "*" ) { - dataTypes.shift(); - if ( ct === undefined ) { - ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" ); - } - } - - // Check if we're dealing with a known content-type - if ( ct ) { - for ( type in contents ) { - if ( contents[ type ] && contents[ type ].test( ct ) ) { - dataTypes.unshift( type ); - break; - } - } - } - - // Check to see if we have a response for the expected dataType - if ( dataTypes[ 0 ] in responses ) { - finalDataType = dataTypes[ 0 ]; - } else { - - // Try convertible dataTypes - for ( type in responses ) { - if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) { - finalDataType = type; - break; - } - if ( !firstDataType ) { - firstDataType = type; - } - } - - // Or just use first one - finalDataType = finalDataType || firstDataType; - } - - // If we found a dataType - // We add the dataType to the list if needed - // and return the corresponding response - if ( finalDataType ) { - if ( finalDataType !== dataTypes[ 0 ] ) { - dataTypes.unshift( finalDataType ); - } - return responses[ finalDataType ]; - } -} - -/* Chain conversions given the request and the original response - * Also sets the responseXXX fields on the jqXHR instance - */ -function ajaxConvert( s, response, jqXHR, isSuccess ) { - var conv2, current, conv, tmp, prev, - converters = {}, - - // Work with a copy of dataTypes in case we need to modify it for conversion - dataTypes = s.dataTypes.slice(); - - // Create converters map with lowercased keys - if ( dataTypes[ 1 ] ) { - for ( conv in s.converters ) { - converters[ conv.toLowerCase() ] = s.converters[ conv ]; - } - } - - current = dataTypes.shift(); - - // Convert to each sequential dataType - while ( current ) { - - if ( s.responseFields[ current ] ) { - jqXHR[ s.responseFields[ current ] ] = response; - } - - // Apply the dataFilter if provided - if ( !prev && isSuccess && s.dataFilter ) { - response = s.dataFilter( response, s.dataType ); - } - - prev = current; - current = dataTypes.shift(); - - if ( current ) { - - // There's only work to do if current dataType is non-auto - if ( current === "*" ) { - - current = prev; - - // Convert response if prev dataType is non-auto and differs from current - } else if ( prev !== "*" && prev !== current ) { - - // Seek a direct converter - conv = converters[ prev + " " + current ] || converters[ "* " + current ]; - - // If none found, seek a pair - if ( !conv ) { - for ( conv2 in converters ) { - - // If conv2 outputs current - tmp = conv2.split( " " ); - if ( tmp[ 1 ] === current ) { - - // If prev can be converted to accepted input - conv = converters[ prev + " " + tmp[ 0 ] ] || - converters[ "* " + tmp[ 0 ] ]; - if ( conv ) { - - // Condense equivalence converters - if ( conv === true ) { - conv = converters[ conv2 ]; - - // Otherwise, insert the intermediate dataType - } else if ( converters[ conv2 ] !== true ) { - current = tmp[ 0 ]; - dataTypes.unshift( tmp[ 1 ] ); - } - break; - } - } - } - } - - // Apply converter (if not an equivalence) - if ( conv !== true ) { - - // Unless errors are allowed to bubble, catch and return them - if ( conv && s.throws ) { - response = conv( response ); - } else { - try { - response = conv( response ); - } catch ( e ) { - return { - state: "parsererror", - error: conv ? e : "No conversion from " + prev + " to " + current - }; - } - } - } - } - } - } - - return { state: "success", data: response }; -} - -jQuery.extend( { - - // Counter for holding the number of active queries - active: 0, - - // Last-Modified header cache for next request - lastModified: {}, - etag: {}, - - ajaxSettings: { - url: location.href, - type: "GET", - isLocal: rlocalProtocol.test( location.protocol ), - global: true, - processData: true, - async: true, - contentType: "application/x-www-form-urlencoded; charset=UTF-8", - - /* - timeout: 0, - data: null, - dataType: null, - username: null, - password: null, - cache: null, - throws: false, - traditional: false, - headers: {}, - */ - - accepts: { - "*": allTypes, - text: "text/plain", - html: "text/html", - xml: "application/xml, text/xml", - json: "application/json, text/javascript" - }, - - contents: { - xml: /\bxml\b/, - html: /\bhtml/, - json: /\bjson\b/ - }, - - responseFields: { - xml: "responseXML", - text: "responseText", - json: "responseJSON" - }, - - // Data converters - // Keys separate source (or catchall "*") and destination types with a single space - converters: { - - // Convert anything to text - "* text": String, - - // Text to html (true = no transformation) - "text html": true, - - // Evaluate text as a json expression - "text json": JSON.parse, - - // Parse text as xml - "text xml": jQuery.parseXML - }, - - // For options that shouldn't be deep extended: - // you can add your own custom options here if - // and when you create one that shouldn't be - // deep extended (see ajaxExtend) - flatOptions: { - url: true, - context: true - } - }, - - // Creates a full fledged settings object into target - // with both ajaxSettings and settings fields. - // If target is omitted, writes into ajaxSettings. - ajaxSetup: function( target, settings ) { - return settings ? - - // Building a settings object - ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) : - - // Extending ajaxSettings - ajaxExtend( jQuery.ajaxSettings, target ); - }, - - ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), - ajaxTransport: addToPrefiltersOrTransports( transports ), - - // Main method - ajax: function( url, options ) { - - // If url is an object, simulate pre-1.5 signature - if ( typeof url === "object" ) { - options = url; - url = undefined; - } - - // Force options to be an object - options = options || {}; - - var transport, - - // URL without anti-cache param - cacheURL, - - // Response headers - responseHeadersString, - responseHeaders, - - // timeout handle - timeoutTimer, - - // Url cleanup var - urlAnchor, - - // Request state (becomes false upon send and true upon completion) - completed, - - // To know if global events are to be dispatched - fireGlobals, - - // Loop variable - i, - - // uncached part of the url - uncached, - - // Create the final options object - s = jQuery.ajaxSetup( {}, options ), - - // Callbacks context - callbackContext = s.context || s, - - // Context for global events is callbackContext if it is a DOM node or jQuery collection - globalEventContext = s.context && - ( callbackContext.nodeType || callbackContext.jquery ) ? - jQuery( callbackContext ) : - jQuery.event, - - // Deferreds - deferred = jQuery.Deferred(), - completeDeferred = jQuery.Callbacks( "once memory" ), - - // Status-dependent callbacks - statusCode = s.statusCode || {}, - - // Headers (they are sent all at once) - requestHeaders = {}, - requestHeadersNames = {}, - - // Default abort message - strAbort = "canceled", - - // Fake xhr - jqXHR = { - readyState: 0, - - // Builds headers hashtable if needed - getResponseHeader: function( key ) { - var match; - if ( completed ) { - if ( !responseHeaders ) { - responseHeaders = {}; - while ( ( match = rheaders.exec( responseHeadersString ) ) ) { - responseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ]; - } - } - match = responseHeaders[ key.toLowerCase() ]; - } - return match == null ? null : match; - }, - - // Raw string - getAllResponseHeaders: function() { - return completed ? responseHeadersString : null; - }, - - // Caches the header - setRequestHeader: function( name, value ) { - if ( completed == null ) { - name = requestHeadersNames[ name.toLowerCase() ] = - requestHeadersNames[ name.toLowerCase() ] || name; - requestHeaders[ name ] = value; - } - return this; - }, - - // Overrides response content-type header - overrideMimeType: function( type ) { - if ( completed == null ) { - s.mimeType = type; - } - return this; - }, - - // Status-dependent callbacks - statusCode: function( map ) { - var code; - if ( map ) { - if ( completed ) { - - // Execute the appropriate callbacks - jqXHR.always( map[ jqXHR.status ] ); - } else { - - // Lazy-add the new callbacks in a way that preserves old ones - for ( code in map ) { - statusCode[ code ] = [ statusCode[ code ], map[ code ] ]; - } - } - } - return this; - }, - - // Cancel the request - abort: function( statusText ) { - var finalText = statusText || strAbort; - if ( transport ) { - transport.abort( finalText ); - } - done( 0, finalText ); - return this; - } - }; - - // Attach deferreds - deferred.promise( jqXHR ); - - // Add protocol if not provided (prefilters might expect it) - // Handle falsy url in the settings object (#10093: consistency with old signature) - // We also use the url parameter if available - s.url = ( ( url || s.url || location.href ) + "" ) - .replace( rprotocol, location.protocol + "//" ); - - // Alias method option to type as per ticket #12004 - s.type = options.method || options.type || s.method || s.type; - - // Extract dataTypes list - s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ]; - - // A cross-domain request is in order when the origin doesn't match the current origin. - if ( s.crossDomain == null ) { - urlAnchor = document.createElement( "a" ); - - // Support: IE <=8 - 11, Edge 12 - 15 - // IE throws exception on accessing the href property if url is malformed, - // e.g. http://example.com:80x/ - try { - urlAnchor.href = s.url; - - // Support: IE <=8 - 11 only - // Anchor's host property isn't correctly set when s.url is relative - urlAnchor.href = urlAnchor.href; - s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !== - urlAnchor.protocol + "//" + urlAnchor.host; - } catch ( e ) { - - // If there is an error parsing the URL, assume it is crossDomain, - // it can be rejected by the transport if it is invalid - s.crossDomain = true; - } - } - - // Convert data if not already a string - if ( s.data && s.processData && typeof s.data !== "string" ) { - s.data = jQuery.param( s.data, s.traditional ); - } - - // Apply prefilters - inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); - - // If request was aborted inside a prefilter, stop there - if ( completed ) { - return jqXHR; - } - - // We can fire global events as of now if asked to - // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118) - fireGlobals = jQuery.event && s.global; - - // Watch for a new set of requests - if ( fireGlobals && jQuery.active++ === 0 ) { - jQuery.event.trigger( "ajaxStart" ); - } - - // Uppercase the type - s.type = s.type.toUpperCase(); - - // Determine if request has content - s.hasContent = !rnoContent.test( s.type ); - - // Save the URL in case we're toying with the If-Modified-Since - // and/or If-None-Match header later on - // Remove hash to simplify url manipulation - cacheURL = s.url.replace( rhash, "" ); - - // More options handling for requests with no content - if ( !s.hasContent ) { - - // Remember the hash so we can put it back - uncached = s.url.slice( cacheURL.length ); - - // If data is available and should be processed, append data to url - if ( s.data && ( s.processData || typeof s.data === "string" ) ) { - cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data; - - // #9682: remove data so that it's not used in an eventual retry - delete s.data; - } - - // Add or update anti-cache param if needed - if ( s.cache === false ) { - cacheURL = cacheURL.replace( rantiCache, "$1" ); - uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce++ ) + uncached; - } - - // Put hash and anti-cache on the URL that will be requested (gh-1732) - s.url = cacheURL + uncached; - - // Change '%20' to '+' if this is encoded form body content (gh-2658) - } else if ( s.data && s.processData && - ( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) { - s.data = s.data.replace( r20, "+" ); - } - - // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. - if ( s.ifModified ) { - if ( jQuery.lastModified[ cacheURL ] ) { - jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] ); - } - if ( jQuery.etag[ cacheURL ] ) { - jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] ); - } - } - - // Set the correct header, if data is being sent - if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { - jqXHR.setRequestHeader( "Content-Type", s.contentType ); - } - - // Set the Accepts header for the server, depending on the dataType - jqXHR.setRequestHeader( - "Accept", - s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ? - s.accepts[ s.dataTypes[ 0 ] ] + - ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : - s.accepts[ "*" ] - ); - - // Check for headers option - for ( i in s.headers ) { - jqXHR.setRequestHeader( i, s.headers[ i ] ); - } - - // Allow custom headers/mimetypes and early abort - if ( s.beforeSend && - ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) { - - // Abort if not done already and return - return jqXHR.abort(); - } - - // Aborting is no longer a cancellation - strAbort = "abort"; - - // Install callbacks on deferreds - completeDeferred.add( s.complete ); - jqXHR.done( s.success ); - jqXHR.fail( s.error ); - - // Get transport - transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); - - // If no transport, we auto-abort - if ( !transport ) { - done( -1, "No Transport" ); - } else { - jqXHR.readyState = 1; - - // Send global event - if ( fireGlobals ) { - globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); - } - - // If request was aborted inside ajaxSend, stop there - if ( completed ) { - return jqXHR; - } - - // Timeout - if ( s.async && s.timeout > 0 ) { - timeoutTimer = window.setTimeout( function() { - jqXHR.abort( "timeout" ); - }, s.timeout ); - } - - try { - completed = false; - transport.send( requestHeaders, done ); - } catch ( e ) { - - // Rethrow post-completion exceptions - if ( completed ) { - throw e; - } - - // Propagate others as results - done( -1, e ); - } - } - - // Callback for when everything is done - function done( status, nativeStatusText, responses, headers ) { - var isSuccess, success, error, response, modified, - statusText = nativeStatusText; - - // Ignore repeat invocations - if ( completed ) { - return; - } - - completed = true; - - // Clear timeout if it exists - if ( timeoutTimer ) { - window.clearTimeout( timeoutTimer ); - } - - // Dereference transport for early garbage collection - // (no matter how long the jqXHR object will be used) - transport = undefined; - - // Cache response headers - responseHeadersString = headers || ""; - - // Set readyState - jqXHR.readyState = status > 0 ? 4 : 0; - - // Determine if successful - isSuccess = status >= 200 && status < 300 || status === 304; - - // Get response data - if ( responses ) { - response = ajaxHandleResponses( s, jqXHR, responses ); - } - - // Convert no matter what (that way responseXXX fields are always set) - response = ajaxConvert( s, response, jqXHR, isSuccess ); - - // If successful, handle type chaining - if ( isSuccess ) { - - // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. - if ( s.ifModified ) { - modified = jqXHR.getResponseHeader( "Last-Modified" ); - if ( modified ) { - jQuery.lastModified[ cacheURL ] = modified; - } - modified = jqXHR.getResponseHeader( "etag" ); - if ( modified ) { - jQuery.etag[ cacheURL ] = modified; - } - } - - // if no content - if ( status === 204 || s.type === "HEAD" ) { - statusText = "nocontent"; - - // if not modified - } else if ( status === 304 ) { - statusText = "notmodified"; - - // If we have data, let's convert it - } else { - statusText = response.state; - success = response.data; - error = response.error; - isSuccess = !error; - } - } else { - - // Extract error from statusText and normalize for non-aborts - error = statusText; - if ( status || !statusText ) { - statusText = "error"; - if ( status < 0 ) { - status = 0; - } - } - } - - // Set data for the fake xhr object - jqXHR.status = status; - jqXHR.statusText = ( nativeStatusText || statusText ) + ""; - - // Success/Error - if ( isSuccess ) { - deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); - } else { - deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); - } - - // Status-dependent callbacks - jqXHR.statusCode( statusCode ); - statusCode = undefined; - - if ( fireGlobals ) { - globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError", - [ jqXHR, s, isSuccess ? success : error ] ); - } - - // Complete - completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); - - if ( fireGlobals ) { - globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); - - // Handle the global AJAX counter - if ( !( --jQuery.active ) ) { - jQuery.event.trigger( "ajaxStop" ); - } - } - } - - return jqXHR; - }, - - getJSON: function( url, data, callback ) { - return jQuery.get( url, data, callback, "json" ); - }, - - getScript: function( url, callback ) { - return jQuery.get( url, undefined, callback, "script" ); - } -} ); - -jQuery.each( [ "get", "post" ], function( i, method ) { - jQuery[ method ] = function( url, data, callback, type ) { - - // Shift arguments if data argument was omitted - if ( isFunction( data ) ) { - type = type || callback; - callback = data; - data = undefined; - } - - // The url can be an options object (which then must have .url) - return jQuery.ajax( jQuery.extend( { - url: url, - type: method, - dataType: type, - data: data, - success: callback - }, jQuery.isPlainObject( url ) && url ) ); - }; -} ); - - -jQuery._evalUrl = function( url ) { - return jQuery.ajax( { - url: url, - - // Make this explicit, since user can override this through ajaxSetup (#11264) - type: "GET", - dataType: "script", - cache: true, - async: false, - global: false, - "throws": true - } ); -}; - - -jQuery.fn.extend( { - wrapAll: function( html ) { - var wrap; - - if ( this[ 0 ] ) { - if ( isFunction( html ) ) { - html = html.call( this[ 0 ] ); - } - - // The elements to wrap the target around - wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true ); - - if ( this[ 0 ].parentNode ) { - wrap.insertBefore( this[ 0 ] ); - } - - wrap.map( function() { - var elem = this; - - while ( elem.firstElementChild ) { - elem = elem.firstElementChild; - } - - return elem; - } ).append( this ); - } - - return this; - }, - - wrapInner: function( html ) { - if ( isFunction( html ) ) { - return this.each( function( i ) { - jQuery( this ).wrapInner( html.call( this, i ) ); - } ); - } - - return this.each( function() { - var self = jQuery( this ), - contents = self.contents(); - - if ( contents.length ) { - contents.wrapAll( html ); - - } else { - self.append( html ); - } - } ); - }, - - wrap: function( html ) { - var htmlIsFunction = isFunction( html ); - - return this.each( function( i ) { - jQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html ); - } ); - }, - - unwrap: function( selector ) { - this.parent( selector ).not( "body" ).each( function() { - jQuery( this ).replaceWith( this.childNodes ); - } ); - return this; - } -} ); - - -jQuery.expr.pseudos.hidden = function( elem ) { - return !jQuery.expr.pseudos.visible( elem ); -}; -jQuery.expr.pseudos.visible = function( elem ) { - return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length ); -}; - - - - -jQuery.ajaxSettings.xhr = function() { - try { - return new window.XMLHttpRequest(); - } catch ( e ) {} -}; - -var xhrSuccessStatus = { - - // File protocol always yields status code 0, assume 200 - 0: 200, - - // Support: IE <=9 only - // #1450: sometimes IE returns 1223 when it should be 204 - 1223: 204 - }, - xhrSupported = jQuery.ajaxSettings.xhr(); - -support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported ); -support.ajax = xhrSupported = !!xhrSupported; - -jQuery.ajaxTransport( function( options ) { - var callback, errorCallback; - - // Cross domain only allowed if supported through XMLHttpRequest - if ( support.cors || xhrSupported && !options.crossDomain ) { - return { - send: function( headers, complete ) { - var i, - xhr = options.xhr(); - - xhr.open( - options.type, - options.url, - options.async, - options.username, - options.password - ); - - // Apply custom fields if provided - if ( options.xhrFields ) { - for ( i in options.xhrFields ) { - xhr[ i ] = options.xhrFields[ i ]; - } - } - - // Override mime type if needed - if ( options.mimeType && xhr.overrideMimeType ) { - xhr.overrideMimeType( options.mimeType ); - } - - // X-Requested-With header - // For cross-domain requests, seeing as conditions for a preflight are - // akin to a jigsaw puzzle, we simply never set it to be sure. - // (it can always be set on a per-request basis or even using ajaxSetup) - // For same-domain requests, won't change header if already provided. - if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) { - headers[ "X-Requested-With" ] = "XMLHttpRequest"; - } - - // Set headers - for ( i in headers ) { - xhr.setRequestHeader( i, headers[ i ] ); - } - - // Callback - callback = function( type ) { - return function() { - if ( callback ) { - callback = errorCallback = xhr.onload = - xhr.onerror = xhr.onabort = xhr.ontimeout = - xhr.onreadystatechange = null; - - if ( type === "abort" ) { - xhr.abort(); - } else if ( type === "error" ) { - - // Support: IE <=9 only - // On a manual native abort, IE9 throws - // errors on any property access that is not readyState - if ( typeof xhr.status !== "number" ) { - complete( 0, "error" ); - } else { - complete( - - // File: protocol always yields status 0; see #8605, #14207 - xhr.status, - xhr.statusText - ); - } - } else { - complete( - xhrSuccessStatus[ xhr.status ] || xhr.status, - xhr.statusText, - - // Support: IE <=9 only - // IE9 has no XHR2 but throws on binary (trac-11426) - // For XHR2 non-text, let the caller handle it (gh-2498) - ( xhr.responseType || "text" ) !== "text" || - typeof xhr.responseText !== "string" ? - { binary: xhr.response } : - { text: xhr.responseText }, - xhr.getAllResponseHeaders() - ); - } - } - }; - }; - - // Listen to events - xhr.onload = callback(); - errorCallback = xhr.onerror = xhr.ontimeout = callback( "error" ); - - // Support: IE 9 only - // Use onreadystatechange to replace onabort - // to handle uncaught aborts - if ( xhr.onabort !== undefined ) { - xhr.onabort = errorCallback; - } else { - xhr.onreadystatechange = function() { - - // Check readyState before timeout as it changes - if ( xhr.readyState === 4 ) { - - // Allow onerror to be called first, - // but that will not handle a native abort - // Also, save errorCallback to a variable - // as xhr.onerror cannot be accessed - window.setTimeout( function() { - if ( callback ) { - errorCallback(); - } - } ); - } - }; - } - - // Create the abort callback - callback = callback( "abort" ); - - try { - - // Do send the request (this may raise an exception) - xhr.send( options.hasContent && options.data || null ); - } catch ( e ) { - - // #14683: Only rethrow if this hasn't been notified as an error yet - if ( callback ) { - throw e; - } - } - }, - - abort: function() { - if ( callback ) { - callback(); - } - } - }; - } -} ); - - - - -// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432) -jQuery.ajaxPrefilter( function( s ) { - if ( s.crossDomain ) { - s.contents.script = false; - } -} ); - -// Install script dataType -jQuery.ajaxSetup( { - accepts: { - script: "text/javascript, application/javascript, " + - "application/ecmascript, application/x-ecmascript" - }, - contents: { - script: /\b(?:java|ecma)script\b/ - }, - converters: { - "text script": function( text ) { - jQuery.globalEval( text ); - return text; - } - } -} ); - -// Handle cache's special case and crossDomain -jQuery.ajaxPrefilter( "script", function( s ) { - if ( s.cache === undefined ) { - s.cache = false; - } - if ( s.crossDomain ) { - s.type = "GET"; - } -} ); - -// Bind script tag hack transport -jQuery.ajaxTransport( "script", function( s ) { - - // This transport only deals with cross domain requests - if ( s.crossDomain ) { - var script, callback; - return { - send: function( _, complete ) { - script = jQuery( "\r\n"; - -// inject VBScript -document.write(IEBinaryToArray_ByteStr_Script); - -global.JSZipUtils._getBinaryFromXHR = function (xhr) { - var binary = xhr.responseBody; - var byteMapping = {}; - for ( var i = 0; i < 256; i++ ) { - for ( var j = 0; j < 256; j++ ) { - byteMapping[ String.fromCharCode( i + (j << 8) ) ] = - String.fromCharCode(i) + String.fromCharCode(j); - } - } - var rawBytes = IEBinaryToArray_ByteStr(binary); - var lastChr = IEBinaryToArray_ByteStr_Last(binary); - return rawBytes.replace(/[\s\S]/g, function( match ) { - return byteMapping[match]; - }) + lastChr; -}; - -// enforcing Stuk's coding style -// vim: set shiftwidth=4 softtabstop=4: - -},{}]},{},[1]) -; diff --git a/docs/site/testapidocs/jquery/jszip-utils/dist/jszip-utils-ie.min.js b/docs/site/testapidocs/jquery/jszip-utils/dist/jszip-utils-ie.min.js deleted file mode 100644 index 93d8bc8e..00000000 --- a/docs/site/testapidocs/jquery/jszip-utils/dist/jszip-utils-ie.min.js +++ /dev/null @@ -1,10 +0,0 @@ -/*! - -JSZipUtils - A collection of cross-browser utilities to go along with JSZip. - - -(c) 2014 Stuart Knightley, David Duponchel -Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip-utils/master/LICENSE.markdown. - -*/ -!function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};b[g][0].call(j.exports,function(a){var c=b[g][1][a];return e(c?c:a)},j,j.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g\r\n";document.write(b),a.JSZipUtils._getBinaryFromXHR=function(a){for(var b=a.responseBody,c={},d=0;256>d;d++)for(var e=0;256>e;e++)c[String.fromCharCode(d+(e<<8))]=String.fromCharCode(d)+String.fromCharCode(e);var f=IEBinaryToArray_ByteStr(b),g=IEBinaryToArray_ByteStr_Last(b);return f.replace(/[\s\S]/g,function(a){return c[a]})+g}},{}]},{},[1]); diff --git a/docs/site/testapidocs/jquery/jszip-utils/dist/jszip-utils.js b/docs/site/testapidocs/jquery/jszip-utils/dist/jszip-utils.js deleted file mode 100644 index 775895ec..00000000 --- a/docs/site/testapidocs/jquery/jszip-utils/dist/jszip-utils.js +++ /dev/null @@ -1,118 +0,0 @@ -/*! - -JSZipUtils - A collection of cross-browser utilities to go along with JSZip. - - -(c) 2014 Stuart Knightley, David Duponchel -Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip-utils/master/LICENSE.markdown. - -*/ -!function(e){"object"==typeof exports?module.exports=e():"function"==typeof define&&define.amd?define(e):"undefined"!=typeof window?window.JSZipUtils=e():"undefined"!=typeof global?global.JSZipUtils=e():"undefined"!=typeof self&&(self.JSZipUtils=e())}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o - -(c) 2014 Stuart Knightley, David Duponchel -Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip-utils/master/LICENSE.markdown. - -*/ -!function(a){"object"==typeof exports?module.exports=a():"function"==typeof define&&define.amd?define(a):"undefined"!=typeof window?window.JSZipUtils=a():"undefined"!=typeof global?global.JSZipUtils=a():"undefined"!=typeof self&&(self.JSZipUtils=a())}(function(){return function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};b[g][0].call(j.exports,function(a){var c=b[g][1][a];return e(c?c:a)},j,j.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g - -(c) 2009-2016 Stuart Knightley -Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/master/LICENSE.markdown. - -JSZip uses the library pako released under the MIT license : -https://github.com/nodeca/pako/blob/master/LICENSE -*/ - -(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.JSZip = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o> 2; - enc2 = ((chr1 & 3) << 4) | (chr2 >> 4); - enc3 = remainingBytes > 1 ? (((chr2 & 15) << 2) | (chr3 >> 6)) : 64; - enc4 = remainingBytes > 2 ? (chr3 & 63) : 64; - - output.push(_keyStr.charAt(enc1) + _keyStr.charAt(enc2) + _keyStr.charAt(enc3) + _keyStr.charAt(enc4)); - - } - - return output.join(""); -}; - -// public method for decoding -exports.decode = function(input) { - var chr1, chr2, chr3; - var enc1, enc2, enc3, enc4; - var i = 0, resultIndex = 0; - - var dataUrlPrefix = "data:"; - - if (input.substr(0, dataUrlPrefix.length) === dataUrlPrefix) { - // This is a common error: people give a data url - // (data:image/png;base64,iVBOR...) with a {base64: true} and - // wonders why things don't work. - // We can detect that the string input looks like a data url but we - // *can't* be sure it is one: removing everything up to the comma would - // be too dangerous. - throw new Error("Invalid base64 input, it looks like a data url."); - } - - input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ""); - - var totalLength = input.length * 3 / 4; - if(input.charAt(input.length - 1) === _keyStr.charAt(64)) { - totalLength--; - } - if(input.charAt(input.length - 2) === _keyStr.charAt(64)) { - totalLength--; - } - if (totalLength % 1 !== 0) { - // totalLength is not an integer, the length does not match a valid - // base64 content. That can happen if: - // - the input is not a base64 content - // - the input is *almost* a base64 content, with a extra chars at the - // beginning or at the end - // - the input uses a base64 variant (base64url for example) - throw new Error("Invalid base64 input, bad content length."); - } - var output; - if (support.uint8array) { - output = new Uint8Array(totalLength|0); - } else { - output = new Array(totalLength|0); - } - - while (i < input.length) { - - enc1 = _keyStr.indexOf(input.charAt(i++)); - enc2 = _keyStr.indexOf(input.charAt(i++)); - enc3 = _keyStr.indexOf(input.charAt(i++)); - enc4 = _keyStr.indexOf(input.charAt(i++)); - - chr1 = (enc1 << 2) | (enc2 >> 4); - chr2 = ((enc2 & 15) << 4) | (enc3 >> 2); - chr3 = ((enc3 & 3) << 6) | enc4; - - output[resultIndex++] = chr1; - - if (enc3 !== 64) { - output[resultIndex++] = chr2; - } - if (enc4 !== 64) { - output[resultIndex++] = chr3; - } - - } - - return output; -}; - -},{"./support":30,"./utils":32}],2:[function(require,module,exports){ -'use strict'; - -var external = require("./external"); -var DataWorker = require('./stream/DataWorker'); -var DataLengthProbe = require('./stream/DataLengthProbe'); -var Crc32Probe = require('./stream/Crc32Probe'); -var DataLengthProbe = require('./stream/DataLengthProbe'); - -/** - * Represent a compressed object, with everything needed to decompress it. - * @constructor - * @param {number} compressedSize the size of the data compressed. - * @param {number} uncompressedSize the size of the data after decompression. - * @param {number} crc32 the crc32 of the decompressed file. - * @param {object} compression the type of compression, see lib/compressions.js. - * @param {String|ArrayBuffer|Uint8Array|Buffer} data the compressed data. - */ -function CompressedObject(compressedSize, uncompressedSize, crc32, compression, data) { - this.compressedSize = compressedSize; - this.uncompressedSize = uncompressedSize; - this.crc32 = crc32; - this.compression = compression; - this.compressedContent = data; -} - -CompressedObject.prototype = { - /** - * Create a worker to get the uncompressed content. - * @return {GenericWorker} the worker. - */ - getContentWorker : function () { - var worker = new DataWorker(external.Promise.resolve(this.compressedContent)) - .pipe(this.compression.uncompressWorker()) - .pipe(new DataLengthProbe("data_length")); - - var that = this; - worker.on("end", function () { - if(this.streamInfo['data_length'] !== that.uncompressedSize) { - throw new Error("Bug : uncompressed data size mismatch"); - } - }); - return worker; - }, - /** - * Create a worker to get the compressed content. - * @return {GenericWorker} the worker. - */ - getCompressedWorker : function () { - return new DataWorker(external.Promise.resolve(this.compressedContent)) - .withStreamInfo("compressedSize", this.compressedSize) - .withStreamInfo("uncompressedSize", this.uncompressedSize) - .withStreamInfo("crc32", this.crc32) - .withStreamInfo("compression", this.compression) - ; - } -}; - -/** - * Chain the given worker with other workers to compress the content with the - * given compresion. - * @param {GenericWorker} uncompressedWorker the worker to pipe. - * @param {Object} compression the compression object. - * @param {Object} compressionOptions the options to use when compressing. - * @return {GenericWorker} the new worker compressing the content. - */ -CompressedObject.createWorkerFrom = function (uncompressedWorker, compression, compressionOptions) { - return uncompressedWorker - .pipe(new Crc32Probe()) - .pipe(new DataLengthProbe("uncompressedSize")) - .pipe(compression.compressWorker(compressionOptions)) - .pipe(new DataLengthProbe("compressedSize")) - .withStreamInfo("compression", compression); -}; - -module.exports = CompressedObject; - -},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(require,module,exports){ -'use strict'; - -var GenericWorker = require("./stream/GenericWorker"); - -exports.STORE = { - magic: "\x00\x00", - compressWorker : function (compressionOptions) { - return new GenericWorker("STORE compression"); - }, - uncompressWorker : function () { - return new GenericWorker("STORE decompression"); - } -}; -exports.DEFLATE = require('./flate'); - -},{"./flate":7,"./stream/GenericWorker":28}],4:[function(require,module,exports){ -'use strict'; - -var utils = require('./utils'); - -/** - * The following functions come from pako, from pako/lib/zlib/crc32.js - * released under the MIT license, see pako https://github.com/nodeca/pako/ - */ - -// Use ordinary array, since untyped makes no boost here -function makeTable() { - var c, table = []; - - for(var n =0; n < 256; n++){ - c = n; - for(var k =0; k < 8; k++){ - c = ((c&1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1)); - } - table[n] = c; - } - - return table; -} - -// Create table on load. Just 255 signed longs. Not a problem. -var crcTable = makeTable(); - - -function crc32(crc, buf, len, pos) { - var t = crcTable, end = pos + len; - - crc = crc ^ (-1); - - for (var i = pos; i < end; i++ ) { - crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF]; - } - - return (crc ^ (-1)); // >>> 0; -} - -// That's all for the pako functions. - -/** - * Compute the crc32 of a string. - * This is almost the same as the function crc32, but for strings. Using the - * same function for the two use cases leads to horrible performances. - * @param {Number} crc the starting value of the crc. - * @param {String} str the string to use. - * @param {Number} len the length of the string. - * @param {Number} pos the starting position for the crc32 computation. - * @return {Number} the computed crc32. - */ -function crc32str(crc, str, len, pos) { - var t = crcTable, end = pos + len; - - crc = crc ^ (-1); - - for (var i = pos; i < end; i++ ) { - crc = (crc >>> 8) ^ t[(crc ^ str.charCodeAt(i)) & 0xFF]; - } - - return (crc ^ (-1)); // >>> 0; -} - -module.exports = function crc32wrapper(input, crc) { - if (typeof input === "undefined" || !input.length) { - return 0; - } - - var isArray = utils.getTypeOf(input) !== "string"; - - if(isArray) { - return crc32(crc|0, input, input.length, 0); - } else { - return crc32str(crc|0, input, input.length, 0); - } -}; - -},{"./utils":32}],5:[function(require,module,exports){ -'use strict'; -exports.base64 = false; -exports.binary = false; -exports.dir = false; -exports.createFolders = true; -exports.date = null; -exports.compression = null; -exports.compressionOptions = null; -exports.comment = null; -exports.unixPermissions = null; -exports.dosPermissions = null; - -},{}],6:[function(require,module,exports){ -/* global Promise */ -'use strict'; - -// load the global object first: -// - it should be better integrated in the system (unhandledRejection in node) -// - the environment may have a custom Promise implementation (see zone.js) -var ES6Promise = null; -if (typeof Promise !== "undefined") { - ES6Promise = Promise; -} else { - ES6Promise = require("lie"); -} - -/** - * Let the user use/change some implementations. - */ -module.exports = { - Promise: ES6Promise -}; - -},{"lie":58}],7:[function(require,module,exports){ -'use strict'; -var USE_TYPEDARRAY = (typeof Uint8Array !== 'undefined') && (typeof Uint16Array !== 'undefined') && (typeof Uint32Array !== 'undefined'); - -var pako = require("pako"); -var utils = require("./utils"); -var GenericWorker = require("./stream/GenericWorker"); - -var ARRAY_TYPE = USE_TYPEDARRAY ? "uint8array" : "array"; - -exports.magic = "\x08\x00"; - -/** - * Create a worker that uses pako to inflate/deflate. - * @constructor - * @param {String} action the name of the pako function to call : either "Deflate" or "Inflate". - * @param {Object} options the options to use when (de)compressing. - */ -function FlateWorker(action, options) { - GenericWorker.call(this, "FlateWorker/" + action); - - this._pako = null; - this._pakoAction = action; - this._pakoOptions = options; - // the `meta` object from the last chunk received - // this allow this worker to pass around metadata - this.meta = {}; -} - -utils.inherits(FlateWorker, GenericWorker); - -/** - * @see GenericWorker.processChunk - */ -FlateWorker.prototype.processChunk = function (chunk) { - this.meta = chunk.meta; - if (this._pako === null) { - this._createPako(); - } - this._pako.push(utils.transformTo(ARRAY_TYPE, chunk.data), false); -}; - -/** - * @see GenericWorker.flush - */ -FlateWorker.prototype.flush = function () { - GenericWorker.prototype.flush.call(this); - if (this._pako === null) { - this._createPako(); - } - this._pako.push([], true); -}; -/** - * @see GenericWorker.cleanUp - */ -FlateWorker.prototype.cleanUp = function () { - GenericWorker.prototype.cleanUp.call(this); - this._pako = null; -}; - -/** - * Create the _pako object. - * TODO: lazy-loading this object isn't the best solution but it's the - * quickest. The best solution is to lazy-load the worker list. See also the - * issue #446. - */ -FlateWorker.prototype._createPako = function () { - this._pako = new pako[this._pakoAction]({ - raw: true, - level: this._pakoOptions.level || -1 // default compression - }); - var self = this; - this._pako.onData = function(data) { - self.push({ - data : data, - meta : self.meta - }); - }; -}; - -exports.compressWorker = function (compressionOptions) { - return new FlateWorker("Deflate", compressionOptions); -}; -exports.uncompressWorker = function () { - return new FlateWorker("Inflate", {}); -}; - -},{"./stream/GenericWorker":28,"./utils":32,"pako":59}],8:[function(require,module,exports){ -'use strict'; - -var utils = require('../utils'); -var GenericWorker = require('../stream/GenericWorker'); -var utf8 = require('../utf8'); -var crc32 = require('../crc32'); -var signature = require('../signature'); - -/** - * Transform an integer into a string in hexadecimal. - * @private - * @param {number} dec the number to convert. - * @param {number} bytes the number of bytes to generate. - * @returns {string} the result. - */ -var decToHex = function(dec, bytes) { - var hex = "", i; - for (i = 0; i < bytes; i++) { - hex += String.fromCharCode(dec & 0xff); - dec = dec >>> 8; - } - return hex; -}; - -/** - * Generate the UNIX part of the external file attributes. - * @param {Object} unixPermissions the unix permissions or null. - * @param {Boolean} isDir true if the entry is a directory, false otherwise. - * @return {Number} a 32 bit integer. - * - * adapted from http://unix.stackexchange.com/questions/14705/the-zip-formats-external-file-attribute : - * - * TTTTsstrwxrwxrwx0000000000ADVSHR - * ^^^^____________________________ file type, see zipinfo.c (UNX_*) - * ^^^_________________________ setuid, setgid, sticky - * ^^^^^^^^^________________ permissions - * ^^^^^^^^^^______ not used ? - * ^^^^^^ DOS attribute bits : Archive, Directory, Volume label, System file, Hidden, Read only - */ -var generateUnixExternalFileAttr = function (unixPermissions, isDir) { - - var result = unixPermissions; - if (!unixPermissions) { - // I can't use octal values in strict mode, hence the hexa. - // 040775 => 0x41fd - // 0100664 => 0x81b4 - result = isDir ? 0x41fd : 0x81b4; - } - return (result & 0xFFFF) << 16; -}; - -/** - * Generate the DOS part of the external file attributes. - * @param {Object} dosPermissions the dos permissions or null. - * @param {Boolean} isDir true if the entry is a directory, false otherwise. - * @return {Number} a 32 bit integer. - * - * Bit 0 Read-Only - * Bit 1 Hidden - * Bit 2 System - * Bit 3 Volume Label - * Bit 4 Directory - * Bit 5 Archive - */ -var generateDosExternalFileAttr = function (dosPermissions, isDir) { - - // the dir flag is already set for compatibility - return (dosPermissions || 0) & 0x3F; -}; - -/** - * Generate the various parts used in the construction of the final zip file. - * @param {Object} streamInfo the hash with informations about the compressed file. - * @param {Boolean} streamedContent is the content streamed ? - * @param {Boolean} streamingEnded is the stream finished ? - * @param {number} offset the current offset from the start of the zip file. - * @param {String} platform let's pretend we are this platform (change platform dependents fields) - * @param {Function} encodeFileName the function to encode the file name / comment. - * @return {Object} the zip parts. - */ -var generateZipParts = function(streamInfo, streamedContent, streamingEnded, offset, platform, encodeFileName) { - var file = streamInfo['file'], - compression = streamInfo['compression'], - useCustomEncoding = encodeFileName !== utf8.utf8encode, - encodedFileName = utils.transformTo("string", encodeFileName(file.name)), - utfEncodedFileName = utils.transformTo("string", utf8.utf8encode(file.name)), - comment = file.comment, - encodedComment = utils.transformTo("string", encodeFileName(comment)), - utfEncodedComment = utils.transformTo("string", utf8.utf8encode(comment)), - useUTF8ForFileName = utfEncodedFileName.length !== file.name.length, - useUTF8ForComment = utfEncodedComment.length !== comment.length, - dosTime, - dosDate, - extraFields = "", - unicodePathExtraField = "", - unicodeCommentExtraField = "", - dir = file.dir, - date = file.date; - - - var dataInfo = { - crc32 : 0, - compressedSize : 0, - uncompressedSize : 0 - }; - - // if the content is streamed, the sizes/crc32 are only available AFTER - // the end of the stream. - if (!streamedContent || streamingEnded) { - dataInfo.crc32 = streamInfo['crc32']; - dataInfo.compressedSize = streamInfo['compressedSize']; - dataInfo.uncompressedSize = streamInfo['uncompressedSize']; - } - - var bitflag = 0; - if (streamedContent) { - // Bit 3: the sizes/crc32 are set to zero in the local header. - // The correct values are put in the data descriptor immediately - // following the compressed data. - bitflag |= 0x0008; - } - if (!useCustomEncoding && (useUTF8ForFileName || useUTF8ForComment)) { - // Bit 11: Language encoding flag (EFS). - bitflag |= 0x0800; - } - - - var extFileAttr = 0; - var versionMadeBy = 0; - if (dir) { - // dos or unix, we set the dos dir flag - extFileAttr |= 0x00010; - } - if(platform === "UNIX") { - versionMadeBy = 0x031E; // UNIX, version 3.0 - extFileAttr |= generateUnixExternalFileAttr(file.unixPermissions, dir); - } else { // DOS or other, fallback to DOS - versionMadeBy = 0x0014; // DOS, version 2.0 - extFileAttr |= generateDosExternalFileAttr(file.dosPermissions, dir); - } - - // date - // @see http://www.delorie.com/djgpp/doc/rbinter/it/52/13.html - // @see http://www.delorie.com/djgpp/doc/rbinter/it/65/16.html - // @see http://www.delorie.com/djgpp/doc/rbinter/it/66/16.html - - dosTime = date.getUTCHours(); - dosTime = dosTime << 6; - dosTime = dosTime | date.getUTCMinutes(); - dosTime = dosTime << 5; - dosTime = dosTime | date.getUTCSeconds() / 2; - - dosDate = date.getUTCFullYear() - 1980; - dosDate = dosDate << 4; - dosDate = dosDate | (date.getUTCMonth() + 1); - dosDate = dosDate << 5; - dosDate = dosDate | date.getUTCDate(); - - if (useUTF8ForFileName) { - // set the unicode path extra field. unzip needs at least one extra - // field to correctly handle unicode path, so using the path is as good - // as any other information. This could improve the situation with - // other archive managers too. - // This field is usually used without the utf8 flag, with a non - // unicode path in the header (winrar, winzip). This helps (a bit) - // with the messy Windows' default compressed folders feature but - // breaks on p7zip which doesn't seek the unicode path extra field. - // So for now, UTF-8 everywhere ! - unicodePathExtraField = - // Version - decToHex(1, 1) + - // NameCRC32 - decToHex(crc32(encodedFileName), 4) + - // UnicodeName - utfEncodedFileName; - - extraFields += - // Info-ZIP Unicode Path Extra Field - "\x75\x70" + - // size - decToHex(unicodePathExtraField.length, 2) + - // content - unicodePathExtraField; - } - - if(useUTF8ForComment) { - - unicodeCommentExtraField = - // Version - decToHex(1, 1) + - // CommentCRC32 - decToHex(crc32(encodedComment), 4) + - // UnicodeName - utfEncodedComment; - - extraFields += - // Info-ZIP Unicode Path Extra Field - "\x75\x63" + - // size - decToHex(unicodeCommentExtraField.length, 2) + - // content - unicodeCommentExtraField; - } - - var header = ""; - - // version needed to extract - header += "\x0A\x00"; - // general purpose bit flag - header += decToHex(bitflag, 2); - // compression method - header += compression.magic; - // last mod file time - header += decToHex(dosTime, 2); - // last mod file date - header += decToHex(dosDate, 2); - // crc-32 - header += decToHex(dataInfo.crc32, 4); - // compressed size - header += decToHex(dataInfo.compressedSize, 4); - // uncompressed size - header += decToHex(dataInfo.uncompressedSize, 4); - // file name length - header += decToHex(encodedFileName.length, 2); - // extra field length - header += decToHex(extraFields.length, 2); - - - var fileRecord = signature.LOCAL_FILE_HEADER + header + encodedFileName + extraFields; - - var dirRecord = signature.CENTRAL_FILE_HEADER + - // version made by (00: DOS) - decToHex(versionMadeBy, 2) + - // file header (common to file and central directory) - header + - // file comment length - decToHex(encodedComment.length, 2) + - // disk number start - "\x00\x00" + - // internal file attributes TODO - "\x00\x00" + - // external file attributes - decToHex(extFileAttr, 4) + - // relative offset of local header - decToHex(offset, 4) + - // file name - encodedFileName + - // extra field - extraFields + - // file comment - encodedComment; - - return { - fileRecord: fileRecord, - dirRecord: dirRecord - }; -}; - -/** - * Generate the EOCD record. - * @param {Number} entriesCount the number of entries in the zip file. - * @param {Number} centralDirLength the length (in bytes) of the central dir. - * @param {Number} localDirLength the length (in bytes) of the local dir. - * @param {String} comment the zip file comment as a binary string. - * @param {Function} encodeFileName the function to encode the comment. - * @return {String} the EOCD record. - */ -var generateCentralDirectoryEnd = function (entriesCount, centralDirLength, localDirLength, comment, encodeFileName) { - var dirEnd = ""; - var encodedComment = utils.transformTo("string", encodeFileName(comment)); - - // end of central dir signature - dirEnd = signature.CENTRAL_DIRECTORY_END + - // number of this disk - "\x00\x00" + - // number of the disk with the start of the central directory - "\x00\x00" + - // total number of entries in the central directory on this disk - decToHex(entriesCount, 2) + - // total number of entries in the central directory - decToHex(entriesCount, 2) + - // size of the central directory 4 bytes - decToHex(centralDirLength, 4) + - // offset of start of central directory with respect to the starting disk number - decToHex(localDirLength, 4) + - // .ZIP file comment length - decToHex(encodedComment.length, 2) + - // .ZIP file comment - encodedComment; - - return dirEnd; -}; - -/** - * Generate data descriptors for a file entry. - * @param {Object} streamInfo the hash generated by a worker, containing informations - * on the file entry. - * @return {String} the data descriptors. - */ -var generateDataDescriptors = function (streamInfo) { - var descriptor = ""; - descriptor = signature.DATA_DESCRIPTOR + - // crc-32 4 bytes - decToHex(streamInfo['crc32'], 4) + - // compressed size 4 bytes - decToHex(streamInfo['compressedSize'], 4) + - // uncompressed size 4 bytes - decToHex(streamInfo['uncompressedSize'], 4); - - return descriptor; -}; - - -/** - * A worker to concatenate other workers to create a zip file. - * @param {Boolean} streamFiles `true` to stream the content of the files, - * `false` to accumulate it. - * @param {String} comment the comment to use. - * @param {String} platform the platform to use, "UNIX" or "DOS". - * @param {Function} encodeFileName the function to encode file names and comments. - */ -function ZipFileWorker(streamFiles, comment, platform, encodeFileName) { - GenericWorker.call(this, "ZipFileWorker"); - // The number of bytes written so far. This doesn't count accumulated chunks. - this.bytesWritten = 0; - // The comment of the zip file - this.zipComment = comment; - // The platform "generating" the zip file. - this.zipPlatform = platform; - // the function to encode file names and comments. - this.encodeFileName = encodeFileName; - // Should we stream the content of the files ? - this.streamFiles = streamFiles; - // If `streamFiles` is false, we will need to accumulate the content of the - // files to calculate sizes / crc32 (and write them *before* the content). - // This boolean indicates if we are accumulating chunks (it will change a lot - // during the lifetime of this worker). - this.accumulate = false; - // The buffer receiving chunks when accumulating content. - this.contentBuffer = []; - // The list of generated directory records. - this.dirRecords = []; - // The offset (in bytes) from the beginning of the zip file for the current source. - this.currentSourceOffset = 0; - // The total number of entries in this zip file. - this.entriesCount = 0; - // the name of the file currently being added, null when handling the end of the zip file. - // Used for the emited metadata. - this.currentFile = null; - - - - this._sources = []; -} -utils.inherits(ZipFileWorker, GenericWorker); - -/** - * @see GenericWorker.push - */ -ZipFileWorker.prototype.push = function (chunk) { - - var currentFilePercent = chunk.meta.percent || 0; - var entriesCount = this.entriesCount; - var remainingFiles = this._sources.length; - - if(this.accumulate) { - this.contentBuffer.push(chunk); - } else { - this.bytesWritten += chunk.data.length; - - GenericWorker.prototype.push.call(this, { - data : chunk.data, - meta : { - currentFile : this.currentFile, - percent : entriesCount ? (currentFilePercent + 100 * (entriesCount - remainingFiles - 1)) / entriesCount : 100 - } - }); - } -}; - -/** - * The worker started a new source (an other worker). - * @param {Object} streamInfo the streamInfo object from the new source. - */ -ZipFileWorker.prototype.openedSource = function (streamInfo) { - this.currentSourceOffset = this.bytesWritten; - this.currentFile = streamInfo['file'].name; - - var streamedContent = this.streamFiles && !streamInfo['file'].dir; - - // don't stream folders (because they don't have any content) - if(streamedContent) { - var record = generateZipParts(streamInfo, streamedContent, false, this.currentSourceOffset, this.zipPlatform, this.encodeFileName); - this.push({ - data : record.fileRecord, - meta : {percent:0} - }); - } else { - // we need to wait for the whole file before pushing anything - this.accumulate = true; - } -}; - -/** - * The worker finished a source (an other worker). - * @param {Object} streamInfo the streamInfo object from the finished source. - */ -ZipFileWorker.prototype.closedSource = function (streamInfo) { - this.accumulate = false; - var streamedContent = this.streamFiles && !streamInfo['file'].dir; - var record = generateZipParts(streamInfo, streamedContent, true, this.currentSourceOffset, this.zipPlatform, this.encodeFileName); - - this.dirRecords.push(record.dirRecord); - if(streamedContent) { - // after the streamed file, we put data descriptors - this.push({ - data : generateDataDescriptors(streamInfo), - meta : {percent:100} - }); - } else { - // the content wasn't streamed, we need to push everything now - // first the file record, then the content - this.push({ - data : record.fileRecord, - meta : {percent:0} - }); - while(this.contentBuffer.length) { - this.push(this.contentBuffer.shift()); - } - } - this.currentFile = null; -}; - -/** - * @see GenericWorker.flush - */ -ZipFileWorker.prototype.flush = function () { - - var localDirLength = this.bytesWritten; - for(var i = 0; i < this.dirRecords.length; i++) { - this.push({ - data : this.dirRecords[i], - meta : {percent:100} - }); - } - var centralDirLength = this.bytesWritten - localDirLength; - - var dirEnd = generateCentralDirectoryEnd(this.dirRecords.length, centralDirLength, localDirLength, this.zipComment, this.encodeFileName); - - this.push({ - data : dirEnd, - meta : {percent:100} - }); -}; - -/** - * Prepare the next source to be read. - */ -ZipFileWorker.prototype.prepareNextSource = function () { - this.previous = this._sources.shift(); - this.openedSource(this.previous.streamInfo); - if (this.isPaused) { - this.previous.pause(); - } else { - this.previous.resume(); - } -}; - -/** - * @see GenericWorker.registerPrevious - */ -ZipFileWorker.prototype.registerPrevious = function (previous) { - this._sources.push(previous); - var self = this; - - previous.on('data', function (chunk) { - self.processChunk(chunk); - }); - previous.on('end', function () { - self.closedSource(self.previous.streamInfo); - if(self._sources.length) { - self.prepareNextSource(); - } else { - self.end(); - } - }); - previous.on('error', function (e) { - self.error(e); - }); - return this; -}; - -/** - * @see GenericWorker.resume - */ -ZipFileWorker.prototype.resume = function () { - if(!GenericWorker.prototype.resume.call(this)) { - return false; - } - - if (!this.previous && this._sources.length) { - this.prepareNextSource(); - return true; - } - if (!this.previous && !this._sources.length && !this.generatedError) { - this.end(); - return true; - } -}; - -/** - * @see GenericWorker.error - */ -ZipFileWorker.prototype.error = function (e) { - var sources = this._sources; - if(!GenericWorker.prototype.error.call(this, e)) { - return false; - } - for(var i = 0; i < sources.length; i++) { - try { - sources[i].error(e); - } catch(e) { - // the `error` exploded, nothing to do - } - } - return true; -}; - -/** - * @see GenericWorker.lock - */ -ZipFileWorker.prototype.lock = function () { - GenericWorker.prototype.lock.call(this); - var sources = this._sources; - for(var i = 0; i < sources.length; i++) { - sources[i].lock(); - } -}; - -module.exports = ZipFileWorker; - -},{"../crc32":4,"../signature":23,"../stream/GenericWorker":28,"../utf8":31,"../utils":32}],9:[function(require,module,exports){ -'use strict'; - -var compressions = require('../compressions'); -var ZipFileWorker = require('./ZipFileWorker'); - -/** - * Find the compression to use. - * @param {String} fileCompression the compression defined at the file level, if any. - * @param {String} zipCompression the compression defined at the load() level. - * @return {Object} the compression object to use. - */ -var getCompression = function (fileCompression, zipCompression) { - - var compressionName = fileCompression || zipCompression; - var compression = compressions[compressionName]; - if (!compression) { - throw new Error(compressionName + " is not a valid compression method !"); - } - return compression; -}; - -/** - * Create a worker to generate a zip file. - * @param {JSZip} zip the JSZip instance at the right root level. - * @param {Object} options to generate the zip file. - * @param {String} comment the comment to use. - */ -exports.generateWorker = function (zip, options, comment) { - - var zipFileWorker = new ZipFileWorker(options.streamFiles, comment, options.platform, options.encodeFileName); - var entriesCount = 0; - try { - - zip.forEach(function (relativePath, file) { - entriesCount++; - var compression = getCompression(file.options.compression, options.compression); - var compressionOptions = file.options.compressionOptions || options.compressionOptions || {}; - var dir = file.dir, date = file.date; - - file._compressWorker(compression, compressionOptions) - .withStreamInfo("file", { - name : relativePath, - dir : dir, - date : date, - comment : file.comment || "", - unixPermissions : file.unixPermissions, - dosPermissions : file.dosPermissions - }) - .pipe(zipFileWorker); - }); - zipFileWorker.entriesCount = entriesCount; - } catch (e) { - zipFileWorker.error(e); - } - - return zipFileWorker; -}; - -},{"../compressions":3,"./ZipFileWorker":8}],10:[function(require,module,exports){ -'use strict'; - -/** - * Representation a of zip file in js - * @constructor - */ -function JSZip() { - // if this constructor is used without `new`, it adds `new` before itself: - if(!(this instanceof JSZip)) { - return new JSZip(); - } - - if(arguments.length) { - throw new Error("The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide."); - } - - // object containing the files : - // { - // "folder/" : {...}, - // "folder/data.txt" : {...} - // } - this.files = {}; - - this.comment = null; - - // Where we are in the hierarchy - this.root = ""; - this.clone = function() { - var newObj = new JSZip(); - for (var i in this) { - if (typeof this[i] !== "function") { - newObj[i] = this[i]; - } - } - return newObj; - }; -} -JSZip.prototype = require('./object'); -JSZip.prototype.loadAsync = require('./load'); -JSZip.support = require('./support'); -JSZip.defaults = require('./defaults'); - -// TODO find a better way to handle this version, -// a require('package.json').version doesn't work with webpack, see #327 -JSZip.version = "3.1.5"; - -JSZip.loadAsync = function (content, options) { - return new JSZip().loadAsync(content, options); -}; - -JSZip.external = require("./external"); -module.exports = JSZip; - -},{"./defaults":5,"./external":6,"./load":11,"./object":15,"./support":30}],11:[function(require,module,exports){ -'use strict'; -var utils = require('./utils'); -var external = require("./external"); -var utf8 = require('./utf8'); -var utils = require('./utils'); -var ZipEntries = require('./zipEntries'); -var Crc32Probe = require('./stream/Crc32Probe'); -var nodejsUtils = require("./nodejsUtils"); - -/** - * Check the CRC32 of an entry. - * @param {ZipEntry} zipEntry the zip entry to check. - * @return {Promise} the result. - */ -function checkEntryCRC32(zipEntry) { - return new external.Promise(function (resolve, reject) { - var worker = zipEntry.decompressed.getContentWorker().pipe(new Crc32Probe()); - worker.on("error", function (e) { - reject(e); - }) - .on("end", function () { - if (worker.streamInfo.crc32 !== zipEntry.decompressed.crc32) { - reject(new Error("Corrupted zip : CRC32 mismatch")); - } else { - resolve(); - } - }) - .resume(); - }); -} - -module.exports = function(data, options) { - var zip = this; - options = utils.extend(options || {}, { - base64: false, - checkCRC32: false, - optimizedBinaryString: false, - createFolders: false, - decodeFileName: utf8.utf8decode - }); - - if (nodejsUtils.isNode && nodejsUtils.isStream(data)) { - return external.Promise.reject(new Error("JSZip can't accept a stream when loading a zip file.")); - } - - return utils.prepareContent("the loaded zip file", data, true, options.optimizedBinaryString, options.base64) - .then(function(data) { - var zipEntries = new ZipEntries(options); - zipEntries.load(data); - return zipEntries; - }).then(function checkCRC32(zipEntries) { - var promises = [external.Promise.resolve(zipEntries)]; - var files = zipEntries.files; - if (options.checkCRC32) { - for (var i = 0; i < files.length; i++) { - promises.push(checkEntryCRC32(files[i])); - } - } - return external.Promise.all(promises); - }).then(function addFiles(results) { - var zipEntries = results.shift(); - var files = zipEntries.files; - for (var i = 0; i < files.length; i++) { - var input = files[i]; - zip.file(input.fileNameStr, input.decompressed, { - binary: true, - optimizedBinaryString: true, - date: input.date, - dir: input.dir, - comment : input.fileCommentStr.length ? input.fileCommentStr : null, - unixPermissions : input.unixPermissions, - dosPermissions : input.dosPermissions, - createFolders: options.createFolders - }); - } - if (zipEntries.zipComment.length) { - zip.comment = zipEntries.zipComment; - } - - return zip; - }); -}; - -},{"./external":6,"./nodejsUtils":14,"./stream/Crc32Probe":25,"./utf8":31,"./utils":32,"./zipEntries":33}],12:[function(require,module,exports){ -"use strict"; - -var utils = require('../utils'); -var GenericWorker = require('../stream/GenericWorker'); - -/** - * A worker that use a nodejs stream as source. - * @constructor - * @param {String} filename the name of the file entry for this stream. - * @param {Readable} stream the nodejs stream. - */ -function NodejsStreamInputAdapter(filename, stream) { - GenericWorker.call(this, "Nodejs stream input adapter for " + filename); - this._upstreamEnded = false; - this._bindStream(stream); -} - -utils.inherits(NodejsStreamInputAdapter, GenericWorker); - -/** - * Prepare the stream and bind the callbacks on it. - * Do this ASAP on node 0.10 ! A lazy binding doesn't always work. - * @param {Stream} stream the nodejs stream to use. - */ -NodejsStreamInputAdapter.prototype._bindStream = function (stream) { - var self = this; - this._stream = stream; - stream.pause(); - stream - .on("data", function (chunk) { - self.push({ - data: chunk, - meta : { - percent : 0 - } - }); - }) - .on("error", function (e) { - if(self.isPaused) { - this.generatedError = e; - } else { - self.error(e); - } - }) - .on("end", function () { - if(self.isPaused) { - self._upstreamEnded = true; - } else { - self.end(); - } - }); -}; -NodejsStreamInputAdapter.prototype.pause = function () { - if(!GenericWorker.prototype.pause.call(this)) { - return false; - } - this._stream.pause(); - return true; -}; -NodejsStreamInputAdapter.prototype.resume = function () { - if(!GenericWorker.prototype.resume.call(this)) { - return false; - } - - if(this._upstreamEnded) { - this.end(); - } else { - this._stream.resume(); - } - - return true; -}; - -module.exports = NodejsStreamInputAdapter; - -},{"../stream/GenericWorker":28,"../utils":32}],13:[function(require,module,exports){ -'use strict'; - -var Readable = require('readable-stream').Readable; - -var utils = require('../utils'); -utils.inherits(NodejsStreamOutputAdapter, Readable); - -/** -* A nodejs stream using a worker as source. -* @see the SourceWrapper in http://nodejs.org/api/stream.html -* @constructor -* @param {StreamHelper} helper the helper wrapping the worker -* @param {Object} options the nodejs stream options -* @param {Function} updateCb the update callback. -*/ -function NodejsStreamOutputAdapter(helper, options, updateCb) { - Readable.call(this, options); - this._helper = helper; - - var self = this; - helper.on("data", function (data, meta) { - if (!self.push(data)) { - self._helper.pause(); - } - if(updateCb) { - updateCb(meta); - } - }) - .on("error", function(e) { - self.emit('error', e); - }) - .on("end", function () { - self.push(null); - }); -} - - -NodejsStreamOutputAdapter.prototype._read = function() { - this._helper.resume(); -}; - -module.exports = NodejsStreamOutputAdapter; - -},{"../utils":32,"readable-stream":16}],14:[function(require,module,exports){ -'use strict'; - -module.exports = { - /** - * True if this is running in Nodejs, will be undefined in a browser. - * In a browser, browserify won't include this file and the whole module - * will be resolved an empty object. - */ - isNode : typeof Buffer !== "undefined", - /** - * Create a new nodejs Buffer from an existing content. - * @param {Object} data the data to pass to the constructor. - * @param {String} encoding the encoding to use. - * @return {Buffer} a new Buffer. - */ - newBufferFrom: function(data, encoding) { - // XXX We can't use `Buffer.from` which comes from `Uint8Array.from` - // in nodejs v4 (< v.4.5). It's not the expected implementation (and - // has a different signature). - // see https://github.com/nodejs/node/issues/8053 - // A condition on nodejs' version won't solve the issue as we don't - // control the Buffer polyfills that may or may not be used. - return new Buffer(data, encoding); - }, - /** - * Create a new nodejs Buffer with the specified size. - * @param {Integer} size the size of the buffer. - * @return {Buffer} a new Buffer. - */ - allocBuffer: function (size) { - if (Buffer.alloc) { - return Buffer.alloc(size); - } else { - return new Buffer(size); - } - }, - /** - * Find out if an object is a Buffer. - * @param {Object} b the object to test. - * @return {Boolean} true if the object is a Buffer, false otherwise. - */ - isBuffer : function(b){ - return Buffer.isBuffer(b); - }, - - isStream : function (obj) { - return obj && - typeof obj.on === "function" && - typeof obj.pause === "function" && - typeof obj.resume === "function"; - } -}; - -},{}],15:[function(require,module,exports){ -'use strict'; -var utf8 = require('./utf8'); -var utils = require('./utils'); -var GenericWorker = require('./stream/GenericWorker'); -var StreamHelper = require('./stream/StreamHelper'); -var defaults = require('./defaults'); -var CompressedObject = require('./compressedObject'); -var ZipObject = require('./zipObject'); -var generate = require("./generate"); -var nodejsUtils = require("./nodejsUtils"); -var NodejsStreamInputAdapter = require("./nodejs/NodejsStreamInputAdapter"); - - -/** - * Add a file in the current folder. - * @private - * @param {string} name the name of the file - * @param {String|ArrayBuffer|Uint8Array|Buffer} data the data of the file - * @param {Object} originalOptions the options of the file - * @return {Object} the new file. - */ -var fileAdd = function(name, data, originalOptions) { - // be sure sub folders exist - var dataType = utils.getTypeOf(data), - parent; - - - /* - * Correct options. - */ - - var o = utils.extend(originalOptions || {}, defaults); - o.date = o.date || new Date(); - if (o.compression !== null) { - o.compression = o.compression.toUpperCase(); - } - - if (typeof o.unixPermissions === "string") { - o.unixPermissions = parseInt(o.unixPermissions, 8); - } - - // UNX_IFDIR 0040000 see zipinfo.c - if (o.unixPermissions && (o.unixPermissions & 0x4000)) { - o.dir = true; - } - // Bit 4 Directory - if (o.dosPermissions && (o.dosPermissions & 0x0010)) { - o.dir = true; - } - - if (o.dir) { - name = forceTrailingSlash(name); - } - if (o.createFolders && (parent = parentFolder(name))) { - folderAdd.call(this, parent, true); - } - - var isUnicodeString = dataType === "string" && o.binary === false && o.base64 === false; - if (!originalOptions || typeof originalOptions.binary === "undefined") { - o.binary = !isUnicodeString; - } - - - var isCompressedEmpty = (data instanceof CompressedObject) && data.uncompressedSize === 0; - - if (isCompressedEmpty || o.dir || !data || data.length === 0) { - o.base64 = false; - o.binary = true; - data = ""; - o.compression = "STORE"; - dataType = "string"; - } - - /* - * Convert content to fit. - */ - - var zipObjectContent = null; - if (data instanceof CompressedObject || data instanceof GenericWorker) { - zipObjectContent = data; - } else if (nodejsUtils.isNode && nodejsUtils.isStream(data)) { - zipObjectContent = new NodejsStreamInputAdapter(name, data); - } else { - zipObjectContent = utils.prepareContent(name, data, o.binary, o.optimizedBinaryString, o.base64); - } - - var object = new ZipObject(name, zipObjectContent, o); - this.files[name] = object; - /* - TODO: we can't throw an exception because we have async promises - (we can have a promise of a Date() for example) but returning a - promise is useless because file(name, data) returns the JSZip - object for chaining. Should we break that to allow the user - to catch the error ? - - return external.Promise.resolve(zipObjectContent) - .then(function () { - return object; - }); - */ -}; - -/** - * Find the parent folder of the path. - * @private - * @param {string} path the path to use - * @return {string} the parent folder, or "" - */ -var parentFolder = function (path) { - if (path.slice(-1) === '/') { - path = path.substring(0, path.length - 1); - } - var lastSlash = path.lastIndexOf('/'); - return (lastSlash > 0) ? path.substring(0, lastSlash) : ""; -}; - -/** - * Returns the path with a slash at the end. - * @private - * @param {String} path the path to check. - * @return {String} the path with a trailing slash. - */ -var forceTrailingSlash = function(path) { - // Check the name ends with a / - if (path.slice(-1) !== "/") { - path += "/"; // IE doesn't like substr(-1) - } - return path; -}; - -/** - * Add a (sub) folder in the current folder. - * @private - * @param {string} name the folder's name - * @param {boolean=} [createFolders] If true, automatically create sub - * folders. Defaults to false. - * @return {Object} the new folder. - */ -var folderAdd = function(name, createFolders) { - createFolders = (typeof createFolders !== 'undefined') ? createFolders : defaults.createFolders; - - name = forceTrailingSlash(name); - - // Does this folder already exist? - if (!this.files[name]) { - fileAdd.call(this, name, null, { - dir: true, - createFolders: createFolders - }); - } - return this.files[name]; -}; - -/** -* Cross-window, cross-Node-context regular expression detection -* @param {Object} object Anything -* @return {Boolean} true if the object is a regular expression, -* false otherwise -*/ -function isRegExp(object) { - return Object.prototype.toString.call(object) === "[object RegExp]"; -} - -// return the actual prototype of JSZip -var out = { - /** - * @see loadAsync - */ - load: function() { - throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide."); - }, - - - /** - * Call a callback function for each entry at this folder level. - * @param {Function} cb the callback function: - * function (relativePath, file) {...} - * It takes 2 arguments : the relative path and the file. - */ - forEach: function(cb) { - var filename, relativePath, file; - for (filename in this.files) { - if (!this.files.hasOwnProperty(filename)) { - continue; - } - file = this.files[filename]; - relativePath = filename.slice(this.root.length, filename.length); - if (relativePath && filename.slice(0, this.root.length) === this.root) { // the file is in the current root - cb(relativePath, file); // TODO reverse the parameters ? need to be clean AND consistent with the filter search fn... - } - } - }, - - /** - * Filter nested files/folders with the specified function. - * @param {Function} search the predicate to use : - * function (relativePath, file) {...} - * It takes 2 arguments : the relative path and the file. - * @return {Array} An array of matching elements. - */ - filter: function(search) { - var result = []; - this.forEach(function (relativePath, entry) { - if (search(relativePath, entry)) { // the file matches the function - result.push(entry); - } - - }); - return result; - }, - - /** - * Add a file to the zip file, or search a file. - * @param {string|RegExp} name The name of the file to add (if data is defined), - * the name of the file to find (if no data) or a regex to match files. - * @param {String|ArrayBuffer|Uint8Array|Buffer} data The file data, either raw or base64 encoded - * @param {Object} o File options - * @return {JSZip|Object|Array} this JSZip object (when adding a file), - * a file (when searching by string) or an array of files (when searching by regex). - */ - file: function(name, data, o) { - if (arguments.length === 1) { - if (isRegExp(name)) { - var regexp = name; - return this.filter(function(relativePath, file) { - return !file.dir && regexp.test(relativePath); - }); - } - else { // text - var obj = this.files[this.root + name]; - if (obj && !obj.dir) { - return obj; - } else { - return null; - } - } - } - else { // more than one argument : we have data ! - name = this.root + name; - fileAdd.call(this, name, data, o); - } - return this; - }, - - /** - * Add a directory to the zip file, or search. - * @param {String|RegExp} arg The name of the directory to add, or a regex to search folders. - * @return {JSZip} an object with the new directory as the root, or an array containing matching folders. - */ - folder: function(arg) { - if (!arg) { - return this; - } - - if (isRegExp(arg)) { - return this.filter(function(relativePath, file) { - return file.dir && arg.test(relativePath); - }); - } - - // else, name is a new folder - var name = this.root + arg; - var newFolder = folderAdd.call(this, name); - - // Allow chaining by returning a new object with this folder as the root - var ret = this.clone(); - ret.root = newFolder.name; - return ret; - }, - - /** - * Delete a file, or a directory and all sub-files, from the zip - * @param {string} name the name of the file to delete - * @return {JSZip} this JSZip object - */ - remove: function(name) { - name = this.root + name; - var file = this.files[name]; - if (!file) { - // Look for any folders - if (name.slice(-1) !== "/") { - name += "/"; - } - file = this.files[name]; - } - - if (file && !file.dir) { - // file - delete this.files[name]; - } else { - // maybe a folder, delete recursively - var kids = this.filter(function(relativePath, file) { - return file.name.slice(0, name.length) === name; - }); - for (var i = 0; i < kids.length; i++) { - delete this.files[kids[i].name]; - } - } - - return this; - }, - - /** - * Generate the complete zip file - * @param {Object} options the options to generate the zip file : - * - compression, "STORE" by default. - * - type, "base64" by default. Values are : string, base64, uint8array, arraybuffer, blob. - * @return {String|Uint8Array|ArrayBuffer|Buffer|Blob} the zip file - */ - generate: function(options) { - throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide."); - }, - - /** - * Generate the complete zip file as an internal stream. - * @param {Object} options the options to generate the zip file : - * - compression, "STORE" by default. - * - type, "base64" by default. Values are : string, base64, uint8array, arraybuffer, blob. - * @return {StreamHelper} the streamed zip file. - */ - generateInternalStream: function(options) { - var worker, opts = {}; - try { - opts = utils.extend(options || {}, { - streamFiles: false, - compression: "STORE", - compressionOptions : null, - type: "", - platform: "DOS", - comment: null, - mimeType: 'application/zip', - encodeFileName: utf8.utf8encode - }); - - opts.type = opts.type.toLowerCase(); - opts.compression = opts.compression.toUpperCase(); - - // "binarystring" is prefered but the internals use "string". - if(opts.type === "binarystring") { - opts.type = "string"; - } - - if (!opts.type) { - throw new Error("No output type specified."); - } - - utils.checkSupport(opts.type); - - // accept nodejs `process.platform` - if( - opts.platform === 'darwin' || - opts.platform === 'freebsd' || - opts.platform === 'linux' || - opts.platform === 'sunos' - ) { - opts.platform = "UNIX"; - } - if (opts.platform === 'win32') { - opts.platform = "DOS"; - } - - var comment = opts.comment || this.comment || ""; - worker = generate.generateWorker(this, opts, comment); - } catch (e) { - worker = new GenericWorker("error"); - worker.error(e); - } - return new StreamHelper(worker, opts.type || "string", opts.mimeType); - }, - /** - * Generate the complete zip file asynchronously. - * @see generateInternalStream - */ - generateAsync: function(options, onUpdate) { - return this.generateInternalStream(options).accumulate(onUpdate); - }, - /** - * Generate the complete zip file asynchronously. - * @see generateInternalStream - */ - generateNodeStream: function(options, onUpdate) { - options = options || {}; - if (!options.type) { - options.type = "nodebuffer"; - } - return this.generateInternalStream(options).toNodejsStream(onUpdate); - } -}; -module.exports = out; - -},{"./compressedObject":2,"./defaults":5,"./generate":9,"./nodejs/NodejsStreamInputAdapter":12,"./nodejsUtils":14,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31,"./utils":32,"./zipObject":35}],16:[function(require,module,exports){ -/* - * This file is used by module bundlers (browserify/webpack/etc) when - * including a stream implementation. We use "readable-stream" to get a - * consistent behavior between nodejs versions but bundlers often have a shim - * for "stream". Using this shim greatly improve the compatibility and greatly - * reduce the final size of the bundle (only one stream implementation, not - * two). - */ -module.exports = require("stream"); - -},{"stream":undefined}],17:[function(require,module,exports){ -'use strict'; -var DataReader = require('./DataReader'); -var utils = require('../utils'); - -function ArrayReader(data) { - DataReader.call(this, data); - for(var i = 0; i < this.data.length; i++) { - data[i] = data[i] & 0xFF; - } -} -utils.inherits(ArrayReader, DataReader); -/** - * @see DataReader.byteAt - */ -ArrayReader.prototype.byteAt = function(i) { - return this.data[this.zero + i]; -}; -/** - * @see DataReader.lastIndexOfSignature - */ -ArrayReader.prototype.lastIndexOfSignature = function(sig) { - var sig0 = sig.charCodeAt(0), - sig1 = sig.charCodeAt(1), - sig2 = sig.charCodeAt(2), - sig3 = sig.charCodeAt(3); - for (var i = this.length - 4; i >= 0; --i) { - if (this.data[i] === sig0 && this.data[i + 1] === sig1 && this.data[i + 2] === sig2 && this.data[i + 3] === sig3) { - return i - this.zero; - } - } - - return -1; -}; -/** - * @see DataReader.readAndCheckSignature - */ -ArrayReader.prototype.readAndCheckSignature = function (sig) { - var sig0 = sig.charCodeAt(0), - sig1 = sig.charCodeAt(1), - sig2 = sig.charCodeAt(2), - sig3 = sig.charCodeAt(3), - data = this.readData(4); - return sig0 === data[0] && sig1 === data[1] && sig2 === data[2] && sig3 === data[3]; -}; -/** - * @see DataReader.readData - */ -ArrayReader.prototype.readData = function(size) { - this.checkOffset(size); - if(size === 0) { - return []; - } - var result = this.data.slice(this.zero + this.index, this.zero + this.index + size); - this.index += size; - return result; -}; -module.exports = ArrayReader; - -},{"../utils":32,"./DataReader":18}],18:[function(require,module,exports){ -'use strict'; -var utils = require('../utils'); - -function DataReader(data) { - this.data = data; // type : see implementation - this.length = data.length; - this.index = 0; - this.zero = 0; -} -DataReader.prototype = { - /** - * Check that the offset will not go too far. - * @param {string} offset the additional offset to check. - * @throws {Error} an Error if the offset is out of bounds. - */ - checkOffset: function(offset) { - this.checkIndex(this.index + offset); - }, - /** - * Check that the specified index will not be too far. - * @param {string} newIndex the index to check. - * @throws {Error} an Error if the index is out of bounds. - */ - checkIndex: function(newIndex) { - if (this.length < this.zero + newIndex || newIndex < 0) { - throw new Error("End of data reached (data length = " + this.length + ", asked index = " + (newIndex) + "). Corrupted zip ?"); - } - }, - /** - * Change the index. - * @param {number} newIndex The new index. - * @throws {Error} if the new index is out of the data. - */ - setIndex: function(newIndex) { - this.checkIndex(newIndex); - this.index = newIndex; - }, - /** - * Skip the next n bytes. - * @param {number} n the number of bytes to skip. - * @throws {Error} if the new index is out of the data. - */ - skip: function(n) { - this.setIndex(this.index + n); - }, - /** - * Get the byte at the specified index. - * @param {number} i the index to use. - * @return {number} a byte. - */ - byteAt: function(i) { - // see implementations - }, - /** - * Get the next number with a given byte size. - * @param {number} size the number of bytes to read. - * @return {number} the corresponding number. - */ - readInt: function(size) { - var result = 0, - i; - this.checkOffset(size); - for (i = this.index + size - 1; i >= this.index; i--) { - result = (result << 8) + this.byteAt(i); - } - this.index += size; - return result; - }, - /** - * Get the next string with a given byte size. - * @param {number} size the number of bytes to read. - * @return {string} the corresponding string. - */ - readString: function(size) { - return utils.transformTo("string", this.readData(size)); - }, - /** - * Get raw data without conversion, bytes. - * @param {number} size the number of bytes to read. - * @return {Object} the raw data, implementation specific. - */ - readData: function(size) { - // see implementations - }, - /** - * Find the last occurence of a zip signature (4 bytes). - * @param {string} sig the signature to find. - * @return {number} the index of the last occurence, -1 if not found. - */ - lastIndexOfSignature: function(sig) { - // see implementations - }, - /** - * Read the signature (4 bytes) at the current position and compare it with sig. - * @param {string} sig the expected signature - * @return {boolean} true if the signature matches, false otherwise. - */ - readAndCheckSignature: function(sig) { - // see implementations - }, - /** - * Get the next date. - * @return {Date} the date. - */ - readDate: function() { - var dostime = this.readInt(4); - return new Date(Date.UTC( - ((dostime >> 25) & 0x7f) + 1980, // year - ((dostime >> 21) & 0x0f) - 1, // month - (dostime >> 16) & 0x1f, // day - (dostime >> 11) & 0x1f, // hour - (dostime >> 5) & 0x3f, // minute - (dostime & 0x1f) << 1)); // second - } -}; -module.exports = DataReader; - -},{"../utils":32}],19:[function(require,module,exports){ -'use strict'; -var Uint8ArrayReader = require('./Uint8ArrayReader'); -var utils = require('../utils'); - -function NodeBufferReader(data) { - Uint8ArrayReader.call(this, data); -} -utils.inherits(NodeBufferReader, Uint8ArrayReader); - -/** - * @see DataReader.readData - */ -NodeBufferReader.prototype.readData = function(size) { - this.checkOffset(size); - var result = this.data.slice(this.zero + this.index, this.zero + this.index + size); - this.index += size; - return result; -}; -module.exports = NodeBufferReader; - -},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(require,module,exports){ -'use strict'; -var DataReader = require('./DataReader'); -var utils = require('../utils'); - -function StringReader(data) { - DataReader.call(this, data); -} -utils.inherits(StringReader, DataReader); -/** - * @see DataReader.byteAt - */ -StringReader.prototype.byteAt = function(i) { - return this.data.charCodeAt(this.zero + i); -}; -/** - * @see DataReader.lastIndexOfSignature - */ -StringReader.prototype.lastIndexOfSignature = function(sig) { - return this.data.lastIndexOf(sig) - this.zero; -}; -/** - * @see DataReader.readAndCheckSignature - */ -StringReader.prototype.readAndCheckSignature = function (sig) { - var data = this.readData(4); - return sig === data; -}; -/** - * @see DataReader.readData - */ -StringReader.prototype.readData = function(size) { - this.checkOffset(size); - // this will work because the constructor applied the "& 0xff" mask. - var result = this.data.slice(this.zero + this.index, this.zero + this.index + size); - this.index += size; - return result; -}; -module.exports = StringReader; - -},{"../utils":32,"./DataReader":18}],21:[function(require,module,exports){ -'use strict'; -var ArrayReader = require('./ArrayReader'); -var utils = require('../utils'); - -function Uint8ArrayReader(data) { - ArrayReader.call(this, data); -} -utils.inherits(Uint8ArrayReader, ArrayReader); -/** - * @see DataReader.readData - */ -Uint8ArrayReader.prototype.readData = function(size) { - this.checkOffset(size); - if(size === 0) { - // in IE10, when using subarray(idx, idx), we get the array [0x00] instead of []. - return new Uint8Array(0); - } - var result = this.data.subarray(this.zero + this.index, this.zero + this.index + size); - this.index += size; - return result; -}; -module.exports = Uint8ArrayReader; - -},{"../utils":32,"./ArrayReader":17}],22:[function(require,module,exports){ -'use strict'; - -var utils = require('../utils'); -var support = require('../support'); -var ArrayReader = require('./ArrayReader'); -var StringReader = require('./StringReader'); -var NodeBufferReader = require('./NodeBufferReader'); -var Uint8ArrayReader = require('./Uint8ArrayReader'); - -/** - * Create a reader adapted to the data. - * @param {String|ArrayBuffer|Uint8Array|Buffer} data the data to read. - * @return {DataReader} the data reader. - */ -module.exports = function (data) { - var type = utils.getTypeOf(data); - utils.checkSupport(type); - if (type === "string" && !support.uint8array) { - return new StringReader(data); - } - if (type === "nodebuffer") { - return new NodeBufferReader(data); - } - if (support.uint8array) { - return new Uint8ArrayReader(utils.transformTo("uint8array", data)); - } - return new ArrayReader(utils.transformTo("array", data)); -}; - -},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(require,module,exports){ -'use strict'; -exports.LOCAL_FILE_HEADER = "PK\x03\x04"; -exports.CENTRAL_FILE_HEADER = "PK\x01\x02"; -exports.CENTRAL_DIRECTORY_END = "PK\x05\x06"; -exports.ZIP64_CENTRAL_DIRECTORY_LOCATOR = "PK\x06\x07"; -exports.ZIP64_CENTRAL_DIRECTORY_END = "PK\x06\x06"; -exports.DATA_DESCRIPTOR = "PK\x07\x08"; - -},{}],24:[function(require,module,exports){ -'use strict'; - -var GenericWorker = require('./GenericWorker'); -var utils = require('../utils'); - -/** - * A worker which convert chunks to a specified type. - * @constructor - * @param {String} destType the destination type. - */ -function ConvertWorker(destType) { - GenericWorker.call(this, "ConvertWorker to " + destType); - this.destType = destType; -} -utils.inherits(ConvertWorker, GenericWorker); - -/** - * @see GenericWorker.processChunk - */ -ConvertWorker.prototype.processChunk = function (chunk) { - this.push({ - data : utils.transformTo(this.destType, chunk.data), - meta : chunk.meta - }); -}; -module.exports = ConvertWorker; - -},{"../utils":32,"./GenericWorker":28}],25:[function(require,module,exports){ -'use strict'; - -var GenericWorker = require('./GenericWorker'); -var crc32 = require('../crc32'); -var utils = require('../utils'); - -/** - * A worker which calculate the crc32 of the data flowing through. - * @constructor - */ -function Crc32Probe() { - GenericWorker.call(this, "Crc32Probe"); - this.withStreamInfo("crc32", 0); -} -utils.inherits(Crc32Probe, GenericWorker); - -/** - * @see GenericWorker.processChunk - */ -Crc32Probe.prototype.processChunk = function (chunk) { - this.streamInfo.crc32 = crc32(chunk.data, this.streamInfo.crc32 || 0); - this.push(chunk); -}; -module.exports = Crc32Probe; - -},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(require,module,exports){ -'use strict'; - -var utils = require('../utils'); -var GenericWorker = require('./GenericWorker'); - -/** - * A worker which calculate the total length of the data flowing through. - * @constructor - * @param {String} propName the name used to expose the length - */ -function DataLengthProbe(propName) { - GenericWorker.call(this, "DataLengthProbe for " + propName); - this.propName = propName; - this.withStreamInfo(propName, 0); -} -utils.inherits(DataLengthProbe, GenericWorker); - -/** - * @see GenericWorker.processChunk - */ -DataLengthProbe.prototype.processChunk = function (chunk) { - if(chunk) { - var length = this.streamInfo[this.propName] || 0; - this.streamInfo[this.propName] = length + chunk.data.length; - } - GenericWorker.prototype.processChunk.call(this, chunk); -}; -module.exports = DataLengthProbe; - - -},{"../utils":32,"./GenericWorker":28}],27:[function(require,module,exports){ -'use strict'; - -var utils = require('../utils'); -var GenericWorker = require('./GenericWorker'); - -// the size of the generated chunks -// TODO expose this as a public variable -var DEFAULT_BLOCK_SIZE = 16 * 1024; - -/** - * A worker that reads a content and emits chunks. - * @constructor - * @param {Promise} dataP the promise of the data to split - */ -function DataWorker(dataP) { - GenericWorker.call(this, "DataWorker"); - var self = this; - this.dataIsReady = false; - this.index = 0; - this.max = 0; - this.data = null; - this.type = ""; - - this._tickScheduled = false; - - dataP.then(function (data) { - self.dataIsReady = true; - self.data = data; - self.max = data && data.length || 0; - self.type = utils.getTypeOf(data); - if(!self.isPaused) { - self._tickAndRepeat(); - } - }, function (e) { - self.error(e); - }); -} - -utils.inherits(DataWorker, GenericWorker); - -/** - * @see GenericWorker.cleanUp - */ -DataWorker.prototype.cleanUp = function () { - GenericWorker.prototype.cleanUp.call(this); - this.data = null; -}; - -/** - * @see GenericWorker.resume - */ -DataWorker.prototype.resume = function () { - if(!GenericWorker.prototype.resume.call(this)) { - return false; - } - - if (!this._tickScheduled && this.dataIsReady) { - this._tickScheduled = true; - utils.delay(this._tickAndRepeat, [], this); - } - return true; -}; - -/** - * Trigger a tick a schedule an other call to this function. - */ -DataWorker.prototype._tickAndRepeat = function() { - this._tickScheduled = false; - if(this.isPaused || this.isFinished) { - return; - } - this._tick(); - if(!this.isFinished) { - utils.delay(this._tickAndRepeat, [], this); - this._tickScheduled = true; - } -}; - -/** - * Read and push a chunk. - */ -DataWorker.prototype._tick = function() { - - if(this.isPaused || this.isFinished) { - return false; - } - - var size = DEFAULT_BLOCK_SIZE; - var data = null, nextIndex = Math.min(this.max, this.index + size); - if (this.index >= this.max) { - // EOF - return this.end(); - } else { - switch(this.type) { - case "string": - data = this.data.substring(this.index, nextIndex); - break; - case "uint8array": - data = this.data.subarray(this.index, nextIndex); - break; - case "array": - case "nodebuffer": - data = this.data.slice(this.index, nextIndex); - break; - } - this.index = nextIndex; - return this.push({ - data : data, - meta : { - percent : this.max ? this.index / this.max * 100 : 0 - } - }); - } -}; - -module.exports = DataWorker; - -},{"../utils":32,"./GenericWorker":28}],28:[function(require,module,exports){ -'use strict'; - -/** - * A worker that does nothing but passing chunks to the next one. This is like - * a nodejs stream but with some differences. On the good side : - * - it works on IE 6-9 without any issue / polyfill - * - it weights less than the full dependencies bundled with browserify - * - it forwards errors (no need to declare an error handler EVERYWHERE) - * - * A chunk is an object with 2 attributes : `meta` and `data`. The former is an - * object containing anything (`percent` for example), see each worker for more - * details. The latter is the real data (String, Uint8Array, etc). - * - * @constructor - * @param {String} name the name of the stream (mainly used for debugging purposes) - */ -function GenericWorker(name) { - // the name of the worker - this.name = name || "default"; - // an object containing metadata about the workers chain - this.streamInfo = {}; - // an error which happened when the worker was paused - this.generatedError = null; - // an object containing metadata to be merged by this worker into the general metadata - this.extraStreamInfo = {}; - // true if the stream is paused (and should not do anything), false otherwise - this.isPaused = true; - // true if the stream is finished (and should not do anything), false otherwise - this.isFinished = false; - // true if the stream is locked to prevent further structure updates (pipe), false otherwise - this.isLocked = false; - // the event listeners - this._listeners = { - 'data':[], - 'end':[], - 'error':[] - }; - // the previous worker, if any - this.previous = null; -} - -GenericWorker.prototype = { - /** - * Push a chunk to the next workers. - * @param {Object} chunk the chunk to push - */ - push : function (chunk) { - this.emit("data", chunk); - }, - /** - * End the stream. - * @return {Boolean} true if this call ended the worker, false otherwise. - */ - end : function () { - if (this.isFinished) { - return false; - } - - this.flush(); - try { - this.emit("end"); - this.cleanUp(); - this.isFinished = true; - } catch (e) { - this.emit("error", e); - } - return true; - }, - /** - * End the stream with an error. - * @param {Error} e the error which caused the premature end. - * @return {Boolean} true if this call ended the worker with an error, false otherwise. - */ - error : function (e) { - if (this.isFinished) { - return false; - } - - if(this.isPaused) { - this.generatedError = e; - } else { - this.isFinished = true; - - this.emit("error", e); - - // in the workers chain exploded in the middle of the chain, - // the error event will go downward but we also need to notify - // workers upward that there has been an error. - if(this.previous) { - this.previous.error(e); - } - - this.cleanUp(); - } - return true; - }, - /** - * Add a callback on an event. - * @param {String} name the name of the event (data, end, error) - * @param {Function} listener the function to call when the event is triggered - * @return {GenericWorker} the current object for chainability - */ - on : function (name, listener) { - this._listeners[name].push(listener); - return this; - }, - /** - * Clean any references when a worker is ending. - */ - cleanUp : function () { - this.streamInfo = this.generatedError = this.extraStreamInfo = null; - this._listeners = []; - }, - /** - * Trigger an event. This will call registered callback with the provided arg. - * @param {String} name the name of the event (data, end, error) - * @param {Object} arg the argument to call the callback with. - */ - emit : function (name, arg) { - if (this._listeners[name]) { - for(var i = 0; i < this._listeners[name].length; i++) { - this._listeners[name][i].call(this, arg); - } - } - }, - /** - * Chain a worker with an other. - * @param {Worker} next the worker receiving events from the current one. - * @return {worker} the next worker for chainability - */ - pipe : function (next) { - return next.registerPrevious(this); - }, - /** - * Same as `pipe` in the other direction. - * Using an API with `pipe(next)` is very easy. - * Implementing the API with the point of view of the next one registering - * a source is easier, see the ZipFileWorker. - * @param {Worker} previous the previous worker, sending events to this one - * @return {Worker} the current worker for chainability - */ - registerPrevious : function (previous) { - if (this.isLocked) { - throw new Error("The stream '" + this + "' has already been used."); - } - - // sharing the streamInfo... - this.streamInfo = previous.streamInfo; - // ... and adding our own bits - this.mergeStreamInfo(); - this.previous = previous; - var self = this; - previous.on('data', function (chunk) { - self.processChunk(chunk); - }); - previous.on('end', function () { - self.end(); - }); - previous.on('error', function (e) { - self.error(e); - }); - return this; - }, - /** - * Pause the stream so it doesn't send events anymore. - * @return {Boolean} true if this call paused the worker, false otherwise. - */ - pause : function () { - if(this.isPaused || this.isFinished) { - return false; - } - this.isPaused = true; - - if(this.previous) { - this.previous.pause(); - } - return true; - }, - /** - * Resume a paused stream. - * @return {Boolean} true if this call resumed the worker, false otherwise. - */ - resume : function () { - if(!this.isPaused || this.isFinished) { - return false; - } - this.isPaused = false; - - // if true, the worker tried to resume but failed - var withError = false; - if(this.generatedError) { - this.error(this.generatedError); - withError = true; - } - if(this.previous) { - this.previous.resume(); - } - - return !withError; - }, - /** - * Flush any remaining bytes as the stream is ending. - */ - flush : function () {}, - /** - * Process a chunk. This is usually the method overridden. - * @param {Object} chunk the chunk to process. - */ - processChunk : function(chunk) { - this.push(chunk); - }, - /** - * Add a key/value to be added in the workers chain streamInfo once activated. - * @param {String} key the key to use - * @param {Object} value the associated value - * @return {Worker} the current worker for chainability - */ - withStreamInfo : function (key, value) { - this.extraStreamInfo[key] = value; - this.mergeStreamInfo(); - return this; - }, - /** - * Merge this worker's streamInfo into the chain's streamInfo. - */ - mergeStreamInfo : function () { - for(var key in this.extraStreamInfo) { - if (!this.extraStreamInfo.hasOwnProperty(key)) { - continue; - } - this.streamInfo[key] = this.extraStreamInfo[key]; - } - }, - - /** - * Lock the stream to prevent further updates on the workers chain. - * After calling this method, all calls to pipe will fail. - */ - lock: function () { - if (this.isLocked) { - throw new Error("The stream '" + this + "' has already been used."); - } - this.isLocked = true; - if (this.previous) { - this.previous.lock(); - } - }, - - /** - * - * Pretty print the workers chain. - */ - toString : function () { - var me = "Worker " + this.name; - if (this.previous) { - return this.previous + " -> " + me; - } else { - return me; - } - } -}; - -module.exports = GenericWorker; - -},{}],29:[function(require,module,exports){ -'use strict'; - -var utils = require('../utils'); -var ConvertWorker = require('./ConvertWorker'); -var GenericWorker = require('./GenericWorker'); -var base64 = require('../base64'); -var support = require("../support"); -var external = require("../external"); - -var NodejsStreamOutputAdapter = null; -if (support.nodestream) { - try { - NodejsStreamOutputAdapter = require('../nodejs/NodejsStreamOutputAdapter'); - } catch(e) {} -} - -/** - * Apply the final transformation of the data. If the user wants a Blob for - * example, it's easier to work with an U8intArray and finally do the - * ArrayBuffer/Blob conversion. - * @param {String} type the name of the final type - * @param {String|Uint8Array|Buffer} content the content to transform - * @param {String} mimeType the mime type of the content, if applicable. - * @return {String|Uint8Array|ArrayBuffer|Buffer|Blob} the content in the right format. - */ -function transformZipOutput(type, content, mimeType) { - switch(type) { - case "blob" : - return utils.newBlob(utils.transformTo("arraybuffer", content), mimeType); - case "base64" : - return base64.encode(content); - default : - return utils.transformTo(type, content); - } -} - -/** - * Concatenate an array of data of the given type. - * @param {String} type the type of the data in the given array. - * @param {Array} dataArray the array containing the data chunks to concatenate - * @return {String|Uint8Array|Buffer} the concatenated data - * @throws Error if the asked type is unsupported - */ -function concat (type, dataArray) { - var i, index = 0, res = null, totalLength = 0; - for(i = 0; i < dataArray.length; i++) { - totalLength += dataArray[i].length; - } - switch(type) { - case "string": - return dataArray.join(""); - case "array": - return Array.prototype.concat.apply([], dataArray); - case "uint8array": - res = new Uint8Array(totalLength); - for(i = 0; i < dataArray.length; i++) { - res.set(dataArray[i], index); - index += dataArray[i].length; - } - return res; - case "nodebuffer": - return Buffer.concat(dataArray); - default: - throw new Error("concat : unsupported type '" + type + "'"); - } -} - -/** - * Listen a StreamHelper, accumulate its content and concatenate it into a - * complete block. - * @param {StreamHelper} helper the helper to use. - * @param {Function} updateCallback a callback called on each update. Called - * with one arg : - * - the metadata linked to the update received. - * @return Promise the promise for the accumulation. - */ -function accumulate(helper, updateCallback) { - return new external.Promise(function (resolve, reject){ - var dataArray = []; - var chunkType = helper._internalType, - resultType = helper._outputType, - mimeType = helper._mimeType; - helper - .on('data', function (data, meta) { - dataArray.push(data); - if(updateCallback) { - updateCallback(meta); - } - }) - .on('error', function(err) { - dataArray = []; - reject(err); - }) - .on('end', function (){ - try { - var result = transformZipOutput(resultType, concat(chunkType, dataArray), mimeType); - resolve(result); - } catch (e) { - reject(e); - } - dataArray = []; - }) - .resume(); - }); -} - -/** - * An helper to easily use workers outside of JSZip. - * @constructor - * @param {Worker} worker the worker to wrap - * @param {String} outputType the type of data expected by the use - * @param {String} mimeType the mime type of the content, if applicable. - */ -function StreamHelper(worker, outputType, mimeType) { - var internalType = outputType; - switch(outputType) { - case "blob": - case "arraybuffer": - internalType = "uint8array"; - break; - case "base64": - internalType = "string"; - break; - } - - try { - // the type used internally - this._internalType = internalType; - // the type used to output results - this._outputType = outputType; - // the mime type - this._mimeType = mimeType; - utils.checkSupport(internalType); - this._worker = worker.pipe(new ConvertWorker(internalType)); - // the last workers can be rewired without issues but we need to - // prevent any updates on previous workers. - worker.lock(); - } catch(e) { - this._worker = new GenericWorker("error"); - this._worker.error(e); - } -} - -StreamHelper.prototype = { - /** - * Listen a StreamHelper, accumulate its content and concatenate it into a - * complete block. - * @param {Function} updateCb the update callback. - * @return Promise the promise for the accumulation. - */ - accumulate : function (updateCb) { - return accumulate(this, updateCb); - }, - /** - * Add a listener on an event triggered on a stream. - * @param {String} evt the name of the event - * @param {Function} fn the listener - * @return {StreamHelper} the current helper. - */ - on : function (evt, fn) { - var self = this; - - if(evt === "data") { - this._worker.on(evt, function (chunk) { - fn.call(self, chunk.data, chunk.meta); - }); - } else { - this._worker.on(evt, function () { - utils.delay(fn, arguments, self); - }); - } - return this; - }, - /** - * Resume the flow of chunks. - * @return {StreamHelper} the current helper. - */ - resume : function () { - utils.delay(this._worker.resume, [], this._worker); - return this; - }, - /** - * Pause the flow of chunks. - * @return {StreamHelper} the current helper. - */ - pause : function () { - this._worker.pause(); - return this; - }, - /** - * Return a nodejs stream for this helper. - * @param {Function} updateCb the update callback. - * @return {NodejsStreamOutputAdapter} the nodejs stream. - */ - toNodejsStream : function (updateCb) { - utils.checkSupport("nodestream"); - if (this._outputType !== "nodebuffer") { - // an object stream containing blob/arraybuffer/uint8array/string - // is strange and I don't know if it would be useful. - // I you find this comment and have a good usecase, please open a - // bug report ! - throw new Error(this._outputType + " is not supported by this method"); - } - - return new NodejsStreamOutputAdapter(this, { - objectMode : this._outputType !== "nodebuffer" - }, updateCb); - } -}; - - -module.exports = StreamHelper; - -},{"../base64":1,"../external":6,"../nodejs/NodejsStreamOutputAdapter":13,"../support":30,"../utils":32,"./ConvertWorker":24,"./GenericWorker":28}],30:[function(require,module,exports){ -'use strict'; - -exports.base64 = true; -exports.array = true; -exports.string = true; -exports.arraybuffer = typeof ArrayBuffer !== "undefined" && typeof Uint8Array !== "undefined"; -exports.nodebuffer = typeof Buffer !== "undefined"; -// contains true if JSZip can read/generate Uint8Array, false otherwise. -exports.uint8array = typeof Uint8Array !== "undefined"; - -if (typeof ArrayBuffer === "undefined") { - exports.blob = false; -} -else { - var buffer = new ArrayBuffer(0); - try { - exports.blob = new Blob([buffer], { - type: "application/zip" - }).size === 0; - } - catch (e) { - try { - var Builder = self.BlobBuilder || self.WebKitBlobBuilder || self.MozBlobBuilder || self.MSBlobBuilder; - var builder = new Builder(); - builder.append(buffer); - exports.blob = builder.getBlob('application/zip').size === 0; - } - catch (e) { - exports.blob = false; - } - } -} - -try { - exports.nodestream = !!require('readable-stream').Readable; -} catch(e) { - exports.nodestream = false; -} - -},{"readable-stream":16}],31:[function(require,module,exports){ -'use strict'; - -var utils = require('./utils'); -var support = require('./support'); -var nodejsUtils = require('./nodejsUtils'); -var GenericWorker = require('./stream/GenericWorker'); - -/** - * The following functions come from pako, from pako/lib/utils/strings - * released under the MIT license, see pako https://github.com/nodeca/pako/ - */ - -// Table with utf8 lengths (calculated by first byte of sequence) -// Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS, -// because max possible codepoint is 0x10ffff -var _utf8len = new Array(256); -for (var i=0; i<256; i++) { - _utf8len[i] = (i >= 252 ? 6 : i >= 248 ? 5 : i >= 240 ? 4 : i >= 224 ? 3 : i >= 192 ? 2 : 1); -} -_utf8len[254]=_utf8len[254]=1; // Invalid sequence start - -// convert string to array (typed, when possible) -var string2buf = function (str) { - var buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0; - - // count binary size - for (m_pos = 0; m_pos < str_len; m_pos++) { - c = str.charCodeAt(m_pos); - if ((c & 0xfc00) === 0xd800 && (m_pos+1 < str_len)) { - c2 = str.charCodeAt(m_pos+1); - if ((c2 & 0xfc00) === 0xdc00) { - c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00); - m_pos++; - } - } - buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4; - } - - // allocate buffer - if (support.uint8array) { - buf = new Uint8Array(buf_len); - } else { - buf = new Array(buf_len); - } - - // convert - for (i=0, m_pos = 0; i < buf_len; m_pos++) { - c = str.charCodeAt(m_pos); - if ((c & 0xfc00) === 0xd800 && (m_pos+1 < str_len)) { - c2 = str.charCodeAt(m_pos+1); - if ((c2 & 0xfc00) === 0xdc00) { - c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00); - m_pos++; - } - } - if (c < 0x80) { - /* one byte */ - buf[i++] = c; - } else if (c < 0x800) { - /* two bytes */ - buf[i++] = 0xC0 | (c >>> 6); - buf[i++] = 0x80 | (c & 0x3f); - } else if (c < 0x10000) { - /* three bytes */ - buf[i++] = 0xE0 | (c >>> 12); - buf[i++] = 0x80 | (c >>> 6 & 0x3f); - buf[i++] = 0x80 | (c & 0x3f); - } else { - /* four bytes */ - buf[i++] = 0xf0 | (c >>> 18); - buf[i++] = 0x80 | (c >>> 12 & 0x3f); - buf[i++] = 0x80 | (c >>> 6 & 0x3f); - buf[i++] = 0x80 | (c & 0x3f); - } - } - - return buf; -}; - -// Calculate max possible position in utf8 buffer, -// that will not break sequence. If that's not possible -// - (very small limits) return max size as is. -// -// buf[] - utf8 bytes array -// max - length limit (mandatory); -var utf8border = function(buf, max) { - var pos; - - max = max || buf.length; - if (max > buf.length) { max = buf.length; } - - // go back from last position, until start of sequence found - pos = max-1; - while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; } - - // Fuckup - very small and broken sequence, - // return max, because we should return something anyway. - if (pos < 0) { return max; } - - // If we came to start of buffer - that means vuffer is too small, - // return max too. - if (pos === 0) { return max; } - - return (pos + _utf8len[buf[pos]] > max) ? pos : max; -}; - -// convert array to string -var buf2string = function (buf) { - var str, i, out, c, c_len; - var len = buf.length; - - // Reserve max possible length (2 words per char) - // NB: by unknown reasons, Array is significantly faster for - // String.fromCharCode.apply than Uint16Array. - var utf16buf = new Array(len*2); - - for (out=0, i=0; i 4) { utf16buf[out++] = 0xfffd; i += c_len-1; continue; } - - // apply mask on first byte - c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07; - // join the rest - while (c_len > 1 && i < len) { - c = (c << 6) | (buf[i++] & 0x3f); - c_len--; - } - - // terminated by end of string? - if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; } - - if (c < 0x10000) { - utf16buf[out++] = c; - } else { - c -= 0x10000; - utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff); - utf16buf[out++] = 0xdc00 | (c & 0x3ff); - } - } - - // shrinkBuf(utf16buf, out) - if (utf16buf.length !== out) { - if(utf16buf.subarray) { - utf16buf = utf16buf.subarray(0, out); - } else { - utf16buf.length = out; - } - } - - // return String.fromCharCode.apply(null, utf16buf); - return utils.applyFromCharCode(utf16buf); -}; - - -// That's all for the pako functions. - - -/** - * Transform a javascript string into an array (typed if possible) of bytes, - * UTF-8 encoded. - * @param {String} str the string to encode - * @return {Array|Uint8Array|Buffer} the UTF-8 encoded string. - */ -exports.utf8encode = function utf8encode(str) { - if (support.nodebuffer) { - return nodejsUtils.newBufferFrom(str, "utf-8"); - } - - return string2buf(str); -}; - - -/** - * Transform a bytes array (or a representation) representing an UTF-8 encoded - * string into a javascript string. - * @param {Array|Uint8Array|Buffer} buf the data de decode - * @return {String} the decoded string. - */ -exports.utf8decode = function utf8decode(buf) { - if (support.nodebuffer) { - return utils.transformTo("nodebuffer", buf).toString("utf-8"); - } - - buf = utils.transformTo(support.uint8array ? "uint8array" : "array", buf); - - return buf2string(buf); -}; - -/** - * A worker to decode utf8 encoded binary chunks into string chunks. - * @constructor - */ -function Utf8DecodeWorker() { - GenericWorker.call(this, "utf-8 decode"); - // the last bytes if a chunk didn't end with a complete codepoint. - this.leftOver = null; -} -utils.inherits(Utf8DecodeWorker, GenericWorker); - -/** - * @see GenericWorker.processChunk - */ -Utf8DecodeWorker.prototype.processChunk = function (chunk) { - - var data = utils.transformTo(support.uint8array ? "uint8array" : "array", chunk.data); - - // 1st step, re-use what's left of the previous chunk - if (this.leftOver && this.leftOver.length) { - if(support.uint8array) { - var previousData = data; - data = new Uint8Array(previousData.length + this.leftOver.length); - data.set(this.leftOver, 0); - data.set(previousData, this.leftOver.length); - } else { - data = this.leftOver.concat(data); - } - this.leftOver = null; - } - - var nextBoundary = utf8border(data); - var usableData = data; - if (nextBoundary !== data.length) { - if (support.uint8array) { - usableData = data.subarray(0, nextBoundary); - this.leftOver = data.subarray(nextBoundary, data.length); - } else { - usableData = data.slice(0, nextBoundary); - this.leftOver = data.slice(nextBoundary, data.length); - } - } - - this.push({ - data : exports.utf8decode(usableData), - meta : chunk.meta - }); -}; - -/** - * @see GenericWorker.flush - */ -Utf8DecodeWorker.prototype.flush = function () { - if(this.leftOver && this.leftOver.length) { - this.push({ - data : exports.utf8decode(this.leftOver), - meta : {} - }); - this.leftOver = null; - } -}; -exports.Utf8DecodeWorker = Utf8DecodeWorker; - -/** - * A worker to endcode string chunks into utf8 encoded binary chunks. - * @constructor - */ -function Utf8EncodeWorker() { - GenericWorker.call(this, "utf-8 encode"); -} -utils.inherits(Utf8EncodeWorker, GenericWorker); - -/** - * @see GenericWorker.processChunk - */ -Utf8EncodeWorker.prototype.processChunk = function (chunk) { - this.push({ - data : exports.utf8encode(chunk.data), - meta : chunk.meta - }); -}; -exports.Utf8EncodeWorker = Utf8EncodeWorker; - -},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(require,module,exports){ -'use strict'; - -var support = require('./support'); -var base64 = require('./base64'); -var nodejsUtils = require('./nodejsUtils'); -var setImmediate = require('core-js/library/fn/set-immediate'); -var external = require("./external"); - - -/** - * Convert a string that pass as a "binary string": it should represent a byte - * array but may have > 255 char codes. Be sure to take only the first byte - * and returns the byte array. - * @param {String} str the string to transform. - * @return {Array|Uint8Array} the string in a binary format. - */ -function string2binary(str) { - var result = null; - if (support.uint8array) { - result = new Uint8Array(str.length); - } else { - result = new Array(str.length); - } - return stringToArrayLike(str, result); -} - -/** - * Create a new blob with the given content and the given type. - * @param {String|ArrayBuffer} part the content to put in the blob. DO NOT use - * an Uint8Array because the stock browser of android 4 won't accept it (it - * will be silently converted to a string, "[object Uint8Array]"). - * - * Use only ONE part to build the blob to avoid a memory leak in IE11 / Edge: - * when a large amount of Array is used to create the Blob, the amount of - * memory consumed is nearly 100 times the original data amount. - * - * @param {String} type the mime type of the blob. - * @return {Blob} the created blob. - */ -exports.newBlob = function(part, type) { - exports.checkSupport("blob"); - - try { - // Blob constructor - return new Blob([part], { - type: type - }); - } - catch (e) { - - try { - // deprecated, browser only, old way - var Builder = self.BlobBuilder || self.WebKitBlobBuilder || self.MozBlobBuilder || self.MSBlobBuilder; - var builder = new Builder(); - builder.append(part); - return builder.getBlob(type); - } - catch (e) { - - // well, fuck ?! - throw new Error("Bug : can't construct the Blob."); - } - } - - -}; -/** - * The identity function. - * @param {Object} input the input. - * @return {Object} the same input. - */ -function identity(input) { - return input; -} - -/** - * Fill in an array with a string. - * @param {String} str the string to use. - * @param {Array|ArrayBuffer|Uint8Array|Buffer} array the array to fill in (will be mutated). - * @return {Array|ArrayBuffer|Uint8Array|Buffer} the updated array. - */ -function stringToArrayLike(str, array) { - for (var i = 0; i < str.length; ++i) { - array[i] = str.charCodeAt(i) & 0xFF; - } - return array; -} - -/** - * An helper for the function arrayLikeToString. - * This contains static informations and functions that - * can be optimized by the browser JIT compiler. - */ -var arrayToStringHelper = { - /** - * Transform an array of int into a string, chunk by chunk. - * See the performances notes on arrayLikeToString. - * @param {Array|ArrayBuffer|Uint8Array|Buffer} array the array to transform. - * @param {String} type the type of the array. - * @param {Integer} chunk the chunk size. - * @return {String} the resulting string. - * @throws Error if the chunk is too big for the stack. - */ - stringifyByChunk: function(array, type, chunk) { - var result = [], k = 0, len = array.length; - // shortcut - if (len <= chunk) { - return String.fromCharCode.apply(null, array); - } - while (k < len) { - if (type === "array" || type === "nodebuffer") { - result.push(String.fromCharCode.apply(null, array.slice(k, Math.min(k + chunk, len)))); - } - else { - result.push(String.fromCharCode.apply(null, array.subarray(k, Math.min(k + chunk, len)))); - } - k += chunk; - } - return result.join(""); - }, - /** - * Call String.fromCharCode on every item in the array. - * This is the naive implementation, which generate A LOT of intermediate string. - * This should be used when everything else fail. - * @param {Array|ArrayBuffer|Uint8Array|Buffer} array the array to transform. - * @return {String} the result. - */ - stringifyByChar: function(array){ - var resultStr = ""; - for(var i = 0; i < array.length; i++) { - resultStr += String.fromCharCode(array[i]); - } - return resultStr; - }, - applyCanBeUsed : { - /** - * true if the browser accepts to use String.fromCharCode on Uint8Array - */ - uint8array : (function () { - try { - return support.uint8array && String.fromCharCode.apply(null, new Uint8Array(1)).length === 1; - } catch (e) { - return false; - } - })(), - /** - * true if the browser accepts to use String.fromCharCode on nodejs Buffer. - */ - nodebuffer : (function () { - try { - return support.nodebuffer && String.fromCharCode.apply(null, nodejsUtils.allocBuffer(1)).length === 1; - } catch (e) { - return false; - } - })() - } -}; - -/** - * Transform an array-like object to a string. - * @param {Array|ArrayBuffer|Uint8Array|Buffer} array the array to transform. - * @return {String} the result. - */ -function arrayLikeToString(array) { - // Performances notes : - // -------------------- - // String.fromCharCode.apply(null, array) is the fastest, see - // see http://jsperf.com/converting-a-uint8array-to-a-string/2 - // but the stack is limited (and we can get huge arrays !). - // - // result += String.fromCharCode(array[i]); generate too many strings ! - // - // This code is inspired by http://jsperf.com/arraybuffer-to-string-apply-performance/2 - // TODO : we now have workers that split the work. Do we still need that ? - var chunk = 65536, - type = exports.getTypeOf(array), - canUseApply = true; - if (type === "uint8array") { - canUseApply = arrayToStringHelper.applyCanBeUsed.uint8array; - } else if (type === "nodebuffer") { - canUseApply = arrayToStringHelper.applyCanBeUsed.nodebuffer; - } - - if (canUseApply) { - while (chunk > 1) { - try { - return arrayToStringHelper.stringifyByChunk(array, type, chunk); - } catch (e) { - chunk = Math.floor(chunk / 2); - } - } - } - - // no apply or chunk error : slow and painful algorithm - // default browser on android 4.* - return arrayToStringHelper.stringifyByChar(array); -} - -exports.applyFromCharCode = arrayLikeToString; - - -/** - * Copy the data from an array-like to an other array-like. - * @param {Array|ArrayBuffer|Uint8Array|Buffer} arrayFrom the origin array. - * @param {Array|ArrayBuffer|Uint8Array|Buffer} arrayTo the destination array which will be mutated. - * @return {Array|ArrayBuffer|Uint8Array|Buffer} the updated destination array. - */ -function arrayLikeToArrayLike(arrayFrom, arrayTo) { - for (var i = 0; i < arrayFrom.length; i++) { - arrayTo[i] = arrayFrom[i]; - } - return arrayTo; -} - -// a matrix containing functions to transform everything into everything. -var transform = {}; - -// string to ? -transform["string"] = { - "string": identity, - "array": function(input) { - return stringToArrayLike(input, new Array(input.length)); - }, - "arraybuffer": function(input) { - return transform["string"]["uint8array"](input).buffer; - }, - "uint8array": function(input) { - return stringToArrayLike(input, new Uint8Array(input.length)); - }, - "nodebuffer": function(input) { - return stringToArrayLike(input, nodejsUtils.allocBuffer(input.length)); - } -}; - -// array to ? -transform["array"] = { - "string": arrayLikeToString, - "array": identity, - "arraybuffer": function(input) { - return (new Uint8Array(input)).buffer; - }, - "uint8array": function(input) { - return new Uint8Array(input); - }, - "nodebuffer": function(input) { - return nodejsUtils.newBufferFrom(input); - } -}; - -// arraybuffer to ? -transform["arraybuffer"] = { - "string": function(input) { - return arrayLikeToString(new Uint8Array(input)); - }, - "array": function(input) { - return arrayLikeToArrayLike(new Uint8Array(input), new Array(input.byteLength)); - }, - "arraybuffer": identity, - "uint8array": function(input) { - return new Uint8Array(input); - }, - "nodebuffer": function(input) { - return nodejsUtils.newBufferFrom(new Uint8Array(input)); - } -}; - -// uint8array to ? -transform["uint8array"] = { - "string": arrayLikeToString, - "array": function(input) { - return arrayLikeToArrayLike(input, new Array(input.length)); - }, - "arraybuffer": function(input) { - return input.buffer; - }, - "uint8array": identity, - "nodebuffer": function(input) { - return nodejsUtils.newBufferFrom(input); - } -}; - -// nodebuffer to ? -transform["nodebuffer"] = { - "string": arrayLikeToString, - "array": function(input) { - return arrayLikeToArrayLike(input, new Array(input.length)); - }, - "arraybuffer": function(input) { - return transform["nodebuffer"]["uint8array"](input).buffer; - }, - "uint8array": function(input) { - return arrayLikeToArrayLike(input, new Uint8Array(input.length)); - }, - "nodebuffer": identity -}; - -/** - * Transform an input into any type. - * The supported output type are : string, array, uint8array, arraybuffer, nodebuffer. - * If no output type is specified, the unmodified input will be returned. - * @param {String} outputType the output type. - * @param {String|Array|ArrayBuffer|Uint8Array|Buffer} input the input to convert. - * @throws {Error} an Error if the browser doesn't support the requested output type. - */ -exports.transformTo = function(outputType, input) { - if (!input) { - // undefined, null, etc - // an empty string won't harm. - input = ""; - } - if (!outputType) { - return input; - } - exports.checkSupport(outputType); - var inputType = exports.getTypeOf(input); - var result = transform[inputType][outputType](input); - return result; -}; - -/** - * Return the type of the input. - * The type will be in a format valid for JSZip.utils.transformTo : string, array, uint8array, arraybuffer. - * @param {Object} input the input to identify. - * @return {String} the (lowercase) type of the input. - */ -exports.getTypeOf = function(input) { - if (typeof input === "string") { - return "string"; - } - if (Object.prototype.toString.call(input) === "[object Array]") { - return "array"; - } - if (support.nodebuffer && nodejsUtils.isBuffer(input)) { - return "nodebuffer"; - } - if (support.uint8array && input instanceof Uint8Array) { - return "uint8array"; - } - if (support.arraybuffer && input instanceof ArrayBuffer) { - return "arraybuffer"; - } -}; - -/** - * Throw an exception if the type is not supported. - * @param {String} type the type to check. - * @throws {Error} an Error if the browser doesn't support the requested type. - */ -exports.checkSupport = function(type) { - var supported = support[type.toLowerCase()]; - if (!supported) { - throw new Error(type + " is not supported by this platform"); - } -}; - -exports.MAX_VALUE_16BITS = 65535; -exports.MAX_VALUE_32BITS = -1; // well, "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF" is parsed as -1 - -/** - * Prettify a string read as binary. - * @param {string} str the string to prettify. - * @return {string} a pretty string. - */ -exports.pretty = function(str) { - var res = '', - code, i; - for (i = 0; i < (str || "").length; i++) { - code = str.charCodeAt(i); - res += '\\x' + (code < 16 ? "0" : "") + code.toString(16).toUpperCase(); - } - return res; -}; - -/** - * Defer the call of a function. - * @param {Function} callback the function to call asynchronously. - * @param {Array} args the arguments to give to the callback. - */ -exports.delay = function(callback, args, self) { - setImmediate(function () { - callback.apply(self || null, args || []); - }); -}; - -/** - * Extends a prototype with an other, without calling a constructor with - * side effects. Inspired by nodejs' `utils.inherits` - * @param {Function} ctor the constructor to augment - * @param {Function} superCtor the parent constructor to use - */ -exports.inherits = function (ctor, superCtor) { - var Obj = function() {}; - Obj.prototype = superCtor.prototype; - ctor.prototype = new Obj(); -}; - -/** - * Merge the objects passed as parameters into a new one. - * @private - * @param {...Object} var_args All objects to merge. - * @return {Object} a new object with the data of the others. - */ -exports.extend = function() { - var result = {}, i, attr; - for (i = 0; i < arguments.length; i++) { // arguments is not enumerable in some browsers - for (attr in arguments[i]) { - if (arguments[i].hasOwnProperty(attr) && typeof result[attr] === "undefined") { - result[attr] = arguments[i][attr]; - } - } - } - return result; -}; - -/** - * Transform arbitrary content into a Promise. - * @param {String} name a name for the content being processed. - * @param {Object} inputData the content to process. - * @param {Boolean} isBinary true if the content is not an unicode string - * @param {Boolean} isOptimizedBinaryString true if the string content only has one byte per character. - * @param {Boolean} isBase64 true if the string content is encoded with base64. - * @return {Promise} a promise in a format usable by JSZip. - */ -exports.prepareContent = function(name, inputData, isBinary, isOptimizedBinaryString, isBase64) { - - // if inputData is already a promise, this flatten it. - var promise = external.Promise.resolve(inputData).then(function(data) { - - - var isBlob = support.blob && (data instanceof Blob || ['[object File]', '[object Blob]'].indexOf(Object.prototype.toString.call(data)) !== -1); - - if (isBlob && typeof FileReader !== "undefined") { - return new external.Promise(function (resolve, reject) { - var reader = new FileReader(); - - reader.onload = function(e) { - resolve(e.target.result); - }; - reader.onerror = function(e) { - reject(e.target.error); - }; - reader.readAsArrayBuffer(data); - }); - } else { - return data; - } - }); - - return promise.then(function(data) { - var dataType = exports.getTypeOf(data); - - if (!dataType) { - return external.Promise.reject( - new Error("Can't read the data of '" + name + "'. Is it " + - "in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?") - ); - } - // special case : it's way easier to work with Uint8Array than with ArrayBuffer - if (dataType === "arraybuffer") { - data = exports.transformTo("uint8array", data); - } else if (dataType === "string") { - if (isBase64) { - data = base64.decode(data); - } - else if (isBinary) { - // optimizedBinaryString === true means that the file has already been filtered with a 0xFF mask - if (isOptimizedBinaryString !== true) { - // this is a string, not in a base64 format. - // Be sure that this is a correct "binary string" - data = string2binary(data); - } - } - } - return data; - }); -}; - -},{"./base64":1,"./external":6,"./nodejsUtils":14,"./support":30,"core-js/library/fn/set-immediate":36}],33:[function(require,module,exports){ -'use strict'; -var readerFor = require('./reader/readerFor'); -var utils = require('./utils'); -var sig = require('./signature'); -var ZipEntry = require('./zipEntry'); -var utf8 = require('./utf8'); -var support = require('./support'); -// class ZipEntries {{{ -/** - * All the entries in the zip file. - * @constructor - * @param {Object} loadOptions Options for loading the stream. - */ -function ZipEntries(loadOptions) { - this.files = []; - this.loadOptions = loadOptions; -} -ZipEntries.prototype = { - /** - * Check that the reader is on the specified signature. - * @param {string} expectedSignature the expected signature. - * @throws {Error} if it is an other signature. - */ - checkSignature: function(expectedSignature) { - if (!this.reader.readAndCheckSignature(expectedSignature)) { - this.reader.index -= 4; - var signature = this.reader.readString(4); - throw new Error("Corrupted zip or bug: unexpected signature " + "(" + utils.pretty(signature) + ", expected " + utils.pretty(expectedSignature) + ")"); - } - }, - /** - * Check if the given signature is at the given index. - * @param {number} askedIndex the index to check. - * @param {string} expectedSignature the signature to expect. - * @return {boolean} true if the signature is here, false otherwise. - */ - isSignature: function(askedIndex, expectedSignature) { - var currentIndex = this.reader.index; - this.reader.setIndex(askedIndex); - var signature = this.reader.readString(4); - var result = signature === expectedSignature; - this.reader.setIndex(currentIndex); - return result; - }, - /** - * Read the end of the central directory. - */ - readBlockEndOfCentral: function() { - this.diskNumber = this.reader.readInt(2); - this.diskWithCentralDirStart = this.reader.readInt(2); - this.centralDirRecordsOnThisDisk = this.reader.readInt(2); - this.centralDirRecords = this.reader.readInt(2); - this.centralDirSize = this.reader.readInt(4); - this.centralDirOffset = this.reader.readInt(4); - - this.zipCommentLength = this.reader.readInt(2); - // warning : the encoding depends of the system locale - // On a linux machine with LANG=en_US.utf8, this field is utf8 encoded. - // On a windows machine, this field is encoded with the localized windows code page. - var zipComment = this.reader.readData(this.zipCommentLength); - var decodeParamType = support.uint8array ? "uint8array" : "array"; - // To get consistent behavior with the generation part, we will assume that - // this is utf8 encoded unless specified otherwise. - var decodeContent = utils.transformTo(decodeParamType, zipComment); - this.zipComment = this.loadOptions.decodeFileName(decodeContent); - }, - /** - * Read the end of the Zip 64 central directory. - * Not merged with the method readEndOfCentral : - * The end of central can coexist with its Zip64 brother, - * I don't want to read the wrong number of bytes ! - */ - readBlockZip64EndOfCentral: function() { - this.zip64EndOfCentralSize = this.reader.readInt(8); - this.reader.skip(4); - // this.versionMadeBy = this.reader.readString(2); - // this.versionNeeded = this.reader.readInt(2); - this.diskNumber = this.reader.readInt(4); - this.diskWithCentralDirStart = this.reader.readInt(4); - this.centralDirRecordsOnThisDisk = this.reader.readInt(8); - this.centralDirRecords = this.reader.readInt(8); - this.centralDirSize = this.reader.readInt(8); - this.centralDirOffset = this.reader.readInt(8); - - this.zip64ExtensibleData = {}; - var extraDataSize = this.zip64EndOfCentralSize - 44, - index = 0, - extraFieldId, - extraFieldLength, - extraFieldValue; - while (index < extraDataSize) { - extraFieldId = this.reader.readInt(2); - extraFieldLength = this.reader.readInt(4); - extraFieldValue = this.reader.readData(extraFieldLength); - this.zip64ExtensibleData[extraFieldId] = { - id: extraFieldId, - length: extraFieldLength, - value: extraFieldValue - }; - } - }, - /** - * Read the end of the Zip 64 central directory locator. - */ - readBlockZip64EndOfCentralLocator: function() { - this.diskWithZip64CentralDirStart = this.reader.readInt(4); - this.relativeOffsetEndOfZip64CentralDir = this.reader.readInt(8); - this.disksCount = this.reader.readInt(4); - if (this.disksCount > 1) { - throw new Error("Multi-volumes zip are not supported"); - } - }, - /** - * Read the local files, based on the offset read in the central part. - */ - readLocalFiles: function() { - var i, file; - for (i = 0; i < this.files.length; i++) { - file = this.files[i]; - this.reader.setIndex(file.localHeaderOffset); - this.checkSignature(sig.LOCAL_FILE_HEADER); - file.readLocalPart(this.reader); - file.handleUTF8(); - file.processAttributes(); - } - }, - /** - * Read the central directory. - */ - readCentralDir: function() { - var file; - - this.reader.setIndex(this.centralDirOffset); - while (this.reader.readAndCheckSignature(sig.CENTRAL_FILE_HEADER)) { - file = new ZipEntry({ - zip64: this.zip64 - }, this.loadOptions); - file.readCentralPart(this.reader); - this.files.push(file); - } - - if (this.centralDirRecords !== this.files.length) { - if (this.centralDirRecords !== 0 && this.files.length === 0) { - // We expected some records but couldn't find ANY. - // This is really suspicious, as if something went wrong. - throw new Error("Corrupted zip or bug: expected " + this.centralDirRecords + " records in central dir, got " + this.files.length); - } else { - // We found some records but not all. - // Something is wrong but we got something for the user: no error here. - // console.warn("expected", this.centralDirRecords, "records in central dir, got", this.files.length); - } - } - }, - /** - * Read the end of central directory. - */ - readEndOfCentral: function() { - var offset = this.reader.lastIndexOfSignature(sig.CENTRAL_DIRECTORY_END); - if (offset < 0) { - // Check if the content is a truncated zip or complete garbage. - // A "LOCAL_FILE_HEADER" is not required at the beginning (auto - // extractible zip for example) but it can give a good hint. - // If an ajax request was used without responseType, we will also - // get unreadable data. - var isGarbage = !this.isSignature(0, sig.LOCAL_FILE_HEADER); - - if (isGarbage) { - throw new Error("Can't find end of central directory : is this a zip file ? " + - "If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html"); - } else { - throw new Error("Corrupted zip: can't find end of central directory"); - } - - } - this.reader.setIndex(offset); - var endOfCentralDirOffset = offset; - this.checkSignature(sig.CENTRAL_DIRECTORY_END); - this.readBlockEndOfCentral(); - - - /* extract from the zip spec : - 4) If one of the fields in the end of central directory - record is too small to hold required data, the field - should be set to -1 (0xFFFF or 0xFFFFFFFF) and the - ZIP64 format record should be created. - 5) The end of central directory record and the - Zip64 end of central directory locator record must - reside on the same disk when splitting or spanning - an archive. - */ - if (this.diskNumber === utils.MAX_VALUE_16BITS || this.diskWithCentralDirStart === utils.MAX_VALUE_16BITS || this.centralDirRecordsOnThisDisk === utils.MAX_VALUE_16BITS || this.centralDirRecords === utils.MAX_VALUE_16BITS || this.centralDirSize === utils.MAX_VALUE_32BITS || this.centralDirOffset === utils.MAX_VALUE_32BITS) { - this.zip64 = true; - - /* - Warning : the zip64 extension is supported, but ONLY if the 64bits integer read from - the zip file can fit into a 32bits integer. This cannot be solved : JavaScript represents - all numbers as 64-bit double precision IEEE 754 floating point numbers. - So, we have 53bits for integers and bitwise operations treat everything as 32bits. - see https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/Bitwise_Operators - and http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf section 8.5 - */ - - // should look for a zip64 EOCD locator - offset = this.reader.lastIndexOfSignature(sig.ZIP64_CENTRAL_DIRECTORY_LOCATOR); - if (offset < 0) { - throw new Error("Corrupted zip: can't find the ZIP64 end of central directory locator"); - } - this.reader.setIndex(offset); - this.checkSignature(sig.ZIP64_CENTRAL_DIRECTORY_LOCATOR); - this.readBlockZip64EndOfCentralLocator(); - - // now the zip64 EOCD record - if (!this.isSignature(this.relativeOffsetEndOfZip64CentralDir, sig.ZIP64_CENTRAL_DIRECTORY_END)) { - // console.warn("ZIP64 end of central directory not where expected."); - this.relativeOffsetEndOfZip64CentralDir = this.reader.lastIndexOfSignature(sig.ZIP64_CENTRAL_DIRECTORY_END); - if (this.relativeOffsetEndOfZip64CentralDir < 0) { - throw new Error("Corrupted zip: can't find the ZIP64 end of central directory"); - } - } - this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir); - this.checkSignature(sig.ZIP64_CENTRAL_DIRECTORY_END); - this.readBlockZip64EndOfCentral(); - } - - var expectedEndOfCentralDirOffset = this.centralDirOffset + this.centralDirSize; - if (this.zip64) { - expectedEndOfCentralDirOffset += 20; // end of central dir 64 locator - expectedEndOfCentralDirOffset += 12 /* should not include the leading 12 bytes */ + this.zip64EndOfCentralSize; - } - - var extraBytes = endOfCentralDirOffset - expectedEndOfCentralDirOffset; - - if (extraBytes > 0) { - // console.warn(extraBytes, "extra bytes at beginning or within zipfile"); - if (this.isSignature(endOfCentralDirOffset, sig.CENTRAL_FILE_HEADER)) { - // The offsets seem wrong, but we have something at the specified offset. - // So… we keep it. - } else { - // the offset is wrong, update the "zero" of the reader - // this happens if data has been prepended (crx files for example) - this.reader.zero = extraBytes; - } - } else if (extraBytes < 0) { - throw new Error("Corrupted zip: missing " + Math.abs(extraBytes) + " bytes."); - } - }, - prepareReader: function(data) { - this.reader = readerFor(data); - }, - /** - * Read a zip file and create ZipEntries. - * @param {String|ArrayBuffer|Uint8Array|Buffer} data the binary string representing a zip file. - */ - load: function(data) { - this.prepareReader(data); - this.readEndOfCentral(); - this.readCentralDir(); - this.readLocalFiles(); - } -}; -// }}} end of ZipEntries -module.exports = ZipEntries; - -},{"./reader/readerFor":22,"./signature":23,"./support":30,"./utf8":31,"./utils":32,"./zipEntry":34}],34:[function(require,module,exports){ -'use strict'; -var readerFor = require('./reader/readerFor'); -var utils = require('./utils'); -var CompressedObject = require('./compressedObject'); -var crc32fn = require('./crc32'); -var utf8 = require('./utf8'); -var compressions = require('./compressions'); -var support = require('./support'); - -var MADE_BY_DOS = 0x00; -var MADE_BY_UNIX = 0x03; - -/** - * Find a compression registered in JSZip. - * @param {string} compressionMethod the method magic to find. - * @return {Object|null} the JSZip compression object, null if none found. - */ -var findCompression = function(compressionMethod) { - for (var method in compressions) { - if (!compressions.hasOwnProperty(method)) { - continue; - } - if (compressions[method].magic === compressionMethod) { - return compressions[method]; - } - } - return null; -}; - -// class ZipEntry {{{ -/** - * An entry in the zip file. - * @constructor - * @param {Object} options Options of the current file. - * @param {Object} loadOptions Options for loading the stream. - */ -function ZipEntry(options, loadOptions) { - this.options = options; - this.loadOptions = loadOptions; -} -ZipEntry.prototype = { - /** - * say if the file is encrypted. - * @return {boolean} true if the file is encrypted, false otherwise. - */ - isEncrypted: function() { - // bit 1 is set - return (this.bitFlag & 0x0001) === 0x0001; - }, - /** - * say if the file has utf-8 filename/comment. - * @return {boolean} true if the filename/comment is in utf-8, false otherwise. - */ - useUTF8: function() { - // bit 11 is set - return (this.bitFlag & 0x0800) === 0x0800; - }, - /** - * Read the local part of a zip file and add the info in this object. - * @param {DataReader} reader the reader to use. - */ - readLocalPart: function(reader) { - var compression, localExtraFieldsLength; - - // we already know everything from the central dir ! - // If the central dir data are false, we are doomed. - // On the bright side, the local part is scary : zip64, data descriptors, both, etc. - // The less data we get here, the more reliable this should be. - // Let's skip the whole header and dash to the data ! - reader.skip(22); - // in some zip created on windows, the filename stored in the central dir contains \ instead of /. - // Strangely, the filename here is OK. - // I would love to treat these zip files as corrupted (see http://www.info-zip.org/FAQ.html#backslashes - // or APPNOTE#4.4.17.1, "All slashes MUST be forward slashes '/'") but there are a lot of bad zip generators... - // Search "unzip mismatching "local" filename continuing with "central" filename version" on - // the internet. - // - // I think I see the logic here : the central directory is used to display - // content and the local directory is used to extract the files. Mixing / and \ - // may be used to display \ to windows users and use / when extracting the files. - // Unfortunately, this lead also to some issues : http://seclists.org/fulldisclosure/2009/Sep/394 - this.fileNameLength = reader.readInt(2); - localExtraFieldsLength = reader.readInt(2); // can't be sure this will be the same as the central dir - // the fileName is stored as binary data, the handleUTF8 method will take care of the encoding. - this.fileName = reader.readData(this.fileNameLength); - reader.skip(localExtraFieldsLength); - - if (this.compressedSize === -1 || this.uncompressedSize === -1) { - throw new Error("Bug or corrupted zip : didn't get enough informations from the central directory " + "(compressedSize === -1 || uncompressedSize === -1)"); - } - - compression = findCompression(this.compressionMethod); - if (compression === null) { // no compression found - throw new Error("Corrupted zip : compression " + utils.pretty(this.compressionMethod) + " unknown (inner file : " + utils.transformTo("string", this.fileName) + ")"); - } - this.decompressed = new CompressedObject(this.compressedSize, this.uncompressedSize, this.crc32, compression, reader.readData(this.compressedSize)); - }, - - /** - * Read the central part of a zip file and add the info in this object. - * @param {DataReader} reader the reader to use. - */ - readCentralPart: function(reader) { - this.versionMadeBy = reader.readInt(2); - reader.skip(2); - // this.versionNeeded = reader.readInt(2); - this.bitFlag = reader.readInt(2); - this.compressionMethod = reader.readString(2); - this.date = reader.readDate(); - this.crc32 = reader.readInt(4); - this.compressedSize = reader.readInt(4); - this.uncompressedSize = reader.readInt(4); - var fileNameLength = reader.readInt(2); - this.extraFieldsLength = reader.readInt(2); - this.fileCommentLength = reader.readInt(2); - this.diskNumberStart = reader.readInt(2); - this.internalFileAttributes = reader.readInt(2); - this.externalFileAttributes = reader.readInt(4); - this.localHeaderOffset = reader.readInt(4); - - if (this.isEncrypted()) { - throw new Error("Encrypted zip are not supported"); - } - - // will be read in the local part, see the comments there - reader.skip(fileNameLength); - this.readExtraFields(reader); - this.parseZIP64ExtraField(reader); - this.fileComment = reader.readData(this.fileCommentLength); - }, - - /** - * Parse the external file attributes and get the unix/dos permissions. - */ - processAttributes: function () { - this.unixPermissions = null; - this.dosPermissions = null; - var madeBy = this.versionMadeBy >> 8; - - // Check if we have the DOS directory flag set. - // We look for it in the DOS and UNIX permissions - // but some unknown platform could set it as a compatibility flag. - this.dir = this.externalFileAttributes & 0x0010 ? true : false; - - if(madeBy === MADE_BY_DOS) { - // first 6 bits (0 to 5) - this.dosPermissions = this.externalFileAttributes & 0x3F; - } - - if(madeBy === MADE_BY_UNIX) { - this.unixPermissions = (this.externalFileAttributes >> 16) & 0xFFFF; - // the octal permissions are in (this.unixPermissions & 0x01FF).toString(8); - } - - // fail safe : if the name ends with a / it probably means a folder - if (!this.dir && this.fileNameStr.slice(-1) === '/') { - this.dir = true; - } - }, - - /** - * Parse the ZIP64 extra field and merge the info in the current ZipEntry. - * @param {DataReader} reader the reader to use. - */ - parseZIP64ExtraField: function(reader) { - - if (!this.extraFields[0x0001]) { - return; - } - - // should be something, preparing the extra reader - var extraReader = readerFor(this.extraFields[0x0001].value); - - // I really hope that these 64bits integer can fit in 32 bits integer, because js - // won't let us have more. - if (this.uncompressedSize === utils.MAX_VALUE_32BITS) { - this.uncompressedSize = extraReader.readInt(8); - } - if (this.compressedSize === utils.MAX_VALUE_32BITS) { - this.compressedSize = extraReader.readInt(8); - } - if (this.localHeaderOffset === utils.MAX_VALUE_32BITS) { - this.localHeaderOffset = extraReader.readInt(8); - } - if (this.diskNumberStart === utils.MAX_VALUE_32BITS) { - this.diskNumberStart = extraReader.readInt(4); - } - }, - /** - * Read the central part of a zip file and add the info in this object. - * @param {DataReader} reader the reader to use. - */ - readExtraFields: function(reader) { - var end = reader.index + this.extraFieldsLength, - extraFieldId, - extraFieldLength, - extraFieldValue; - - if (!this.extraFields) { - this.extraFields = {}; - } - - while (reader.index < end) { - extraFieldId = reader.readInt(2); - extraFieldLength = reader.readInt(2); - extraFieldValue = reader.readData(extraFieldLength); - - this.extraFields[extraFieldId] = { - id: extraFieldId, - length: extraFieldLength, - value: extraFieldValue - }; - } - }, - /** - * Apply an UTF8 transformation if needed. - */ - handleUTF8: function() { - var decodeParamType = support.uint8array ? "uint8array" : "array"; - if (this.useUTF8()) { - this.fileNameStr = utf8.utf8decode(this.fileName); - this.fileCommentStr = utf8.utf8decode(this.fileComment); - } else { - var upath = this.findExtraFieldUnicodePath(); - if (upath !== null) { - this.fileNameStr = upath; - } else { - // ASCII text or unsupported code page - var fileNameByteArray = utils.transformTo(decodeParamType, this.fileName); - this.fileNameStr = this.loadOptions.decodeFileName(fileNameByteArray); - } - - var ucomment = this.findExtraFieldUnicodeComment(); - if (ucomment !== null) { - this.fileCommentStr = ucomment; - } else { - // ASCII text or unsupported code page - var commentByteArray = utils.transformTo(decodeParamType, this.fileComment); - this.fileCommentStr = this.loadOptions.decodeFileName(commentByteArray); - } - } - }, - - /** - * Find the unicode path declared in the extra field, if any. - * @return {String} the unicode path, null otherwise. - */ - findExtraFieldUnicodePath: function() { - var upathField = this.extraFields[0x7075]; - if (upathField) { - var extraReader = readerFor(upathField.value); - - // wrong version - if (extraReader.readInt(1) !== 1) { - return null; - } - - // the crc of the filename changed, this field is out of date. - if (crc32fn(this.fileName) !== extraReader.readInt(4)) { - return null; - } - - return utf8.utf8decode(extraReader.readData(upathField.length - 5)); - } - return null; - }, - - /** - * Find the unicode comment declared in the extra field, if any. - * @return {String} the unicode comment, null otherwise. - */ - findExtraFieldUnicodeComment: function() { - var ucommentField = this.extraFields[0x6375]; - if (ucommentField) { - var extraReader = readerFor(ucommentField.value); - - // wrong version - if (extraReader.readInt(1) !== 1) { - return null; - } - - // the crc of the comment changed, this field is out of date. - if (crc32fn(this.fileComment) !== extraReader.readInt(4)) { - return null; - } - - return utf8.utf8decode(extraReader.readData(ucommentField.length - 5)); - } - return null; - } -}; -module.exports = ZipEntry; - -},{"./compressedObject":2,"./compressions":3,"./crc32":4,"./reader/readerFor":22,"./support":30,"./utf8":31,"./utils":32}],35:[function(require,module,exports){ -'use strict'; - -var StreamHelper = require('./stream/StreamHelper'); -var DataWorker = require('./stream/DataWorker'); -var utf8 = require('./utf8'); -var CompressedObject = require('./compressedObject'); -var GenericWorker = require('./stream/GenericWorker'); - -/** - * A simple object representing a file in the zip file. - * @constructor - * @param {string} name the name of the file - * @param {String|ArrayBuffer|Uint8Array|Buffer} data the data - * @param {Object} options the options of the file - */ -var ZipObject = function(name, data, options) { - this.name = name; - this.dir = options.dir; - this.date = options.date; - this.comment = options.comment; - this.unixPermissions = options.unixPermissions; - this.dosPermissions = options.dosPermissions; - - this._data = data; - this._dataBinary = options.binary; - // keep only the compression - this.options = { - compression : options.compression, - compressionOptions : options.compressionOptions - }; -}; - -ZipObject.prototype = { - /** - * Create an internal stream for the content of this object. - * @param {String} type the type of each chunk. - * @return StreamHelper the stream. - */ - internalStream: function (type) { - var result = null, outputType = "string"; - try { - if (!type) { - throw new Error("No output type specified."); - } - outputType = type.toLowerCase(); - var askUnicodeString = outputType === "string" || outputType === "text"; - if (outputType === "binarystring" || outputType === "text") { - outputType = "string"; - } - result = this._decompressWorker(); - - var isUnicodeString = !this._dataBinary; - - if (isUnicodeString && !askUnicodeString) { - result = result.pipe(new utf8.Utf8EncodeWorker()); - } - if (!isUnicodeString && askUnicodeString) { - result = result.pipe(new utf8.Utf8DecodeWorker()); - } - } catch (e) { - result = new GenericWorker("error"); - result.error(e); - } - - return new StreamHelper(result, outputType, ""); - }, - - /** - * Prepare the content in the asked type. - * @param {String} type the type of the result. - * @param {Function} onUpdate a function to call on each internal update. - * @return Promise the promise of the result. - */ - async: function (type, onUpdate) { - return this.internalStream(type).accumulate(onUpdate); - }, - - /** - * Prepare the content as a nodejs stream. - * @param {String} type the type of each chunk. - * @param {Function} onUpdate a function to call on each internal update. - * @return Stream the stream. - */ - nodeStream: function (type, onUpdate) { - return this.internalStream(type || "nodebuffer").toNodejsStream(onUpdate); - }, - - /** - * Return a worker for the compressed content. - * @private - * @param {Object} compression the compression object to use. - * @param {Object} compressionOptions the options to use when compressing. - * @return Worker the worker. - */ - _compressWorker: function (compression, compressionOptions) { - if ( - this._data instanceof CompressedObject && - this._data.compression.magic === compression.magic - ) { - return this._data.getCompressedWorker(); - } else { - var result = this._decompressWorker(); - if(!this._dataBinary) { - result = result.pipe(new utf8.Utf8EncodeWorker()); - } - return CompressedObject.createWorkerFrom(result, compression, compressionOptions); - } - }, - /** - * Return a worker for the decompressed content. - * @private - * @return Worker the worker. - */ - _decompressWorker : function () { - if (this._data instanceof CompressedObject) { - return this._data.getContentWorker(); - } else if (this._data instanceof GenericWorker) { - return this._data; - } else { - return new DataWorker(this._data); - } - } -}; - -var removedMethods = ["asText", "asBinary", "asNodeBuffer", "asUint8Array", "asArrayBuffer"]; -var removedFn = function () { - throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide."); -}; - -for(var i = 0; i < removedMethods.length; i++) { - ZipObject.prototype[removedMethods[i]] = removedFn; -} -module.exports = ZipObject; - -},{"./compressedObject":2,"./stream/DataWorker":27,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31}],36:[function(require,module,exports){ -require('../modules/web.immediate'); -module.exports = require('../modules/_core').setImmediate; -},{"../modules/_core":40,"../modules/web.immediate":56}],37:[function(require,module,exports){ -module.exports = function(it){ - if(typeof it != 'function')throw TypeError(it + ' is not a function!'); - return it; -}; -},{}],38:[function(require,module,exports){ -var isObject = require('./_is-object'); -module.exports = function(it){ - if(!isObject(it))throw TypeError(it + ' is not an object!'); - return it; -}; -},{"./_is-object":51}],39:[function(require,module,exports){ -var toString = {}.toString; - -module.exports = function(it){ - return toString.call(it).slice(8, -1); -}; -},{}],40:[function(require,module,exports){ -var core = module.exports = {version: '2.3.0'}; -if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef -},{}],41:[function(require,module,exports){ -// optional / simple context binding -var aFunction = require('./_a-function'); -module.exports = function(fn, that, length){ - aFunction(fn); - if(that === undefined)return fn; - switch(length){ - case 1: return function(a){ - return fn.call(that, a); - }; - case 2: return function(a, b){ - return fn.call(that, a, b); - }; - case 3: return function(a, b, c){ - return fn.call(that, a, b, c); - }; - } - return function(/* ...args */){ - return fn.apply(that, arguments); - }; -}; -},{"./_a-function":37}],42:[function(require,module,exports){ -// Thank's IE8 for his funny defineProperty -module.exports = !require('./_fails')(function(){ - return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7; -}); -},{"./_fails":45}],43:[function(require,module,exports){ -var isObject = require('./_is-object') - , document = require('./_global').document - // in old IE typeof document.createElement is 'object' - , is = isObject(document) && isObject(document.createElement); -module.exports = function(it){ - return is ? document.createElement(it) : {}; -}; -},{"./_global":46,"./_is-object":51}],44:[function(require,module,exports){ -var global = require('./_global') - , core = require('./_core') - , ctx = require('./_ctx') - , hide = require('./_hide') - , PROTOTYPE = 'prototype'; - -var $export = function(type, name, source){ - var IS_FORCED = type & $export.F - , IS_GLOBAL = type & $export.G - , IS_STATIC = type & $export.S - , IS_PROTO = type & $export.P - , IS_BIND = type & $export.B - , IS_WRAP = type & $export.W - , exports = IS_GLOBAL ? core : core[name] || (core[name] = {}) - , expProto = exports[PROTOTYPE] - , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE] - , key, own, out; - if(IS_GLOBAL)source = name; - for(key in source){ - // contains in native - own = !IS_FORCED && target && target[key] !== undefined; - if(own && key in exports)continue; - // export native or passed - out = own ? target[key] : source[key]; - // prevent global pollution for namespaces - exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] - // bind timers to global for call from export context - : IS_BIND && own ? ctx(out, global) - // wrap global constructors for prevent change them in library - : IS_WRAP && target[key] == out ? (function(C){ - var F = function(a, b, c){ - if(this instanceof C){ - switch(arguments.length){ - case 0: return new C; - case 1: return new C(a); - case 2: return new C(a, b); - } return new C(a, b, c); - } return C.apply(this, arguments); - }; - F[PROTOTYPE] = C[PROTOTYPE]; - return F; - // make static versions for prototype methods - })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; - // export proto methods to core.%CONSTRUCTOR%.methods.%NAME% - if(IS_PROTO){ - (exports.virtual || (exports.virtual = {}))[key] = out; - // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME% - if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out); - } - } -}; -// type bitmap -$export.F = 1; // forced -$export.G = 2; // global -$export.S = 4; // static -$export.P = 8; // proto -$export.B = 16; // bind -$export.W = 32; // wrap -$export.U = 64; // safe -$export.R = 128; // real proto method for `library` -module.exports = $export; -},{"./_core":40,"./_ctx":41,"./_global":46,"./_hide":47}],45:[function(require,module,exports){ -module.exports = function(exec){ - try { - return !!exec(); - } catch(e){ - return true; - } -}; -},{}],46:[function(require,module,exports){ -// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 -var global = module.exports = typeof window != 'undefined' && window.Math == Math - ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')(); -if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef -},{}],47:[function(require,module,exports){ -var dP = require('./_object-dp') - , createDesc = require('./_property-desc'); -module.exports = require('./_descriptors') ? function(object, key, value){ - return dP.f(object, key, createDesc(1, value)); -} : function(object, key, value){ - object[key] = value; - return object; -}; -},{"./_descriptors":42,"./_object-dp":52,"./_property-desc":53}],48:[function(require,module,exports){ -module.exports = require('./_global').document && document.documentElement; -},{"./_global":46}],49:[function(require,module,exports){ -module.exports = !require('./_descriptors') && !require('./_fails')(function(){ - return Object.defineProperty(require('./_dom-create')('div'), 'a', {get: function(){ return 7; }}).a != 7; -}); -},{"./_descriptors":42,"./_dom-create":43,"./_fails":45}],50:[function(require,module,exports){ -// fast apply, http://jsperf.lnkit.com/fast-apply/5 -module.exports = function(fn, args, that){ - var un = that === undefined; - switch(args.length){ - case 0: return un ? fn() - : fn.call(that); - case 1: return un ? fn(args[0]) - : fn.call(that, args[0]); - case 2: return un ? fn(args[0], args[1]) - : fn.call(that, args[0], args[1]); - case 3: return un ? fn(args[0], args[1], args[2]) - : fn.call(that, args[0], args[1], args[2]); - case 4: return un ? fn(args[0], args[1], args[2], args[3]) - : fn.call(that, args[0], args[1], args[2], args[3]); - } return fn.apply(that, args); -}; -},{}],51:[function(require,module,exports){ -module.exports = function(it){ - return typeof it === 'object' ? it !== null : typeof it === 'function'; -}; -},{}],52:[function(require,module,exports){ -var anObject = require('./_an-object') - , IE8_DOM_DEFINE = require('./_ie8-dom-define') - , toPrimitive = require('./_to-primitive') - , dP = Object.defineProperty; - -exports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes){ - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if(IE8_DOM_DEFINE)try { - return dP(O, P, Attributes); - } catch(e){ /* empty */ } - if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!'); - if('value' in Attributes)O[P] = Attributes.value; - return O; -}; -},{"./_an-object":38,"./_descriptors":42,"./_ie8-dom-define":49,"./_to-primitive":55}],53:[function(require,module,exports){ -module.exports = function(bitmap, value){ - return { - enumerable : !(bitmap & 1), - configurable: !(bitmap & 2), - writable : !(bitmap & 4), - value : value - }; -}; -},{}],54:[function(require,module,exports){ -var ctx = require('./_ctx') - , invoke = require('./_invoke') - , html = require('./_html') - , cel = require('./_dom-create') - , global = require('./_global') - , process = global.process - , setTask = global.setImmediate - , clearTask = global.clearImmediate - , MessageChannel = global.MessageChannel - , counter = 0 - , queue = {} - , ONREADYSTATECHANGE = 'onreadystatechange' - , defer, channel, port; -var run = function(){ - var id = +this; - if(queue.hasOwnProperty(id)){ - var fn = queue[id]; - delete queue[id]; - fn(); - } -}; -var listener = function(event){ - run.call(event.data); -}; -// Node.js 0.9+ & IE10+ has setImmediate, otherwise: -if(!setTask || !clearTask){ - setTask = function setImmediate(fn){ - var args = [], i = 1; - while(arguments.length > i)args.push(arguments[i++]); - queue[++counter] = function(){ - invoke(typeof fn == 'function' ? fn : Function(fn), args); - }; - defer(counter); - return counter; - }; - clearTask = function clearImmediate(id){ - delete queue[id]; - }; - // Node.js 0.8- - if(require('./_cof')(process) == 'process'){ - defer = function(id){ - process.nextTick(ctx(run, id, 1)); - }; - // Browsers with MessageChannel, includes WebWorkers - } else if(MessageChannel){ - channel = new MessageChannel; - port = channel.port2; - channel.port1.onmessage = listener; - defer = ctx(port.postMessage, port, 1); - // Browsers with postMessage, skip WebWorkers - // IE8 has postMessage, but it's sync & typeof its postMessage is 'object' - } else if(global.addEventListener && typeof postMessage == 'function' && !global.importScripts){ - defer = function(id){ - global.postMessage(id + '', '*'); - }; - global.addEventListener('message', listener, false); - // IE8- - } else if(ONREADYSTATECHANGE in cel('script')){ - defer = function(id){ - html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function(){ - html.removeChild(this); - run.call(id); - }; - }; - // Rest old browsers - } else { - defer = function(id){ - setTimeout(ctx(run, id, 1), 0); - }; - } -} -module.exports = { - set: setTask, - clear: clearTask -}; -},{"./_cof":39,"./_ctx":41,"./_dom-create":43,"./_global":46,"./_html":48,"./_invoke":50}],55:[function(require,module,exports){ -// 7.1.1 ToPrimitive(input [, PreferredType]) -var isObject = require('./_is-object'); -// instead of the ES6 spec version, we didn't implement @@toPrimitive case -// and the second argument - flag - preferred type is a string -module.exports = function(it, S){ - if(!isObject(it))return it; - var fn, val; - if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val; - if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; - throw TypeError("Can't convert object to primitive value"); -}; -},{"./_is-object":51}],56:[function(require,module,exports){ -var $export = require('./_export') - , $task = require('./_task'); -$export($export.G + $export.B, { - setImmediate: $task.set, - clearImmediate: $task.clear -}); -},{"./_export":44,"./_task":54}],57:[function(require,module,exports){ -(function (global){ -'use strict'; -var Mutation = global.MutationObserver || global.WebKitMutationObserver; - -var scheduleDrain; - -{ - if (Mutation) { - var called = 0; - var observer = new Mutation(nextTick); - var element = global.document.createTextNode(''); - observer.observe(element, { - characterData: true - }); - scheduleDrain = function () { - element.data = (called = ++called % 2); - }; - } else if (!global.setImmediate && typeof global.MessageChannel !== 'undefined') { - var channel = new global.MessageChannel(); - channel.port1.onmessage = nextTick; - scheduleDrain = function () { - channel.port2.postMessage(0); - }; - } else if ('document' in global && 'onreadystatechange' in global.document.createElement('script')) { - scheduleDrain = function () { - - // Create a - - - -
    - -

    index.html

    -
    - - diff --git a/docs/site/testapidocs/overview-tree.html b/docs/site/testapidocs/overview-tree.html deleted file mode 100644 index 410e3664..00000000 --- a/docs/site/testapidocs/overview-tree.html +++ /dev/null @@ -1,131 +0,0 @@ - - - - -Class Hierarchy (Units of Measurement API 2.2.1-SNAPSHOT Test API) - - - - - - - - - - - - - - - - - - diff --git a/docs/site/testapidocs/package-search-index.js b/docs/site/testapidocs/package-search-index.js deleted file mode 100644 index 7eb1404f..00000000 --- a/docs/site/testapidocs/package-search-index.js +++ /dev/null @@ -1 +0,0 @@ -packageSearchIndex = [{"l":"All Packages","u":"allpackages-index.html"},{"l":"javax.measure.spi"},{"l":"javax.measure.test"},{"l":"javax.measure.test.format"},{"l":"javax.measure.test.function"},{"l":"javax.measure.test.quantity"},{"l":"javax.measure.test.unit"}];updateSearchResults(); \ No newline at end of file diff --git a/docs/site/testapidocs/package-search-index.zip b/docs/site/testapidocs/package-search-index.zip deleted file mode 100644 index 3f2b9605..00000000 Binary files a/docs/site/testapidocs/package-search-index.zip and /dev/null differ diff --git a/docs/site/testapidocs/resources/glass.png b/docs/site/testapidocs/resources/glass.png deleted file mode 100644 index a7f591f4..00000000 Binary files a/docs/site/testapidocs/resources/glass.png and /dev/null differ diff --git a/docs/site/testapidocs/resources/x.png b/docs/site/testapidocs/resources/x.png deleted file mode 100644 index 30548a75..00000000 Binary files a/docs/site/testapidocs/resources/x.png and /dev/null differ diff --git a/docs/site/testapidocs/script-dir/external/jquery/jquery.js b/docs/site/testapidocs/script-dir/external/jquery/jquery.js deleted file mode 100644 index 5b16efa1..00000000 --- a/docs/site/testapidocs/script-dir/external/jquery/jquery.js +++ /dev/null @@ -1,10598 +0,0 @@ -/*! - * jQuery JavaScript Library v3.4.1 - * https://jquery.com/ - * - * Includes Sizzle.js - * https://sizzlejs.com/ - * - * Copyright JS Foundation and other contributors - * Released under the MIT license - * https://jquery.org/license - * - * Date: 2019-05-01T21:04Z - */ -( function( global, factory ) { - - "use strict"; - - if ( typeof module === "object" && typeof module.exports === "object" ) { - - // For CommonJS and CommonJS-like environments where a proper `window` - // is present, execute the factory and get jQuery. - // For environments that do not have a `window` with a `document` - // (such as Node.js), expose a factory as module.exports. - // This accentuates the need for the creation of a real `window`. - // e.g. var jQuery = require("jquery")(window); - // See ticket #14549 for more info. - module.exports = global.document ? - factory( global, true ) : - function( w ) { - if ( !w.document ) { - throw new Error( "jQuery requires a window with a document" ); - } - return factory( w ); - }; - } else { - factory( global ); - } - -// Pass this if window is not defined yet -} )( typeof window !== "undefined" ? window : this, function( window, noGlobal ) { - -// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1 -// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode -// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common -// enough that all such attempts are guarded in a try block. -"use strict"; - -var arr = []; - -var document = window.document; - -var getProto = Object.getPrototypeOf; - -var slice = arr.slice; - -var concat = arr.concat; - -var push = arr.push; - -var indexOf = arr.indexOf; - -var class2type = {}; - -var toString = class2type.toString; - -var hasOwn = class2type.hasOwnProperty; - -var fnToString = hasOwn.toString; - -var ObjectFunctionString = fnToString.call( Object ); - -var support = {}; - -var isFunction = function isFunction( obj ) { - - // Support: Chrome <=57, Firefox <=52 - // In some browsers, typeof returns "function" for HTML elements - // (i.e., `typeof document.createElement( "object" ) === "function"`). - // We don't want to classify *any* DOM node as a function. - return typeof obj === "function" && typeof obj.nodeType !== "number"; - }; - - -var isWindow = function isWindow( obj ) { - return obj != null && obj === obj.window; - }; - - - - - var preservedScriptAttributes = { - type: true, - src: true, - nonce: true, - noModule: true - }; - - function DOMEval( code, node, doc ) { - doc = doc || document; - - var i, val, - script = doc.createElement( "script" ); - - script.text = code; - if ( node ) { - for ( i in preservedScriptAttributes ) { - - // Support: Firefox 64+, Edge 18+ - // Some browsers don't support the "nonce" property on scripts. - // On the other hand, just using `getAttribute` is not enough as - // the `nonce` attribute is reset to an empty string whenever it - // becomes browsing-context connected. - // See https://github.com/whatwg/html/issues/2369 - // See https://html.spec.whatwg.org/#nonce-attributes - // The `node.getAttribute` check was added for the sake of - // `jQuery.globalEval` so that it can fake a nonce-containing node - // via an object. - val = node[ i ] || node.getAttribute && node.getAttribute( i ); - if ( val ) { - script.setAttribute( i, val ); - } - } - } - doc.head.appendChild( script ).parentNode.removeChild( script ); - } - - -function toType( obj ) { - if ( obj == null ) { - return obj + ""; - } - - // Support: Android <=2.3 only (functionish RegExp) - return typeof obj === "object" || typeof obj === "function" ? - class2type[ toString.call( obj ) ] || "object" : - typeof obj; -} -/* global Symbol */ -// Defining this global in .eslintrc.json would create a danger of using the global -// unguarded in another place, it seems safer to define global only for this module - - - -var - version = "3.4.1", - - // Define a local copy of jQuery - jQuery = function( selector, context ) { - - // The jQuery object is actually just the init constructor 'enhanced' - // Need init if jQuery is called (just allow error to be thrown if not included) - return new jQuery.fn.init( selector, context ); - }, - - // Support: Android <=4.0 only - // Make sure we trim BOM and NBSP - rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g; - -jQuery.fn = jQuery.prototype = { - - // The current version of jQuery being used - jquery: version, - - constructor: jQuery, - - // The default length of a jQuery object is 0 - length: 0, - - toArray: function() { - return slice.call( this ); - }, - - // Get the Nth element in the matched element set OR - // Get the whole matched element set as a clean array - get: function( num ) { - - // Return all the elements in a clean array - if ( num == null ) { - return slice.call( this ); - } - - // Return just the one element from the set - return num < 0 ? this[ num + this.length ] : this[ num ]; - }, - - // Take an array of elements and push it onto the stack - // (returning the new matched element set) - pushStack: function( elems ) { - - // Build a new jQuery matched element set - var ret = jQuery.merge( this.constructor(), elems ); - - // Add the old object onto the stack (as a reference) - ret.prevObject = this; - - // Return the newly-formed element set - return ret; - }, - - // Execute a callback for every element in the matched set. - each: function( callback ) { - return jQuery.each( this, callback ); - }, - - map: function( callback ) { - return this.pushStack( jQuery.map( this, function( elem, i ) { - return callback.call( elem, i, elem ); - } ) ); - }, - - slice: function() { - return this.pushStack( slice.apply( this, arguments ) ); - }, - - first: function() { - return this.eq( 0 ); - }, - - last: function() { - return this.eq( -1 ); - }, - - eq: function( i ) { - var len = this.length, - j = +i + ( i < 0 ? len : 0 ); - return this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] ); - }, - - end: function() { - return this.prevObject || this.constructor(); - }, - - // For internal use only. - // Behaves like an Array's method, not like a jQuery method. - push: push, - sort: arr.sort, - splice: arr.splice -}; - -jQuery.extend = jQuery.fn.extend = function() { - var options, name, src, copy, copyIsArray, clone, - target = arguments[ 0 ] || {}, - i = 1, - length = arguments.length, - deep = false; - - // Handle a deep copy situation - if ( typeof target === "boolean" ) { - deep = target; - - // Skip the boolean and the target - target = arguments[ i ] || {}; - i++; - } - - // Handle case when target is a string or something (possible in deep copy) - if ( typeof target !== "object" && !isFunction( target ) ) { - target = {}; - } - - // Extend jQuery itself if only one argument is passed - if ( i === length ) { - target = this; - i--; - } - - for ( ; i < length; i++ ) { - - // Only deal with non-null/undefined values - if ( ( options = arguments[ i ] ) != null ) { - - // Extend the base object - for ( name in options ) { - copy = options[ name ]; - - // Prevent Object.prototype pollution - // Prevent never-ending loop - if ( name === "__proto__" || target === copy ) { - continue; - } - - // Recurse if we're merging plain objects or arrays - if ( deep && copy && ( jQuery.isPlainObject( copy ) || - ( copyIsArray = Array.isArray( copy ) ) ) ) { - src = target[ name ]; - - // Ensure proper type for the source value - if ( copyIsArray && !Array.isArray( src ) ) { - clone = []; - } else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) { - clone = {}; - } else { - clone = src; - } - copyIsArray = false; - - // Never move original objects, clone them - target[ name ] = jQuery.extend( deep, clone, copy ); - - // Don't bring in undefined values - } else if ( copy !== undefined ) { - target[ name ] = copy; - } - } - } - } - - // Return the modified object - return target; -}; - -jQuery.extend( { - - // Unique for each copy of jQuery on the page - expando: "jQuery" + ( version + Math.random() ).replace( /\D/g, "" ), - - // Assume jQuery is ready without the ready module - isReady: true, - - error: function( msg ) { - throw new Error( msg ); - }, - - noop: function() {}, - - isPlainObject: function( obj ) { - var proto, Ctor; - - // Detect obvious negatives - // Use toString instead of jQuery.type to catch host objects - if ( !obj || toString.call( obj ) !== "[object Object]" ) { - return false; - } - - proto = getProto( obj ); - - // Objects with no prototype (e.g., `Object.create( null )`) are plain - if ( !proto ) { - return true; - } - - // Objects with prototype are plain iff they were constructed by a global Object function - Ctor = hasOwn.call( proto, "constructor" ) && proto.constructor; - return typeof Ctor === "function" && fnToString.call( Ctor ) === ObjectFunctionString; - }, - - isEmptyObject: function( obj ) { - var name; - - for ( name in obj ) { - return false; - } - return true; - }, - - // Evaluates a script in a global context - globalEval: function( code, options ) { - DOMEval( code, { nonce: options && options.nonce } ); - }, - - each: function( obj, callback ) { - var length, i = 0; - - if ( isArrayLike( obj ) ) { - length = obj.length; - for ( ; i < length; i++ ) { - if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { - break; - } - } - } else { - for ( i in obj ) { - if ( callback.call( obj[ i ], i, obj[ i ] ) === false ) { - break; - } - } - } - - return obj; - }, - - // Support: Android <=4.0 only - trim: function( text ) { - return text == null ? - "" : - ( text + "" ).replace( rtrim, "" ); - }, - - // results is for internal usage only - makeArray: function( arr, results ) { - var ret = results || []; - - if ( arr != null ) { - if ( isArrayLike( Object( arr ) ) ) { - jQuery.merge( ret, - typeof arr === "string" ? - [ arr ] : arr - ); - } else { - push.call( ret, arr ); - } - } - - return ret; - }, - - inArray: function( elem, arr, i ) { - return arr == null ? -1 : indexOf.call( arr, elem, i ); - }, - - // Support: Android <=4.0 only, PhantomJS 1 only - // push.apply(_, arraylike) throws on ancient WebKit - merge: function( first, second ) { - var len = +second.length, - j = 0, - i = first.length; - - for ( ; j < len; j++ ) { - first[ i++ ] = second[ j ]; - } - - first.length = i; - - return first; - }, - - grep: function( elems, callback, invert ) { - var callbackInverse, - matches = [], - i = 0, - length = elems.length, - callbackExpect = !invert; - - // Go through the array, only saving the items - // that pass the validator function - for ( ; i < length; i++ ) { - callbackInverse = !callback( elems[ i ], i ); - if ( callbackInverse !== callbackExpect ) { - matches.push( elems[ i ] ); - } - } - - return matches; - }, - - // arg is for internal usage only - map: function( elems, callback, arg ) { - var length, value, - i = 0, - ret = []; - - // Go through the array, translating each of the items to their new values - if ( isArrayLike( elems ) ) { - length = elems.length; - for ( ; i < length; i++ ) { - value = callback( elems[ i ], i, arg ); - - if ( value != null ) { - ret.push( value ); - } - } - - // Go through every key on the object, - } else { - for ( i in elems ) { - value = callback( elems[ i ], i, arg ); - - if ( value != null ) { - ret.push( value ); - } - } - } - - // Flatten any nested arrays - return concat.apply( [], ret ); - }, - - // A global GUID counter for objects - guid: 1, - - // jQuery.support is not used in Core but other projects attach their - // properties to it so it needs to exist. - support: support -} ); - -if ( typeof Symbol === "function" ) { - jQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ]; -} - -// Populate the class2type map -jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), -function( i, name ) { - class2type[ "[object " + name + "]" ] = name.toLowerCase(); -} ); - -function isArrayLike( obj ) { - - // Support: real iOS 8.2 only (not reproducible in simulator) - // `in` check used to prevent JIT error (gh-2145) - // hasOwn isn't used here due to false negatives - // regarding Nodelist length in IE - var length = !!obj && "length" in obj && obj.length, - type = toType( obj ); - - if ( isFunction( obj ) || isWindow( obj ) ) { - return false; - } - - return type === "array" || length === 0 || - typeof length === "number" && length > 0 && ( length - 1 ) in obj; -} -var Sizzle = -/*! - * Sizzle CSS Selector Engine v2.3.4 - * https://sizzlejs.com/ - * - * Copyright JS Foundation and other contributors - * Released under the MIT license - * https://js.foundation/ - * - * Date: 2019-04-08 - */ -(function( window ) { - -var i, - support, - Expr, - getText, - isXML, - tokenize, - compile, - select, - outermostContext, - sortInput, - hasDuplicate, - - // Local document vars - setDocument, - document, - docElem, - documentIsHTML, - rbuggyQSA, - rbuggyMatches, - matches, - contains, - - // Instance-specific data - expando = "sizzle" + 1 * new Date(), - preferredDoc = window.document, - dirruns = 0, - done = 0, - classCache = createCache(), - tokenCache = createCache(), - compilerCache = createCache(), - nonnativeSelectorCache = createCache(), - sortOrder = function( a, b ) { - if ( a === b ) { - hasDuplicate = true; - } - return 0; - }, - - // Instance methods - hasOwn = ({}).hasOwnProperty, - arr = [], - pop = arr.pop, - push_native = arr.push, - push = arr.push, - slice = arr.slice, - // Use a stripped-down indexOf as it's faster than native - // https://jsperf.com/thor-indexof-vs-for/5 - indexOf = function( list, elem ) { - var i = 0, - len = list.length; - for ( ; i < len; i++ ) { - if ( list[i] === elem ) { - return i; - } - } - return -1; - }, - - booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", - - // Regular expressions - - // http://www.w3.org/TR/css3-selectors/#whitespace - whitespace = "[\\x20\\t\\r\\n\\f]", - - // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier - identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+", - - // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors - attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + - // Operator (capture 2) - "*([*^$|!~]?=)" + whitespace + - // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" - "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace + - "*\\]", - - pseudos = ":(" + identifier + ")(?:\\((" + - // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: - // 1. quoted (capture 3; capture 4 or capture 5) - "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + - // 2. simple (capture 6) - "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + - // 3. anything else (capture 2) - ".*" + - ")\\)|)", - - // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter - rwhitespace = new RegExp( whitespace + "+", "g" ), - rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), - - rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), - rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), - rdescend = new RegExp( whitespace + "|>" ), - - rpseudo = new RegExp( pseudos ), - ridentifier = new RegExp( "^" + identifier + "$" ), - - matchExpr = { - "ID": new RegExp( "^#(" + identifier + ")" ), - "CLASS": new RegExp( "^\\.(" + identifier + ")" ), - "TAG": new RegExp( "^(" + identifier + "|[*])" ), - "ATTR": new RegExp( "^" + attributes ), - "PSEUDO": new RegExp( "^" + pseudos ), - "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + - "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + - "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), - "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), - // For use in libraries implementing .is() - // We use this for POS matching in `select` - "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + - whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) - }, - - rhtml = /HTML$/i, - rinputs = /^(?:input|select|textarea|button)$/i, - rheader = /^h\d$/i, - - rnative = /^[^{]+\{\s*\[native \w/, - - // Easily-parseable/retrievable ID or TAG or CLASS selectors - rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, - - rsibling = /[+~]/, - - // CSS escapes - // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters - runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), - funescape = function( _, escaped, escapedWhitespace ) { - var high = "0x" + escaped - 0x10000; - // NaN means non-codepoint - // Support: Firefox<24 - // Workaround erroneous numeric interpretation of +"0x" - return high !== high || escapedWhitespace ? - escaped : - high < 0 ? - // BMP codepoint - String.fromCharCode( high + 0x10000 ) : - // Supplemental Plane codepoint (surrogate pair) - String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); - }, - - // CSS string/identifier serialization - // https://drafts.csswg.org/cssom/#common-serializing-idioms - rcssescape = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, - fcssescape = function( ch, asCodePoint ) { - if ( asCodePoint ) { - - // U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER - if ( ch === "\0" ) { - return "\uFFFD"; - } - - // Control characters and (dependent upon position) numbers get escaped as code points - return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; - } - - // Other potentially-special ASCII characters get backslash-escaped - return "\\" + ch; - }, - - // Used for iframes - // See setDocument() - // Removing the function wrapper causes a "Permission Denied" - // error in IE - unloadHandler = function() { - setDocument(); - }, - - inDisabledFieldset = addCombinator( - function( elem ) { - return elem.disabled === true && elem.nodeName.toLowerCase() === "fieldset"; - }, - { dir: "parentNode", next: "legend" } - ); - -// Optimize for push.apply( _, NodeList ) -try { - push.apply( - (arr = slice.call( preferredDoc.childNodes )), - preferredDoc.childNodes - ); - // Support: Android<4.0 - // Detect silently failing push.apply - arr[ preferredDoc.childNodes.length ].nodeType; -} catch ( e ) { - push = { apply: arr.length ? - - // Leverage slice if possible - function( target, els ) { - push_native.apply( target, slice.call(els) ); - } : - - // Support: IE<9 - // Otherwise append directly - function( target, els ) { - var j = target.length, - i = 0; - // Can't trust NodeList.length - while ( (target[j++] = els[i++]) ) {} - target.length = j - 1; - } - }; -} - -function Sizzle( selector, context, results, seed ) { - var m, i, elem, nid, match, groups, newSelector, - newContext = context && context.ownerDocument, - - // nodeType defaults to 9, since context defaults to document - nodeType = context ? context.nodeType : 9; - - results = results || []; - - // Return early from calls with invalid selector or context - if ( typeof selector !== "string" || !selector || - nodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) { - - return results; - } - - // Try to shortcut find operations (as opposed to filters) in HTML documents - if ( !seed ) { - - if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { - setDocument( context ); - } - context = context || document; - - if ( documentIsHTML ) { - - // If the selector is sufficiently simple, try using a "get*By*" DOM method - // (excepting DocumentFragment context, where the methods don't exist) - if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) { - - // ID selector - if ( (m = match[1]) ) { - - // Document context - if ( nodeType === 9 ) { - if ( (elem = context.getElementById( m )) ) { - - // Support: IE, Opera, Webkit - // TODO: identify versions - // getElementById can match elements by name instead of ID - if ( elem.id === m ) { - results.push( elem ); - return results; - } - } else { - return results; - } - - // Element context - } else { - - // Support: IE, Opera, Webkit - // TODO: identify versions - // getElementById can match elements by name instead of ID - if ( newContext && (elem = newContext.getElementById( m )) && - contains( context, elem ) && - elem.id === m ) { - - results.push( elem ); - return results; - } - } - - // Type selector - } else if ( match[2] ) { - push.apply( results, context.getElementsByTagName( selector ) ); - return results; - - // Class selector - } else if ( (m = match[3]) && support.getElementsByClassName && - context.getElementsByClassName ) { - - push.apply( results, context.getElementsByClassName( m ) ); - return results; - } - } - - // Take advantage of querySelectorAll - if ( support.qsa && - !nonnativeSelectorCache[ selector + " " ] && - (!rbuggyQSA || !rbuggyQSA.test( selector )) && - - // Support: IE 8 only - // Exclude object elements - (nodeType !== 1 || context.nodeName.toLowerCase() !== "object") ) { - - newSelector = selector; - newContext = context; - - // qSA considers elements outside a scoping root when evaluating child or - // descendant combinators, which is not what we want. - // In such cases, we work around the behavior by prefixing every selector in the - // list with an ID selector referencing the scope context. - // Thanks to Andrew Dupont for this technique. - if ( nodeType === 1 && rdescend.test( selector ) ) { - - // Capture the context ID, setting it first if necessary - if ( (nid = context.getAttribute( "id" )) ) { - nid = nid.replace( rcssescape, fcssescape ); - } else { - context.setAttribute( "id", (nid = expando) ); - } - - // Prefix every selector in the list - groups = tokenize( selector ); - i = groups.length; - while ( i-- ) { - groups[i] = "#" + nid + " " + toSelector( groups[i] ); - } - newSelector = groups.join( "," ); - - // Expand context for sibling selectors - newContext = rsibling.test( selector ) && testContext( context.parentNode ) || - context; - } - - try { - push.apply( results, - newContext.querySelectorAll( newSelector ) - ); - return results; - } catch ( qsaError ) { - nonnativeSelectorCache( selector, true ); - } finally { - if ( nid === expando ) { - context.removeAttribute( "id" ); - } - } - } - } - } - - // All others - return select( selector.replace( rtrim, "$1" ), context, results, seed ); -} - -/** - * Create key-value caches of limited size - * @returns {function(string, object)} Returns the Object data after storing it on itself with - * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) - * deleting the oldest entry - */ -function createCache() { - var keys = []; - - function cache( key, value ) { - // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) - if ( keys.push( key + " " ) > Expr.cacheLength ) { - // Only keep the most recent entries - delete cache[ keys.shift() ]; - } - return (cache[ key + " " ] = value); - } - return cache; -} - -/** - * Mark a function for special use by Sizzle - * @param {Function} fn The function to mark - */ -function markFunction( fn ) { - fn[ expando ] = true; - return fn; -} - -/** - * Support testing using an element - * @param {Function} fn Passed the created element and returns a boolean result - */ -function assert( fn ) { - var el = document.createElement("fieldset"); - - try { - return !!fn( el ); - } catch (e) { - return false; - } finally { - // Remove from its parent by default - if ( el.parentNode ) { - el.parentNode.removeChild( el ); - } - // release memory in IE - el = null; - } -} - -/** - * Adds the same handler for all of the specified attrs - * @param {String} attrs Pipe-separated list of attributes - * @param {Function} handler The method that will be applied - */ -function addHandle( attrs, handler ) { - var arr = attrs.split("|"), - i = arr.length; - - while ( i-- ) { - Expr.attrHandle[ arr[i] ] = handler; - } -} - -/** - * Checks document order of two siblings - * @param {Element} a - * @param {Element} b - * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b - */ -function siblingCheck( a, b ) { - var cur = b && a, - diff = cur && a.nodeType === 1 && b.nodeType === 1 && - a.sourceIndex - b.sourceIndex; - - // Use IE sourceIndex if available on both nodes - if ( diff ) { - return diff; - } - - // Check if b follows a - if ( cur ) { - while ( (cur = cur.nextSibling) ) { - if ( cur === b ) { - return -1; - } - } - } - - return a ? 1 : -1; -} - -/** - * Returns a function to use in pseudos for input types - * @param {String} type - */ -function createInputPseudo( type ) { - return function( elem ) { - var name = elem.nodeName.toLowerCase(); - return name === "input" && elem.type === type; - }; -} - -/** - * Returns a function to use in pseudos for buttons - * @param {String} type - */ -function createButtonPseudo( type ) { - return function( elem ) { - var name = elem.nodeName.toLowerCase(); - return (name === "input" || name === "button") && elem.type === type; - }; -} - -/** - * Returns a function to use in pseudos for :enabled/:disabled - * @param {Boolean} disabled true for :disabled; false for :enabled - */ -function createDisabledPseudo( disabled ) { - - // Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable - return function( elem ) { - - // Only certain elements can match :enabled or :disabled - // https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled - // https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled - if ( "form" in elem ) { - - // Check for inherited disabledness on relevant non-disabled elements: - // * listed form-associated elements in a disabled fieldset - // https://html.spec.whatwg.org/multipage/forms.html#category-listed - // https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled - // * option elements in a disabled optgroup - // https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled - // All such elements have a "form" property. - if ( elem.parentNode && elem.disabled === false ) { - - // Option elements defer to a parent optgroup if present - if ( "label" in elem ) { - if ( "label" in elem.parentNode ) { - return elem.parentNode.disabled === disabled; - } else { - return elem.disabled === disabled; - } - } - - // Support: IE 6 - 11 - // Use the isDisabled shortcut property to check for disabled fieldset ancestors - return elem.isDisabled === disabled || - - // Where there is no isDisabled, check manually - /* jshint -W018 */ - elem.isDisabled !== !disabled && - inDisabledFieldset( elem ) === disabled; - } - - return elem.disabled === disabled; - - // Try to winnow out elements that can't be disabled before trusting the disabled property. - // Some victims get caught in our net (label, legend, menu, track), but it shouldn't - // even exist on them, let alone have a boolean value. - } else if ( "label" in elem ) { - return elem.disabled === disabled; - } - - // Remaining elements are neither :enabled nor :disabled - return false; - }; -} - -/** - * Returns a function to use in pseudos for positionals - * @param {Function} fn - */ -function createPositionalPseudo( fn ) { - return markFunction(function( argument ) { - argument = +argument; - return markFunction(function( seed, matches ) { - var j, - matchIndexes = fn( [], seed.length, argument ), - i = matchIndexes.length; - - // Match elements found at the specified indexes - while ( i-- ) { - if ( seed[ (j = matchIndexes[i]) ] ) { - seed[j] = !(matches[j] = seed[j]); - } - } - }); - }); -} - -/** - * Checks a node for validity as a Sizzle context - * @param {Element|Object=} context - * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value - */ -function testContext( context ) { - return context && typeof context.getElementsByTagName !== "undefined" && context; -} - -// Expose support vars for convenience -support = Sizzle.support = {}; - -/** - * Detects XML nodes - * @param {Element|Object} elem An element or a document - * @returns {Boolean} True iff elem is a non-HTML XML node - */ -isXML = Sizzle.isXML = function( elem ) { - var namespace = elem.namespaceURI, - docElem = (elem.ownerDocument || elem).documentElement; - - // Support: IE <=8 - // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes - // https://bugs.jquery.com/ticket/4833 - return !rhtml.test( namespace || docElem && docElem.nodeName || "HTML" ); -}; - -/** - * Sets document-related variables once based on the current document - * @param {Element|Object} [doc] An element or document object to use to set the document - * @returns {Object} Returns the current document - */ -setDocument = Sizzle.setDocument = function( node ) { - var hasCompare, subWindow, - doc = node ? node.ownerDocument || node : preferredDoc; - - // Return early if doc is invalid or already selected - if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { - return document; - } - - // Update global variables - document = doc; - docElem = document.documentElement; - documentIsHTML = !isXML( document ); - - // Support: IE 9-11, Edge - // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936) - if ( preferredDoc !== document && - (subWindow = document.defaultView) && subWindow.top !== subWindow ) { - - // Support: IE 11, Edge - if ( subWindow.addEventListener ) { - subWindow.addEventListener( "unload", unloadHandler, false ); - - // Support: IE 9 - 10 only - } else if ( subWindow.attachEvent ) { - subWindow.attachEvent( "onunload", unloadHandler ); - } - } - - /* Attributes - ---------------------------------------------------------------------- */ - - // Support: IE<8 - // Verify that getAttribute really returns attributes and not properties - // (excepting IE8 booleans) - support.attributes = assert(function( el ) { - el.className = "i"; - return !el.getAttribute("className"); - }); - - /* getElement(s)By* - ---------------------------------------------------------------------- */ - - // Check if getElementsByTagName("*") returns only elements - support.getElementsByTagName = assert(function( el ) { - el.appendChild( document.createComment("") ); - return !el.getElementsByTagName("*").length; - }); - - // Support: IE<9 - support.getElementsByClassName = rnative.test( document.getElementsByClassName ); - - // Support: IE<10 - // Check if getElementById returns elements by name - // The broken getElementById methods don't pick up programmatically-set names, - // so use a roundabout getElementsByName test - support.getById = assert(function( el ) { - docElem.appendChild( el ).id = expando; - return !document.getElementsByName || !document.getElementsByName( expando ).length; - }); - - // ID filter and find - if ( support.getById ) { - Expr.filter["ID"] = function( id ) { - var attrId = id.replace( runescape, funescape ); - return function( elem ) { - return elem.getAttribute("id") === attrId; - }; - }; - Expr.find["ID"] = function( id, context ) { - if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { - var elem = context.getElementById( id ); - return elem ? [ elem ] : []; - } - }; - } else { - Expr.filter["ID"] = function( id ) { - var attrId = id.replace( runescape, funescape ); - return function( elem ) { - var node = typeof elem.getAttributeNode !== "undefined" && - elem.getAttributeNode("id"); - return node && node.value === attrId; - }; - }; - - // Support: IE 6 - 7 only - // getElementById is not reliable as a find shortcut - Expr.find["ID"] = function( id, context ) { - if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { - var node, i, elems, - elem = context.getElementById( id ); - - if ( elem ) { - - // Verify the id attribute - node = elem.getAttributeNode("id"); - if ( node && node.value === id ) { - return [ elem ]; - } - - // Fall back on getElementsByName - elems = context.getElementsByName( id ); - i = 0; - while ( (elem = elems[i++]) ) { - node = elem.getAttributeNode("id"); - if ( node && node.value === id ) { - return [ elem ]; - } - } - } - - return []; - } - }; - } - - // Tag - Expr.find["TAG"] = support.getElementsByTagName ? - function( tag, context ) { - if ( typeof context.getElementsByTagName !== "undefined" ) { - return context.getElementsByTagName( tag ); - - // DocumentFragment nodes don't have gEBTN - } else if ( support.qsa ) { - return context.querySelectorAll( tag ); - } - } : - - function( tag, context ) { - var elem, - tmp = [], - i = 0, - // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too - results = context.getElementsByTagName( tag ); - - // Filter out possible comments - if ( tag === "*" ) { - while ( (elem = results[i++]) ) { - if ( elem.nodeType === 1 ) { - tmp.push( elem ); - } - } - - return tmp; - } - return results; - }; - - // Class - Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { - if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) { - return context.getElementsByClassName( className ); - } - }; - - /* QSA/matchesSelector - ---------------------------------------------------------------------- */ - - // QSA and matchesSelector support - - // matchesSelector(:active) reports false when true (IE9/Opera 11.5) - rbuggyMatches = []; - - // qSa(:focus) reports false when true (Chrome 21) - // We allow this because of a bug in IE8/9 that throws an error - // whenever `document.activeElement` is accessed on an iframe - // So, we allow :focus to pass through QSA all the time to avoid the IE error - // See https://bugs.jquery.com/ticket/13378 - rbuggyQSA = []; - - if ( (support.qsa = rnative.test( document.querySelectorAll )) ) { - // Build QSA regex - // Regex strategy adopted from Diego Perini - assert(function( el ) { - // Select is set to empty string on purpose - // This is to test IE's treatment of not explicitly - // setting a boolean content attribute, - // since its presence should be enough - // https://bugs.jquery.com/ticket/12359 - docElem.appendChild( el ).innerHTML = "" + - ""; - - // Support: IE8, Opera 11-12.16 - // Nothing should be selected when empty strings follow ^= or $= or *= - // The test attribute must be unknown in Opera but "safe" for WinRT - // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section - if ( el.querySelectorAll("[msallowcapture^='']").length ) { - rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); - } - - // Support: IE8 - // Boolean attributes and "value" are not treated correctly - if ( !el.querySelectorAll("[selected]").length ) { - rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); - } - - // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+ - if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) { - rbuggyQSA.push("~="); - } - - // Webkit/Opera - :checked should return selected option elements - // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked - // IE8 throws error here and will not see later tests - if ( !el.querySelectorAll(":checked").length ) { - rbuggyQSA.push(":checked"); - } - - // Support: Safari 8+, iOS 8+ - // https://bugs.webkit.org/show_bug.cgi?id=136851 - // In-page `selector#id sibling-combinator selector` fails - if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) { - rbuggyQSA.push(".#.+[+~]"); - } - }); - - assert(function( el ) { - el.innerHTML = "" + - ""; - - // Support: Windows 8 Native Apps - // The type and name attributes are restricted during .innerHTML assignment - var input = document.createElement("input"); - input.setAttribute( "type", "hidden" ); - el.appendChild( input ).setAttribute( "name", "D" ); - - // Support: IE8 - // Enforce case-sensitivity of name attribute - if ( el.querySelectorAll("[name=d]").length ) { - rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); - } - - // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) - // IE8 throws error here and will not see later tests - if ( el.querySelectorAll(":enabled").length !== 2 ) { - rbuggyQSA.push( ":enabled", ":disabled" ); - } - - // Support: IE9-11+ - // IE's :disabled selector does not pick up the children of disabled fieldsets - docElem.appendChild( el ).disabled = true; - if ( el.querySelectorAll(":disabled").length !== 2 ) { - rbuggyQSA.push( ":enabled", ":disabled" ); - } - - // Opera 10-11 does not throw on post-comma invalid pseudos - el.querySelectorAll("*,:x"); - rbuggyQSA.push(",.*:"); - }); - } - - if ( (support.matchesSelector = rnative.test( (matches = docElem.matches || - docElem.webkitMatchesSelector || - docElem.mozMatchesSelector || - docElem.oMatchesSelector || - docElem.msMatchesSelector) )) ) { - - assert(function( el ) { - // Check to see if it's possible to do matchesSelector - // on a disconnected node (IE 9) - support.disconnectedMatch = matches.call( el, "*" ); - - // This should fail with an exception - // Gecko does not error, returns false instead - matches.call( el, "[s!='']:x" ); - rbuggyMatches.push( "!=", pseudos ); - }); - } - - rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); - rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); - - /* Contains - ---------------------------------------------------------------------- */ - hasCompare = rnative.test( docElem.compareDocumentPosition ); - - // Element contains another - // Purposefully self-exclusive - // As in, an element does not contain itself - contains = hasCompare || rnative.test( docElem.contains ) ? - function( a, b ) { - var adown = a.nodeType === 9 ? a.documentElement : a, - bup = b && b.parentNode; - return a === bup || !!( bup && bup.nodeType === 1 && ( - adown.contains ? - adown.contains( bup ) : - a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 - )); - } : - function( a, b ) { - if ( b ) { - while ( (b = b.parentNode) ) { - if ( b === a ) { - return true; - } - } - } - return false; - }; - - /* Sorting - ---------------------------------------------------------------------- */ - - // Document order sorting - sortOrder = hasCompare ? - function( a, b ) { - - // Flag for duplicate removal - if ( a === b ) { - hasDuplicate = true; - return 0; - } - - // Sort on method existence if only one input has compareDocumentPosition - var compare = !a.compareDocumentPosition - !b.compareDocumentPosition; - if ( compare ) { - return compare; - } - - // Calculate position if both inputs belong to the same document - compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ? - a.compareDocumentPosition( b ) : - - // Otherwise we know they are disconnected - 1; - - // Disconnected nodes - if ( compare & 1 || - (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) { - - // Choose the first element that is related to our preferred document - if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) { - return -1; - } - if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) { - return 1; - } - - // Maintain original order - return sortInput ? - ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : - 0; - } - - return compare & 4 ? -1 : 1; - } : - function( a, b ) { - // Exit early if the nodes are identical - if ( a === b ) { - hasDuplicate = true; - return 0; - } - - var cur, - i = 0, - aup = a.parentNode, - bup = b.parentNode, - ap = [ a ], - bp = [ b ]; - - // Parentless nodes are either documents or disconnected - if ( !aup || !bup ) { - return a === document ? -1 : - b === document ? 1 : - aup ? -1 : - bup ? 1 : - sortInput ? - ( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) : - 0; - - // If the nodes are siblings, we can do a quick check - } else if ( aup === bup ) { - return siblingCheck( a, b ); - } - - // Otherwise we need full lists of their ancestors for comparison - cur = a; - while ( (cur = cur.parentNode) ) { - ap.unshift( cur ); - } - cur = b; - while ( (cur = cur.parentNode) ) { - bp.unshift( cur ); - } - - // Walk down the tree looking for a discrepancy - while ( ap[i] === bp[i] ) { - i++; - } - - return i ? - // Do a sibling check if the nodes have a common ancestor - siblingCheck( ap[i], bp[i] ) : - - // Otherwise nodes in our document sort first - ap[i] === preferredDoc ? -1 : - bp[i] === preferredDoc ? 1 : - 0; - }; - - return document; -}; - -Sizzle.matches = function( expr, elements ) { - return Sizzle( expr, null, null, elements ); -}; - -Sizzle.matchesSelector = function( elem, expr ) { - // Set document vars if needed - if ( ( elem.ownerDocument || elem ) !== document ) { - setDocument( elem ); - } - - if ( support.matchesSelector && documentIsHTML && - !nonnativeSelectorCache[ expr + " " ] && - ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && - ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { - - try { - var ret = matches.call( elem, expr ); - - // IE 9's matchesSelector returns false on disconnected nodes - if ( ret || support.disconnectedMatch || - // As well, disconnected nodes are said to be in a document - // fragment in IE 9 - elem.document && elem.document.nodeType !== 11 ) { - return ret; - } - } catch (e) { - nonnativeSelectorCache( expr, true ); - } - } - - return Sizzle( expr, document, null, [ elem ] ).length > 0; -}; - -Sizzle.contains = function( context, elem ) { - // Set document vars if needed - if ( ( context.ownerDocument || context ) !== document ) { - setDocument( context ); - } - return contains( context, elem ); -}; - -Sizzle.attr = function( elem, name ) { - // Set document vars if needed - if ( ( elem.ownerDocument || elem ) !== document ) { - setDocument( elem ); - } - - var fn = Expr.attrHandle[ name.toLowerCase() ], - // Don't get fooled by Object.prototype properties (jQuery #13807) - val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? - fn( elem, name, !documentIsHTML ) : - undefined; - - return val !== undefined ? - val : - support.attributes || !documentIsHTML ? - elem.getAttribute( name ) : - (val = elem.getAttributeNode(name)) && val.specified ? - val.value : - null; -}; - -Sizzle.escape = function( sel ) { - return (sel + "").replace( rcssescape, fcssescape ); -}; - -Sizzle.error = function( msg ) { - throw new Error( "Syntax error, unrecognized expression: " + msg ); -}; - -/** - * Document sorting and removing duplicates - * @param {ArrayLike} results - */ -Sizzle.uniqueSort = function( results ) { - var elem, - duplicates = [], - j = 0, - i = 0; - - // Unless we *know* we can detect duplicates, assume their presence - hasDuplicate = !support.detectDuplicates; - sortInput = !support.sortStable && results.slice( 0 ); - results.sort( sortOrder ); - - if ( hasDuplicate ) { - while ( (elem = results[i++]) ) { - if ( elem === results[ i ] ) { - j = duplicates.push( i ); - } - } - while ( j-- ) { - results.splice( duplicates[ j ], 1 ); - } - } - - // Clear input after sorting to release objects - // See https://github.com/jquery/sizzle/pull/225 - sortInput = null; - - return results; -}; - -/** - * Utility function for retrieving the text value of an array of DOM nodes - * @param {Array|Element} elem - */ -getText = Sizzle.getText = function( elem ) { - var node, - ret = "", - i = 0, - nodeType = elem.nodeType; - - if ( !nodeType ) { - // If no nodeType, this is expected to be an array - while ( (node = elem[i++]) ) { - // Do not traverse comment nodes - ret += getText( node ); - } - } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { - // Use textContent for elements - // innerText usage removed for consistency of new lines (jQuery #11153) - if ( typeof elem.textContent === "string" ) { - return elem.textContent; - } else { - // Traverse its children - for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { - ret += getText( elem ); - } - } - } else if ( nodeType === 3 || nodeType === 4 ) { - return elem.nodeValue; - } - // Do not include comment or processing instruction nodes - - return ret; -}; - -Expr = Sizzle.selectors = { - - // Can be adjusted by the user - cacheLength: 50, - - createPseudo: markFunction, - - match: matchExpr, - - attrHandle: {}, - - find: {}, - - relative: { - ">": { dir: "parentNode", first: true }, - " ": { dir: "parentNode" }, - "+": { dir: "previousSibling", first: true }, - "~": { dir: "previousSibling" } - }, - - preFilter: { - "ATTR": function( match ) { - match[1] = match[1].replace( runescape, funescape ); - - // Move the given value to match[3] whether quoted or unquoted - match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape ); - - if ( match[2] === "~=" ) { - match[3] = " " + match[3] + " "; - } - - return match.slice( 0, 4 ); - }, - - "CHILD": function( match ) { - /* matches from matchExpr["CHILD"] - 1 type (only|nth|...) - 2 what (child|of-type) - 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) - 4 xn-component of xn+y argument ([+-]?\d*n|) - 5 sign of xn-component - 6 x of xn-component - 7 sign of y-component - 8 y of y-component - */ - match[1] = match[1].toLowerCase(); - - if ( match[1].slice( 0, 3 ) === "nth" ) { - // nth-* requires argument - if ( !match[3] ) { - Sizzle.error( match[0] ); - } - - // numeric x and y parameters for Expr.filter.CHILD - // remember that false/true cast respectively to 0/1 - match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); - match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); - - // other types prohibit arguments - } else if ( match[3] ) { - Sizzle.error( match[0] ); - } - - return match; - }, - - "PSEUDO": function( match ) { - var excess, - unquoted = !match[6] && match[2]; - - if ( matchExpr["CHILD"].test( match[0] ) ) { - return null; - } - - // Accept quoted arguments as-is - if ( match[3] ) { - match[2] = match[4] || match[5] || ""; - - // Strip excess characters from unquoted arguments - } else if ( unquoted && rpseudo.test( unquoted ) && - // Get excess from tokenize (recursively) - (excess = tokenize( unquoted, true )) && - // advance to the next closing parenthesis - (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { - - // excess is a negative index - match[0] = match[0].slice( 0, excess ); - match[2] = unquoted.slice( 0, excess ); - } - - // Return only captures needed by the pseudo filter method (type and argument) - return match.slice( 0, 3 ); - } - }, - - filter: { - - "TAG": function( nodeNameSelector ) { - var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); - return nodeNameSelector === "*" ? - function() { return true; } : - function( elem ) { - return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; - }; - }, - - "CLASS": function( className ) { - var pattern = classCache[ className + " " ]; - - return pattern || - (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && - classCache( className, function( elem ) { - return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" ); - }); - }, - - "ATTR": function( name, operator, check ) { - return function( elem ) { - var result = Sizzle.attr( elem, name ); - - if ( result == null ) { - return operator === "!="; - } - if ( !operator ) { - return true; - } - - result += ""; - - return operator === "=" ? result === check : - operator === "!=" ? result !== check : - operator === "^=" ? check && result.indexOf( check ) === 0 : - operator === "*=" ? check && result.indexOf( check ) > -1 : - operator === "$=" ? check && result.slice( -check.length ) === check : - operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : - operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : - false; - }; - }, - - "CHILD": function( type, what, argument, first, last ) { - var simple = type.slice( 0, 3 ) !== "nth", - forward = type.slice( -4 ) !== "last", - ofType = what === "of-type"; - - return first === 1 && last === 0 ? - - // Shortcut for :nth-*(n) - function( elem ) { - return !!elem.parentNode; - } : - - function( elem, context, xml ) { - var cache, uniqueCache, outerCache, node, nodeIndex, start, - dir = simple !== forward ? "nextSibling" : "previousSibling", - parent = elem.parentNode, - name = ofType && elem.nodeName.toLowerCase(), - useCache = !xml && !ofType, - diff = false; - - if ( parent ) { - - // :(first|last|only)-(child|of-type) - if ( simple ) { - while ( dir ) { - node = elem; - while ( (node = node[ dir ]) ) { - if ( ofType ? - node.nodeName.toLowerCase() === name : - node.nodeType === 1 ) { - - return false; - } - } - // Reverse direction for :only-* (if we haven't yet done so) - start = dir = type === "only" && !start && "nextSibling"; - } - return true; - } - - start = [ forward ? parent.firstChild : parent.lastChild ]; - - // non-xml :nth-child(...) stores cache data on `parent` - if ( forward && useCache ) { - - // Seek `elem` from a previously-cached index - - // ...in a gzip-friendly way - node = parent; - outerCache = node[ expando ] || (node[ expando ] = {}); - - // Support: IE <9 only - // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ node.uniqueID ] || - (outerCache[ node.uniqueID ] = {}); - - cache = uniqueCache[ type ] || []; - nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; - diff = nodeIndex && cache[ 2 ]; - node = nodeIndex && parent.childNodes[ nodeIndex ]; - - while ( (node = ++nodeIndex && node && node[ dir ] || - - // Fallback to seeking `elem` from the start - (diff = nodeIndex = 0) || start.pop()) ) { - - // When found, cache indexes on `parent` and break - if ( node.nodeType === 1 && ++diff && node === elem ) { - uniqueCache[ type ] = [ dirruns, nodeIndex, diff ]; - break; - } - } - - } else { - // Use previously-cached element index if available - if ( useCache ) { - // ...in a gzip-friendly way - node = elem; - outerCache = node[ expando ] || (node[ expando ] = {}); - - // Support: IE <9 only - // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ node.uniqueID ] || - (outerCache[ node.uniqueID ] = {}); - - cache = uniqueCache[ type ] || []; - nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; - diff = nodeIndex; - } - - // xml :nth-child(...) - // or :nth-last-child(...) or :nth(-last)?-of-type(...) - if ( diff === false ) { - // Use the same loop as above to seek `elem` from the start - while ( (node = ++nodeIndex && node && node[ dir ] || - (diff = nodeIndex = 0) || start.pop()) ) { - - if ( ( ofType ? - node.nodeName.toLowerCase() === name : - node.nodeType === 1 ) && - ++diff ) { - - // Cache the index of each encountered element - if ( useCache ) { - outerCache = node[ expando ] || (node[ expando ] = {}); - - // Support: IE <9 only - // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ node.uniqueID ] || - (outerCache[ node.uniqueID ] = {}); - - uniqueCache[ type ] = [ dirruns, diff ]; - } - - if ( node === elem ) { - break; - } - } - } - } - } - - // Incorporate the offset, then check against cycle size - diff -= last; - return diff === first || ( diff % first === 0 && diff / first >= 0 ); - } - }; - }, - - "PSEUDO": function( pseudo, argument ) { - // pseudo-class names are case-insensitive - // http://www.w3.org/TR/selectors/#pseudo-classes - // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters - // Remember that setFilters inherits from pseudos - var args, - fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || - Sizzle.error( "unsupported pseudo: " + pseudo ); - - // The user may use createPseudo to indicate that - // arguments are needed to create the filter function - // just as Sizzle does - if ( fn[ expando ] ) { - return fn( argument ); - } - - // But maintain support for old signatures - if ( fn.length > 1 ) { - args = [ pseudo, pseudo, "", argument ]; - return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? - markFunction(function( seed, matches ) { - var idx, - matched = fn( seed, argument ), - i = matched.length; - while ( i-- ) { - idx = indexOf( seed, matched[i] ); - seed[ idx ] = !( matches[ idx ] = matched[i] ); - } - }) : - function( elem ) { - return fn( elem, 0, args ); - }; - } - - return fn; - } - }, - - pseudos: { - // Potentially complex pseudos - "not": markFunction(function( selector ) { - // Trim the selector passed to compile - // to avoid treating leading and trailing - // spaces as combinators - var input = [], - results = [], - matcher = compile( selector.replace( rtrim, "$1" ) ); - - return matcher[ expando ] ? - markFunction(function( seed, matches, context, xml ) { - var elem, - unmatched = matcher( seed, null, xml, [] ), - i = seed.length; - - // Match elements unmatched by `matcher` - while ( i-- ) { - if ( (elem = unmatched[i]) ) { - seed[i] = !(matches[i] = elem); - } - } - }) : - function( elem, context, xml ) { - input[0] = elem; - matcher( input, null, xml, results ); - // Don't keep the element (issue #299) - input[0] = null; - return !results.pop(); - }; - }), - - "has": markFunction(function( selector ) { - return function( elem ) { - return Sizzle( selector, elem ).length > 0; - }; - }), - - "contains": markFunction(function( text ) { - text = text.replace( runescape, funescape ); - return function( elem ) { - return ( elem.textContent || getText( elem ) ).indexOf( text ) > -1; - }; - }), - - // "Whether an element is represented by a :lang() selector - // is based solely on the element's language value - // being equal to the identifier C, - // or beginning with the identifier C immediately followed by "-". - // The matching of C against the element's language value is performed case-insensitively. - // The identifier C does not have to be a valid language name." - // http://www.w3.org/TR/selectors/#lang-pseudo - "lang": markFunction( function( lang ) { - // lang value must be a valid identifier - if ( !ridentifier.test(lang || "") ) { - Sizzle.error( "unsupported lang: " + lang ); - } - lang = lang.replace( runescape, funescape ).toLowerCase(); - return function( elem ) { - var elemLang; - do { - if ( (elemLang = documentIsHTML ? - elem.lang : - elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) { - - elemLang = elemLang.toLowerCase(); - return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; - } - } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); - return false; - }; - }), - - // Miscellaneous - "target": function( elem ) { - var hash = window.location && window.location.hash; - return hash && hash.slice( 1 ) === elem.id; - }, - - "root": function( elem ) { - return elem === docElem; - }, - - "focus": function( elem ) { - return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); - }, - - // Boolean properties - "enabled": createDisabledPseudo( false ), - "disabled": createDisabledPseudo( true ), - - "checked": function( elem ) { - // In CSS3, :checked should return both checked and selected elements - // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked - var nodeName = elem.nodeName.toLowerCase(); - return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); - }, - - "selected": function( elem ) { - // Accessing this property makes selected-by-default - // options in Safari work properly - if ( elem.parentNode ) { - elem.parentNode.selectedIndex; - } - - return elem.selected === true; - }, - - // Contents - "empty": function( elem ) { - // http://www.w3.org/TR/selectors/#empty-pseudo - // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), - // but not by others (comment: 8; processing instruction: 7; etc.) - // nodeType < 6 works because attributes (2) do not appear as children - for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { - if ( elem.nodeType < 6 ) { - return false; - } - } - return true; - }, - - "parent": function( elem ) { - return !Expr.pseudos["empty"]( elem ); - }, - - // Element/input types - "header": function( elem ) { - return rheader.test( elem.nodeName ); - }, - - "input": function( elem ) { - return rinputs.test( elem.nodeName ); - }, - - "button": function( elem ) { - var name = elem.nodeName.toLowerCase(); - return name === "input" && elem.type === "button" || name === "button"; - }, - - "text": function( elem ) { - var attr; - return elem.nodeName.toLowerCase() === "input" && - elem.type === "text" && - - // Support: IE<8 - // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" - ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" ); - }, - - // Position-in-collection - "first": createPositionalPseudo(function() { - return [ 0 ]; - }), - - "last": createPositionalPseudo(function( matchIndexes, length ) { - return [ length - 1 ]; - }), - - "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { - return [ argument < 0 ? argument + length : argument ]; - }), - - "even": createPositionalPseudo(function( matchIndexes, length ) { - var i = 0; - for ( ; i < length; i += 2 ) { - matchIndexes.push( i ); - } - return matchIndexes; - }), - - "odd": createPositionalPseudo(function( matchIndexes, length ) { - var i = 1; - for ( ; i < length; i += 2 ) { - matchIndexes.push( i ); - } - return matchIndexes; - }), - - "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { - var i = argument < 0 ? - argument + length : - argument > length ? - length : - argument; - for ( ; --i >= 0; ) { - matchIndexes.push( i ); - } - return matchIndexes; - }), - - "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { - var i = argument < 0 ? argument + length : argument; - for ( ; ++i < length; ) { - matchIndexes.push( i ); - } - return matchIndexes; - }) - } -}; - -Expr.pseudos["nth"] = Expr.pseudos["eq"]; - -// Add button/input type pseudos -for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { - Expr.pseudos[ i ] = createInputPseudo( i ); -} -for ( i in { submit: true, reset: true } ) { - Expr.pseudos[ i ] = createButtonPseudo( i ); -} - -// Easy API for creating new setFilters -function setFilters() {} -setFilters.prototype = Expr.filters = Expr.pseudos; -Expr.setFilters = new setFilters(); - -tokenize = Sizzle.tokenize = function( selector, parseOnly ) { - var matched, match, tokens, type, - soFar, groups, preFilters, - cached = tokenCache[ selector + " " ]; - - if ( cached ) { - return parseOnly ? 0 : cached.slice( 0 ); - } - - soFar = selector; - groups = []; - preFilters = Expr.preFilter; - - while ( soFar ) { - - // Comma and first run - if ( !matched || (match = rcomma.exec( soFar )) ) { - if ( match ) { - // Don't consume trailing commas as valid - soFar = soFar.slice( match[0].length ) || soFar; - } - groups.push( (tokens = []) ); - } - - matched = false; - - // Combinators - if ( (match = rcombinators.exec( soFar )) ) { - matched = match.shift(); - tokens.push({ - value: matched, - // Cast descendant combinators to space - type: match[0].replace( rtrim, " " ) - }); - soFar = soFar.slice( matched.length ); - } - - // Filters - for ( type in Expr.filter ) { - if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || - (match = preFilters[ type ]( match ))) ) { - matched = match.shift(); - tokens.push({ - value: matched, - type: type, - matches: match - }); - soFar = soFar.slice( matched.length ); - } - } - - if ( !matched ) { - break; - } - } - - // Return the length of the invalid excess - // if we're just parsing - // Otherwise, throw an error or return tokens - return parseOnly ? - soFar.length : - soFar ? - Sizzle.error( selector ) : - // Cache the tokens - tokenCache( selector, groups ).slice( 0 ); -}; - -function toSelector( tokens ) { - var i = 0, - len = tokens.length, - selector = ""; - for ( ; i < len; i++ ) { - selector += tokens[i].value; - } - return selector; -} - -function addCombinator( matcher, combinator, base ) { - var dir = combinator.dir, - skip = combinator.next, - key = skip || dir, - checkNonElements = base && key === "parentNode", - doneName = done++; - - return combinator.first ? - // Check against closest ancestor/preceding element - function( elem, context, xml ) { - while ( (elem = elem[ dir ]) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - return matcher( elem, context, xml ); - } - } - return false; - } : - - // Check against all ancestor/preceding elements - function( elem, context, xml ) { - var oldCache, uniqueCache, outerCache, - newCache = [ dirruns, doneName ]; - - // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching - if ( xml ) { - while ( (elem = elem[ dir ]) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - if ( matcher( elem, context, xml ) ) { - return true; - } - } - } - } else { - while ( (elem = elem[ dir ]) ) { - if ( elem.nodeType === 1 || checkNonElements ) { - outerCache = elem[ expando ] || (elem[ expando ] = {}); - - // Support: IE <9 only - // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {}); - - if ( skip && skip === elem.nodeName.toLowerCase() ) { - elem = elem[ dir ] || elem; - } else if ( (oldCache = uniqueCache[ key ]) && - oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { - - // Assign to newCache so results back-propagate to previous elements - return (newCache[ 2 ] = oldCache[ 2 ]); - } else { - // Reuse newcache so results back-propagate to previous elements - uniqueCache[ key ] = newCache; - - // A match means we're done; a fail means we have to keep checking - if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) { - return true; - } - } - } - } - } - return false; - }; -} - -function elementMatcher( matchers ) { - return matchers.length > 1 ? - function( elem, context, xml ) { - var i = matchers.length; - while ( i-- ) { - if ( !matchers[i]( elem, context, xml ) ) { - return false; - } - } - return true; - } : - matchers[0]; -} - -function multipleContexts( selector, contexts, results ) { - var i = 0, - len = contexts.length; - for ( ; i < len; i++ ) { - Sizzle( selector, contexts[i], results ); - } - return results; -} - -function condense( unmatched, map, filter, context, xml ) { - var elem, - newUnmatched = [], - i = 0, - len = unmatched.length, - mapped = map != null; - - for ( ; i < len; i++ ) { - if ( (elem = unmatched[i]) ) { - if ( !filter || filter( elem, context, xml ) ) { - newUnmatched.push( elem ); - if ( mapped ) { - map.push( i ); - } - } - } - } - - return newUnmatched; -} - -function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { - if ( postFilter && !postFilter[ expando ] ) { - postFilter = setMatcher( postFilter ); - } - if ( postFinder && !postFinder[ expando ] ) { - postFinder = setMatcher( postFinder, postSelector ); - } - return markFunction(function( seed, results, context, xml ) { - var temp, i, elem, - preMap = [], - postMap = [], - preexisting = results.length, - - // Get initial elements from seed or context - elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), - - // Prefilter to get matcher input, preserving a map for seed-results synchronization - matcherIn = preFilter && ( seed || !selector ) ? - condense( elems, preMap, preFilter, context, xml ) : - elems, - - matcherOut = matcher ? - // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, - postFinder || ( seed ? preFilter : preexisting || postFilter ) ? - - // ...intermediate processing is necessary - [] : - - // ...otherwise use results directly - results : - matcherIn; - - // Find primary matches - if ( matcher ) { - matcher( matcherIn, matcherOut, context, xml ); - } - - // Apply postFilter - if ( postFilter ) { - temp = condense( matcherOut, postMap ); - postFilter( temp, [], context, xml ); - - // Un-match failing elements by moving them back to matcherIn - i = temp.length; - while ( i-- ) { - if ( (elem = temp[i]) ) { - matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); - } - } - } - - if ( seed ) { - if ( postFinder || preFilter ) { - if ( postFinder ) { - // Get the final matcherOut by condensing this intermediate into postFinder contexts - temp = []; - i = matcherOut.length; - while ( i-- ) { - if ( (elem = matcherOut[i]) ) { - // Restore matcherIn since elem is not yet a final match - temp.push( (matcherIn[i] = elem) ); - } - } - postFinder( null, (matcherOut = []), temp, xml ); - } - - // Move matched elements from seed to results to keep them synchronized - i = matcherOut.length; - while ( i-- ) { - if ( (elem = matcherOut[i]) && - (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) { - - seed[temp] = !(results[temp] = elem); - } - } - } - - // Add elements to results, through postFinder if defined - } else { - matcherOut = condense( - matcherOut === results ? - matcherOut.splice( preexisting, matcherOut.length ) : - matcherOut - ); - if ( postFinder ) { - postFinder( null, results, matcherOut, xml ); - } else { - push.apply( results, matcherOut ); - } - } - }); -} - -function matcherFromTokens( tokens ) { - var checkContext, matcher, j, - len = tokens.length, - leadingRelative = Expr.relative[ tokens[0].type ], - implicitRelative = leadingRelative || Expr.relative[" "], - i = leadingRelative ? 1 : 0, - - // The foundational matcher ensures that elements are reachable from top-level context(s) - matchContext = addCombinator( function( elem ) { - return elem === checkContext; - }, implicitRelative, true ), - matchAnyContext = addCombinator( function( elem ) { - return indexOf( checkContext, elem ) > -1; - }, implicitRelative, true ), - matchers = [ function( elem, context, xml ) { - var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( - (checkContext = context).nodeType ? - matchContext( elem, context, xml ) : - matchAnyContext( elem, context, xml ) ); - // Avoid hanging onto element (issue #299) - checkContext = null; - return ret; - } ]; - - for ( ; i < len; i++ ) { - if ( (matcher = Expr.relative[ tokens[i].type ]) ) { - matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; - } else { - matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); - - // Return special upon seeing a positional matcher - if ( matcher[ expando ] ) { - // Find the next relative operator (if any) for proper handling - j = ++i; - for ( ; j < len; j++ ) { - if ( Expr.relative[ tokens[j].type ] ) { - break; - } - } - return setMatcher( - i > 1 && elementMatcher( matchers ), - i > 1 && toSelector( - // If the preceding token was a descendant combinator, insert an implicit any-element `*` - tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" }) - ).replace( rtrim, "$1" ), - matcher, - i < j && matcherFromTokens( tokens.slice( i, j ) ), - j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), - j < len && toSelector( tokens ) - ); - } - matchers.push( matcher ); - } - } - - return elementMatcher( matchers ); -} - -function matcherFromGroupMatchers( elementMatchers, setMatchers ) { - var bySet = setMatchers.length > 0, - byElement = elementMatchers.length > 0, - superMatcher = function( seed, context, xml, results, outermost ) { - var elem, j, matcher, - matchedCount = 0, - i = "0", - unmatched = seed && [], - setMatched = [], - contextBackup = outermostContext, - // We must always have either seed elements or outermost context - elems = seed || byElement && Expr.find["TAG"]( "*", outermost ), - // Use integer dirruns iff this is the outermost matcher - dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1), - len = elems.length; - - if ( outermost ) { - outermostContext = context === document || context || outermost; - } - - // Add elements passing elementMatchers directly to results - // Support: IE<9, Safari - // Tolerate NodeList properties (IE: "length"; Safari: ) matching elements by id - for ( ; i !== len && (elem = elems[i]) != null; i++ ) { - if ( byElement && elem ) { - j = 0; - if ( !context && elem.ownerDocument !== document ) { - setDocument( elem ); - xml = !documentIsHTML; - } - while ( (matcher = elementMatchers[j++]) ) { - if ( matcher( elem, context || document, xml) ) { - results.push( elem ); - break; - } - } - if ( outermost ) { - dirruns = dirrunsUnique; - } - } - - // Track unmatched elements for set filters - if ( bySet ) { - // They will have gone through all possible matchers - if ( (elem = !matcher && elem) ) { - matchedCount--; - } - - // Lengthen the array for every element, matched or not - if ( seed ) { - unmatched.push( elem ); - } - } - } - - // `i` is now the count of elements visited above, and adding it to `matchedCount` - // makes the latter nonnegative. - matchedCount += i; - - // Apply set filters to unmatched elements - // NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount` - // equals `i`), unless we didn't visit _any_ elements in the above loop because we have - // no element matchers and no seed. - // Incrementing an initially-string "0" `i` allows `i` to remain a string only in that - // case, which will result in a "00" `matchedCount` that differs from `i` but is also - // numerically zero. - if ( bySet && i !== matchedCount ) { - j = 0; - while ( (matcher = setMatchers[j++]) ) { - matcher( unmatched, setMatched, context, xml ); - } - - if ( seed ) { - // Reintegrate element matches to eliminate the need for sorting - if ( matchedCount > 0 ) { - while ( i-- ) { - if ( !(unmatched[i] || setMatched[i]) ) { - setMatched[i] = pop.call( results ); - } - } - } - - // Discard index placeholder values to get only actual matches - setMatched = condense( setMatched ); - } - - // Add matches to results - push.apply( results, setMatched ); - - // Seedless set matches succeeding multiple successful matchers stipulate sorting - if ( outermost && !seed && setMatched.length > 0 && - ( matchedCount + setMatchers.length ) > 1 ) { - - Sizzle.uniqueSort( results ); - } - } - - // Override manipulation of globals by nested matchers - if ( outermost ) { - dirruns = dirrunsUnique; - outermostContext = contextBackup; - } - - return unmatched; - }; - - return bySet ? - markFunction( superMatcher ) : - superMatcher; -} - -compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { - var i, - setMatchers = [], - elementMatchers = [], - cached = compilerCache[ selector + " " ]; - - if ( !cached ) { - // Generate a function of recursive functions that can be used to check each element - if ( !match ) { - match = tokenize( selector ); - } - i = match.length; - while ( i-- ) { - cached = matcherFromTokens( match[i] ); - if ( cached[ expando ] ) { - setMatchers.push( cached ); - } else { - elementMatchers.push( cached ); - } - } - - // Cache the compiled function - cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); - - // Save selector and tokenization - cached.selector = selector; - } - return cached; -}; - -/** - * A low-level selection function that works with Sizzle's compiled - * selector functions - * @param {String|Function} selector A selector or a pre-compiled - * selector function built with Sizzle.compile - * @param {Element} context - * @param {Array} [results] - * @param {Array} [seed] A set of elements to match against - */ -select = Sizzle.select = function( selector, context, results, seed ) { - var i, tokens, token, type, find, - compiled = typeof selector === "function" && selector, - match = !seed && tokenize( (selector = compiled.selector || selector) ); - - results = results || []; - - // Try to minimize operations if there is only one selector in the list and no seed - // (the latter of which guarantees us context) - if ( match.length === 1 ) { - - // Reduce context if the leading compound selector is an ID - tokens = match[0] = match[0].slice( 0 ); - if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && - context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) { - - context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; - if ( !context ) { - return results; - - // Precompiled matchers will still verify ancestry, so step up a level - } else if ( compiled ) { - context = context.parentNode; - } - - selector = selector.slice( tokens.shift().value.length ); - } - - // Fetch a seed set for right-to-left matching - i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; - while ( i-- ) { - token = tokens[i]; - - // Abort if we hit a combinator - if ( Expr.relative[ (type = token.type) ] ) { - break; - } - if ( (find = Expr.find[ type ]) ) { - // Search, expanding context for leading sibling combinators - if ( (seed = find( - token.matches[0].replace( runescape, funescape ), - rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context - )) ) { - - // If seed is empty or no tokens remain, we can return early - tokens.splice( i, 1 ); - selector = seed.length && toSelector( tokens ); - if ( !selector ) { - push.apply( results, seed ); - return results; - } - - break; - } - } - } - } - - // Compile and execute a filtering function if one is not provided - // Provide `match` to avoid retokenization if we modified the selector above - ( compiled || compile( selector, match ) )( - seed, - context, - !documentIsHTML, - results, - !context || rsibling.test( selector ) && testContext( context.parentNode ) || context - ); - return results; -}; - -// One-time assignments - -// Sort stability -support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; - -// Support: Chrome 14-35+ -// Always assume duplicates if they aren't passed to the comparison function -support.detectDuplicates = !!hasDuplicate; - -// Initialize against the default document -setDocument(); - -// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) -// Detached nodes confoundingly follow *each other* -support.sortDetached = assert(function( el ) { - // Should return 1, but returns 4 (following) - return el.compareDocumentPosition( document.createElement("fieldset") ) & 1; -}); - -// Support: IE<8 -// Prevent attribute/property "interpolation" -// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx -if ( !assert(function( el ) { - el.innerHTML = ""; - return el.firstChild.getAttribute("href") === "#" ; -}) ) { - addHandle( "type|href|height|width", function( elem, name, isXML ) { - if ( !isXML ) { - return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); - } - }); -} - -// Support: IE<9 -// Use defaultValue in place of getAttribute("value") -if ( !support.attributes || !assert(function( el ) { - el.innerHTML = ""; - el.firstChild.setAttribute( "value", "" ); - return el.firstChild.getAttribute( "value" ) === ""; -}) ) { - addHandle( "value", function( elem, name, isXML ) { - if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { - return elem.defaultValue; - } - }); -} - -// Support: IE<9 -// Use getAttributeNode to fetch booleans when getAttribute lies -if ( !assert(function( el ) { - return el.getAttribute("disabled") == null; -}) ) { - addHandle( booleans, function( elem, name, isXML ) { - var val; - if ( !isXML ) { - return elem[ name ] === true ? name.toLowerCase() : - (val = elem.getAttributeNode( name )) && val.specified ? - val.value : - null; - } - }); -} - -return Sizzle; - -})( window ); - - - -jQuery.find = Sizzle; -jQuery.expr = Sizzle.selectors; - -// Deprecated -jQuery.expr[ ":" ] = jQuery.expr.pseudos; -jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort; -jQuery.text = Sizzle.getText; -jQuery.isXMLDoc = Sizzle.isXML; -jQuery.contains = Sizzle.contains; -jQuery.escapeSelector = Sizzle.escape; - - - - -var dir = function( elem, dir, until ) { - var matched = [], - truncate = until !== undefined; - - while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) { - if ( elem.nodeType === 1 ) { - if ( truncate && jQuery( elem ).is( until ) ) { - break; - } - matched.push( elem ); - } - } - return matched; -}; - - -var siblings = function( n, elem ) { - var matched = []; - - for ( ; n; n = n.nextSibling ) { - if ( n.nodeType === 1 && n !== elem ) { - matched.push( n ); - } - } - - return matched; -}; - - -var rneedsContext = jQuery.expr.match.needsContext; - - - -function nodeName( elem, name ) { - - return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); - -}; -var rsingleTag = ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); - - - -// Implement the identical functionality for filter and not -function winnow( elements, qualifier, not ) { - if ( isFunction( qualifier ) ) { - return jQuery.grep( elements, function( elem, i ) { - return !!qualifier.call( elem, i, elem ) !== not; - } ); - } - - // Single element - if ( qualifier.nodeType ) { - return jQuery.grep( elements, function( elem ) { - return ( elem === qualifier ) !== not; - } ); - } - - // Arraylike of elements (jQuery, arguments, Array) - if ( typeof qualifier !== "string" ) { - return jQuery.grep( elements, function( elem ) { - return ( indexOf.call( qualifier, elem ) > -1 ) !== not; - } ); - } - - // Filtered directly for both simple and complex selectors - return jQuery.filter( qualifier, elements, not ); -} - -jQuery.filter = function( expr, elems, not ) { - var elem = elems[ 0 ]; - - if ( not ) { - expr = ":not(" + expr + ")"; - } - - if ( elems.length === 1 && elem.nodeType === 1 ) { - return jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : []; - } - - return jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { - return elem.nodeType === 1; - } ) ); -}; - -jQuery.fn.extend( { - find: function( selector ) { - var i, ret, - len = this.length, - self = this; - - if ( typeof selector !== "string" ) { - return this.pushStack( jQuery( selector ).filter( function() { - for ( i = 0; i < len; i++ ) { - if ( jQuery.contains( self[ i ], this ) ) { - return true; - } - } - } ) ); - } - - ret = this.pushStack( [] ); - - for ( i = 0; i < len; i++ ) { - jQuery.find( selector, self[ i ], ret ); - } - - return len > 1 ? jQuery.uniqueSort( ret ) : ret; - }, - filter: function( selector ) { - return this.pushStack( winnow( this, selector || [], false ) ); - }, - not: function( selector ) { - return this.pushStack( winnow( this, selector || [], true ) ); - }, - is: function( selector ) { - return !!winnow( - this, - - // If this is a positional/relative selector, check membership in the returned set - // so $("p:first").is("p:last") won't return true for a doc with two "p". - typeof selector === "string" && rneedsContext.test( selector ) ? - jQuery( selector ) : - selector || [], - false - ).length; - } -} ); - - -// Initialize a jQuery object - - -// A central reference to the root jQuery(document) -var rootjQuery, - - // A simple way to check for HTML strings - // Prioritize #id over to avoid XSS via location.hash (#9521) - // Strict HTML recognition (#11290: must start with <) - // Shortcut simple #id case for speed - rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/, - - init = jQuery.fn.init = function( selector, context, root ) { - var match, elem; - - // HANDLE: $(""), $(null), $(undefined), $(false) - if ( !selector ) { - return this; - } - - // Method init() accepts an alternate rootjQuery - // so migrate can support jQuery.sub (gh-2101) - root = root || rootjQuery; - - // Handle HTML strings - if ( typeof selector === "string" ) { - if ( selector[ 0 ] === "<" && - selector[ selector.length - 1 ] === ">" && - selector.length >= 3 ) { - - // Assume that strings that start and end with <> are HTML and skip the regex check - match = [ null, selector, null ]; - - } else { - match = rquickExpr.exec( selector ); - } - - // Match html or make sure no context is specified for #id - if ( match && ( match[ 1 ] || !context ) ) { - - // HANDLE: $(html) -> $(array) - if ( match[ 1 ] ) { - context = context instanceof jQuery ? context[ 0 ] : context; - - // Option to run scripts is true for back-compat - // Intentionally let the error be thrown if parseHTML is not present - jQuery.merge( this, jQuery.parseHTML( - match[ 1 ], - context && context.nodeType ? context.ownerDocument || context : document, - true - ) ); - - // HANDLE: $(html, props) - if ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) { - for ( match in context ) { - - // Properties of context are called as methods if possible - if ( isFunction( this[ match ] ) ) { - this[ match ]( context[ match ] ); - - // ...and otherwise set as attributes - } else { - this.attr( match, context[ match ] ); - } - } - } - - return this; - - // HANDLE: $(#id) - } else { - elem = document.getElementById( match[ 2 ] ); - - if ( elem ) { - - // Inject the element directly into the jQuery object - this[ 0 ] = elem; - this.length = 1; - } - return this; - } - - // HANDLE: $(expr, $(...)) - } else if ( !context || context.jquery ) { - return ( context || root ).find( selector ); - - // HANDLE: $(expr, context) - // (which is just equivalent to: $(context).find(expr) - } else { - return this.constructor( context ).find( selector ); - } - - // HANDLE: $(DOMElement) - } else if ( selector.nodeType ) { - this[ 0 ] = selector; - this.length = 1; - return this; - - // HANDLE: $(function) - // Shortcut for document ready - } else if ( isFunction( selector ) ) { - return root.ready !== undefined ? - root.ready( selector ) : - - // Execute immediately if ready is not present - selector( jQuery ); - } - - return jQuery.makeArray( selector, this ); - }; - -// Give the init function the jQuery prototype for later instantiation -init.prototype = jQuery.fn; - -// Initialize central reference -rootjQuery = jQuery( document ); - - -var rparentsprev = /^(?:parents|prev(?:Until|All))/, - - // Methods guaranteed to produce a unique set when starting from a unique set - guaranteedUnique = { - children: true, - contents: true, - next: true, - prev: true - }; - -jQuery.fn.extend( { - has: function( target ) { - var targets = jQuery( target, this ), - l = targets.length; - - return this.filter( function() { - var i = 0; - for ( ; i < l; i++ ) { - if ( jQuery.contains( this, targets[ i ] ) ) { - return true; - } - } - } ); - }, - - closest: function( selectors, context ) { - var cur, - i = 0, - l = this.length, - matched = [], - targets = typeof selectors !== "string" && jQuery( selectors ); - - // Positional selectors never match, since there's no _selection_ context - if ( !rneedsContext.test( selectors ) ) { - for ( ; i < l; i++ ) { - for ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) { - - // Always skip document fragments - if ( cur.nodeType < 11 && ( targets ? - targets.index( cur ) > -1 : - - // Don't pass non-elements to Sizzle - cur.nodeType === 1 && - jQuery.find.matchesSelector( cur, selectors ) ) ) { - - matched.push( cur ); - break; - } - } - } - } - - return this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched ); - }, - - // Determine the position of an element within the set - index: function( elem ) { - - // No argument, return index in parent - if ( !elem ) { - return ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1; - } - - // Index in selector - if ( typeof elem === "string" ) { - return indexOf.call( jQuery( elem ), this[ 0 ] ); - } - - // Locate the position of the desired element - return indexOf.call( this, - - // If it receives a jQuery object, the first element is used - elem.jquery ? elem[ 0 ] : elem - ); - }, - - add: function( selector, context ) { - return this.pushStack( - jQuery.uniqueSort( - jQuery.merge( this.get(), jQuery( selector, context ) ) - ) - ); - }, - - addBack: function( selector ) { - return this.add( selector == null ? - this.prevObject : this.prevObject.filter( selector ) - ); - } -} ); - -function sibling( cur, dir ) { - while ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {} - return cur; -} - -jQuery.each( { - parent: function( elem ) { - var parent = elem.parentNode; - return parent && parent.nodeType !== 11 ? parent : null; - }, - parents: function( elem ) { - return dir( elem, "parentNode" ); - }, - parentsUntil: function( elem, i, until ) { - return dir( elem, "parentNode", until ); - }, - next: function( elem ) { - return sibling( elem, "nextSibling" ); - }, - prev: function( elem ) { - return sibling( elem, "previousSibling" ); - }, - nextAll: function( elem ) { - return dir( elem, "nextSibling" ); - }, - prevAll: function( elem ) { - return dir( elem, "previousSibling" ); - }, - nextUntil: function( elem, i, until ) { - return dir( elem, "nextSibling", until ); - }, - prevUntil: function( elem, i, until ) { - return dir( elem, "previousSibling", until ); - }, - siblings: function( elem ) { - return siblings( ( elem.parentNode || {} ).firstChild, elem ); - }, - children: function( elem ) { - return siblings( elem.firstChild ); - }, - contents: function( elem ) { - if ( typeof elem.contentDocument !== "undefined" ) { - return elem.contentDocument; - } - - // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only - // Treat the template element as a regular one in browsers that - // don't support it. - if ( nodeName( elem, "template" ) ) { - elem = elem.content || elem; - } - - return jQuery.merge( [], elem.childNodes ); - } -}, function( name, fn ) { - jQuery.fn[ name ] = function( until, selector ) { - var matched = jQuery.map( this, fn, until ); - - if ( name.slice( -5 ) !== "Until" ) { - selector = until; - } - - if ( selector && typeof selector === "string" ) { - matched = jQuery.filter( selector, matched ); - } - - if ( this.length > 1 ) { - - // Remove duplicates - if ( !guaranteedUnique[ name ] ) { - jQuery.uniqueSort( matched ); - } - - // Reverse order for parents* and prev-derivatives - if ( rparentsprev.test( name ) ) { - matched.reverse(); - } - } - - return this.pushStack( matched ); - }; -} ); -var rnothtmlwhite = ( /[^\x20\t\r\n\f]+/g ); - - - -// Convert String-formatted options into Object-formatted ones -function createOptions( options ) { - var object = {}; - jQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) { - object[ flag ] = true; - } ); - return object; -} - -/* - * Create a callback list using the following parameters: - * - * options: an optional list of space-separated options that will change how - * the callback list behaves or a more traditional option object - * - * By default a callback list will act like an event callback list and can be - * "fired" multiple times. - * - * Possible options: - * - * once: will ensure the callback list can only be fired once (like a Deferred) - * - * memory: will keep track of previous values and will call any callback added - * after the list has been fired right away with the latest "memorized" - * values (like a Deferred) - * - * unique: will ensure a callback can only be added once (no duplicate in the list) - * - * stopOnFalse: interrupt callings when a callback returns false - * - */ -jQuery.Callbacks = function( options ) { - - // Convert options from String-formatted to Object-formatted if needed - // (we check in cache first) - options = typeof options === "string" ? - createOptions( options ) : - jQuery.extend( {}, options ); - - var // Flag to know if list is currently firing - firing, - - // Last fire value for non-forgettable lists - memory, - - // Flag to know if list was already fired - fired, - - // Flag to prevent firing - locked, - - // Actual callback list - list = [], - - // Queue of execution data for repeatable lists - queue = [], - - // Index of currently firing callback (modified by add/remove as needed) - firingIndex = -1, - - // Fire callbacks - fire = function() { - - // Enforce single-firing - locked = locked || options.once; - - // Execute callbacks for all pending executions, - // respecting firingIndex overrides and runtime changes - fired = firing = true; - for ( ; queue.length; firingIndex = -1 ) { - memory = queue.shift(); - while ( ++firingIndex < list.length ) { - - // Run callback and check for early termination - if ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false && - options.stopOnFalse ) { - - // Jump to end and forget the data so .add doesn't re-fire - firingIndex = list.length; - memory = false; - } - } - } - - // Forget the data if we're done with it - if ( !options.memory ) { - memory = false; - } - - firing = false; - - // Clean up if we're done firing for good - if ( locked ) { - - // Keep an empty list if we have data for future add calls - if ( memory ) { - list = []; - - // Otherwise, this object is spent - } else { - list = ""; - } - } - }, - - // Actual Callbacks object - self = { - - // Add a callback or a collection of callbacks to the list - add: function() { - if ( list ) { - - // If we have memory from a past run, we should fire after adding - if ( memory && !firing ) { - firingIndex = list.length - 1; - queue.push( memory ); - } - - ( function add( args ) { - jQuery.each( args, function( _, arg ) { - if ( isFunction( arg ) ) { - if ( !options.unique || !self.has( arg ) ) { - list.push( arg ); - } - } else if ( arg && arg.length && toType( arg ) !== "string" ) { - - // Inspect recursively - add( arg ); - } - } ); - } )( arguments ); - - if ( memory && !firing ) { - fire(); - } - } - return this; - }, - - // Remove a callback from the list - remove: function() { - jQuery.each( arguments, function( _, arg ) { - var index; - while ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { - list.splice( index, 1 ); - - // Handle firing indexes - if ( index <= firingIndex ) { - firingIndex--; - } - } - } ); - return this; - }, - - // Check if a given callback is in the list. - // If no argument is given, return whether or not list has callbacks attached. - has: function( fn ) { - return fn ? - jQuery.inArray( fn, list ) > -1 : - list.length > 0; - }, - - // Remove all callbacks from the list - empty: function() { - if ( list ) { - list = []; - } - return this; - }, - - // Disable .fire and .add - // Abort any current/pending executions - // Clear all callbacks and values - disable: function() { - locked = queue = []; - list = memory = ""; - return this; - }, - disabled: function() { - return !list; - }, - - // Disable .fire - // Also disable .add unless we have memory (since it would have no effect) - // Abort any pending executions - lock: function() { - locked = queue = []; - if ( !memory && !firing ) { - list = memory = ""; - } - return this; - }, - locked: function() { - return !!locked; - }, - - // Call all callbacks with the given context and arguments - fireWith: function( context, args ) { - if ( !locked ) { - args = args || []; - args = [ context, args.slice ? args.slice() : args ]; - queue.push( args ); - if ( !firing ) { - fire(); - } - } - return this; - }, - - // Call all the callbacks with the given arguments - fire: function() { - self.fireWith( this, arguments ); - return this; - }, - - // To know if the callbacks have already been called at least once - fired: function() { - return !!fired; - } - }; - - return self; -}; - - -function Identity( v ) { - return v; -} -function Thrower( ex ) { - throw ex; -} - -function adoptValue( value, resolve, reject, noValue ) { - var method; - - try { - - // Check for promise aspect first to privilege synchronous behavior - if ( value && isFunction( ( method = value.promise ) ) ) { - method.call( value ).done( resolve ).fail( reject ); - - // Other thenables - } else if ( value && isFunction( ( method = value.then ) ) ) { - method.call( value, resolve, reject ); - - // Other non-thenables - } else { - - // Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer: - // * false: [ value ].slice( 0 ) => resolve( value ) - // * true: [ value ].slice( 1 ) => resolve() - resolve.apply( undefined, [ value ].slice( noValue ) ); - } - - // For Promises/A+, convert exceptions into rejections - // Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in - // Deferred#then to conditionally suppress rejection. - } catch ( value ) { - - // Support: Android 4.0 only - // Strict mode functions invoked without .call/.apply get global-object context - reject.apply( undefined, [ value ] ); - } -} - -jQuery.extend( { - - Deferred: function( func ) { - var tuples = [ - - // action, add listener, callbacks, - // ... .then handlers, argument index, [final state] - [ "notify", "progress", jQuery.Callbacks( "memory" ), - jQuery.Callbacks( "memory" ), 2 ], - [ "resolve", "done", jQuery.Callbacks( "once memory" ), - jQuery.Callbacks( "once memory" ), 0, "resolved" ], - [ "reject", "fail", jQuery.Callbacks( "once memory" ), - jQuery.Callbacks( "once memory" ), 1, "rejected" ] - ], - state = "pending", - promise = { - state: function() { - return state; - }, - always: function() { - deferred.done( arguments ).fail( arguments ); - return this; - }, - "catch": function( fn ) { - return promise.then( null, fn ); - }, - - // Keep pipe for back-compat - pipe: function( /* fnDone, fnFail, fnProgress */ ) { - var fns = arguments; - - return jQuery.Deferred( function( newDefer ) { - jQuery.each( tuples, function( i, tuple ) { - - // Map tuples (progress, done, fail) to arguments (done, fail, progress) - var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ]; - - // deferred.progress(function() { bind to newDefer or newDefer.notify }) - // deferred.done(function() { bind to newDefer or newDefer.resolve }) - // deferred.fail(function() { bind to newDefer or newDefer.reject }) - deferred[ tuple[ 1 ] ]( function() { - var returned = fn && fn.apply( this, arguments ); - if ( returned && isFunction( returned.promise ) ) { - returned.promise() - .progress( newDefer.notify ) - .done( newDefer.resolve ) - .fail( newDefer.reject ); - } else { - newDefer[ tuple[ 0 ] + "With" ]( - this, - fn ? [ returned ] : arguments - ); - } - } ); - } ); - fns = null; - } ).promise(); - }, - then: function( onFulfilled, onRejected, onProgress ) { - var maxDepth = 0; - function resolve( depth, deferred, handler, special ) { - return function() { - var that = this, - args = arguments, - mightThrow = function() { - var returned, then; - - // Support: Promises/A+ section 2.3.3.3.3 - // https://promisesaplus.com/#point-59 - // Ignore double-resolution attempts - if ( depth < maxDepth ) { - return; - } - - returned = handler.apply( that, args ); - - // Support: Promises/A+ section 2.3.1 - // https://promisesaplus.com/#point-48 - if ( returned === deferred.promise() ) { - throw new TypeError( "Thenable self-resolution" ); - } - - // Support: Promises/A+ sections 2.3.3.1, 3.5 - // https://promisesaplus.com/#point-54 - // https://promisesaplus.com/#point-75 - // Retrieve `then` only once - then = returned && - - // Support: Promises/A+ section 2.3.4 - // https://promisesaplus.com/#point-64 - // Only check objects and functions for thenability - ( typeof returned === "object" || - typeof returned === "function" ) && - returned.then; - - // Handle a returned thenable - if ( isFunction( then ) ) { - - // Special processors (notify) just wait for resolution - if ( special ) { - then.call( - returned, - resolve( maxDepth, deferred, Identity, special ), - resolve( maxDepth, deferred, Thrower, special ) - ); - - // Normal processors (resolve) also hook into progress - } else { - - // ...and disregard older resolution values - maxDepth++; - - then.call( - returned, - resolve( maxDepth, deferred, Identity, special ), - resolve( maxDepth, deferred, Thrower, special ), - resolve( maxDepth, deferred, Identity, - deferred.notifyWith ) - ); - } - - // Handle all other returned values - } else { - - // Only substitute handlers pass on context - // and multiple values (non-spec behavior) - if ( handler !== Identity ) { - that = undefined; - args = [ returned ]; - } - - // Process the value(s) - // Default process is resolve - ( special || deferred.resolveWith )( that, args ); - } - }, - - // Only normal processors (resolve) catch and reject exceptions - process = special ? - mightThrow : - function() { - try { - mightThrow(); - } catch ( e ) { - - if ( jQuery.Deferred.exceptionHook ) { - jQuery.Deferred.exceptionHook( e, - process.stackTrace ); - } - - // Support: Promises/A+ section 2.3.3.3.4.1 - // https://promisesaplus.com/#point-61 - // Ignore post-resolution exceptions - if ( depth + 1 >= maxDepth ) { - - // Only substitute handlers pass on context - // and multiple values (non-spec behavior) - if ( handler !== Thrower ) { - that = undefined; - args = [ e ]; - } - - deferred.rejectWith( that, args ); - } - } - }; - - // Support: Promises/A+ section 2.3.3.3.1 - // https://promisesaplus.com/#point-57 - // Re-resolve promises immediately to dodge false rejection from - // subsequent errors - if ( depth ) { - process(); - } else { - - // Call an optional hook to record the stack, in case of exception - // since it's otherwise lost when execution goes async - if ( jQuery.Deferred.getStackHook ) { - process.stackTrace = jQuery.Deferred.getStackHook(); - } - window.setTimeout( process ); - } - }; - } - - return jQuery.Deferred( function( newDefer ) { - - // progress_handlers.add( ... ) - tuples[ 0 ][ 3 ].add( - resolve( - 0, - newDefer, - isFunction( onProgress ) ? - onProgress : - Identity, - newDefer.notifyWith - ) - ); - - // fulfilled_handlers.add( ... ) - tuples[ 1 ][ 3 ].add( - resolve( - 0, - newDefer, - isFunction( onFulfilled ) ? - onFulfilled : - Identity - ) - ); - - // rejected_handlers.add( ... ) - tuples[ 2 ][ 3 ].add( - resolve( - 0, - newDefer, - isFunction( onRejected ) ? - onRejected : - Thrower - ) - ); - } ).promise(); - }, - - // Get a promise for this deferred - // If obj is provided, the promise aspect is added to the object - promise: function( obj ) { - return obj != null ? jQuery.extend( obj, promise ) : promise; - } - }, - deferred = {}; - - // Add list-specific methods - jQuery.each( tuples, function( i, tuple ) { - var list = tuple[ 2 ], - stateString = tuple[ 5 ]; - - // promise.progress = list.add - // promise.done = list.add - // promise.fail = list.add - promise[ tuple[ 1 ] ] = list.add; - - // Handle state - if ( stateString ) { - list.add( - function() { - - // state = "resolved" (i.e., fulfilled) - // state = "rejected" - state = stateString; - }, - - // rejected_callbacks.disable - // fulfilled_callbacks.disable - tuples[ 3 - i ][ 2 ].disable, - - // rejected_handlers.disable - // fulfilled_handlers.disable - tuples[ 3 - i ][ 3 ].disable, - - // progress_callbacks.lock - tuples[ 0 ][ 2 ].lock, - - // progress_handlers.lock - tuples[ 0 ][ 3 ].lock - ); - } - - // progress_handlers.fire - // fulfilled_handlers.fire - // rejected_handlers.fire - list.add( tuple[ 3 ].fire ); - - // deferred.notify = function() { deferred.notifyWith(...) } - // deferred.resolve = function() { deferred.resolveWith(...) } - // deferred.reject = function() { deferred.rejectWith(...) } - deferred[ tuple[ 0 ] ] = function() { - deferred[ tuple[ 0 ] + "With" ]( this === deferred ? undefined : this, arguments ); - return this; - }; - - // deferred.notifyWith = list.fireWith - // deferred.resolveWith = list.fireWith - // deferred.rejectWith = list.fireWith - deferred[ tuple[ 0 ] + "With" ] = list.fireWith; - } ); - - // Make the deferred a promise - promise.promise( deferred ); - - // Call given func if any - if ( func ) { - func.call( deferred, deferred ); - } - - // All done! - return deferred; - }, - - // Deferred helper - when: function( singleValue ) { - var - - // count of uncompleted subordinates - remaining = arguments.length, - - // count of unprocessed arguments - i = remaining, - - // subordinate fulfillment data - resolveContexts = Array( i ), - resolveValues = slice.call( arguments ), - - // the master Deferred - master = jQuery.Deferred(), - - // subordinate callback factory - updateFunc = function( i ) { - return function( value ) { - resolveContexts[ i ] = this; - resolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value; - if ( !( --remaining ) ) { - master.resolveWith( resolveContexts, resolveValues ); - } - }; - }; - - // Single- and empty arguments are adopted like Promise.resolve - if ( remaining <= 1 ) { - adoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject, - !remaining ); - - // Use .then() to unwrap secondary thenables (cf. gh-3000) - if ( master.state() === "pending" || - isFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) { - - return master.then(); - } - } - - // Multiple arguments are aggregated like Promise.all array elements - while ( i-- ) { - adoptValue( resolveValues[ i ], updateFunc( i ), master.reject ); - } - - return master.promise(); - } -} ); - - -// These usually indicate a programmer mistake during development, -// warn about them ASAP rather than swallowing them by default. -var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; - -jQuery.Deferred.exceptionHook = function( error, stack ) { - - // Support: IE 8 - 9 only - // Console exists when dev tools are open, which can happen at any time - if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) { - window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack ); - } -}; - - - - -jQuery.readyException = function( error ) { - window.setTimeout( function() { - throw error; - } ); -}; - - - - -// The deferred used on DOM ready -var readyList = jQuery.Deferred(); - -jQuery.fn.ready = function( fn ) { - - readyList - .then( fn ) - - // Wrap jQuery.readyException in a function so that the lookup - // happens at the time of error handling instead of callback - // registration. - .catch( function( error ) { - jQuery.readyException( error ); - } ); - - return this; -}; - -jQuery.extend( { - - // Is the DOM ready to be used? Set to true once it occurs. - isReady: false, - - // A counter to track how many items to wait for before - // the ready event fires. See #6781 - readyWait: 1, - - // Handle when the DOM is ready - ready: function( wait ) { - - // Abort if there are pending holds or we're already ready - if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { - return; - } - - // Remember that the DOM is ready - jQuery.isReady = true; - - // If a normal DOM Ready event fired, decrement, and wait if need be - if ( wait !== true && --jQuery.readyWait > 0 ) { - return; - } - - // If there are functions bound, to execute - readyList.resolveWith( document, [ jQuery ] ); - } -} ); - -jQuery.ready.then = readyList.then; - -// The ready event handler and self cleanup method -function completed() { - document.removeEventListener( "DOMContentLoaded", completed ); - window.removeEventListener( "load", completed ); - jQuery.ready(); -} - -// Catch cases where $(document).ready() is called -// after the browser event has already occurred. -// Support: IE <=9 - 10 only -// Older IE sometimes signals "interactive" too soon -if ( document.readyState === "complete" || - ( document.readyState !== "loading" && !document.documentElement.doScroll ) ) { - - // Handle it asynchronously to allow scripts the opportunity to delay ready - window.setTimeout( jQuery.ready ); - -} else { - - // Use the handy event callback - document.addEventListener( "DOMContentLoaded", completed ); - - // A fallback to window.onload, that will always work - window.addEventListener( "load", completed ); -} - - - - -// Multifunctional method to get and set values of a collection -// The value/s can optionally be executed if it's a function -var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { - var i = 0, - len = elems.length, - bulk = key == null; - - // Sets many values - if ( toType( key ) === "object" ) { - chainable = true; - for ( i in key ) { - access( elems, fn, i, key[ i ], true, emptyGet, raw ); - } - - // Sets one value - } else if ( value !== undefined ) { - chainable = true; - - if ( !isFunction( value ) ) { - raw = true; - } - - if ( bulk ) { - - // Bulk operations run against the entire set - if ( raw ) { - fn.call( elems, value ); - fn = null; - - // ...except when executing function values - } else { - bulk = fn; - fn = function( elem, key, value ) { - return bulk.call( jQuery( elem ), value ); - }; - } - } - - if ( fn ) { - for ( ; i < len; i++ ) { - fn( - elems[ i ], key, raw ? - value : - value.call( elems[ i ], i, fn( elems[ i ], key ) ) - ); - } - } - } - - if ( chainable ) { - return elems; - } - - // Gets - if ( bulk ) { - return fn.call( elems ); - } - - return len ? fn( elems[ 0 ], key ) : emptyGet; -}; - - -// Matches dashed string for camelizing -var rmsPrefix = /^-ms-/, - rdashAlpha = /-([a-z])/g; - -// Used by camelCase as callback to replace() -function fcamelCase( all, letter ) { - return letter.toUpperCase(); -} - -// Convert dashed to camelCase; used by the css and data modules -// Support: IE <=9 - 11, Edge 12 - 15 -// Microsoft forgot to hump their vendor prefix (#9572) -function camelCase( string ) { - return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); -} -var acceptData = function( owner ) { - - // Accepts only: - // - Node - // - Node.ELEMENT_NODE - // - Node.DOCUMENT_NODE - // - Object - // - Any - return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); -}; - - - - -function Data() { - this.expando = jQuery.expando + Data.uid++; -} - -Data.uid = 1; - -Data.prototype = { - - cache: function( owner ) { - - // Check if the owner object already has a cache - var value = owner[ this.expando ]; - - // If not, create one - if ( !value ) { - value = {}; - - // We can accept data for non-element nodes in modern browsers, - // but we should not, see #8335. - // Always return an empty object. - if ( acceptData( owner ) ) { - - // If it is a node unlikely to be stringify-ed or looped over - // use plain assignment - if ( owner.nodeType ) { - owner[ this.expando ] = value; - - // Otherwise secure it in a non-enumerable property - // configurable must be true to allow the property to be - // deleted when data is removed - } else { - Object.defineProperty( owner, this.expando, { - value: value, - configurable: true - } ); - } - } - } - - return value; - }, - set: function( owner, data, value ) { - var prop, - cache = this.cache( owner ); - - // Handle: [ owner, key, value ] args - // Always use camelCase key (gh-2257) - if ( typeof data === "string" ) { - cache[ camelCase( data ) ] = value; - - // Handle: [ owner, { properties } ] args - } else { - - // Copy the properties one-by-one to the cache object - for ( prop in data ) { - cache[ camelCase( prop ) ] = data[ prop ]; - } - } - return cache; - }, - get: function( owner, key ) { - return key === undefined ? - this.cache( owner ) : - - // Always use camelCase key (gh-2257) - owner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ]; - }, - access: function( owner, key, value ) { - - // In cases where either: - // - // 1. No key was specified - // 2. A string key was specified, but no value provided - // - // Take the "read" path and allow the get method to determine - // which value to return, respectively either: - // - // 1. The entire cache object - // 2. The data stored at the key - // - if ( key === undefined || - ( ( key && typeof key === "string" ) && value === undefined ) ) { - - return this.get( owner, key ); - } - - // When the key is not a string, or both a key and value - // are specified, set or extend (existing objects) with either: - // - // 1. An object of properties - // 2. A key and value - // - this.set( owner, key, value ); - - // Since the "set" path can have two possible entry points - // return the expected data based on which path was taken[*] - return value !== undefined ? value : key; - }, - remove: function( owner, key ) { - var i, - cache = owner[ this.expando ]; - - if ( cache === undefined ) { - return; - } - - if ( key !== undefined ) { - - // Support array or space separated string of keys - if ( Array.isArray( key ) ) { - - // If key is an array of keys... - // We always set camelCase keys, so remove that. - key = key.map( camelCase ); - } else { - key = camelCase( key ); - - // If a key with the spaces exists, use it. - // Otherwise, create an array by matching non-whitespace - key = key in cache ? - [ key ] : - ( key.match( rnothtmlwhite ) || [] ); - } - - i = key.length; - - while ( i-- ) { - delete cache[ key[ i ] ]; - } - } - - // Remove the expando if there's no more data - if ( key === undefined || jQuery.isEmptyObject( cache ) ) { - - // Support: Chrome <=35 - 45 - // Webkit & Blink performance suffers when deleting properties - // from DOM nodes, so set to undefined instead - // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted) - if ( owner.nodeType ) { - owner[ this.expando ] = undefined; - } else { - delete owner[ this.expando ]; - } - } - }, - hasData: function( owner ) { - var cache = owner[ this.expando ]; - return cache !== undefined && !jQuery.isEmptyObject( cache ); - } -}; -var dataPriv = new Data(); - -var dataUser = new Data(); - - - -// Implementation Summary -// -// 1. Enforce API surface and semantic compatibility with 1.9.x branch -// 2. Improve the module's maintainability by reducing the storage -// paths to a single mechanism. -// 3. Use the same single mechanism to support "private" and "user" data. -// 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData) -// 5. Avoid exposing implementation details on user objects (eg. expando properties) -// 6. Provide a clear path for implementation upgrade to WeakMap in 2014 - -var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, - rmultiDash = /[A-Z]/g; - -function getData( data ) { - if ( data === "true" ) { - return true; - } - - if ( data === "false" ) { - return false; - } - - if ( data === "null" ) { - return null; - } - - // Only convert to a number if it doesn't change the string - if ( data === +data + "" ) { - return +data; - } - - if ( rbrace.test( data ) ) { - return JSON.parse( data ); - } - - return data; -} - -function dataAttr( elem, key, data ) { - var name; - - // If nothing was found internally, try to fetch any - // data from the HTML5 data-* attribute - if ( data === undefined && elem.nodeType === 1 ) { - name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase(); - data = elem.getAttribute( name ); - - if ( typeof data === "string" ) { - try { - data = getData( data ); - } catch ( e ) {} - - // Make sure we set the data so it isn't changed later - dataUser.set( elem, key, data ); - } else { - data = undefined; - } - } - return data; -} - -jQuery.extend( { - hasData: function( elem ) { - return dataUser.hasData( elem ) || dataPriv.hasData( elem ); - }, - - data: function( elem, name, data ) { - return dataUser.access( elem, name, data ); - }, - - removeData: function( elem, name ) { - dataUser.remove( elem, name ); - }, - - // TODO: Now that all calls to _data and _removeData have been replaced - // with direct calls to dataPriv methods, these can be deprecated. - _data: function( elem, name, data ) { - return dataPriv.access( elem, name, data ); - }, - - _removeData: function( elem, name ) { - dataPriv.remove( elem, name ); - } -} ); - -jQuery.fn.extend( { - data: function( key, value ) { - var i, name, data, - elem = this[ 0 ], - attrs = elem && elem.attributes; - - // Gets all values - if ( key === undefined ) { - if ( this.length ) { - data = dataUser.get( elem ); - - if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) { - i = attrs.length; - while ( i-- ) { - - // Support: IE 11 only - // The attrs elements can be null (#14894) - if ( attrs[ i ] ) { - name = attrs[ i ].name; - if ( name.indexOf( "data-" ) === 0 ) { - name = camelCase( name.slice( 5 ) ); - dataAttr( elem, name, data[ name ] ); - } - } - } - dataPriv.set( elem, "hasDataAttrs", true ); - } - } - - return data; - } - - // Sets multiple values - if ( typeof key === "object" ) { - return this.each( function() { - dataUser.set( this, key ); - } ); - } - - return access( this, function( value ) { - var data; - - // The calling jQuery object (element matches) is not empty - // (and therefore has an element appears at this[ 0 ]) and the - // `value` parameter was not undefined. An empty jQuery object - // will result in `undefined` for elem = this[ 0 ] which will - // throw an exception if an attempt to read a data cache is made. - if ( elem && value === undefined ) { - - // Attempt to get data from the cache - // The key will always be camelCased in Data - data = dataUser.get( elem, key ); - if ( data !== undefined ) { - return data; - } - - // Attempt to "discover" the data in - // HTML5 custom data-* attrs - data = dataAttr( elem, key ); - if ( data !== undefined ) { - return data; - } - - // We tried really hard, but the data doesn't exist. - return; - } - - // Set the data... - this.each( function() { - - // We always store the camelCased key - dataUser.set( this, key, value ); - } ); - }, null, value, arguments.length > 1, null, true ); - }, - - removeData: function( key ) { - return this.each( function() { - dataUser.remove( this, key ); - } ); - } -} ); - - -jQuery.extend( { - queue: function( elem, type, data ) { - var queue; - - if ( elem ) { - type = ( type || "fx" ) + "queue"; - queue = dataPriv.get( elem, type ); - - // Speed up dequeue by getting out quickly if this is just a lookup - if ( data ) { - if ( !queue || Array.isArray( data ) ) { - queue = dataPriv.access( elem, type, jQuery.makeArray( data ) ); - } else { - queue.push( data ); - } - } - return queue || []; - } - }, - - dequeue: function( elem, type ) { - type = type || "fx"; - - var queue = jQuery.queue( elem, type ), - startLength = queue.length, - fn = queue.shift(), - hooks = jQuery._queueHooks( elem, type ), - next = function() { - jQuery.dequeue( elem, type ); - }; - - // If the fx queue is dequeued, always remove the progress sentinel - if ( fn === "inprogress" ) { - fn = queue.shift(); - startLength--; - } - - if ( fn ) { - - // Add a progress sentinel to prevent the fx queue from being - // automatically dequeued - if ( type === "fx" ) { - queue.unshift( "inprogress" ); - } - - // Clear up the last queue stop function - delete hooks.stop; - fn.call( elem, next, hooks ); - } - - if ( !startLength && hooks ) { - hooks.empty.fire(); - } - }, - - // Not public - generate a queueHooks object, or return the current one - _queueHooks: function( elem, type ) { - var key = type + "queueHooks"; - return dataPriv.get( elem, key ) || dataPriv.access( elem, key, { - empty: jQuery.Callbacks( "once memory" ).add( function() { - dataPriv.remove( elem, [ type + "queue", key ] ); - } ) - } ); - } -} ); - -jQuery.fn.extend( { - queue: function( type, data ) { - var setter = 2; - - if ( typeof type !== "string" ) { - data = type; - type = "fx"; - setter--; - } - - if ( arguments.length < setter ) { - return jQuery.queue( this[ 0 ], type ); - } - - return data === undefined ? - this : - this.each( function() { - var queue = jQuery.queue( this, type, data ); - - // Ensure a hooks for this queue - jQuery._queueHooks( this, type ); - - if ( type === "fx" && queue[ 0 ] !== "inprogress" ) { - jQuery.dequeue( this, type ); - } - } ); - }, - dequeue: function( type ) { - return this.each( function() { - jQuery.dequeue( this, type ); - } ); - }, - clearQueue: function( type ) { - return this.queue( type || "fx", [] ); - }, - - // Get a promise resolved when queues of a certain type - // are emptied (fx is the type by default) - promise: function( type, obj ) { - var tmp, - count = 1, - defer = jQuery.Deferred(), - elements = this, - i = this.length, - resolve = function() { - if ( !( --count ) ) { - defer.resolveWith( elements, [ elements ] ); - } - }; - - if ( typeof type !== "string" ) { - obj = type; - type = undefined; - } - type = type || "fx"; - - while ( i-- ) { - tmp = dataPriv.get( elements[ i ], type + "queueHooks" ); - if ( tmp && tmp.empty ) { - count++; - tmp.empty.add( resolve ); - } - } - resolve(); - return defer.promise( obj ); - } -} ); -var pnum = ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source; - -var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ); - - -var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; - -var documentElement = document.documentElement; - - - - var isAttached = function( elem ) { - return jQuery.contains( elem.ownerDocument, elem ); - }, - composed = { composed: true }; - - // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only - // Check attachment across shadow DOM boundaries when possible (gh-3504) - // Support: iOS 10.0-10.2 only - // Early iOS 10 versions support `attachShadow` but not `getRootNode`, - // leading to errors. We need to check for `getRootNode`. - if ( documentElement.getRootNode ) { - isAttached = function( elem ) { - return jQuery.contains( elem.ownerDocument, elem ) || - elem.getRootNode( composed ) === elem.ownerDocument; - }; - } -var isHiddenWithinTree = function( elem, el ) { - - // isHiddenWithinTree might be called from jQuery#filter function; - // in that case, element will be second argument - elem = el || elem; - - // Inline style trumps all - return elem.style.display === "none" || - elem.style.display === "" && - - // Otherwise, check computed style - // Support: Firefox <=43 - 45 - // Disconnected elements can have computed display: none, so first confirm that elem is - // in the document. - isAttached( elem ) && - - jQuery.css( elem, "display" ) === "none"; - }; - -var swap = function( elem, options, callback, args ) { - var ret, name, - old = {}; - - // Remember the old values, and insert the new ones - for ( name in options ) { - old[ name ] = elem.style[ name ]; - elem.style[ name ] = options[ name ]; - } - - ret = callback.apply( elem, args || [] ); - - // Revert the old values - for ( name in options ) { - elem.style[ name ] = old[ name ]; - } - - return ret; -}; - - - - -function adjustCSS( elem, prop, valueParts, tween ) { - var adjusted, scale, - maxIterations = 20, - currentValue = tween ? - function() { - return tween.cur(); - } : - function() { - return jQuery.css( elem, prop, "" ); - }, - initial = currentValue(), - unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), - - // Starting value computation is required for potential unit mismatches - initialInUnit = elem.nodeType && - ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) && - rcssNum.exec( jQuery.css( elem, prop ) ); - - if ( initialInUnit && initialInUnit[ 3 ] !== unit ) { - - // Support: Firefox <=54 - // Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144) - initial = initial / 2; - - // Trust units reported by jQuery.css - unit = unit || initialInUnit[ 3 ]; - - // Iteratively approximate from a nonzero starting point - initialInUnit = +initial || 1; - - while ( maxIterations-- ) { - - // Evaluate and update our best guess (doubling guesses that zero out). - // Finish if the scale equals or crosses 1 (making the old*new product non-positive). - jQuery.style( elem, prop, initialInUnit + unit ); - if ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) { - maxIterations = 0; - } - initialInUnit = initialInUnit / scale; - - } - - initialInUnit = initialInUnit * 2; - jQuery.style( elem, prop, initialInUnit + unit ); - - // Make sure we update the tween properties later on - valueParts = valueParts || []; - } - - if ( valueParts ) { - initialInUnit = +initialInUnit || +initial || 0; - - // Apply relative offset (+=/-=) if specified - adjusted = valueParts[ 1 ] ? - initialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] : - +valueParts[ 2 ]; - if ( tween ) { - tween.unit = unit; - tween.start = initialInUnit; - tween.end = adjusted; - } - } - return adjusted; -} - - -var defaultDisplayMap = {}; - -function getDefaultDisplay( elem ) { - var temp, - doc = elem.ownerDocument, - nodeName = elem.nodeName, - display = defaultDisplayMap[ nodeName ]; - - if ( display ) { - return display; - } - - temp = doc.body.appendChild( doc.createElement( nodeName ) ); - display = jQuery.css( temp, "display" ); - - temp.parentNode.removeChild( temp ); - - if ( display === "none" ) { - display = "block"; - } - defaultDisplayMap[ nodeName ] = display; - - return display; -} - -function showHide( elements, show ) { - var display, elem, - values = [], - index = 0, - length = elements.length; - - // Determine new display value for elements that need to change - for ( ; index < length; index++ ) { - elem = elements[ index ]; - if ( !elem.style ) { - continue; - } - - display = elem.style.display; - if ( show ) { - - // Since we force visibility upon cascade-hidden elements, an immediate (and slow) - // check is required in this first loop unless we have a nonempty display value (either - // inline or about-to-be-restored) - if ( display === "none" ) { - values[ index ] = dataPriv.get( elem, "display" ) || null; - if ( !values[ index ] ) { - elem.style.display = ""; - } - } - if ( elem.style.display === "" && isHiddenWithinTree( elem ) ) { - values[ index ] = getDefaultDisplay( elem ); - } - } else { - if ( display !== "none" ) { - values[ index ] = "none"; - - // Remember what we're overwriting - dataPriv.set( elem, "display", display ); - } - } - } - - // Set the display of the elements in a second loop to avoid constant reflow - for ( index = 0; index < length; index++ ) { - if ( values[ index ] != null ) { - elements[ index ].style.display = values[ index ]; - } - } - - return elements; -} - -jQuery.fn.extend( { - show: function() { - return showHide( this, true ); - }, - hide: function() { - return showHide( this ); - }, - toggle: function( state ) { - if ( typeof state === "boolean" ) { - return state ? this.show() : this.hide(); - } - - return this.each( function() { - if ( isHiddenWithinTree( this ) ) { - jQuery( this ).show(); - } else { - jQuery( this ).hide(); - } - } ); - } -} ); -var rcheckableType = ( /^(?:checkbox|radio)$/i ); - -var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]*)/i ); - -var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i ); - - - -// We have to close these tags to support XHTML (#13200) -var wrapMap = { - - // Support: IE <=9 only - option: [ 1, "" ], - - // XHTML parsers do not magically insert elements in the - // same way that tag soup parsers do. So we cannot shorten - // this by omitting or other required elements. - thead: [ 1, "", "
    " ], - col: [ 2, "", "
    " ], - tr: [ 2, "", "
    " ], - td: [ 3, "", "
    " ], - - _default: [ 0, "", "" ] -}; - -// Support: IE <=9 only -wrapMap.optgroup = wrapMap.option; - -wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; -wrapMap.th = wrapMap.td; - - -function getAll( context, tag ) { - - // Support: IE <=9 - 11 only - // Use typeof to avoid zero-argument method invocation on host objects (#15151) - var ret; - - if ( typeof context.getElementsByTagName !== "undefined" ) { - ret = context.getElementsByTagName( tag || "*" ); - - } else if ( typeof context.querySelectorAll !== "undefined" ) { - ret = context.querySelectorAll( tag || "*" ); - - } else { - ret = []; - } - - if ( tag === undefined || tag && nodeName( context, tag ) ) { - return jQuery.merge( [ context ], ret ); - } - - return ret; -} - - -// Mark scripts as having already been evaluated -function setGlobalEval( elems, refElements ) { - var i = 0, - l = elems.length; - - for ( ; i < l; i++ ) { - dataPriv.set( - elems[ i ], - "globalEval", - !refElements || dataPriv.get( refElements[ i ], "globalEval" ) - ); - } -} - - -var rhtml = /<|&#?\w+;/; - -function buildFragment( elems, context, scripts, selection, ignored ) { - var elem, tmp, tag, wrap, attached, j, - fragment = context.createDocumentFragment(), - nodes = [], - i = 0, - l = elems.length; - - for ( ; i < l; i++ ) { - elem = elems[ i ]; - - if ( elem || elem === 0 ) { - - // Add nodes directly - if ( toType( elem ) === "object" ) { - - // Support: Android <=4.0 only, PhantomJS 1 only - // push.apply(_, arraylike) throws on ancient WebKit - jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); - - // Convert non-html into a text node - } else if ( !rhtml.test( elem ) ) { - nodes.push( context.createTextNode( elem ) ); - - // Convert html into DOM nodes - } else { - tmp = tmp || fragment.appendChild( context.createElement( "div" ) ); - - // Deserialize a standard representation - tag = ( rtagName.exec( elem ) || [ "", "" ] )[ 1 ].toLowerCase(); - wrap = wrapMap[ tag ] || wrapMap._default; - tmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ]; - - // Descend through wrappers to the right content - j = wrap[ 0 ]; - while ( j-- ) { - tmp = tmp.lastChild; - } - - // Support: Android <=4.0 only, PhantomJS 1 only - // push.apply(_, arraylike) throws on ancient WebKit - jQuery.merge( nodes, tmp.childNodes ); - - // Remember the top-level container - tmp = fragment.firstChild; - - // Ensure the created nodes are orphaned (#12392) - tmp.textContent = ""; - } - } - } - - // Remove wrapper from fragment - fragment.textContent = ""; - - i = 0; - while ( ( elem = nodes[ i++ ] ) ) { - - // Skip elements already in the context collection (trac-4087) - if ( selection && jQuery.inArray( elem, selection ) > -1 ) { - if ( ignored ) { - ignored.push( elem ); - } - continue; - } - - attached = isAttached( elem ); - - // Append to fragment - tmp = getAll( fragment.appendChild( elem ), "script" ); - - // Preserve script evaluation history - if ( attached ) { - setGlobalEval( tmp ); - } - - // Capture executables - if ( scripts ) { - j = 0; - while ( ( elem = tmp[ j++ ] ) ) { - if ( rscriptType.test( elem.type || "" ) ) { - scripts.push( elem ); - } - } - } - } - - return fragment; -} - - -( function() { - var fragment = document.createDocumentFragment(), - div = fragment.appendChild( document.createElement( "div" ) ), - input = document.createElement( "input" ); - - // Support: Android 4.0 - 4.3 only - // Check state lost if the name is set (#11217) - // Support: Windows Web Apps (WWA) - // `name` and `type` must use .setAttribute for WWA (#14901) - input.setAttribute( "type", "radio" ); - input.setAttribute( "checked", "checked" ); - input.setAttribute( "name", "t" ); - - div.appendChild( input ); - - // Support: Android <=4.1 only - // Older WebKit doesn't clone checked state correctly in fragments - support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; - - // Support: IE <=11 only - // Make sure textarea (and checkbox) defaultValue is properly cloned - div.innerHTML = ""; - support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; -} )(); - - -var - rkeyEvent = /^key/, - rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, - rtypenamespace = /^([^.]*)(?:\.(.+)|)/; - -function returnTrue() { - return true; -} - -function returnFalse() { - return false; -} - -// Support: IE <=9 - 11+ -// focus() and blur() are asynchronous, except when they are no-op. -// So expect focus to be synchronous when the element is already active, -// and blur to be synchronous when the element is not already active. -// (focus and blur are always synchronous in other supported browsers, -// this just defines when we can count on it). -function expectSync( elem, type ) { - return ( elem === safeActiveElement() ) === ( type === "focus" ); -} - -// Support: IE <=9 only -// Accessing document.activeElement can throw unexpectedly -// https://bugs.jquery.com/ticket/13393 -function safeActiveElement() { - try { - return document.activeElement; - } catch ( err ) { } -} - -function on( elem, types, selector, data, fn, one ) { - var origFn, type; - - // Types can be a map of types/handlers - if ( typeof types === "object" ) { - - // ( types-Object, selector, data ) - if ( typeof selector !== "string" ) { - - // ( types-Object, data ) - data = data || selector; - selector = undefined; - } - for ( type in types ) { - on( elem, type, selector, data, types[ type ], one ); - } - return elem; - } - - if ( data == null && fn == null ) { - - // ( types, fn ) - fn = selector; - data = selector = undefined; - } else if ( fn == null ) { - if ( typeof selector === "string" ) { - - // ( types, selector, fn ) - fn = data; - data = undefined; - } else { - - // ( types, data, fn ) - fn = data; - data = selector; - selector = undefined; - } - } - if ( fn === false ) { - fn = returnFalse; - } else if ( !fn ) { - return elem; - } - - if ( one === 1 ) { - origFn = fn; - fn = function( event ) { - - // Can use an empty set, since event contains the info - jQuery().off( event ); - return origFn.apply( this, arguments ); - }; - - // Use same guid so caller can remove using origFn - fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); - } - return elem.each( function() { - jQuery.event.add( this, types, fn, data, selector ); - } ); -} - -/* - * Helper functions for managing events -- not part of the public interface. - * Props to Dean Edwards' addEvent library for many of the ideas. - */ -jQuery.event = { - - global: {}, - - add: function( elem, types, handler, data, selector ) { - - var handleObjIn, eventHandle, tmp, - events, t, handleObj, - special, handlers, type, namespaces, origType, - elemData = dataPriv.get( elem ); - - // Don't attach events to noData or text/comment nodes (but allow plain objects) - if ( !elemData ) { - return; - } - - // Caller can pass in an object of custom data in lieu of the handler - if ( handler.handler ) { - handleObjIn = handler; - handler = handleObjIn.handler; - selector = handleObjIn.selector; - } - - // Ensure that invalid selectors throw exceptions at attach time - // Evaluate against documentElement in case elem is a non-element node (e.g., document) - if ( selector ) { - jQuery.find.matchesSelector( documentElement, selector ); - } - - // Make sure that the handler has a unique ID, used to find/remove it later - if ( !handler.guid ) { - handler.guid = jQuery.guid++; - } - - // Init the element's event structure and main handler, if this is the first - if ( !( events = elemData.events ) ) { - events = elemData.events = {}; - } - if ( !( eventHandle = elemData.handle ) ) { - eventHandle = elemData.handle = function( e ) { - - // Discard the second event of a jQuery.event.trigger() and - // when an event is called after a page has unloaded - return typeof jQuery !== "undefined" && jQuery.event.triggered !== e.type ? - jQuery.event.dispatch.apply( elem, arguments ) : undefined; - }; - } - - // Handle multiple events separated by a space - types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; - t = types.length; - while ( t-- ) { - tmp = rtypenamespace.exec( types[ t ] ) || []; - type = origType = tmp[ 1 ]; - namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); - - // There *must* be a type, no attaching namespace-only handlers - if ( !type ) { - continue; - } - - // If event changes its type, use the special event handlers for the changed type - special = jQuery.event.special[ type ] || {}; - - // If selector defined, determine special event api type, otherwise given type - type = ( selector ? special.delegateType : special.bindType ) || type; - - // Update special based on newly reset type - special = jQuery.event.special[ type ] || {}; - - // handleObj is passed to all event handlers - handleObj = jQuery.extend( { - type: type, - origType: origType, - data: data, - handler: handler, - guid: handler.guid, - selector: selector, - needsContext: selector && jQuery.expr.match.needsContext.test( selector ), - namespace: namespaces.join( "." ) - }, handleObjIn ); - - // Init the event handler queue if we're the first - if ( !( handlers = events[ type ] ) ) { - handlers = events[ type ] = []; - handlers.delegateCount = 0; - - // Only use addEventListener if the special events handler returns false - if ( !special.setup || - special.setup.call( elem, data, namespaces, eventHandle ) === false ) { - - if ( elem.addEventListener ) { - elem.addEventListener( type, eventHandle ); - } - } - } - - if ( special.add ) { - special.add.call( elem, handleObj ); - - if ( !handleObj.handler.guid ) { - handleObj.handler.guid = handler.guid; - } - } - - // Add to the element's handler list, delegates in front - if ( selector ) { - handlers.splice( handlers.delegateCount++, 0, handleObj ); - } else { - handlers.push( handleObj ); - } - - // Keep track of which events have ever been used, for event optimization - jQuery.event.global[ type ] = true; - } - - }, - - // Detach an event or set of events from an element - remove: function( elem, types, handler, selector, mappedTypes ) { - - var j, origCount, tmp, - events, t, handleObj, - special, handlers, type, namespaces, origType, - elemData = dataPriv.hasData( elem ) && dataPriv.get( elem ); - - if ( !elemData || !( events = elemData.events ) ) { - return; - } - - // Once for each type.namespace in types; type may be omitted - types = ( types || "" ).match( rnothtmlwhite ) || [ "" ]; - t = types.length; - while ( t-- ) { - tmp = rtypenamespace.exec( types[ t ] ) || []; - type = origType = tmp[ 1 ]; - namespaces = ( tmp[ 2 ] || "" ).split( "." ).sort(); - - // Unbind all events (on this namespace, if provided) for the element - if ( !type ) { - for ( type in events ) { - jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); - } - continue; - } - - special = jQuery.event.special[ type ] || {}; - type = ( selector ? special.delegateType : special.bindType ) || type; - handlers = events[ type ] || []; - tmp = tmp[ 2 ] && - new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ); - - // Remove matching events - origCount = j = handlers.length; - while ( j-- ) { - handleObj = handlers[ j ]; - - if ( ( mappedTypes || origType === handleObj.origType ) && - ( !handler || handler.guid === handleObj.guid ) && - ( !tmp || tmp.test( handleObj.namespace ) ) && - ( !selector || selector === handleObj.selector || - selector === "**" && handleObj.selector ) ) { - handlers.splice( j, 1 ); - - if ( handleObj.selector ) { - handlers.delegateCount--; - } - if ( special.remove ) { - special.remove.call( elem, handleObj ); - } - } - } - - // Remove generic event handler if we removed something and no more handlers exist - // (avoids potential for endless recursion during removal of special event handlers) - if ( origCount && !handlers.length ) { - if ( !special.teardown || - special.teardown.call( elem, namespaces, elemData.handle ) === false ) { - - jQuery.removeEvent( elem, type, elemData.handle ); - } - - delete events[ type ]; - } - } - - // Remove data and the expando if it's no longer used - if ( jQuery.isEmptyObject( events ) ) { - dataPriv.remove( elem, "handle events" ); - } - }, - - dispatch: function( nativeEvent ) { - - // Make a writable jQuery.Event from the native event object - var event = jQuery.event.fix( nativeEvent ); - - var i, j, ret, matched, handleObj, handlerQueue, - args = new Array( arguments.length ), - handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [], - special = jQuery.event.special[ event.type ] || {}; - - // Use the fix-ed jQuery.Event rather than the (read-only) native event - args[ 0 ] = event; - - for ( i = 1; i < arguments.length; i++ ) { - args[ i ] = arguments[ i ]; - } - - event.delegateTarget = this; - - // Call the preDispatch hook for the mapped type, and let it bail if desired - if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { - return; - } - - // Determine handlers - handlerQueue = jQuery.event.handlers.call( this, event, handlers ); - - // Run delegates first; they may want to stop propagation beneath us - i = 0; - while ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) { - event.currentTarget = matched.elem; - - j = 0; - while ( ( handleObj = matched.handlers[ j++ ] ) && - !event.isImmediatePropagationStopped() ) { - - // If the event is namespaced, then each handler is only invoked if it is - // specially universal or its namespaces are a superset of the event's. - if ( !event.rnamespace || handleObj.namespace === false || - event.rnamespace.test( handleObj.namespace ) ) { - - event.handleObj = handleObj; - event.data = handleObj.data; - - ret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle || - handleObj.handler ).apply( matched.elem, args ); - - if ( ret !== undefined ) { - if ( ( event.result = ret ) === false ) { - event.preventDefault(); - event.stopPropagation(); - } - } - } - } - } - - // Call the postDispatch hook for the mapped type - if ( special.postDispatch ) { - special.postDispatch.call( this, event ); - } - - return event.result; - }, - - handlers: function( event, handlers ) { - var i, handleObj, sel, matchedHandlers, matchedSelectors, - handlerQueue = [], - delegateCount = handlers.delegateCount, - cur = event.target; - - // Find delegate handlers - if ( delegateCount && - - // Support: IE <=9 - // Black-hole SVG instance trees (trac-13180) - cur.nodeType && - - // Support: Firefox <=42 - // Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861) - // https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click - // Support: IE 11 only - // ...but not arrow key "clicks" of radio inputs, which can have `button` -1 (gh-2343) - !( event.type === "click" && event.button >= 1 ) ) { - - for ( ; cur !== this; cur = cur.parentNode || this ) { - - // Don't check non-elements (#13208) - // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) - if ( cur.nodeType === 1 && !( event.type === "click" && cur.disabled === true ) ) { - matchedHandlers = []; - matchedSelectors = {}; - for ( i = 0; i < delegateCount; i++ ) { - handleObj = handlers[ i ]; - - // Don't conflict with Object.prototype properties (#13203) - sel = handleObj.selector + " "; - - if ( matchedSelectors[ sel ] === undefined ) { - matchedSelectors[ sel ] = handleObj.needsContext ? - jQuery( sel, this ).index( cur ) > -1 : - jQuery.find( sel, this, null, [ cur ] ).length; - } - if ( matchedSelectors[ sel ] ) { - matchedHandlers.push( handleObj ); - } - } - if ( matchedHandlers.length ) { - handlerQueue.push( { elem: cur, handlers: matchedHandlers } ); - } - } - } - } - - // Add the remaining (directly-bound) handlers - cur = this; - if ( delegateCount < handlers.length ) { - handlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } ); - } - - return handlerQueue; - }, - - addProp: function( name, hook ) { - Object.defineProperty( jQuery.Event.prototype, name, { - enumerable: true, - configurable: true, - - get: isFunction( hook ) ? - function() { - if ( this.originalEvent ) { - return hook( this.originalEvent ); - } - } : - function() { - if ( this.originalEvent ) { - return this.originalEvent[ name ]; - } - }, - - set: function( value ) { - Object.defineProperty( this, name, { - enumerable: true, - configurable: true, - writable: true, - value: value - } ); - } - } ); - }, - - fix: function( originalEvent ) { - return originalEvent[ jQuery.expando ] ? - originalEvent : - new jQuery.Event( originalEvent ); - }, - - special: { - load: { - - // Prevent triggered image.load events from bubbling to window.load - noBubble: true - }, - click: { - - // Utilize native event to ensure correct state for checkable inputs - setup: function( data ) { - - // For mutual compressibility with _default, replace `this` access with a local var. - // `|| data` is dead code meant only to preserve the variable through minification. - var el = this || data; - - // Claim the first handler - if ( rcheckableType.test( el.type ) && - el.click && nodeName( el, "input" ) ) { - - // dataPriv.set( el, "click", ... ) - leverageNative( el, "click", returnTrue ); - } - - // Return false to allow normal processing in the caller - return false; - }, - trigger: function( data ) { - - // For mutual compressibility with _default, replace `this` access with a local var. - // `|| data` is dead code meant only to preserve the variable through minification. - var el = this || data; - - // Force setup before triggering a click - if ( rcheckableType.test( el.type ) && - el.click && nodeName( el, "input" ) ) { - - leverageNative( el, "click" ); - } - - // Return non-false to allow normal event-path propagation - return true; - }, - - // For cross-browser consistency, suppress native .click() on links - // Also prevent it if we're currently inside a leveraged native-event stack - _default: function( event ) { - var target = event.target; - return rcheckableType.test( target.type ) && - target.click && nodeName( target, "input" ) && - dataPriv.get( target, "click" ) || - nodeName( target, "a" ); - } - }, - - beforeunload: { - postDispatch: function( event ) { - - // Support: Firefox 20+ - // Firefox doesn't alert if the returnValue field is not set. - if ( event.result !== undefined && event.originalEvent ) { - event.originalEvent.returnValue = event.result; - } - } - } - } -}; - -// Ensure the presence of an event listener that handles manually-triggered -// synthetic events by interrupting progress until reinvoked in response to -// *native* events that it fires directly, ensuring that state changes have -// already occurred before other listeners are invoked. -function leverageNative( el, type, expectSync ) { - - // Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add - if ( !expectSync ) { - if ( dataPriv.get( el, type ) === undefined ) { - jQuery.event.add( el, type, returnTrue ); - } - return; - } - - // Register the controller as a special universal handler for all event namespaces - dataPriv.set( el, type, false ); - jQuery.event.add( el, type, { - namespace: false, - handler: function( event ) { - var notAsync, result, - saved = dataPriv.get( this, type ); - - if ( ( event.isTrigger & 1 ) && this[ type ] ) { - - // Interrupt processing of the outer synthetic .trigger()ed event - // Saved data should be false in such cases, but might be a leftover capture object - // from an async native handler (gh-4350) - if ( !saved.length ) { - - // Store arguments for use when handling the inner native event - // There will always be at least one argument (an event object), so this array - // will not be confused with a leftover capture object. - saved = slice.call( arguments ); - dataPriv.set( this, type, saved ); - - // Trigger the native event and capture its result - // Support: IE <=9 - 11+ - // focus() and blur() are asynchronous - notAsync = expectSync( this, type ); - this[ type ](); - result = dataPriv.get( this, type ); - if ( saved !== result || notAsync ) { - dataPriv.set( this, type, false ); - } else { - result = {}; - } - if ( saved !== result ) { - - // Cancel the outer synthetic event - event.stopImmediatePropagation(); - event.preventDefault(); - return result.value; - } - - // If this is an inner synthetic event for an event with a bubbling surrogate - // (focus or blur), assume that the surrogate already propagated from triggering the - // native event and prevent that from happening again here. - // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the - // bubbling surrogate propagates *after* the non-bubbling base), but that seems - // less bad than duplication. - } else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) { - event.stopPropagation(); - } - - // If this is a native event triggered above, everything is now in order - // Fire an inner synthetic event with the original arguments - } else if ( saved.length ) { - - // ...and capture the result - dataPriv.set( this, type, { - value: jQuery.event.trigger( - - // Support: IE <=9 - 11+ - // Extend with the prototype to reset the above stopImmediatePropagation() - jQuery.extend( saved[ 0 ], jQuery.Event.prototype ), - saved.slice( 1 ), - this - ) - } ); - - // Abort handling of the native event - event.stopImmediatePropagation(); - } - } - } ); -} - -jQuery.removeEvent = function( elem, type, handle ) { - - // This "if" is needed for plain objects - if ( elem.removeEventListener ) { - elem.removeEventListener( type, handle ); - } -}; - -jQuery.Event = function( src, props ) { - - // Allow instantiation without the 'new' keyword - if ( !( this instanceof jQuery.Event ) ) { - return new jQuery.Event( src, props ); - } - - // Event object - if ( src && src.type ) { - this.originalEvent = src; - this.type = src.type; - - // Events bubbling up the document may have been marked as prevented - // by a handler lower down the tree; reflect the correct value. - this.isDefaultPrevented = src.defaultPrevented || - src.defaultPrevented === undefined && - - // Support: Android <=2.3 only - src.returnValue === false ? - returnTrue : - returnFalse; - - // Create target properties - // Support: Safari <=6 - 7 only - // Target should not be a text node (#504, #13143) - this.target = ( src.target && src.target.nodeType === 3 ) ? - src.target.parentNode : - src.target; - - this.currentTarget = src.currentTarget; - this.relatedTarget = src.relatedTarget; - - // Event type - } else { - this.type = src; - } - - // Put explicitly provided properties onto the event object - if ( props ) { - jQuery.extend( this, props ); - } - - // Create a timestamp if incoming event doesn't have one - this.timeStamp = src && src.timeStamp || Date.now(); - - // Mark it as fixed - this[ jQuery.expando ] = true; -}; - -// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding -// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html -jQuery.Event.prototype = { - constructor: jQuery.Event, - isDefaultPrevented: returnFalse, - isPropagationStopped: returnFalse, - isImmediatePropagationStopped: returnFalse, - isSimulated: false, - - preventDefault: function() { - var e = this.originalEvent; - - this.isDefaultPrevented = returnTrue; - - if ( e && !this.isSimulated ) { - e.preventDefault(); - } - }, - stopPropagation: function() { - var e = this.originalEvent; - - this.isPropagationStopped = returnTrue; - - if ( e && !this.isSimulated ) { - e.stopPropagation(); - } - }, - stopImmediatePropagation: function() { - var e = this.originalEvent; - - this.isImmediatePropagationStopped = returnTrue; - - if ( e && !this.isSimulated ) { - e.stopImmediatePropagation(); - } - - this.stopPropagation(); - } -}; - -// Includes all common event props including KeyEvent and MouseEvent specific props -jQuery.each( { - altKey: true, - bubbles: true, - cancelable: true, - changedTouches: true, - ctrlKey: true, - detail: true, - eventPhase: true, - metaKey: true, - pageX: true, - pageY: true, - shiftKey: true, - view: true, - "char": true, - code: true, - charCode: true, - key: true, - keyCode: true, - button: true, - buttons: true, - clientX: true, - clientY: true, - offsetX: true, - offsetY: true, - pointerId: true, - pointerType: true, - screenX: true, - screenY: true, - targetTouches: true, - toElement: true, - touches: true, - - which: function( event ) { - var button = event.button; - - // Add which for key events - if ( event.which == null && rkeyEvent.test( event.type ) ) { - return event.charCode != null ? event.charCode : event.keyCode; - } - - // Add which for click: 1 === left; 2 === middle; 3 === right - if ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) { - if ( button & 1 ) { - return 1; - } - - if ( button & 2 ) { - return 3; - } - - if ( button & 4 ) { - return 2; - } - - return 0; - } - - return event.which; - } -}, jQuery.event.addProp ); - -jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) { - jQuery.event.special[ type ] = { - - // Utilize native event if possible so blur/focus sequence is correct - setup: function() { - - // Claim the first handler - // dataPriv.set( this, "focus", ... ) - // dataPriv.set( this, "blur", ... ) - leverageNative( this, type, expectSync ); - - // Return false to allow normal processing in the caller - return false; - }, - trigger: function() { - - // Force setup before trigger - leverageNative( this, type ); - - // Return non-false to allow normal event-path propagation - return true; - }, - - delegateType: delegateType - }; -} ); - -// Create mouseenter/leave events using mouseover/out and event-time checks -// so that event delegation works in jQuery. -// Do the same for pointerenter/pointerleave and pointerover/pointerout -// -// Support: Safari 7 only -// Safari sends mouseenter too often; see: -// https://bugs.chromium.org/p/chromium/issues/detail?id=470258 -// for the description of the bug (it existed in older Chrome versions as well). -jQuery.each( { - mouseenter: "mouseover", - mouseleave: "mouseout", - pointerenter: "pointerover", - pointerleave: "pointerout" -}, function( orig, fix ) { - jQuery.event.special[ orig ] = { - delegateType: fix, - bindType: fix, - - handle: function( event ) { - var ret, - target = this, - related = event.relatedTarget, - handleObj = event.handleObj; - - // For mouseenter/leave call the handler if related is outside the target. - // NB: No relatedTarget if the mouse left/entered the browser window - if ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) { - event.type = handleObj.origType; - ret = handleObj.handler.apply( this, arguments ); - event.type = fix; - } - return ret; - } - }; -} ); - -jQuery.fn.extend( { - - on: function( types, selector, data, fn ) { - return on( this, types, selector, data, fn ); - }, - one: function( types, selector, data, fn ) { - return on( this, types, selector, data, fn, 1 ); - }, - off: function( types, selector, fn ) { - var handleObj, type; - if ( types && types.preventDefault && types.handleObj ) { - - // ( event ) dispatched jQuery.Event - handleObj = types.handleObj; - jQuery( types.delegateTarget ).off( - handleObj.namespace ? - handleObj.origType + "." + handleObj.namespace : - handleObj.origType, - handleObj.selector, - handleObj.handler - ); - return this; - } - if ( typeof types === "object" ) { - - // ( types-object [, selector] ) - for ( type in types ) { - this.off( type, selector, types[ type ] ); - } - return this; - } - if ( selector === false || typeof selector === "function" ) { - - // ( types [, fn] ) - fn = selector; - selector = undefined; - } - if ( fn === false ) { - fn = returnFalse; - } - return this.each( function() { - jQuery.event.remove( this, types, fn, selector ); - } ); - } -} ); - - -var - - /* eslint-disable max-len */ - - // See https://github.com/eslint/eslint/issues/3229 - rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi, - - /* eslint-enable */ - - // Support: IE <=10 - 11, Edge 12 - 13 only - // In IE/Edge using regex groups here causes severe slowdowns. - // See https://connect.microsoft.com/IE/feedback/details/1736512/ - rnoInnerhtml = /\s*$/g; - -// Prefer a tbody over its parent table for containing new rows -function manipulationTarget( elem, content ) { - if ( nodeName( elem, "table" ) && - nodeName( content.nodeType !== 11 ? content : content.firstChild, "tr" ) ) { - - return jQuery( elem ).children( "tbody" )[ 0 ] || elem; - } - - return elem; -} - -// Replace/restore the type attribute of script elements for safe DOM manipulation -function disableScript( elem ) { - elem.type = ( elem.getAttribute( "type" ) !== null ) + "/" + elem.type; - return elem; -} -function restoreScript( elem ) { - if ( ( elem.type || "" ).slice( 0, 5 ) === "true/" ) { - elem.type = elem.type.slice( 5 ); - } else { - elem.removeAttribute( "type" ); - } - - return elem; -} - -function cloneCopyEvent( src, dest ) { - var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events; - - if ( dest.nodeType !== 1 ) { - return; - } - - // 1. Copy private data: events, handlers, etc. - if ( dataPriv.hasData( src ) ) { - pdataOld = dataPriv.access( src ); - pdataCur = dataPriv.set( dest, pdataOld ); - events = pdataOld.events; - - if ( events ) { - delete pdataCur.handle; - pdataCur.events = {}; - - for ( type in events ) { - for ( i = 0, l = events[ type ].length; i < l; i++ ) { - jQuery.event.add( dest, type, events[ type ][ i ] ); - } - } - } - } - - // 2. Copy user data - if ( dataUser.hasData( src ) ) { - udataOld = dataUser.access( src ); - udataCur = jQuery.extend( {}, udataOld ); - - dataUser.set( dest, udataCur ); - } -} - -// Fix IE bugs, see support tests -function fixInput( src, dest ) { - var nodeName = dest.nodeName.toLowerCase(); - - // Fails to persist the checked state of a cloned checkbox or radio button. - if ( nodeName === "input" && rcheckableType.test( src.type ) ) { - dest.checked = src.checked; - - // Fails to return the selected option to the default selected state when cloning options - } else if ( nodeName === "input" || nodeName === "textarea" ) { - dest.defaultValue = src.defaultValue; - } -} - -function domManip( collection, args, callback, ignored ) { - - // Flatten any nested arrays - args = concat.apply( [], args ); - - var fragment, first, scripts, hasScripts, node, doc, - i = 0, - l = collection.length, - iNoClone = l - 1, - value = args[ 0 ], - valueIsFunction = isFunction( value ); - - // We can't cloneNode fragments that contain checked, in WebKit - if ( valueIsFunction || - ( l > 1 && typeof value === "string" && - !support.checkClone && rchecked.test( value ) ) ) { - return collection.each( function( index ) { - var self = collection.eq( index ); - if ( valueIsFunction ) { - args[ 0 ] = value.call( this, index, self.html() ); - } - domManip( self, args, callback, ignored ); - } ); - } - - if ( l ) { - fragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored ); - first = fragment.firstChild; - - if ( fragment.childNodes.length === 1 ) { - fragment = first; - } - - // Require either new content or an interest in ignored elements to invoke the callback - if ( first || ignored ) { - scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); - hasScripts = scripts.length; - - // Use the original fragment for the last item - // instead of the first because it can end up - // being emptied incorrectly in certain situations (#8070). - for ( ; i < l; i++ ) { - node = fragment; - - if ( i !== iNoClone ) { - node = jQuery.clone( node, true, true ); - - // Keep references to cloned scripts for later restoration - if ( hasScripts ) { - - // Support: Android <=4.0 only, PhantomJS 1 only - // push.apply(_, arraylike) throws on ancient WebKit - jQuery.merge( scripts, getAll( node, "script" ) ); - } - } - - callback.call( collection[ i ], node, i ); - } - - if ( hasScripts ) { - doc = scripts[ scripts.length - 1 ].ownerDocument; - - // Reenable scripts - jQuery.map( scripts, restoreScript ); - - // Evaluate executable scripts on first document insertion - for ( i = 0; i < hasScripts; i++ ) { - node = scripts[ i ]; - if ( rscriptType.test( node.type || "" ) && - !dataPriv.access( node, "globalEval" ) && - jQuery.contains( doc, node ) ) { - - if ( node.src && ( node.type || "" ).toLowerCase() !== "module" ) { - - // Optional AJAX dependency, but won't run scripts if not present - if ( jQuery._evalUrl && !node.noModule ) { - jQuery._evalUrl( node.src, { - nonce: node.nonce || node.getAttribute( "nonce" ) - } ); - } - } else { - DOMEval( node.textContent.replace( rcleanScript, "" ), node, doc ); - } - } - } - } - } - } - - return collection; -} - -function remove( elem, selector, keepData ) { - var node, - nodes = selector ? jQuery.filter( selector, elem ) : elem, - i = 0; - - for ( ; ( node = nodes[ i ] ) != null; i++ ) { - if ( !keepData && node.nodeType === 1 ) { - jQuery.cleanData( getAll( node ) ); - } - - if ( node.parentNode ) { - if ( keepData && isAttached( node ) ) { - setGlobalEval( getAll( node, "script" ) ); - } - node.parentNode.removeChild( node ); - } - } - - return elem; -} - -jQuery.extend( { - htmlPrefilter: function( html ) { - return html.replace( rxhtmlTag, "<$1>" ); - }, - - clone: function( elem, dataAndEvents, deepDataAndEvents ) { - var i, l, srcElements, destElements, - clone = elem.cloneNode( true ), - inPage = isAttached( elem ); - - // Fix IE cloning issues - if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && - !jQuery.isXMLDoc( elem ) ) { - - // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2 - destElements = getAll( clone ); - srcElements = getAll( elem ); - - for ( i = 0, l = srcElements.length; i < l; i++ ) { - fixInput( srcElements[ i ], destElements[ i ] ); - } - } - - // Copy the events from the original to the clone - if ( dataAndEvents ) { - if ( deepDataAndEvents ) { - srcElements = srcElements || getAll( elem ); - destElements = destElements || getAll( clone ); - - for ( i = 0, l = srcElements.length; i < l; i++ ) { - cloneCopyEvent( srcElements[ i ], destElements[ i ] ); - } - } else { - cloneCopyEvent( elem, clone ); - } - } - - // Preserve script evaluation history - destElements = getAll( clone, "script" ); - if ( destElements.length > 0 ) { - setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); - } - - // Return the cloned set - return clone; - }, - - cleanData: function( elems ) { - var data, elem, type, - special = jQuery.event.special, - i = 0; - - for ( ; ( elem = elems[ i ] ) !== undefined; i++ ) { - if ( acceptData( elem ) ) { - if ( ( data = elem[ dataPriv.expando ] ) ) { - if ( data.events ) { - for ( type in data.events ) { - if ( special[ type ] ) { - jQuery.event.remove( elem, type ); - - // This is a shortcut to avoid jQuery.event.remove's overhead - } else { - jQuery.removeEvent( elem, type, data.handle ); - } - } - } - - // Support: Chrome <=35 - 45+ - // Assign undefined instead of using delete, see Data#remove - elem[ dataPriv.expando ] = undefined; - } - if ( elem[ dataUser.expando ] ) { - - // Support: Chrome <=35 - 45+ - // Assign undefined instead of using delete, see Data#remove - elem[ dataUser.expando ] = undefined; - } - } - } - } -} ); - -jQuery.fn.extend( { - detach: function( selector ) { - return remove( this, selector, true ); - }, - - remove: function( selector ) { - return remove( this, selector ); - }, - - text: function( value ) { - return access( this, function( value ) { - return value === undefined ? - jQuery.text( this ) : - this.empty().each( function() { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - this.textContent = value; - } - } ); - }, null, value, arguments.length ); - }, - - append: function() { - return domManip( this, arguments, function( elem ) { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - var target = manipulationTarget( this, elem ); - target.appendChild( elem ); - } - } ); - }, - - prepend: function() { - return domManip( this, arguments, function( elem ) { - if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { - var target = manipulationTarget( this, elem ); - target.insertBefore( elem, target.firstChild ); - } - } ); - }, - - before: function() { - return domManip( this, arguments, function( elem ) { - if ( this.parentNode ) { - this.parentNode.insertBefore( elem, this ); - } - } ); - }, - - after: function() { - return domManip( this, arguments, function( elem ) { - if ( this.parentNode ) { - this.parentNode.insertBefore( elem, this.nextSibling ); - } - } ); - }, - - empty: function() { - var elem, - i = 0; - - for ( ; ( elem = this[ i ] ) != null; i++ ) { - if ( elem.nodeType === 1 ) { - - // Prevent memory leaks - jQuery.cleanData( getAll( elem, false ) ); - - // Remove any remaining nodes - elem.textContent = ""; - } - } - - return this; - }, - - clone: function( dataAndEvents, deepDataAndEvents ) { - dataAndEvents = dataAndEvents == null ? false : dataAndEvents; - deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; - - return this.map( function() { - return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); - } ); - }, - - html: function( value ) { - return access( this, function( value ) { - var elem = this[ 0 ] || {}, - i = 0, - l = this.length; - - if ( value === undefined && elem.nodeType === 1 ) { - return elem.innerHTML; - } - - // See if we can take a shortcut and just use innerHTML - if ( typeof value === "string" && !rnoInnerhtml.test( value ) && - !wrapMap[ ( rtagName.exec( value ) || [ "", "" ] )[ 1 ].toLowerCase() ] ) { - - value = jQuery.htmlPrefilter( value ); - - try { - for ( ; i < l; i++ ) { - elem = this[ i ] || {}; - - // Remove element nodes and prevent memory leaks - if ( elem.nodeType === 1 ) { - jQuery.cleanData( getAll( elem, false ) ); - elem.innerHTML = value; - } - } - - elem = 0; - - // If using innerHTML throws an exception, use the fallback method - } catch ( e ) {} - } - - if ( elem ) { - this.empty().append( value ); - } - }, null, value, arguments.length ); - }, - - replaceWith: function() { - var ignored = []; - - // Make the changes, replacing each non-ignored context element with the new content - return domManip( this, arguments, function( elem ) { - var parent = this.parentNode; - - if ( jQuery.inArray( this, ignored ) < 0 ) { - jQuery.cleanData( getAll( this ) ); - if ( parent ) { - parent.replaceChild( elem, this ); - } - } - - // Force callback invocation - }, ignored ); - } -} ); - -jQuery.each( { - appendTo: "append", - prependTo: "prepend", - insertBefore: "before", - insertAfter: "after", - replaceAll: "replaceWith" -}, function( name, original ) { - jQuery.fn[ name ] = function( selector ) { - var elems, - ret = [], - insert = jQuery( selector ), - last = insert.length - 1, - i = 0; - - for ( ; i <= last; i++ ) { - elems = i === last ? this : this.clone( true ); - jQuery( insert[ i ] )[ original ]( elems ); - - // Support: Android <=4.0 only, PhantomJS 1 only - // .get() because push.apply(_, arraylike) throws on ancient WebKit - push.apply( ret, elems.get() ); - } - - return this.pushStack( ret ); - }; -} ); -var rnumnonpx = new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); - -var getStyles = function( elem ) { - - // Support: IE <=11 only, Firefox <=30 (#15098, #14150) - // IE throws on elements created in popups - // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" - var view = elem.ownerDocument.defaultView; - - if ( !view || !view.opener ) { - view = window; - } - - return view.getComputedStyle( elem ); - }; - -var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); - - - -( function() { - - // Executing both pixelPosition & boxSizingReliable tests require only one layout - // so they're executed at the same time to save the second computation. - function computeStyleTests() { - - // This is a singleton, we need to execute it only once - if ( !div ) { - return; - } - - container.style.cssText = "position:absolute;left:-11111px;width:60px;" + - "margin-top:1px;padding:0;border:0"; - div.style.cssText = - "position:relative;display:block;box-sizing:border-box;overflow:scroll;" + - "margin:auto;border:1px;padding:1px;" + - "width:60%;top:1%"; - documentElement.appendChild( container ).appendChild( div ); - - var divStyle = window.getComputedStyle( div ); - pixelPositionVal = divStyle.top !== "1%"; - - // Support: Android 4.0 - 4.3 only, Firefox <=3 - 44 - reliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12; - - // Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3 - // Some styles come back with percentage values, even though they shouldn't - div.style.right = "60%"; - pixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36; - - // Support: IE 9 - 11 only - // Detect misreporting of content dimensions for box-sizing:border-box elements - boxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36; - - // Support: IE 9 only - // Detect overflow:scroll screwiness (gh-3699) - // Support: Chrome <=64 - // Don't get tricked when zoom affects offsetWidth (gh-4029) - div.style.position = "absolute"; - scrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12; - - documentElement.removeChild( container ); - - // Nullify the div so it wouldn't be stored in the memory and - // it will also be a sign that checks already performed - div = null; - } - - function roundPixelMeasures( measure ) { - return Math.round( parseFloat( measure ) ); - } - - var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal, - reliableMarginLeftVal, - container = document.createElement( "div" ), - div = document.createElement( "div" ); - - // Finish early in limited (non-browser) environments - if ( !div.style ) { - return; - } - - // Support: IE <=9 - 11 only - // Style of cloned element affects source element cloned (#8908) - div.style.backgroundClip = "content-box"; - div.cloneNode( true ).style.backgroundClip = ""; - support.clearCloneStyle = div.style.backgroundClip === "content-box"; - - jQuery.extend( support, { - boxSizingReliable: function() { - computeStyleTests(); - return boxSizingReliableVal; - }, - pixelBoxStyles: function() { - computeStyleTests(); - return pixelBoxStylesVal; - }, - pixelPosition: function() { - computeStyleTests(); - return pixelPositionVal; - }, - reliableMarginLeft: function() { - computeStyleTests(); - return reliableMarginLeftVal; - }, - scrollboxSize: function() { - computeStyleTests(); - return scrollboxSizeVal; - } - } ); -} )(); - - -function curCSS( elem, name, computed ) { - var width, minWidth, maxWidth, ret, - - // Support: Firefox 51+ - // Retrieving style before computed somehow - // fixes an issue with getting wrong values - // on detached elements - style = elem.style; - - computed = computed || getStyles( elem ); - - // getPropertyValue is needed for: - // .css('filter') (IE 9 only, #12537) - // .css('--customProperty) (#3144) - if ( computed ) { - ret = computed.getPropertyValue( name ) || computed[ name ]; - - if ( ret === "" && !isAttached( elem ) ) { - ret = jQuery.style( elem, name ); - } - - // A tribute to the "awesome hack by Dean Edwards" - // Android Browser returns percentage for some values, - // but width seems to be reliably pixels. - // This is against the CSSOM draft spec: - // https://drafts.csswg.org/cssom/#resolved-values - if ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) { - - // Remember the original values - width = style.width; - minWidth = style.minWidth; - maxWidth = style.maxWidth; - - // Put in the new values to get a computed value out - style.minWidth = style.maxWidth = style.width = ret; - ret = computed.width; - - // Revert the changed values - style.width = width; - style.minWidth = minWidth; - style.maxWidth = maxWidth; - } - } - - return ret !== undefined ? - - // Support: IE <=9 - 11 only - // IE returns zIndex value as an integer. - ret + "" : - ret; -} - - -function addGetHookIf( conditionFn, hookFn ) { - - // Define the hook, we'll check on the first run if it's really needed. - return { - get: function() { - if ( conditionFn() ) { - - // Hook not needed (or it's not possible to use it due - // to missing dependency), remove it. - delete this.get; - return; - } - - // Hook needed; redefine it so that the support test is not executed again. - return ( this.get = hookFn ).apply( this, arguments ); - } - }; -} - - -var cssPrefixes = [ "Webkit", "Moz", "ms" ], - emptyStyle = document.createElement( "div" ).style, - vendorProps = {}; - -// Return a vendor-prefixed property or undefined -function vendorPropName( name ) { - - // Check for vendor prefixed names - var capName = name[ 0 ].toUpperCase() + name.slice( 1 ), - i = cssPrefixes.length; - - while ( i-- ) { - name = cssPrefixes[ i ] + capName; - if ( name in emptyStyle ) { - return name; - } - } -} - -// Return a potentially-mapped jQuery.cssProps or vendor prefixed property -function finalPropName( name ) { - var final = jQuery.cssProps[ name ] || vendorProps[ name ]; - - if ( final ) { - return final; - } - if ( name in emptyStyle ) { - return name; - } - return vendorProps[ name ] = vendorPropName( name ) || name; -} - - -var - - // Swappable if display is none or starts with table - // except "table", "table-cell", or "table-caption" - // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display - rdisplayswap = /^(none|table(?!-c[ea]).+)/, - rcustomProp = /^--/, - cssShow = { position: "absolute", visibility: "hidden", display: "block" }, - cssNormalTransform = { - letterSpacing: "0", - fontWeight: "400" - }; - -function setPositiveNumber( elem, value, subtract ) { - - // Any relative (+/-) values have already been - // normalized at this point - var matches = rcssNum.exec( value ); - return matches ? - - // Guard against undefined "subtract", e.g., when used as in cssHooks - Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) : - value; -} - -function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) { - var i = dimension === "width" ? 1 : 0, - extra = 0, - delta = 0; - - // Adjustment may not be necessary - if ( box === ( isBorderBox ? "border" : "content" ) ) { - return 0; - } - - for ( ; i < 4; i += 2 ) { - - // Both box models exclude margin - if ( box === "margin" ) { - delta += jQuery.css( elem, box + cssExpand[ i ], true, styles ); - } - - // If we get here with a content-box, we're seeking "padding" or "border" or "margin" - if ( !isBorderBox ) { - - // Add padding - delta += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); - - // For "border" or "margin", add border - if ( box !== "padding" ) { - delta += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); - - // But still keep track of it otherwise - } else { - extra += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); - } - - // If we get here with a border-box (content + padding + border), we're seeking "content" or - // "padding" or "margin" - } else { - - // For "content", subtract padding - if ( box === "content" ) { - delta -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); - } - - // For "content" or "padding", subtract border - if ( box !== "margin" ) { - delta -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); - } - } - } - - // Account for positive content-box scroll gutter when requested by providing computedVal - if ( !isBorderBox && computedVal >= 0 ) { - - // offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border - // Assuming integer scroll gutter, subtract the rest and round down - delta += Math.max( 0, Math.ceil( - elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - - computedVal - - delta - - extra - - 0.5 - - // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter - // Use an explicit zero to avoid NaN (gh-3964) - ) ) || 0; - } - - return delta; -} - -function getWidthOrHeight( elem, dimension, extra ) { - - // Start with computed style - var styles = getStyles( elem ), - - // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322). - // Fake content-box until we know it's needed to know the true value. - boxSizingNeeded = !support.boxSizingReliable() || extra, - isBorderBox = boxSizingNeeded && - jQuery.css( elem, "boxSizing", false, styles ) === "border-box", - valueIsBorderBox = isBorderBox, - - val = curCSS( elem, dimension, styles ), - offsetProp = "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ); - - // Support: Firefox <=54 - // Return a confounding non-pixel value or feign ignorance, as appropriate. - if ( rnumnonpx.test( val ) ) { - if ( !extra ) { - return val; - } - val = "auto"; - } - - - // Fall back to offsetWidth/offsetHeight when value is "auto" - // This happens for inline elements with no explicit setting (gh-3571) - // Support: Android <=4.1 - 4.3 only - // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602) - // Support: IE 9-11 only - // Also use offsetWidth/offsetHeight for when box sizing is unreliable - // We use getClientRects() to check for hidden/disconnected. - // In those cases, the computed value can be trusted to be border-box - if ( ( !support.boxSizingReliable() && isBorderBox || - val === "auto" || - !parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) && - elem.getClientRects().length ) { - - isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; - - // Where available, offsetWidth/offsetHeight approximate border box dimensions. - // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the - // retrieved value as a content box dimension. - valueIsBorderBox = offsetProp in elem; - if ( valueIsBorderBox ) { - val = elem[ offsetProp ]; - } - } - - // Normalize "" and auto - val = parseFloat( val ) || 0; - - // Adjust for the element's box model - return ( val + - boxModelAdjustment( - elem, - dimension, - extra || ( isBorderBox ? "border" : "content" ), - valueIsBorderBox, - styles, - - // Provide the current computed size to request scroll gutter calculation (gh-3589) - val - ) - ) + "px"; -} - -jQuery.extend( { - - // Add in style property hooks for overriding the default - // behavior of getting and setting a style property - cssHooks: { - opacity: { - get: function( elem, computed ) { - if ( computed ) { - - // We should always get a number back from opacity - var ret = curCSS( elem, "opacity" ); - return ret === "" ? "1" : ret; - } - } - } - }, - - // Don't automatically add "px" to these possibly-unitless properties - cssNumber: { - "animationIterationCount": true, - "columnCount": true, - "fillOpacity": true, - "flexGrow": true, - "flexShrink": true, - "fontWeight": true, - "gridArea": true, - "gridColumn": true, - "gridColumnEnd": true, - "gridColumnStart": true, - "gridRow": true, - "gridRowEnd": true, - "gridRowStart": true, - "lineHeight": true, - "opacity": true, - "order": true, - "orphans": true, - "widows": true, - "zIndex": true, - "zoom": true - }, - - // Add in properties whose names you wish to fix before - // setting or getting the value - cssProps: {}, - - // Get and set the style property on a DOM Node - style: function( elem, name, value, extra ) { - - // Don't set styles on text and comment nodes - if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { - return; - } - - // Make sure that we're working with the right name - var ret, type, hooks, - origName = camelCase( name ), - isCustomProp = rcustomProp.test( name ), - style = elem.style; - - // Make sure that we're working with the right name. We don't - // want to query the value if it is a CSS custom property - // since they are user-defined. - if ( !isCustomProp ) { - name = finalPropName( origName ); - } - - // Gets hook for the prefixed version, then unprefixed version - hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; - - // Check if we're setting a value - if ( value !== undefined ) { - type = typeof value; - - // Convert "+=" or "-=" to relative numbers (#7345) - if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) { - value = adjustCSS( elem, name, ret ); - - // Fixes bug #9237 - type = "number"; - } - - // Make sure that null and NaN values aren't set (#7116) - if ( value == null || value !== value ) { - return; - } - - // If a number was passed in, add the unit (except for certain CSS properties) - // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append - // "px" to a few hardcoded values. - if ( type === "number" && !isCustomProp ) { - value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" ); - } - - // background-* props affect original clone's values - if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) { - style[ name ] = "inherit"; - } - - // If a hook was provided, use that value, otherwise just set the specified value - if ( !hooks || !( "set" in hooks ) || - ( value = hooks.set( elem, value, extra ) ) !== undefined ) { - - if ( isCustomProp ) { - style.setProperty( name, value ); - } else { - style[ name ] = value; - } - } - - } else { - - // If a hook was provided get the non-computed value from there - if ( hooks && "get" in hooks && - ( ret = hooks.get( elem, false, extra ) ) !== undefined ) { - - return ret; - } - - // Otherwise just get the value from the style object - return style[ name ]; - } - }, - - css: function( elem, name, extra, styles ) { - var val, num, hooks, - origName = camelCase( name ), - isCustomProp = rcustomProp.test( name ); - - // Make sure that we're working with the right name. We don't - // want to modify the value if it is a CSS custom property - // since they are user-defined. - if ( !isCustomProp ) { - name = finalPropName( origName ); - } - - // Try prefixed name followed by the unprefixed name - hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; - - // If a hook was provided get the computed value from there - if ( hooks && "get" in hooks ) { - val = hooks.get( elem, true, extra ); - } - - // Otherwise, if a way to get the computed value exists, use that - if ( val === undefined ) { - val = curCSS( elem, name, styles ); - } - - // Convert "normal" to computed value - if ( val === "normal" && name in cssNormalTransform ) { - val = cssNormalTransform[ name ]; - } - - // Make numeric if forced or a qualifier was provided and val looks numeric - if ( extra === "" || extra ) { - num = parseFloat( val ); - return extra === true || isFinite( num ) ? num || 0 : val; - } - - return val; - } -} ); - -jQuery.each( [ "height", "width" ], function( i, dimension ) { - jQuery.cssHooks[ dimension ] = { - get: function( elem, computed, extra ) { - if ( computed ) { - - // Certain elements can have dimension info if we invisibly show them - // but it must have a current display style that would benefit - return rdisplayswap.test( jQuery.css( elem, "display" ) ) && - - // Support: Safari 8+ - // Table columns in Safari have non-zero offsetWidth & zero - // getBoundingClientRect().width unless display is changed. - // Support: IE <=11 only - // Running getBoundingClientRect on a disconnected node - // in IE throws an error. - ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ? - swap( elem, cssShow, function() { - return getWidthOrHeight( elem, dimension, extra ); - } ) : - getWidthOrHeight( elem, dimension, extra ); - } - }, - - set: function( elem, value, extra ) { - var matches, - styles = getStyles( elem ), - - // Only read styles.position if the test has a chance to fail - // to avoid forcing a reflow. - scrollboxSizeBuggy = !support.scrollboxSize() && - styles.position === "absolute", - - // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991) - boxSizingNeeded = scrollboxSizeBuggy || extra, - isBorderBox = boxSizingNeeded && - jQuery.css( elem, "boxSizing", false, styles ) === "border-box", - subtract = extra ? - boxModelAdjustment( - elem, - dimension, - extra, - isBorderBox, - styles - ) : - 0; - - // Account for unreliable border-box dimensions by comparing offset* to computed and - // faking a content-box to get border and padding (gh-3699) - if ( isBorderBox && scrollboxSizeBuggy ) { - subtract -= Math.ceil( - elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - - parseFloat( styles[ dimension ] ) - - boxModelAdjustment( elem, dimension, "border", false, styles ) - - 0.5 - ); - } - - // Convert to pixels if value adjustment is needed - if ( subtract && ( matches = rcssNum.exec( value ) ) && - ( matches[ 3 ] || "px" ) !== "px" ) { - - elem.style[ dimension ] = value; - value = jQuery.css( elem, dimension ); - } - - return setPositiveNumber( elem, value, subtract ); - } - }; -} ); - -jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft, - function( elem, computed ) { - if ( computed ) { - return ( parseFloat( curCSS( elem, "marginLeft" ) ) || - elem.getBoundingClientRect().left - - swap( elem, { marginLeft: 0 }, function() { - return elem.getBoundingClientRect().left; - } ) - ) + "px"; - } - } -); - -// These hooks are used by animate to expand properties -jQuery.each( { - margin: "", - padding: "", - border: "Width" -}, function( prefix, suffix ) { - jQuery.cssHooks[ prefix + suffix ] = { - expand: function( value ) { - var i = 0, - expanded = {}, - - // Assumes a single number if not a string - parts = typeof value === "string" ? value.split( " " ) : [ value ]; - - for ( ; i < 4; i++ ) { - expanded[ prefix + cssExpand[ i ] + suffix ] = - parts[ i ] || parts[ i - 2 ] || parts[ 0 ]; - } - - return expanded; - } - }; - - if ( prefix !== "margin" ) { - jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber; - } -} ); - -jQuery.fn.extend( { - css: function( name, value ) { - return access( this, function( elem, name, value ) { - var styles, len, - map = {}, - i = 0; - - if ( Array.isArray( name ) ) { - styles = getStyles( elem ); - len = name.length; - - for ( ; i < len; i++ ) { - map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); - } - - return map; - } - - return value !== undefined ? - jQuery.style( elem, name, value ) : - jQuery.css( elem, name ); - }, name, value, arguments.length > 1 ); - } -} ); - - -function Tween( elem, options, prop, end, easing ) { - return new Tween.prototype.init( elem, options, prop, end, easing ); -} -jQuery.Tween = Tween; - -Tween.prototype = { - constructor: Tween, - init: function( elem, options, prop, end, easing, unit ) { - this.elem = elem; - this.prop = prop; - this.easing = easing || jQuery.easing._default; - this.options = options; - this.start = this.now = this.cur(); - this.end = end; - this.unit = unit || ( jQuery.cssNumber[ prop ] ? "" : "px" ); - }, - cur: function() { - var hooks = Tween.propHooks[ this.prop ]; - - return hooks && hooks.get ? - hooks.get( this ) : - Tween.propHooks._default.get( this ); - }, - run: function( percent ) { - var eased, - hooks = Tween.propHooks[ this.prop ]; - - if ( this.options.duration ) { - this.pos = eased = jQuery.easing[ this.easing ]( - percent, this.options.duration * percent, 0, 1, this.options.duration - ); - } else { - this.pos = eased = percent; - } - this.now = ( this.end - this.start ) * eased + this.start; - - if ( this.options.step ) { - this.options.step.call( this.elem, this.now, this ); - } - - if ( hooks && hooks.set ) { - hooks.set( this ); - } else { - Tween.propHooks._default.set( this ); - } - return this; - } -}; - -Tween.prototype.init.prototype = Tween.prototype; - -Tween.propHooks = { - _default: { - get: function( tween ) { - var result; - - // Use a property on the element directly when it is not a DOM element, - // or when there is no matching style property that exists. - if ( tween.elem.nodeType !== 1 || - tween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) { - return tween.elem[ tween.prop ]; - } - - // Passing an empty string as a 3rd parameter to .css will automatically - // attempt a parseFloat and fallback to a string if the parse fails. - // Simple values such as "10px" are parsed to Float; - // complex values such as "rotate(1rad)" are returned as-is. - result = jQuery.css( tween.elem, tween.prop, "" ); - - // Empty strings, null, undefined and "auto" are converted to 0. - return !result || result === "auto" ? 0 : result; - }, - set: function( tween ) { - - // Use step hook for back compat. - // Use cssHook if its there. - // Use .style if available and use plain properties where available. - if ( jQuery.fx.step[ tween.prop ] ) { - jQuery.fx.step[ tween.prop ]( tween ); - } else if ( tween.elem.nodeType === 1 && ( - jQuery.cssHooks[ tween.prop ] || - tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) { - jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); - } else { - tween.elem[ tween.prop ] = tween.now; - } - } - } -}; - -// Support: IE <=9 only -// Panic based approach to setting things on disconnected nodes -Tween.propHooks.scrollTop = Tween.propHooks.scrollLeft = { - set: function( tween ) { - if ( tween.elem.nodeType && tween.elem.parentNode ) { - tween.elem[ tween.prop ] = tween.now; - } - } -}; - -jQuery.easing = { - linear: function( p ) { - return p; - }, - swing: function( p ) { - return 0.5 - Math.cos( p * Math.PI ) / 2; - }, - _default: "swing" -}; - -jQuery.fx = Tween.prototype.init; - -// Back compat <1.8 extension point -jQuery.fx.step = {}; - - - - -var - fxNow, inProgress, - rfxtypes = /^(?:toggle|show|hide)$/, - rrun = /queueHooks$/; - -function schedule() { - if ( inProgress ) { - if ( document.hidden === false && window.requestAnimationFrame ) { - window.requestAnimationFrame( schedule ); - } else { - window.setTimeout( schedule, jQuery.fx.interval ); - } - - jQuery.fx.tick(); - } -} - -// Animations created synchronously will run synchronously -function createFxNow() { - window.setTimeout( function() { - fxNow = undefined; - } ); - return ( fxNow = Date.now() ); -} - -// Generate parameters to create a standard animation -function genFx( type, includeWidth ) { - var which, - i = 0, - attrs = { height: type }; - - // If we include width, step value is 1 to do all cssExpand values, - // otherwise step value is 2 to skip over Left and Right - includeWidth = includeWidth ? 1 : 0; - for ( ; i < 4; i += 2 - includeWidth ) { - which = cssExpand[ i ]; - attrs[ "margin" + which ] = attrs[ "padding" + which ] = type; - } - - if ( includeWidth ) { - attrs.opacity = attrs.width = type; - } - - return attrs; -} - -function createTween( value, prop, animation ) { - var tween, - collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ), - index = 0, - length = collection.length; - for ( ; index < length; index++ ) { - if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) { - - // We're done with this property - return tween; - } - } -} - -function defaultPrefilter( elem, props, opts ) { - var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display, - isBox = "width" in props || "height" in props, - anim = this, - orig = {}, - style = elem.style, - hidden = elem.nodeType && isHiddenWithinTree( elem ), - dataShow = dataPriv.get( elem, "fxshow" ); - - // Queue-skipping animations hijack the fx hooks - if ( !opts.queue ) { - hooks = jQuery._queueHooks( elem, "fx" ); - if ( hooks.unqueued == null ) { - hooks.unqueued = 0; - oldfire = hooks.empty.fire; - hooks.empty.fire = function() { - if ( !hooks.unqueued ) { - oldfire(); - } - }; - } - hooks.unqueued++; - - anim.always( function() { - - // Ensure the complete handler is called before this completes - anim.always( function() { - hooks.unqueued--; - if ( !jQuery.queue( elem, "fx" ).length ) { - hooks.empty.fire(); - } - } ); - } ); - } - - // Detect show/hide animations - for ( prop in props ) { - value = props[ prop ]; - if ( rfxtypes.test( value ) ) { - delete props[ prop ]; - toggle = toggle || value === "toggle"; - if ( value === ( hidden ? "hide" : "show" ) ) { - - // Pretend to be hidden if this is a "show" and - // there is still data from a stopped show/hide - if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) { - hidden = true; - - // Ignore all other no-op show/hide data - } else { - continue; - } - } - orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop ); - } - } - - // Bail out if this is a no-op like .hide().hide() - propTween = !jQuery.isEmptyObject( props ); - if ( !propTween && jQuery.isEmptyObject( orig ) ) { - return; - } - - // Restrict "overflow" and "display" styles during box animations - if ( isBox && elem.nodeType === 1 ) { - - // Support: IE <=9 - 11, Edge 12 - 15 - // Record all 3 overflow attributes because IE does not infer the shorthand - // from identically-valued overflowX and overflowY and Edge just mirrors - // the overflowX value there. - opts.overflow = [ style.overflow, style.overflowX, style.overflowY ]; - - // Identify a display type, preferring old show/hide data over the CSS cascade - restoreDisplay = dataShow && dataShow.display; - if ( restoreDisplay == null ) { - restoreDisplay = dataPriv.get( elem, "display" ); - } - display = jQuery.css( elem, "display" ); - if ( display === "none" ) { - if ( restoreDisplay ) { - display = restoreDisplay; - } else { - - // Get nonempty value(s) by temporarily forcing visibility - showHide( [ elem ], true ); - restoreDisplay = elem.style.display || restoreDisplay; - display = jQuery.css( elem, "display" ); - showHide( [ elem ] ); - } - } - - // Animate inline elements as inline-block - if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) { - if ( jQuery.css( elem, "float" ) === "none" ) { - - // Restore the original display value at the end of pure show/hide animations - if ( !propTween ) { - anim.done( function() { - style.display = restoreDisplay; - } ); - if ( restoreDisplay == null ) { - display = style.display; - restoreDisplay = display === "none" ? "" : display; - } - } - style.display = "inline-block"; - } - } - } - - if ( opts.overflow ) { - style.overflow = "hidden"; - anim.always( function() { - style.overflow = opts.overflow[ 0 ]; - style.overflowX = opts.overflow[ 1 ]; - style.overflowY = opts.overflow[ 2 ]; - } ); - } - - // Implement show/hide animations - propTween = false; - for ( prop in orig ) { - - // General show/hide setup for this element animation - if ( !propTween ) { - if ( dataShow ) { - if ( "hidden" in dataShow ) { - hidden = dataShow.hidden; - } - } else { - dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } ); - } - - // Store hidden/visible for toggle so `.stop().toggle()` "reverses" - if ( toggle ) { - dataShow.hidden = !hidden; - } - - // Show elements before animating them - if ( hidden ) { - showHide( [ elem ], true ); - } - - /* eslint-disable no-loop-func */ - - anim.done( function() { - - /* eslint-enable no-loop-func */ - - // The final step of a "hide" animation is actually hiding the element - if ( !hidden ) { - showHide( [ elem ] ); - } - dataPriv.remove( elem, "fxshow" ); - for ( prop in orig ) { - jQuery.style( elem, prop, orig[ prop ] ); - } - } ); - } - - // Per-property setup - propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim ); - if ( !( prop in dataShow ) ) { - dataShow[ prop ] = propTween.start; - if ( hidden ) { - propTween.end = propTween.start; - propTween.start = 0; - } - } - } -} - -function propFilter( props, specialEasing ) { - var index, name, easing, value, hooks; - - // camelCase, specialEasing and expand cssHook pass - for ( index in props ) { - name = camelCase( index ); - easing = specialEasing[ name ]; - value = props[ index ]; - if ( Array.isArray( value ) ) { - easing = value[ 1 ]; - value = props[ index ] = value[ 0 ]; - } - - if ( index !== name ) { - props[ name ] = value; - delete props[ index ]; - } - - hooks = jQuery.cssHooks[ name ]; - if ( hooks && "expand" in hooks ) { - value = hooks.expand( value ); - delete props[ name ]; - - // Not quite $.extend, this won't overwrite existing keys. - // Reusing 'index' because we have the correct "name" - for ( index in value ) { - if ( !( index in props ) ) { - props[ index ] = value[ index ]; - specialEasing[ index ] = easing; - } - } - } else { - specialEasing[ name ] = easing; - } - } -} - -function Animation( elem, properties, options ) { - var result, - stopped, - index = 0, - length = Animation.prefilters.length, - deferred = jQuery.Deferred().always( function() { - - // Don't match elem in the :animated selector - delete tick.elem; - } ), - tick = function() { - if ( stopped ) { - return false; - } - var currentTime = fxNow || createFxNow(), - remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ), - - // Support: Android 2.3 only - // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497) - temp = remaining / animation.duration || 0, - percent = 1 - temp, - index = 0, - length = animation.tweens.length; - - for ( ; index < length; index++ ) { - animation.tweens[ index ].run( percent ); - } - - deferred.notifyWith( elem, [ animation, percent, remaining ] ); - - // If there's more to do, yield - if ( percent < 1 && length ) { - return remaining; - } - - // If this was an empty animation, synthesize a final progress notification - if ( !length ) { - deferred.notifyWith( elem, [ animation, 1, 0 ] ); - } - - // Resolve the animation and report its conclusion - deferred.resolveWith( elem, [ animation ] ); - return false; - }, - animation = deferred.promise( { - elem: elem, - props: jQuery.extend( {}, properties ), - opts: jQuery.extend( true, { - specialEasing: {}, - easing: jQuery.easing._default - }, options ), - originalProperties: properties, - originalOptions: options, - startTime: fxNow || createFxNow(), - duration: options.duration, - tweens: [], - createTween: function( prop, end ) { - var tween = jQuery.Tween( elem, animation.opts, prop, end, - animation.opts.specialEasing[ prop ] || animation.opts.easing ); - animation.tweens.push( tween ); - return tween; - }, - stop: function( gotoEnd ) { - var index = 0, - - // If we are going to the end, we want to run all the tweens - // otherwise we skip this part - length = gotoEnd ? animation.tweens.length : 0; - if ( stopped ) { - return this; - } - stopped = true; - for ( ; index < length; index++ ) { - animation.tweens[ index ].run( 1 ); - } - - // Resolve when we played the last frame; otherwise, reject - if ( gotoEnd ) { - deferred.notifyWith( elem, [ animation, 1, 0 ] ); - deferred.resolveWith( elem, [ animation, gotoEnd ] ); - } else { - deferred.rejectWith( elem, [ animation, gotoEnd ] ); - } - return this; - } - } ), - props = animation.props; - - propFilter( props, animation.opts.specialEasing ); - - for ( ; index < length; index++ ) { - result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts ); - if ( result ) { - if ( isFunction( result.stop ) ) { - jQuery._queueHooks( animation.elem, animation.opts.queue ).stop = - result.stop.bind( result ); - } - return result; - } - } - - jQuery.map( props, createTween, animation ); - - if ( isFunction( animation.opts.start ) ) { - animation.opts.start.call( elem, animation ); - } - - // Attach callbacks from options - animation - .progress( animation.opts.progress ) - .done( animation.opts.done, animation.opts.complete ) - .fail( animation.opts.fail ) - .always( animation.opts.always ); - - jQuery.fx.timer( - jQuery.extend( tick, { - elem: elem, - anim: animation, - queue: animation.opts.queue - } ) - ); - - return animation; -} - -jQuery.Animation = jQuery.extend( Animation, { - - tweeners: { - "*": [ function( prop, value ) { - var tween = this.createTween( prop, value ); - adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween ); - return tween; - } ] - }, - - tweener: function( props, callback ) { - if ( isFunction( props ) ) { - callback = props; - props = [ "*" ]; - } else { - props = props.match( rnothtmlwhite ); - } - - var prop, - index = 0, - length = props.length; - - for ( ; index < length; index++ ) { - prop = props[ index ]; - Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || []; - Animation.tweeners[ prop ].unshift( callback ); - } - }, - - prefilters: [ defaultPrefilter ], - - prefilter: function( callback, prepend ) { - if ( prepend ) { - Animation.prefilters.unshift( callback ); - } else { - Animation.prefilters.push( callback ); - } - } -} ); - -jQuery.speed = function( speed, easing, fn ) { - var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { - complete: fn || !fn && easing || - isFunction( speed ) && speed, - duration: speed, - easing: fn && easing || easing && !isFunction( easing ) && easing - }; - - // Go to the end state if fx are off - if ( jQuery.fx.off ) { - opt.duration = 0; - - } else { - if ( typeof opt.duration !== "number" ) { - if ( opt.duration in jQuery.fx.speeds ) { - opt.duration = jQuery.fx.speeds[ opt.duration ]; - - } else { - opt.duration = jQuery.fx.speeds._default; - } - } - } - - // Normalize opt.queue - true/undefined/null -> "fx" - if ( opt.queue == null || opt.queue === true ) { - opt.queue = "fx"; - } - - // Queueing - opt.old = opt.complete; - - opt.complete = function() { - if ( isFunction( opt.old ) ) { - opt.old.call( this ); - } - - if ( opt.queue ) { - jQuery.dequeue( this, opt.queue ); - } - }; - - return opt; -}; - -jQuery.fn.extend( { - fadeTo: function( speed, to, easing, callback ) { - - // Show any hidden elements after setting opacity to 0 - return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show() - - // Animate to the value specified - .end().animate( { opacity: to }, speed, easing, callback ); - }, - animate: function( prop, speed, easing, callback ) { - var empty = jQuery.isEmptyObject( prop ), - optall = jQuery.speed( speed, easing, callback ), - doAnimation = function() { - - // Operate on a copy of prop so per-property easing won't be lost - var anim = Animation( this, jQuery.extend( {}, prop ), optall ); - - // Empty animations, or finishing resolves immediately - if ( empty || dataPriv.get( this, "finish" ) ) { - anim.stop( true ); - } - }; - doAnimation.finish = doAnimation; - - return empty || optall.queue === false ? - this.each( doAnimation ) : - this.queue( optall.queue, doAnimation ); - }, - stop: function( type, clearQueue, gotoEnd ) { - var stopQueue = function( hooks ) { - var stop = hooks.stop; - delete hooks.stop; - stop( gotoEnd ); - }; - - if ( typeof type !== "string" ) { - gotoEnd = clearQueue; - clearQueue = type; - type = undefined; - } - if ( clearQueue && type !== false ) { - this.queue( type || "fx", [] ); - } - - return this.each( function() { - var dequeue = true, - index = type != null && type + "queueHooks", - timers = jQuery.timers, - data = dataPriv.get( this ); - - if ( index ) { - if ( data[ index ] && data[ index ].stop ) { - stopQueue( data[ index ] ); - } - } else { - for ( index in data ) { - if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) { - stopQueue( data[ index ] ); - } - } - } - - for ( index = timers.length; index--; ) { - if ( timers[ index ].elem === this && - ( type == null || timers[ index ].queue === type ) ) { - - timers[ index ].anim.stop( gotoEnd ); - dequeue = false; - timers.splice( index, 1 ); - } - } - - // Start the next in the queue if the last step wasn't forced. - // Timers currently will call their complete callbacks, which - // will dequeue but only if they were gotoEnd. - if ( dequeue || !gotoEnd ) { - jQuery.dequeue( this, type ); - } - } ); - }, - finish: function( type ) { - if ( type !== false ) { - type = type || "fx"; - } - return this.each( function() { - var index, - data = dataPriv.get( this ), - queue = data[ type + "queue" ], - hooks = data[ type + "queueHooks" ], - timers = jQuery.timers, - length = queue ? queue.length : 0; - - // Enable finishing flag on private data - data.finish = true; - - // Empty the queue first - jQuery.queue( this, type, [] ); - - if ( hooks && hooks.stop ) { - hooks.stop.call( this, true ); - } - - // Look for any active animations, and finish them - for ( index = timers.length; index--; ) { - if ( timers[ index ].elem === this && timers[ index ].queue === type ) { - timers[ index ].anim.stop( true ); - timers.splice( index, 1 ); - } - } - - // Look for any animations in the old queue and finish them - for ( index = 0; index < length; index++ ) { - if ( queue[ index ] && queue[ index ].finish ) { - queue[ index ].finish.call( this ); - } - } - - // Turn off finishing flag - delete data.finish; - } ); - } -} ); - -jQuery.each( [ "toggle", "show", "hide" ], function( i, name ) { - var cssFn = jQuery.fn[ name ]; - jQuery.fn[ name ] = function( speed, easing, callback ) { - return speed == null || typeof speed === "boolean" ? - cssFn.apply( this, arguments ) : - this.animate( genFx( name, true ), speed, easing, callback ); - }; -} ); - -// Generate shortcuts for custom animations -jQuery.each( { - slideDown: genFx( "show" ), - slideUp: genFx( "hide" ), - slideToggle: genFx( "toggle" ), - fadeIn: { opacity: "show" }, - fadeOut: { opacity: "hide" }, - fadeToggle: { opacity: "toggle" } -}, function( name, props ) { - jQuery.fn[ name ] = function( speed, easing, callback ) { - return this.animate( props, speed, easing, callback ); - }; -} ); - -jQuery.timers = []; -jQuery.fx.tick = function() { - var timer, - i = 0, - timers = jQuery.timers; - - fxNow = Date.now(); - - for ( ; i < timers.length; i++ ) { - timer = timers[ i ]; - - // Run the timer and safely remove it when done (allowing for external removal) - if ( !timer() && timers[ i ] === timer ) { - timers.splice( i--, 1 ); - } - } - - if ( !timers.length ) { - jQuery.fx.stop(); - } - fxNow = undefined; -}; - -jQuery.fx.timer = function( timer ) { - jQuery.timers.push( timer ); - jQuery.fx.start(); -}; - -jQuery.fx.interval = 13; -jQuery.fx.start = function() { - if ( inProgress ) { - return; - } - - inProgress = true; - schedule(); -}; - -jQuery.fx.stop = function() { - inProgress = null; -}; - -jQuery.fx.speeds = { - slow: 600, - fast: 200, - - // Default speed - _default: 400 -}; - - -// Based off of the plugin by Clint Helfers, with permission. -// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/ -jQuery.fn.delay = function( time, type ) { - time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; - type = type || "fx"; - - return this.queue( type, function( next, hooks ) { - var timeout = window.setTimeout( next, time ); - hooks.stop = function() { - window.clearTimeout( timeout ); - }; - } ); -}; - - -( function() { - var input = document.createElement( "input" ), - select = document.createElement( "select" ), - opt = select.appendChild( document.createElement( "option" ) ); - - input.type = "checkbox"; - - // Support: Android <=4.3 only - // Default value for a checkbox should be "on" - support.checkOn = input.value !== ""; - - // Support: IE <=11 only - // Must access selectedIndex to make default options select - support.optSelected = opt.selected; - - // Support: IE <=11 only - // An input loses its value after becoming a radio - input = document.createElement( "input" ); - input.value = "t"; - input.type = "radio"; - support.radioValue = input.value === "t"; -} )(); - - -var boolHook, - attrHandle = jQuery.expr.attrHandle; - -jQuery.fn.extend( { - attr: function( name, value ) { - return access( this, jQuery.attr, name, value, arguments.length > 1 ); - }, - - removeAttr: function( name ) { - return this.each( function() { - jQuery.removeAttr( this, name ); - } ); - } -} ); - -jQuery.extend( { - attr: function( elem, name, value ) { - var ret, hooks, - nType = elem.nodeType; - - // Don't get/set attributes on text, comment and attribute nodes - if ( nType === 3 || nType === 8 || nType === 2 ) { - return; - } - - // Fallback to prop when attributes are not supported - if ( typeof elem.getAttribute === "undefined" ) { - return jQuery.prop( elem, name, value ); - } - - // Attribute hooks are determined by the lowercase version - // Grab necessary hook if one is defined - if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { - hooks = jQuery.attrHooks[ name.toLowerCase() ] || - ( jQuery.expr.match.bool.test( name ) ? boolHook : undefined ); - } - - if ( value !== undefined ) { - if ( value === null ) { - jQuery.removeAttr( elem, name ); - return; - } - - if ( hooks && "set" in hooks && - ( ret = hooks.set( elem, value, name ) ) !== undefined ) { - return ret; - } - - elem.setAttribute( name, value + "" ); - return value; - } - - if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { - return ret; - } - - ret = jQuery.find.attr( elem, name ); - - // Non-existent attributes return null, we normalize to undefined - return ret == null ? undefined : ret; - }, - - attrHooks: { - type: { - set: function( elem, value ) { - if ( !support.radioValue && value === "radio" && - nodeName( elem, "input" ) ) { - var val = elem.value; - elem.setAttribute( "type", value ); - if ( val ) { - elem.value = val; - } - return value; - } - } - } - }, - - removeAttr: function( elem, value ) { - var name, - i = 0, - - // Attribute names can contain non-HTML whitespace characters - // https://html.spec.whatwg.org/multipage/syntax.html#attributes-2 - attrNames = value && value.match( rnothtmlwhite ); - - if ( attrNames && elem.nodeType === 1 ) { - while ( ( name = attrNames[ i++ ] ) ) { - elem.removeAttribute( name ); - } - } - } -} ); - -// Hooks for boolean attributes -boolHook = { - set: function( elem, value, name ) { - if ( value === false ) { - - // Remove boolean attributes when set to false - jQuery.removeAttr( elem, name ); - } else { - elem.setAttribute( name, name ); - } - return name; - } -}; - -jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) { - var getter = attrHandle[ name ] || jQuery.find.attr; - - attrHandle[ name ] = function( elem, name, isXML ) { - var ret, handle, - lowercaseName = name.toLowerCase(); - - if ( !isXML ) { - - // Avoid an infinite loop by temporarily removing this function from the getter - handle = attrHandle[ lowercaseName ]; - attrHandle[ lowercaseName ] = ret; - ret = getter( elem, name, isXML ) != null ? - lowercaseName : - null; - attrHandle[ lowercaseName ] = handle; - } - return ret; - }; -} ); - - - - -var rfocusable = /^(?:input|select|textarea|button)$/i, - rclickable = /^(?:a|area)$/i; - -jQuery.fn.extend( { - prop: function( name, value ) { - return access( this, jQuery.prop, name, value, arguments.length > 1 ); - }, - - removeProp: function( name ) { - return this.each( function() { - delete this[ jQuery.propFix[ name ] || name ]; - } ); - } -} ); - -jQuery.extend( { - prop: function( elem, name, value ) { - var ret, hooks, - nType = elem.nodeType; - - // Don't get/set properties on text, comment and attribute nodes - if ( nType === 3 || nType === 8 || nType === 2 ) { - return; - } - - if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { - - // Fix name and attach hooks - name = jQuery.propFix[ name ] || name; - hooks = jQuery.propHooks[ name ]; - } - - if ( value !== undefined ) { - if ( hooks && "set" in hooks && - ( ret = hooks.set( elem, value, name ) ) !== undefined ) { - return ret; - } - - return ( elem[ name ] = value ); - } - - if ( hooks && "get" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) { - return ret; - } - - return elem[ name ]; - }, - - propHooks: { - tabIndex: { - get: function( elem ) { - - // Support: IE <=9 - 11 only - // elem.tabIndex doesn't always return the - // correct value when it hasn't been explicitly set - // https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ - // Use proper attribute retrieval(#12072) - var tabindex = jQuery.find.attr( elem, "tabindex" ); - - if ( tabindex ) { - return parseInt( tabindex, 10 ); - } - - if ( - rfocusable.test( elem.nodeName ) || - rclickable.test( elem.nodeName ) && - elem.href - ) { - return 0; - } - - return -1; - } - } - }, - - propFix: { - "for": "htmlFor", - "class": "className" - } -} ); - -// Support: IE <=11 only -// Accessing the selectedIndex property -// forces the browser to respect setting selected -// on the option -// The getter ensures a default option is selected -// when in an optgroup -// eslint rule "no-unused-expressions" is disabled for this code -// since it considers such accessions noop -if ( !support.optSelected ) { - jQuery.propHooks.selected = { - get: function( elem ) { - - /* eslint no-unused-expressions: "off" */ - - var parent = elem.parentNode; - if ( parent && parent.parentNode ) { - parent.parentNode.selectedIndex; - } - return null; - }, - set: function( elem ) { - - /* eslint no-unused-expressions: "off" */ - - var parent = elem.parentNode; - if ( parent ) { - parent.selectedIndex; - - if ( parent.parentNode ) { - parent.parentNode.selectedIndex; - } - } - } - }; -} - -jQuery.each( [ - "tabIndex", - "readOnly", - "maxLength", - "cellSpacing", - "cellPadding", - "rowSpan", - "colSpan", - "useMap", - "frameBorder", - "contentEditable" -], function() { - jQuery.propFix[ this.toLowerCase() ] = this; -} ); - - - - - // Strip and collapse whitespace according to HTML spec - // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace - function stripAndCollapse( value ) { - var tokens = value.match( rnothtmlwhite ) || []; - return tokens.join( " " ); - } - - -function getClass( elem ) { - return elem.getAttribute && elem.getAttribute( "class" ) || ""; -} - -function classesToArray( value ) { - if ( Array.isArray( value ) ) { - return value; - } - if ( typeof value === "string" ) { - return value.match( rnothtmlwhite ) || []; - } - return []; -} - -jQuery.fn.extend( { - addClass: function( value ) { - var classes, elem, cur, curValue, clazz, j, finalValue, - i = 0; - - if ( isFunction( value ) ) { - return this.each( function( j ) { - jQuery( this ).addClass( value.call( this, j, getClass( this ) ) ); - } ); - } - - classes = classesToArray( value ); - - if ( classes.length ) { - while ( ( elem = this[ i++ ] ) ) { - curValue = getClass( elem ); - cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); - - if ( cur ) { - j = 0; - while ( ( clazz = classes[ j++ ] ) ) { - if ( cur.indexOf( " " + clazz + " " ) < 0 ) { - cur += clazz + " "; - } - } - - // Only assign if different to avoid unneeded rendering. - finalValue = stripAndCollapse( cur ); - if ( curValue !== finalValue ) { - elem.setAttribute( "class", finalValue ); - } - } - } - } - - return this; - }, - - removeClass: function( value ) { - var classes, elem, cur, curValue, clazz, j, finalValue, - i = 0; - - if ( isFunction( value ) ) { - return this.each( function( j ) { - jQuery( this ).removeClass( value.call( this, j, getClass( this ) ) ); - } ); - } - - if ( !arguments.length ) { - return this.attr( "class", "" ); - } - - classes = classesToArray( value ); - - if ( classes.length ) { - while ( ( elem = this[ i++ ] ) ) { - curValue = getClass( elem ); - - // This expression is here for better compressibility (see addClass) - cur = elem.nodeType === 1 && ( " " + stripAndCollapse( curValue ) + " " ); - - if ( cur ) { - j = 0; - while ( ( clazz = classes[ j++ ] ) ) { - - // Remove *all* instances - while ( cur.indexOf( " " + clazz + " " ) > -1 ) { - cur = cur.replace( " " + clazz + " ", " " ); - } - } - - // Only assign if different to avoid unneeded rendering. - finalValue = stripAndCollapse( cur ); - if ( curValue !== finalValue ) { - elem.setAttribute( "class", finalValue ); - } - } - } - } - - return this; - }, - - toggleClass: function( value, stateVal ) { - var type = typeof value, - isValidValue = type === "string" || Array.isArray( value ); - - if ( typeof stateVal === "boolean" && isValidValue ) { - return stateVal ? this.addClass( value ) : this.removeClass( value ); - } - - if ( isFunction( value ) ) { - return this.each( function( i ) { - jQuery( this ).toggleClass( - value.call( this, i, getClass( this ), stateVal ), - stateVal - ); - } ); - } - - return this.each( function() { - var className, i, self, classNames; - - if ( isValidValue ) { - - // Toggle individual class names - i = 0; - self = jQuery( this ); - classNames = classesToArray( value ); - - while ( ( className = classNames[ i++ ] ) ) { - - // Check each className given, space separated list - if ( self.hasClass( className ) ) { - self.removeClass( className ); - } else { - self.addClass( className ); - } - } - - // Toggle whole class name - } else if ( value === undefined || type === "boolean" ) { - className = getClass( this ); - if ( className ) { - - // Store className if set - dataPriv.set( this, "__className__", className ); - } - - // If the element has a class name or if we're passed `false`, - // then remove the whole classname (if there was one, the above saved it). - // Otherwise bring back whatever was previously saved (if anything), - // falling back to the empty string if nothing was stored. - if ( this.setAttribute ) { - this.setAttribute( "class", - className || value === false ? - "" : - dataPriv.get( this, "__className__" ) || "" - ); - } - } - } ); - }, - - hasClass: function( selector ) { - var className, elem, - i = 0; - - className = " " + selector + " "; - while ( ( elem = this[ i++ ] ) ) { - if ( elem.nodeType === 1 && - ( " " + stripAndCollapse( getClass( elem ) ) + " " ).indexOf( className ) > -1 ) { - return true; - } - } - - return false; - } -} ); - - - - -var rreturn = /\r/g; - -jQuery.fn.extend( { - val: function( value ) { - var hooks, ret, valueIsFunction, - elem = this[ 0 ]; - - if ( !arguments.length ) { - if ( elem ) { - hooks = jQuery.valHooks[ elem.type ] || - jQuery.valHooks[ elem.nodeName.toLowerCase() ]; - - if ( hooks && - "get" in hooks && - ( ret = hooks.get( elem, "value" ) ) !== undefined - ) { - return ret; - } - - ret = elem.value; - - // Handle most common string cases - if ( typeof ret === "string" ) { - return ret.replace( rreturn, "" ); - } - - // Handle cases where value is null/undef or number - return ret == null ? "" : ret; - } - - return; - } - - valueIsFunction = isFunction( value ); - - return this.each( function( i ) { - var val; - - if ( this.nodeType !== 1 ) { - return; - } - - if ( valueIsFunction ) { - val = value.call( this, i, jQuery( this ).val() ); - } else { - val = value; - } - - // Treat null/undefined as ""; convert numbers to string - if ( val == null ) { - val = ""; - - } else if ( typeof val === "number" ) { - val += ""; - - } else if ( Array.isArray( val ) ) { - val = jQuery.map( val, function( value ) { - return value == null ? "" : value + ""; - } ); - } - - hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; - - // If set returns undefined, fall back to normal setting - if ( !hooks || !( "set" in hooks ) || hooks.set( this, val, "value" ) === undefined ) { - this.value = val; - } - } ); - } -} ); - -jQuery.extend( { - valHooks: { - option: { - get: function( elem ) { - - var val = jQuery.find.attr( elem, "value" ); - return val != null ? - val : - - // Support: IE <=10 - 11 only - // option.text throws exceptions (#14686, #14858) - // Strip and collapse whitespace - // https://html.spec.whatwg.org/#strip-and-collapse-whitespace - stripAndCollapse( jQuery.text( elem ) ); - } - }, - select: { - get: function( elem ) { - var value, option, i, - options = elem.options, - index = elem.selectedIndex, - one = elem.type === "select-one", - values = one ? null : [], - max = one ? index + 1 : options.length; - - if ( index < 0 ) { - i = max; - - } else { - i = one ? index : 0; - } - - // Loop through all the selected options - for ( ; i < max; i++ ) { - option = options[ i ]; - - // Support: IE <=9 only - // IE8-9 doesn't update selected after form reset (#2551) - if ( ( option.selected || i === index ) && - - // Don't return options that are disabled or in a disabled optgroup - !option.disabled && - ( !option.parentNode.disabled || - !nodeName( option.parentNode, "optgroup" ) ) ) { - - // Get the specific value for the option - value = jQuery( option ).val(); - - // We don't need an array for one selects - if ( one ) { - return value; - } - - // Multi-Selects return an array - values.push( value ); - } - } - - return values; - }, - - set: function( elem, value ) { - var optionSet, option, - options = elem.options, - values = jQuery.makeArray( value ), - i = options.length; - - while ( i-- ) { - option = options[ i ]; - - /* eslint-disable no-cond-assign */ - - if ( option.selected = - jQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1 - ) { - optionSet = true; - } - - /* eslint-enable no-cond-assign */ - } - - // Force browsers to behave consistently when non-matching value is set - if ( !optionSet ) { - elem.selectedIndex = -1; - } - return values; - } - } - } -} ); - -// Radios and checkboxes getter/setter -jQuery.each( [ "radio", "checkbox" ], function() { - jQuery.valHooks[ this ] = { - set: function( elem, value ) { - if ( Array.isArray( value ) ) { - return ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 ); - } - } - }; - if ( !support.checkOn ) { - jQuery.valHooks[ this ].get = function( elem ) { - return elem.getAttribute( "value" ) === null ? "on" : elem.value; - }; - } -} ); - - - - -// Return jQuery for attributes-only inclusion - - -support.focusin = "onfocusin" in window; - - -var rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, - stopPropagationCallback = function( e ) { - e.stopPropagation(); - }; - -jQuery.extend( jQuery.event, { - - trigger: function( event, data, elem, onlyHandlers ) { - - var i, cur, tmp, bubbleType, ontype, handle, special, lastElement, - eventPath = [ elem || document ], - type = hasOwn.call( event, "type" ) ? event.type : event, - namespaces = hasOwn.call( event, "namespace" ) ? event.namespace.split( "." ) : []; - - cur = lastElement = tmp = elem = elem || document; - - // Don't do events on text and comment nodes - if ( elem.nodeType === 3 || elem.nodeType === 8 ) { - return; - } - - // focus/blur morphs to focusin/out; ensure we're not firing them right now - if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { - return; - } - - if ( type.indexOf( "." ) > -1 ) { - - // Namespaced trigger; create a regexp to match event type in handle() - namespaces = type.split( "." ); - type = namespaces.shift(); - namespaces.sort(); - } - ontype = type.indexOf( ":" ) < 0 && "on" + type; - - // Caller can pass in a jQuery.Event object, Object, or just an event type string - event = event[ jQuery.expando ] ? - event : - new jQuery.Event( type, typeof event === "object" && event ); - - // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) - event.isTrigger = onlyHandlers ? 2 : 3; - event.namespace = namespaces.join( "." ); - event.rnamespace = event.namespace ? - new RegExp( "(^|\\.)" + namespaces.join( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) : - null; - - // Clean up the event in case it is being reused - event.result = undefined; - if ( !event.target ) { - event.target = elem; - } - - // Clone any incoming data and prepend the event, creating the handler arg list - data = data == null ? - [ event ] : - jQuery.makeArray( data, [ event ] ); - - // Allow special events to draw outside the lines - special = jQuery.event.special[ type ] || {}; - if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { - return; - } - - // Determine event propagation path in advance, per W3C events spec (#9951) - // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) - if ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) { - - bubbleType = special.delegateType || type; - if ( !rfocusMorph.test( bubbleType + type ) ) { - cur = cur.parentNode; - } - for ( ; cur; cur = cur.parentNode ) { - eventPath.push( cur ); - tmp = cur; - } - - // Only add window if we got to document (e.g., not plain obj or detached DOM) - if ( tmp === ( elem.ownerDocument || document ) ) { - eventPath.push( tmp.defaultView || tmp.parentWindow || window ); - } - } - - // Fire handlers on the event path - i = 0; - while ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) { - lastElement = cur; - event.type = i > 1 ? - bubbleType : - special.bindType || type; - - // jQuery handler - handle = ( dataPriv.get( cur, "events" ) || {} )[ event.type ] && - dataPriv.get( cur, "handle" ); - if ( handle ) { - handle.apply( cur, data ); - } - - // Native handler - handle = ontype && cur[ ontype ]; - if ( handle && handle.apply && acceptData( cur ) ) { - event.result = handle.apply( cur, data ); - if ( event.result === false ) { - event.preventDefault(); - } - } - } - event.type = type; - - // If nobody prevented the default action, do it now - if ( !onlyHandlers && !event.isDefaultPrevented() ) { - - if ( ( !special._default || - special._default.apply( eventPath.pop(), data ) === false ) && - acceptData( elem ) ) { - - // Call a native DOM method on the target with the same name as the event. - // Don't do default actions on window, that's where global variables be (#6170) - if ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) { - - // Don't re-trigger an onFOO event when we call its FOO() method - tmp = elem[ ontype ]; - - if ( tmp ) { - elem[ ontype ] = null; - } - - // Prevent re-triggering of the same event, since we already bubbled it above - jQuery.event.triggered = type; - - if ( event.isPropagationStopped() ) { - lastElement.addEventListener( type, stopPropagationCallback ); - } - - elem[ type ](); - - if ( event.isPropagationStopped() ) { - lastElement.removeEventListener( type, stopPropagationCallback ); - } - - jQuery.event.triggered = undefined; - - if ( tmp ) { - elem[ ontype ] = tmp; - } - } - } - } - - return event.result; - }, - - // Piggyback on a donor event to simulate a different one - // Used only for `focus(in | out)` events - simulate: function( type, elem, event ) { - var e = jQuery.extend( - new jQuery.Event(), - event, - { - type: type, - isSimulated: true - } - ); - - jQuery.event.trigger( e, null, elem ); - } - -} ); - -jQuery.fn.extend( { - - trigger: function( type, data ) { - return this.each( function() { - jQuery.event.trigger( type, data, this ); - } ); - }, - triggerHandler: function( type, data ) { - var elem = this[ 0 ]; - if ( elem ) { - return jQuery.event.trigger( type, data, elem, true ); - } - } -} ); - - -// Support: Firefox <=44 -// Firefox doesn't have focus(in | out) events -// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787 -// -// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1 -// focus(in | out) events fire after focus & blur events, -// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order -// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857 -if ( !support.focusin ) { - jQuery.each( { focus: "focusin", blur: "focusout" }, function( orig, fix ) { - - // Attach a single capturing handler on the document while someone wants focusin/focusout - var handler = function( event ) { - jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) ); - }; - - jQuery.event.special[ fix ] = { - setup: function() { - var doc = this.ownerDocument || this, - attaches = dataPriv.access( doc, fix ); - - if ( !attaches ) { - doc.addEventListener( orig, handler, true ); - } - dataPriv.access( doc, fix, ( attaches || 0 ) + 1 ); - }, - teardown: function() { - var doc = this.ownerDocument || this, - attaches = dataPriv.access( doc, fix ) - 1; - - if ( !attaches ) { - doc.removeEventListener( orig, handler, true ); - dataPriv.remove( doc, fix ); - - } else { - dataPriv.access( doc, fix, attaches ); - } - } - }; - } ); -} -var location = window.location; - -var nonce = Date.now(); - -var rquery = ( /\?/ ); - - - -// Cross-browser xml parsing -jQuery.parseXML = function( data ) { - var xml; - if ( !data || typeof data !== "string" ) { - return null; - } - - // Support: IE 9 - 11 only - // IE throws on parseFromString with invalid input. - try { - xml = ( new window.DOMParser() ).parseFromString( data, "text/xml" ); - } catch ( e ) { - xml = undefined; - } - - if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) { - jQuery.error( "Invalid XML: " + data ); - } - return xml; -}; - - -var - rbracket = /\[\]$/, - rCRLF = /\r?\n/g, - rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i, - rsubmittable = /^(?:input|select|textarea|keygen)/i; - -function buildParams( prefix, obj, traditional, add ) { - var name; - - if ( Array.isArray( obj ) ) { - - // Serialize array item. - jQuery.each( obj, function( i, v ) { - if ( traditional || rbracket.test( prefix ) ) { - - // Treat each array item as a scalar. - add( prefix, v ); - - } else { - - // Item is non-scalar (array or object), encode its numeric index. - buildParams( - prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]", - v, - traditional, - add - ); - } - } ); - - } else if ( !traditional && toType( obj ) === "object" ) { - - // Serialize object item. - for ( name in obj ) { - buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add ); - } - - } else { - - // Serialize scalar item. - add( prefix, obj ); - } -} - -// Serialize an array of form elements or a set of -// key/values into a query string -jQuery.param = function( a, traditional ) { - var prefix, - s = [], - add = function( key, valueOrFunction ) { - - // If value is a function, invoke it and use its return value - var value = isFunction( valueOrFunction ) ? - valueOrFunction() : - valueOrFunction; - - s[ s.length ] = encodeURIComponent( key ) + "=" + - encodeURIComponent( value == null ? "" : value ); - }; - - if ( a == null ) { - return ""; - } - - // If an array was passed in, assume that it is an array of form elements. - if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { - - // Serialize the form elements - jQuery.each( a, function() { - add( this.name, this.value ); - } ); - - } else { - - // If traditional, encode the "old" way (the way 1.3.2 or older - // did it), otherwise encode params recursively. - for ( prefix in a ) { - buildParams( prefix, a[ prefix ], traditional, add ); - } - } - - // Return the resulting serialization - return s.join( "&" ); -}; - -jQuery.fn.extend( { - serialize: function() { - return jQuery.param( this.serializeArray() ); - }, - serializeArray: function() { - return this.map( function() { - - // Can add propHook for "elements" to filter or add form elements - var elements = jQuery.prop( this, "elements" ); - return elements ? jQuery.makeArray( elements ) : this; - } ) - .filter( function() { - var type = this.type; - - // Use .is( ":disabled" ) so that fieldset[disabled] works - return this.name && !jQuery( this ).is( ":disabled" ) && - rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && - ( this.checked || !rcheckableType.test( type ) ); - } ) - .map( function( i, elem ) { - var val = jQuery( this ).val(); - - if ( val == null ) { - return null; - } - - if ( Array.isArray( val ) ) { - return jQuery.map( val, function( val ) { - return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; - } ); - } - - return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) }; - } ).get(); - } -} ); - - -var - r20 = /%20/g, - rhash = /#.*$/, - rantiCache = /([?&])_=[^&]*/, - rheaders = /^(.*?):[ \t]*([^\r\n]*)$/mg, - - // #7653, #8125, #8152: local protocol detection - rlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, - rnoContent = /^(?:GET|HEAD)$/, - rprotocol = /^\/\//, - - /* Prefilters - * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example) - * 2) These are called: - * - BEFORE asking for a transport - * - AFTER param serialization (s.data is a string if s.processData is true) - * 3) key is the dataType - * 4) the catchall symbol "*" can be used - * 5) execution will start with transport dataType and THEN continue down to "*" if needed - */ - prefilters = {}, - - /* Transports bindings - * 1) key is the dataType - * 2) the catchall symbol "*" can be used - * 3) selection will start with transport dataType and THEN go to "*" if needed - */ - transports = {}, - - // Avoid comment-prolog char sequence (#10098); must appease lint and evade compression - allTypes = "*/".concat( "*" ), - - // Anchor tag for parsing the document origin - originAnchor = document.createElement( "a" ); - originAnchor.href = location.href; - -// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport -function addToPrefiltersOrTransports( structure ) { - - // dataTypeExpression is optional and defaults to "*" - return function( dataTypeExpression, func ) { - - if ( typeof dataTypeExpression !== "string" ) { - func = dataTypeExpression; - dataTypeExpression = "*"; - } - - var dataType, - i = 0, - dataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || []; - - if ( isFunction( func ) ) { - - // For each dataType in the dataTypeExpression - while ( ( dataType = dataTypes[ i++ ] ) ) { - - // Prepend if requested - if ( dataType[ 0 ] === "+" ) { - dataType = dataType.slice( 1 ) || "*"; - ( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func ); - - // Otherwise append - } else { - ( structure[ dataType ] = structure[ dataType ] || [] ).push( func ); - } - } - } - }; -} - -// Base inspection function for prefilters and transports -function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) { - - var inspected = {}, - seekingTransport = ( structure === transports ); - - function inspect( dataType ) { - var selected; - inspected[ dataType ] = true; - jQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) { - var dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR ); - if ( typeof dataTypeOrTransport === "string" && - !seekingTransport && !inspected[ dataTypeOrTransport ] ) { - - options.dataTypes.unshift( dataTypeOrTransport ); - inspect( dataTypeOrTransport ); - return false; - } else if ( seekingTransport ) { - return !( selected = dataTypeOrTransport ); - } - } ); - return selected; - } - - return inspect( options.dataTypes[ 0 ] ) || !inspected[ "*" ] && inspect( "*" ); -} - -// A special extend for ajax options -// that takes "flat" options (not to be deep extended) -// Fixes #9887 -function ajaxExtend( target, src ) { - var key, deep, - flatOptions = jQuery.ajaxSettings.flatOptions || {}; - - for ( key in src ) { - if ( src[ key ] !== undefined ) { - ( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ]; - } - } - if ( deep ) { - jQuery.extend( true, target, deep ); - } - - return target; -} - -/* Handles responses to an ajax request: - * - finds the right dataType (mediates between content-type and expected dataType) - * - returns the corresponding response - */ -function ajaxHandleResponses( s, jqXHR, responses ) { - - var ct, type, finalDataType, firstDataType, - contents = s.contents, - dataTypes = s.dataTypes; - - // Remove auto dataType and get content-type in the process - while ( dataTypes[ 0 ] === "*" ) { - dataTypes.shift(); - if ( ct === undefined ) { - ct = s.mimeType || jqXHR.getResponseHeader( "Content-Type" ); - } - } - - // Check if we're dealing with a known content-type - if ( ct ) { - for ( type in contents ) { - if ( contents[ type ] && contents[ type ].test( ct ) ) { - dataTypes.unshift( type ); - break; - } - } - } - - // Check to see if we have a response for the expected dataType - if ( dataTypes[ 0 ] in responses ) { - finalDataType = dataTypes[ 0 ]; - } else { - - // Try convertible dataTypes - for ( type in responses ) { - if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[ 0 ] ] ) { - finalDataType = type; - break; - } - if ( !firstDataType ) { - firstDataType = type; - } - } - - // Or just use first one - finalDataType = finalDataType || firstDataType; - } - - // If we found a dataType - // We add the dataType to the list if needed - // and return the corresponding response - if ( finalDataType ) { - if ( finalDataType !== dataTypes[ 0 ] ) { - dataTypes.unshift( finalDataType ); - } - return responses[ finalDataType ]; - } -} - -/* Chain conversions given the request and the original response - * Also sets the responseXXX fields on the jqXHR instance - */ -function ajaxConvert( s, response, jqXHR, isSuccess ) { - var conv2, current, conv, tmp, prev, - converters = {}, - - // Work with a copy of dataTypes in case we need to modify it for conversion - dataTypes = s.dataTypes.slice(); - - // Create converters map with lowercased keys - if ( dataTypes[ 1 ] ) { - for ( conv in s.converters ) { - converters[ conv.toLowerCase() ] = s.converters[ conv ]; - } - } - - current = dataTypes.shift(); - - // Convert to each sequential dataType - while ( current ) { - - if ( s.responseFields[ current ] ) { - jqXHR[ s.responseFields[ current ] ] = response; - } - - // Apply the dataFilter if provided - if ( !prev && isSuccess && s.dataFilter ) { - response = s.dataFilter( response, s.dataType ); - } - - prev = current; - current = dataTypes.shift(); - - if ( current ) { - - // There's only work to do if current dataType is non-auto - if ( current === "*" ) { - - current = prev; - - // Convert response if prev dataType is non-auto and differs from current - } else if ( prev !== "*" && prev !== current ) { - - // Seek a direct converter - conv = converters[ prev + " " + current ] || converters[ "* " + current ]; - - // If none found, seek a pair - if ( !conv ) { - for ( conv2 in converters ) { - - // If conv2 outputs current - tmp = conv2.split( " " ); - if ( tmp[ 1 ] === current ) { - - // If prev can be converted to accepted input - conv = converters[ prev + " " + tmp[ 0 ] ] || - converters[ "* " + tmp[ 0 ] ]; - if ( conv ) { - - // Condense equivalence converters - if ( conv === true ) { - conv = converters[ conv2 ]; - - // Otherwise, insert the intermediate dataType - } else if ( converters[ conv2 ] !== true ) { - current = tmp[ 0 ]; - dataTypes.unshift( tmp[ 1 ] ); - } - break; - } - } - } - } - - // Apply converter (if not an equivalence) - if ( conv !== true ) { - - // Unless errors are allowed to bubble, catch and return them - if ( conv && s.throws ) { - response = conv( response ); - } else { - try { - response = conv( response ); - } catch ( e ) { - return { - state: "parsererror", - error: conv ? e : "No conversion from " + prev + " to " + current - }; - } - } - } - } - } - } - - return { state: "success", data: response }; -} - -jQuery.extend( { - - // Counter for holding the number of active queries - active: 0, - - // Last-Modified header cache for next request - lastModified: {}, - etag: {}, - - ajaxSettings: { - url: location.href, - type: "GET", - isLocal: rlocalProtocol.test( location.protocol ), - global: true, - processData: true, - async: true, - contentType: "application/x-www-form-urlencoded; charset=UTF-8", - - /* - timeout: 0, - data: null, - dataType: null, - username: null, - password: null, - cache: null, - throws: false, - traditional: false, - headers: {}, - */ - - accepts: { - "*": allTypes, - text: "text/plain", - html: "text/html", - xml: "application/xml, text/xml", - json: "application/json, text/javascript" - }, - - contents: { - xml: /\bxml\b/, - html: /\bhtml/, - json: /\bjson\b/ - }, - - responseFields: { - xml: "responseXML", - text: "responseText", - json: "responseJSON" - }, - - // Data converters - // Keys separate source (or catchall "*") and destination types with a single space - converters: { - - // Convert anything to text - "* text": String, - - // Text to html (true = no transformation) - "text html": true, - - // Evaluate text as a json expression - "text json": JSON.parse, - - // Parse text as xml - "text xml": jQuery.parseXML - }, - - // For options that shouldn't be deep extended: - // you can add your own custom options here if - // and when you create one that shouldn't be - // deep extended (see ajaxExtend) - flatOptions: { - url: true, - context: true - } - }, - - // Creates a full fledged settings object into target - // with both ajaxSettings and settings fields. - // If target is omitted, writes into ajaxSettings. - ajaxSetup: function( target, settings ) { - return settings ? - - // Building a settings object - ajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) : - - // Extending ajaxSettings - ajaxExtend( jQuery.ajaxSettings, target ); - }, - - ajaxPrefilter: addToPrefiltersOrTransports( prefilters ), - ajaxTransport: addToPrefiltersOrTransports( transports ), - - // Main method - ajax: function( url, options ) { - - // If url is an object, simulate pre-1.5 signature - if ( typeof url === "object" ) { - options = url; - url = undefined; - } - - // Force options to be an object - options = options || {}; - - var transport, - - // URL without anti-cache param - cacheURL, - - // Response headers - responseHeadersString, - responseHeaders, - - // timeout handle - timeoutTimer, - - // Url cleanup var - urlAnchor, - - // Request state (becomes false upon send and true upon completion) - completed, - - // To know if global events are to be dispatched - fireGlobals, - - // Loop variable - i, - - // uncached part of the url - uncached, - - // Create the final options object - s = jQuery.ajaxSetup( {}, options ), - - // Callbacks context - callbackContext = s.context || s, - - // Context for global events is callbackContext if it is a DOM node or jQuery collection - globalEventContext = s.context && - ( callbackContext.nodeType || callbackContext.jquery ) ? - jQuery( callbackContext ) : - jQuery.event, - - // Deferreds - deferred = jQuery.Deferred(), - completeDeferred = jQuery.Callbacks( "once memory" ), - - // Status-dependent callbacks - statusCode = s.statusCode || {}, - - // Headers (they are sent all at once) - requestHeaders = {}, - requestHeadersNames = {}, - - // Default abort message - strAbort = "canceled", - - // Fake xhr - jqXHR = { - readyState: 0, - - // Builds headers hashtable if needed - getResponseHeader: function( key ) { - var match; - if ( completed ) { - if ( !responseHeaders ) { - responseHeaders = {}; - while ( ( match = rheaders.exec( responseHeadersString ) ) ) { - responseHeaders[ match[ 1 ].toLowerCase() + " " ] = - ( responseHeaders[ match[ 1 ].toLowerCase() + " " ] || [] ) - .concat( match[ 2 ] ); - } - } - match = responseHeaders[ key.toLowerCase() + " " ]; - } - return match == null ? null : match.join( ", " ); - }, - - // Raw string - getAllResponseHeaders: function() { - return completed ? responseHeadersString : null; - }, - - // Caches the header - setRequestHeader: function( name, value ) { - if ( completed == null ) { - name = requestHeadersNames[ name.toLowerCase() ] = - requestHeadersNames[ name.toLowerCase() ] || name; - requestHeaders[ name ] = value; - } - return this; - }, - - // Overrides response content-type header - overrideMimeType: function( type ) { - if ( completed == null ) { - s.mimeType = type; - } - return this; - }, - - // Status-dependent callbacks - statusCode: function( map ) { - var code; - if ( map ) { - if ( completed ) { - - // Execute the appropriate callbacks - jqXHR.always( map[ jqXHR.status ] ); - } else { - - // Lazy-add the new callbacks in a way that preserves old ones - for ( code in map ) { - statusCode[ code ] = [ statusCode[ code ], map[ code ] ]; - } - } - } - return this; - }, - - // Cancel the request - abort: function( statusText ) { - var finalText = statusText || strAbort; - if ( transport ) { - transport.abort( finalText ); - } - done( 0, finalText ); - return this; - } - }; - - // Attach deferreds - deferred.promise( jqXHR ); - - // Add protocol if not provided (prefilters might expect it) - // Handle falsy url in the settings object (#10093: consistency with old signature) - // We also use the url parameter if available - s.url = ( ( url || s.url || location.href ) + "" ) - .replace( rprotocol, location.protocol + "//" ); - - // Alias method option to type as per ticket #12004 - s.type = options.method || options.type || s.method || s.type; - - // Extract dataTypes list - s.dataTypes = ( s.dataType || "*" ).toLowerCase().match( rnothtmlwhite ) || [ "" ]; - - // A cross-domain request is in order when the origin doesn't match the current origin. - if ( s.crossDomain == null ) { - urlAnchor = document.createElement( "a" ); - - // Support: IE <=8 - 11, Edge 12 - 15 - // IE throws exception on accessing the href property if url is malformed, - // e.g. http://example.com:80x/ - try { - urlAnchor.href = s.url; - - // Support: IE <=8 - 11 only - // Anchor's host property isn't correctly set when s.url is relative - urlAnchor.href = urlAnchor.href; - s.crossDomain = originAnchor.protocol + "//" + originAnchor.host !== - urlAnchor.protocol + "//" + urlAnchor.host; - } catch ( e ) { - - // If there is an error parsing the URL, assume it is crossDomain, - // it can be rejected by the transport if it is invalid - s.crossDomain = true; - } - } - - // Convert data if not already a string - if ( s.data && s.processData && typeof s.data !== "string" ) { - s.data = jQuery.param( s.data, s.traditional ); - } - - // Apply prefilters - inspectPrefiltersOrTransports( prefilters, s, options, jqXHR ); - - // If request was aborted inside a prefilter, stop there - if ( completed ) { - return jqXHR; - } - - // We can fire global events as of now if asked to - // Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118) - fireGlobals = jQuery.event && s.global; - - // Watch for a new set of requests - if ( fireGlobals && jQuery.active++ === 0 ) { - jQuery.event.trigger( "ajaxStart" ); - } - - // Uppercase the type - s.type = s.type.toUpperCase(); - - // Determine if request has content - s.hasContent = !rnoContent.test( s.type ); - - // Save the URL in case we're toying with the If-Modified-Since - // and/or If-None-Match header later on - // Remove hash to simplify url manipulation - cacheURL = s.url.replace( rhash, "" ); - - // More options handling for requests with no content - if ( !s.hasContent ) { - - // Remember the hash so we can put it back - uncached = s.url.slice( cacheURL.length ); - - // If data is available and should be processed, append data to url - if ( s.data && ( s.processData || typeof s.data === "string" ) ) { - cacheURL += ( rquery.test( cacheURL ) ? "&" : "?" ) + s.data; - - // #9682: remove data so that it's not used in an eventual retry - delete s.data; - } - - // Add or update anti-cache param if needed - if ( s.cache === false ) { - cacheURL = cacheURL.replace( rantiCache, "$1" ); - uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce++ ) + uncached; - } - - // Put hash and anti-cache on the URL that will be requested (gh-1732) - s.url = cacheURL + uncached; - - // Change '%20' to '+' if this is encoded form body content (gh-2658) - } else if ( s.data && s.processData && - ( s.contentType || "" ).indexOf( "application/x-www-form-urlencoded" ) === 0 ) { - s.data = s.data.replace( r20, "+" ); - } - - // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. - if ( s.ifModified ) { - if ( jQuery.lastModified[ cacheURL ] ) { - jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ cacheURL ] ); - } - if ( jQuery.etag[ cacheURL ] ) { - jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ cacheURL ] ); - } - } - - // Set the correct header, if data is being sent - if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) { - jqXHR.setRequestHeader( "Content-Type", s.contentType ); - } - - // Set the Accepts header for the server, depending on the dataType - jqXHR.setRequestHeader( - "Accept", - s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ? - s.accepts[ s.dataTypes[ 0 ] ] + - ( s.dataTypes[ 0 ] !== "*" ? ", " + allTypes + "; q=0.01" : "" ) : - s.accepts[ "*" ] - ); - - // Check for headers option - for ( i in s.headers ) { - jqXHR.setRequestHeader( i, s.headers[ i ] ); - } - - // Allow custom headers/mimetypes and early abort - if ( s.beforeSend && - ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) { - - // Abort if not done already and return - return jqXHR.abort(); - } - - // Aborting is no longer a cancellation - strAbort = "abort"; - - // Install callbacks on deferreds - completeDeferred.add( s.complete ); - jqXHR.done( s.success ); - jqXHR.fail( s.error ); - - // Get transport - transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR ); - - // If no transport, we auto-abort - if ( !transport ) { - done( -1, "No Transport" ); - } else { - jqXHR.readyState = 1; - - // Send global event - if ( fireGlobals ) { - globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] ); - } - - // If request was aborted inside ajaxSend, stop there - if ( completed ) { - return jqXHR; - } - - // Timeout - if ( s.async && s.timeout > 0 ) { - timeoutTimer = window.setTimeout( function() { - jqXHR.abort( "timeout" ); - }, s.timeout ); - } - - try { - completed = false; - transport.send( requestHeaders, done ); - } catch ( e ) { - - // Rethrow post-completion exceptions - if ( completed ) { - throw e; - } - - // Propagate others as results - done( -1, e ); - } - } - - // Callback for when everything is done - function done( status, nativeStatusText, responses, headers ) { - var isSuccess, success, error, response, modified, - statusText = nativeStatusText; - - // Ignore repeat invocations - if ( completed ) { - return; - } - - completed = true; - - // Clear timeout if it exists - if ( timeoutTimer ) { - window.clearTimeout( timeoutTimer ); - } - - // Dereference transport for early garbage collection - // (no matter how long the jqXHR object will be used) - transport = undefined; - - // Cache response headers - responseHeadersString = headers || ""; - - // Set readyState - jqXHR.readyState = status > 0 ? 4 : 0; - - // Determine if successful - isSuccess = status >= 200 && status < 300 || status === 304; - - // Get response data - if ( responses ) { - response = ajaxHandleResponses( s, jqXHR, responses ); - } - - // Convert no matter what (that way responseXXX fields are always set) - response = ajaxConvert( s, response, jqXHR, isSuccess ); - - // If successful, handle type chaining - if ( isSuccess ) { - - // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode. - if ( s.ifModified ) { - modified = jqXHR.getResponseHeader( "Last-Modified" ); - if ( modified ) { - jQuery.lastModified[ cacheURL ] = modified; - } - modified = jqXHR.getResponseHeader( "etag" ); - if ( modified ) { - jQuery.etag[ cacheURL ] = modified; - } - } - - // if no content - if ( status === 204 || s.type === "HEAD" ) { - statusText = "nocontent"; - - // if not modified - } else if ( status === 304 ) { - statusText = "notmodified"; - - // If we have data, let's convert it - } else { - statusText = response.state; - success = response.data; - error = response.error; - isSuccess = !error; - } - } else { - - // Extract error from statusText and normalize for non-aborts - error = statusText; - if ( status || !statusText ) { - statusText = "error"; - if ( status < 0 ) { - status = 0; - } - } - } - - // Set data for the fake xhr object - jqXHR.status = status; - jqXHR.statusText = ( nativeStatusText || statusText ) + ""; - - // Success/Error - if ( isSuccess ) { - deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] ); - } else { - deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] ); - } - - // Status-dependent callbacks - jqXHR.statusCode( statusCode ); - statusCode = undefined; - - if ( fireGlobals ) { - globalEventContext.trigger( isSuccess ? "ajaxSuccess" : "ajaxError", - [ jqXHR, s, isSuccess ? success : error ] ); - } - - // Complete - completeDeferred.fireWith( callbackContext, [ jqXHR, statusText ] ); - - if ( fireGlobals ) { - globalEventContext.trigger( "ajaxComplete", [ jqXHR, s ] ); - - // Handle the global AJAX counter - if ( !( --jQuery.active ) ) { - jQuery.event.trigger( "ajaxStop" ); - } - } - } - - return jqXHR; - }, - - getJSON: function( url, data, callback ) { - return jQuery.get( url, data, callback, "json" ); - }, - - getScript: function( url, callback ) { - return jQuery.get( url, undefined, callback, "script" ); - } -} ); - -jQuery.each( [ "get", "post" ], function( i, method ) { - jQuery[ method ] = function( url, data, callback, type ) { - - // Shift arguments if data argument was omitted - if ( isFunction( data ) ) { - type = type || callback; - callback = data; - data = undefined; - } - - // The url can be an options object (which then must have .url) - return jQuery.ajax( jQuery.extend( { - url: url, - type: method, - dataType: type, - data: data, - success: callback - }, jQuery.isPlainObject( url ) && url ) ); - }; -} ); - - -jQuery._evalUrl = function( url, options ) { - return jQuery.ajax( { - url: url, - - // Make this explicit, since user can override this through ajaxSetup (#11264) - type: "GET", - dataType: "script", - cache: true, - async: false, - global: false, - - // Only evaluate the response if it is successful (gh-4126) - // dataFilter is not invoked for failure responses, so using it instead - // of the default converter is kludgy but it works. - converters: { - "text script": function() {} - }, - dataFilter: function( response ) { - jQuery.globalEval( response, options ); - } - } ); -}; - - -jQuery.fn.extend( { - wrapAll: function( html ) { - var wrap; - - if ( this[ 0 ] ) { - if ( isFunction( html ) ) { - html = html.call( this[ 0 ] ); - } - - // The elements to wrap the target around - wrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true ); - - if ( this[ 0 ].parentNode ) { - wrap.insertBefore( this[ 0 ] ); - } - - wrap.map( function() { - var elem = this; - - while ( elem.firstElementChild ) { - elem = elem.firstElementChild; - } - - return elem; - } ).append( this ); - } - - return this; - }, - - wrapInner: function( html ) { - if ( isFunction( html ) ) { - return this.each( function( i ) { - jQuery( this ).wrapInner( html.call( this, i ) ); - } ); - } - - return this.each( function() { - var self = jQuery( this ), - contents = self.contents(); - - if ( contents.length ) { - contents.wrapAll( html ); - - } else { - self.append( html ); - } - } ); - }, - - wrap: function( html ) { - var htmlIsFunction = isFunction( html ); - - return this.each( function( i ) { - jQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html ); - } ); - }, - - unwrap: function( selector ) { - this.parent( selector ).not( "body" ).each( function() { - jQuery( this ).replaceWith( this.childNodes ); - } ); - return this; - } -} ); - - -jQuery.expr.pseudos.hidden = function( elem ) { - return !jQuery.expr.pseudos.visible( elem ); -}; -jQuery.expr.pseudos.visible = function( elem ) { - return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length ); -}; - - - - -jQuery.ajaxSettings.xhr = function() { - try { - return new window.XMLHttpRequest(); - } catch ( e ) {} -}; - -var xhrSuccessStatus = { - - // File protocol always yields status code 0, assume 200 - 0: 200, - - // Support: IE <=9 only - // #1450: sometimes IE returns 1223 when it should be 204 - 1223: 204 - }, - xhrSupported = jQuery.ajaxSettings.xhr(); - -support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported ); -support.ajax = xhrSupported = !!xhrSupported; - -jQuery.ajaxTransport( function( options ) { - var callback, errorCallback; - - // Cross domain only allowed if supported through XMLHttpRequest - if ( support.cors || xhrSupported && !options.crossDomain ) { - return { - send: function( headers, complete ) { - var i, - xhr = options.xhr(); - - xhr.open( - options.type, - options.url, - options.async, - options.username, - options.password - ); - - // Apply custom fields if provided - if ( options.xhrFields ) { - for ( i in options.xhrFields ) { - xhr[ i ] = options.xhrFields[ i ]; - } - } - - // Override mime type if needed - if ( options.mimeType && xhr.overrideMimeType ) { - xhr.overrideMimeType( options.mimeType ); - } - - // X-Requested-With header - // For cross-domain requests, seeing as conditions for a preflight are - // akin to a jigsaw puzzle, we simply never set it to be sure. - // (it can always be set on a per-request basis or even using ajaxSetup) - // For same-domain requests, won't change header if already provided. - if ( !options.crossDomain && !headers[ "X-Requested-With" ] ) { - headers[ "X-Requested-With" ] = "XMLHttpRequest"; - } - - // Set headers - for ( i in headers ) { - xhr.setRequestHeader( i, headers[ i ] ); - } - - // Callback - callback = function( type ) { - return function() { - if ( callback ) { - callback = errorCallback = xhr.onload = - xhr.onerror = xhr.onabort = xhr.ontimeout = - xhr.onreadystatechange = null; - - if ( type === "abort" ) { - xhr.abort(); - } else if ( type === "error" ) { - - // Support: IE <=9 only - // On a manual native abort, IE9 throws - // errors on any property access that is not readyState - if ( typeof xhr.status !== "number" ) { - complete( 0, "error" ); - } else { - complete( - - // File: protocol always yields status 0; see #8605, #14207 - xhr.status, - xhr.statusText - ); - } - } else { - complete( - xhrSuccessStatus[ xhr.status ] || xhr.status, - xhr.statusText, - - // Support: IE <=9 only - // IE9 has no XHR2 but throws on binary (trac-11426) - // For XHR2 non-text, let the caller handle it (gh-2498) - ( xhr.responseType || "text" ) !== "text" || - typeof xhr.responseText !== "string" ? - { binary: xhr.response } : - { text: xhr.responseText }, - xhr.getAllResponseHeaders() - ); - } - } - }; - }; - - // Listen to events - xhr.onload = callback(); - errorCallback = xhr.onerror = xhr.ontimeout = callback( "error" ); - - // Support: IE 9 only - // Use onreadystatechange to replace onabort - // to handle uncaught aborts - if ( xhr.onabort !== undefined ) { - xhr.onabort = errorCallback; - } else { - xhr.onreadystatechange = function() { - - // Check readyState before timeout as it changes - if ( xhr.readyState === 4 ) { - - // Allow onerror to be called first, - // but that will not handle a native abort - // Also, save errorCallback to a variable - // as xhr.onerror cannot be accessed - window.setTimeout( function() { - if ( callback ) { - errorCallback(); - } - } ); - } - }; - } - - // Create the abort callback - callback = callback( "abort" ); - - try { - - // Do send the request (this may raise an exception) - xhr.send( options.hasContent && options.data || null ); - } catch ( e ) { - - // #14683: Only rethrow if this hasn't been notified as an error yet - if ( callback ) { - throw e; - } - } - }, - - abort: function() { - if ( callback ) { - callback(); - } - } - }; - } -} ); - - - - -// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432) -jQuery.ajaxPrefilter( function( s ) { - if ( s.crossDomain ) { - s.contents.script = false; - } -} ); - -// Install script dataType -jQuery.ajaxSetup( { - accepts: { - script: "text/javascript, application/javascript, " + - "application/ecmascript, application/x-ecmascript" - }, - contents: { - script: /\b(?:java|ecma)script\b/ - }, - converters: { - "text script": function( text ) { - jQuery.globalEval( text ); - return text; - } - } -} ); - -// Handle cache's special case and crossDomain -jQuery.ajaxPrefilter( "script", function( s ) { - if ( s.cache === undefined ) { - s.cache = false; - } - if ( s.crossDomain ) { - s.type = "GET"; - } -} ); - -// Bind script tag hack transport -jQuery.ajaxTransport( "script", function( s ) { - - // This transport only deals with cross domain or forced-by-attrs requests - if ( s.crossDomain || s.scriptAttrs ) { - var script, callback; - return { - send: function( _, complete ) { - script = jQuery( "\r\n"; - -// inject VBScript -document.write(IEBinaryToArray_ByteStr_Script); - -global.JSZipUtils._getBinaryFromXHR = function (xhr) { - var binary = xhr.responseBody; - var byteMapping = {}; - for ( var i = 0; i < 256; i++ ) { - for ( var j = 0; j < 256; j++ ) { - byteMapping[ String.fromCharCode( i + (j << 8) ) ] = - String.fromCharCode(i) + String.fromCharCode(j); - } - } - var rawBytes = IEBinaryToArray_ByteStr(binary); - var lastChr = IEBinaryToArray_ByteStr_Last(binary); - return rawBytes.replace(/[\s\S]/g, function( match ) { - return byteMapping[match]; - }) + lastChr; -}; - -// enforcing Stuk's coding style -// vim: set shiftwidth=4 softtabstop=4: - -},{}]},{},[1]) -; diff --git a/docs/site/testapidocs/script-dir/jszip-utils/dist/jszip-utils-ie.min.js b/docs/site/testapidocs/script-dir/jszip-utils/dist/jszip-utils-ie.min.js deleted file mode 100644 index 93d8bc8e..00000000 --- a/docs/site/testapidocs/script-dir/jszip-utils/dist/jszip-utils-ie.min.js +++ /dev/null @@ -1,10 +0,0 @@ -/*! - -JSZipUtils - A collection of cross-browser utilities to go along with JSZip. - - -(c) 2014 Stuart Knightley, David Duponchel -Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip-utils/master/LICENSE.markdown. - -*/ -!function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};b[g][0].call(j.exports,function(a){var c=b[g][1][a];return e(c?c:a)},j,j.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g\r\n";document.write(b),a.JSZipUtils._getBinaryFromXHR=function(a){for(var b=a.responseBody,c={},d=0;256>d;d++)for(var e=0;256>e;e++)c[String.fromCharCode(d+(e<<8))]=String.fromCharCode(d)+String.fromCharCode(e);var f=IEBinaryToArray_ByteStr(b),g=IEBinaryToArray_ByteStr_Last(b);return f.replace(/[\s\S]/g,function(a){return c[a]})+g}},{}]},{},[1]); diff --git a/docs/site/testapidocs/script-dir/jszip-utils/dist/jszip-utils.js b/docs/site/testapidocs/script-dir/jszip-utils/dist/jszip-utils.js deleted file mode 100644 index 775895ec..00000000 --- a/docs/site/testapidocs/script-dir/jszip-utils/dist/jszip-utils.js +++ /dev/null @@ -1,118 +0,0 @@ -/*! - -JSZipUtils - A collection of cross-browser utilities to go along with JSZip. - - -(c) 2014 Stuart Knightley, David Duponchel -Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip-utils/master/LICENSE.markdown. - -*/ -!function(e){"object"==typeof exports?module.exports=e():"function"==typeof define&&define.amd?define(e):"undefined"!=typeof window?window.JSZipUtils=e():"undefined"!=typeof global?global.JSZipUtils=e():"undefined"!=typeof self&&(self.JSZipUtils=e())}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o - -(c) 2014 Stuart Knightley, David Duponchel -Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip-utils/master/LICENSE.markdown. - -*/ -!function(a){"object"==typeof exports?module.exports=a():"function"==typeof define&&define.amd?define(a):"undefined"!=typeof window?window.JSZipUtils=a():"undefined"!=typeof global?global.JSZipUtils=a():"undefined"!=typeof self&&(self.JSZipUtils=a())}(function(){return function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};b[g][0].call(j.exports,function(a){var c=b[g][1][a];return e(c?c:a)},j,j.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g - -(c) 2009-2016 Stuart Knightley -Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/master/LICENSE.markdown. - -JSZip uses the library pako released under the MIT license : -https://github.com/nodeca/pako/blob/master/LICENSE -*/ - -(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.JSZip = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o> 2; - enc2 = ((chr1 & 3) << 4) | (chr2 >> 4); - enc3 = remainingBytes > 1 ? (((chr2 & 15) << 2) | (chr3 >> 6)) : 64; - enc4 = remainingBytes > 2 ? (chr3 & 63) : 64; - - output.push(_keyStr.charAt(enc1) + _keyStr.charAt(enc2) + _keyStr.charAt(enc3) + _keyStr.charAt(enc4)); - - } - - return output.join(""); -}; - -// public method for decoding -exports.decode = function(input) { - var chr1, chr2, chr3; - var enc1, enc2, enc3, enc4; - var i = 0, resultIndex = 0; - - var dataUrlPrefix = "data:"; - - if (input.substr(0, dataUrlPrefix.length) === dataUrlPrefix) { - // This is a common error: people give a data url - // (data:image/png;base64,iVBOR...) with a {base64: true} and - // wonders why things don't work. - // We can detect that the string input looks like a data url but we - // *can't* be sure it is one: removing everything up to the comma would - // be too dangerous. - throw new Error("Invalid base64 input, it looks like a data url."); - } - - input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ""); - - var totalLength = input.length * 3 / 4; - if(input.charAt(input.length - 1) === _keyStr.charAt(64)) { - totalLength--; - } - if(input.charAt(input.length - 2) === _keyStr.charAt(64)) { - totalLength--; - } - if (totalLength % 1 !== 0) { - // totalLength is not an integer, the length does not match a valid - // base64 content. That can happen if: - // - the input is not a base64 content - // - the input is *almost* a base64 content, with a extra chars at the - // beginning or at the end - // - the input uses a base64 variant (base64url for example) - throw new Error("Invalid base64 input, bad content length."); - } - var output; - if (support.uint8array) { - output = new Uint8Array(totalLength|0); - } else { - output = new Array(totalLength|0); - } - - while (i < input.length) { - - enc1 = _keyStr.indexOf(input.charAt(i++)); - enc2 = _keyStr.indexOf(input.charAt(i++)); - enc3 = _keyStr.indexOf(input.charAt(i++)); - enc4 = _keyStr.indexOf(input.charAt(i++)); - - chr1 = (enc1 << 2) | (enc2 >> 4); - chr2 = ((enc2 & 15) << 4) | (enc3 >> 2); - chr3 = ((enc3 & 3) << 6) | enc4; - - output[resultIndex++] = chr1; - - if (enc3 !== 64) { - output[resultIndex++] = chr2; - } - if (enc4 !== 64) { - output[resultIndex++] = chr3; - } - - } - - return output; -}; - -},{"./support":30,"./utils":32}],2:[function(require,module,exports){ -'use strict'; - -var external = require("./external"); -var DataWorker = require('./stream/DataWorker'); -var DataLengthProbe = require('./stream/DataLengthProbe'); -var Crc32Probe = require('./stream/Crc32Probe'); -var DataLengthProbe = require('./stream/DataLengthProbe'); - -/** - * Represent a compressed object, with everything needed to decompress it. - * @constructor - * @param {number} compressedSize the size of the data compressed. - * @param {number} uncompressedSize the size of the data after decompression. - * @param {number} crc32 the crc32 of the decompressed file. - * @param {object} compression the type of compression, see lib/compressions.js. - * @param {String|ArrayBuffer|Uint8Array|Buffer} data the compressed data. - */ -function CompressedObject(compressedSize, uncompressedSize, crc32, compression, data) { - this.compressedSize = compressedSize; - this.uncompressedSize = uncompressedSize; - this.crc32 = crc32; - this.compression = compression; - this.compressedContent = data; -} - -CompressedObject.prototype = { - /** - * Create a worker to get the uncompressed content. - * @return {GenericWorker} the worker. - */ - getContentWorker : function () { - var worker = new DataWorker(external.Promise.resolve(this.compressedContent)) - .pipe(this.compression.uncompressWorker()) - .pipe(new DataLengthProbe("data_length")); - - var that = this; - worker.on("end", function () { - if(this.streamInfo['data_length'] !== that.uncompressedSize) { - throw new Error("Bug : uncompressed data size mismatch"); - } - }); - return worker; - }, - /** - * Create a worker to get the compressed content. - * @return {GenericWorker} the worker. - */ - getCompressedWorker : function () { - return new DataWorker(external.Promise.resolve(this.compressedContent)) - .withStreamInfo("compressedSize", this.compressedSize) - .withStreamInfo("uncompressedSize", this.uncompressedSize) - .withStreamInfo("crc32", this.crc32) - .withStreamInfo("compression", this.compression) - ; - } -}; - -/** - * Chain the given worker with other workers to compress the content with the - * given compresion. - * @param {GenericWorker} uncompressedWorker the worker to pipe. - * @param {Object} compression the compression object. - * @param {Object} compressionOptions the options to use when compressing. - * @return {GenericWorker} the new worker compressing the content. - */ -CompressedObject.createWorkerFrom = function (uncompressedWorker, compression, compressionOptions) { - return uncompressedWorker - .pipe(new Crc32Probe()) - .pipe(new DataLengthProbe("uncompressedSize")) - .pipe(compression.compressWorker(compressionOptions)) - .pipe(new DataLengthProbe("compressedSize")) - .withStreamInfo("compression", compression); -}; - -module.exports = CompressedObject; - -},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(require,module,exports){ -'use strict'; - -var GenericWorker = require("./stream/GenericWorker"); - -exports.STORE = { - magic: "\x00\x00", - compressWorker : function (compressionOptions) { - return new GenericWorker("STORE compression"); - }, - uncompressWorker : function () { - return new GenericWorker("STORE decompression"); - } -}; -exports.DEFLATE = require('./flate'); - -},{"./flate":7,"./stream/GenericWorker":28}],4:[function(require,module,exports){ -'use strict'; - -var utils = require('./utils'); - -/** - * The following functions come from pako, from pako/lib/zlib/crc32.js - * released under the MIT license, see pako https://github.com/nodeca/pako/ - */ - -// Use ordinary array, since untyped makes no boost here -function makeTable() { - var c, table = []; - - for(var n =0; n < 256; n++){ - c = n; - for(var k =0; k < 8; k++){ - c = ((c&1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1)); - } - table[n] = c; - } - - return table; -} - -// Create table on load. Just 255 signed longs. Not a problem. -var crcTable = makeTable(); - - -function crc32(crc, buf, len, pos) { - var t = crcTable, end = pos + len; - - crc = crc ^ (-1); - - for (var i = pos; i < end; i++ ) { - crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF]; - } - - return (crc ^ (-1)); // >>> 0; -} - -// That's all for the pako functions. - -/** - * Compute the crc32 of a string. - * This is almost the same as the function crc32, but for strings. Using the - * same function for the two use cases leads to horrible performances. - * @param {Number} crc the starting value of the crc. - * @param {String} str the string to use. - * @param {Number} len the length of the string. - * @param {Number} pos the starting position for the crc32 computation. - * @return {Number} the computed crc32. - */ -function crc32str(crc, str, len, pos) { - var t = crcTable, end = pos + len; - - crc = crc ^ (-1); - - for (var i = pos; i < end; i++ ) { - crc = (crc >>> 8) ^ t[(crc ^ str.charCodeAt(i)) & 0xFF]; - } - - return (crc ^ (-1)); // >>> 0; -} - -module.exports = function crc32wrapper(input, crc) { - if (typeof input === "undefined" || !input.length) { - return 0; - } - - var isArray = utils.getTypeOf(input) !== "string"; - - if(isArray) { - return crc32(crc|0, input, input.length, 0); - } else { - return crc32str(crc|0, input, input.length, 0); - } -}; - -},{"./utils":32}],5:[function(require,module,exports){ -'use strict'; -exports.base64 = false; -exports.binary = false; -exports.dir = false; -exports.createFolders = true; -exports.date = null; -exports.compression = null; -exports.compressionOptions = null; -exports.comment = null; -exports.unixPermissions = null; -exports.dosPermissions = null; - -},{}],6:[function(require,module,exports){ -/* global Promise */ -'use strict'; - -// load the global object first: -// - it should be better integrated in the system (unhandledRejection in node) -// - the environment may have a custom Promise implementation (see zone.js) -var ES6Promise = null; -if (typeof Promise !== "undefined") { - ES6Promise = Promise; -} else { - ES6Promise = require("lie"); -} - -/** - * Let the user use/change some implementations. - */ -module.exports = { - Promise: ES6Promise -}; - -},{"lie":37}],7:[function(require,module,exports){ -'use strict'; -var USE_TYPEDARRAY = (typeof Uint8Array !== 'undefined') && (typeof Uint16Array !== 'undefined') && (typeof Uint32Array !== 'undefined'); - -var pako = require("pako"); -var utils = require("./utils"); -var GenericWorker = require("./stream/GenericWorker"); - -var ARRAY_TYPE = USE_TYPEDARRAY ? "uint8array" : "array"; - -exports.magic = "\x08\x00"; - -/** - * Create a worker that uses pako to inflate/deflate. - * @constructor - * @param {String} action the name of the pako function to call : either "Deflate" or "Inflate". - * @param {Object} options the options to use when (de)compressing. - */ -function FlateWorker(action, options) { - GenericWorker.call(this, "FlateWorker/" + action); - - this._pako = null; - this._pakoAction = action; - this._pakoOptions = options; - // the `meta` object from the last chunk received - // this allow this worker to pass around metadata - this.meta = {}; -} - -utils.inherits(FlateWorker, GenericWorker); - -/** - * @see GenericWorker.processChunk - */ -FlateWorker.prototype.processChunk = function (chunk) { - this.meta = chunk.meta; - if (this._pako === null) { - this._createPako(); - } - this._pako.push(utils.transformTo(ARRAY_TYPE, chunk.data), false); -}; - -/** - * @see GenericWorker.flush - */ -FlateWorker.prototype.flush = function () { - GenericWorker.prototype.flush.call(this); - if (this._pako === null) { - this._createPako(); - } - this._pako.push([], true); -}; -/** - * @see GenericWorker.cleanUp - */ -FlateWorker.prototype.cleanUp = function () { - GenericWorker.prototype.cleanUp.call(this); - this._pako = null; -}; - -/** - * Create the _pako object. - * TODO: lazy-loading this object isn't the best solution but it's the - * quickest. The best solution is to lazy-load the worker list. See also the - * issue #446. - */ -FlateWorker.prototype._createPako = function () { - this._pako = new pako[this._pakoAction]({ - raw: true, - level: this._pakoOptions.level || -1 // default compression - }); - var self = this; - this._pako.onData = function(data) { - self.push({ - data : data, - meta : self.meta - }); - }; -}; - -exports.compressWorker = function (compressionOptions) { - return new FlateWorker("Deflate", compressionOptions); -}; -exports.uncompressWorker = function () { - return new FlateWorker("Inflate", {}); -}; - -},{"./stream/GenericWorker":28,"./utils":32,"pako":38}],8:[function(require,module,exports){ -'use strict'; - -var utils = require('../utils'); -var GenericWorker = require('../stream/GenericWorker'); -var utf8 = require('../utf8'); -var crc32 = require('../crc32'); -var signature = require('../signature'); - -/** - * Transform an integer into a string in hexadecimal. - * @private - * @param {number} dec the number to convert. - * @param {number} bytes the number of bytes to generate. - * @returns {string} the result. - */ -var decToHex = function(dec, bytes) { - var hex = "", i; - for (i = 0; i < bytes; i++) { - hex += String.fromCharCode(dec & 0xff); - dec = dec >>> 8; - } - return hex; -}; - -/** - * Generate the UNIX part of the external file attributes. - * @param {Object} unixPermissions the unix permissions or null. - * @param {Boolean} isDir true if the entry is a directory, false otherwise. - * @return {Number} a 32 bit integer. - * - * adapted from http://unix.stackexchange.com/questions/14705/the-zip-formats-external-file-attribute : - * - * TTTTsstrwxrwxrwx0000000000ADVSHR - * ^^^^____________________________ file type, see zipinfo.c (UNX_*) - * ^^^_________________________ setuid, setgid, sticky - * ^^^^^^^^^________________ permissions - * ^^^^^^^^^^______ not used ? - * ^^^^^^ DOS attribute bits : Archive, Directory, Volume label, System file, Hidden, Read only - */ -var generateUnixExternalFileAttr = function (unixPermissions, isDir) { - - var result = unixPermissions; - if (!unixPermissions) { - // I can't use octal values in strict mode, hence the hexa. - // 040775 => 0x41fd - // 0100664 => 0x81b4 - result = isDir ? 0x41fd : 0x81b4; - } - return (result & 0xFFFF) << 16; -}; - -/** - * Generate the DOS part of the external file attributes. - * @param {Object} dosPermissions the dos permissions or null. - * @param {Boolean} isDir true if the entry is a directory, false otherwise. - * @return {Number} a 32 bit integer. - * - * Bit 0 Read-Only - * Bit 1 Hidden - * Bit 2 System - * Bit 3 Volume Label - * Bit 4 Directory - * Bit 5 Archive - */ -var generateDosExternalFileAttr = function (dosPermissions, isDir) { - - // the dir flag is already set for compatibility - return (dosPermissions || 0) & 0x3F; -}; - -/** - * Generate the various parts used in the construction of the final zip file. - * @param {Object} streamInfo the hash with informations about the compressed file. - * @param {Boolean} streamedContent is the content streamed ? - * @param {Boolean} streamingEnded is the stream finished ? - * @param {number} offset the current offset from the start of the zip file. - * @param {String} platform let's pretend we are this platform (change platform dependents fields) - * @param {Function} encodeFileName the function to encode the file name / comment. - * @return {Object} the zip parts. - */ -var generateZipParts = function(streamInfo, streamedContent, streamingEnded, offset, platform, encodeFileName) { - var file = streamInfo['file'], - compression = streamInfo['compression'], - useCustomEncoding = encodeFileName !== utf8.utf8encode, - encodedFileName = utils.transformTo("string", encodeFileName(file.name)), - utfEncodedFileName = utils.transformTo("string", utf8.utf8encode(file.name)), - comment = file.comment, - encodedComment = utils.transformTo("string", encodeFileName(comment)), - utfEncodedComment = utils.transformTo("string", utf8.utf8encode(comment)), - useUTF8ForFileName = utfEncodedFileName.length !== file.name.length, - useUTF8ForComment = utfEncodedComment.length !== comment.length, - dosTime, - dosDate, - extraFields = "", - unicodePathExtraField = "", - unicodeCommentExtraField = "", - dir = file.dir, - date = file.date; - - - var dataInfo = { - crc32 : 0, - compressedSize : 0, - uncompressedSize : 0 - }; - - // if the content is streamed, the sizes/crc32 are only available AFTER - // the end of the stream. - if (!streamedContent || streamingEnded) { - dataInfo.crc32 = streamInfo['crc32']; - dataInfo.compressedSize = streamInfo['compressedSize']; - dataInfo.uncompressedSize = streamInfo['uncompressedSize']; - } - - var bitflag = 0; - if (streamedContent) { - // Bit 3: the sizes/crc32 are set to zero in the local header. - // The correct values are put in the data descriptor immediately - // following the compressed data. - bitflag |= 0x0008; - } - if (!useCustomEncoding && (useUTF8ForFileName || useUTF8ForComment)) { - // Bit 11: Language encoding flag (EFS). - bitflag |= 0x0800; - } - - - var extFileAttr = 0; - var versionMadeBy = 0; - if (dir) { - // dos or unix, we set the dos dir flag - extFileAttr |= 0x00010; - } - if(platform === "UNIX") { - versionMadeBy = 0x031E; // UNIX, version 3.0 - extFileAttr |= generateUnixExternalFileAttr(file.unixPermissions, dir); - } else { // DOS or other, fallback to DOS - versionMadeBy = 0x0014; // DOS, version 2.0 - extFileAttr |= generateDosExternalFileAttr(file.dosPermissions, dir); - } - - // date - // @see http://www.delorie.com/djgpp/doc/rbinter/it/52/13.html - // @see http://www.delorie.com/djgpp/doc/rbinter/it/65/16.html - // @see http://www.delorie.com/djgpp/doc/rbinter/it/66/16.html - - dosTime = date.getUTCHours(); - dosTime = dosTime << 6; - dosTime = dosTime | date.getUTCMinutes(); - dosTime = dosTime << 5; - dosTime = dosTime | date.getUTCSeconds() / 2; - - dosDate = date.getUTCFullYear() - 1980; - dosDate = dosDate << 4; - dosDate = dosDate | (date.getUTCMonth() + 1); - dosDate = dosDate << 5; - dosDate = dosDate | date.getUTCDate(); - - if (useUTF8ForFileName) { - // set the unicode path extra field. unzip needs at least one extra - // field to correctly handle unicode path, so using the path is as good - // as any other information. This could improve the situation with - // other archive managers too. - // This field is usually used without the utf8 flag, with a non - // unicode path in the header (winrar, winzip). This helps (a bit) - // with the messy Windows' default compressed folders feature but - // breaks on p7zip which doesn't seek the unicode path extra field. - // So for now, UTF-8 everywhere ! - unicodePathExtraField = - // Version - decToHex(1, 1) + - // NameCRC32 - decToHex(crc32(encodedFileName), 4) + - // UnicodeName - utfEncodedFileName; - - extraFields += - // Info-ZIP Unicode Path Extra Field - "\x75\x70" + - // size - decToHex(unicodePathExtraField.length, 2) + - // content - unicodePathExtraField; - } - - if(useUTF8ForComment) { - - unicodeCommentExtraField = - // Version - decToHex(1, 1) + - // CommentCRC32 - decToHex(crc32(encodedComment), 4) + - // UnicodeName - utfEncodedComment; - - extraFields += - // Info-ZIP Unicode Path Extra Field - "\x75\x63" + - // size - decToHex(unicodeCommentExtraField.length, 2) + - // content - unicodeCommentExtraField; - } - - var header = ""; - - // version needed to extract - header += "\x0A\x00"; - // general purpose bit flag - header += decToHex(bitflag, 2); - // compression method - header += compression.magic; - // last mod file time - header += decToHex(dosTime, 2); - // last mod file date - header += decToHex(dosDate, 2); - // crc-32 - header += decToHex(dataInfo.crc32, 4); - // compressed size - header += decToHex(dataInfo.compressedSize, 4); - // uncompressed size - header += decToHex(dataInfo.uncompressedSize, 4); - // file name length - header += decToHex(encodedFileName.length, 2); - // extra field length - header += decToHex(extraFields.length, 2); - - - var fileRecord = signature.LOCAL_FILE_HEADER + header + encodedFileName + extraFields; - - var dirRecord = signature.CENTRAL_FILE_HEADER + - // version made by (00: DOS) - decToHex(versionMadeBy, 2) + - // file header (common to file and central directory) - header + - // file comment length - decToHex(encodedComment.length, 2) + - // disk number start - "\x00\x00" + - // internal file attributes TODO - "\x00\x00" + - // external file attributes - decToHex(extFileAttr, 4) + - // relative offset of local header - decToHex(offset, 4) + - // file name - encodedFileName + - // extra field - extraFields + - // file comment - encodedComment; - - return { - fileRecord: fileRecord, - dirRecord: dirRecord - }; -}; - -/** - * Generate the EOCD record. - * @param {Number} entriesCount the number of entries in the zip file. - * @param {Number} centralDirLength the length (in bytes) of the central dir. - * @param {Number} localDirLength the length (in bytes) of the local dir. - * @param {String} comment the zip file comment as a binary string. - * @param {Function} encodeFileName the function to encode the comment. - * @return {String} the EOCD record. - */ -var generateCentralDirectoryEnd = function (entriesCount, centralDirLength, localDirLength, comment, encodeFileName) { - var dirEnd = ""; - var encodedComment = utils.transformTo("string", encodeFileName(comment)); - - // end of central dir signature - dirEnd = signature.CENTRAL_DIRECTORY_END + - // number of this disk - "\x00\x00" + - // number of the disk with the start of the central directory - "\x00\x00" + - // total number of entries in the central directory on this disk - decToHex(entriesCount, 2) + - // total number of entries in the central directory - decToHex(entriesCount, 2) + - // size of the central directory 4 bytes - decToHex(centralDirLength, 4) + - // offset of start of central directory with respect to the starting disk number - decToHex(localDirLength, 4) + - // .ZIP file comment length - decToHex(encodedComment.length, 2) + - // .ZIP file comment - encodedComment; - - return dirEnd; -}; - -/** - * Generate data descriptors for a file entry. - * @param {Object} streamInfo the hash generated by a worker, containing informations - * on the file entry. - * @return {String} the data descriptors. - */ -var generateDataDescriptors = function (streamInfo) { - var descriptor = ""; - descriptor = signature.DATA_DESCRIPTOR + - // crc-32 4 bytes - decToHex(streamInfo['crc32'], 4) + - // compressed size 4 bytes - decToHex(streamInfo['compressedSize'], 4) + - // uncompressed size 4 bytes - decToHex(streamInfo['uncompressedSize'], 4); - - return descriptor; -}; - - -/** - * A worker to concatenate other workers to create a zip file. - * @param {Boolean} streamFiles `true` to stream the content of the files, - * `false` to accumulate it. - * @param {String} comment the comment to use. - * @param {String} platform the platform to use, "UNIX" or "DOS". - * @param {Function} encodeFileName the function to encode file names and comments. - */ -function ZipFileWorker(streamFiles, comment, platform, encodeFileName) { - GenericWorker.call(this, "ZipFileWorker"); - // The number of bytes written so far. This doesn't count accumulated chunks. - this.bytesWritten = 0; - // The comment of the zip file - this.zipComment = comment; - // The platform "generating" the zip file. - this.zipPlatform = platform; - // the function to encode file names and comments. - this.encodeFileName = encodeFileName; - // Should we stream the content of the files ? - this.streamFiles = streamFiles; - // If `streamFiles` is false, we will need to accumulate the content of the - // files to calculate sizes / crc32 (and write them *before* the content). - // This boolean indicates if we are accumulating chunks (it will change a lot - // during the lifetime of this worker). - this.accumulate = false; - // The buffer receiving chunks when accumulating content. - this.contentBuffer = []; - // The list of generated directory records. - this.dirRecords = []; - // The offset (in bytes) from the beginning of the zip file for the current source. - this.currentSourceOffset = 0; - // The total number of entries in this zip file. - this.entriesCount = 0; - // the name of the file currently being added, null when handling the end of the zip file. - // Used for the emited metadata. - this.currentFile = null; - - - - this._sources = []; -} -utils.inherits(ZipFileWorker, GenericWorker); - -/** - * @see GenericWorker.push - */ -ZipFileWorker.prototype.push = function (chunk) { - - var currentFilePercent = chunk.meta.percent || 0; - var entriesCount = this.entriesCount; - var remainingFiles = this._sources.length; - - if(this.accumulate) { - this.contentBuffer.push(chunk); - } else { - this.bytesWritten += chunk.data.length; - - GenericWorker.prototype.push.call(this, { - data : chunk.data, - meta : { - currentFile : this.currentFile, - percent : entriesCount ? (currentFilePercent + 100 * (entriesCount - remainingFiles - 1)) / entriesCount : 100 - } - }); - } -}; - -/** - * The worker started a new source (an other worker). - * @param {Object} streamInfo the streamInfo object from the new source. - */ -ZipFileWorker.prototype.openedSource = function (streamInfo) { - this.currentSourceOffset = this.bytesWritten; - this.currentFile = streamInfo['file'].name; - - var streamedContent = this.streamFiles && !streamInfo['file'].dir; - - // don't stream folders (because they don't have any content) - if(streamedContent) { - var record = generateZipParts(streamInfo, streamedContent, false, this.currentSourceOffset, this.zipPlatform, this.encodeFileName); - this.push({ - data : record.fileRecord, - meta : {percent:0} - }); - } else { - // we need to wait for the whole file before pushing anything - this.accumulate = true; - } -}; - -/** - * The worker finished a source (an other worker). - * @param {Object} streamInfo the streamInfo object from the finished source. - */ -ZipFileWorker.prototype.closedSource = function (streamInfo) { - this.accumulate = false; - var streamedContent = this.streamFiles && !streamInfo['file'].dir; - var record = generateZipParts(streamInfo, streamedContent, true, this.currentSourceOffset, this.zipPlatform, this.encodeFileName); - - this.dirRecords.push(record.dirRecord); - if(streamedContent) { - // after the streamed file, we put data descriptors - this.push({ - data : generateDataDescriptors(streamInfo), - meta : {percent:100} - }); - } else { - // the content wasn't streamed, we need to push everything now - // first the file record, then the content - this.push({ - data : record.fileRecord, - meta : {percent:0} - }); - while(this.contentBuffer.length) { - this.push(this.contentBuffer.shift()); - } - } - this.currentFile = null; -}; - -/** - * @see GenericWorker.flush - */ -ZipFileWorker.prototype.flush = function () { - - var localDirLength = this.bytesWritten; - for(var i = 0; i < this.dirRecords.length; i++) { - this.push({ - data : this.dirRecords[i], - meta : {percent:100} - }); - } - var centralDirLength = this.bytesWritten - localDirLength; - - var dirEnd = generateCentralDirectoryEnd(this.dirRecords.length, centralDirLength, localDirLength, this.zipComment, this.encodeFileName); - - this.push({ - data : dirEnd, - meta : {percent:100} - }); -}; - -/** - * Prepare the next source to be read. - */ -ZipFileWorker.prototype.prepareNextSource = function () { - this.previous = this._sources.shift(); - this.openedSource(this.previous.streamInfo); - if (this.isPaused) { - this.previous.pause(); - } else { - this.previous.resume(); - } -}; - -/** - * @see GenericWorker.registerPrevious - */ -ZipFileWorker.prototype.registerPrevious = function (previous) { - this._sources.push(previous); - var self = this; - - previous.on('data', function (chunk) { - self.processChunk(chunk); - }); - previous.on('end', function () { - self.closedSource(self.previous.streamInfo); - if(self._sources.length) { - self.prepareNextSource(); - } else { - self.end(); - } - }); - previous.on('error', function (e) { - self.error(e); - }); - return this; -}; - -/** - * @see GenericWorker.resume - */ -ZipFileWorker.prototype.resume = function () { - if(!GenericWorker.prototype.resume.call(this)) { - return false; - } - - if (!this.previous && this._sources.length) { - this.prepareNextSource(); - return true; - } - if (!this.previous && !this._sources.length && !this.generatedError) { - this.end(); - return true; - } -}; - -/** - * @see GenericWorker.error - */ -ZipFileWorker.prototype.error = function (e) { - var sources = this._sources; - if(!GenericWorker.prototype.error.call(this, e)) { - return false; - } - for(var i = 0; i < sources.length; i++) { - try { - sources[i].error(e); - } catch(e) { - // the `error` exploded, nothing to do - } - } - return true; -}; - -/** - * @see GenericWorker.lock - */ -ZipFileWorker.prototype.lock = function () { - GenericWorker.prototype.lock.call(this); - var sources = this._sources; - for(var i = 0; i < sources.length; i++) { - sources[i].lock(); - } -}; - -module.exports = ZipFileWorker; - -},{"../crc32":4,"../signature":23,"../stream/GenericWorker":28,"../utf8":31,"../utils":32}],9:[function(require,module,exports){ -'use strict'; - -var compressions = require('../compressions'); -var ZipFileWorker = require('./ZipFileWorker'); - -/** - * Find the compression to use. - * @param {String} fileCompression the compression defined at the file level, if any. - * @param {String} zipCompression the compression defined at the load() level. - * @return {Object} the compression object to use. - */ -var getCompression = function (fileCompression, zipCompression) { - - var compressionName = fileCompression || zipCompression; - var compression = compressions[compressionName]; - if (!compression) { - throw new Error(compressionName + " is not a valid compression method !"); - } - return compression; -}; - -/** - * Create a worker to generate a zip file. - * @param {JSZip} zip the JSZip instance at the right root level. - * @param {Object} options to generate the zip file. - * @param {String} comment the comment to use. - */ -exports.generateWorker = function (zip, options, comment) { - - var zipFileWorker = new ZipFileWorker(options.streamFiles, comment, options.platform, options.encodeFileName); - var entriesCount = 0; - try { - - zip.forEach(function (relativePath, file) { - entriesCount++; - var compression = getCompression(file.options.compression, options.compression); - var compressionOptions = file.options.compressionOptions || options.compressionOptions || {}; - var dir = file.dir, date = file.date; - - file._compressWorker(compression, compressionOptions) - .withStreamInfo("file", { - name : relativePath, - dir : dir, - date : date, - comment : file.comment || "", - unixPermissions : file.unixPermissions, - dosPermissions : file.dosPermissions - }) - .pipe(zipFileWorker); - }); - zipFileWorker.entriesCount = entriesCount; - } catch (e) { - zipFileWorker.error(e); - } - - return zipFileWorker; -}; - -},{"../compressions":3,"./ZipFileWorker":8}],10:[function(require,module,exports){ -'use strict'; - -/** - * Representation a of zip file in js - * @constructor - */ -function JSZip() { - // if this constructor is used without `new`, it adds `new` before itself: - if(!(this instanceof JSZip)) { - return new JSZip(); - } - - if(arguments.length) { - throw new Error("The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide."); - } - - // object containing the files : - // { - // "folder/" : {...}, - // "folder/data.txt" : {...} - // } - this.files = {}; - - this.comment = null; - - // Where we are in the hierarchy - this.root = ""; - this.clone = function() { - var newObj = new JSZip(); - for (var i in this) { - if (typeof this[i] !== "function") { - newObj[i] = this[i]; - } - } - return newObj; - }; -} -JSZip.prototype = require('./object'); -JSZip.prototype.loadAsync = require('./load'); -JSZip.support = require('./support'); -JSZip.defaults = require('./defaults'); - -// TODO find a better way to handle this version, -// a require('package.json').version doesn't work with webpack, see #327 -JSZip.version = "3.2.0"; - -JSZip.loadAsync = function (content, options) { - return new JSZip().loadAsync(content, options); -}; - -JSZip.external = require("./external"); -module.exports = JSZip; - -},{"./defaults":5,"./external":6,"./load":11,"./object":15,"./support":30}],11:[function(require,module,exports){ -'use strict'; -var utils = require('./utils'); -var external = require("./external"); -var utf8 = require('./utf8'); -var utils = require('./utils'); -var ZipEntries = require('./zipEntries'); -var Crc32Probe = require('./stream/Crc32Probe'); -var nodejsUtils = require("./nodejsUtils"); - -/** - * Check the CRC32 of an entry. - * @param {ZipEntry} zipEntry the zip entry to check. - * @return {Promise} the result. - */ -function checkEntryCRC32(zipEntry) { - return new external.Promise(function (resolve, reject) { - var worker = zipEntry.decompressed.getContentWorker().pipe(new Crc32Probe()); - worker.on("error", function (e) { - reject(e); - }) - .on("end", function () { - if (worker.streamInfo.crc32 !== zipEntry.decompressed.crc32) { - reject(new Error("Corrupted zip : CRC32 mismatch")); - } else { - resolve(); - } - }) - .resume(); - }); -} - -module.exports = function(data, options) { - var zip = this; - options = utils.extend(options || {}, { - base64: false, - checkCRC32: false, - optimizedBinaryString: false, - createFolders: false, - decodeFileName: utf8.utf8decode - }); - - if (nodejsUtils.isNode && nodejsUtils.isStream(data)) { - return external.Promise.reject(new Error("JSZip can't accept a stream when loading a zip file.")); - } - - return utils.prepareContent("the loaded zip file", data, true, options.optimizedBinaryString, options.base64) - .then(function(data) { - var zipEntries = new ZipEntries(options); - zipEntries.load(data); - return zipEntries; - }).then(function checkCRC32(zipEntries) { - var promises = [external.Promise.resolve(zipEntries)]; - var files = zipEntries.files; - if (options.checkCRC32) { - for (var i = 0; i < files.length; i++) { - promises.push(checkEntryCRC32(files[i])); - } - } - return external.Promise.all(promises); - }).then(function addFiles(results) { - var zipEntries = results.shift(); - var files = zipEntries.files; - for (var i = 0; i < files.length; i++) { - var input = files[i]; - zip.file(input.fileNameStr, input.decompressed, { - binary: true, - optimizedBinaryString: true, - date: input.date, - dir: input.dir, - comment : input.fileCommentStr.length ? input.fileCommentStr : null, - unixPermissions : input.unixPermissions, - dosPermissions : input.dosPermissions, - createFolders: options.createFolders - }); - } - if (zipEntries.zipComment.length) { - zip.comment = zipEntries.zipComment; - } - - return zip; - }); -}; - -},{"./external":6,"./nodejsUtils":14,"./stream/Crc32Probe":25,"./utf8":31,"./utils":32,"./zipEntries":33}],12:[function(require,module,exports){ -"use strict"; - -var utils = require('../utils'); -var GenericWorker = require('../stream/GenericWorker'); - -/** - * A worker that use a nodejs stream as source. - * @constructor - * @param {String} filename the name of the file entry for this stream. - * @param {Readable} stream the nodejs stream. - */ -function NodejsStreamInputAdapter(filename, stream) { - GenericWorker.call(this, "Nodejs stream input adapter for " + filename); - this._upstreamEnded = false; - this._bindStream(stream); -} - -utils.inherits(NodejsStreamInputAdapter, GenericWorker); - -/** - * Prepare the stream and bind the callbacks on it. - * Do this ASAP on node 0.10 ! A lazy binding doesn't always work. - * @param {Stream} stream the nodejs stream to use. - */ -NodejsStreamInputAdapter.prototype._bindStream = function (stream) { - var self = this; - this._stream = stream; - stream.pause(); - stream - .on("data", function (chunk) { - self.push({ - data: chunk, - meta : { - percent : 0 - } - }); - }) - .on("error", function (e) { - if(self.isPaused) { - this.generatedError = e; - } else { - self.error(e); - } - }) - .on("end", function () { - if(self.isPaused) { - self._upstreamEnded = true; - } else { - self.end(); - } - }); -}; -NodejsStreamInputAdapter.prototype.pause = function () { - if(!GenericWorker.prototype.pause.call(this)) { - return false; - } - this._stream.pause(); - return true; -}; -NodejsStreamInputAdapter.prototype.resume = function () { - if(!GenericWorker.prototype.resume.call(this)) { - return false; - } - - if(this._upstreamEnded) { - this.end(); - } else { - this._stream.resume(); - } - - return true; -}; - -module.exports = NodejsStreamInputAdapter; - -},{"../stream/GenericWorker":28,"../utils":32}],13:[function(require,module,exports){ -'use strict'; - -var Readable = require('readable-stream').Readable; - -var utils = require('../utils'); -utils.inherits(NodejsStreamOutputAdapter, Readable); - -/** -* A nodejs stream using a worker as source. -* @see the SourceWrapper in http://nodejs.org/api/stream.html -* @constructor -* @param {StreamHelper} helper the helper wrapping the worker -* @param {Object} options the nodejs stream options -* @param {Function} updateCb the update callback. -*/ -function NodejsStreamOutputAdapter(helper, options, updateCb) { - Readable.call(this, options); - this._helper = helper; - - var self = this; - helper.on("data", function (data, meta) { - if (!self.push(data)) { - self._helper.pause(); - } - if(updateCb) { - updateCb(meta); - } - }) - .on("error", function(e) { - self.emit('error', e); - }) - .on("end", function () { - self.push(null); - }); -} - - -NodejsStreamOutputAdapter.prototype._read = function() { - this._helper.resume(); -}; - -module.exports = NodejsStreamOutputAdapter; - -},{"../utils":32,"readable-stream":16}],14:[function(require,module,exports){ -'use strict'; - -module.exports = { - /** - * True if this is running in Nodejs, will be undefined in a browser. - * In a browser, browserify won't include this file and the whole module - * will be resolved an empty object. - */ - isNode : typeof Buffer !== "undefined", - /** - * Create a new nodejs Buffer from an existing content. - * @param {Object} data the data to pass to the constructor. - * @param {String} encoding the encoding to use. - * @return {Buffer} a new Buffer. - */ - newBufferFrom: function(data, encoding) { - if (Buffer.from && Buffer.from !== Uint8Array.from) { - return Buffer.from(data, encoding); - } else { - if (typeof data === "number") { - // Safeguard for old Node.js versions. On newer versions, - // Buffer.from(number) / Buffer(number, encoding) already throw. - throw new Error("The \"data\" argument must not be a number"); - } - return new Buffer(data, encoding); - } - }, - /** - * Create a new nodejs Buffer with the specified size. - * @param {Integer} size the size of the buffer. - * @return {Buffer} a new Buffer. - */ - allocBuffer: function (size) { - if (Buffer.alloc) { - return Buffer.alloc(size); - } else { - var buf = new Buffer(size); - buf.fill(0); - return buf; - } - }, - /** - * Find out if an object is a Buffer. - * @param {Object} b the object to test. - * @return {Boolean} true if the object is a Buffer, false otherwise. - */ - isBuffer : function(b){ - return Buffer.isBuffer(b); - }, - - isStream : function (obj) { - return obj && - typeof obj.on === "function" && - typeof obj.pause === "function" && - typeof obj.resume === "function"; - } -}; - -},{}],15:[function(require,module,exports){ -'use strict'; -var utf8 = require('./utf8'); -var utils = require('./utils'); -var GenericWorker = require('./stream/GenericWorker'); -var StreamHelper = require('./stream/StreamHelper'); -var defaults = require('./defaults'); -var CompressedObject = require('./compressedObject'); -var ZipObject = require('./zipObject'); -var generate = require("./generate"); -var nodejsUtils = require("./nodejsUtils"); -var NodejsStreamInputAdapter = require("./nodejs/NodejsStreamInputAdapter"); - - -/** - * Add a file in the current folder. - * @private - * @param {string} name the name of the file - * @param {String|ArrayBuffer|Uint8Array|Buffer} data the data of the file - * @param {Object} originalOptions the options of the file - * @return {Object} the new file. - */ -var fileAdd = function(name, data, originalOptions) { - // be sure sub folders exist - var dataType = utils.getTypeOf(data), - parent; - - - /* - * Correct options. - */ - - var o = utils.extend(originalOptions || {}, defaults); - o.date = o.date || new Date(); - if (o.compression !== null) { - o.compression = o.compression.toUpperCase(); - } - - if (typeof o.unixPermissions === "string") { - o.unixPermissions = parseInt(o.unixPermissions, 8); - } - - // UNX_IFDIR 0040000 see zipinfo.c - if (o.unixPermissions && (o.unixPermissions & 0x4000)) { - o.dir = true; - } - // Bit 4 Directory - if (o.dosPermissions && (o.dosPermissions & 0x0010)) { - o.dir = true; - } - - if (o.dir) { - name = forceTrailingSlash(name); - } - if (o.createFolders && (parent = parentFolder(name))) { - folderAdd.call(this, parent, true); - } - - var isUnicodeString = dataType === "string" && o.binary === false && o.base64 === false; - if (!originalOptions || typeof originalOptions.binary === "undefined") { - o.binary = !isUnicodeString; - } - - - var isCompressedEmpty = (data instanceof CompressedObject) && data.uncompressedSize === 0; - - if (isCompressedEmpty || o.dir || !data || data.length === 0) { - o.base64 = false; - o.binary = true; - data = ""; - o.compression = "STORE"; - dataType = "string"; - } - - /* - * Convert content to fit. - */ - - var zipObjectContent = null; - if (data instanceof CompressedObject || data instanceof GenericWorker) { - zipObjectContent = data; - } else if (nodejsUtils.isNode && nodejsUtils.isStream(data)) { - zipObjectContent = new NodejsStreamInputAdapter(name, data); - } else { - zipObjectContent = utils.prepareContent(name, data, o.binary, o.optimizedBinaryString, o.base64); - } - - var object = new ZipObject(name, zipObjectContent, o); - this.files[name] = object; - /* - TODO: we can't throw an exception because we have async promises - (we can have a promise of a Date() for example) but returning a - promise is useless because file(name, data) returns the JSZip - object for chaining. Should we break that to allow the user - to catch the error ? - - return external.Promise.resolve(zipObjectContent) - .then(function () { - return object; - }); - */ -}; - -/** - * Find the parent folder of the path. - * @private - * @param {string} path the path to use - * @return {string} the parent folder, or "" - */ -var parentFolder = function (path) { - if (path.slice(-1) === '/') { - path = path.substring(0, path.length - 1); - } - var lastSlash = path.lastIndexOf('/'); - return (lastSlash > 0) ? path.substring(0, lastSlash) : ""; -}; - -/** - * Returns the path with a slash at the end. - * @private - * @param {String} path the path to check. - * @return {String} the path with a trailing slash. - */ -var forceTrailingSlash = function(path) { - // Check the name ends with a / - if (path.slice(-1) !== "/") { - path += "/"; // IE doesn't like substr(-1) - } - return path; -}; - -/** - * Add a (sub) folder in the current folder. - * @private - * @param {string} name the folder's name - * @param {boolean=} [createFolders] If true, automatically create sub - * folders. Defaults to false. - * @return {Object} the new folder. - */ -var folderAdd = function(name, createFolders) { - createFolders = (typeof createFolders !== 'undefined') ? createFolders : defaults.createFolders; - - name = forceTrailingSlash(name); - - // Does this folder already exist? - if (!this.files[name]) { - fileAdd.call(this, name, null, { - dir: true, - createFolders: createFolders - }); - } - return this.files[name]; -}; - -/** -* Cross-window, cross-Node-context regular expression detection -* @param {Object} object Anything -* @return {Boolean} true if the object is a regular expression, -* false otherwise -*/ -function isRegExp(object) { - return Object.prototype.toString.call(object) === "[object RegExp]"; -} - -// return the actual prototype of JSZip -var out = { - /** - * @see loadAsync - */ - load: function() { - throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide."); - }, - - - /** - * Call a callback function for each entry at this folder level. - * @param {Function} cb the callback function: - * function (relativePath, file) {...} - * It takes 2 arguments : the relative path and the file. - */ - forEach: function(cb) { - var filename, relativePath, file; - for (filename in this.files) { - if (!this.files.hasOwnProperty(filename)) { - continue; - } - file = this.files[filename]; - relativePath = filename.slice(this.root.length, filename.length); - if (relativePath && filename.slice(0, this.root.length) === this.root) { // the file is in the current root - cb(relativePath, file); // TODO reverse the parameters ? need to be clean AND consistent with the filter search fn... - } - } - }, - - /** - * Filter nested files/folders with the specified function. - * @param {Function} search the predicate to use : - * function (relativePath, file) {...} - * It takes 2 arguments : the relative path and the file. - * @return {Array} An array of matching elements. - */ - filter: function(search) { - var result = []; - this.forEach(function (relativePath, entry) { - if (search(relativePath, entry)) { // the file matches the function - result.push(entry); - } - - }); - return result; - }, - - /** - * Add a file to the zip file, or search a file. - * @param {string|RegExp} name The name of the file to add (if data is defined), - * the name of the file to find (if no data) or a regex to match files. - * @param {String|ArrayBuffer|Uint8Array|Buffer} data The file data, either raw or base64 encoded - * @param {Object} o File options - * @return {JSZip|Object|Array} this JSZip object (when adding a file), - * a file (when searching by string) or an array of files (when searching by regex). - */ - file: function(name, data, o) { - if (arguments.length === 1) { - if (isRegExp(name)) { - var regexp = name; - return this.filter(function(relativePath, file) { - return !file.dir && regexp.test(relativePath); - }); - } - else { // text - var obj = this.files[this.root + name]; - if (obj && !obj.dir) { - return obj; - } else { - return null; - } - } - } - else { // more than one argument : we have data ! - name = this.root + name; - fileAdd.call(this, name, data, o); - } - return this; - }, - - /** - * Add a directory to the zip file, or search. - * @param {String|RegExp} arg The name of the directory to add, or a regex to search folders. - * @return {JSZip} an object with the new directory as the root, or an array containing matching folders. - */ - folder: function(arg) { - if (!arg) { - return this; - } - - if (isRegExp(arg)) { - return this.filter(function(relativePath, file) { - return file.dir && arg.test(relativePath); - }); - } - - // else, name is a new folder - var name = this.root + arg; - var newFolder = folderAdd.call(this, name); - - // Allow chaining by returning a new object with this folder as the root - var ret = this.clone(); - ret.root = newFolder.name; - return ret; - }, - - /** - * Delete a file, or a directory and all sub-files, from the zip - * @param {string} name the name of the file to delete - * @return {JSZip} this JSZip object - */ - remove: function(name) { - name = this.root + name; - var file = this.files[name]; - if (!file) { - // Look for any folders - if (name.slice(-1) !== "/") { - name += "/"; - } - file = this.files[name]; - } - - if (file && !file.dir) { - // file - delete this.files[name]; - } else { - // maybe a folder, delete recursively - var kids = this.filter(function(relativePath, file) { - return file.name.slice(0, name.length) === name; - }); - for (var i = 0; i < kids.length; i++) { - delete this.files[kids[i].name]; - } - } - - return this; - }, - - /** - * Generate the complete zip file - * @param {Object} options the options to generate the zip file : - * - compression, "STORE" by default. - * - type, "base64" by default. Values are : string, base64, uint8array, arraybuffer, blob. - * @return {String|Uint8Array|ArrayBuffer|Buffer|Blob} the zip file - */ - generate: function(options) { - throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide."); - }, - - /** - * Generate the complete zip file as an internal stream. - * @param {Object} options the options to generate the zip file : - * - compression, "STORE" by default. - * - type, "base64" by default. Values are : string, base64, uint8array, arraybuffer, blob. - * @return {StreamHelper} the streamed zip file. - */ - generateInternalStream: function(options) { - var worker, opts = {}; - try { - opts = utils.extend(options || {}, { - streamFiles: false, - compression: "STORE", - compressionOptions : null, - type: "", - platform: "DOS", - comment: null, - mimeType: 'application/zip', - encodeFileName: utf8.utf8encode - }); - - opts.type = opts.type.toLowerCase(); - opts.compression = opts.compression.toUpperCase(); - - // "binarystring" is prefered but the internals use "string". - if(opts.type === "binarystring") { - opts.type = "string"; - } - - if (!opts.type) { - throw new Error("No output type specified."); - } - - utils.checkSupport(opts.type); - - // accept nodejs `process.platform` - if( - opts.platform === 'darwin' || - opts.platform === 'freebsd' || - opts.platform === 'linux' || - opts.platform === 'sunos' - ) { - opts.platform = "UNIX"; - } - if (opts.platform === 'win32') { - opts.platform = "DOS"; - } - - var comment = opts.comment || this.comment || ""; - worker = generate.generateWorker(this, opts, comment); - } catch (e) { - worker = new GenericWorker("error"); - worker.error(e); - } - return new StreamHelper(worker, opts.type || "string", opts.mimeType); - }, - /** - * Generate the complete zip file asynchronously. - * @see generateInternalStream - */ - generateAsync: function(options, onUpdate) { - return this.generateInternalStream(options).accumulate(onUpdate); - }, - /** - * Generate the complete zip file asynchronously. - * @see generateInternalStream - */ - generateNodeStream: function(options, onUpdate) { - options = options || {}; - if (!options.type) { - options.type = "nodebuffer"; - } - return this.generateInternalStream(options).toNodejsStream(onUpdate); - } -}; -module.exports = out; - -},{"./compressedObject":2,"./defaults":5,"./generate":9,"./nodejs/NodejsStreamInputAdapter":12,"./nodejsUtils":14,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31,"./utils":32,"./zipObject":35}],16:[function(require,module,exports){ -/* - * This file is used by module bundlers (browserify/webpack/etc) when - * including a stream implementation. We use "readable-stream" to get a - * consistent behavior between nodejs versions but bundlers often have a shim - * for "stream". Using this shim greatly improve the compatibility and greatly - * reduce the final size of the bundle (only one stream implementation, not - * two). - */ -module.exports = require("stream"); - -},{"stream":undefined}],17:[function(require,module,exports){ -'use strict'; -var DataReader = require('./DataReader'); -var utils = require('../utils'); - -function ArrayReader(data) { - DataReader.call(this, data); - for(var i = 0; i < this.data.length; i++) { - data[i] = data[i] & 0xFF; - } -} -utils.inherits(ArrayReader, DataReader); -/** - * @see DataReader.byteAt - */ -ArrayReader.prototype.byteAt = function(i) { - return this.data[this.zero + i]; -}; -/** - * @see DataReader.lastIndexOfSignature - */ -ArrayReader.prototype.lastIndexOfSignature = function(sig) { - var sig0 = sig.charCodeAt(0), - sig1 = sig.charCodeAt(1), - sig2 = sig.charCodeAt(2), - sig3 = sig.charCodeAt(3); - for (var i = this.length - 4; i >= 0; --i) { - if (this.data[i] === sig0 && this.data[i + 1] === sig1 && this.data[i + 2] === sig2 && this.data[i + 3] === sig3) { - return i - this.zero; - } - } - - return -1; -}; -/** - * @see DataReader.readAndCheckSignature - */ -ArrayReader.prototype.readAndCheckSignature = function (sig) { - var sig0 = sig.charCodeAt(0), - sig1 = sig.charCodeAt(1), - sig2 = sig.charCodeAt(2), - sig3 = sig.charCodeAt(3), - data = this.readData(4); - return sig0 === data[0] && sig1 === data[1] && sig2 === data[2] && sig3 === data[3]; -}; -/** - * @see DataReader.readData - */ -ArrayReader.prototype.readData = function(size) { - this.checkOffset(size); - if(size === 0) { - return []; - } - var result = this.data.slice(this.zero + this.index, this.zero + this.index + size); - this.index += size; - return result; -}; -module.exports = ArrayReader; - -},{"../utils":32,"./DataReader":18}],18:[function(require,module,exports){ -'use strict'; -var utils = require('../utils'); - -function DataReader(data) { - this.data = data; // type : see implementation - this.length = data.length; - this.index = 0; - this.zero = 0; -} -DataReader.prototype = { - /** - * Check that the offset will not go too far. - * @param {string} offset the additional offset to check. - * @throws {Error} an Error if the offset is out of bounds. - */ - checkOffset: function(offset) { - this.checkIndex(this.index + offset); - }, - /** - * Check that the specified index will not be too far. - * @param {string} newIndex the index to check. - * @throws {Error} an Error if the index is out of bounds. - */ - checkIndex: function(newIndex) { - if (this.length < this.zero + newIndex || newIndex < 0) { - throw new Error("End of data reached (data length = " + this.length + ", asked index = " + (newIndex) + "). Corrupted zip ?"); - } - }, - /** - * Change the index. - * @param {number} newIndex The new index. - * @throws {Error} if the new index is out of the data. - */ - setIndex: function(newIndex) { - this.checkIndex(newIndex); - this.index = newIndex; - }, - /** - * Skip the next n bytes. - * @param {number} n the number of bytes to skip. - * @throws {Error} if the new index is out of the data. - */ - skip: function(n) { - this.setIndex(this.index + n); - }, - /** - * Get the byte at the specified index. - * @param {number} i the index to use. - * @return {number} a byte. - */ - byteAt: function(i) { - // see implementations - }, - /** - * Get the next number with a given byte size. - * @param {number} size the number of bytes to read. - * @return {number} the corresponding number. - */ - readInt: function(size) { - var result = 0, - i; - this.checkOffset(size); - for (i = this.index + size - 1; i >= this.index; i--) { - result = (result << 8) + this.byteAt(i); - } - this.index += size; - return result; - }, - /** - * Get the next string with a given byte size. - * @param {number} size the number of bytes to read. - * @return {string} the corresponding string. - */ - readString: function(size) { - return utils.transformTo("string", this.readData(size)); - }, - /** - * Get raw data without conversion, bytes. - * @param {number} size the number of bytes to read. - * @return {Object} the raw data, implementation specific. - */ - readData: function(size) { - // see implementations - }, - /** - * Find the last occurence of a zip signature (4 bytes). - * @param {string} sig the signature to find. - * @return {number} the index of the last occurence, -1 if not found. - */ - lastIndexOfSignature: function(sig) { - // see implementations - }, - /** - * Read the signature (4 bytes) at the current position and compare it with sig. - * @param {string} sig the expected signature - * @return {boolean} true if the signature matches, false otherwise. - */ - readAndCheckSignature: function(sig) { - // see implementations - }, - /** - * Get the next date. - * @return {Date} the date. - */ - readDate: function() { - var dostime = this.readInt(4); - return new Date(Date.UTC( - ((dostime >> 25) & 0x7f) + 1980, // year - ((dostime >> 21) & 0x0f) - 1, // month - (dostime >> 16) & 0x1f, // day - (dostime >> 11) & 0x1f, // hour - (dostime >> 5) & 0x3f, // minute - (dostime & 0x1f) << 1)); // second - } -}; -module.exports = DataReader; - -},{"../utils":32}],19:[function(require,module,exports){ -'use strict'; -var Uint8ArrayReader = require('./Uint8ArrayReader'); -var utils = require('../utils'); - -function NodeBufferReader(data) { - Uint8ArrayReader.call(this, data); -} -utils.inherits(NodeBufferReader, Uint8ArrayReader); - -/** - * @see DataReader.readData - */ -NodeBufferReader.prototype.readData = function(size) { - this.checkOffset(size); - var result = this.data.slice(this.zero + this.index, this.zero + this.index + size); - this.index += size; - return result; -}; -module.exports = NodeBufferReader; - -},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(require,module,exports){ -'use strict'; -var DataReader = require('./DataReader'); -var utils = require('../utils'); - -function StringReader(data) { - DataReader.call(this, data); -} -utils.inherits(StringReader, DataReader); -/** - * @see DataReader.byteAt - */ -StringReader.prototype.byteAt = function(i) { - return this.data.charCodeAt(this.zero + i); -}; -/** - * @see DataReader.lastIndexOfSignature - */ -StringReader.prototype.lastIndexOfSignature = function(sig) { - return this.data.lastIndexOf(sig) - this.zero; -}; -/** - * @see DataReader.readAndCheckSignature - */ -StringReader.prototype.readAndCheckSignature = function (sig) { - var data = this.readData(4); - return sig === data; -}; -/** - * @see DataReader.readData - */ -StringReader.prototype.readData = function(size) { - this.checkOffset(size); - // this will work because the constructor applied the "& 0xff" mask. - var result = this.data.slice(this.zero + this.index, this.zero + this.index + size); - this.index += size; - return result; -}; -module.exports = StringReader; - -},{"../utils":32,"./DataReader":18}],21:[function(require,module,exports){ -'use strict'; -var ArrayReader = require('./ArrayReader'); -var utils = require('../utils'); - -function Uint8ArrayReader(data) { - ArrayReader.call(this, data); -} -utils.inherits(Uint8ArrayReader, ArrayReader); -/** - * @see DataReader.readData - */ -Uint8ArrayReader.prototype.readData = function(size) { - this.checkOffset(size); - if(size === 0) { - // in IE10, when using subarray(idx, idx), we get the array [0x00] instead of []. - return new Uint8Array(0); - } - var result = this.data.subarray(this.zero + this.index, this.zero + this.index + size); - this.index += size; - return result; -}; -module.exports = Uint8ArrayReader; - -},{"../utils":32,"./ArrayReader":17}],22:[function(require,module,exports){ -'use strict'; - -var utils = require('../utils'); -var support = require('../support'); -var ArrayReader = require('./ArrayReader'); -var StringReader = require('./StringReader'); -var NodeBufferReader = require('./NodeBufferReader'); -var Uint8ArrayReader = require('./Uint8ArrayReader'); - -/** - * Create a reader adapted to the data. - * @param {String|ArrayBuffer|Uint8Array|Buffer} data the data to read. - * @return {DataReader} the data reader. - */ -module.exports = function (data) { - var type = utils.getTypeOf(data); - utils.checkSupport(type); - if (type === "string" && !support.uint8array) { - return new StringReader(data); - } - if (type === "nodebuffer") { - return new NodeBufferReader(data); - } - if (support.uint8array) { - return new Uint8ArrayReader(utils.transformTo("uint8array", data)); - } - return new ArrayReader(utils.transformTo("array", data)); -}; - -},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(require,module,exports){ -'use strict'; -exports.LOCAL_FILE_HEADER = "PK\x03\x04"; -exports.CENTRAL_FILE_HEADER = "PK\x01\x02"; -exports.CENTRAL_DIRECTORY_END = "PK\x05\x06"; -exports.ZIP64_CENTRAL_DIRECTORY_LOCATOR = "PK\x06\x07"; -exports.ZIP64_CENTRAL_DIRECTORY_END = "PK\x06\x06"; -exports.DATA_DESCRIPTOR = "PK\x07\x08"; - -},{}],24:[function(require,module,exports){ -'use strict'; - -var GenericWorker = require('./GenericWorker'); -var utils = require('../utils'); - -/** - * A worker which convert chunks to a specified type. - * @constructor - * @param {String} destType the destination type. - */ -function ConvertWorker(destType) { - GenericWorker.call(this, "ConvertWorker to " + destType); - this.destType = destType; -} -utils.inherits(ConvertWorker, GenericWorker); - -/** - * @see GenericWorker.processChunk - */ -ConvertWorker.prototype.processChunk = function (chunk) { - this.push({ - data : utils.transformTo(this.destType, chunk.data), - meta : chunk.meta - }); -}; -module.exports = ConvertWorker; - -},{"../utils":32,"./GenericWorker":28}],25:[function(require,module,exports){ -'use strict'; - -var GenericWorker = require('./GenericWorker'); -var crc32 = require('../crc32'); -var utils = require('../utils'); - -/** - * A worker which calculate the crc32 of the data flowing through. - * @constructor - */ -function Crc32Probe() { - GenericWorker.call(this, "Crc32Probe"); - this.withStreamInfo("crc32", 0); -} -utils.inherits(Crc32Probe, GenericWorker); - -/** - * @see GenericWorker.processChunk - */ -Crc32Probe.prototype.processChunk = function (chunk) { - this.streamInfo.crc32 = crc32(chunk.data, this.streamInfo.crc32 || 0); - this.push(chunk); -}; -module.exports = Crc32Probe; - -},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(require,module,exports){ -'use strict'; - -var utils = require('../utils'); -var GenericWorker = require('./GenericWorker'); - -/** - * A worker which calculate the total length of the data flowing through. - * @constructor - * @param {String} propName the name used to expose the length - */ -function DataLengthProbe(propName) { - GenericWorker.call(this, "DataLengthProbe for " + propName); - this.propName = propName; - this.withStreamInfo(propName, 0); -} -utils.inherits(DataLengthProbe, GenericWorker); - -/** - * @see GenericWorker.processChunk - */ -DataLengthProbe.prototype.processChunk = function (chunk) { - if(chunk) { - var length = this.streamInfo[this.propName] || 0; - this.streamInfo[this.propName] = length + chunk.data.length; - } - GenericWorker.prototype.processChunk.call(this, chunk); -}; -module.exports = DataLengthProbe; - - -},{"../utils":32,"./GenericWorker":28}],27:[function(require,module,exports){ -'use strict'; - -var utils = require('../utils'); -var GenericWorker = require('./GenericWorker'); - -// the size of the generated chunks -// TODO expose this as a public variable -var DEFAULT_BLOCK_SIZE = 16 * 1024; - -/** - * A worker that reads a content and emits chunks. - * @constructor - * @param {Promise} dataP the promise of the data to split - */ -function DataWorker(dataP) { - GenericWorker.call(this, "DataWorker"); - var self = this; - this.dataIsReady = false; - this.index = 0; - this.max = 0; - this.data = null; - this.type = ""; - - this._tickScheduled = false; - - dataP.then(function (data) { - self.dataIsReady = true; - self.data = data; - self.max = data && data.length || 0; - self.type = utils.getTypeOf(data); - if(!self.isPaused) { - self._tickAndRepeat(); - } - }, function (e) { - self.error(e); - }); -} - -utils.inherits(DataWorker, GenericWorker); - -/** - * @see GenericWorker.cleanUp - */ -DataWorker.prototype.cleanUp = function () { - GenericWorker.prototype.cleanUp.call(this); - this.data = null; -}; - -/** - * @see GenericWorker.resume - */ -DataWorker.prototype.resume = function () { - if(!GenericWorker.prototype.resume.call(this)) { - return false; - } - - if (!this._tickScheduled && this.dataIsReady) { - this._tickScheduled = true; - utils.delay(this._tickAndRepeat, [], this); - } - return true; -}; - -/** - * Trigger a tick a schedule an other call to this function. - */ -DataWorker.prototype._tickAndRepeat = function() { - this._tickScheduled = false; - if(this.isPaused || this.isFinished) { - return; - } - this._tick(); - if(!this.isFinished) { - utils.delay(this._tickAndRepeat, [], this); - this._tickScheduled = true; - } -}; - -/** - * Read and push a chunk. - */ -DataWorker.prototype._tick = function() { - - if(this.isPaused || this.isFinished) { - return false; - } - - var size = DEFAULT_BLOCK_SIZE; - var data = null, nextIndex = Math.min(this.max, this.index + size); - if (this.index >= this.max) { - // EOF - return this.end(); - } else { - switch(this.type) { - case "string": - data = this.data.substring(this.index, nextIndex); - break; - case "uint8array": - data = this.data.subarray(this.index, nextIndex); - break; - case "array": - case "nodebuffer": - data = this.data.slice(this.index, nextIndex); - break; - } - this.index = nextIndex; - return this.push({ - data : data, - meta : { - percent : this.max ? this.index / this.max * 100 : 0 - } - }); - } -}; - -module.exports = DataWorker; - -},{"../utils":32,"./GenericWorker":28}],28:[function(require,module,exports){ -'use strict'; - -/** - * A worker that does nothing but passing chunks to the next one. This is like - * a nodejs stream but with some differences. On the good side : - * - it works on IE 6-9 without any issue / polyfill - * - it weights less than the full dependencies bundled with browserify - * - it forwards errors (no need to declare an error handler EVERYWHERE) - * - * A chunk is an object with 2 attributes : `meta` and `data`. The former is an - * object containing anything (`percent` for example), see each worker for more - * details. The latter is the real data (String, Uint8Array, etc). - * - * @constructor - * @param {String} name the name of the stream (mainly used for debugging purposes) - */ -function GenericWorker(name) { - // the name of the worker - this.name = name || "default"; - // an object containing metadata about the workers chain - this.streamInfo = {}; - // an error which happened when the worker was paused - this.generatedError = null; - // an object containing metadata to be merged by this worker into the general metadata - this.extraStreamInfo = {}; - // true if the stream is paused (and should not do anything), false otherwise - this.isPaused = true; - // true if the stream is finished (and should not do anything), false otherwise - this.isFinished = false; - // true if the stream is locked to prevent further structure updates (pipe), false otherwise - this.isLocked = false; - // the event listeners - this._listeners = { - 'data':[], - 'end':[], - 'error':[] - }; - // the previous worker, if any - this.previous = null; -} - -GenericWorker.prototype = { - /** - * Push a chunk to the next workers. - * @param {Object} chunk the chunk to push - */ - push : function (chunk) { - this.emit("data", chunk); - }, - /** - * End the stream. - * @return {Boolean} true if this call ended the worker, false otherwise. - */ - end : function () { - if (this.isFinished) { - return false; - } - - this.flush(); - try { - this.emit("end"); - this.cleanUp(); - this.isFinished = true; - } catch (e) { - this.emit("error", e); - } - return true; - }, - /** - * End the stream with an error. - * @param {Error} e the error which caused the premature end. - * @return {Boolean} true if this call ended the worker with an error, false otherwise. - */ - error : function (e) { - if (this.isFinished) { - return false; - } - - if(this.isPaused) { - this.generatedError = e; - } else { - this.isFinished = true; - - this.emit("error", e); - - // in the workers chain exploded in the middle of the chain, - // the error event will go downward but we also need to notify - // workers upward that there has been an error. - if(this.previous) { - this.previous.error(e); - } - - this.cleanUp(); - } - return true; - }, - /** - * Add a callback on an event. - * @param {String} name the name of the event (data, end, error) - * @param {Function} listener the function to call when the event is triggered - * @return {GenericWorker} the current object for chainability - */ - on : function (name, listener) { - this._listeners[name].push(listener); - return this; - }, - /** - * Clean any references when a worker is ending. - */ - cleanUp : function () { - this.streamInfo = this.generatedError = this.extraStreamInfo = null; - this._listeners = []; - }, - /** - * Trigger an event. This will call registered callback with the provided arg. - * @param {String} name the name of the event (data, end, error) - * @param {Object} arg the argument to call the callback with. - */ - emit : function (name, arg) { - if (this._listeners[name]) { - for(var i = 0; i < this._listeners[name].length; i++) { - this._listeners[name][i].call(this, arg); - } - } - }, - /** - * Chain a worker with an other. - * @param {Worker} next the worker receiving events from the current one. - * @return {worker} the next worker for chainability - */ - pipe : function (next) { - return next.registerPrevious(this); - }, - /** - * Same as `pipe` in the other direction. - * Using an API with `pipe(next)` is very easy. - * Implementing the API with the point of view of the next one registering - * a source is easier, see the ZipFileWorker. - * @param {Worker} previous the previous worker, sending events to this one - * @return {Worker} the current worker for chainability - */ - registerPrevious : function (previous) { - if (this.isLocked) { - throw new Error("The stream '" + this + "' has already been used."); - } - - // sharing the streamInfo... - this.streamInfo = previous.streamInfo; - // ... and adding our own bits - this.mergeStreamInfo(); - this.previous = previous; - var self = this; - previous.on('data', function (chunk) { - self.processChunk(chunk); - }); - previous.on('end', function () { - self.end(); - }); - previous.on('error', function (e) { - self.error(e); - }); - return this; - }, - /** - * Pause the stream so it doesn't send events anymore. - * @return {Boolean} true if this call paused the worker, false otherwise. - */ - pause : function () { - if(this.isPaused || this.isFinished) { - return false; - } - this.isPaused = true; - - if(this.previous) { - this.previous.pause(); - } - return true; - }, - /** - * Resume a paused stream. - * @return {Boolean} true if this call resumed the worker, false otherwise. - */ - resume : function () { - if(!this.isPaused || this.isFinished) { - return false; - } - this.isPaused = false; - - // if true, the worker tried to resume but failed - var withError = false; - if(this.generatedError) { - this.error(this.generatedError); - withError = true; - } - if(this.previous) { - this.previous.resume(); - } - - return !withError; - }, - /** - * Flush any remaining bytes as the stream is ending. - */ - flush : function () {}, - /** - * Process a chunk. This is usually the method overridden. - * @param {Object} chunk the chunk to process. - */ - processChunk : function(chunk) { - this.push(chunk); - }, - /** - * Add a key/value to be added in the workers chain streamInfo once activated. - * @param {String} key the key to use - * @param {Object} value the associated value - * @return {Worker} the current worker for chainability - */ - withStreamInfo : function (key, value) { - this.extraStreamInfo[key] = value; - this.mergeStreamInfo(); - return this; - }, - /** - * Merge this worker's streamInfo into the chain's streamInfo. - */ - mergeStreamInfo : function () { - for(var key in this.extraStreamInfo) { - if (!this.extraStreamInfo.hasOwnProperty(key)) { - continue; - } - this.streamInfo[key] = this.extraStreamInfo[key]; - } - }, - - /** - * Lock the stream to prevent further updates on the workers chain. - * After calling this method, all calls to pipe will fail. - */ - lock: function () { - if (this.isLocked) { - throw new Error("The stream '" + this + "' has already been used."); - } - this.isLocked = true; - if (this.previous) { - this.previous.lock(); - } - }, - - /** - * - * Pretty print the workers chain. - */ - toString : function () { - var me = "Worker " + this.name; - if (this.previous) { - return this.previous + " -> " + me; - } else { - return me; - } - } -}; - -module.exports = GenericWorker; - -},{}],29:[function(require,module,exports){ -'use strict'; - -var utils = require('../utils'); -var ConvertWorker = require('./ConvertWorker'); -var GenericWorker = require('./GenericWorker'); -var base64 = require('../base64'); -var support = require("../support"); -var external = require("../external"); - -var NodejsStreamOutputAdapter = null; -if (support.nodestream) { - try { - NodejsStreamOutputAdapter = require('../nodejs/NodejsStreamOutputAdapter'); - } catch(e) {} -} - -/** - * Apply the final transformation of the data. If the user wants a Blob for - * example, it's easier to work with an U8intArray and finally do the - * ArrayBuffer/Blob conversion. - * @param {String} type the name of the final type - * @param {String|Uint8Array|Buffer} content the content to transform - * @param {String} mimeType the mime type of the content, if applicable. - * @return {String|Uint8Array|ArrayBuffer|Buffer|Blob} the content in the right format. - */ -function transformZipOutput(type, content, mimeType) { - switch(type) { - case "blob" : - return utils.newBlob(utils.transformTo("arraybuffer", content), mimeType); - case "base64" : - return base64.encode(content); - default : - return utils.transformTo(type, content); - } -} - -/** - * Concatenate an array of data of the given type. - * @param {String} type the type of the data in the given array. - * @param {Array} dataArray the array containing the data chunks to concatenate - * @return {String|Uint8Array|Buffer} the concatenated data - * @throws Error if the asked type is unsupported - */ -function concat (type, dataArray) { - var i, index = 0, res = null, totalLength = 0; - for(i = 0; i < dataArray.length; i++) { - totalLength += dataArray[i].length; - } - switch(type) { - case "string": - return dataArray.join(""); - case "array": - return Array.prototype.concat.apply([], dataArray); - case "uint8array": - res = new Uint8Array(totalLength); - for(i = 0; i < dataArray.length; i++) { - res.set(dataArray[i], index); - index += dataArray[i].length; - } - return res; - case "nodebuffer": - return Buffer.concat(dataArray); - default: - throw new Error("concat : unsupported type '" + type + "'"); - } -} - -/** - * Listen a StreamHelper, accumulate its content and concatenate it into a - * complete block. - * @param {StreamHelper} helper the helper to use. - * @param {Function} updateCallback a callback called on each update. Called - * with one arg : - * - the metadata linked to the update received. - * @return Promise the promise for the accumulation. - */ -function accumulate(helper, updateCallback) { - return new external.Promise(function (resolve, reject){ - var dataArray = []; - var chunkType = helper._internalType, - resultType = helper._outputType, - mimeType = helper._mimeType; - helper - .on('data', function (data, meta) { - dataArray.push(data); - if(updateCallback) { - updateCallback(meta); - } - }) - .on('error', function(err) { - dataArray = []; - reject(err); - }) - .on('end', function (){ - try { - var result = transformZipOutput(resultType, concat(chunkType, dataArray), mimeType); - resolve(result); - } catch (e) { - reject(e); - } - dataArray = []; - }) - .resume(); - }); -} - -/** - * An helper to easily use workers outside of JSZip. - * @constructor - * @param {Worker} worker the worker to wrap - * @param {String} outputType the type of data expected by the use - * @param {String} mimeType the mime type of the content, if applicable. - */ -function StreamHelper(worker, outputType, mimeType) { - var internalType = outputType; - switch(outputType) { - case "blob": - case "arraybuffer": - internalType = "uint8array"; - break; - case "base64": - internalType = "string"; - break; - } - - try { - // the type used internally - this._internalType = internalType; - // the type used to output results - this._outputType = outputType; - // the mime type - this._mimeType = mimeType; - utils.checkSupport(internalType); - this._worker = worker.pipe(new ConvertWorker(internalType)); - // the last workers can be rewired without issues but we need to - // prevent any updates on previous workers. - worker.lock(); - } catch(e) { - this._worker = new GenericWorker("error"); - this._worker.error(e); - } -} - -StreamHelper.prototype = { - /** - * Listen a StreamHelper, accumulate its content and concatenate it into a - * complete block. - * @param {Function} updateCb the update callback. - * @return Promise the promise for the accumulation. - */ - accumulate : function (updateCb) { - return accumulate(this, updateCb); - }, - /** - * Add a listener on an event triggered on a stream. - * @param {String} evt the name of the event - * @param {Function} fn the listener - * @return {StreamHelper} the current helper. - */ - on : function (evt, fn) { - var self = this; - - if(evt === "data") { - this._worker.on(evt, function (chunk) { - fn.call(self, chunk.data, chunk.meta); - }); - } else { - this._worker.on(evt, function () { - utils.delay(fn, arguments, self); - }); - } - return this; - }, - /** - * Resume the flow of chunks. - * @return {StreamHelper} the current helper. - */ - resume : function () { - utils.delay(this._worker.resume, [], this._worker); - return this; - }, - /** - * Pause the flow of chunks. - * @return {StreamHelper} the current helper. - */ - pause : function () { - this._worker.pause(); - return this; - }, - /** - * Return a nodejs stream for this helper. - * @param {Function} updateCb the update callback. - * @return {NodejsStreamOutputAdapter} the nodejs stream. - */ - toNodejsStream : function (updateCb) { - utils.checkSupport("nodestream"); - if (this._outputType !== "nodebuffer") { - // an object stream containing blob/arraybuffer/uint8array/string - // is strange and I don't know if it would be useful. - // I you find this comment and have a good usecase, please open a - // bug report ! - throw new Error(this._outputType + " is not supported by this method"); - } - - return new NodejsStreamOutputAdapter(this, { - objectMode : this._outputType !== "nodebuffer" - }, updateCb); - } -}; - - -module.exports = StreamHelper; - -},{"../base64":1,"../external":6,"../nodejs/NodejsStreamOutputAdapter":13,"../support":30,"../utils":32,"./ConvertWorker":24,"./GenericWorker":28}],30:[function(require,module,exports){ -'use strict'; - -exports.base64 = true; -exports.array = true; -exports.string = true; -exports.arraybuffer = typeof ArrayBuffer !== "undefined" && typeof Uint8Array !== "undefined"; -exports.nodebuffer = typeof Buffer !== "undefined"; -// contains true if JSZip can read/generate Uint8Array, false otherwise. -exports.uint8array = typeof Uint8Array !== "undefined"; - -if (typeof ArrayBuffer === "undefined") { - exports.blob = false; -} -else { - var buffer = new ArrayBuffer(0); - try { - exports.blob = new Blob([buffer], { - type: "application/zip" - }).size === 0; - } - catch (e) { - try { - var Builder = self.BlobBuilder || self.WebKitBlobBuilder || self.MozBlobBuilder || self.MSBlobBuilder; - var builder = new Builder(); - builder.append(buffer); - exports.blob = builder.getBlob('application/zip').size === 0; - } - catch (e) { - exports.blob = false; - } - } -} - -try { - exports.nodestream = !!require('readable-stream').Readable; -} catch(e) { - exports.nodestream = false; -} - -},{"readable-stream":16}],31:[function(require,module,exports){ -'use strict'; - -var utils = require('./utils'); -var support = require('./support'); -var nodejsUtils = require('./nodejsUtils'); -var GenericWorker = require('./stream/GenericWorker'); - -/** - * The following functions come from pako, from pako/lib/utils/strings - * released under the MIT license, see pako https://github.com/nodeca/pako/ - */ - -// Table with utf8 lengths (calculated by first byte of sequence) -// Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS, -// because max possible codepoint is 0x10ffff -var _utf8len = new Array(256); -for (var i=0; i<256; i++) { - _utf8len[i] = (i >= 252 ? 6 : i >= 248 ? 5 : i >= 240 ? 4 : i >= 224 ? 3 : i >= 192 ? 2 : 1); -} -_utf8len[254]=_utf8len[254]=1; // Invalid sequence start - -// convert string to array (typed, when possible) -var string2buf = function (str) { - var buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0; - - // count binary size - for (m_pos = 0; m_pos < str_len; m_pos++) { - c = str.charCodeAt(m_pos); - if ((c & 0xfc00) === 0xd800 && (m_pos+1 < str_len)) { - c2 = str.charCodeAt(m_pos+1); - if ((c2 & 0xfc00) === 0xdc00) { - c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00); - m_pos++; - } - } - buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4; - } - - // allocate buffer - if (support.uint8array) { - buf = new Uint8Array(buf_len); - } else { - buf = new Array(buf_len); - } - - // convert - for (i=0, m_pos = 0; i < buf_len; m_pos++) { - c = str.charCodeAt(m_pos); - if ((c & 0xfc00) === 0xd800 && (m_pos+1 < str_len)) { - c2 = str.charCodeAt(m_pos+1); - if ((c2 & 0xfc00) === 0xdc00) { - c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00); - m_pos++; - } - } - if (c < 0x80) { - /* one byte */ - buf[i++] = c; - } else if (c < 0x800) { - /* two bytes */ - buf[i++] = 0xC0 | (c >>> 6); - buf[i++] = 0x80 | (c & 0x3f); - } else if (c < 0x10000) { - /* three bytes */ - buf[i++] = 0xE0 | (c >>> 12); - buf[i++] = 0x80 | (c >>> 6 & 0x3f); - buf[i++] = 0x80 | (c & 0x3f); - } else { - /* four bytes */ - buf[i++] = 0xf0 | (c >>> 18); - buf[i++] = 0x80 | (c >>> 12 & 0x3f); - buf[i++] = 0x80 | (c >>> 6 & 0x3f); - buf[i++] = 0x80 | (c & 0x3f); - } - } - - return buf; -}; - -// Calculate max possible position in utf8 buffer, -// that will not break sequence. If that's not possible -// - (very small limits) return max size as is. -// -// buf[] - utf8 bytes array -// max - length limit (mandatory); -var utf8border = function(buf, max) { - var pos; - - max = max || buf.length; - if (max > buf.length) { max = buf.length; } - - // go back from last position, until start of sequence found - pos = max-1; - while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; } - - // Fuckup - very small and broken sequence, - // return max, because we should return something anyway. - if (pos < 0) { return max; } - - // If we came to start of buffer - that means vuffer is too small, - // return max too. - if (pos === 0) { return max; } - - return (pos + _utf8len[buf[pos]] > max) ? pos : max; -}; - -// convert array to string -var buf2string = function (buf) { - var str, i, out, c, c_len; - var len = buf.length; - - // Reserve max possible length (2 words per char) - // NB: by unknown reasons, Array is significantly faster for - // String.fromCharCode.apply than Uint16Array. - var utf16buf = new Array(len*2); - - for (out=0, i=0; i 4) { utf16buf[out++] = 0xfffd; i += c_len-1; continue; } - - // apply mask on first byte - c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07; - // join the rest - while (c_len > 1 && i < len) { - c = (c << 6) | (buf[i++] & 0x3f); - c_len--; - } - - // terminated by end of string? - if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; } - - if (c < 0x10000) { - utf16buf[out++] = c; - } else { - c -= 0x10000; - utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff); - utf16buf[out++] = 0xdc00 | (c & 0x3ff); - } - } - - // shrinkBuf(utf16buf, out) - if (utf16buf.length !== out) { - if(utf16buf.subarray) { - utf16buf = utf16buf.subarray(0, out); - } else { - utf16buf.length = out; - } - } - - // return String.fromCharCode.apply(null, utf16buf); - return utils.applyFromCharCode(utf16buf); -}; - - -// That's all for the pako functions. - - -/** - * Transform a javascript string into an array (typed if possible) of bytes, - * UTF-8 encoded. - * @param {String} str the string to encode - * @return {Array|Uint8Array|Buffer} the UTF-8 encoded string. - */ -exports.utf8encode = function utf8encode(str) { - if (support.nodebuffer) { - return nodejsUtils.newBufferFrom(str, "utf-8"); - } - - return string2buf(str); -}; - - -/** - * Transform a bytes array (or a representation) representing an UTF-8 encoded - * string into a javascript string. - * @param {Array|Uint8Array|Buffer} buf the data de decode - * @return {String} the decoded string. - */ -exports.utf8decode = function utf8decode(buf) { - if (support.nodebuffer) { - return utils.transformTo("nodebuffer", buf).toString("utf-8"); - } - - buf = utils.transformTo(support.uint8array ? "uint8array" : "array", buf); - - return buf2string(buf); -}; - -/** - * A worker to decode utf8 encoded binary chunks into string chunks. - * @constructor - */ -function Utf8DecodeWorker() { - GenericWorker.call(this, "utf-8 decode"); - // the last bytes if a chunk didn't end with a complete codepoint. - this.leftOver = null; -} -utils.inherits(Utf8DecodeWorker, GenericWorker); - -/** - * @see GenericWorker.processChunk - */ -Utf8DecodeWorker.prototype.processChunk = function (chunk) { - - var data = utils.transformTo(support.uint8array ? "uint8array" : "array", chunk.data); - - // 1st step, re-use what's left of the previous chunk - if (this.leftOver && this.leftOver.length) { - if(support.uint8array) { - var previousData = data; - data = new Uint8Array(previousData.length + this.leftOver.length); - data.set(this.leftOver, 0); - data.set(previousData, this.leftOver.length); - } else { - data = this.leftOver.concat(data); - } - this.leftOver = null; - } - - var nextBoundary = utf8border(data); - var usableData = data; - if (nextBoundary !== data.length) { - if (support.uint8array) { - usableData = data.subarray(0, nextBoundary); - this.leftOver = data.subarray(nextBoundary, data.length); - } else { - usableData = data.slice(0, nextBoundary); - this.leftOver = data.slice(nextBoundary, data.length); - } - } - - this.push({ - data : exports.utf8decode(usableData), - meta : chunk.meta - }); -}; - -/** - * @see GenericWorker.flush - */ -Utf8DecodeWorker.prototype.flush = function () { - if(this.leftOver && this.leftOver.length) { - this.push({ - data : exports.utf8decode(this.leftOver), - meta : {} - }); - this.leftOver = null; - } -}; -exports.Utf8DecodeWorker = Utf8DecodeWorker; - -/** - * A worker to endcode string chunks into utf8 encoded binary chunks. - * @constructor - */ -function Utf8EncodeWorker() { - GenericWorker.call(this, "utf-8 encode"); -} -utils.inherits(Utf8EncodeWorker, GenericWorker); - -/** - * @see GenericWorker.processChunk - */ -Utf8EncodeWorker.prototype.processChunk = function (chunk) { - this.push({ - data : exports.utf8encode(chunk.data), - meta : chunk.meta - }); -}; -exports.Utf8EncodeWorker = Utf8EncodeWorker; - -},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(require,module,exports){ -'use strict'; - -var support = require('./support'); -var base64 = require('./base64'); -var nodejsUtils = require('./nodejsUtils'); -var setImmediate = require('set-immediate-shim'); -var external = require("./external"); - - -/** - * Convert a string that pass as a "binary string": it should represent a byte - * array but may have > 255 char codes. Be sure to take only the first byte - * and returns the byte array. - * @param {String} str the string to transform. - * @return {Array|Uint8Array} the string in a binary format. - */ -function string2binary(str) { - var result = null; - if (support.uint8array) { - result = new Uint8Array(str.length); - } else { - result = new Array(str.length); - } - return stringToArrayLike(str, result); -} - -/** - * Create a new blob with the given content and the given type. - * @param {String|ArrayBuffer} part the content to put in the blob. DO NOT use - * an Uint8Array because the stock browser of android 4 won't accept it (it - * will be silently converted to a string, "[object Uint8Array]"). - * - * Use only ONE part to build the blob to avoid a memory leak in IE11 / Edge: - * when a large amount of Array is used to create the Blob, the amount of - * memory consumed is nearly 100 times the original data amount. - * - * @param {String} type the mime type of the blob. - * @return {Blob} the created blob. - */ -exports.newBlob = function(part, type) { - exports.checkSupport("blob"); - - try { - // Blob constructor - return new Blob([part], { - type: type - }); - } - catch (e) { - - try { - // deprecated, browser only, old way - var Builder = self.BlobBuilder || self.WebKitBlobBuilder || self.MozBlobBuilder || self.MSBlobBuilder; - var builder = new Builder(); - builder.append(part); - return builder.getBlob(type); - } - catch (e) { - - // well, fuck ?! - throw new Error("Bug : can't construct the Blob."); - } - } - - -}; -/** - * The identity function. - * @param {Object} input the input. - * @return {Object} the same input. - */ -function identity(input) { - return input; -} - -/** - * Fill in an array with a string. - * @param {String} str the string to use. - * @param {Array|ArrayBuffer|Uint8Array|Buffer} array the array to fill in (will be mutated). - * @return {Array|ArrayBuffer|Uint8Array|Buffer} the updated array. - */ -function stringToArrayLike(str, array) { - for (var i = 0; i < str.length; ++i) { - array[i] = str.charCodeAt(i) & 0xFF; - } - return array; -} - -/** - * An helper for the function arrayLikeToString. - * This contains static informations and functions that - * can be optimized by the browser JIT compiler. - */ -var arrayToStringHelper = { - /** - * Transform an array of int into a string, chunk by chunk. - * See the performances notes on arrayLikeToString. - * @param {Array|ArrayBuffer|Uint8Array|Buffer} array the array to transform. - * @param {String} type the type of the array. - * @param {Integer} chunk the chunk size. - * @return {String} the resulting string. - * @throws Error if the chunk is too big for the stack. - */ - stringifyByChunk: function(array, type, chunk) { - var result = [], k = 0, len = array.length; - // shortcut - if (len <= chunk) { - return String.fromCharCode.apply(null, array); - } - while (k < len) { - if (type === "array" || type === "nodebuffer") { - result.push(String.fromCharCode.apply(null, array.slice(k, Math.min(k + chunk, len)))); - } - else { - result.push(String.fromCharCode.apply(null, array.subarray(k, Math.min(k + chunk, len)))); - } - k += chunk; - } - return result.join(""); - }, - /** - * Call String.fromCharCode on every item in the array. - * This is the naive implementation, which generate A LOT of intermediate string. - * This should be used when everything else fail. - * @param {Array|ArrayBuffer|Uint8Array|Buffer} array the array to transform. - * @return {String} the result. - */ - stringifyByChar: function(array){ - var resultStr = ""; - for(var i = 0; i < array.length; i++) { - resultStr += String.fromCharCode(array[i]); - } - return resultStr; - }, - applyCanBeUsed : { - /** - * true if the browser accepts to use String.fromCharCode on Uint8Array - */ - uint8array : (function () { - try { - return support.uint8array && String.fromCharCode.apply(null, new Uint8Array(1)).length === 1; - } catch (e) { - return false; - } - })(), - /** - * true if the browser accepts to use String.fromCharCode on nodejs Buffer. - */ - nodebuffer : (function () { - try { - return support.nodebuffer && String.fromCharCode.apply(null, nodejsUtils.allocBuffer(1)).length === 1; - } catch (e) { - return false; - } - })() - } -}; - -/** - * Transform an array-like object to a string. - * @param {Array|ArrayBuffer|Uint8Array|Buffer} array the array to transform. - * @return {String} the result. - */ -function arrayLikeToString(array) { - // Performances notes : - // -------------------- - // String.fromCharCode.apply(null, array) is the fastest, see - // see http://jsperf.com/converting-a-uint8array-to-a-string/2 - // but the stack is limited (and we can get huge arrays !). - // - // result += String.fromCharCode(array[i]); generate too many strings ! - // - // This code is inspired by http://jsperf.com/arraybuffer-to-string-apply-performance/2 - // TODO : we now have workers that split the work. Do we still need that ? - var chunk = 65536, - type = exports.getTypeOf(array), - canUseApply = true; - if (type === "uint8array") { - canUseApply = arrayToStringHelper.applyCanBeUsed.uint8array; - } else if (type === "nodebuffer") { - canUseApply = arrayToStringHelper.applyCanBeUsed.nodebuffer; - } - - if (canUseApply) { - while (chunk > 1) { - try { - return arrayToStringHelper.stringifyByChunk(array, type, chunk); - } catch (e) { - chunk = Math.floor(chunk / 2); - } - } - } - - // no apply or chunk error : slow and painful algorithm - // default browser on android 4.* - return arrayToStringHelper.stringifyByChar(array); -} - -exports.applyFromCharCode = arrayLikeToString; - - -/** - * Copy the data from an array-like to an other array-like. - * @param {Array|ArrayBuffer|Uint8Array|Buffer} arrayFrom the origin array. - * @param {Array|ArrayBuffer|Uint8Array|Buffer} arrayTo the destination array which will be mutated. - * @return {Array|ArrayBuffer|Uint8Array|Buffer} the updated destination array. - */ -function arrayLikeToArrayLike(arrayFrom, arrayTo) { - for (var i = 0; i < arrayFrom.length; i++) { - arrayTo[i] = arrayFrom[i]; - } - return arrayTo; -} - -// a matrix containing functions to transform everything into everything. -var transform = {}; - -// string to ? -transform["string"] = { - "string": identity, - "array": function(input) { - return stringToArrayLike(input, new Array(input.length)); - }, - "arraybuffer": function(input) { - return transform["string"]["uint8array"](input).buffer; - }, - "uint8array": function(input) { - return stringToArrayLike(input, new Uint8Array(input.length)); - }, - "nodebuffer": function(input) { - return stringToArrayLike(input, nodejsUtils.allocBuffer(input.length)); - } -}; - -// array to ? -transform["array"] = { - "string": arrayLikeToString, - "array": identity, - "arraybuffer": function(input) { - return (new Uint8Array(input)).buffer; - }, - "uint8array": function(input) { - return new Uint8Array(input); - }, - "nodebuffer": function(input) { - return nodejsUtils.newBufferFrom(input); - } -}; - -// arraybuffer to ? -transform["arraybuffer"] = { - "string": function(input) { - return arrayLikeToString(new Uint8Array(input)); - }, - "array": function(input) { - return arrayLikeToArrayLike(new Uint8Array(input), new Array(input.byteLength)); - }, - "arraybuffer": identity, - "uint8array": function(input) { - return new Uint8Array(input); - }, - "nodebuffer": function(input) { - return nodejsUtils.newBufferFrom(new Uint8Array(input)); - } -}; - -// uint8array to ? -transform["uint8array"] = { - "string": arrayLikeToString, - "array": function(input) { - return arrayLikeToArrayLike(input, new Array(input.length)); - }, - "arraybuffer": function(input) { - return input.buffer; - }, - "uint8array": identity, - "nodebuffer": function(input) { - return nodejsUtils.newBufferFrom(input); - } -}; - -// nodebuffer to ? -transform["nodebuffer"] = { - "string": arrayLikeToString, - "array": function(input) { - return arrayLikeToArrayLike(input, new Array(input.length)); - }, - "arraybuffer": function(input) { - return transform["nodebuffer"]["uint8array"](input).buffer; - }, - "uint8array": function(input) { - return arrayLikeToArrayLike(input, new Uint8Array(input.length)); - }, - "nodebuffer": identity -}; - -/** - * Transform an input into any type. - * The supported output type are : string, array, uint8array, arraybuffer, nodebuffer. - * If no output type is specified, the unmodified input will be returned. - * @param {String} outputType the output type. - * @param {String|Array|ArrayBuffer|Uint8Array|Buffer} input the input to convert. - * @throws {Error} an Error if the browser doesn't support the requested output type. - */ -exports.transformTo = function(outputType, input) { - if (!input) { - // undefined, null, etc - // an empty string won't harm. - input = ""; - } - if (!outputType) { - return input; - } - exports.checkSupport(outputType); - var inputType = exports.getTypeOf(input); - var result = transform[inputType][outputType](input); - return result; -}; - -/** - * Return the type of the input. - * The type will be in a format valid for JSZip.utils.transformTo : string, array, uint8array, arraybuffer. - * @param {Object} input the input to identify. - * @return {String} the (lowercase) type of the input. - */ -exports.getTypeOf = function(input) { - if (typeof input === "string") { - return "string"; - } - if (Object.prototype.toString.call(input) === "[object Array]") { - return "array"; - } - if (support.nodebuffer && nodejsUtils.isBuffer(input)) { - return "nodebuffer"; - } - if (support.uint8array && input instanceof Uint8Array) { - return "uint8array"; - } - if (support.arraybuffer && input instanceof ArrayBuffer) { - return "arraybuffer"; - } -}; - -/** - * Throw an exception if the type is not supported. - * @param {String} type the type to check. - * @throws {Error} an Error if the browser doesn't support the requested type. - */ -exports.checkSupport = function(type) { - var supported = support[type.toLowerCase()]; - if (!supported) { - throw new Error(type + " is not supported by this platform"); - } -}; - -exports.MAX_VALUE_16BITS = 65535; -exports.MAX_VALUE_32BITS = -1; // well, "\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF" is parsed as -1 - -/** - * Prettify a string read as binary. - * @param {string} str the string to prettify. - * @return {string} a pretty string. - */ -exports.pretty = function(str) { - var res = '', - code, i; - for (i = 0; i < (str || "").length; i++) { - code = str.charCodeAt(i); - res += '\\x' + (code < 16 ? "0" : "") + code.toString(16).toUpperCase(); - } - return res; -}; - -/** - * Defer the call of a function. - * @param {Function} callback the function to call asynchronously. - * @param {Array} args the arguments to give to the callback. - */ -exports.delay = function(callback, args, self) { - setImmediate(function () { - callback.apply(self || null, args || []); - }); -}; - -/** - * Extends a prototype with an other, without calling a constructor with - * side effects. Inspired by nodejs' `utils.inherits` - * @param {Function} ctor the constructor to augment - * @param {Function} superCtor the parent constructor to use - */ -exports.inherits = function (ctor, superCtor) { - var Obj = function() {}; - Obj.prototype = superCtor.prototype; - ctor.prototype = new Obj(); -}; - -/** - * Merge the objects passed as parameters into a new one. - * @private - * @param {...Object} var_args All objects to merge. - * @return {Object} a new object with the data of the others. - */ -exports.extend = function() { - var result = {}, i, attr; - for (i = 0; i < arguments.length; i++) { // arguments is not enumerable in some browsers - for (attr in arguments[i]) { - if (arguments[i].hasOwnProperty(attr) && typeof result[attr] === "undefined") { - result[attr] = arguments[i][attr]; - } - } - } - return result; -}; - -/** - * Transform arbitrary content into a Promise. - * @param {String} name a name for the content being processed. - * @param {Object} inputData the content to process. - * @param {Boolean} isBinary true if the content is not an unicode string - * @param {Boolean} isOptimizedBinaryString true if the string content only has one byte per character. - * @param {Boolean} isBase64 true if the string content is encoded with base64. - * @return {Promise} a promise in a format usable by JSZip. - */ -exports.prepareContent = function(name, inputData, isBinary, isOptimizedBinaryString, isBase64) { - - // if inputData is already a promise, this flatten it. - var promise = external.Promise.resolve(inputData).then(function(data) { - - - var isBlob = support.blob && (data instanceof Blob || ['[object File]', '[object Blob]'].indexOf(Object.prototype.toString.call(data)) !== -1); - - if (isBlob && typeof FileReader !== "undefined") { - return new external.Promise(function (resolve, reject) { - var reader = new FileReader(); - - reader.onload = function(e) { - resolve(e.target.result); - }; - reader.onerror = function(e) { - reject(e.target.error); - }; - reader.readAsArrayBuffer(data); - }); - } else { - return data; - } - }); - - return promise.then(function(data) { - var dataType = exports.getTypeOf(data); - - if (!dataType) { - return external.Promise.reject( - new Error("Can't read the data of '" + name + "'. Is it " + - "in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?") - ); - } - // special case : it's way easier to work with Uint8Array than with ArrayBuffer - if (dataType === "arraybuffer") { - data = exports.transformTo("uint8array", data); - } else if (dataType === "string") { - if (isBase64) { - data = base64.decode(data); - } - else if (isBinary) { - // optimizedBinaryString === true means that the file has already been filtered with a 0xFF mask - if (isOptimizedBinaryString !== true) { - // this is a string, not in a base64 format. - // Be sure that this is a correct "binary string" - data = string2binary(data); - } - } - } - return data; - }); -}; - -},{"./base64":1,"./external":6,"./nodejsUtils":14,"./support":30,"set-immediate-shim":54}],33:[function(require,module,exports){ -'use strict'; -var readerFor = require('./reader/readerFor'); -var utils = require('./utils'); -var sig = require('./signature'); -var ZipEntry = require('./zipEntry'); -var utf8 = require('./utf8'); -var support = require('./support'); -// class ZipEntries {{{ -/** - * All the entries in the zip file. - * @constructor - * @param {Object} loadOptions Options for loading the stream. - */ -function ZipEntries(loadOptions) { - this.files = []; - this.loadOptions = loadOptions; -} -ZipEntries.prototype = { - /** - * Check that the reader is on the specified signature. - * @param {string} expectedSignature the expected signature. - * @throws {Error} if it is an other signature. - */ - checkSignature: function(expectedSignature) { - if (!this.reader.readAndCheckSignature(expectedSignature)) { - this.reader.index -= 4; - var signature = this.reader.readString(4); - throw new Error("Corrupted zip or bug: unexpected signature " + "(" + utils.pretty(signature) + ", expected " + utils.pretty(expectedSignature) + ")"); - } - }, - /** - * Check if the given signature is at the given index. - * @param {number} askedIndex the index to check. - * @param {string} expectedSignature the signature to expect. - * @return {boolean} true if the signature is here, false otherwise. - */ - isSignature: function(askedIndex, expectedSignature) { - var currentIndex = this.reader.index; - this.reader.setIndex(askedIndex); - var signature = this.reader.readString(4); - var result = signature === expectedSignature; - this.reader.setIndex(currentIndex); - return result; - }, - /** - * Read the end of the central directory. - */ - readBlockEndOfCentral: function() { - this.diskNumber = this.reader.readInt(2); - this.diskWithCentralDirStart = this.reader.readInt(2); - this.centralDirRecordsOnThisDisk = this.reader.readInt(2); - this.centralDirRecords = this.reader.readInt(2); - this.centralDirSize = this.reader.readInt(4); - this.centralDirOffset = this.reader.readInt(4); - - this.zipCommentLength = this.reader.readInt(2); - // warning : the encoding depends of the system locale - // On a linux machine with LANG=en_US.utf8, this field is utf8 encoded. - // On a windows machine, this field is encoded with the localized windows code page. - var zipComment = this.reader.readData(this.zipCommentLength); - var decodeParamType = support.uint8array ? "uint8array" : "array"; - // To get consistent behavior with the generation part, we will assume that - // this is utf8 encoded unless specified otherwise. - var decodeContent = utils.transformTo(decodeParamType, zipComment); - this.zipComment = this.loadOptions.decodeFileName(decodeContent); - }, - /** - * Read the end of the Zip 64 central directory. - * Not merged with the method readEndOfCentral : - * The end of central can coexist with its Zip64 brother, - * I don't want to read the wrong number of bytes ! - */ - readBlockZip64EndOfCentral: function() { - this.zip64EndOfCentralSize = this.reader.readInt(8); - this.reader.skip(4); - // this.versionMadeBy = this.reader.readString(2); - // this.versionNeeded = this.reader.readInt(2); - this.diskNumber = this.reader.readInt(4); - this.diskWithCentralDirStart = this.reader.readInt(4); - this.centralDirRecordsOnThisDisk = this.reader.readInt(8); - this.centralDirRecords = this.reader.readInt(8); - this.centralDirSize = this.reader.readInt(8); - this.centralDirOffset = this.reader.readInt(8); - - this.zip64ExtensibleData = {}; - var extraDataSize = this.zip64EndOfCentralSize - 44, - index = 0, - extraFieldId, - extraFieldLength, - extraFieldValue; - while (index < extraDataSize) { - extraFieldId = this.reader.readInt(2); - extraFieldLength = this.reader.readInt(4); - extraFieldValue = this.reader.readData(extraFieldLength); - this.zip64ExtensibleData[extraFieldId] = { - id: extraFieldId, - length: extraFieldLength, - value: extraFieldValue - }; - } - }, - /** - * Read the end of the Zip 64 central directory locator. - */ - readBlockZip64EndOfCentralLocator: function() { - this.diskWithZip64CentralDirStart = this.reader.readInt(4); - this.relativeOffsetEndOfZip64CentralDir = this.reader.readInt(8); - this.disksCount = this.reader.readInt(4); - if (this.disksCount > 1) { - throw new Error("Multi-volumes zip are not supported"); - } - }, - /** - * Read the local files, based on the offset read in the central part. - */ - readLocalFiles: function() { - var i, file; - for (i = 0; i < this.files.length; i++) { - file = this.files[i]; - this.reader.setIndex(file.localHeaderOffset); - this.checkSignature(sig.LOCAL_FILE_HEADER); - file.readLocalPart(this.reader); - file.handleUTF8(); - file.processAttributes(); - } - }, - /** - * Read the central directory. - */ - readCentralDir: function() { - var file; - - this.reader.setIndex(this.centralDirOffset); - while (this.reader.readAndCheckSignature(sig.CENTRAL_FILE_HEADER)) { - file = new ZipEntry({ - zip64: this.zip64 - }, this.loadOptions); - file.readCentralPart(this.reader); - this.files.push(file); - } - - if (this.centralDirRecords !== this.files.length) { - if (this.centralDirRecords !== 0 && this.files.length === 0) { - // We expected some records but couldn't find ANY. - // This is really suspicious, as if something went wrong. - throw new Error("Corrupted zip or bug: expected " + this.centralDirRecords + " records in central dir, got " + this.files.length); - } else { - // We found some records but not all. - // Something is wrong but we got something for the user: no error here. - // console.warn("expected", this.centralDirRecords, "records in central dir, got", this.files.length); - } - } - }, - /** - * Read the end of central directory. - */ - readEndOfCentral: function() { - var offset = this.reader.lastIndexOfSignature(sig.CENTRAL_DIRECTORY_END); - if (offset < 0) { - // Check if the content is a truncated zip or complete garbage. - // A "LOCAL_FILE_HEADER" is not required at the beginning (auto - // extractible zip for example) but it can give a good hint. - // If an ajax request was used without responseType, we will also - // get unreadable data. - var isGarbage = !this.isSignature(0, sig.LOCAL_FILE_HEADER); - - if (isGarbage) { - throw new Error("Can't find end of central directory : is this a zip file ? " + - "If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html"); - } else { - throw new Error("Corrupted zip: can't find end of central directory"); - } - - } - this.reader.setIndex(offset); - var endOfCentralDirOffset = offset; - this.checkSignature(sig.CENTRAL_DIRECTORY_END); - this.readBlockEndOfCentral(); - - - /* extract from the zip spec : - 4) If one of the fields in the end of central directory - record is too small to hold required data, the field - should be set to -1 (0xFFFF or 0xFFFFFFFF) and the - ZIP64 format record should be created. - 5) The end of central directory record and the - Zip64 end of central directory locator record must - reside on the same disk when splitting or spanning - an archive. - */ - if (this.diskNumber === utils.MAX_VALUE_16BITS || this.diskWithCentralDirStart === utils.MAX_VALUE_16BITS || this.centralDirRecordsOnThisDisk === utils.MAX_VALUE_16BITS || this.centralDirRecords === utils.MAX_VALUE_16BITS || this.centralDirSize === utils.MAX_VALUE_32BITS || this.centralDirOffset === utils.MAX_VALUE_32BITS) { - this.zip64 = true; - - /* - Warning : the zip64 extension is supported, but ONLY if the 64bits integer read from - the zip file can fit into a 32bits integer. This cannot be solved : JavaScript represents - all numbers as 64-bit double precision IEEE 754 floating point numbers. - So, we have 53bits for integers and bitwise operations treat everything as 32bits. - see https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/Bitwise_Operators - and http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf section 8.5 - */ - - // should look for a zip64 EOCD locator - offset = this.reader.lastIndexOfSignature(sig.ZIP64_CENTRAL_DIRECTORY_LOCATOR); - if (offset < 0) { - throw new Error("Corrupted zip: can't find the ZIP64 end of central directory locator"); - } - this.reader.setIndex(offset); - this.checkSignature(sig.ZIP64_CENTRAL_DIRECTORY_LOCATOR); - this.readBlockZip64EndOfCentralLocator(); - - // now the zip64 EOCD record - if (!this.isSignature(this.relativeOffsetEndOfZip64CentralDir, sig.ZIP64_CENTRAL_DIRECTORY_END)) { - // console.warn("ZIP64 end of central directory not where expected."); - this.relativeOffsetEndOfZip64CentralDir = this.reader.lastIndexOfSignature(sig.ZIP64_CENTRAL_DIRECTORY_END); - if (this.relativeOffsetEndOfZip64CentralDir < 0) { - throw new Error("Corrupted zip: can't find the ZIP64 end of central directory"); - } - } - this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir); - this.checkSignature(sig.ZIP64_CENTRAL_DIRECTORY_END); - this.readBlockZip64EndOfCentral(); - } - - var expectedEndOfCentralDirOffset = this.centralDirOffset + this.centralDirSize; - if (this.zip64) { - expectedEndOfCentralDirOffset += 20; // end of central dir 64 locator - expectedEndOfCentralDirOffset += 12 /* should not include the leading 12 bytes */ + this.zip64EndOfCentralSize; - } - - var extraBytes = endOfCentralDirOffset - expectedEndOfCentralDirOffset; - - if (extraBytes > 0) { - // console.warn(extraBytes, "extra bytes at beginning or within zipfile"); - if (this.isSignature(endOfCentralDirOffset, sig.CENTRAL_FILE_HEADER)) { - // The offsets seem wrong, but we have something at the specified offset. - // So… we keep it. - } else { - // the offset is wrong, update the "zero" of the reader - // this happens if data has been prepended (crx files for example) - this.reader.zero = extraBytes; - } - } else if (extraBytes < 0) { - throw new Error("Corrupted zip: missing " + Math.abs(extraBytes) + " bytes."); - } - }, - prepareReader: function(data) { - this.reader = readerFor(data); - }, - /** - * Read a zip file and create ZipEntries. - * @param {String|ArrayBuffer|Uint8Array|Buffer} data the binary string representing a zip file. - */ - load: function(data) { - this.prepareReader(data); - this.readEndOfCentral(); - this.readCentralDir(); - this.readLocalFiles(); - } -}; -// }}} end of ZipEntries -module.exports = ZipEntries; - -},{"./reader/readerFor":22,"./signature":23,"./support":30,"./utf8":31,"./utils":32,"./zipEntry":34}],34:[function(require,module,exports){ -'use strict'; -var readerFor = require('./reader/readerFor'); -var utils = require('./utils'); -var CompressedObject = require('./compressedObject'); -var crc32fn = require('./crc32'); -var utf8 = require('./utf8'); -var compressions = require('./compressions'); -var support = require('./support'); - -var MADE_BY_DOS = 0x00; -var MADE_BY_UNIX = 0x03; - -/** - * Find a compression registered in JSZip. - * @param {string} compressionMethod the method magic to find. - * @return {Object|null} the JSZip compression object, null if none found. - */ -var findCompression = function(compressionMethod) { - for (var method in compressions) { - if (!compressions.hasOwnProperty(method)) { - continue; - } - if (compressions[method].magic === compressionMethod) { - return compressions[method]; - } - } - return null; -}; - -// class ZipEntry {{{ -/** - * An entry in the zip file. - * @constructor - * @param {Object} options Options of the current file. - * @param {Object} loadOptions Options for loading the stream. - */ -function ZipEntry(options, loadOptions) { - this.options = options; - this.loadOptions = loadOptions; -} -ZipEntry.prototype = { - /** - * say if the file is encrypted. - * @return {boolean} true if the file is encrypted, false otherwise. - */ - isEncrypted: function() { - // bit 1 is set - return (this.bitFlag & 0x0001) === 0x0001; - }, - /** - * say if the file has utf-8 filename/comment. - * @return {boolean} true if the filename/comment is in utf-8, false otherwise. - */ - useUTF8: function() { - // bit 11 is set - return (this.bitFlag & 0x0800) === 0x0800; - }, - /** - * Read the local part of a zip file and add the info in this object. - * @param {DataReader} reader the reader to use. - */ - readLocalPart: function(reader) { - var compression, localExtraFieldsLength; - - // we already know everything from the central dir ! - // If the central dir data are false, we are doomed. - // On the bright side, the local part is scary : zip64, data descriptors, both, etc. - // The less data we get here, the more reliable this should be. - // Let's skip the whole header and dash to the data ! - reader.skip(22); - // in some zip created on windows, the filename stored in the central dir contains \ instead of /. - // Strangely, the filename here is OK. - // I would love to treat these zip files as corrupted (see http://www.info-zip.org/FAQ.html#backslashes - // or APPNOTE#4.4.17.1, "All slashes MUST be forward slashes '/'") but there are a lot of bad zip generators... - // Search "unzip mismatching "local" filename continuing with "central" filename version" on - // the internet. - // - // I think I see the logic here : the central directory is used to display - // content and the local directory is used to extract the files. Mixing / and \ - // may be used to display \ to windows users and use / when extracting the files. - // Unfortunately, this lead also to some issues : http://seclists.org/fulldisclosure/2009/Sep/394 - this.fileNameLength = reader.readInt(2); - localExtraFieldsLength = reader.readInt(2); // can't be sure this will be the same as the central dir - // the fileName is stored as binary data, the handleUTF8 method will take care of the encoding. - this.fileName = reader.readData(this.fileNameLength); - reader.skip(localExtraFieldsLength); - - if (this.compressedSize === -1 || this.uncompressedSize === -1) { - throw new Error("Bug or corrupted zip : didn't get enough informations from the central directory " + "(compressedSize === -1 || uncompressedSize === -1)"); - } - - compression = findCompression(this.compressionMethod); - if (compression === null) { // no compression found - throw new Error("Corrupted zip : compression " + utils.pretty(this.compressionMethod) + " unknown (inner file : " + utils.transformTo("string", this.fileName) + ")"); - } - this.decompressed = new CompressedObject(this.compressedSize, this.uncompressedSize, this.crc32, compression, reader.readData(this.compressedSize)); - }, - - /** - * Read the central part of a zip file and add the info in this object. - * @param {DataReader} reader the reader to use. - */ - readCentralPart: function(reader) { - this.versionMadeBy = reader.readInt(2); - reader.skip(2); - // this.versionNeeded = reader.readInt(2); - this.bitFlag = reader.readInt(2); - this.compressionMethod = reader.readString(2); - this.date = reader.readDate(); - this.crc32 = reader.readInt(4); - this.compressedSize = reader.readInt(4); - this.uncompressedSize = reader.readInt(4); - var fileNameLength = reader.readInt(2); - this.extraFieldsLength = reader.readInt(2); - this.fileCommentLength = reader.readInt(2); - this.diskNumberStart = reader.readInt(2); - this.internalFileAttributes = reader.readInt(2); - this.externalFileAttributes = reader.readInt(4); - this.localHeaderOffset = reader.readInt(4); - - if (this.isEncrypted()) { - throw new Error("Encrypted zip are not supported"); - } - - // will be read in the local part, see the comments there - reader.skip(fileNameLength); - this.readExtraFields(reader); - this.parseZIP64ExtraField(reader); - this.fileComment = reader.readData(this.fileCommentLength); - }, - - /** - * Parse the external file attributes and get the unix/dos permissions. - */ - processAttributes: function () { - this.unixPermissions = null; - this.dosPermissions = null; - var madeBy = this.versionMadeBy >> 8; - - // Check if we have the DOS directory flag set. - // We look for it in the DOS and UNIX permissions - // but some unknown platform could set it as a compatibility flag. - this.dir = this.externalFileAttributes & 0x0010 ? true : false; - - if(madeBy === MADE_BY_DOS) { - // first 6 bits (0 to 5) - this.dosPermissions = this.externalFileAttributes & 0x3F; - } - - if(madeBy === MADE_BY_UNIX) { - this.unixPermissions = (this.externalFileAttributes >> 16) & 0xFFFF; - // the octal permissions are in (this.unixPermissions & 0x01FF).toString(8); - } - - // fail safe : if the name ends with a / it probably means a folder - if (!this.dir && this.fileNameStr.slice(-1) === '/') { - this.dir = true; - } - }, - - /** - * Parse the ZIP64 extra field and merge the info in the current ZipEntry. - * @param {DataReader} reader the reader to use. - */ - parseZIP64ExtraField: function(reader) { - - if (!this.extraFields[0x0001]) { - return; - } - - // should be something, preparing the extra reader - var extraReader = readerFor(this.extraFields[0x0001].value); - - // I really hope that these 64bits integer can fit in 32 bits integer, because js - // won't let us have more. - if (this.uncompressedSize === utils.MAX_VALUE_32BITS) { - this.uncompressedSize = extraReader.readInt(8); - } - if (this.compressedSize === utils.MAX_VALUE_32BITS) { - this.compressedSize = extraReader.readInt(8); - } - if (this.localHeaderOffset === utils.MAX_VALUE_32BITS) { - this.localHeaderOffset = extraReader.readInt(8); - } - if (this.diskNumberStart === utils.MAX_VALUE_32BITS) { - this.diskNumberStart = extraReader.readInt(4); - } - }, - /** - * Read the central part of a zip file and add the info in this object. - * @param {DataReader} reader the reader to use. - */ - readExtraFields: function(reader) { - var end = reader.index + this.extraFieldsLength, - extraFieldId, - extraFieldLength, - extraFieldValue; - - if (!this.extraFields) { - this.extraFields = {}; - } - - while (reader.index < end) { - extraFieldId = reader.readInt(2); - extraFieldLength = reader.readInt(2); - extraFieldValue = reader.readData(extraFieldLength); - - this.extraFields[extraFieldId] = { - id: extraFieldId, - length: extraFieldLength, - value: extraFieldValue - }; - } - }, - /** - * Apply an UTF8 transformation if needed. - */ - handleUTF8: function() { - var decodeParamType = support.uint8array ? "uint8array" : "array"; - if (this.useUTF8()) { - this.fileNameStr = utf8.utf8decode(this.fileName); - this.fileCommentStr = utf8.utf8decode(this.fileComment); - } else { - var upath = this.findExtraFieldUnicodePath(); - if (upath !== null) { - this.fileNameStr = upath; - } else { - // ASCII text or unsupported code page - var fileNameByteArray = utils.transformTo(decodeParamType, this.fileName); - this.fileNameStr = this.loadOptions.decodeFileName(fileNameByteArray); - } - - var ucomment = this.findExtraFieldUnicodeComment(); - if (ucomment !== null) { - this.fileCommentStr = ucomment; - } else { - // ASCII text or unsupported code page - var commentByteArray = utils.transformTo(decodeParamType, this.fileComment); - this.fileCommentStr = this.loadOptions.decodeFileName(commentByteArray); - } - } - }, - - /** - * Find the unicode path declared in the extra field, if any. - * @return {String} the unicode path, null otherwise. - */ - findExtraFieldUnicodePath: function() { - var upathField = this.extraFields[0x7075]; - if (upathField) { - var extraReader = readerFor(upathField.value); - - // wrong version - if (extraReader.readInt(1) !== 1) { - return null; - } - - // the crc of the filename changed, this field is out of date. - if (crc32fn(this.fileName) !== extraReader.readInt(4)) { - return null; - } - - return utf8.utf8decode(extraReader.readData(upathField.length - 5)); - } - return null; - }, - - /** - * Find the unicode comment declared in the extra field, if any. - * @return {String} the unicode comment, null otherwise. - */ - findExtraFieldUnicodeComment: function() { - var ucommentField = this.extraFields[0x6375]; - if (ucommentField) { - var extraReader = readerFor(ucommentField.value); - - // wrong version - if (extraReader.readInt(1) !== 1) { - return null; - } - - // the crc of the comment changed, this field is out of date. - if (crc32fn(this.fileComment) !== extraReader.readInt(4)) { - return null; - } - - return utf8.utf8decode(extraReader.readData(ucommentField.length - 5)); - } - return null; - } -}; -module.exports = ZipEntry; - -},{"./compressedObject":2,"./compressions":3,"./crc32":4,"./reader/readerFor":22,"./support":30,"./utf8":31,"./utils":32}],35:[function(require,module,exports){ -'use strict'; - -var StreamHelper = require('./stream/StreamHelper'); -var DataWorker = require('./stream/DataWorker'); -var utf8 = require('./utf8'); -var CompressedObject = require('./compressedObject'); -var GenericWorker = require('./stream/GenericWorker'); - -/** - * A simple object representing a file in the zip file. - * @constructor - * @param {string} name the name of the file - * @param {String|ArrayBuffer|Uint8Array|Buffer} data the data - * @param {Object} options the options of the file - */ -var ZipObject = function(name, data, options) { - this.name = name; - this.dir = options.dir; - this.date = options.date; - this.comment = options.comment; - this.unixPermissions = options.unixPermissions; - this.dosPermissions = options.dosPermissions; - - this._data = data; - this._dataBinary = options.binary; - // keep only the compression - this.options = { - compression : options.compression, - compressionOptions : options.compressionOptions - }; -}; - -ZipObject.prototype = { - /** - * Create an internal stream for the content of this object. - * @param {String} type the type of each chunk. - * @return StreamHelper the stream. - */ - internalStream: function (type) { - var result = null, outputType = "string"; - try { - if (!type) { - throw new Error("No output type specified."); - } - outputType = type.toLowerCase(); - var askUnicodeString = outputType === "string" || outputType === "text"; - if (outputType === "binarystring" || outputType === "text") { - outputType = "string"; - } - result = this._decompressWorker(); - - var isUnicodeString = !this._dataBinary; - - if (isUnicodeString && !askUnicodeString) { - result = result.pipe(new utf8.Utf8EncodeWorker()); - } - if (!isUnicodeString && askUnicodeString) { - result = result.pipe(new utf8.Utf8DecodeWorker()); - } - } catch (e) { - result = new GenericWorker("error"); - result.error(e); - } - - return new StreamHelper(result, outputType, ""); - }, - - /** - * Prepare the content in the asked type. - * @param {String} type the type of the result. - * @param {Function} onUpdate a function to call on each internal update. - * @return Promise the promise of the result. - */ - async: function (type, onUpdate) { - return this.internalStream(type).accumulate(onUpdate); - }, - - /** - * Prepare the content as a nodejs stream. - * @param {String} type the type of each chunk. - * @param {Function} onUpdate a function to call on each internal update. - * @return Stream the stream. - */ - nodeStream: function (type, onUpdate) { - return this.internalStream(type || "nodebuffer").toNodejsStream(onUpdate); - }, - - /** - * Return a worker for the compressed content. - * @private - * @param {Object} compression the compression object to use. - * @param {Object} compressionOptions the options to use when compressing. - * @return Worker the worker. - */ - _compressWorker: function (compression, compressionOptions) { - if ( - this._data instanceof CompressedObject && - this._data.compression.magic === compression.magic - ) { - return this._data.getCompressedWorker(); - } else { - var result = this._decompressWorker(); - if(!this._dataBinary) { - result = result.pipe(new utf8.Utf8EncodeWorker()); - } - return CompressedObject.createWorkerFrom(result, compression, compressionOptions); - } - }, - /** - * Return a worker for the decompressed content. - * @private - * @return Worker the worker. - */ - _decompressWorker : function () { - if (this._data instanceof CompressedObject) { - return this._data.getContentWorker(); - } else if (this._data instanceof GenericWorker) { - return this._data; - } else { - return new DataWorker(this._data); - } - } -}; - -var removedMethods = ["asText", "asBinary", "asNodeBuffer", "asUint8Array", "asArrayBuffer"]; -var removedFn = function () { - throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide."); -}; - -for(var i = 0; i < removedMethods.length; i++) { - ZipObject.prototype[removedMethods[i]] = removedFn; -} -module.exports = ZipObject; - -},{"./compressedObject":2,"./stream/DataWorker":27,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31}],36:[function(require,module,exports){ -(function (global){ -'use strict'; -var Mutation = global.MutationObserver || global.WebKitMutationObserver; - -var scheduleDrain; - -{ - if (Mutation) { - var called = 0; - var observer = new Mutation(nextTick); - var element = global.document.createTextNode(''); - observer.observe(element, { - characterData: true - }); - scheduleDrain = function () { - element.data = (called = ++called % 2); - }; - } else if (!global.setImmediate && typeof global.MessageChannel !== 'undefined') { - var channel = new global.MessageChannel(); - channel.port1.onmessage = nextTick; - scheduleDrain = function () { - channel.port2.postMessage(0); - }; - } else if ('document' in global && 'onreadystatechange' in global.document.createElement('script')) { - scheduleDrain = function () { - - // Create a - - - - - - - - - -
    - -
    -
    -
    -

    System Properties

    -
    -
    -
    - - - - - - - - -
    System Properties Summary 
    PropertyReferenced In
    -
    -
    -
    - - - diff --git a/docs/site/testapidocs/tag-search-index.js b/docs/site/testapidocs/tag-search-index.js deleted file mode 100644 index 0367dae6..00000000 --- a/docs/site/testapidocs/tag-search-index.js +++ /dev/null @@ -1 +0,0 @@ -tagSearchIndex = [];updateSearchResults(); \ No newline at end of file diff --git a/docs/site/testapidocs/type-search-index.js b/docs/site/testapidocs/type-search-index.js deleted file mode 100644 index c9e22661..00000000 --- a/docs/site/testapidocs/type-search-index.js +++ /dev/null @@ -1 +0,0 @@ -typeSearchIndex = [{"l":"All Classes and Interfaces","u":"allclasses-index.html"},{"p":"javax.measure.test.quantity","l":"AreaQuantity"},{"p":"javax.measure.test.quantity","l":"AreaQuantityTest"},{"p":"javax.measure.test.unit","l":"AreaUnit"},{"p":"javax.measure.test.unit","l":"BaseUnit"},{"p":"javax.measure.test","l":"BinaryPrefixTest"},{"p":"javax.measure.test","l":"CalcTripLength"},{"p":"javax.measure.test","l":"CircleInfo"},{"p":"javax.measure.test.quantity","l":"CircleInfo"},{"p":"javax.measure.test","l":"Conversions"},{"p":"javax.measure.test","l":"ConverterTest"},{"p":"javax.measure.test","l":"DimensionTest"},{"p":"javax.measure.test.quantity","l":"DistanceQuantity"},{"p":"javax.measure.test.quantity","l":"DistanceQuantityTest"},{"p":"javax.measure.test.unit","l":"DistanceUnit"},{"p":"javax.measure.test","l":"ExceptionsTest"},{"p":"javax.measure.spi","l":"FormatServiceTest"},{"p":"javax.measure.test.unit","l":"MassUnit"},{"p":"javax.measure.test.format","l":"MeasurementParseTest"},{"p":"javax.measure.test","l":"MetricPrefixTest"},{"p":"javax.measure.test.function","l":"MultiplyConverter"},{"p":"javax.measure.test","l":"TestConverter.Pair"},{"p":"javax.measure.test.format","l":"QuantityFormatTest"},{"p":"javax.measure.spi","l":"ServiceProviderTest"},{"p":"javax.measure.test.format","l":"SimpleTestUnitFormat"},{"p":"javax.measure.test.unit","l":"SpeedUnit"},{"p":"javax.measure.test.quantity","l":"TemperatureQuantity"},{"p":"javax.measure.test.quantity","l":"TemperatureQuantityTest"},{"p":"javax.measure.test.unit","l":"TemperatureUnit"},{"p":"javax.measure.test","l":"TestConverter"},{"p":"javax.measure.test.quantity","l":"TestQuantities"},{"p":"javax.measure.test.quantity","l":"TestQuantity"},{"p":"javax.measure.test","l":"TestUnit"},{"p":"javax.measure.test.quantity","l":"TimeQuantity"},{"p":"javax.measure.test.unit","l":"TimeUnit"},{"p":"javax.measure.test","l":"TripLeg"},{"p":"javax.measure.test.format","l":"UnitFormatTest"},{"p":"javax.measure.test","l":"UnitTest"},{"p":"javax.measure.test.quantity","l":"VolumeQuantity"},{"p":"javax.measure.test.unit","l":"VolumeUnit"}];updateSearchResults(); \ No newline at end of file diff --git a/docs/site/testapidocs/type-search-index.zip b/docs/site/testapidocs/type-search-index.zip deleted file mode 100644 index 6b656642..00000000 Binary files a/docs/site/testapidocs/type-search-index.zip and /dev/null differ diff --git a/docs/site/images/duke.png b/img/duke_measure_250x250.png similarity index 100% rename from docs/site/images/duke.png rename to img/duke_measure_250x250.png diff --git a/docs/img/favicon.ico b/img/favicon.ico similarity index 100% rename from docs/img/favicon.ico rename to img/favicon.ico diff --git a/docs/img/glyphicons-halflings-white.png b/img/glyphicons-halflings-white.png similarity index 100% rename from docs/img/glyphicons-halflings-white.png rename to img/glyphicons-halflings-white.png diff --git a/docs/img/glyphicons-halflings.png b/img/glyphicons-halflings.png similarity index 100% rename from docs/img/glyphicons-halflings.png rename to img/glyphicons-halflings.png diff --git a/docs/img/sharebuttons/facebook.png b/img/sharebuttons/facebook.png similarity index 100% rename from docs/img/sharebuttons/facebook.png rename to img/sharebuttons/facebook.png diff --git a/docs/img/sharebuttons/google_plus.png b/img/sharebuttons/google_plus.png similarity index 100% rename from docs/img/sharebuttons/google_plus.png rename to img/sharebuttons/google_plus.png diff --git a/docs/img/sharebuttons/twitter.png b/img/sharebuttons/twitter.png similarity index 100% rename from docs/img/sharebuttons/twitter.png rename to img/sharebuttons/twitter.png diff --git a/img/tf1_media_ingest88463_image_0_600x800.jpg b/img/tf1_media_ingest88463_image_0_600x800.jpg new file mode 100644 index 00000000..e11f5255 Binary files /dev/null and b/img/tf1_media_ingest88463_image_0_600x800.jpg differ diff --git a/img/uomo.png b/img/uomo.png new file mode 100644 index 00000000..3b957729 Binary files /dev/null and b/img/uomo.png differ diff --git a/index.html b/index.html new file mode 100644 index 00000000..2d4d2141 --- /dev/null +++ b/index.html @@ -0,0 +1,169 @@ + + + + + Units of Measurement - API + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    API

    +

    The Unit of Measurement API provides a set of Java language programming interfaces for handling units and quantities.
    The interfaces provide a layer which separates client code, that would call the API,
    from library code, which implements the API.

    +

    alt text

    +

    The specification contains Interfaces and abstract classes with methods for unit operations:
    * Checking of unit compatibility
    * Expression of a quantity in various units
    * Arithmetic operations on units

    + The JSR is lead by Jean-Marie Dautelle (@dautelle), + Werner Keil (@keilw) and Otavio Santana (@otaviojava). +
    You can access the API by adding the following Maven + dependencies:

    +
    <dependency>
    +  <groupId>javax.measure</groupId>
    +  <artifactId>unit-api</artifactId>
    +  <version>1.0</version>
    +</dependency>
    + + For JSR 385 use + <version>2.0-SNAPSHOT</version> + or + <version>2.0-EDR</version> + . + +

    Further versions can be found here.

    +

    +Release artifacts should be accessible from the following repositories: +

      +
    • Maven Central
    • +
    • JCenter by Bintray
    • +
    +

    + +

    Though it is possible to only reference the API from your applicaiton, you also have to +add an implementation like the Indriya reference implementation.

    + + +
    +
    +
    + +
    + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/javascripts/scale.fix.js b/javascripts/scale.fix.js similarity index 100% rename from docs/javascripts/scale.fix.js rename to javascripts/scale.fix.js diff --git a/docs/js/html5shiv.js b/js/html5shiv.js similarity index 100% rename from docs/js/html5shiv.js rename to js/html5shiv.js diff --git a/docs/pages/about.html b/pages/about.html similarity index 100% rename from docs/pages/about.html rename to pages/about.html diff --git a/docs/pages/calendar.html b/pages/calendar.html similarity index 100% rename from docs/pages/calendar.html rename to pages/calendar.html diff --git a/docs/pages/contact.html b/pages/contact.html similarity index 100% rename from docs/pages/contact.html rename to pages/contact.html diff --git a/params.json b/params.json new file mode 100644 index 00000000..eeae875b --- /dev/null +++ b/params.json @@ -0,0 +1 @@ +{"name":"Unit-api","tagline":"JSR 385 - Units of Measurement API","body":"### Welcome to GitHub Pages.\r\nThis automatic page generator is the easiest way to create beautiful pages for all of your projects. Author your page content here [using GitHub Flavored Markdown](https://guides.github.com/features/mastering-markdown/), select a template crafted by a designer, and publish. After your page is generated, you can check out the new `gh-pages` branch locally. If you’re using GitHub Desktop, simply sync your repository and you’ll see the new branch.\r\n\r\n### Designer Templates\r\nWe’ve crafted some handsome templates for you to use. Go ahead and click 'Continue to layouts' to browse through them. You can easily go back to edit your page before publishing. After publishing your page, you can revisit the page generator and switch to another theme. Your Page content will be preserved.\r\n\r\n### Creating pages manually\r\nIf you prefer to not use the automatic generator, push a branch named `gh-pages` to your repository to create a page manually. In addition to supporting regular HTML content, GitHub Pages support Jekyll, a simple, blog aware static site generator. Jekyll makes it easy to create site-wide headers and footers without having to copy them across every page. It also offers intelligent blog support and other advanced templating features.\r\n\r\n### Authors and Contributors\r\nYou can @mention a GitHub username to generate a link to their profile. The resulting `` element will link to the contributor’s GitHub Profile. For example: In 2007, Chris Wanstrath (@defunkt), PJ Hyett (@pjhyett), and Tom Preston-Werner (@mojombo) founded GitHub.\r\n\r\n### Support or Contact\r\nHaving trouble with Pages? Check out our [documentation](https://help.github.com/pages) or [contact support](https://github.com/contact) and we’ll help you sort it out.\r\n","google":"","note":"Don't delete this file! It's used internally to help with page regeneration."} \ No newline at end of file diff --git a/pom.xml b/pom.xml index 53e1e978..c54228aa 100644 --- a/pom.xml +++ b/pom.xml @@ -1,1055 +1,88 @@ - - 4.0.0 - javax.measure - unit-api - Units of Measurement API - bundle - 2.2.1-SNAPSHOT - https://unitsofmeasurement.github.io/unit-api/ - Units of Measurement Standard - This JSR specifies Java - packages for modeling and working with measurement values, quantities - and their corresponding units. - - Jean-Marie Dautelle, Werner Keil, Otavio Santana - http://unitsofmeasurement.github.io - - 2014 - - - BSD 3-Clause - LICENSE - manual - - - - tech.uom - uom-parent - 2.2.5-SNAPSHOT - - - - - GitHub - https://github.com/unitsofmeasurement/unit-api/issues - - - CircleCI - https://circleci.com/gh/unitsofmeasurement/unit-api - - - - - Units-Dev - https://groups.google.com/group/units-dev/subscribe - units-dev@googlegroups.com - - - Units-Users - https://groups.google.com/group/units-users/subscribe - units-users@googlegroups.com - - - - scm:git:git@github.com:unitsofmeasurement/unit-api.git - - scm:git:git@github.com:unitsofmeasurement/unit-api.git - https://github.com/unitsofmeasurement/unit-api - - - - - . - UTF-8 - UTF-8 - ${sourceEncoding} - 8 - 9 - ${jdkVersion} - ${jdkVersion} - ${jdkVersion} - -Xdoclint:none - 2025 - - - 0.12 - github - https://central.sonatype.com/repository/maven-snapshots/ - - - - src/main/java/javax/measure/BinaryPrefix.java,src/main/java/javax/measure/MetricPrefix.java - - - - - - dautelle - Jean-Marie Dautelle - jean-marie@dautelle.com - Airbus - http://www.airbus.com - +1 - - Architect - Java Developer - Spec Lead - - - - keilw - Werner Keil - werner.keil@gmx.net - CATMedia - http://www.catmedia.us - +1 - - Architect - Java Developer - Spec Lead - - - - otaviojava - Otávio Gonçalves de Santana - otaviopolianasantana@gmail.com - Individual / SouJava - 0 - - Expert - Java Developer - Spec Lead - - - - desruisseaux - Martin Desruisseaux - martin.desruisseaux@geomatys.com - Geomatys - http://www.geomatys.com - +1 - - Expert - Java Developer - Architect - - - - thodorisbais - Thodoris Bais - thodoris.bais@gmail.com - Individual / Utrecht JUG - +1 - - Expert - Java Developer - - - - Daniel-Dos - Daniel Dias - daniel.dias.analistati@gmail.com - Individual / SouJava - -5 - - Expert - Java Developer - - - - jhg023 - Jacob Glickman - Individual - -4 - - Expert - Java Developer - - - - magesh678 - Magesh Kasthuri - Individual - +4 - - Expert - Java Developer - - - - mohalmo - Mohammed Al-Moayed - Individual - +2 - - Expert - Java Developer - - - - - - Andi Huber - Individual - +1 - - Contributor - - - - Filip Van Laenen - fvl@computas.com - Computas - +1 - - Contributor - - - - Mads Opheim - Computas - +1 - - Contributor - - - - Matthijs Thoolen - Utrecht Java User Group - +1 - - Contributor - - - - Anakar Parida - Individual - +5.5 - - Contributor - - - - Rustam Mehmandarov - Individual - +3 - - Contributor - - - - Nathan Scott - nathans@redhat.com - Red Hat - +10 - - Contributor Emeritus - - - - - Chris Senior - christopher.senior@gmail.com - Snap-on Inc. - - Expert Emeritus - - - - - Leonardo de Moura Rocha Lima - llima@v2com.mobi - V2COM - http://www.v2com.mobi/ - -5 - - Expert Emeritus - Java Developer - - - - - Almas Shaikh - eralmas7@yahoo.com - Individual / JP Morgan - +5.5 - - Test Engineer - - - - - Rajmahendra Hegde - rajmahendra@gmail.com - JUG Chennai - +5.5 - - Expert Emeritus - - - - - Karen Legrand - karen.legrand@iem.com - Innovation Emergency Management (IEM) - http://www.iem.com - -5 - - Expert Emeritus - - - - - Mohamed Mahmoud Taman - mohamed.taman@gmail.com - Individual / Morocco JUG - +2 - - Expert Emeritus - - - - Daniel Leuck - dan@ikayzo.com - Ikayzo - -9 - - Supporter - - - - Eric Russell - eric-r@northwestern.edu - -5 - - Supporter - - - - John Paul Morrison - J.P. Morrison Enterprises, Ltd. - -5 - - Supporter - - - - Michael Gruebsch - michael@mkm-rabis.de - - Supporter - - +1 - - - - - - - - org.apache.maven.plugins - maven-compiler-plugin - ${maven.compiler.version} - - - org.apache.maven.plugins - maven-antrun-plugin - 3.1.0 - - - - - net.revelc.code - formatter-maven-plugin - 0.5.2 - - - - org.sonarsource.scanner.maven - sonar-maven-plugin - 5.5.0.6356 - - - - - - - - - org.apache.maven.plugins - maven-compiler-plugin - - ${maven.compile.targetLevel} - - - - org.apache.maven.plugins - maven-antrun-plugin - - - prepare-package - - run - - - - - - - - - - - - - - - - org.apache.maven.plugins - maven-surefire-plugin - - 1.5C - - - - - - org.jacoco - jacoco-maven-plugin - - - META-INF/versions/** - - - - - pre-unit-test - - prepare-agent - - - - post-unit-test - test - - report - check - - - - - BUNDLE - - - INSTRUCTION - COVEREDRATIO - 0.5 - - - COMPLEXITY - COVEREDRATIO - 0.5 - - - - - - - - - - - org.eluder.coveralls - coveralls-maven-plugin - 4.3.0 - - - javax.xml.bind - jaxb-api - 2.2.3 - - - - ${env.COVERALLS_REPO_TOKEN} - - - - - - org.apache.maven.plugins - maven-source-plugin - - - attach-sources - package - - jar-no-fork - - - - - - - org.apache.maven.plugins - maven-javadoc-plugin - - - attach-javadocs - - jar - - - - - - 8 - - - - - - org.apache.maven.plugins - maven-jar-plugin - - - - true - - - ${project.name} - ${project.version} - ${project.organization.name} - java.measure - true - - false - - - - - - - test-jar - - - - - - - - org.apache.felix - maven-bundle-plugin - true - - - - !jakarta.annotation,!jakarta.inject,!javax.annotation,!javax.inject,* - - - - - - - org.apache.maven.plugins - maven-resources-plugin - - ${project.build.sourceEncoding} - - - - - - com.mycila - license-maven-plugin - - - -
    src/main/config/header.txt
    - - ${project.organization.name} - ${thisYear} - - - .editorconfig - .gitattributes - .github/** - .circleci/** - **/LICENSE - **/README - **/pom.xml - **/settings.xml - docs/** - src/test/resources/** - src/main/resources/** - src/main/config/** - src/main/emf/** - src/site/** - src/etc/** - *.css - *.jpg - *.png - *.yml - - - src/main/config/headers.xml - -
    -
    - - JAVA_STYLE - -
    -
    - - - - net.revelc.code - formatter-maven-plugin - - - ${project.basedir}/src/main/config/eclipse-formatter-config.xml - - - - - - format - - - - - - - - org.apache.maven.plugins - maven-site-plugin - - - - org.sonatype.central - central-publishing-maven-plugin - true - - central - ${sonatype.central.snapshotsUrl} - true - published - - -
    -
    - - - - - org.apache.maven.plugins - maven-project-info-reports-plugin - 3.1.0 - - - - index - summary - licenses - scm - ci-management - team - mailing-lists - issue-management - - - - - - - - org.apache.maven.plugins - maven-javadoc-plugin - ${maven.javadoc.version} - - ${maven.compile.sourceLevel} - ${project.build.sourceEncoding} - ${project.reporting.outputEncoding} - ${project.reporting.outputEncoding} - en - false - all - true - true - - http://docs.oracle.com/javase/11/docs/api/ - - - - - - - org.apache.maven.plugins - maven-pmd-plugin - 3.13.0 - - ${project.build.sourceEncoding} - - - - - - org.apache.maven.plugins - maven-surefire-report-plugin - ${maven.surefire-report.version} - - - - - com.github.spotbugs - spotbugs-maven-plugin - - - - - - - - - JSR-385 - JSR-385 Maven reports - file:///var/www/www.unitsofmeasurement.github.io/unit-api - - - - - - - org.junit.jupiter - junit-jupiter-api - ${junit.jupiter.version} - test - - - org.junit.jupiter - junit-jupiter-engine - ${junit.jupiter.version} - test - - - jakarta.inject - jakarta.inject-api - test - - - - - - - - - true - - central-snapshot - Central Snapshots - https://central.sonatype.com/repository/maven-snapshots/ - - - - - - - base-jar - - - false - - - - - org.apache.maven.plugins - maven-antrun-plugin - - - prepare-package - - run - - - - - - - - - - - - - - - maven-jar-plugin - - - - true - - - ${project.name} - ${project.version} - - ${project.organization.name} - java.measure.base - true - - false - - - - - base-jar - - jar - - - base - - javax/measure/format/** - javax/measure/quantity/** - javax/measure/spi/** - - - - - - - - - - - format-jar - - - - - maven-jar-plugin - ${maven.jar.version} - - - - true - - - ${project.name} - ${project.version} - - ${project.organization.name} - java.measure.format - false - - false - - - - - format-jar - - jar - - - format - - javax/measure/format/** - - - - - - - - - - - quantity-jar - - - - - maven-jar-plugin - ${maven.jar.version} - - - - true - - - ${project.name} - ${project.version} - - ${project.organization.name} - java.measure.quantity - false - - false - - - - - quanity-jar - - jar - - - quantity - - javax/measure/quantity/** - - - - - - - - - - - spi-jar - - - - - maven-jar-plugin - ${maven.jar.version} - - - - true - - - ${project.name} - ${project.version} - - ${project.organization.name} - java.measure.spi - false - - false - - - - - spi-jar - - jar - - - spi - - javax/measure/spi/** - - - - - - - - - - - - documentation - - - - org.asciidoctor - asciidoctor-maven-plugin - - - output-html - generate-resources - - process-asciidoc - - - target/docs - highlightjs - html - true - src/main/asciidoc/images - - - - - - - - - - localCopySite - - - - - maven-resources-plugin - - - copy-resources - site - - copy-resources - - - ${basedir}/docs/site - - - target/site - false - - - - - - - - - - - - sonar - - true - - - https://sonarcloud.io - ${env.SONARCLOUD_PROJECT_KEY} - ${env.SONARCLOUD_LOGIN} - ${env.SONARCLOUD_ORG} - UTF-8 - UTF-8 - ${sourceEncoding} - 8 - 9 - ${jdkVersion} - ${jdkVersion} - ${jdkVersion} - - - + + 4.0.0 + javax.measure + unit-api-site + 1.0 + Units of Measurement API + pom + + site + + + br.com.ingenieux + jbake-maven-plugin + 0.0.6 + + + default-generate + generate-resources + + generate + + + + + + + + org.codehaus.mojo + exec-maven-plugin + 1.2.1 + + mvn + + clean:clean + jbake:generate + site:site + clean:clean + + + + + + + + + org.eclipse.m2e + lifecycle-mapping + 1.0.0 + + + + + + + br.com.ingenieux + + + jbake-maven-plugin + + + [0.0.6,) + + + + generate + + + + + + + + + + + + + + + + + github + Site update + + https://github.com/unitsofmeasurement/unit-api diff --git a/settings.xml b/settings.xml deleted file mode 100644 index 4a3c4aec..00000000 --- a/settings.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - central - ${env.CI_DEPLOY_USERNAME} - ${env.CI_DEPLOY_PASSWORD} - - - github - ${env.GH_DEPLOY_PASSWORD} - - - \ No newline at end of file diff --git a/site/apidocs/allclasses-frame.html b/site/apidocs/allclasses-frame.html new file mode 100644 index 00000000..6997a493 --- /dev/null +++ b/site/apidocs/allclasses-frame.html @@ -0,0 +1,82 @@ + + + + + +All Classes (Units of Measurement API 2.0 API) + + + + + + + + + + + + +

    All Classes

    +
    + + diff --git a/site/apidocs/allclasses-index.html b/site/apidocs/allclasses-index.html new file mode 100644 index 00000000..05229570 --- /dev/null +++ b/site/apidocs/allclasses-index.html @@ -0,0 +1,471 @@ + + + + + +All Classes (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    All Classes

    +
    +
    +
      +
    • +
      +
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ClassDescription
      Acceleration +
      Rate of change of velocity with respect to time.
      +
      AmountOfSubstance +
      Number of elementary entities (molecules, for example) of a substance.
      +
      Angle +
      Figure formed by two lines diverging from a common point.
      +
      Area +
      Extent of a planar region or of the surface of a solid measured in square units.
      +
      BinaryPrefix +
      Provides support for common binary prefixes to be used by units.
      +
      CatalyticActivity +
      Catalytic activity.
      +
      Dimension +
      Represents the dimension of a unit.
      +
      Dimensionless +
      Dimensionless quantity.
      +
      ElectricCapacitance +
      Electric capacitance.
      +
      ElectricCharge +
      Electric charge.
      +
      ElectricConductance +
      Electric conductance.
      +
      ElectricCurrent +
      Amount of electric charge flowing past a specified circuit point per unit time.
      +
      ElectricInductance +
      Electric inductance.
      +
      ElectricPotential +
      Electric potential or electromotive force.
      +
      ElectricResistance +
      Electric resistance.
      +
      Energy +
      Capacity of a physical system to do work.
      +
      Force +
      Quantity that tends to produce an acceleration of a body in the direction of its application.
      +
      FormatService +
      This interface represent the service to obtain instances of UnitFormat and QuantityFormat.
      +
      FormatService.FormatType 
      Frequency +
      Number of times a specified phenomenon occurs within a specified interval.
      +
      Illuminance +
      Illuminance.
      +
      IncommensurableException +
      Signals that a problem of some sort has occurred due to incommensurable of some quantities/units.
      +
      Length +
      Extent of something along its greatest dimension or the extent of space between two objects or places.
      +
      LuminousFlux +
      Luminous flux.
      +
      LuminousIntensity +
      Luminous flux density per solid angle as measured in a given direction relative to the emitting source.
      +
      MagneticFlux +
      Magnetic flux.
      +
      MagneticFluxDensity +
      Magnetic flux density.
      +
      Mass +
      Measure of the quantity of matter that a body or an object contains.
      +
      MeasurementException +
      Exception used to indicate a problem while dealing with units of measurement.
      +
      MeasurementParseException +
      Signals that an error has been reached unexpectedly while parsing.
      +
      MetricPrefix +
      Provides support for the 20 prefixes used in the metric system (decimal multiples and submultiples of units).
      +
      ParserExceptionDeprecated. +
      Use MeasurementParseException, this exception will be removed in a future version, it is here for backward compatibility only.
      +
      Power +
      Rate at which work is done.
      +
      Prefix +
      A unit prefix is a specifier or mnemonic that is prepended to units of measurement to indicate multiples or fractions of the units.
      +
      Pressure +
      Force applied uniformly over a surface.
      +
      Quantity<Q extends Quantity<Q>> +
      Represents a quantitative property of a phenomenon, body, or substance, that + can be quantified by measurement.
      +
      Quantity.Scale +
      The scale of a Quantity, either ABSOLUTE or RELATIVE.
      +
      QuantityFactory<Q extends Quantity<Q>> +
      Represents a factory that accepts Number and Unit arguments to create Quantity results.
      +
      QuantityFormat +
      Formats instances of Quantity.
      +
      RadiationDoseAbsorbed +
      Amount of energy deposited per unit of mass.
      +
      RadiationDoseEffective +
      Effective (or "equivalent") dose of radiation received by a human or some other living organism.
      +
      Radioactivity +
      Radioactive activity.
      +
      ServiceProvider +
      Service Provider for Units of Measurement services.
      +
      SolidAngle +
      Angle formed by three or more planes intersecting at a common point.
      +
      Speed +
      Distance traveled divided by the time of travel.
      +
      SystemOfUnits +
      A system of units grouped together for historical or cultural reasons.
      + Common system of units are "SI" (System International), "Imperial" (British), "US" (US Customary).
      +
      SystemOfUnitsService +
      This interface represents the service to obtain a system + of units.
      +
      Temperature +
      Degree of hotness or coldness of a body or an environment.
      +
      Time +
      Period of existence or persistence.
      +
      UnconvertibleException +
      Signals that a problem of some sort has occurred due to the impossibility of constructing a converter between two units.
      +
      Unit<Q extends Quantity<Q>> +
      Represents a determinate quantity (as of length, time, heat, or value) adopted as a standard of measurement.
      +
      UnitConverter +
      A converter of numeric values between different units.
      +
      UnitFormat +
      Formats instances of Unit to a String or Appendable and parses a CharSequence to a Unit.
      +
      UnitFormatService +
      This interface represent the service to obtain UnitFormat instances.
      +
      + Note: This parent interface remains separate for backward-compatibility, it will be merged into FormatService in a future version.
      +
      Volume +
      Amount of space occupied by a three-dimensional object or region of space.
      +
      +
      +
      +
    • +
    +
    +
    + + + diff --git a/site/apidocs/allclasses-noframe.html b/site/apidocs/allclasses-noframe.html new file mode 100644 index 00000000..815eb2bc --- /dev/null +++ b/site/apidocs/allclasses-noframe.html @@ -0,0 +1,82 @@ + + + + + +All Classes (Units of Measurement API 2.0 API) + + + + + + + + + + + + +

    All Classes

    + + + diff --git a/site/apidocs/allpackages-index.html b/site/apidocs/allpackages-index.html new file mode 100644 index 00000000..8d726413 --- /dev/null +++ b/site/apidocs/allpackages-index.html @@ -0,0 +1,156 @@ + + + + + +All Packages (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    All Packages

    +
    +
    +
      +
    • +
      + + + + + + + + + + + + + + + + + + + + + + + + +
      Package Summary 
      PackageDescription
      javax.measure +
      Specifies Java packages for the programmatic, type safe handling + of quantities and their expression as values of units.
      +
      javax.measure.format +
      [OPTIONAL] Provides Formatting and Parsing functionality for units, quantities, dimensions or their textual representation.
      +
      javax.measure.quantity +
      [OPTIONAL] Provides quantitative properties or attributes of thing such as + mass, time, distance, heat, and angular separation.
      +
      javax.measure.spi +
      [OPTIONAL] The Units of Measurement SPI.
      +
      +
      +
    • +
    +
    +
    + + + diff --git a/site/apidocs/constant-values.html b/site/apidocs/constant-values.html new file mode 100644 index 00000000..cfb534ad --- /dev/null +++ b/site/apidocs/constant-values.html @@ -0,0 +1,153 @@ + + + + + +Constant Field Values (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + +
    + + + + + + + +
    + + +
    + + +
    +

    Constant Field Values

    +

    Contents

    +
    + +
    + + + + + + + +
    + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/deprecated-list.html b/site/apidocs/deprecated-list.html new file mode 100644 index 00000000..c983a64d --- /dev/null +++ b/site/apidocs/deprecated-list.html @@ -0,0 +1,208 @@ + + + + + +Deprecated List (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + +
    + + + + + + + +
    + + +
    + + +
    +

    Deprecated API

    +

    Contents

    + +
    +
    + + + + + + + +
    + +
    + + + + + + + +
    + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/docs/site/apidocs/element-list b/site/apidocs/element-list similarity index 100% rename from docs/site/apidocs/element-list rename to site/apidocs/element-list diff --git a/site/apidocs/help-doc.html b/site/apidocs/help-doc.html new file mode 100644 index 00000000..3e04d479 --- /dev/null +++ b/site/apidocs/help-doc.html @@ -0,0 +1,258 @@ + + + + + +API Help (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + +
    + + + + + + + +
    + + +
    + + +
    +

    How This API Document Is Organized

    +
    This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.
    +
    +
    +
      +
    • +

      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. This page can contain six categories:

      +
        +
      • Interfaces (italic)
      • +
      • Classes
      • +
      • Enums
      • +
      • Exceptions
      • +
      • Errors
      • +
      • Annotation Types
      • +
      +
    • +
    • +

      Class/Interface

      +

      Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:

      +
        +
      • Class inheritance diagram
      • +
      • Direct Subclasses
      • +
      • All Known Subinterfaces
      • +
      • All Known Implementing Classes
      • +
      • Class/interface declaration
      • +
      • Class/interface description
      • +
      +
        +
      • Nested Class Summary
      • +
      • Field Summary
      • +
      • Constructor Summary
      • +
      • Method Summary
      • +
      +
        +
      • Field Detail
      • +
      • Constructor Detail
      • +
      • Method Detail
      • +
      +

      Each summary entry contains the first sentence from the detailed description for that item. 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.

      +
    • +
    • +

      Annotation Type

      +

      Each annotation type has its own separate page with the following sections:

      +
        +
      • Annotation Type declaration
      • +
      • Annotation Type description
      • +
      • Required Element Summary
      • +
      • Optional Element Summary
      • +
      • Element Detail
      • +
      +
    • +
    • +

      Enum

      +

      Each enum has its own separate page with the following sections:

      +
        +
      • Enum declaration
      • +
      • Enum description
      • +
      • Enum Constant Summary
      • +
      • Enum Constant Detail
      • +
      +
    • +
    • +

      Use

      +

      Each documented package, class and interface has its own Use page. This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its Use page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A. You can access this page by first going to the package, class or interface, then clicking on the "Use" link in the navigation bar.

      +
    • +
    • +

      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. The classes are organized by inheritance structure starting with java.lang.Object. The 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 "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 improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.

      +
    • +
    • +

      Index

      +

      The Index contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.

      +
    • +
    • +

      Prev/Next

      +

      These links take you to the next or previous class, interface, package, or related page.

      +
    • +
    • +

      Frames/No Frames

      +

      These links show and hide the HTML frames. All pages are available with or without frames.

      +
    • +
    • +

      All Classes

      +

      The All Classes link shows all classes and interfaces except non-static nested types.

      +
    • +
    • +

      Serialized Form

      +

      Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using 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.

      +
    • +
    • +

      Constant Field Values

      +

      The Constant Field Values page lists the static final fields and their values.

      +
    • +
    +This help file applies to API documentation generated using the standard doclet.
    + +
    + + + + + + + +
    + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/index-all.html b/site/apidocs/index-all.html new file mode 100644 index 00000000..51d36a27 --- /dev/null +++ b/site/apidocs/index-all.html @@ -0,0 +1,1307 @@ + + + + + +Index (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + +
    + + + + + + + +
    + + +
    + + +
    A B C D E F G H I J K L M N O P Q R S T U V Y Z  + + +

    A

    +
    +
    ABSOLUTE - Quantity.Scale
    +
     
    +
    Acceleration - Interface in javax.measure.quantity
    +
    +
    Rate of change of velocity with respect to time.
    +
    +
    add(Quantity<Q>) - Method in interface Quantity
    +
    +
    Returns the sum of this Quantity with the one specified.
    +
    +
    alternate(String) - Method in interface Unit
    +
    +
    Returns a system unit equivalent to this unscaled standard unit but used in expressions to distinguish between quantities of a different nature + but of the same dimensions.
    +
    +
    AmountOfSubstance - Interface in javax.measure.quantity
    +
    +
    Number of elementary entities (molecules, for example) of a substance.
    +
    +
    Angle - Interface in javax.measure.quantity
    +
    +
    Figure formed by two lines diverging from a common point.
    +
    +
    Area - Interface in javax.measure.quantity
    +
    +
    Extent of a planar region or of the surface of a solid measured in square units.
    +
    +
    asType(Class<T>) - Method in interface Quantity
    +
    +
    Casts this quantity to a parameterized unit of specified nature or throw a + ClassCastException if the dimension of the specified quantity + and this measure unit's dimension do not match.
    +
    +
    asType(Class<T>) - Method in interface Unit
    +
    +
    Casts this unit to a parameterized unit of specified nature or throw a ClassCastException if the dimension of the specified quantity and + this unit's dimension do not match.
    +
    +
    ATTO - MetricPrefix
    +
    +
    Prefix for 10-18.
    +
    +
    ATTO(Unit<Q>) - Static method in enum MetricPrefix
    +
    +
    Returns the specified unit multiplied by the factor 10-18
    +
    +
    available() - Static method in class ServiceProvider
    +
    +
    Returns the list of all service providers available for the current thread's context class loader.
    +
    +
    + + + +

    B

    +
    +
    BinaryPrefix - Enum in javax.measure
    +
    +
    Provides support for common binary prefixes to be used by units.
    +
    +
    + + + +

    C

    +
    +
    CatalyticActivity - Interface in javax.measure.quantity
    +
    +
    Catalytic activity.
    +
    +
    CENTI - MetricPrefix
    +
    +
    Prefix for 10-2.
    +
    +
    CENTI(Unit<Q>) - Static method in enum MetricPrefix
    +
    +
    Returns the specified unit multiplied by the factor 10-2
    +
    +
    concatenate(UnitConverter) - Method in interface UnitConverter
    +
    +
    Concatenates this converter with another converter.
    +
    +
    convert(double) - Method in interface UnitConverter
    +
    +
    Converts a double value.
    +
    +
    convert(Number) - Method in interface UnitConverter
    +
    +
    Converts a Number value.
    +
    +
    create(Number, Unit<Q>) - Method in interface QuantityFactory
    +
    +
    Returns the quantity for the specified number stated in the specified unit.
    +
    +
    create(Number, Unit<Q>, Quantity.Scale) - Method in interface QuantityFactory
    +
    +
    Returns the quantity for the specified number stated in the specified unit and scale.
    +
    +
    current() - Static method in class ServiceProvider
    +
    +
    Returns the current ServiceProvider.
    +
    +
    + + + +

    D

    +
    +
    DECI - MetricPrefix
    +
    +
    Prefix for 10-1.
    +
    +
    DECI(Unit<Q>) - Static method in enum MetricPrefix
    +
    +
    Returns the specified unit multiplied by the factor 10-1
    +
    +
    DEKA - MetricPrefix
    +
    +
    Prefix for 101.
    +
    +
    DEKA(Unit<Q>) - Static method in enum MetricPrefix
    +
    +
    Returns the specified unit multiplied by the factor 101
    +
    +
    Dimension - Interface in javax.measure
    +
    +
    Represents the dimension of a unit.
    +
    +
    Dimensionless - Interface in javax.measure.quantity
    +
    +
    Dimensionless quantity.
    +
    +
    divide(double) - Method in interface Unit
    +
    +
    Returns the result of dividing this unit by an approximate divisor.
    +
    +
    divide(Number) - Method in interface Quantity
    +
    +
    Returns the quotient of this Quantity divided by the Number + specified.
    +
    +
    divide(Number) - Method in interface Unit
    +
    +
    Returns the result of dividing this unit by a divisor.
    +
    +
    divide(Dimension) - Method in interface Dimension
    +
    +
    Returns the quotient of this dimension with the one specified.
    +
    +
    divide(Quantity<?>) - Method in interface Quantity
    +
    +
    Returns the quotient of this Quantity divided by the Quantity + specified.
    +
    +
    divide(Unit<?>) - Method in interface Unit
    +
    +
    Returns the quotient of this unit with the one specified.
    +
    +
    + + + +

    E

    +
    +
    ElectricCapacitance - Interface in javax.measure.quantity
    +
    +
    Electric capacitance.
    +
    +
    ElectricCharge - Interface in javax.measure.quantity
    +
    +
    Electric charge.
    +
    +
    ElectricConductance - Interface in javax.measure.quantity
    +
    +
    Electric conductance.
    +
    +
    ElectricCurrent - Interface in javax.measure.quantity
    +
    +
    Amount of electric charge flowing past a specified circuit point per unit time.
    +
    +
    ElectricInductance - Interface in javax.measure.quantity
    +
    +
    Electric inductance.
    +
    +
    ElectricPotential - Interface in javax.measure.quantity
    +
    +
    Electric potential or electromotive force.
    +
    +
    ElectricResistance - Interface in javax.measure.quantity
    +
    +
    Electric resistance.
    +
    +
    Energy - Interface in javax.measure.quantity
    +
    +
    Capacity of a physical system to do work.
    +
    +
    EXA - MetricPrefix
    +
    +
    Prefix for 1018.
    +
    +
    EXA(Unit<Q>) - Static method in enum MetricPrefix
    +
    +
    Returns the specified unit multiplied by the factor 1018
    +
    +
    EXBI - BinaryPrefix
    +
    +
    Prefix for 10246.
    +
    +
    EXBI(Unit<Q>) - Static method in enum BinaryPrefix
    +
    +
    Returns the specified unit multiplied by the factor 10246 (binary prefix).
    +
    +
    + + + +

    F

    +
    +
    FEMTO - MetricPrefix
    +
    +
    Prefix for 10-15.
    +
    +
    FEMTO(Unit<Q>) - Static method in enum MetricPrefix
    +
    +
    Returns the specified unit multiplied by the factor 10-15
    +
    +
    Force - Interface in javax.measure.quantity
    +
    +
    Quantity that tends to produce an acceleration of a body in the direction of its application.
    +
    +
    format(Quantity<?>) - Method in interface QuantityFormat
    +
    +
    Formats the specified Quantity.
    +
    +
    format(Quantity<?>, Appendable) - Method in interface QuantityFormat
    +
    +
    Formats the specified quantity into an Appendable.
    +
    +
    format(Unit<?>) - Method in interface UnitFormat
    +
    +
    Formats the specified Unit.
    +
    +
    format(Unit<?>, Appendable) - Method in interface UnitFormat
    +
    +
    Formats the specified Unit.
    +
    +
    FormatService - Interface in javax.measure.spi
    +
    +
    This interface represent the service to obtain instances of UnitFormat and QuantityFormat.
    +
    +
    FormatService.FormatType - Enum in javax.measure.spi
    +
     
    +
    Frequency - Interface in javax.measure.quantity
    +
    +
    Number of times a specified phenomenon occurs within a specified interval.
    +
    +
    + + + +

    G

    +
    +
    getAvailableFormatNames() - Method in interface UnitFormatService
    +
    +
    Deprecated. +
    use in FormatService instead.
    +
    +
    +
    getAvailableFormatNames(FormatService.FormatType) - Method in interface FormatService
    +
    +
    Gets a list with available format names of a given type for this format service.
    +
    +
    getAvailableSystemsOfUnits() - Method in interface SystemOfUnitsService
    +
    +
    Gets a list with available systems for this SystemOfUnitsService.
    +
    +
    getBaseDimensions() - Method in interface Dimension
    +
    +
    Returns the (fundamental) base dimensions and their exponent whose product is this dimension, or null if this dimension is a base + dimension.
    +
    +
    getBaseUnits() - Method in interface Unit
    +
    +
    Returns the base units and their exponent whose product is this unit, or null if this unit is a base unit (not a product of existing + units).
    +
    +
    getConversionSteps() - Method in interface UnitConverter
    +
    +
    + Returns the steps of fundamental converters making up this converter or this if the converter is a fundamental converter.
    +
    +
    getConverterTo(Unit<Q>) - Method in interface Unit
    +
    +
    Returns a converter of numeric values from this unit to another unit of same type.
    +
    +
    getConverterToAny(Unit<?>) - Method in interface Unit
    +
    +
    Returns a converter from this unit to the specified unit of type unknown.
    +
    +
    getDimension() - Method in interface Unit
    +
    +
    Returns the dimension of this unit.
    +
    +
    getExponent() - Method in enum BinaryPrefix
    +
    +
    Exponent part of the associated factor in base^exponent representation.
    +
    +
    getExponent() - Method in enum MetricPrefix
    +
    +
    Exponent part of the associated factor in base^exponent representation.
    +
    +
    getExponent() - Method in interface Prefix
    +
    +
    Exponent part of the associated factor in base^exponent representation.
    +
    +
    getFormatService() - Method in class ServiceProvider
    +
    +
    Returns the service to obtain UnitFormat and QuantityFormat or null if none.
    +
    +
    getName() - Method in enum BinaryPrefix
    +
    +
    Returns the name of this prefix.
    +
    +
    getName() - Method in enum MetricPrefix
    +
    +
    Returns the name of this prefix.
    +
    +
    getName() - Method in interface Prefix
    +
    +
    Returns the name of this prefix.
    +
    +
    getName() - Method in interface SystemOfUnits
    +
     
    +
    getName() - Method in interface Unit
    +
    +
    Returns the name (if any) of this unit.
    +
    +
    getParsedString() - Method in exception MeasurementParseException
    +
    +
    Returns the string that was being parsed.
    +
    +
    getPosition() - Method in exception MeasurementParseException
    +
    +
    Returns the position where the error was found.
    +
    +
    getPrefixes(Class<P>) - Method in interface SystemOfUnitsService
    +
    +
    Returns a Set containing the values of a particular Prefix + type.
    +
    +
    getPriority() - Method in class ServiceProvider
    +
    +
    Allows to define a priority for a registered ServiceProvider instance.
    +
    +
    getQuantityFactory(Class<Q>) - Method in class ServiceProvider
    +
    +
    Returns a factory for the given Quantity type.
    +
    +
    getQuantityFormat() - Method in interface FormatService
    +
    +
    Returns the default quantity format.
    +
    +
    getQuantityFormat(String) - Method in interface FormatService
    +
    +
    Returns the quantity format having the specified name or null if none.
    +
    +
    getScale() - Method in interface Quantity
    +
    +
    Returns the Scale of this Quantity, if it's absolute or relative.
    +
    +
    getSymbol() - Method in enum BinaryPrefix
    +
    +
    Returns the symbol of this prefix.
    +
    +
    getSymbol() - Method in enum MetricPrefix
    +
    +
    Returns the symbol of this prefix.
    +
    +
    getSymbol() - Method in interface Prefix
    +
    +
    Returns the symbol of this prefix.
    +
    +
    getSymbol() - Method in interface Unit
    +
    +
    Returns the symbol (if any) of this unit.
    +
    +
    getSystemOfUnits() - Method in interface SystemOfUnitsService
    +
    +
    Returns the default system of units.
    +
    +
    getSystemOfUnits(String) - Method in interface SystemOfUnitsService
    +
    +
    Returns the system of units having the specified name or null if + none is found.
    +
    +
    getSystemOfUnitsService() - Method in class ServiceProvider
    +
    +
    Returns the service to obtain a SystemOfUnits, or null if none.
    +
    +
    getSystemUnit() - Method in interface QuantityFactory
    +
    +
    Returns the system unit for quantities produced by this factory or null if unknown.
    +
    +
    getSystemUnit() - Method in interface Unit
    +
    +
    Returns the unscaled system unit from which this unit is derived.
    +
    +
    getUnit() - Method in interface Quantity
    +
    +
    Returns the unit of this Quantity.
    +
    +
    getUnit(Class<Q>) - Method in interface SystemOfUnits
    +
    +
    Returns the default unit for the specified quantity or null if none is defined for the given quantity in this unit system.
    +
    +
    getUnit(String) - Method in interface SystemOfUnits
    +
    +
    Returns a unit with the given string representation or null if none is found in this unit system.
    +
    +
    getUnitFormat() - Method in interface UnitFormatService
    +
    +
    Returns the default unit format.
    +
    +
    getUnitFormat(String) - Method in interface UnitFormatService
    +
    +
    Returns the unit format having the specified name or null if none.
    +
    +
    getUnitFormatService() - Method in class ServiceProvider
    +
    +
    Deprecated. +
    Use ServiceProvider.getFormatService(). This method will be removed in a future version, it is here for backward compatibility only.
    +
    +
    +
    getUnits() - Method in interface SystemOfUnits
    +
    +
    Returns a read only view over the units explicitly defined by this system.
    +
    +
    getUnits(Dimension) - Method in interface SystemOfUnits
    +
    +
    Returns the units defined in this system having the specified dimension (convenience method).
    +
    +
    getValue() - Method in enum BinaryPrefix
    +
    +
    Base part of the associated factor in base^exponent representation.
    +
    +
    getValue() - Method in enum MetricPrefix
    +
    +
    Base part of the associated factor in base^exponent representation.
    +
    +
    getValue() - Method in interface Prefix
    +
    +
    Returns the value of this prefix.
    +
    +
    getValue() - Method in interface Quantity
    +
    +
    Returns the value of this Quantity.
    +
    +
    GIBI - BinaryPrefix
    +
    +
    Prefix for 10243.
    +
    +
    GIBI(Unit<Q>) - Static method in enum BinaryPrefix
    +
    +
    Returns the specified unit multiplied by the factor 10243 (binary prefix).
    +
    +
    GIGA - MetricPrefix
    +
    +
    Prefix for 109.
    +
    +
    GIGA(Unit<Q>) - Static method in enum MetricPrefix
    +
    +
    Returns the specified unit multiplied by the factor 109
    +
    +
    + + + +

    H

    +
    +
    HECTO - MetricPrefix
    +
    +
    Prefix for 102.
    +
    +
    HECTO(Unit<Q>) - Static method in enum MetricPrefix
    +
    +
    Returns the specified unit multiplied by the factor 102
    +
    +
    + + + +

    I

    +
    +
    Illuminance - Interface in javax.measure.quantity
    +
    +
    Illuminance.
    +
    +
    IncommensurableException - Exception in javax.measure
    +
    +
    Signals that a problem of some sort has occurred due to incommensurable of some quantities/units.
    +
    +
    IncommensurableException(String) - Constructor for exception IncommensurableException
    +
    +
    Constructs a IncommensurableException with the given message.
    +
    +
    IncommensurableException(String, Throwable) - Constructor for exception IncommensurableException
    +
    +
    Constructs a IncommensurableException with the given message and cause.
    +
    +
    IncommensurableException(Throwable) - Constructor for exception IncommensurableException
    +
    +
    Constructs a IncommensurableException with the given cause.
    +
    +
    inverse() - Method in interface Quantity
    +
    +
    Returns a Quantity that is the multiplicative inverse of this + Quantity, having reciprocal value and reciprocal unit as given by + this.getUnit().inverse().
    +
    +
    inverse() - Method in interface Unit
    +
    +
    Returns the reciprocal (multiplicative inverse) of this unit.
    +
    +
    inverse() - Method in interface UnitConverter
    +
    +
    Returns the inverse of this converter.
    +
    +
    isCompatible(Unit<?>) - Method in interface Unit
    +
    +
    Indicates if this unit is compatible with the unit specified.
    +
    +
    isIdentity() - Method in interface UnitConverter
    +
    +
    Indicates if this converter is an identity converter.
    +
    +
    isLinear() - Method in interface UnitConverter
    +
    +
    Indicates whether this converter represents a (one-dimensional) linear transformation, that is + a linear map (wikipedia) from a one-dimensional + vector space (a scalar) to a one-dimensional vector space.
    +
    +
    isLocaleSensitive() - Method in interface QuantityFormat
    +
    +
    Returns true if this QuantityFormat depends on a Locale to perform its tasks.
    +
    +
    isLocaleSensitive() - Method in interface UnitFormat
    +
    +
    Returns true if this UnitFormat depends on a Locale to perform its tasks.
    +
    +
    + + + +

    J

    +
    +
    javax.measure - package javax.measure
    +
    +
    Specifies Java packages for the programmatic, type safe handling + of quantities and their expression as values of units.
    +
    +
    javax.measure.format - package javax.measure.format
    +
    +
    [OPTIONAL] Provides Formatting and Parsing functionality for units, quantities, dimensions or their textual representation.
    +
    +
    javax.measure.quantity - package javax.measure.quantity
    +
    +
    [OPTIONAL] Provides quantitative properties or attributes of thing such as + mass, time, distance, heat, and angular separation.
    +
    +
    javax.measure.spi - package javax.measure.spi
    +
    +
    [OPTIONAL] The Units of Measurement SPI.
    +
    +
    + + + +

    K

    +
    +
    KIBI - BinaryPrefix
    +
    +
    Prefix for 1024.
    +
    +
    KIBI(Unit<Q>) - Static method in enum BinaryPrefix
    +
    +
    Returns the specified unit multiplied by the factor 1024 (binary prefix).
    +
    +
    KILO - MetricPrefix
    +
    +
    Prefix for 103.
    +
    +
    KILO(Unit<Q>) - Static method in enum MetricPrefix
    +
    +
    Returns the specified unit multiplied by the factor 103
    +
    +
    + + + +

    L

    +
    +
    label(Unit<?>, String) - Method in interface UnitFormat
    +
    +
    Attaches a system-wide label to the specified unit.
    +
    +
    Length - Interface in javax.measure.quantity
    +
    +
    Extent of something along its greatest dimension or the extent of space between two objects or places.
    +
    +
    LuminousFlux - Interface in javax.measure.quantity
    +
    +
    Luminous flux.
    +
    +
    LuminousIntensity - Interface in javax.measure.quantity
    +
    +
    Luminous flux density per solid angle as measured in a given direction relative to the emitting source.
    +
    +
    + + + +

    M

    +
    +
    MagneticFlux - Interface in javax.measure.quantity
    +
    +
    Magnetic flux.
    +
    +
    MagneticFluxDensity - Interface in javax.measure.quantity
    +
    +
    Magnetic flux density.
    +
    +
    Mass - Interface in javax.measure.quantity
    +
    +
    Measure of the quantity of matter that a body or an object contains.
    +
    +
    MeasurementException - Exception in javax.measure
    +
    +
    Exception used to indicate a problem while dealing with units of measurement.
    +
    +
    MeasurementException() - Constructor for exception MeasurementException
    +
    +
    Constructs a MeasurementException with no given message.
    +
    +
    MeasurementException(String) - Constructor for exception MeasurementException
    +
    +
    Constructs a MeasurementException with the given message.
    +
    +
    MeasurementException(String, Throwable) - Constructor for exception MeasurementException
    +
    +
    Constructs a MeasurementException with the given message and cause.
    +
    +
    MeasurementException(Throwable) - Constructor for exception MeasurementException
    +
    +
    Constructs a MeasurementException with the given cause.
    +
    +
    MeasurementParseException - Exception in javax.measure.format
    +
    +
    Signals that an error has been reached unexpectedly while parsing.
    +
    +
    MeasurementParseException(CharSequence, int) - Constructor for exception MeasurementParseException
    +
    +
    Constructs a MeasurementParseException with the parsed text and offset.
    +
    +
    MeasurementParseException(String) - Constructor for exception MeasurementParseException
    +
    +
    Constructs a MeasurementParseException with the specified detail message.
    +
    +
    MeasurementParseException(String, CharSequence, int) - Constructor for exception MeasurementParseException
    +
    +
    Constructs a MeasurementParseException with the specified detail message, parsed text and index.
    +
    +
    MeasurementParseException(Throwable) - Constructor for exception MeasurementParseException
    +
    +
    Constructs a MeasurementParseException with the specified cause.
    +
    +
    MEBI - BinaryPrefix
    +
    +
    Prefix for 10242.
    +
    +
    MEBI(Unit<Q>) - Static method in enum BinaryPrefix
    +
    +
    Returns the specified unit multiplied by the factor 10242 (binary prefix).
    +
    +
    MEGA - MetricPrefix
    +
    +
    Prefix for 106.
    +
    +
    MEGA(Unit<Q>) - Static method in enum MetricPrefix
    +
    +
    Returns the specified unit multiplied by the factor 106
    +
    +
    MetricPrefix - Enum in javax.measure
    +
    +
    Provides support for the 20 prefixes used in the metric system (decimal multiples and submultiples of units).
    +
    +
    MICRO - MetricPrefix
    +
    +
    Prefix for 10-6.
    +
    +
    MICRO(Unit<Q>) - Static method in enum MetricPrefix
    +
    +
    Returns the specified unit multiplied by the factor 10-6
    +
    +
    MILLI - MetricPrefix
    +
    +
    Prefix for 10-3.
    +
    +
    MILLI(Unit<Q>) - Static method in enum MetricPrefix
    +
    +
    Returns the specified unit multiplied by the factor 10-3
    +
    +
    multiply(double) - Method in interface Unit
    +
    +
    Returns the result of multiplying this unit by the specified factor.
    +
    +
    multiply(Number) - Method in interface Quantity
    +
    +
    Returns the product of this Quantity with the Number value + specified.
    +
    +
    multiply(Number) - Method in interface Unit
    +
    +
    Returns the result of multiplying this unit by the specified factor.
    +
    +
    multiply(Dimension) - Method in interface Dimension
    +
    +
    Returns the product of this dimension with the one specified.
    +
    +
    multiply(Quantity<?>) - Method in interface Quantity
    +
    +
    Returns the product of this Quantity with the one specified.
    +
    +
    multiply(Unit<?>) - Method in interface Unit
    +
    +
    Returns the product of this unit with the one specified.
    +
    +
    + + + +

    N

    +
    +
    NANO - MetricPrefix
    +
    +
    Prefix for 10-9.
    +
    +
    NANO(Unit<Q>) - Static method in enum MetricPrefix
    +
    +
    Returns the specified unit multiplied by the factor 10-9
    +
    +
    negate() - Method in interface Quantity
    +
    +
    Returns a Quantity whose value is (-this.getValue()).
    +
    +
    + + + +

    O

    +
    +
    of(String) - Static method in class ServiceProvider
    +
    +
    Returns the ServiceProvider with the specified name.
    +
    +
    + + + +

    P

    +
    +
    parse(CharSequence) - Method in interface QuantityFormat
    +
    +
    Parses a portion of the specified CharSequence from the specified position to produce a Quantity.
    +
    +
    parse(CharSequence) - Method in interface UnitFormat
    +
    +
    Parses the text into an instance of Unit.
    +
    +
    parse(CharSequence, ParsePosition) - Method in interface QuantityFormat
    +
    +
    Parses a portion of the specified CharSequence from the specified position to produce a Quantity.
    +
    +
    parse(CharSequence, ParsePosition) - Method in interface UnitFormat
    +
    +
    Parses a portion of the specified CharSequence from the specified position to produce a Unit.
    +
    +
    ParserException - Exception in javax.measure.format
    +
    +
    Deprecated. +
    Use MeasurementParseException, this exception will be removed in a future version, it is here for backward compatibility only.
    +
    +
    +
    ParserException(CharSequence, int) - Constructor for exception ParserException
    +
    +
    Deprecated.
    +
    Constructs a ParserException with the parsed text and offset.
    +
    +
    ParserException(String, CharSequence, int) - Constructor for exception ParserException
    +
    +
    Deprecated.
    +
    Constructs a ParserException with the specified detail message, parsed text and index.
    +
    +
    ParserException(Throwable) - Constructor for exception ParserException
    +
    +
    Deprecated.
    +
    Constructs a ParserException with the specified cause.
    +
    +
    PEBI - BinaryPrefix
    +
    +
    Prefix for 10245.
    +
    +
    PEBI(Unit<Q>) - Static method in enum BinaryPrefix
    +
    +
    Returns the specified unit multiplied by the factor 10245 (binary prefix).
    +
    +
    PETA - MetricPrefix
    +
    +
    Prefix for 1015.
    +
    +
    PETA(Unit<Q>) - Static method in enum MetricPrefix
    +
    +
    Returns the specified unit multiplied by the factor 1015
    +
    +
    PICO - MetricPrefix
    +
    +
    Prefix for 10-12.
    +
    +
    PICO(Unit<Q>) - Static method in enum MetricPrefix
    +
    +
    Returns the specified unit multiplied by the factor 10-12
    +
    +
    pow(int) - Method in interface Dimension
    +
    +
    Returns this dimension raised to an exponent.
    +
    +
    pow(int) - Method in interface Unit
    +
    +
    Returns an unit raised to the n-th (integer) power of this unit.
    +
    +
    Power - Interface in javax.measure.quantity
    +
    +
    Rate at which work is done.
    +
    +
    prefix(Prefix) - Method in interface Unit
    +
    +
    Returns a new unit equal to this unit prefixed by the specified prefix.
    +
    +
    Prefix - Interface in javax.measure
    +
    +
    A unit prefix is a specifier or mnemonic that is prepended to units of measurement to indicate multiples or fractions of the units.
    +
    +
    Pressure - Interface in javax.measure.quantity
    +
    +
    Force applied uniformly over a surface.
    +
    +
    + + + +

    Q

    +
    +
    Quantity<Q extends Quantity<Q>> - Interface in javax.measure
    +
    +
    Represents a quantitative property of a phenomenon, body, or substance, that + can be quantified by measurement.
    +
    +
    QUANTITY_FORMAT - FormatService.FormatType
    +
     
    +
    Quantity.Scale - Enum in javax.measure
    +
    +
    The scale of a Quantity, either ABSOLUTE or RELATIVE.
    +
    +
    QuantityFactory<Q extends Quantity<Q>> - Interface in javax.measure.spi
    +
    +
    Represents a factory that accepts Number and Unit arguments to create Quantity results.
    +
    +
    QuantityFormat - Interface in javax.measure.format
    +
    +
    Formats instances of Quantity.
    +
    +
    + + + +

    R

    +
    +
    RadiationDoseAbsorbed - Interface in javax.measure.quantity
    +
    +
    Amount of energy deposited per unit of mass.
    +
    +
    RadiationDoseEffective - Interface in javax.measure.quantity
    +
    +
    Effective (or "equivalent") dose of radiation received by a human or some other living organism.
    +
    +
    Radioactivity - Interface in javax.measure.quantity
    +
    +
    Radioactive activity.
    +
    +
    RELATIVE - Quantity.Scale
    +
     
    +
    root(int) - Method in interface Dimension
    +
    +
    Returns the given root of this dimension.
    +
    +
    root(int) - Method in interface Unit
    +
    +
    Returns an unit that is the n-th (integer) root of this unit.
    +
    +
    + + + +

    S

    +
    +
    ServiceProvider - Class in javax.measure.spi
    +
    +
    Service Provider for Units of Measurement services.
    +
    +
    ServiceProvider() - Constructor for class ServiceProvider
    +
    +
    Creates a new service provider.
    +
    +
    setCurrent(ServiceProvider) - Static method in class ServiceProvider
    +
    +
    Replaces the current ServiceProvider.
    +
    +
    shift(double) - Method in interface Unit
    +
    +
    Returns the result of setting the origin of the scale of measurement to the given value.
    +
    +
    shift(Number) - Method in interface Unit
    +
    +
    Returns the result of setting the origin of the scale of measurement to the given value.
    +
    +
    SolidAngle - Interface in javax.measure.quantity
    +
    +
    Angle formed by three or more planes intersecting at a common point.
    +
    +
    Speed - Interface in javax.measure.quantity
    +
    +
    Distance traveled divided by the time of travel.
    +
    +
    subtract(Quantity<Q>) - Method in interface Quantity
    +
    +
    Returns the difference between this Quantity and the one specified.
    +
    +
    SystemOfUnits - Interface in javax.measure.spi
    +
    +
    A system of units grouped together for historical or cultural reasons.
    + Common system of units are "SI" (System International), "Imperial" (British), "US" (US Customary).
    +
    +
    SystemOfUnitsService - Interface in javax.measure.spi
    +
    +
    This interface represents the service to obtain a system + of units.
    +
    +
    + + + +

    T

    +
    +
    TEBI - BinaryPrefix
    +
    +
    Prefix for 10244.
    +
    +
    TEBI(Unit<Q>) - Static method in enum BinaryPrefix
    +
    +
    Returns the specified unit multiplied by the factor 10244 (binary prefix).
    +
    +
    Temperature - Interface in javax.measure.quantity
    +
    +
    Degree of hotness or coldness of a body or an environment.
    +
    +
    TERA - MetricPrefix
    +
    +
    Prefix for 1012.
    +
    +
    TERA(Unit<Q>) - Static method in enum MetricPrefix
    +
    +
    Returns the specified unit multiplied by the factor 1012
    +
    +
    Time - Interface in javax.measure.quantity
    +
    +
    Period of existence or persistence.
    +
    +
    to(Unit<Q>) - Method in interface Quantity
    +
    +
    Returns this Quantity converted into another (compatible) + Unit.
    +
    +
    toString() - Method in interface Unit
    +
    +
    Returns a string representation of this unit.
    +
    +
    toSystemUnit() - Method in interface Quantity
    +
    +
    Convenient method equivalent to to(getUnit().toSystemUnit()).
    +
    +
    transform(UnitConverter) - Method in interface Unit
    +
    +
    Returns the unit derived from this unit using the specified converter.
    +
    +
    + + + +

    U

    +
    +
    UnconvertibleException - Exception in javax.measure
    +
    +
    Signals that a problem of some sort has occurred due to the impossibility of constructing a converter between two units.
    +
    +
    UnconvertibleException(String) - Constructor for exception UnconvertibleException
    +
    +
    Constructs a UnconvertibleException with the given message.
    +
    +
    UnconvertibleException(String, Throwable) - Constructor for exception UnconvertibleException
    +
    +
    Constructs a UnconvertibleException with the given message and cause.
    +
    +
    UnconvertibleException(Throwable) - Constructor for exception UnconvertibleException
    +
    +
    Constructs a UnconvertibleException with the given cause.
    +
    +
    Unit<Q extends Quantity<Q>> - Interface in javax.measure
    +
    +
    Represents a determinate quantity (as of length, time, heat, or value) adopted as a standard of measurement.
    +
    +
    UNIT_FORMAT - FormatService.FormatType
    +
     
    +
    UnitConverter - Interface in javax.measure
    +
    +
    A converter of numeric values between different units.
    +
    +
    UnitFormat - Interface in javax.measure.format
    +
    +
    Formats instances of Unit to a String or Appendable and parses a CharSequence to a Unit.
    +
    +
    UnitFormatService - Interface in javax.measure.spi
    +
    +
    This interface represent the service to obtain UnitFormat instances.
    +
    + Note: This parent interface remains separate for backward-compatibility, it will be merged into FormatService in a future version.
    +
    +
    + + + +

    V

    +
    +
    valueOf(String) - Static method in enum BinaryPrefix
    +
    +
    Returns the enum constant of this type with the specified name.
    +
    +
    valueOf(String) - Static method in enum MetricPrefix
    +
    +
    Returns the enum constant of this type with the specified name.
    +
    +
    valueOf(String) - Static method in enum Quantity.Scale
    +
    +
    Returns the enum constant of this type with the specified name.
    +
    +
    valueOf(String) - Static method in enum FormatService.FormatType
    +
    +
    Returns the enum constant of this type with the specified name.
    +
    +
    values() - Static method in enum BinaryPrefix
    +
    +
    Returns an array containing the constants of this enum type, in +the order they are declared.
    +
    +
    values() - Static method in enum MetricPrefix
    +
    +
    Returns an array containing the constants of this enum type, in +the order they are declared.
    +
    +
    values() - Static method in enum Quantity.Scale
    +
    +
    Returns an array containing the constants of this enum type, in +the order they are declared.
    +
    +
    values() - Static method in enum FormatService.FormatType
    +
    +
    Returns an array containing the constants of this enum type, in +the order they are declared.
    +
    +
    Volume - Interface in javax.measure.quantity
    +
    +
    Amount of space occupied by a three-dimensional object or region of space.
    +
    +
    + + + +

    Y

    +
    +
    YOBI - BinaryPrefix
    +
    +
    Prefix for 10248.
    +
    +
    YOBI(Unit<Q>) - Static method in enum BinaryPrefix
    +
    +
    Returns the specified unit multiplied by the factor 10248 (binary prefix).
    +
    +
    YOCTO - MetricPrefix
    +
    +
    Prefix for 10-24.
    +
    +
    YOCTO(Unit<Q>) - Static method in enum MetricPrefix
    +
    +
    Returns the specified unit multiplied by the factor 10-24
    +
    +
    YOTTA - MetricPrefix
    +
    +
    Prefix for 1024.
    +
    +
    YOTTA(Unit<Q>) - Static method in enum MetricPrefix
    +
    +
    Returns the specified unit multiplied by the factor 1024
    +
    +
    + + + +

    Z

    +
    +
    ZEBI - BinaryPrefix
    +
    +
    Prefix for 10247.
    +
    +
    ZEBI(Unit<Q>) - Static method in enum BinaryPrefix
    +
    +
    Returns the specified unit multiplied by the factor 10247 (binary prefix).
    +
    +
    ZEPTO - MetricPrefix
    +
    +
    Prefix for 10-21.
    +
    +
    ZEPTO(Unit<Q>) - Static method in enum MetricPrefix
    +
    +
    Returns the specified unit multiplied by the factor 10-21
    +
    +
    ZETTA - MetricPrefix
    +
    +
    Prefix for 1021.
    +
    +
    ZETTA(Unit<Q>) - Static method in enum MetricPrefix
    +
    +
    Returns the specified unit multiplied by the factor 1021
    +
    +
    +A B C D E F G H I J K L M N O P Q R S T U V Y Z 
    + +
    + + + + + + + +
    + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/index.html b/site/apidocs/index.html new file mode 100644 index 00000000..b1efe0be --- /dev/null +++ b/site/apidocs/index.html @@ -0,0 +1,83 @@ + + + + + +Units of Measurement API 2.0 API + + + + + + + +
    +
    +
    + +
    +
    + +
    +
    +
    + +
    +
    + + diff --git a/site/apidocs/javax/measure/BinaryPrefix.html b/site/apidocs/javax/measure/BinaryPrefix.html new file mode 100644 index 00000000..55c1bdb8 --- /dev/null +++ b/site/apidocs/javax/measure/BinaryPrefix.html @@ -0,0 +1,797 @@ + + + + + +BinaryPrefix (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    +
    Package javax.measure
    +

    Enum BinaryPrefix

    +
    +
    + +
    + +
    +
    +
      +
    • + +
        +
      • + + +

        Enum Constant Summary

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        Enum Constants 
        Enum ConstantDescription
        EXBI +
        Prefix for 10246.
        +
        GIBI +
        Prefix for 10243.
        +
        KIBI +
        Prefix for 1024.
        +
        MEBI +
        Prefix for 10242.
        +
        PEBI +
        Prefix for 10245.
        +
        TEBI +
        Prefix for 10244.
        +
        YOBI +
        Prefix for 10248.
        +
        ZEBI +
        Prefix for 10247.
        +
        +
      • +
      + + +
    • +
    +
    +
    +
      +
    • + +
        +
      • + + +

        Enum Constant Detail

        + + + +
          +
        • +

          KIBI

          +
          public static final BinaryPrefix KIBI
          +
          Prefix for 1024.
          +
        • +
        + + + +
          +
        • +

          MEBI

          +
          public static final BinaryPrefix MEBI
          +
          Prefix for 10242.
          +
        • +
        + + + +
          +
        • +

          GIBI

          +
          public static final BinaryPrefix GIBI
          +
          Prefix for 10243.
          +
        • +
        + + + +
          +
        • +

          TEBI

          +
          public static final BinaryPrefix TEBI
          +
          Prefix for 10244.
          +
        • +
        + + + +
          +
        • +

          PEBI

          +
          public static final BinaryPrefix PEBI
          +
          Prefix for 10245.
          +
        • +
        + + + +
          +
        • +

          EXBI

          +
          public static final BinaryPrefix EXBI
          +
          Prefix for 10246.
          +
        • +
        + + + +
          +
        • +

          ZEBI

          +
          public static final BinaryPrefix ZEBI
          +
          Prefix for 10247.
          +
        • +
        + + + +
          +
        • +

          YOBI

          +
          public static final BinaryPrefix YOBI
          +
          Prefix for 10248.
          +
        • +
        +
      • +
      + +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          values

          +
          public static BinaryPrefix[] values​()
          +
          Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +
          +for (BinaryPrefix c : BinaryPrefix.values())
          +    System.out.println(c);
          +
          +
          +
          Returns:
          +
          an array containing the constants of this enum type, in the order they are declared
          +
          +
        • +
        + + + +
          +
        • +

          valueOf

          +
          public static BinaryPrefix valueOf​(String name)
          +
          Returns the enum constant of this type with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)
          +
          +
          Parameters:
          +
          name - the name of the enum constant to be returned.
          +
          Returns:
          +
          the enum constant with the specified name
          +
          Throws:
          +
          IllegalArgumentException - if this enum type has no constant with the specified name
          +
          NullPointerException - if the argument is null
          +
          +
        • +
        + + + +
          +
        • +

          KIBI

          +
          public static <Q extends Quantity<Q>> Unit<Q> KIBI​(Unit<Q> unit)
          +
          Returns the specified unit multiplied by the factor 1024 (binary prefix).
          +
          +
          Type Parameters:
          +
          Q - type of the quantity measured by the unit.
          +
          Parameters:
          +
          unit - any unit.
          +
          Returns:
          +
          unit.multiply(1024).
          +
          +
        • +
        + + + +
          +
        • +

          MEBI

          +
          public static <Q extends Quantity<Q>> Unit<Q> MEBI​(Unit<Q> unit)
          +
          Returns the specified unit multiplied by the factor 10242 (binary prefix).
          +
          +
          Type Parameters:
          +
          Q - type of the quantity measured by the unit.
          +
          Parameters:
          +
          unit - any unit.
          +
          Returns:
          +
          unit.multiply(1048576).
          +
          +
        • +
        + + + +
          +
        • +

          GIBI

          +
          public static <Q extends Quantity<Q>> Unit<Q> GIBI​(Unit<Q> unit)
          +
          Returns the specified unit multiplied by the factor 10243 (binary prefix).
          +
          +
          Type Parameters:
          +
          Q - type of the quantity measured by the unit.
          +
          Parameters:
          +
          unit - any unit.
          +
          Returns:
          +
          unit.multiply(1073741824).
          +
          +
        • +
        + + + +
          +
        • +

          TEBI

          +
          public static <Q extends Quantity<Q>> Unit<Q> TEBI​(Unit<Q> unit)
          +
          Returns the specified unit multiplied by the factor 10244 (binary prefix).
          +
          +
          Type Parameters:
          +
          Q - type of the quantity measured by the unit.
          +
          Parameters:
          +
          unit - any unit.
          +
          Returns:
          +
          unit.multiply(1099511627776L).
          +
          +
        • +
        + + + +
          +
        • +

          PEBI

          +
          public static <Q extends Quantity<Q>> Unit<Q> PEBI​(Unit<Q> unit)
          +
          Returns the specified unit multiplied by the factor 10245 (binary prefix).
          +
          +
          Type Parameters:
          +
          Q - type of the quantity measured by the unit.
          +
          Parameters:
          +
          unit - any unit.
          +
          Returns:
          +
          unit.multiply(1125899906842624L).
          +
          +
        • +
        + + + +
          +
        • +

          EXBI

          +
          public static <Q extends Quantity<Q>> Unit<Q> EXBI​(Unit<Q> unit)
          +
          Returns the specified unit multiplied by the factor 10246 (binary prefix).
          +
          +
          Type Parameters:
          +
          Q - type of the quantity measured by the unit.
          +
          Parameters:
          +
          unit - any unit.
          +
          Returns:
          +
          unit.multiply(1152921504606846976L).
          +
          +
        • +
        + + + +
          +
        • +

          ZEBI

          +
          public static <Q extends Quantity<Q>> Unit<Q> ZEBI​(Unit<Q> unit)
          +
          Returns the specified unit multiplied by the factor 10247 (binary prefix).
          +
          +
          Type Parameters:
          +
          Q - type of the quantity measured by the unit.
          +
          Parameters:
          +
          unit - any unit.
          +
          Returns:
          +
          unit.multiply(1152921504606846976d).
          +
          +
        • +
        + + + +
          +
        • +

          YOBI

          +
          public static <Q extends Quantity<Q>> Unit<Q> YOBI​(Unit<Q> unit)
          +
          Returns the specified unit multiplied by the factor 10248 (binary prefix).
          +
          +
          Type Parameters:
          +
          Q - type of the quantity measured by the unit.
          +
          Parameters:
          +
          unit - any unit.
          +
          Returns:
          +
          unit.multiply(1208925819614629174706176d).
          +
          +
        • +
        + + + +
          +
        • +

          getSymbol

          +
          public String getSymbol​()
          +
          Returns the symbol of this prefix.
          +
          +
          Specified by:
          +
          getSymbol in interface Prefix
          +
          Returns:
          +
          this prefix symbol, not null.
          +
          +
        • +
        + + + +
          +
        • +

          getValue

          +
          public Integer getValue​()
          +
          Base part of the associated factor in base^exponent representation. For binary prefix, this is always 1024.
          +
          +
          Specified by:
          +
          getValue in interface Prefix
          +
          Returns:
          +
          The prefix value.
          +
          +
        • +
        + + + +
          +
        • +

          getExponent

          +
          public int getExponent​()
          +
          Exponent part of the associated factor in base^exponent representation.
          +
          +
          Specified by:
          +
          getExponent in interface Prefix
          +
          Returns:
          +
          the exponent part of this prefix.
          +
          +
        • +
        + + + +
          +
        • +

          getName

          +
          public String getName​()
          +
          Returns the name of this prefix.
          +
          +
          Specified by:
          +
          getName in interface Prefix
          +
          Returns:
          +
          this prefix name, not null.
          +
          +
        • +
        +
      • +
      +
    • +
    +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/Dimension.html b/site/apidocs/javax/measure/Dimension.html new file mode 100644 index 00000000..f4f738fc --- /dev/null +++ b/site/apidocs/javax/measure/Dimension.html @@ -0,0 +1,382 @@ + + + + + +Dimension (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    +
    Package javax.measure
    +

    Interface Dimension

    +
    +
    +
    + +
    +
    +
      +
    • + + +
    • +
    +
    +
    +
      +
    • + +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          multiply

          +
          Dimension multiply​(Dimension multiplicand)
          +
          Returns the product of this dimension with the one specified.
          +
          +
          Parameters:
          +
          multiplicand - the dimension multiplicand.
          +
          Returns:
          +
          this * multiplicand
          +
          +
        • +
        + + + +
          +
        • +

          divide

          +
          Dimension divide​(Dimension divisor)
          +
          Returns the quotient of this dimension with the one specified.
          +
          +
          Parameters:
          +
          divisor - the dimension divisor.
          +
          Returns:
          +
          this / divisor
          +
          +
        • +
        + + + +
          +
        • +

          pow

          +
          Dimension pow​(int n)
          +
          Returns this dimension raised to an exponent. (thisn)
          +
          +
          Parameters:
          +
          n - power to raise this Dimension to.
          +
          Returns:
          +
          thisn
          +
          +
        • +
        + + + +
          +
        • +

          root

          +
          Dimension root​(int n)
          +
          Returns the given root of this dimension.
          +
          +
          Parameters:
          +
          n - the root's order.
          +
          Returns:
          +
          the result of taking the given root of this dimension.
          +
          Throws:
          +
          ArithmeticException - if n == 0.
          +
          +
        • +
        + + + +
          +
        • +

          getBaseDimensions

          +
          Map<? extends Dimension,Integer> getBaseDimensions​()
          +
          Returns the (fundamental) base dimensions and their exponent whose product is this dimension, or null if this dimension is a base + dimension.
          +
          +
          Returns:
          +
          the mapping between the fundamental dimensions and their exponent.
          +
          +
        • +
        +
      • +
      +
    • +
    +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/IncommensurableException.html b/site/apidocs/javax/measure/IncommensurableException.html new file mode 100644 index 00000000..4ca8d9d5 --- /dev/null +++ b/site/apidocs/javax/measure/IncommensurableException.html @@ -0,0 +1,357 @@ + + + + + +IncommensurableException (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    +
    Package javax.measure
    +

    Class IncommensurableException

    +
    +
    + +
    +
      +
    • +
      +
      All Implemented Interfaces:
      +
      Serializable
      +
      +
      +
      +
      public class IncommensurableException
      +extends Exception
      +
      Signals that a problem of some sort has occurred due to incommensurable of some quantities/units. Only commensurable quantity (quantities with the + same dimensions) may be compared, equated, added, or subtracted. Also, one unit can be converted to another unit only if both units are + commensurable. +

      + This is a checked exception, so it deliberately doesn't inherit from MeasurementException like most other exceptions. +

      +
      +
      Since:
      +
      1.0
      +
      Version:
      +
      1.0, August 8, 2016
      +
      Author:
      +
      Jean-Marie Dautelle, Werner Keil
      +
      See Also:
      +
      Wikipedia: Unit Commensurability, +Serialized Form
      +
      +
    • +
    +
    +
    + +
    +
    +
      +
    • + +
        +
      • + + +

        Constructor Detail

        + + + +
          +
        • +

          IncommensurableException

          +
          public IncommensurableException​(String message)
          +
          Constructs a IncommensurableException with the given message.
          +
          +
          Parameters:
          +
          message - the detail message, or null if none.
          +
          +
        • +
        + + + +
          +
        • +

          IncommensurableException

          +
          public IncommensurableException​(Throwable cause)
          +
          Constructs a IncommensurableException with the given cause.
          +
          +
          Parameters:
          +
          cause - the cause of this exception, or null if none.
          +
          +
        • +
        + + + +
          +
        • +

          IncommensurableException

          +
          public IncommensurableException​(String message,
          +                                Throwable cause)
          +
          Constructs a IncommensurableException with the given message and cause.
          +
          +
          Parameters:
          +
          message - the detail message, or null if none.
          +
          cause - the cause of this exception, or null if none.
          +
          +
        • +
        +
      • +
      +
    • +
    +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/MeasurementException.html b/site/apidocs/javax/measure/MeasurementException.html new file mode 100644 index 00000000..2ccc9104 --- /dev/null +++ b/site/apidocs/javax/measure/MeasurementException.html @@ -0,0 +1,386 @@ + + + + + +MeasurementException (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    +
    Package javax.measure
    +

    Class MeasurementException

    +
    +
    + +
    +
      +
    • +
      +
      All Implemented Interfaces:
      +
      Serializable
      +
      +
      +
      Direct Known Subclasses:
      +
      MeasurementParseException, UnconvertibleException
      +
      +
      +
      +
      public class MeasurementException
      +extends RuntimeException
      +
      Exception used to indicate a problem while dealing with units of measurement. +

      + This exception is used to indicate problems with creating, retrieving and manipulating units of measurement objects. +

      + + implSpec This class is intended for use in a single thread. Exception thrown when errors occur during Units of Measurement operations.
      +
      +
      Since:
      +
      1.0
      +
      Version:
      +
      1.0, Aug 8, 2016
      +
      Author:
      +
      Werner Keil
      +
      See Also:
      +
      Serialized Form
      +
      +
    • +
    +
    +
    + +
    +
    +
      +
    • + +
        +
      • + + +

        Constructor Detail

        + + + +
          +
        • +

          MeasurementException

          +
          public MeasurementException​(String message)
          +
          Constructs a MeasurementException with the given message.
          +
          +
          Parameters:
          +
          message - the detail message, or null if none.
          +
          +
        • +
        + + + +
          +
        • +

          MeasurementException

          +
          public MeasurementException​(Throwable cause)
          +
          Constructs a MeasurementException with the given cause.
          +
          +
          Parameters:
          +
          cause - the cause of this exception, or null if none.
          +
          +
        • +
        + + + +
          +
        • +

          MeasurementException

          +
          public MeasurementException​(String message,
          +                            Throwable cause)
          +
          Constructs a MeasurementException with the given message and cause.
          +
          +
          Parameters:
          +
          message - the detail message, or null if none.
          +
          cause - the cause of this exception, or null if none.
          +
          +
        • +
        + + + +
          +
        • +

          MeasurementException

          +
          protected MeasurementException​()
          +
          Constructs a MeasurementException with no given message.
          +
        • +
        +
      • +
      +
    • +
    +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/MetricPrefix.html b/site/apidocs/javax/measure/MetricPrefix.html new file mode 100644 index 00000000..46ca7620 --- /dev/null +++ b/site/apidocs/javax/measure/MetricPrefix.html @@ -0,0 +1,1312 @@ + + + + + +MetricPrefix (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    +
    Package javax.measure
    +

    Enum MetricPrefix

    +
    +
    + +
    +
      +
    • +
      +
      All Implemented Interfaces:
      +
      Serializable, Comparable<MetricPrefix>, Prefix
      +
      +
      +
      +
      public enum MetricPrefix
      +extends Enum<MetricPrefix>
      +implements Prefix
      +
      Provides support for the 20 prefixes used in the metric system (decimal multiples and submultiples of units). For example: + +
      + 
      +     import static tech.units.indriya.unit.Units.*;  // Static import.
      +     import static javax.measure.MetricPrefix.*; // Static import.
      +     import javax.measure.*;
      +     import javax.measure.quantity.*;
      +     ...
      +     Unit<Pressure> HECTOPASCAL = HECTO(PASCAL);
      +     Unit<Length> KILOMETRE = KILO(METRE);
      + 
      +
      +
      Since:
      +
      2.0
      +
      Version:
      +
      2.0, June 28, 2019
      +
      Author:
      +
      Jean-Marie Dautelle, Werner Keil
      +
      See Also:
      +
      Wikipedia: Metric Prefix
      +
      +
    • +
    +
    +
    +
      +
    • + +
        +
      • + + +

        Enum Constant Summary

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        Enum Constants 
        Enum ConstantDescription
        ATTO +
        Prefix for 10-18.
        +
        CENTI +
        Prefix for 10-2.
        +
        DECI +
        Prefix for 10-1.
        +
        DEKA +
        Prefix for 101.
        +
        EXA +
        Prefix for 1018.
        +
        FEMTO +
        Prefix for 10-15.
        +
        GIGA +
        Prefix for 109.
        +
        HECTO +
        Prefix for 102.
        +
        KILO +
        Prefix for 103.
        +
        MEGA +
        Prefix for 106.
        +
        MICRO +
        Prefix for 10-6.
        +
        MILLI +
        Prefix for 10-3.
        +
        NANO +
        Prefix for 10-9.
        +
        PETA +
        Prefix for 1015.
        +
        PICO +
        Prefix for 10-12.
        +
        TERA +
        Prefix for 1012.
        +
        YOCTO +
        Prefix for 10-24.
        +
        YOTTA +
        Prefix for 1024.
        +
        ZEPTO +
        Prefix for 10-21.
        +
        ZETTA +
        Prefix for 1021.
        +
        +
      • +
      + +
        +
      • + + +

        Method Summary

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        All Methods Static Methods Instance Methods Concrete Methods 
        Modifier and TypeMethodDescription
        static <Q extends Quantity<Q>>
        Unit<Q>
        ATTO​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 10-18
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        CENTI​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 10-2
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        DECI​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 10-1
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        DEKA​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 101
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        EXA​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 1018
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        FEMTO​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 10-15
        +
        intgetExponent​() +
        Exponent part of the associated factor in base^exponent representation.
        +
        StringgetName​() +
        Returns the name of this prefix.
        +
        StringgetSymbol​() +
        Returns the symbol of this prefix.
        +
        IntegergetValue​() +
        Base part of the associated factor in base^exponent representation.
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        GIGA​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 109
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        HECTO​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 102
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        KILO​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 103
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        MEGA​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 106
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        MICRO​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 10-6
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        MILLI​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 10-3
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        NANO​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 10-9
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        PETA​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 1015
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        PICO​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 10-12
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        TERA​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 1012
        +
        static MetricPrefixvalueOf​(String name) +
        Returns the enum constant of this type with the specified name.
        +
        static MetricPrefix[]values​() +
        Returns an array containing the constants of this enum type, in +the order they are declared.
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        YOCTO​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 10-24
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        YOTTA​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 1024
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        ZEPTO​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 10-21
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        ZETTA​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 1021
        +
        + + +
      • +
      +
    • +
    +
    +
    +
      +
    • + + + +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          values

          +
          public static MetricPrefix[] values​()
          +
          Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +
          +for (MetricPrefix c : MetricPrefix.values())
          +    System.out.println(c);
          +
          +
          +
          Returns:
          +
          an array containing the constants of this enum type, in the order they are declared
          +
          +
        • +
        + + + +
          +
        • +

          valueOf

          +
          public static MetricPrefix valueOf​(String name)
          +
          Returns the enum constant of this type with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)
          +
          +
          Parameters:
          +
          name - the name of the enum constant to be returned.
          +
          Returns:
          +
          the enum constant with the specified name
          +
          Throws:
          +
          IllegalArgumentException - if this enum type has no constant with the specified name
          +
          NullPointerException - if the argument is null
          +
          +
        • +
        + + + +
          +
        • +

          YOTTA

          +
          public static <Q extends Quantity<Q>> Unit<Q> YOTTA​(Unit<Q> unit)
          +
          Returns the specified unit multiplied by the factor 1024
          +
          +
          Type Parameters:
          +
          Q - type of the quantity measured by the unit.
          +
          Parameters:
          +
          unit - any unit.
          +
          Returns:
          +
          unit.times(1e24).
          +
          +
        • +
        + + + +
          +
        • +

          ZETTA

          +
          public static <Q extends Quantity<Q>> Unit<Q> ZETTA​(Unit<Q> unit)
          +
          Returns the specified unit multiplied by the factor 1021
          +
          +
          Type Parameters:
          +
          Q - type of the quantity measured by the unit.
          +
          Parameters:
          +
          unit - any unit.
          +
          Returns:
          +
          unit.times(1e21).
          +
          +
        • +
        + + + +
          +
        • +

          EXA

          +
          public static <Q extends Quantity<Q>> Unit<Q> EXA​(Unit<Q> unit)
          +
          Returns the specified unit multiplied by the factor 1018
          +
          +
          Type Parameters:
          +
          Q - type of the quantity measured by the unit.
          +
          Parameters:
          +
          unit - any unit.
          +
          Returns:
          +
          unit.times(1e18).
          +
          +
        • +
        + + + +
          +
        • +

          PETA

          +
          public static <Q extends Quantity<Q>> Unit<Q> PETA​(Unit<Q> unit)
          +
          Returns the specified unit multiplied by the factor 1015
          +
          +
          Type Parameters:
          +
          Q - type of the quantity measured by the unit.
          +
          Parameters:
          +
          unit - any unit.
          +
          Returns:
          +
          unit.times(1e15).
          +
          +
        • +
        + + + +
          +
        • +

          TERA

          +
          public static <Q extends Quantity<Q>> Unit<Q> TERA​(Unit<Q> unit)
          +
          Returns the specified unit multiplied by the factor 1012
          +
          +
          Type Parameters:
          +
          Q - type of the quantity measured by the unit.
          +
          Parameters:
          +
          unit - any unit.
          +
          Returns:
          +
          unit.times(1e12).
          +
          +
        • +
        + + + +
          +
        • +

          GIGA

          +
          public static <Q extends Quantity<Q>> Unit<Q> GIGA​(Unit<Q> unit)
          +
          Returns the specified unit multiplied by the factor 109
          +
          +
          Type Parameters:
          +
          Q - type of the quantity measured by the unit.
          +
          Parameters:
          +
          unit - any unit.
          +
          Returns:
          +
          unit.times(1e9).
          +
          +
        • +
        + + + +
          +
        • +

          MEGA

          +
          public static <Q extends Quantity<Q>> Unit<Q> MEGA​(Unit<Q> unit)
          +
          Returns the specified unit multiplied by the factor 106
          +
          +
          Type Parameters:
          +
          Q - type of the quantity measured by the unit.
          +
          Parameters:
          +
          unit - any unit.
          +
          Returns:
          +
          unit.times(1e6).
          +
          +
        • +
        + + + +
          +
        • +

          KILO

          +
          public static <Q extends Quantity<Q>> Unit<Q> KILO​(Unit<Q> unit)
          +
          Returns the specified unit multiplied by the factor 103
          +
          +
          Type Parameters:
          +
          Q - type of the quantity measured by the unit.
          +
          Parameters:
          +
          unit - any unit.
          +
          Returns:
          +
          unit.times(1e3).
          +
          +
        • +
        + + + +
          +
        • +

          HECTO

          +
          public static <Q extends Quantity<Q>> Unit<Q> HECTO​(Unit<Q> unit)
          +
          Returns the specified unit multiplied by the factor 102
          +
          +
          Type Parameters:
          +
          Q - type of the quantity measured by the unit.
          +
          Parameters:
          +
          unit - any unit.
          +
          Returns:
          +
          unit.times(1e2).
          +
          +
        • +
        + + + +
          +
        • +

          DEKA

          +
          public static <Q extends Quantity<Q>> Unit<Q> DEKA​(Unit<Q> unit)
          +
          Returns the specified unit multiplied by the factor 101
          +
          +
          Type Parameters:
          +
          Q - type of the quantity measured by the unit.
          +
          Parameters:
          +
          unit - any unit.
          +
          Returns:
          +
          unit.times(1e1).
          +
          +
        • +
        + + + +
          +
        • +

          DECI

          +
          public static <Q extends Quantity<Q>> Unit<Q> DECI​(Unit<Q> unit)
          +
          Returns the specified unit multiplied by the factor 10-1
          +
          +
          Type Parameters:
          +
          Q - type of the quantity measured by the unit.
          +
          Parameters:
          +
          unit - any unit.
          +
          Returns:
          +
          unit.times(1e-1).
          +
          +
        • +
        + + + +
          +
        • +

          CENTI

          +
          public static <Q extends Quantity<Q>> Unit<Q> CENTI​(Unit<Q> unit)
          +
          Returns the specified unit multiplied by the factor 10-2
          +
          +
          Type Parameters:
          +
          Q - type of the quantity measured by the unit.
          +
          Parameters:
          +
          unit - any unit.
          +
          Returns:
          +
          unit.times(1e-2).
          +
          +
        • +
        + + + +
          +
        • +

          MILLI

          +
          public static <Q extends Quantity<Q>> Unit<Q> MILLI​(Unit<Q> unit)
          +
          Returns the specified unit multiplied by the factor 10-3
          +
          +
          Type Parameters:
          +
          Q - type of the quantity measured by the unit.
          +
          Parameters:
          +
          unit - any unit.
          +
          Returns:
          +
          unit.times(1e-3).
          +
          +
        • +
        + + + +
          +
        • +

          MICRO

          +
          public static <Q extends Quantity<Q>> Unit<Q> MICRO​(Unit<Q> unit)
          +
          Returns the specified unit multiplied by the factor 10-6
          +
          +
          Type Parameters:
          +
          Q - type of the quantity measured by the unit.
          +
          Parameters:
          +
          unit - any unit.
          +
          Returns:
          +
          unit.times(1e-6).
          +
          +
        • +
        + + + +
          +
        • +

          NANO

          +
          public static <Q extends Quantity<Q>> Unit<Q> NANO​(Unit<Q> unit)
          +
          Returns the specified unit multiplied by the factor 10-9
          +
          +
          Type Parameters:
          +
          Q - type of the quantity measured by the unit.
          +
          Parameters:
          +
          unit - any unit.
          +
          Returns:
          +
          unit.times(1e-9).
          +
          +
        • +
        + + + +
          +
        • +

          PICO

          +
          public static <Q extends Quantity<Q>> Unit<Q> PICO​(Unit<Q> unit)
          +
          Returns the specified unit multiplied by the factor 10-12
          +
          +
          Type Parameters:
          +
          Q - type of the quantity measured by the unit.
          +
          Parameters:
          +
          unit - any unit.
          +
          Returns:
          +
          unit.times(1e-12).
          +
          +
        • +
        + + + +
          +
        • +

          FEMTO

          +
          public static <Q extends Quantity<Q>> Unit<Q> FEMTO​(Unit<Q> unit)
          +
          Returns the specified unit multiplied by the factor 10-15
          +
          +
          Type Parameters:
          +
          Q - type of the quantity measured by the unit.
          +
          Parameters:
          +
          unit - any unit.
          +
          Returns:
          +
          unit.times(1e-15).
          +
          +
        • +
        + + + +
          +
        • +

          ATTO

          +
          public static <Q extends Quantity<Q>> Unit<Q> ATTO​(Unit<Q> unit)
          +
          Returns the specified unit multiplied by the factor 10-18
          +
          +
          Type Parameters:
          +
          Q - type of the quantity measured by the unit.
          +
          Parameters:
          +
          unit - any unit.
          +
          Returns:
          +
          unit.times(1e-18).
          +
          +
        • +
        + + + +
          +
        • +

          ZEPTO

          +
          public static <Q extends Quantity<Q>> Unit<Q> ZEPTO​(Unit<Q> unit)
          +
          Returns the specified unit multiplied by the factor 10-21
          +
          +
          Type Parameters:
          +
          Q - type of the quantity measured by the unit.
          +
          Parameters:
          +
          unit - any unit.
          +
          Returns:
          +
          unit.times(1e-21).
          +
          +
        • +
        + + + +
          +
        • +

          YOCTO

          +
          public static <Q extends Quantity<Q>> Unit<Q> YOCTO​(Unit<Q> unit)
          +
          Returns the specified unit multiplied by the factor 10-24
          +
          +
          Type Parameters:
          +
          Q - type of the quantity measured by the unit.
          +
          Parameters:
          +
          unit - any unit.
          +
          Returns:
          +
          unit.times(1e-24).
          +
          +
        • +
        + + + +
          +
        • +

          getSymbol

          +
          public String getSymbol​()
          +
          Returns the symbol of this prefix.
          +
          +
          Specified by:
          +
          getSymbol in interface Prefix
          +
          Returns:
          +
          this prefix symbol, not null.
          +
          +
        • +
        + + + +
          +
        • +

          getValue

          +
          public Integer getValue​()
          +
          Base part of the associated factor in base^exponent representation. For metric prefix, this is always 10.
          +
          +
          Specified by:
          +
          getValue in interface Prefix
          +
          Returns:
          +
          The prefix value.
          +
          +
        • +
        + + + +
          +
        • +

          getExponent

          +
          public int getExponent​()
          +
          Exponent part of the associated factor in base^exponent representation.
          +
          +
          Specified by:
          +
          getExponent in interface Prefix
          +
          Returns:
          +
          the exponent part of this prefix.
          +
          +
        • +
        + + + +
          +
        • +

          getName

          +
          public String getName​()
          +
          Returns the name of this prefix.
          +
          +
          Specified by:
          +
          getName in interface Prefix
          +
          Returns:
          +
          this prefix name, not null.
          +
          +
        • +
        +
      • +
      +
    • +
    +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/Prefix.html b/site/apidocs/javax/measure/Prefix.html new file mode 100644 index 00000000..ae4f37a4 --- /dev/null +++ b/site/apidocs/javax/measure/Prefix.html @@ -0,0 +1,344 @@ + + + + + +Prefix (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    +
    Package javax.measure
    +

    Interface Prefix

    +
    +
    +
    +
      +
    • +
      +
      All Known Implementing Classes:
      +
      BinaryPrefix, MetricPrefix
      +
      +
      +
      +
      public interface Prefix
      +
      A unit prefix is a specifier or mnemonic that is prepended to units of measurement to indicate multiples or fractions of the units.
      +
      +
      Since:
      +
      2.0
      +
      Version:
      +
      1.3, July 7, 2019
      +
      Author:
      +
      Werner Keil
      +
      See Also:
      +
      Wikipedia: Unit Prefix
      +
      +
    • +
    +
    +
    + +
    +
    +
      +
    • + +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          getName

          +
          String getName​()
          +
          Returns the name of this prefix.
          +
          +
          Returns:
          +
          this prefix name, not null.
          +
          +
        • +
        + + + +
          +
        • +

          getSymbol

          +
          String getSymbol​()
          +
          Returns the symbol of this prefix.
          +
          +
          Returns:
          +
          this prefix symbol, not null.
          +
          +
        • +
        + + + +
          +
        • +

          getValue

          +
          Number getValue​()
          +
          Returns the value of this prefix. If the exponent is different from 1, this value is the base part of the associated + factor in base^exponent representation.
          +
          +
          Returns:
          +
          The prefix value.
          +
          +
        • +
        + + + +
          +
        • +

          getExponent

          +
          int getExponent​()
          +
          Exponent part of the associated factor in base^exponent representation. For different factors, e.g. rational numbers like 1/4 + the exponent is always 1.
          +
          +
          Returns:
          +
          the exponent part of this prefix.
          +
          +
        • +
        +
      • +
      +
    • +
    +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/Quantity.Scale.html b/site/apidocs/javax/measure/Quantity.Scale.html new file mode 100644 index 00000000..9126d70a --- /dev/null +++ b/site/apidocs/javax/measure/Quantity.Scale.html @@ -0,0 +1,390 @@ + + + + + +Quantity.Scale (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    +
    Package javax.measure
    +

    Enum Quantity.Scale

    +
    +
    + +
    + +
    +
    + +
    +
    +
      +
    • + + + +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          values

          +
          public static Quantity.Scale[] values​()
          +
          Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +
          +for (Quantity.Scale c : Quantity.Scale.values())
          +    System.out.println(c);
          +
          +
          +
          Returns:
          +
          an array containing the constants of this enum type, in the order they are declared
          +
          +
        • +
        + + + +
          +
        • +

          valueOf

          +
          public static Quantity.Scale valueOf​(String name)
          +
          Returns the enum constant of this type with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)
          +
          +
          Parameters:
          +
          name - the name of the enum constant to be returned.
          +
          Returns:
          +
          the enum constant with the specified name
          +
          Throws:
          +
          IllegalArgumentException - if this enum type has no constant with the specified name
          +
          NullPointerException - if the argument is null
          +
          +
        • +
        +
      • +
      +
    • +
    +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/Quantity.html b/site/apidocs/javax/measure/Quantity.html new file mode 100644 index 00000000..bc4d5e36 --- /dev/null +++ b/site/apidocs/javax/measure/Quantity.html @@ -0,0 +1,726 @@ + + + + + +Quantity (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    +
    Package javax.measure
    +

    Interface Quantity<Q extends Quantity<Q>>

    +
    +
    +
    +
      +
    • +
      +
      Type Parameters:
      +
      Q - The type of the quantity.
      +
      +
      +
      All Known Subinterfaces:
      +
      Acceleration, AmountOfSubstance, Angle, Area, CatalyticActivity, Dimensionless, ElectricCapacitance, ElectricCharge, ElectricConductance, ElectricCurrent, ElectricInductance, ElectricPotential, ElectricResistance, Energy, Force, Frequency, Illuminance, Length, LuminousFlux, LuminousIntensity, MagneticFlux, MagneticFluxDensity, Mass, Power, Pressure, RadiationDoseAbsorbed, RadiationDoseEffective, Radioactivity, SolidAngle, Speed, Temperature, Time, Volume
      +
      +
      +
      +
      public interface Quantity<Q extends Quantity<Q>>
      +
      Represents a quantitative property of a phenomenon, body, or substance, that + can be quantified by measurement. Mass, + time, distance, heat, and angular separation are among the familiar examples + of quantitative properties. +

      + Unit<Mass> pound = ... Quantity<Length> size = ... Sensor<Temperature>
      + thermometer = ... Vector3D<Speed> aircraftSpeed = ...
      +

      + +

      Arithmetic operations

      + This interface defines some arithmetic operations between Quantity + instances. All implementations shall produce equivalent results for + the same operation applied on equivalent quantities. Two quantities are + equivalent if, after conversion to the same unit of measurement, they have + the same numerical value (ignoring rounding errors). For example 2000 metres + is equivalent to 2 km, but 2°C is not equivalent to 2 K; it is equivalent to + 275.15 K instead. Above requirement applied to addition means that 2°C + 2 K + shall be equivalent to 275.15 K + 2 K. + +

      All operations shall preserve the + basic laws + of algebra, in particular commutativity of addition and + multiplication (A + B = B + A) + and associativity of addition and multiplication (A + + B) + C = A + (B + C). + In order to preserve those algebra laws, this specification requires all + arithmetic operations to execute as is all operands were converted + to system unit before the operation is + carried out, and the result converted back to any compatible unit at + implementation choice. For example 4 cm + 1 inch shall produce any result + equivalent to 0.04 m + 0.0254 m.

      + +

      Implementations are allowed to avoid conversion to system unit if the + result is guaranteed to be equivalent. This is often the case when the + conversion between quantity unit and system unit is only a + scale factor. However this is not + the case for conversions applying an offset or more complex formula. + For example 2°C + 1°C = 274.15°C, not 3°C. This counter-intuitive result + is essential for preserving algebra laws like associativity, and is also + the expected result from a thermodynamic point of view.

      + + apiNote This interface places no restrictions on the mutability of + implementations, however immutability is strongly recommended. All + implementations must be Comparable.
      +
      +
      Since:
      +
      1.0
      +
      Version:
      +
      1.11, April 16, 2019
      +
      Author:
      +
      Jean-Marie Dautelle, Martin + Desruisseaux, Werner Keil, Otavio Santana
      +
      See Also:
      +
      Unit, +Wikipedia: Quantity, +Martin Fowler - + Quantity
      +
      +
    • +
    +
    +
    +
      +
    • + +
        +
      • + + +

        Nested Class Summary

        + + + + + + + + + + + + +
        Nested Classes 
        Modifier and TypeInterfaceDescription
        static class Quantity.Scale +
        The scale of a Quantity, either ABSOLUTE or RELATIVE.
        +
        +
      • +
      + +
        +
      • + + +

        Method Summary

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        All Methods Instance Methods Abstract Methods Default Methods 
        Modifier and TypeMethodDescription
        Quantity<Q>add​(Quantity<Q> addend) +
        Returns the sum of this Quantity with the one specified.
        +
        <T extends Quantity<T>>
        Quantity<T>
        asType​(Class<T> type) +
        Casts this quantity to a parameterized unit of specified nature or throw a + ClassCastException if the dimension of the specified quantity + and this measure unit's dimension do not match.
        +
        Quantity<Q>divide​(Number divisor) +
        Returns the quotient of this Quantity divided by the Number + specified.
        +
        Quantity<?>divide​(Quantity<?> divisor) +
        Returns the quotient of this Quantity divided by the Quantity + specified.
        +
        Quantity.ScalegetScale​() +
        Returns the Scale of this Quantity, if it's absolute or relative.
        +
        Unit<Q>getUnit​() +
        Returns the unit of this Quantity.
        +
        NumbergetValue​() +
        Returns the value of this Quantity.
        +
        Quantity<?>inverse​() +
        Returns a Quantity that is the multiplicative inverse of this + Quantity, having reciprocal value and reciprocal unit as given by + this.getUnit().inverse().
        +
        Quantity<Q>multiply​(Number multiplicand) +
        Returns the product of this Quantity with the Number value + specified.
        +
        Quantity<?>multiply​(Quantity<?> multiplicand) +
        Returns the product of this Quantity with the one specified.
        +
        Quantity<Q>negate​() +
        Returns a Quantity whose value is (-this.getValue()).
        +
        Quantity<Q>subtract​(Quantity<Q> subtrahend) +
        Returns the difference between this Quantity and the one specified.
        +
        Quantity<Q>to​(Unit<Q> unit) +
        Returns this Quantity converted into another (compatible) + Unit.
        +
        default Quantity<Q>toSystemUnit​() +
        Convenient method equivalent to to(getUnit().toSystemUnit()).
        +
        +
      • +
      +
    • +
    +
    +
    +
      +
    • + +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          add

          +
          Quantity<Q> add​(Quantity<Q> addend)
          +
          Returns the sum of this Quantity with the one specified. + The result shall be as if this quantity and the given addend were + converted to system unit before + to be added, and the result converted back to the unit of this + quantity or any other compatible unit at implementation choice.
          +
          +
          Parameters:
          +
          addend - the Quantity to be added.
          +
          Returns:
          +
          this + addend.
          +
          +
        • +
        + + + +
          +
        • +

          subtract

          +
          Quantity<Q> subtract​(Quantity<Q> subtrahend)
          +
          Returns the difference between this Quantity and the one specified. + The result shall be as if this quantity and the given subtrahend were + converted to system unit before + to be subtracted, and the result converted back to the unit of this + quantity or any other compatible unit at implementation choice.
          +
          +
          Parameters:
          +
          subtrahend - the Quantity to be subtracted.
          +
          Returns:
          +
          this - subtrahend.
          +
          +
        • +
        + + + +
          +
        • +

          divide

          +
          Quantity<?> divide​(Quantity<?> divisor)
          +
          Returns the quotient of this Quantity divided by the Quantity + specified. + The result shall be as if this quantity and the given divisor were + converted to system unit before + to be divided, and the result converted back to the unit of this + quantity or any other compatible unit at implementation choice.
          +
          +
          Parameters:
          +
          divisor - the Quantity divisor.
          +
          Returns:
          +
          this / divisor.
          +
          Throws:
          +
          ClassCastException - if the type of an element in the specified operation is + incompatible with this quantity
          +
          +
        • +
        + + + +
          +
        • +

          divide

          +
          Quantity<Q> divide​(Number divisor)
          +
          Returns the quotient of this Quantity divided by the Number + specified. + The result shall be as if this quantity was converted to + system unit before to be divided, + and the result converted back to the unit of this quantity or any + other compatible unit at implementation choice.
          +
          +
          Parameters:
          +
          divisor - the Number divisor.
          +
          Returns:
          +
          this / divisor.
          +
          +
        • +
        + + + +
          +
        • +

          multiply

          +
          Quantity<?> multiply​(Quantity<?> multiplicand)
          +
          Returns the product of this Quantity with the one specified. + The result shall be as if this quantity and the given multiplicand were + converted to system unit before + to be multiplied, and the result converted back to the unit of this + quantity or any other compatible unit at implementation choice.
          +
          +
          Parameters:
          +
          multiplicand - the Quantity multiplicand.
          +
          Returns:
          +
          this * multiplicand.
          +
          Throws:
          +
          ClassCastException - if the type of an element in the specified operation is + incompatible with this quantity
          +
          +
        • +
        + + + +
          +
        • +

          multiply

          +
          Quantity<Q> multiply​(Number multiplicand)
          +
          Returns the product of this Quantity with the Number value + specified. + The result shall be as if this quantity was converted to + system unit before to be multiplied, + and the result converted back to the unit of this quantity or any + other compatible unit at implementation choice.
          +
          +
          Parameters:
          +
          multiplicand - the Number multiplicand.
          +
          Returns:
          +
          this * multiplicand.
          +
          +
        • +
        + + + +
          +
        • +

          to

          +
          Quantity<Q> to​(Unit<Q> unit)
          +
          Returns this Quantity converted into another (compatible) + Unit.
          +
          +
          Parameters:
          +
          unit - the Unit unit in which the returned quantity is stated.
          +
          Returns:
          +
          this quantity or a new quantity equivalent to this quantity stated in the specified unit.
          +
          Throws:
          +
          ArithmeticException - if the result is inexact and the quotient has a non-terminating decimal expansion.
          +
          +
        • +
        + + + +
          +
        • +

          inverse

          +
          Quantity<?> inverse​()
          +
          Returns a Quantity that is the multiplicative inverse of this + Quantity, having reciprocal value and reciprocal unit as given by + this.getUnit().inverse().
          +
          +
          Returns:
          +
          reciprocal Quantity
          +
          See Also:
          +
          Wikipedia: + Multiplicative inverse
          +
          +
        • +
        + + + +
          +
        • +

          negate

          +
          Quantity<Q> negate​()
          +
          Returns a Quantity whose value is (-this.getValue()).
          +
          +
          Returns:
          +
          -this.
          +
          +
        • +
        + + + +
          +
        • +

          asType

          +
          <T extends Quantity<T>> Quantity<T> asType​(Class<T> type)
          +                                    throws ClassCastException
          +
          Casts this quantity to a parameterized unit of specified nature or throw a + ClassCastException if the dimension of the specified quantity + and this measure unit's dimension do not match. For example: +

          + + Quantity<Length> length = Quantities.getQuantity("2 km").asType(Length.class); + or + Quantity<Speed> C = length.multiply(299792458).divide(second).asType(Speed.class); + +

          +
          +
          Type Parameters:
          +
          T - The type of the quantity.
          +
          Parameters:
          +
          type - the quantity class identifying the nature of the quantity.
          +
          Returns:
          +
          this quantity parameterized with the specified type.
          +
          Throws:
          +
          ClassCastException - if the dimension of this unit is different from the specified + quantity dimension.
          +
          UnsupportedOperationException - if the specified quantity class does not have a SI unit for the + quantity.
          +
          See Also:
          +
          Unit.asType(Class)
          +
          +
        • +
        + + + +
          +
        • +

          getValue

          +
          Number getValue​()
          +
          Returns the value of this Quantity.
          +
          +
          Returns:
          +
          a value.
          +
          +
        • +
        + + + +
          +
        • +

          getUnit

          +
          Unit<Q> getUnit​()
          +
          Returns the unit of this Quantity.
          +
          +
          Returns:
          +
          the unit (shall not be null).
          +
          +
        • +
        + + + +
          +
        • +

          toSystemUnit

          +
          default Quantity<Q> toSystemUnit​()
          +
          Convenient method equivalent to to(getUnit().toSystemUnit()).
          +
          +
          Returns:
          +
          this quantity or a new quantity equivalent to this quantity stated in + SI units.
          +
          Throws:
          +
          ArithmeticException - if the result is inexact and the quotient has a non-terminating + decimal expansion.
          +
          +
        • +
        + + + +
          +
        • +

          getScale

          +
          Quantity.Scale getScale​()
          +
          Returns the Scale of this Quantity, if it's absolute or relative.
          +
          +
          Returns:
          +
          the scale, if it's an absolute or relative quantity.
          +
          Since:
          +
          2.0
          +
          See Also:
          +
          Wikipedia: Absolute scale
          +
          +
        • +
        +
      • +
      +
    • +
    +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/UnconvertibleException.html b/site/apidocs/javax/measure/UnconvertibleException.html new file mode 100644 index 00000000..2d33ece0 --- /dev/null +++ b/site/apidocs/javax/measure/UnconvertibleException.html @@ -0,0 +1,360 @@ + + + + + +UnconvertibleException (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    +
    Package javax.measure
    +

    Class UnconvertibleException

    +
    +
    + +
    +
      +
    • +
      +
      All Implemented Interfaces:
      +
      Serializable
      +
      +
      +
      +
      public class UnconvertibleException
      +extends MeasurementException
      +
      Signals that a problem of some sort has occurred due to the impossibility of constructing a converter between two units. For example, the + multiplication of offset units are usually units not convertible to their system unit.
      +
      +
      Version:
      +
      1.0, Aug 8, 2016
      +
      Author:
      +
      Jean-Marie Dautelle, Werner Keil
      +
      See Also:
      +
      Serialized Form
      +
      +
    • +
    +
    +
    + +
    +
    +
      +
    • + +
        +
      • + + +

        Constructor Detail

        + + + +
          +
        • +

          UnconvertibleException

          +
          public UnconvertibleException​(String message)
          +
          Constructs a UnconvertibleException with the given message.
          +
          +
          Parameters:
          +
          message - the detail message, or null if none.
          +
          +
        • +
        + + + +
          +
        • +

          UnconvertibleException

          +
          public UnconvertibleException​(Throwable cause)
          +
          Constructs a UnconvertibleException with the given cause.
          +
          +
          Parameters:
          +
          cause - the cause of this exception, or null if none.
          +
          +
        • +
        + + + +
          +
        • +

          UnconvertibleException

          +
          public UnconvertibleException​(String message,
          +                              Throwable cause)
          +
          Constructs a UnconvertibleException with the given message and cause.
          +
          +
          Parameters:
          +
          message - the detail message, or null if none.
          +
          cause - the cause of this exception, or null if none.
          +
          +
        • +
        +
      • +
      +
    • +
    +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/Unit.html b/site/apidocs/javax/measure/Unit.html new file mode 100644 index 00000000..021cd9cd --- /dev/null +++ b/site/apidocs/javax/measure/Unit.html @@ -0,0 +1,969 @@ + + + + + +Unit (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    +
    Package javax.measure
    +

    Interface Unit<Q extends Quantity<Q>>

    +
    +
    +
    +
      +
    • +
      +
      Type Parameters:
      +
      Q - The type of the quantity measured by this unit.
      +
      +
      +
      +
      public interface Unit<Q extends Quantity<Q>>
      +
      Represents a determinate quantity (as of length, time, heat, or value) adopted as a standard of measurement. + +

      + It is helpful to think of instances of this class as recording the history by which they are created. Thus, for example, the string "g/kg" + (which is a dimensionless unit) would result from invoking the method toString() on a unit that was created by dividing a gram unit by a + kilogram unit. +

      + +

      + This interface supports the multiplication of offsets units. The result is usually a unit not convertible to its system unit. Such units may appear in derivative quantities. For example Celsius per meter is an unit of gradient, which is common in atmospheric + and oceanographic research. +

      + +

      + Units raised at non-integral powers are not supported. For example, LITRE.root(2) raises an ArithmeticException, but + HECTARE.root(2) returns HECTOMETRE (100 metres). +

      + +

      + Unit instances shall be immutable. +

      +
      +
      Since:
      +
      1.0
      +
      Version:
      +
      2.1, May 12, 2019
      +
      Author:
      +
      Jean-Marie Dautelle, Steve Emmerson, Martin Desruisseaux, Werner Keil
      +
      See Also:
      +
      Wikipedia: Units of measurement
      +
      +
    • +
    +
    +
    +
      +
    • + +
        +
      • + + +

        Method Summary

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        All Methods Instance Methods Abstract Methods 
        Modifier and TypeMethodDescription
        Unit<Q>alternate​(String symbol) +
        Returns a system unit equivalent to this unscaled standard unit but used in expressions to distinguish between quantities of a different nature + but of the same dimensions.
        +
        <T extends Quantity<T>>
        Unit<T>
        asType​(Class<T> type) +
        Casts this unit to a parameterized unit of specified nature or throw a ClassCastException if the dimension of the specified quantity and + this unit's dimension do not match.
        +
        Unit<Q>divide​(double divisor) +
        Returns the result of dividing this unit by an approximate divisor.
        +
        Unit<Q>divide​(Number divisor) +
        Returns the result of dividing this unit by a divisor.
        +
        Unit<?>divide​(Unit<?> divisor) +
        Returns the quotient of this unit with the one specified.
        +
        Map<? extends Unit<?>,Integer>getBaseUnits​() +
        Returns the base units and their exponent whose product is this unit, or null if this unit is a base unit (not a product of existing + units).
        +
        UnitConvertergetConverterTo​(Unit<Q> that) +
        Returns a converter of numeric values from this unit to another unit of same type.
        +
        UnitConvertergetConverterToAny​(Unit<?> that) +
        Returns a converter from this unit to the specified unit of type unknown.
        +
        DimensiongetDimension​() +
        Returns the dimension of this unit.
        +
        StringgetName​() +
        Returns the name (if any) of this unit.
        +
        StringgetSymbol​() +
        Returns the symbol (if any) of this unit.
        +
        Unit<Q>getSystemUnit​() +
        Returns the unscaled system unit from which this unit is derived.
        +
        Unit<?>inverse​() +
        Returns the reciprocal (multiplicative inverse) of this unit.
        +
        booleanisCompatible​(Unit<?> that) +
        Indicates if this unit is compatible with the unit specified.
        +
        Unit<Q>multiply​(double multiplier) +
        Returns the result of multiplying this unit by the specified factor.
        +
        Unit<Q>multiply​(Number multiplier) +
        Returns the result of multiplying this unit by the specified factor.
        +
        Unit<?>multiply​(Unit<?> multiplier) +
        Returns the product of this unit with the one specified.
        +
        Unit<?>pow​(int n) +
        Returns an unit raised to the n-th (integer) power of this unit.
        +
        Unit<Q>prefix​(Prefix prefix) +
        Returns a new unit equal to this unit prefixed by the specified prefix.
        +
        Unit<?>root​(int n) +
        Returns an unit that is the n-th (integer) root of this unit.
        +
        Unit<Q>shift​(double offset) +
        Returns the result of setting the origin of the scale of measurement to the given value.
        +
        Unit<Q>shift​(Number offset) +
        Returns the result of setting the origin of the scale of measurement to the given value.
        +
        StringtoString​() +
        Returns a string representation of this unit.
        +
        Unit<Q>transform​(UnitConverter operation) +
        Returns the unit derived from this unit using the specified converter.
        +
        +
      • +
      +
    • +
    +
    +
    +
      +
    • + +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          getSymbol

          +
          String getSymbol​()
          +
          Returns the symbol (if any) of this unit. This method returns null if this unit has no specific symbol associated with.
          +
          +
          Returns:
          +
          this unit symbol, or null if this unit has not specific symbol associated with (e.g. product of units).
          +
          See Also:
          +
          toString(), +UnitFormat
          +
          +
        • +
        + + + +
          +
        • +

          getName

          +
          String getName​()
          +
          Returns the name (if any) of this unit. This method returns null if this unit has no specific name associated with.
          +
          +
          Returns:
          +
          this unit name, or null if this unit has not specific name associated with (e.g. product of units).
          +
          See Also:
          +
          toString(), +UnitFormat
          +
          +
        • +
        + + + +
          +
        • +

          getDimension

          +
          Dimension getDimension​()
          +
          Returns the dimension of this unit. Two units u1 and u2 are compatible if and only if + u1.getDimension().equals(u2.getDimension()).
          +
          +
          Returns:
          +
          the dimension of this unit.
          +
          See Also:
          +
          isCompatible(Unit)
          +
          +
        • +
        + + + +
          +
        • +

          getSystemUnit

          +
          Unit<Q> getSystemUnit​()
          +
          Returns the unscaled system unit from which this unit is derived. System units are either base units, alternate + units or product of rational powers of system units. + +

          + Because the system unit is unique by quantity type, it can be be used to identify the quantity given the unit. For example: +

          + + static boolean isAngularSpeed(Unit<?> unit) {
          +    return unit.getSystemUnit().equals(RADIAN.divide(SECOND));
          + }
          + assert isAngularSpeed(REVOLUTION.divide(MINUTE)); // Returns true.

          +
          +
          +
          Returns:
          +
          the system unit this unit is derived from, or this if this unit is a system unit.
          +
          +
        • +
        + + + +
          +
        • +

          getBaseUnits

          +
          Map<? extends Unit<?>,Integer> getBaseUnits​()
          +
          Returns the base units and their exponent whose product is this unit, or null if this unit is a base unit (not a product of existing + units).
          +
          +
          Returns:
          +
          the base units and their exponent making up this unit.
          +
          +
        • +
        + + + +
          +
        • +

          isCompatible

          +
          boolean isCompatible​(Unit<?> that)
          +
          Indicates if this unit is compatible with the unit specified. Units don't need to be equals to be compatible. For example (assuming ONE + is a dimensionless unit):
          + + + RADIAN.equals(ONE) == false
          + RADIAN.isCompatible(ONE) == true
          +
          +
          +
          Parameters:
          +
          that - the other unit to compare for compatibility.
          +
          Returns:
          +
          this.getDimension().equals(that.getDimension())
          +
          See Also:
          +
          getDimension()
          +
          +
        • +
        + + + +
          +
        • +

          asType

          +
          <T extends Quantity<T>> Unit<T> asType​(Class<T> type)
          +                                throws ClassCastException
          +
          Casts this unit to a parameterized unit of specified nature or throw a ClassCastException if the dimension of the specified quantity and + this unit's dimension do not match. For example:
          + + + Unit<Speed> C = METRE.multiply(299792458).divide(SECOND).asType(Speed.class); +
          +
          +
          Type Parameters:
          +
          T - The type of the quantity measured by the unit.
          +
          Parameters:
          +
          type - the quantity class identifying the nature of the unit.
          +
          Returns:
          +
          this unit parameterized with the specified type.
          +
          Throws:
          +
          ClassCastException - if the dimension of this unit is different from the specified quantity dimension.
          +
          +
        • +
        + + + + + + + + + + + +
          +
        • +

          alternate

          +
          Unit<Q> alternate​(String symbol)
          +
          Returns a system unit equivalent to this unscaled standard unit but used in expressions to distinguish between quantities of a different nature + but of the same dimensions. + +

          + Examples of alternate units: +

          + + + Unit<Angle> RADIAN = ONE.alternate("rad").asType(Angle.class);
          + Unit<Force> NEWTON = METRE.multiply(KILOGRAM).divide(SECOND.pow(2)).alternate("N").asType(Force.class);
          + Unit<Pressure> PASCAL = NEWTON.divide(METRE.pow(2)).alternate("Pa").asType(Pressure.class);
          +
          +
          +
          Parameters:
          +
          symbol - the new symbol for the alternate unit.
          +
          Returns:
          +
          the alternate unit.
          +
          Throws:
          +
          IllegalArgumentException - if this unit is not an unscaled standard unit.
          +
          MeasurementException - if the specified symbol is not valid or is already associated to a different unit.
          +
          +
        • +
        + + + +
          +
        • +

          shift

          +
          Unit<Q> shift​(Number offset)
          +
          Returns the result of setting the origin of the scale of measurement to the given value. The returned unit is convertible with all units that are + convertible with this unit. For example the following code:
          + + + CELSIUS = KELVIN.shift(273.15); + + + creates a new unit where 0°C (the origin of the new unit) is equals to 273.15 K. Converting from the old unit to the new one is equivalent to + subtracting the offset to the value in the old unit.
          +
          +
          Parameters:
          +
          offset - the offset added (expressed in this unit).
          +
          Returns:
          +
          this unit offset by the specified value.
          +
          Since:
          +
          2.0
          +
          +
        • +
        + + + +
          +
        • +

          shift

          +
          Unit<Q> shift​(double offset)
          +
          Returns the result of setting the origin of the scale of measurement to the given value. The returned unit is convertible with all units that are + convertible with this unit. For example the following code:
          + + + CELSIUS = KELVIN.shift(273.15); + + + creates a new unit where 0°C (the origin of the new unit) is equals to 273.15 K. Converting from the old unit to the new one is equivalent to + subtracting the offset to the value in the old unit.
          +
          +
          Parameters:
          +
          offset - the offset added (expressed in this unit).
          +
          Returns:
          +
          this unit offset by the specified value.
          +
          +
        • +
        + + + +
          +
        • +

          multiply

          +
          Unit<Q> multiply​(Number multiplier)
          +
          Returns the result of multiplying this unit by the specified factor. If the factor is an integer value, the multiplication is exact + (recommended). For example:
          + + + FOOT = METRE.multiply(3048).divide(10000); // Exact definition.
          + ELECTRON_MASS = KILOGRAM.multiply(9.10938188e-31); // Approximation. +
          +
          +
          Parameters:
          +
          multiplier - the multiplier
          +
          Returns:
          +
          this unit scaled by the specified multiplier.
          +
          Since:
          +
          2.0
          +
          +
        • +
        + + + +
          +
        • +

          multiply

          +
          Unit<Q> multiply​(double multiplier)
          +
          Returns the result of multiplying this unit by the specified factor. For example:
          + + + FOOT = METRE.multiply(3048).divide(10000); // Exact definition.
          + ELECTRON_MASS = KILOGRAM.multiply(9.10938188e-31); // Approximation. +
          +
          +
          Parameters:
          +
          multiplier - the multiplier
          +
          Returns:
          +
          this unit scaled by the specified multiplier.
          +
          +
        • +
        + + + +
          +
        • +

          multiply

          +
          Unit<?> multiply​(Unit<?> multiplier)
          +
          Returns the product of this unit with the one specified.
          +
          +
          Parameters:
          +
          multiplier - the unit multiplier.
          +
          Returns:
          +
          this * multiplier
          +
          +
        • +
        + + + + + + + +
          +
        • +

          divide

          +
          Unit<Q> divide​(Number divisor)
          +
          Returns the result of dividing this unit by a divisor. If the factor is an integer value, the division is exact. For example:
          + + + GRAM = KILOGRAM.divide(1000); // Exact definition. +
          +
          +
          Parameters:
          +
          divisor - the divisor value.
          +
          Returns:
          +
          this unit divided by the specified divisor.
          +
          Since:
          +
          2.0
          +
          +
        • +
        + + + +
          +
        • +

          divide

          +
          Unit<Q> divide​(double divisor)
          +
          Returns the result of dividing this unit by an approximate divisor. For example:
          + + + GRAM = KILOGRAM.divide(1000d); +
          +
          +
          Parameters:
          +
          divisor - the divisor value.
          +
          Returns:
          +
          this unit divided by the specified divisor.
          +
          +
        • +
        + + + +
          +
        • +

          divide

          +
          Unit<?> divide​(Unit<?> divisor)
          +
          Returns the quotient of this unit with the one specified.
          +
          +
          Parameters:
          +
          divisor - the unit divisor.
          +
          Returns:
          +
          this / divisor
          +
          +
        • +
        + + + +
          +
        • +

          root

          +
          Unit<?> root​(int n)
          +
          Returns an unit that is the n-th (integer) root of this unit. Equivalent to the mathematical expression unit^(1/n).
          +
          +
          Parameters:
          +
          n - an integer giving the root's order as in 'n-th root'
          +
          Returns:
          +
          the n-th root of this unit.
          +
          Throws:
          +
          ArithmeticException - if n == 0 or if this operation would result in an unit with a fractional exponent.
          +
          +
        • +
        + + + +
          +
        • +

          pow

          +
          Unit<?> pow​(int n)
          +
          Returns an unit raised to the n-th (integer) power of this unit. Equivalent to the mathematical expression unit^n.
          +
          +
          Parameters:
          +
          n - the exponent.
          +
          Returns:
          +
          the result of raising this unit to the exponent.
          +
          +
        • +
        + + + +
          +
        • +

          transform

          +
          Unit<Q> transform​(UnitConverter operation)
          +
          Returns the unit derived from this unit using the specified converter. The converter does not need to be linear. For example:
          + +
          +     Unit<Dimensionless> DECIBEL = Unit.ONE.transform(
          +         new LogConverter(10).inverse().concatenate(
          +             new RationalConverter(1, 10)));
          + 
          +
          +
          Parameters:
          +
          operation - the converter from the transformed unit to this unit.
          +
          Returns:
          +
          the unit after the specified transformation.
          +
          +
        • +
        + + + +
          +
        • +

          toString

          +
          String toString​()
          +
          Returns a string representation of this unit. The string representation may be the unit symbol, or may be some + representation of product units, multiplication factor and offset if any. + +

          + The string may be localized at implementation choice by the means of a particular device and platform. +

          +
          +
          Overrides:
          +
          toString in class Object
          +
          Returns:
          +
          the string representation of this unit.
          +
          See Also:
          +
          getSymbol(), +UnitFormat
          +
          +
        • +
        + + + +
          +
        • +

          prefix

          +
          Unit<Q> prefix​(Prefix prefix)
          +
          Returns a new unit equal to this unit prefixed by the specified prefix.
          +
          +
          Parameters:
          +
          prefix - the prefix to apply on this unit.
          +
          Returns:
          +
          the unit with the given prefix applied.
          +
          Since:
          +
          2.0
          +
          +
        • +
        +
      • +
      +
    • +
    +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/UnitConverter.html b/site/apidocs/javax/measure/UnitConverter.html new file mode 100644 index 00000000..fd90e8c5 --- /dev/null +++ b/site/apidocs/javax/measure/UnitConverter.html @@ -0,0 +1,458 @@ + + + + + +UnitConverter (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    +
    Package javax.measure
    +

    Interface UnitConverter

    +
    +
    +
    + +
    +
    +
      +
    • + +
        +
      • + + +

        Method Summary

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        All Methods Instance Methods Abstract Methods 
        Modifier and TypeMethodDescription
        UnitConverterconcatenate​(UnitConverter converter) +
        Concatenates this converter with another converter.
        +
        doubleconvert​(double value) +
        Converts a double value.
        +
        Numberconvert​(Number value) +
        Converts a Number value.
        +
        List<? extends UnitConverter>getConversionSteps​() +
        + Returns the steps of fundamental converters making up this converter or this if the converter is a fundamental converter.
        +
        UnitConverterinverse​() +
        Returns the inverse of this converter.
        +
        booleanisIdentity​() +
        Indicates if this converter is an identity converter.
        +
        booleanisLinear​() +
        Indicates whether this converter represents a (one-dimensional) linear transformation, that is + a linear map (wikipedia) from a one-dimensional + vector space (a scalar) to a one-dimensional vector space.
        +
        +
      • +
      +
    • +
    +
    +
    +
      +
    • + +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          isIdentity

          +
          boolean isIdentity​()
          +
          Indicates if this converter is an identity converter. The identity converter returns its input argument (convert(x) == x). +

          + Note: Identity converters are also always 'linear', see isLinear(). +

          +
          +
          Returns:
          +
          true if this converter is an identity converter.
          +
          +
        • +
        + + + +
          +
        • +

          isLinear

          +
          boolean isLinear​()
          +
          Indicates whether this converter represents a (one-dimensional) linear transformation, that is + a linear map (wikipedia) from a one-dimensional + vector space (a scalar) to a one-dimensional vector space. Typically from 'R' to 'R', with 'R' the + real numbers. + +

          + Given such a 'linear' converter 'A', let 'u', 'v' and 'r' be arbitrary numbers, then the following + must hold by definition: + +

            +
          • A(u + v) == A(u) + A(v)
          • +
          • A(r * u) == r * A(u)
          • +
          + +

          + Given a second 'linear' converter 'B', commutativity of composition follows by above definition: + +

            +
          • (A o B) (u) == (B o A) (u)
          • +
          + + In other words, two 'linear' converters do have the property that A(B(u)) == B(A(u)), meaning + for 'A' and 'B' the order of their composition does not matter. Expressed as Java code: + +

          +A.concatenate(B).convert(u) == B.concatenate(A).convert(u) +

          + + Note: For composing UnitConverters see also concatenate(UnitConverter).
          +
          +
          Returns:
          +
          true if this converter represents a linear transformation; + false otherwise.
          +
          +
        • +
        + + + +
          +
        • +

          inverse

          +
          UnitConverter inverse​()
          +
          Returns the inverse of this converter. If x is a valid value, then x == inverse().convert(convert(x)) to within the accuracy of + computer arithmetic.
          +
          +
          Returns:
          +
          the inverse of this converter.
          +
          +
        • +
        + + + +
          +
        • +

          convert

          +
          Number convert​(Number value)
          +
          Converts a Number value.
          +
          +
          Parameters:
          +
          value - the Number value to convert.
          +
          Returns:
          +
          the Number value after conversion.
          +
          +
        • +
        + + + +
          +
        • +

          convert

          +
          double convert​(double value)
          +
          Converts a double value.
          +
          +
          Parameters:
          +
          value - the numeric value to convert.
          +
          Returns:
          +
          the double value after conversion.
          +
          +
        • +
        + + + +
          +
        • +

          concatenate

          +
          UnitConverter concatenate​(UnitConverter converter)
          +
          Concatenates this converter with another converter. The resulting converter is equivalent to first converting by the specified converter (right + converter), and then converting by this converter (left converter).
          +
          +
          Parameters:
          +
          converter - the other converter to concatenate with this converter.
          +
          Returns:
          +
          the concatenation of this converter with the other converter.
          +
          +
        • +
        + + + +
          +
        • +

          getConversionSteps

          +
          List<? extends UnitConverter> getConversionSteps​()
          +

          + Returns the steps of fundamental converters making up this converter or this if the converter is a fundamental converter. +

          +

          + For example, converter1.getConversionSteps() returns converter1 while + converter1.concatenate(converter2).getConversionSteps() returns converter1, converter2. +

          +
          +
          Returns:
          +
          the list of fundamental converters which concatenated make up this converter.
          +
          +
        • +
        +
      • +
      +
    • +
    +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/class-use/BinaryPrefix.html b/site/apidocs/javax/measure/class-use/BinaryPrefix.html new file mode 100644 index 00000000..cd408980 --- /dev/null +++ b/site/apidocs/javax/measure/class-use/BinaryPrefix.html @@ -0,0 +1,208 @@ + + + + + +Uses of Class javax.measure.BinaryPrefix (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Class
    javax.measure.BinaryPrefix

    +
    +
    +
      +
    • + + + + + + + + + + + + +
      Packages that use BinaryPrefix 
      PackageDescription
      javax.measure +
      Specifies Java packages for the programmatic, type safe handling + of quantities and their expression as values of units.
      +
      +
    • +
    • + +
    • +
    +
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/class-use/Dimension.html b/site/apidocs/javax/measure/class-use/Dimension.html new file mode 100644 index 00000000..725bcf48 --- /dev/null +++ b/site/apidocs/javax/measure/class-use/Dimension.html @@ -0,0 +1,298 @@ + + + + + +Uses of Interface javax.measure.Dimension (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Interface
    javax.measure.Dimension

    +
    +
    +
      +
    • + + + + + + + + + + + + + + + + +
      Packages that use Dimension 
      PackageDescription
      javax.measure +
      Specifies Java packages for the programmatic, type safe handling + of quantities and their expression as values of units.
      +
      javax.measure.spi +
      [OPTIONAL] The Units of Measurement SPI.
      +
      +
    • +
    • + +
    • +
    +
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/class-use/IncommensurableException.html b/site/apidocs/javax/measure/class-use/IncommensurableException.html new file mode 100644 index 00000000..302a2356 --- /dev/null +++ b/site/apidocs/javax/measure/class-use/IncommensurableException.html @@ -0,0 +1,200 @@ + + + + + +Uses of Class javax.measure.IncommensurableException (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Class
    javax.measure.IncommensurableException

    +
    +
    + +
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/class-use/MeasurementException.html b/site/apidocs/javax/measure/class-use/MeasurementException.html new file mode 100644 index 00000000..9d14343c --- /dev/null +++ b/site/apidocs/javax/measure/class-use/MeasurementException.html @@ -0,0 +1,237 @@ + + + + + +Uses of Class javax.measure.MeasurementException (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Class
    javax.measure.MeasurementException

    +
    +
    + +
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/class-use/MetricPrefix.html b/site/apidocs/javax/measure/class-use/MetricPrefix.html new file mode 100644 index 00000000..dd7aa46c --- /dev/null +++ b/site/apidocs/javax/measure/class-use/MetricPrefix.html @@ -0,0 +1,208 @@ + + + + + +Uses of Class javax.measure.MetricPrefix (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Class
    javax.measure.MetricPrefix

    +
    +
    +
      +
    • + + + + + + + + + + + + +
      Packages that use MetricPrefix 
      PackageDescription
      javax.measure +
      Specifies Java packages for the programmatic, type safe handling + of quantities and their expression as values of units.
      +
      +
    • +
    • + +
    • +
    +
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/class-use/Prefix.html b/site/apidocs/javax/measure/class-use/Prefix.html new file mode 100644 index 00000000..0006aa84 --- /dev/null +++ b/site/apidocs/javax/measure/class-use/Prefix.html @@ -0,0 +1,253 @@ + + + + + +Uses of Interface javax.measure.Prefix (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Interface
    javax.measure.Prefix

    +
    +
    +
      +
    • + + + + + + + + + + + + + + + + +
      Packages that use Prefix 
      PackageDescription
      javax.measure +
      Specifies Java packages for the programmatic, type safe handling + of quantities and their expression as values of units.
      +
      javax.measure.spi +
      [OPTIONAL] The Units of Measurement SPI.
      +
      +
    • +
    • +
        +
      • + + +

        Uses of Prefix in javax.measure

        + + + + + + + + + + + + + + + + + + + +
        Classes in javax.measure that implement Prefix 
        Modifier and TypeClassDescription
        class BinaryPrefix +
        Provides support for common binary prefixes to be used by units.
        +
        class MetricPrefix +
        Provides support for the 20 prefixes used in the metric system (decimal multiples and submultiples of units).
        +
        + + + + + + + + + + + + + + +
        Methods in javax.measure with parameters of type Prefix 
        Modifier and TypeMethodDescription
        Unit<Q>Unit.prefix​(Prefix prefix) +
        Returns a new unit equal to this unit prefixed by the specified prefix.
        +
        +
      • +
      • + + +

        Uses of Prefix in javax.measure.spi

        + + + + + + + + + + + + + + +
        Methods in javax.measure.spi with type parameters of type Prefix 
        Modifier and TypeMethodDescription
        default <P extends Prefix>
        Set<P>
        SystemOfUnitsService.getPrefixes​(Class<P> prefixType) +
        Returns a Set containing the values of a particular Prefix + type.
        +
        +
      • +
      +
    • +
    +
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/class-use/Quantity.Scale.html b/site/apidocs/javax/measure/class-use/Quantity.Scale.html new file mode 100644 index 00000000..d6463b1f --- /dev/null +++ b/site/apidocs/javax/measure/class-use/Quantity.Scale.html @@ -0,0 +1,245 @@ + + + + + +Uses of Class javax.measure.Quantity.Scale (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Class
    javax.measure.Quantity.Scale

    +
    +
    + +
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/class-use/Quantity.html b/site/apidocs/javax/measure/class-use/Quantity.html new file mode 100644 index 00000000..c60fee94 --- /dev/null +++ b/site/apidocs/javax/measure/class-use/Quantity.html @@ -0,0 +1,958 @@ + + + + + +Uses of Interface javax.measure.Quantity (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Interface
    javax.measure.Quantity

    +
    +
    +
      +
    • + + + + + + + + + + + + + + + + + + + + + + + + +
      Packages that use Quantity 
      PackageDescription
      javax.measure +
      Specifies Java packages for the programmatic, type safe handling + of quantities and their expression as values of units.
      +
      javax.measure.format +
      [OPTIONAL] Provides Formatting and Parsing functionality for units, quantities, dimensions or their textual representation.
      +
      javax.measure.quantity +
      [OPTIONAL] Provides quantitative properties or attributes of thing such as + mass, time, distance, heat, and angular separation.
      +
      javax.measure.spi +
      [OPTIONAL] The Units of Measurement SPI.
      +
      +
    • +
    • +
        +
      • + + +

        Uses of Quantity in javax.measure

        + + + + + + + + + + + + + + + + + + + +
        Classes in javax.measure with type parameters of type Quantity 
        Modifier and TypeInterfaceDescription
        interface Quantity<Q extends Quantity<Q>> +
        Represents a quantitative property of a phenomenon, body, or substance, that + can be quantified by measurement.
        +
        interface Unit<Q extends Quantity<Q>> +
        Represents a determinate quantity (as of length, time, heat, or value) adopted as a standard of measurement.
        +
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        Methods in javax.measure with type parameters of type Quantity 
        Modifier and TypeMethodDescription
        <T extends Quantity<T>>
        Quantity<T>
        Quantity.asType​(Class<T> type) +
        Casts this quantity to a parameterized unit of specified nature or throw a + ClassCastException if the dimension of the specified quantity + and this measure unit's dimension do not match.
        +
        <T extends Quantity<T>>
        Unit<T>
        Unit.asType​(Class<T> type) +
        Casts this unit to a parameterized unit of specified nature or throw a ClassCastException if the dimension of the specified quantity and + this unit's dimension do not match.
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        MetricPrefix.ATTO​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 10-18
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        MetricPrefix.CENTI​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 10-2
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        MetricPrefix.DECI​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 10-1
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        MetricPrefix.DEKA​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 101
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        MetricPrefix.EXA​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 1018
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        BinaryPrefix.EXBI​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 10246 (binary prefix).
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        MetricPrefix.FEMTO​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 10-15
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        BinaryPrefix.GIBI​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 10243 (binary prefix).
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        MetricPrefix.GIGA​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 109
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        MetricPrefix.HECTO​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 102
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        BinaryPrefix.KIBI​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 1024 (binary prefix).
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        MetricPrefix.KILO​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 103
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        BinaryPrefix.MEBI​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 10242 (binary prefix).
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        MetricPrefix.MEGA​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 106
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        MetricPrefix.MICRO​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 10-6
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        MetricPrefix.MILLI​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 10-3
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        MetricPrefix.NANO​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 10-9
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        BinaryPrefix.PEBI​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 10245 (binary prefix).
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        MetricPrefix.PETA​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 1015
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        MetricPrefix.PICO​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 10-12
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        BinaryPrefix.TEBI​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 10244 (binary prefix).
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        MetricPrefix.TERA​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 1012
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        BinaryPrefix.YOBI​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 10248 (binary prefix).
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        MetricPrefix.YOCTO​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 10-24
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        MetricPrefix.YOTTA​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 1024
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        BinaryPrefix.ZEBI​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 10247 (binary prefix).
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        MetricPrefix.ZEPTO​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 10-21
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        MetricPrefix.ZETTA​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 1021
        +
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        Methods in javax.measure that return Quantity 
        Modifier and TypeMethodDescription
        Quantity<Q>Quantity.add​(Quantity<Q> addend) +
        Returns the sum of this Quantity with the one specified.
        +
        <T extends Quantity<T>>
        Quantity<T>
        Quantity.asType​(Class<T> type) +
        Casts this quantity to a parameterized unit of specified nature or throw a + ClassCastException if the dimension of the specified quantity + and this measure unit's dimension do not match.
        +
        Quantity<Q>Quantity.divide​(Number divisor) +
        Returns the quotient of this Quantity divided by the Number + specified.
        +
        Quantity<?>Quantity.divide​(Quantity<?> divisor) +
        Returns the quotient of this Quantity divided by the Quantity + specified.
        +
        Quantity<?>Quantity.inverse​() +
        Returns a Quantity that is the multiplicative inverse of this + Quantity, having reciprocal value and reciprocal unit as given by + this.getUnit().inverse().
        +
        Quantity<Q>Quantity.multiply​(Number multiplicand) +
        Returns the product of this Quantity with the Number value + specified.
        +
        Quantity<?>Quantity.multiply​(Quantity<?> multiplicand) +
        Returns the product of this Quantity with the one specified.
        +
        Quantity<Q>Quantity.negate​() +
        Returns a Quantity whose value is (-this.getValue()).
        +
        Quantity<Q>Quantity.subtract​(Quantity<Q> subtrahend) +
        Returns the difference between this Quantity and the one specified.
        +
        Quantity<Q>Quantity.to​(Unit<Q> unit) +
        Returns this Quantity converted into another (compatible) + Unit.
        +
        default Quantity<Q>Quantity.toSystemUnit​() +
        Convenient method equivalent to to(getUnit().toSystemUnit()).
        +
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        Methods in javax.measure with parameters of type Quantity 
        Modifier and TypeMethodDescription
        Quantity<Q>Quantity.add​(Quantity<Q> addend) +
        Returns the sum of this Quantity with the one specified.
        +
        Quantity<?>Quantity.divide​(Quantity<?> divisor) +
        Returns the quotient of this Quantity divided by the Quantity + specified.
        +
        Quantity<?>Quantity.multiply​(Quantity<?> multiplicand) +
        Returns the product of this Quantity with the one specified.
        +
        Quantity<Q>Quantity.subtract​(Quantity<Q> subtrahend) +
        Returns the difference between this Quantity and the one specified.
        +
        +
      • +
      • + + +

        Uses of Quantity in javax.measure.format

        + + + + + + + + + + + + + + + + + + + +
        Methods in javax.measure.format that return Quantity 
        Modifier and TypeMethodDescription
        Quantity<?>QuantityFormat.parse​(CharSequence csq) +
        Parses a portion of the specified CharSequence from the specified position to produce a Quantity.
        +
        Quantity<?>QuantityFormat.parse​(CharSequence csq, + ParsePosition pos) +
        Parses a portion of the specified CharSequence from the specified position to produce a Quantity.
        +
        + + + + + + + + + + + + + + + + + + + +
        Methods in javax.measure.format with parameters of type Quantity 
        Modifier and TypeMethodDescription
        StringQuantityFormat.format​(Quantity<?> quantity) +
        Formats the specified Quantity.
        +
        AppendableQuantityFormat.format​(Quantity<?> quantity, + Appendable destination) +
        Formats the specified quantity into an Appendable.
        +
        +
      • +
      • + + +

        Uses of Quantity in javax.measure.quantity

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        Subinterfaces of Quantity in javax.measure.quantity 
        Modifier and TypeInterfaceDescription
        interface Acceleration +
        Rate of change of velocity with respect to time.
        +
        interface AmountOfSubstance +
        Number of elementary entities (molecules, for example) of a substance.
        +
        interface Angle +
        Figure formed by two lines diverging from a common point.
        +
        interface Area +
        Extent of a planar region or of the surface of a solid measured in square units.
        +
        interface CatalyticActivity +
        Catalytic activity.
        +
        interface Dimensionless +
        Dimensionless quantity.
        +
        interface ElectricCapacitance +
        Electric capacitance.
        +
        interface ElectricCharge +
        Electric charge.
        +
        interface ElectricConductance +
        Electric conductance.
        +
        interface ElectricCurrent +
        Amount of electric charge flowing past a specified circuit point per unit time.
        +
        interface ElectricInductance +
        Electric inductance.
        +
        interface ElectricPotential +
        Electric potential or electromotive force.
        +
        interface ElectricResistance +
        Electric resistance.
        +
        interface Energy +
        Capacity of a physical system to do work.
        +
        interface Force +
        Quantity that tends to produce an acceleration of a body in the direction of its application.
        +
        interface Frequency +
        Number of times a specified phenomenon occurs within a specified interval.
        +
        interface Illuminance +
        Illuminance.
        +
        interface Length +
        Extent of something along its greatest dimension or the extent of space between two objects or places.
        +
        interface LuminousFlux +
        Luminous flux.
        +
        interface LuminousIntensity +
        Luminous flux density per solid angle as measured in a given direction relative to the emitting source.
        +
        interface MagneticFlux +
        Magnetic flux.
        +
        interface MagneticFluxDensity +
        Magnetic flux density.
        +
        interface Mass +
        Measure of the quantity of matter that a body or an object contains.
        +
        interface Power +
        Rate at which work is done.
        +
        interface Pressure +
        Force applied uniformly over a surface.
        +
        interface RadiationDoseAbsorbed +
        Amount of energy deposited per unit of mass.
        +
        interface RadiationDoseEffective +
        Effective (or "equivalent") dose of radiation received by a human or some other living organism.
        +
        interface Radioactivity +
        Radioactive activity.
        +
        interface SolidAngle +
        Angle formed by three or more planes intersecting at a common point.
        +
        interface Speed +
        Distance traveled divided by the time of travel.
        +
        interface Temperature +
        Degree of hotness or coldness of a body or an environment.
        +
        interface Time +
        Period of existence or persistence.
        +
        interface Volume +
        Amount of space occupied by a three-dimensional object or region of space.
        +
        +
      • +
      • + + +

        Uses of Quantity in javax.measure.spi

        + + + + + + + + + + + + + + +
        Classes in javax.measure.spi with type parameters of type Quantity 
        Modifier and TypeInterfaceDescription
        interface QuantityFactory<Q extends Quantity<Q>> +
        Represents a factory that accepts Number and Unit arguments to create Quantity results.
        +
        + + + + + + + + + + + + + + + + + + + +
        Methods in javax.measure.spi with type parameters of type Quantity 
        Modifier and TypeMethodDescription
        abstract <Q extends Quantity<Q>>
        QuantityFactory<Q>
        ServiceProvider.getQuantityFactory​(Class<Q> quantity) +
        Returns a factory for the given Quantity type.
        +
        <Q extends Quantity<Q>>
        Unit<Q>
        SystemOfUnits.getUnit​(Class<Q> quantityType) +
        Returns the default unit for the specified quantity or null if none is defined for the given quantity in this unit system.
        +
        + + + + + + + + + + + + + + + + + + + +
        Methods in javax.measure.spi that return Quantity 
        Modifier and TypeMethodDescription
        Quantity<Q>QuantityFactory.create​(Number value, + Unit<Q> unit) +
        Returns the quantity for the specified number stated in the specified unit.
        +
        Quantity<Q>QuantityFactory.create​(Number value, + Unit<Q> unit, + Quantity.Scale scale) +
        Returns the quantity for the specified number stated in the specified unit and scale.
        +
        +
      • +
      +
    • +
    +
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/class-use/UnconvertibleException.html b/site/apidocs/javax/measure/class-use/UnconvertibleException.html new file mode 100644 index 00000000..0d4a7e5e --- /dev/null +++ b/site/apidocs/javax/measure/class-use/UnconvertibleException.html @@ -0,0 +1,207 @@ + + + + + +Uses of Class javax.measure.UnconvertibleException (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Class
    javax.measure.UnconvertibleException

    +
    +
    + +
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/class-use/Unit.html b/site/apidocs/javax/measure/class-use/Unit.html new file mode 100644 index 00000000..ba718d83 --- /dev/null +++ b/site/apidocs/javax/measure/class-use/Unit.html @@ -0,0 +1,939 @@ + + + + + +Uses of Interface javax.measure.Unit (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Interface
    javax.measure.Unit

    +
    +
    +
      +
    • + + + + + + + + + + + + + + + + + + + + +
      Packages that use Unit 
      PackageDescription
      javax.measure +
      Specifies Java packages for the programmatic, type safe handling + of quantities and their expression as values of units.
      +
      javax.measure.format +
      [OPTIONAL] Provides Formatting and Parsing functionality for units, quantities, dimensions or their textual representation.
      +
      javax.measure.spi +
      [OPTIONAL] The Units of Measurement SPI.
      +
      +
    • +
    • +
        +
      • + + +

        Uses of Unit in javax.measure

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        Methods in javax.measure that return Unit 
        Modifier and TypeMethodDescription
        Unit<Q>Unit.alternate​(String symbol) +
        Returns a system unit equivalent to this unscaled standard unit but used in expressions to distinguish between quantities of a different nature + but of the same dimensions.
        +
        <T extends Quantity<T>>
        Unit<T>
        Unit.asType​(Class<T> type) +
        Casts this unit to a parameterized unit of specified nature or throw a ClassCastException if the dimension of the specified quantity and + this unit's dimension do not match.
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        MetricPrefix.ATTO​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 10-18
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        MetricPrefix.CENTI​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 10-2
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        MetricPrefix.DECI​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 10-1
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        MetricPrefix.DEKA​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 101
        +
        Unit<Q>Unit.divide​(double divisor) +
        Returns the result of dividing this unit by an approximate divisor.
        +
        Unit<Q>Unit.divide​(Number divisor) +
        Returns the result of dividing this unit by a divisor.
        +
        Unit<?>Unit.divide​(Unit<?> divisor) +
        Returns the quotient of this unit with the one specified.
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        MetricPrefix.EXA​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 1018
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        BinaryPrefix.EXBI​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 10246 (binary prefix).
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        MetricPrefix.FEMTO​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 10-15
        +
        Unit<Q>Unit.getSystemUnit​() +
        Returns the unscaled system unit from which this unit is derived.
        +
        Unit<Q>Quantity.getUnit​() +
        Returns the unit of this Quantity.
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        BinaryPrefix.GIBI​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 10243 (binary prefix).
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        MetricPrefix.GIGA​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 109
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        MetricPrefix.HECTO​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 102
        +
        Unit<?>Unit.inverse​() +
        Returns the reciprocal (multiplicative inverse) of this unit.
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        BinaryPrefix.KIBI​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 1024 (binary prefix).
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        MetricPrefix.KILO​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 103
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        BinaryPrefix.MEBI​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 10242 (binary prefix).
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        MetricPrefix.MEGA​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 106
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        MetricPrefix.MICRO​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 10-6
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        MetricPrefix.MILLI​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 10-3
        +
        Unit<Q>Unit.multiply​(double multiplier) +
        Returns the result of multiplying this unit by the specified factor.
        +
        Unit<Q>Unit.multiply​(Number multiplier) +
        Returns the result of multiplying this unit by the specified factor.
        +
        Unit<?>Unit.multiply​(Unit<?> multiplier) +
        Returns the product of this unit with the one specified.
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        MetricPrefix.NANO​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 10-9
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        BinaryPrefix.PEBI​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 10245 (binary prefix).
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        MetricPrefix.PETA​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 1015
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        MetricPrefix.PICO​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 10-12
        +
        Unit<?>Unit.pow​(int n) +
        Returns an unit raised to the n-th (integer) power of this unit.
        +
        Unit<Q>Unit.prefix​(Prefix prefix) +
        Returns a new unit equal to this unit prefixed by the specified prefix.
        +
        Unit<?>Unit.root​(int n) +
        Returns an unit that is the n-th (integer) root of this unit.
        +
        Unit<Q>Unit.shift​(double offset) +
        Returns the result of setting the origin of the scale of measurement to the given value.
        +
        Unit<Q>Unit.shift​(Number offset) +
        Returns the result of setting the origin of the scale of measurement to the given value.
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        BinaryPrefix.TEBI​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 10244 (binary prefix).
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        MetricPrefix.TERA​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 1012
        +
        Unit<Q>Unit.transform​(UnitConverter operation) +
        Returns the unit derived from this unit using the specified converter.
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        BinaryPrefix.YOBI​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 10248 (binary prefix).
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        MetricPrefix.YOCTO​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 10-24
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        MetricPrefix.YOTTA​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 1024
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        BinaryPrefix.ZEBI​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 10247 (binary prefix).
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        MetricPrefix.ZEPTO​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 10-21
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        MetricPrefix.ZETTA​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 1021
        +
        + + + + + + + + + + + + + + +
        Methods in javax.measure that return types with arguments of type Unit 
        Modifier and TypeMethodDescription
        Map<? extends Unit<?>,Integer>Unit.getBaseUnits​() +
        Returns the base units and their exponent whose product is this unit, or null if this unit is a base unit (not a product of existing + units).
        +
        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        Methods in javax.measure with parameters of type Unit 
        Modifier and TypeMethodDescription
        static <Q extends Quantity<Q>>
        Unit<Q>
        MetricPrefix.ATTO​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 10-18
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        MetricPrefix.CENTI​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 10-2
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        MetricPrefix.DECI​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 10-1
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        MetricPrefix.DEKA​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 101
        +
        Unit<?>Unit.divide​(Unit<?> divisor) +
        Returns the quotient of this unit with the one specified.
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        MetricPrefix.EXA​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 1018
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        BinaryPrefix.EXBI​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 10246 (binary prefix).
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        MetricPrefix.FEMTO​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 10-15
        +
        UnitConverterUnit.getConverterTo​(Unit<Q> that) +
        Returns a converter of numeric values from this unit to another unit of same type.
        +
        UnitConverterUnit.getConverterToAny​(Unit<?> that) +
        Returns a converter from this unit to the specified unit of type unknown.
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        BinaryPrefix.GIBI​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 10243 (binary prefix).
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        MetricPrefix.GIGA​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 109
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        MetricPrefix.HECTO​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 102
        +
        booleanUnit.isCompatible​(Unit<?> that) +
        Indicates if this unit is compatible with the unit specified.
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        BinaryPrefix.KIBI​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 1024 (binary prefix).
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        MetricPrefix.KILO​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 103
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        BinaryPrefix.MEBI​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 10242 (binary prefix).
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        MetricPrefix.MEGA​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 106
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        MetricPrefix.MICRO​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 10-6
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        MetricPrefix.MILLI​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 10-3
        +
        Unit<?>Unit.multiply​(Unit<?> multiplier) +
        Returns the product of this unit with the one specified.
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        MetricPrefix.NANO​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 10-9
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        BinaryPrefix.PEBI​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 10245 (binary prefix).
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        MetricPrefix.PETA​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 1015
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        MetricPrefix.PICO​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 10-12
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        BinaryPrefix.TEBI​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 10244 (binary prefix).
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        MetricPrefix.TERA​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 1012
        +
        Quantity<Q>Quantity.to​(Unit<Q> unit) +
        Returns this Quantity converted into another (compatible) + Unit.
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        BinaryPrefix.YOBI​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 10248 (binary prefix).
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        MetricPrefix.YOCTO​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 10-24
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        MetricPrefix.YOTTA​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 1024
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        BinaryPrefix.ZEBI​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 10247 (binary prefix).
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        MetricPrefix.ZEPTO​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 10-21
        +
        static <Q extends Quantity<Q>>
        Unit<Q>
        MetricPrefix.ZETTA​(Unit<Q> unit) +
        Returns the specified unit multiplied by the factor 1021
        +
        +
      • +
      • + + +

        Uses of Unit in javax.measure.format

        + + + + + + + + + + + + + + + + + + + +
        Methods in javax.measure.format that return Unit 
        Modifier and TypeMethodDescription
        Unit<?>UnitFormat.parse​(CharSequence csq) +
        Parses the text into an instance of Unit.
        +
        Unit<?>UnitFormat.parse​(CharSequence csq, + ParsePosition pos) +
        Parses a portion of the specified CharSequence from the specified position to produce a Unit.
        +
        + + + + + + + + + + + + + + + + + + + + + + + + +
        Methods in javax.measure.format with parameters of type Unit 
        Modifier and TypeMethodDescription
        StringUnitFormat.format​(Unit<?> unit) +
        Formats the specified Unit.
        +
        AppendableUnitFormat.format​(Unit<?> unit, + Appendable appendable) +
        Formats the specified Unit.
        +
        voidUnitFormat.label​(Unit<?> unit, + String label) +
        Attaches a system-wide label to the specified unit.
        +
        +
      • +
      • + + +

        Uses of Unit in javax.measure.spi

        + + + + + + + + + + + + + + + + + + + + + + + + +
        Methods in javax.measure.spi that return Unit 
        Modifier and TypeMethodDescription
        Unit<Q>QuantityFactory.getSystemUnit​() +
        Returns the system unit for quantities produced by this factory or null if unknown.
        +
        <Q extends Quantity<Q>>
        Unit<Q>
        SystemOfUnits.getUnit​(Class<Q> quantityType) +
        Returns the default unit for the specified quantity or null if none is defined for the given quantity in this unit system.
        +
        Unit<?>SystemOfUnits.getUnit​(String string) +
        Returns a unit with the given string representation or null if none is found in this unit system.
        +
        + + + + + + + + + + + + + + + + + + + +
        Methods in javax.measure.spi that return types with arguments of type Unit 
        Modifier and TypeMethodDescription
        Set<? extends Unit<?>>SystemOfUnits.getUnits​() +
        Returns a read only view over the units explicitly defined by this system.
        +
        Set<? extends Unit<?>>SystemOfUnits.getUnits​(Dimension dimension) +
        Returns the units defined in this system having the specified dimension (convenience method).
        +
        + + + + + + + + + + + + + + + + + + + +
        Methods in javax.measure.spi with parameters of type Unit 
        Modifier and TypeMethodDescription
        Quantity<Q>QuantityFactory.create​(Number value, + Unit<Q> unit) +
        Returns the quantity for the specified number stated in the specified unit.
        +
        Quantity<Q>QuantityFactory.create​(Number value, + Unit<Q> unit, + Quantity.Scale scale) +
        Returns the quantity for the specified number stated in the specified unit and scale.
        +
        +
      • +
      +
    • +
    +
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/class-use/UnitConverter.html b/site/apidocs/javax/measure/class-use/UnitConverter.html new file mode 100644 index 00000000..a961045f --- /dev/null +++ b/site/apidocs/javax/measure/class-use/UnitConverter.html @@ -0,0 +1,263 @@ + + + + + +Uses of Interface javax.measure.UnitConverter (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Interface
    javax.measure.UnitConverter

    +
    +
    + +
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/format/MeasurementParseException.html b/site/apidocs/javax/measure/format/MeasurementParseException.html new file mode 100644 index 00000000..c4c86790 --- /dev/null +++ b/site/apidocs/javax/measure/format/MeasurementParseException.html @@ -0,0 +1,458 @@ + + + + + +MeasurementParseException (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Class MeasurementParseException

    +
    +
    + +
    +
      +
    • +
      +
      All Implemented Interfaces:
      +
      Serializable
      +
      +
      +
      Direct Known Subclasses:
      +
      ParserException
      +
      +
      +
      +
      public class MeasurementParseException
      +extends MeasurementException
      +
      Signals that an error has been reached unexpectedly while parsing.
      +
      +
      Since:
      +
      2.0
      +
      Version:
      +
      1.1, March 27, 2018
      +
      Author:
      +
      Werner Keil
      +
      See Also:
      +
      Serialized Form
      +
      +
    • +
    +
    +
    + +
    +
    +
      +
    • + +
        +
      • + + +

        Constructor Detail

        + + + +
          +
        • +

          MeasurementParseException

          +
          public MeasurementParseException​(String message,
          +                                 CharSequence parsedData,
          +                                 int position)
          +
          Constructs a MeasurementParseException with the specified detail message, parsed text and index. A detail message is a String that describes + this particular exception.
          +
          +
          Parameters:
          +
          message - the detail message
          +
          parsedData - the parsed text, should not be null
          +
          position - the position where the error was found while parsing.
          +
          +
        • +
        + + + +
          +
        • +

          MeasurementParseException

          +
          public MeasurementParseException​(CharSequence parsedData,
          +                                 int position)
          +
          Constructs a MeasurementParseException with the parsed text and offset. A detail message is a String that describes this particular exception.
          +
          +
          Parameters:
          +
          parsedData - the parsed text, should not be null
          +
          position - the position where the error is found while parsing.
          +
          +
        • +
        + + + +
          +
        • +

          MeasurementParseException

          +
          public MeasurementParseException​(Throwable cause)
          +
          Constructs a MeasurementParseException with the specified cause.
          +
          +
          Parameters:
          +
          cause - the root cause
          +
          +
        • +
        + + + +
          +
        • +

          MeasurementParseException

          +
          public MeasurementParseException​(String message)
          +
          Constructs a MeasurementParseException with the specified detail message.
          +
          +
          Parameters:
          +
          message - the detail message
          +
          +
        • +
        +
      • +
      + +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          getPosition

          +
          public int getPosition​()
          +
          Returns the position where the error was found.
          +
          +
          Returns:
          +
          the position of the error
          +
          +
        • +
        + + + +
          +
        • +

          getParsedString

          +
          public String getParsedString​()
          +
          Returns the string that was being parsed.
          +
          +
          Returns:
          +
          the parsed string, or null, if null was passed as input.
          +
          +
        • +
        +
      • +
      +
    • +
    +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/format/ParserException.html b/site/apidocs/javax/measure/format/ParserException.html new file mode 100644 index 00000000..e01ca34d --- /dev/null +++ b/site/apidocs/javax/measure/format/ParserException.html @@ -0,0 +1,390 @@ + + + + + +ParserException (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Class ParserException

    +
    +
    + +
    +
      +
    • +
      +
      All Implemented Interfaces:
      +
      Serializable
      +
      +
      +
      Deprecated.  +
      Use MeasurementParseException, this exception will be removed in a future version, it is here for backward compatibility only.
      +
      +
      +
      @Deprecated
      +public class ParserException
      +extends MeasurementParseException
      +
      Signals that an error has been reached unexpectedly while parsing.
      +
      +
      Since:
      +
      1.0
      +
      Version:
      +
      1.2, October 7, 2018
      +
      Author:
      +
      Werner Keil
      +
      See Also:
      +
      Serialized Form
      +
      +
    • +
    +
    +
    + +
    +
    +
      +
    • + +
        +
      • + + +

        Constructor Detail

        + + + +
          +
        • +

          ParserException

          +
          public ParserException​(String message,
          +                       CharSequence parsedData,
          +                       int position)
          +
          Deprecated. 
          +
          Constructs a ParserException with the specified detail message, parsed text and index. A detail message is a String that describes this + particular exception.
          +
          +
          Parameters:
          +
          message - the detail message
          +
          parsedData - the parsed text, should not be null
          +
          position - the position where the error was found while parsing.
          +
          +
        • +
        + + + +
          +
        • +

          ParserException

          +
          public ParserException​(CharSequence parsedData,
          +                       int position)
          +
          Deprecated. 
          +
          Constructs a ParserException with the parsed text and offset. A detail message is a String that describes this particular exception.
          +
          +
          Parameters:
          +
          parsedData - the parsed text, should not be null
          +
          position - the position where the error is found while parsing.
          +
          +
        • +
        + + + +
          +
        • +

          ParserException

          +
          public ParserException​(Throwable cause)
          +
          Deprecated. 
          +
          Constructs a ParserException with the specified cause.
          +
          +
          Parameters:
          +
          cause - the root cause
          +
          +
        • +
        +
      • +
      +
    • +
    +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/format/QuantityFormat.html b/site/apidocs/javax/measure/format/QuantityFormat.html new file mode 100644 index 00000000..4f91c126 --- /dev/null +++ b/site/apidocs/javax/measure/format/QuantityFormat.html @@ -0,0 +1,392 @@ + + + + + +QuantityFormat (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Interface QuantityFormat

    +
    +
    +
    +
      +
    • +
      +
      +
      public interface QuantityFormat
      +
      Formats instances of Quantity. + +

      Synchronization

      + Instances of this class are not required to be thread-safe. It is recommended to use separate format instances for each thread. If multiple threads + access a format concurrently, it must be synchronized externally.
      +
      +
      Since:
      +
      2.0
      +
      Version:
      +
      0.9, 22 Feb, 2019
      +
      Author:
      +
      Werner Keil, Thodoris Bais
      +
      See Also:
      +
      Quantity
      +
      +
    • +
    +
    +
    + +
    +
    +
      +
    • + +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          format

          +
          Appendable format​(Quantity<?> quantity,
          +                  Appendable destination)
          +           throws IOException
          +
          Formats the specified quantity into an Appendable.
          +
          +
          Parameters:
          +
          quantity - the quantity to format.
          +
          destination - the appendable destination.
          +
          Returns:
          +
          the specified Appendable.
          +
          Throws:
          +
          IOException - if an I/O exception occurs.
          +
          +
        • +
        + + + +
          +
        • +

          format

          +
          String format​(Quantity<?> quantity)
          +
          Formats the specified Quantity.
          +
          +
          Parameters:
          +
          quantity - the Quantity to format, not null
          +
          Returns:
          +
          the string representation using the settings of this QuantityFormat.
          +
          +
        • +
        + + + +
          +
        • +

          parse

          +
          Quantity<?> parse​(CharSequence csq,
          +                  ParsePosition pos)
          +           throws IllegalArgumentException,
          +                  MeasurementParseException
          +
          Parses a portion of the specified CharSequence from the specified position to produce a Quantity. + If parsing succeeds, then the index of the pos argument is updated to the index after the last character used.
          +
          +
          Parameters:
          +
          csq - the CharSequence to parse.
          +
          pos - a ParsePosition object holding the current parsing index and error parsing index information as described above.
          +
          Returns:
          +
          the quantity parsed from the specified character sub-sequence.
          +
          Throws:
          +
          IllegalArgumentException - if any problem occurs while parsing the specified character sequence (e.g. illegal syntax).
          +
          MeasurementParseException
          +
          +
        • +
        + + + + + + + +
          +
        • +

          isLocaleSensitive

          +
          default boolean isLocaleSensitive​()
          +
          Returns true if this QuantityFormat depends on a Locale to perform its tasks. +

          + In environments that do not support a Locale, e.g. Java ME, this usually returns false. +

          +
          +
          Returns:
          +
          whether this format depends on the locale.
          +
          +
        • +
        +
      • +
      +
    • +
    +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/format/UnitFormat.html b/site/apidocs/javax/measure/format/UnitFormat.html new file mode 100644 index 00000000..43425893 --- /dev/null +++ b/site/apidocs/javax/measure/format/UnitFormat.html @@ -0,0 +1,443 @@ + + + + + +UnitFormat (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Interface UnitFormat

    +
    +
    +
    +
      +
    • +
      +
      +
      public interface UnitFormat
      +
      Formats instances of Unit to a String or Appendable and parses a CharSequence to a Unit. + +

      Synchronization

      +

      + Instances of this class are not required to be thread-safe. It is recommended to use separate format instances for each thread. If multiple threads + access a format concurrently, it must be synchronized externally. +

      +
      +
      Since:
      +
      1.0
      +
      Version:
      +
      1.3.2, November 3, 2018
      +
      Author:
      +
      Jean-Marie Dautelle, Werner Keil
      +
      See Also:
      +
      Unit
      +
      +
    • +
    +
    +
    + +
    +
    +
      +
    • + +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          format

          +
          Appendable format​(Unit<?> unit,
          +                  Appendable appendable)
          +           throws IOException
          +
          Formats the specified Unit.
          +
          +
          Parameters:
          +
          unit - the Unit to format, not null
          +
          appendable - the appendable destination.
          +
          Returns:
          +
          the appendable destination passed in with formatted text appended.
          +
          Throws:
          +
          IOException - if an error occurs while writing to the destination.
          +
          +
        • +
        + + + +
          +
        • +

          format

          +
          String format​(Unit<?> unit)
          +
          Formats the specified Unit.
          +
          +
          Parameters:
          +
          unit - the Unit to format, not null
          +
          Returns:
          +
          the string representation using the settings of this UnitFormat.
          +
          +
        • +
        + + + +
          +
        • +

          label

          +
          void label​(Unit<?> unit,
          +           String label)
          +
          Attaches a system-wide label to the specified unit. +

          + If the specified label is already associated to a unit the previous association can be discarded or ignored. Depending on the + UnitFormat implementation, this call may be ignored if the particular unit already has a label. +

          + If a UnitFormat implementation is explicitly immutable, similar to e.g. the result of Collections.unmodifiableList(), + then an UnsupportedOperationException may be thrown upon this call. +

          + Since UnitFormat implementations often apply the Singleton pattern, system-wide means, the label applies to every instance of + UnitFormatA implementing UnitFormat in this case, but not every instance of UnitFormatB or UnitFormatC both + also implementing UnitFormat. If a UnitFormat #isLocaleSensitive() it is up to the implementation, whether the label is + ignored, applied in a local-neutral manner (in addition to its local-sensitive information) or locale-specific. +

          +
          +
          Parameters:
          +
          unit - the unit being labeled.
          +
          label - the new label for this unit.
          +
          Throws:
          +
          IllegalArgumentException - if the label is not a valid identifier. This may include characters not supported by a particular UnitFormat implementation + (e.g. only ASCII characters for certain devices)
          +
          UnsupportedOperationException - if the label operation is not supported by this UnitFormat
          +
          +
        • +
        + + + +
          +
        • +

          isLocaleSensitive

          +
          default boolean isLocaleSensitive​()
          +
          Returns true if this UnitFormat depends on a Locale to perform its tasks. +

          + In environments that do not support a Locale, e.g. Java ME, this usually returns false. +

          +
          +
          Returns:
          +
          Whether this format depends on a locale.
          +
          +
        • +
        + + + +
          +
        • +

          parse

          +
          Unit<?> parse​(CharSequence csq,
          +              ParsePosition pos)
          +       throws IllegalArgumentException,
          +              MeasurementParseException
          +
          Parses a portion of the specified CharSequence from the specified position to produce a Unit. + If parsing succeeds, then the index of the pos argument is updated to the index after the last character used.
          +
          +
          Parameters:
          +
          csq - the CharSequence to parse.
          +
          pos - a ParsePosition object holding the current parsing index and error parsing index information as described above.
          +
          Returns:
          +
          the unit parsed from the specified character sub-sequence.
          +
          Throws:
          +
          IllegalArgumentException - if any problem occurs while parsing the specified character sequence (e.g. illegal syntax).
          +
          MeasurementParseException
          +
          Since:
          +
          2.0
          +
          +
        • +
        + + + +
          +
        • +

          parse

          +
          Unit<?> parse​(CharSequence csq)
          +       throws MeasurementParseException
          +
          Parses the text into an instance of Unit. +

          + The parse must complete normally and parse the entire text. If the parse completes without reading the entire length of the text, an exception + is thrown. If any other problem occurs during parsing, an exception is thrown. +

          +
          +
          Parameters:
          +
          csq - the CharSequence to parse.
          +
          Returns:
          +
          the unit parsed from the specified character sequence.
          +
          Throws:
          +
          MeasurementParseException - if any problem occurs while parsing the specified character sequence (e.g. illegal syntax).
          +
          UnsupportedOperationException - if the UnitFormat is unable to parse.
          +
          Since:
          +
          2.0
          +
          +
        • +
        +
      • +
      +
    • +
    +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/format/class-use/MeasurementParseException.html b/site/apidocs/javax/measure/format/class-use/MeasurementParseException.html new file mode 100644 index 00000000..7234ab85 --- /dev/null +++ b/site/apidocs/javax/measure/format/class-use/MeasurementParseException.html @@ -0,0 +1,241 @@ + + + + + +Uses of Class javax.measure.format.MeasurementParseException (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Class
    javax.measure.format.MeasurementParseException

    +
    +
    + +
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/format/class-use/ParserException.html b/site/apidocs/javax/measure/format/class-use/ParserException.html new file mode 100644 index 00000000..7851cdae --- /dev/null +++ b/site/apidocs/javax/measure/format/class-use/ParserException.html @@ -0,0 +1,153 @@ + + + + + +Uses of Class javax.measure.format.ParserException (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Class
    javax.measure.format.ParserException

    +
    +
    No usage of javax.measure.format.ParserException
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/format/class-use/QuantityFormat.html b/site/apidocs/javax/measure/format/class-use/QuantityFormat.html new file mode 100644 index 00000000..b114f201 --- /dev/null +++ b/site/apidocs/javax/measure/format/class-use/QuantityFormat.html @@ -0,0 +1,206 @@ + + + + + +Uses of Interface javax.measure.format.QuantityFormat (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Interface
    javax.measure.format.QuantityFormat

    +
    +
    + +
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/format/class-use/UnitFormat.html b/site/apidocs/javax/measure/format/class-use/UnitFormat.html new file mode 100644 index 00000000..7d635c1d --- /dev/null +++ b/site/apidocs/javax/measure/format/class-use/UnitFormat.html @@ -0,0 +1,206 @@ + + + + + +Uses of Interface javax.measure.format.UnitFormat (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Interface
    javax.measure.format.UnitFormat

    +
    +
    + +
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/format/package-frame.html b/site/apidocs/javax/measure/format/package-frame.html new file mode 100644 index 00000000..682bfa6a --- /dev/null +++ b/site/apidocs/javax/measure/format/package-frame.html @@ -0,0 +1,36 @@ + + + + + +javax.measure.format (Units of Measurement API 2.0 API) + + + + + + + + + + + + + +

    javax.measure.format

    + + + diff --git a/site/apidocs/javax/measure/format/package-summary.html b/site/apidocs/javax/measure/format/package-summary.html new file mode 100644 index 00000000..897e75d5 --- /dev/null +++ b/site/apidocs/javax/measure/format/package-summary.html @@ -0,0 +1,212 @@ + + + + + +javax.measure.format (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Package javax.measure.format

    +
    +
    +
    [OPTIONAL] Provides Formatting and Parsing functionality for units, quantities, dimensions or their textual representation.
    +
    +
    Since:
    +
    1.0
    +
    Version:
    +
    2.0, July 7, 2019
    +
    Author:
    +
    Werner Keil
    +
    + +
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/format/package-tree.html b/site/apidocs/javax/measure/format/package-tree.html new file mode 100644 index 00000000..45b17728 --- /dev/null +++ b/site/apidocs/javax/measure/format/package-tree.html @@ -0,0 +1,191 @@ + + + + + +javax.measure.format Class Hierarchy (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Hierarchy For Package javax.measure.format

    +Package Hierarchies: + +
    +
    +

    Class Hierarchy

    + +

    Interface Hierarchy

    + +
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/format/package-use.html b/site/apidocs/javax/measure/format/package-use.html new file mode 100644 index 00000000..525ce027 --- /dev/null +++ b/site/apidocs/javax/measure/format/package-use.html @@ -0,0 +1,223 @@ + + + + + +Uses of Package javax.measure.format (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Package
    javax.measure.format

    +
    +
    + +
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/package-frame.html b/site/apidocs/javax/measure/package-frame.html new file mode 100644 index 00000000..a7accaa6 --- /dev/null +++ b/site/apidocs/javax/measure/package-frame.html @@ -0,0 +1,46 @@ + + + + + +javax.measure (Units of Measurement API 2.0 API) + + + + + + + + + + + + + +

    javax.measure

    + + + diff --git a/site/apidocs/javax/measure/package-summary.html b/site/apidocs/javax/measure/package-summary.html new file mode 100644 index 00000000..73d2f83e --- /dev/null +++ b/site/apidocs/javax/measure/package-summary.html @@ -0,0 +1,270 @@ + + + + + +javax.measure (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Package javax.measure

    +
    +
    +
    Specifies Java packages for the programmatic, type safe handling + of quantities and their expression as values of units. + +

    The core interfaces of this package are Dimension, Prefix, Quantity and Unit.

    +

    The package also contains the most common Prefix implementations MetricPrefix and BinaryPrefix.

    +
    +
    Since:
    +
    1.0
    +
    Version:
    +
    1.7, February 4, 2019
    +
    Author:
    +
    Jean-Marie Dautelle, Werner Keil, Otávio Gonçalves de Santana
    +
    +
      +
    • + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Interface Summary 
      InterfaceDescription
      Dimension +
      Represents the dimension of a unit.
      +
      Prefix +
      A unit prefix is a specifier or mnemonic that is prepended to units of measurement to indicate multiples or fractions of the units.
      +
      Quantity<Q extends Quantity<Q>> +
      Represents a quantitative property of a phenomenon, body, or substance, that + can be quantified by measurement.
      +
      Unit<Q extends Quantity<Q>> +
      Represents a determinate quantity (as of length, time, heat, or value) adopted as a standard of measurement.
      +
      UnitConverter +
      A converter of numeric values between different units.
      +
      +
    • +
    • + + + + + + + + + + + + + + + + + + + + +
      Enum Summary 
      EnumDescription
      BinaryPrefix +
      Provides support for common binary prefixes to be used by units.
      +
      MetricPrefix +
      Provides support for the 20 prefixes used in the metric system (decimal multiples and submultiples of units).
      +
      Quantity.Scale +
      The scale of a Quantity, either ABSOLUTE or RELATIVE.
      +
      +
    • +
    • + + + + + + + + + + + + + + + + + + + + +
      Exception Summary 
      ExceptionDescription
      IncommensurableException +
      Signals that a problem of some sort has occurred due to incommensurable of some quantities/units.
      +
      MeasurementException +
      Exception used to indicate a problem while dealing with units of measurement.
      +
      UnconvertibleException +
      Signals that a problem of some sort has occurred due to the impossibility of constructing a converter between two units.
      +
      +
    • +
    +
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/package-tree.html b/site/apidocs/javax/measure/package-tree.html new file mode 100644 index 00000000..0eebc70a --- /dev/null +++ b/site/apidocs/javax/measure/package-tree.html @@ -0,0 +1,205 @@ + + + + + +javax.measure Class Hierarchy (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Hierarchy For Package javax.measure

    +Package Hierarchies: + +
    +
    +

    Class Hierarchy

    + +

    Interface Hierarchy

    + +

    Enum Hierarchy

    + +
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/package-use.html b/site/apidocs/javax/measure/package-use.html new file mode 100644 index 00000000..0107b2e0 --- /dev/null +++ b/site/apidocs/javax/measure/package-use.html @@ -0,0 +1,369 @@ + + + + + +Uses of Package javax.measure (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Package
    javax.measure

    +
    +
    +
      +
    • + + + + + + + + + + + + + + + + + + + + + + + + +
      Packages that use javax.measure 
      PackageDescription
      javax.measure +
      Specifies Java packages for the programmatic, type safe handling + of quantities and their expression as values of units.
      +
      javax.measure.format +
      [OPTIONAL] Provides Formatting and Parsing functionality for units, quantities, dimensions or their textual representation.
      +
      javax.measure.quantity +
      [OPTIONAL] Provides quantitative properties or attributes of thing such as + mass, time, distance, heat, and angular separation.
      +
      javax.measure.spi +
      [OPTIONAL] The Units of Measurement SPI.
      +
      +
    • +
    • + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Classes in javax.measure used by javax.measure 
      ClassDescription
      BinaryPrefix +
      Provides support for common binary prefixes to be used by units.
      +
      Dimension +
      Represents the dimension of a unit.
      +
      IncommensurableException +
      Signals that a problem of some sort has occurred due to incommensurable of some quantities/units.
      +
      MeasurementException +
      Exception used to indicate a problem while dealing with units of measurement.
      +
      MetricPrefix +
      Provides support for the 20 prefixes used in the metric system (decimal multiples and submultiples of units).
      +
      Prefix +
      A unit prefix is a specifier or mnemonic that is prepended to units of measurement to indicate multiples or fractions of the units.
      +
      Quantity +
      Represents a quantitative property of a phenomenon, body, or substance, that + can be quantified by measurement.
      +
      Quantity.Scale +
      The scale of a Quantity, either ABSOLUTE or RELATIVE.
      +
      UnconvertibleException +
      Signals that a problem of some sort has occurred due to the impossibility of constructing a converter between two units.
      +
      Unit +
      Represents a determinate quantity (as of length, time, heat, or value) adopted as a standard of measurement.
      +
      UnitConverter +
      A converter of numeric values between different units.
      +
      +
    • +
    • + + + + + + + + + + + + + + + + + + + + + + +
      Classes in javax.measure used by javax.measure.format 
      ClassDescription
      MeasurementException +
      Exception used to indicate a problem while dealing with units of measurement.
      +
      Quantity +
      Represents a quantitative property of a phenomenon, body, or substance, that + can be quantified by measurement.
      +
      Unit +
      Represents a determinate quantity (as of length, time, heat, or value) adopted as a standard of measurement.
      +
      +
    • +
    • + + + + + + + + + + + + + + +
      Classes in javax.measure used by javax.measure.quantity 
      ClassDescription
      Quantity +
      Represents a quantitative property of a phenomenon, body, or substance, that + can be quantified by measurement.
      +
      +
    • +
    • + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Classes in javax.measure used by javax.measure.spi 
      ClassDescription
      Dimension +
      Represents the dimension of a unit.
      +
      Prefix +
      A unit prefix is a specifier or mnemonic that is prepended to units of measurement to indicate multiples or fractions of the units.
      +
      Quantity +
      Represents a quantitative property of a phenomenon, body, or substance, that + can be quantified by measurement.
      +
      Quantity.Scale +
      The scale of a Quantity, either ABSOLUTE or RELATIVE.
      +
      Unit +
      Represents a determinate quantity (as of length, time, heat, or value) adopted as a standard of measurement.
      +
      +
    • +
    +
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/Acceleration.html b/site/apidocs/javax/measure/quantity/Acceleration.html new file mode 100644 index 00000000..7d06ea84 --- /dev/null +++ b/site/apidocs/javax/measure/quantity/Acceleration.html @@ -0,0 +1,252 @@ + + + + + +Acceleration (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Interface Acceleration

    +
    +
    +
    + +
    +
    + +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/AmountOfSubstance.html b/site/apidocs/javax/measure/quantity/AmountOfSubstance.html new file mode 100644 index 00000000..37cb1700 --- /dev/null +++ b/site/apidocs/javax/measure/quantity/AmountOfSubstance.html @@ -0,0 +1,265 @@ + + + + + +AmountOfSubstance (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Interface AmountOfSubstance

    +
    +
    +
    +
      +
    • +
      +
      All Superinterfaces:
      +
      Quantity<AmountOfSubstance>
      +
      +
      +
      +
      public interface AmountOfSubstance
      +extends Quantity<AmountOfSubstance>
      +
      Number of elementary entities (molecules, for example) of a substance. The metric system unit for this quantity is "mol" (mole). + + The mole, symbol mol, is the SI unit of amount of substance. One mole contains + exactly 6.022 140 76 × 10²³ elementary entities. This number is the fixed numerical + value of the Avogadro constant, NA, when expressed in the unit mol⁻¹ and is called + the Avogadro number. + + The amount of substance, symbol n, of a system is a measure of the number of + specified elementary entities. An elementary entity may be an atom, a molecule, an + ion, an electron, any other particle or specified group of particles. + This definition implies the exact relation Nₐ = 6.022 140 76 × 10²³ mol⁻¹. + + Inverting this relation gives an exact expression for the mole in terms of the defining constant NA: + + 1 mol = 6.02214076 × 10²³ / Nₐ +

      + apiNote: SI Base Unit
      +
      +
      Since:
      +
      1.0
      +
      Version:
      +
      2.0
      +
      Author:
      +
      Jean-Marie Dautelle, Werner Keil, Thodoris Bais
      +
      See Also:
      +
      Wikipedia: Amount of Substance
      +
      +
    • +
    +
    +
    + +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/Angle.html b/site/apidocs/javax/measure/quantity/Angle.html new file mode 100644 index 00000000..e82f9335 --- /dev/null +++ b/site/apidocs/javax/measure/quantity/Angle.html @@ -0,0 +1,253 @@ + + + + + +Angle (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Interface Angle

    +
    +
    +
    + +
    +
    + +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/Area.html b/site/apidocs/javax/measure/quantity/Area.html new file mode 100644 index 00000000..051bbd50 --- /dev/null +++ b/site/apidocs/javax/measure/quantity/Area.html @@ -0,0 +1,253 @@ + + + + + +Area (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Interface Area

    +
    +
    +
    +
      +
    • +
      +
      All Superinterfaces:
      +
      Quantity<Area>
      +
      +
      +
      +
      public interface Area
      +extends Quantity<Area>
      +
      Extent of a planar region or of the surface of a solid measured in square units. The metric system unit for this quantity is "m²" (square metre). +

      + apiNote: SI Derived Unit
      +
      +
      Since:
      +
      1.0
      +
      Version:
      +
      1.3
      +
      Author:
      +
      Jean-Marie Dautelle, Werner Keil
      +
      See Also:
      +
      Length, +Volume, +Pressure
      +
      +
    • +
    +
    +
    + +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/CatalyticActivity.html b/site/apidocs/javax/measure/quantity/CatalyticActivity.html new file mode 100644 index 00000000..bc6d9bfb --- /dev/null +++ b/site/apidocs/javax/measure/quantity/CatalyticActivity.html @@ -0,0 +1,247 @@ + + + + + +CatalyticActivity (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Interface CatalyticActivity

    +
    +
    +
    + +
    +
    + +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/Dimensionless.html b/site/apidocs/javax/measure/quantity/Dimensionless.html new file mode 100644 index 00000000..2d787f4c --- /dev/null +++ b/site/apidocs/javax/measure/quantity/Dimensionless.html @@ -0,0 +1,247 @@ + + + + + +Dimensionless (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Interface Dimensionless

    +
    +
    +
    + +
    +
    + +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/ElectricCapacitance.html b/site/apidocs/javax/measure/quantity/ElectricCapacitance.html new file mode 100644 index 00000000..3798ff27 --- /dev/null +++ b/site/apidocs/javax/measure/quantity/ElectricCapacitance.html @@ -0,0 +1,247 @@ + + + + + +ElectricCapacitance (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Interface ElectricCapacitance

    +
    +
    +
    + +
    +
    + +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/ElectricCharge.html b/site/apidocs/javax/measure/quantity/ElectricCharge.html new file mode 100644 index 00000000..d09185f1 --- /dev/null +++ b/site/apidocs/javax/measure/quantity/ElectricCharge.html @@ -0,0 +1,249 @@ + + + + + +ElectricCharge (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Interface ElectricCharge

    +
    +
    +
    + +
    +
    + +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/ElectricConductance.html b/site/apidocs/javax/measure/quantity/ElectricConductance.html new file mode 100644 index 00000000..16f48ce6 --- /dev/null +++ b/site/apidocs/javax/measure/quantity/ElectricConductance.html @@ -0,0 +1,247 @@ + + + + + +ElectricConductance (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Interface ElectricConductance

    +
    +
    +
    + +
    +
    + +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/ElectricCurrent.html b/site/apidocs/javax/measure/quantity/ElectricCurrent.html new file mode 100644 index 00000000..13e6e279 --- /dev/null +++ b/site/apidocs/javax/measure/quantity/ElectricCurrent.html @@ -0,0 +1,264 @@ + + + + + +ElectricCurrent (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Interface ElectricCurrent

    +
    +
    +
    +
      +
    • +
      +
      All Superinterfaces:
      +
      Quantity<ElectricCurrent>
      +
      +
      +
      +
      public interface ElectricCurrent
      +extends Quantity<ElectricCurrent>
      +
      Amount of electric charge flowing past a specified circuit point per unit time. The metric system unit for this quantity is "A" (Ampere). + + The ampere, symbol A, is the SI unit of electric current. It is defined by taking the + fixed numerical value of the elementary charge e to be 1.602 176 634 × 10⁻¹⁹ when + expressed in the unit C, which is equal to A s, where the second is defined in terms + of ∆νCs. + + This definition implies the exact relation e = 1.602 176 634 × 10⁻¹⁹ A s. Inverting this + relation gives an exact expression for the unit ampere in terms of the defining constants e + and ∆νCs: + + 1 A = (e / 1.602 176 634 × 10⁻¹⁹) s⁻¹ +

      + apiNote: SI Base Unit
      +
      +
      Since:
      +
      1.0
      +
      Version:
      +
      2.0
      +
      Author:
      +
      Jean-Marie Dautelle, Werner Keil, Thodoris Bais
      +
      See Also:
      +
      Wikipedia: Electric Current, +ElectricCharge, +Time
      +
      +
    • +
    +
    +
    + +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/ElectricInductance.html b/site/apidocs/javax/measure/quantity/ElectricInductance.html new file mode 100644 index 00000000..8794bf23 --- /dev/null +++ b/site/apidocs/javax/measure/quantity/ElectricInductance.html @@ -0,0 +1,247 @@ + + + + + +ElectricInductance (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Interface ElectricInductance

    +
    +
    +
    + +
    +
    + +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/ElectricPotential.html b/site/apidocs/javax/measure/quantity/ElectricPotential.html new file mode 100644 index 00000000..927bfaaa --- /dev/null +++ b/site/apidocs/javax/measure/quantity/ElectricPotential.html @@ -0,0 +1,247 @@ + + + + + +ElectricPotential (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Interface ElectricPotential

    +
    +
    +
    + +
    +
    + +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/ElectricResistance.html b/site/apidocs/javax/measure/quantity/ElectricResistance.html new file mode 100644 index 00000000..103ff5ff --- /dev/null +++ b/site/apidocs/javax/measure/quantity/ElectricResistance.html @@ -0,0 +1,247 @@ + + + + + +ElectricResistance (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Interface ElectricResistance

    +
    +
    +
    + +
    +
    + +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/Energy.html b/site/apidocs/javax/measure/quantity/Energy.html new file mode 100644 index 00000000..eccc0de0 --- /dev/null +++ b/site/apidocs/javax/measure/quantity/Energy.html @@ -0,0 +1,251 @@ + + + + + +Energy (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Interface Energy

    +
    +
    +
    + +
    +
    + +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/Force.html b/site/apidocs/javax/measure/quantity/Force.html new file mode 100644 index 00000000..8091e7c0 --- /dev/null +++ b/site/apidocs/javax/measure/quantity/Force.html @@ -0,0 +1,251 @@ + + + + + +Force (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Interface Force

    +
    +
    +
    +
      +
    • +
      +
      All Superinterfaces:
      +
      Quantity<Force>
      +
      +
      +
      +
      public interface Force
      +extends Quantity<Force>
      +
      Quantity that tends to produce an acceleration of a body in the direction of its application. The metric system unit for this quantity is "N" + (Newton).
      +
      +
      Since:
      +
      1.0
      +
      Version:
      +
      1.1
      +
      Author:
      +
      Jean-Marie Dautelle
      +
      See Also:
      +
      Energy, +Pressure
      +
      +
    • +
    +
    +
    + +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/Frequency.html b/site/apidocs/javax/measure/quantity/Frequency.html new file mode 100644 index 00000000..f41c06b7 --- /dev/null +++ b/site/apidocs/javax/measure/quantity/Frequency.html @@ -0,0 +1,249 @@ + + + + + +Frequency (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Interface Frequency

    +
    +
    +
    +
      +
    • +
      +
      All Superinterfaces:
      +
      Quantity<Frequency>
      +
      +
      +
      +
      public interface Frequency
      +extends Quantity<Frequency>
      +
      Number of times a specified phenomenon occurs within a specified interval. The metric system unit for this quantity is "Hz" (Hertz).
      +
      +
      Since:
      +
      1.0
      +
      Version:
      +
      1.0
      +
      Author:
      +
      Jean-Marie Dautelle
      +
      See Also:
      +
      Time
      +
      +
    • +
    +
    +
    + +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/Illuminance.html b/site/apidocs/javax/measure/quantity/Illuminance.html new file mode 100644 index 00000000..e21c49ee --- /dev/null +++ b/site/apidocs/javax/measure/quantity/Illuminance.html @@ -0,0 +1,247 @@ + + + + + +Illuminance (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Interface Illuminance

    +
    +
    +
    + +
    +
    + +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/Length.html b/site/apidocs/javax/measure/quantity/Length.html new file mode 100644 index 00000000..66c977cc --- /dev/null +++ b/site/apidocs/javax/measure/quantity/Length.html @@ -0,0 +1,267 @@ + + + + + +Length (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Interface Length

    +
    +
    +
    +
      +
    • +
      +
      All Superinterfaces:
      +
      Quantity<Length>
      +
      +
      +
      +
      public interface Length
      +extends Quantity<Length>
      +
      Extent of something along its greatest dimension or the extent of space between two objects or places. + The metric system unit for this quantity is "m" (metre). + + The metre, symbol m, is the SI unit of length. It is defined by taking the fixed + numerical value of the speed of light in vacuum c to be 299 792 458 when expressed + in the unit m s⁻¹, where the second is defined in terms of the caesium frequency + ∆νCs. + + This definition implies the exact relation c = 299 792 458 m s⁻¹. Inverting this relation + gives an exact expression for the metre in terms of the defining constants c and ∆νCs: + + 1 m = (c / 299 792 458)s = 9 192 631 770 c / 299 792 458 ∆νCs ≈ 30.663 319 c / ∆νCs +

      + apiNote: SI Base Unit
      +
      +
      Since:
      +
      1.0
      +
      Version:
      +
      2.0
      +
      Author:
      +
      Jean-Marie Dautelle, Werner Keil, Thodoris Bais
      +
      See Also:
      +
      Wikipedia: Length, +Area, +Volume, +Angle, +SolidAngle, +Speed
      +
      +
    • +
    +
    +
    + +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/LuminousFlux.html b/site/apidocs/javax/measure/quantity/LuminousFlux.html new file mode 100644 index 00000000..c277dc24 --- /dev/null +++ b/site/apidocs/javax/measure/quantity/LuminousFlux.html @@ -0,0 +1,247 @@ + + + + + +LuminousFlux (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Interface LuminousFlux

    +
    +
    +
    + +
    +
    + +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/LuminousIntensity.html b/site/apidocs/javax/measure/quantity/LuminousIntensity.html new file mode 100644 index 00000000..6bec9f43 --- /dev/null +++ b/site/apidocs/javax/measure/quantity/LuminousIntensity.html @@ -0,0 +1,264 @@ + + + + + +LuminousIntensity (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Interface LuminousIntensity

    +
    +
    +
    +
      +
    • +
      +
      All Superinterfaces:
      +
      Quantity<LuminousIntensity>
      +
      +
      +
      +
      public interface LuminousIntensity
      +extends Quantity<LuminousIntensity>
      +
      Luminous flux density per solid angle as measured in a given direction relative to the emitting source. + The metric system unit for this quantity is "cd" (candela). + + The candela, symbol cd, is the SI unit of luminous intensity in a given direction. It is + defined by taking the fixed numerical value of the luminous efficacy of + monochromatic radiation of frequency 540 × 10¹² Hz, Kcd, to be 683 when expressed + in the unit lm W−1, which is equal to cd sr W⁻¹, or cd sr kg⁻¹ m⁻² s³, where the kilogram, + metre and second are defined in terms of h, c and ∆νCs. + + This definition implies the exact relation Kcd = 683 cd sr kg⁻¹ m⁻² s³ for monochromatic + radiation of frequency ν = 540 × 10¹² Hz. Inverting this relation gives an exact expression + for the candela in terms of the defining constants Kcd, h and ∆νCs: + + 1 cd = (Kcd / 683) kg m² s⁻³ sr⁻¹ +

      + apiNote: SI Base Unit
      +
      +
      Since:
      +
      1.0
      +
      Version:
      +
      2.0
      +
      Author:
      +
      Jean-Marie Dautelle, Werner Keil, Thodoris Bais
      +
      See Also:
      +
      Wikipedia: Luminous intensity
      +
      +
    • +
    +
    +
    + +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/MagneticFlux.html b/site/apidocs/javax/measure/quantity/MagneticFlux.html new file mode 100644 index 00000000..bcfa6797 --- /dev/null +++ b/site/apidocs/javax/measure/quantity/MagneticFlux.html @@ -0,0 +1,247 @@ + + + + + +MagneticFlux (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Interface MagneticFlux

    +
    +
    +
    + +
    +
    + +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/MagneticFluxDensity.html b/site/apidocs/javax/measure/quantity/MagneticFluxDensity.html new file mode 100644 index 00000000..44bc59e0 --- /dev/null +++ b/site/apidocs/javax/measure/quantity/MagneticFluxDensity.html @@ -0,0 +1,247 @@ + + + + + +MagneticFluxDensity (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Interface MagneticFluxDensity

    +
    +
    +
    + +
    +
    + +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/Mass.html b/site/apidocs/javax/measure/quantity/Mass.html new file mode 100644 index 00000000..82a6e2f1 --- /dev/null +++ b/site/apidocs/javax/measure/quantity/Mass.html @@ -0,0 +1,264 @@ + + + + + +Mass (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Interface Mass

    +
    +
    +
    +
      +
    • +
      +
      All Superinterfaces:
      +
      Quantity<Mass>
      +
      +
      +
      +
      public interface Mass
      +extends Quantity<Mass>
      +
      Measure of the quantity of matter that a body or an object contains. The mass of the body is not dependent on gravity and therefore is different + from but proportional to its weight. The metric system unit for this quantity is "kg" (kilogram). + + The kilogram, symbol kg, is the SI unit of mass. It is defined by taking the fixed + numerical value of the Planck constant h to be 6.626 070 15 × 10⁻³⁴ when expressed + in the unit J s, which is equal to kg m² s−1, where the metre and the second are + defined in terms of c and ∆νCs. + + This definition implies the exact relation h = 6.626 070 15 × 10−34 kg m² s⁻¹. Inverting this + relation gives an exact expression for the kilogram in terms of the three defining constants + h, ∆νCs and c: + + 1 kg = (h / 6.626 070 15 × 10⁻³⁴) m⁻² s +

      + apiNote: SI Base Unit
      +
      +
      Since:
      +
      1.0
      +
      Version:
      +
      2.0
      +
      Author:
      +
      Jean-Marie Dautelle, Werner Keil, Thodoris Bais
      +
      See Also:
      +
      Wikipedia: Mass, +RadiationDoseAbsorbed
      +
      +
    • +
    +
    +
    + +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/Power.html b/site/apidocs/javax/measure/quantity/Power.html new file mode 100644 index 00000000..c2e0a87f --- /dev/null +++ b/site/apidocs/javax/measure/quantity/Power.html @@ -0,0 +1,250 @@ + + + + + +Power (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Interface Power

    +
    +
    +
    +
      +
    • +
      +
      All Superinterfaces:
      +
      Quantity<Power>
      +
      +
      +
      +
      public interface Power
      +extends Quantity<Power>
      +
      Rate at which work is done. The metric system unit for this quantity is "W" (Watt).
      +
      +
      Since:
      +
      1.0
      +
      Version:
      +
      1.0
      +
      Author:
      +
      Jean-Marie Dautelle
      +
      See Also:
      +
      Energy, +Time
      +
      +
    • +
    +
    +
    + +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/Pressure.html b/site/apidocs/javax/measure/quantity/Pressure.html new file mode 100644 index 00000000..2b1ee2d9 --- /dev/null +++ b/site/apidocs/javax/measure/quantity/Pressure.html @@ -0,0 +1,250 @@ + + + + + +Pressure (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Interface Pressure

    +
    +
    +
    + +
    +
    + +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/RadiationDoseAbsorbed.html b/site/apidocs/javax/measure/quantity/RadiationDoseAbsorbed.html new file mode 100644 index 00000000..17006472 --- /dev/null +++ b/site/apidocs/javax/measure/quantity/RadiationDoseAbsorbed.html @@ -0,0 +1,249 @@ + + + + + +RadiationDoseAbsorbed (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Interface RadiationDoseAbsorbed

    +
    +
    +
    + +
    +
    + +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/RadiationDoseEffective.html b/site/apidocs/javax/measure/quantity/RadiationDoseEffective.html new file mode 100644 index 00000000..8f0b063d --- /dev/null +++ b/site/apidocs/javax/measure/quantity/RadiationDoseEffective.html @@ -0,0 +1,248 @@ + + + + + +RadiationDoseEffective (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Interface RadiationDoseEffective

    +
    +
    +
    + +
    +
    + +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/Radioactivity.html b/site/apidocs/javax/measure/quantity/Radioactivity.html new file mode 100644 index 00000000..ffa5a63b --- /dev/null +++ b/site/apidocs/javax/measure/quantity/Radioactivity.html @@ -0,0 +1,247 @@ + + + + + +Radioactivity (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Interface Radioactivity

    +
    +
    +
    + +
    +
    + +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/SolidAngle.html b/site/apidocs/javax/measure/quantity/SolidAngle.html new file mode 100644 index 00000000..9d43aa09 --- /dev/null +++ b/site/apidocs/javax/measure/quantity/SolidAngle.html @@ -0,0 +1,249 @@ + + + + + +SolidAngle (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Interface SolidAngle

    +
    +
    +
    + +
    +
    + +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/Speed.html b/site/apidocs/javax/measure/quantity/Speed.html new file mode 100644 index 00000000..c889d6c2 --- /dev/null +++ b/site/apidocs/javax/measure/quantity/Speed.html @@ -0,0 +1,257 @@ + + + + + +Speed (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Interface Speed

    +
    +
    +
    +
      +
    • +
      +
      All Superinterfaces:
      +
      Quantity<Speed>
      +
      +
      +
      +
      public interface Speed
      +extends Quantity<Speed>
      +
      Distance traveled divided by the time of travel. The metric system unit for this quantity is "m/s" (metre per second). + +

      + Speed is a scalar value, while velocity is a vector. Speed is the magnitude of the velocity vector, or the components of + the velocity vector. +

      +
      +
      Since:
      +
      1.0
      +
      Version:
      +
      1.2
      +
      Author:
      +
      Jean-Marie Dautelle, Werner Keil
      +
      See Also:
      +
      Length, +Time, +Acceleration, +Wikipedia: Speed
      +
      +
    • +
    +
    +
    + +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/Temperature.html b/site/apidocs/javax/measure/quantity/Temperature.html new file mode 100644 index 00000000..cc7218aa --- /dev/null +++ b/site/apidocs/javax/measure/quantity/Temperature.html @@ -0,0 +1,262 @@ + + + + + +Temperature (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Interface Temperature

    +
    +
    +
    +
      +
    • +
      +
      All Superinterfaces:
      +
      Quantity<Temperature>
      +
      +
      +
      +
      public interface Temperature
      +extends Quantity<Temperature>
      +
      Degree of hotness or coldness of a body or an environment. The metric system unit for this quantity is "K" (Kelvin). + + The kelvin, symbol K, is the SI unit of thermodynamic temperature. It is defined by + taking the fixed numerical value of the Boltzmann constant k to be 1.380 649 × 10−²³ + when expressed in the unit J K⁻¹, which is equal to kg m² s⁻² K⁻¹, where the + kilogram, metre and second are defined in terms of h, c and ∆νCs. + + This definition implies the exact relation k = 1.380 649 × 10⁻²³ kg m² s⁻² K⁻¹. Inverting this + relation gives an exact expression for the kelvin in terms of the defining constants k, h and + ∆νCs: + + 1 K = (1.380 649 / k) × 10⁻²³ kg m² s⁻² +

      + apiNote: SI Base Unit
      +
      +
      Since:
      +
      1.0
      +
      Version:
      +
      2.0
      +
      Author:
      +
      Jean-Marie Dautelle, Werner Keil, Thodoris Bais
      +
      See Also:
      +
      Wikipedia: Temperature
      +
      +
    • +
    +
    +
    + +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/Time.html b/site/apidocs/javax/measure/quantity/Time.html new file mode 100644 index 00000000..aca3a29c --- /dev/null +++ b/site/apidocs/javax/measure/quantity/Time.html @@ -0,0 +1,266 @@ + + + + + +Time (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Interface Time

    +
    +
    +
    +
      +
    • +
      +
      All Superinterfaces:
      +
      Quantity<Time>
      +
      +
      +
      +
      public interface Time
      +extends Quantity<Time>
      +
      Period of existence or persistence. The metric system unit for this quantity is "s" (second). + + The second, symbol s, is the SI unit of time. It is defined by taking the fixed + numerical value of the caesium frequency ∆νCs, the unperturbed ground-state + hyperfine transition frequency of the caesium 133 atom, to be 9 192 631 770 when + expressed in the unit Hz, which is equal to s⁻¹. + + This definition implies the exact relation ∆νCs = 9 192 631 770 Hz. Inverting this relation + gives an expression for the unit second in terms of the defining constant ∆νCs: + + 1 Hz = ∆νCs / 9 192 631 770 or 1 s = 9 192 631 770 / ∆νCs +

      + apiNote: SI Base Unit
      +
      +
      Since:
      +
      1.0
      +
      Version:
      +
      2.0
      +
      Author:
      +
      Werner Keil, Thodoris Bais
      +
      See Also:
      +
      Frequency, +Speed, +Acceleration, +ElectricCurrent, +Power, +Wikipedia: Unit of time
      +
      +
    • +
    +
    +
    + +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/Volume.html b/site/apidocs/javax/measure/quantity/Volume.html new file mode 100644 index 00000000..f356b30c --- /dev/null +++ b/site/apidocs/javax/measure/quantity/Volume.html @@ -0,0 +1,250 @@ + + + + + +Volume (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Interface Volume

    +
    +
    +
    +
      +
    • +
      +
      All Superinterfaces:
      +
      Quantity<Volume>
      +
      +
      +
      +
      public interface Volume
      +extends Quantity<Volume>
      +
      Amount of space occupied by a three-dimensional object or region of space. The metric system unit for this quantity is "m³" (cubic metre).
      +
      +
      Since:
      +
      1.0
      +
      Version:
      +
      1.3
      +
      Author:
      +
      Jean-Marie Dautelle, Werner Keil
      +
      See Also:
      +
      Length, +Area
      +
      +
    • +
    +
    +
    + +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/class-use/Acceleration.html b/site/apidocs/javax/measure/quantity/class-use/Acceleration.html new file mode 100644 index 00000000..280d67aa --- /dev/null +++ b/site/apidocs/javax/measure/quantity/class-use/Acceleration.html @@ -0,0 +1,153 @@ + + + + + +Uses of Interface javax.measure.quantity.Acceleration (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Interface
    javax.measure.quantity.Acceleration

    +
    +
    No usage of javax.measure.quantity.Acceleration
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/class-use/AmountOfSubstance.html b/site/apidocs/javax/measure/quantity/class-use/AmountOfSubstance.html new file mode 100644 index 00000000..f998cd2e --- /dev/null +++ b/site/apidocs/javax/measure/quantity/class-use/AmountOfSubstance.html @@ -0,0 +1,153 @@ + + + + + +Uses of Interface javax.measure.quantity.AmountOfSubstance (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Interface
    javax.measure.quantity.AmountOfSubstance

    +
    +
    No usage of javax.measure.quantity.AmountOfSubstance
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/class-use/Angle.html b/site/apidocs/javax/measure/quantity/class-use/Angle.html new file mode 100644 index 00000000..320b5e6d --- /dev/null +++ b/site/apidocs/javax/measure/quantity/class-use/Angle.html @@ -0,0 +1,153 @@ + + + + + +Uses of Interface javax.measure.quantity.Angle (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Interface
    javax.measure.quantity.Angle

    +
    +
    No usage of javax.measure.quantity.Angle
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/class-use/Area.html b/site/apidocs/javax/measure/quantity/class-use/Area.html new file mode 100644 index 00000000..ea823531 --- /dev/null +++ b/site/apidocs/javax/measure/quantity/class-use/Area.html @@ -0,0 +1,153 @@ + + + + + +Uses of Interface javax.measure.quantity.Area (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Interface
    javax.measure.quantity.Area

    +
    +
    No usage of javax.measure.quantity.Area
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/class-use/CatalyticActivity.html b/site/apidocs/javax/measure/quantity/class-use/CatalyticActivity.html new file mode 100644 index 00000000..16ba8a62 --- /dev/null +++ b/site/apidocs/javax/measure/quantity/class-use/CatalyticActivity.html @@ -0,0 +1,153 @@ + + + + + +Uses of Interface javax.measure.quantity.CatalyticActivity (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Interface
    javax.measure.quantity.CatalyticActivity

    +
    +
    No usage of javax.measure.quantity.CatalyticActivity
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/class-use/Dimensionless.html b/site/apidocs/javax/measure/quantity/class-use/Dimensionless.html new file mode 100644 index 00000000..cae7e8be --- /dev/null +++ b/site/apidocs/javax/measure/quantity/class-use/Dimensionless.html @@ -0,0 +1,153 @@ + + + + + +Uses of Interface javax.measure.quantity.Dimensionless (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Interface
    javax.measure.quantity.Dimensionless

    +
    +
    No usage of javax.measure.quantity.Dimensionless
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/class-use/ElectricCapacitance.html b/site/apidocs/javax/measure/quantity/class-use/ElectricCapacitance.html new file mode 100644 index 00000000..c603f772 --- /dev/null +++ b/site/apidocs/javax/measure/quantity/class-use/ElectricCapacitance.html @@ -0,0 +1,153 @@ + + + + + +Uses of Interface javax.measure.quantity.ElectricCapacitance (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Interface
    javax.measure.quantity.ElectricCapacitance

    +
    +
    No usage of javax.measure.quantity.ElectricCapacitance
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/class-use/ElectricCharge.html b/site/apidocs/javax/measure/quantity/class-use/ElectricCharge.html new file mode 100644 index 00000000..57f97aca --- /dev/null +++ b/site/apidocs/javax/measure/quantity/class-use/ElectricCharge.html @@ -0,0 +1,153 @@ + + + + + +Uses of Interface javax.measure.quantity.ElectricCharge (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Interface
    javax.measure.quantity.ElectricCharge

    +
    +
    No usage of javax.measure.quantity.ElectricCharge
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/class-use/ElectricConductance.html b/site/apidocs/javax/measure/quantity/class-use/ElectricConductance.html new file mode 100644 index 00000000..5bfc6700 --- /dev/null +++ b/site/apidocs/javax/measure/quantity/class-use/ElectricConductance.html @@ -0,0 +1,153 @@ + + + + + +Uses of Interface javax.measure.quantity.ElectricConductance (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Interface
    javax.measure.quantity.ElectricConductance

    +
    +
    No usage of javax.measure.quantity.ElectricConductance
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/class-use/ElectricCurrent.html b/site/apidocs/javax/measure/quantity/class-use/ElectricCurrent.html new file mode 100644 index 00000000..8227292c --- /dev/null +++ b/site/apidocs/javax/measure/quantity/class-use/ElectricCurrent.html @@ -0,0 +1,153 @@ + + + + + +Uses of Interface javax.measure.quantity.ElectricCurrent (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Interface
    javax.measure.quantity.ElectricCurrent

    +
    +
    No usage of javax.measure.quantity.ElectricCurrent
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/class-use/ElectricInductance.html b/site/apidocs/javax/measure/quantity/class-use/ElectricInductance.html new file mode 100644 index 00000000..9f2fe50c --- /dev/null +++ b/site/apidocs/javax/measure/quantity/class-use/ElectricInductance.html @@ -0,0 +1,153 @@ + + + + + +Uses of Interface javax.measure.quantity.ElectricInductance (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Interface
    javax.measure.quantity.ElectricInductance

    +
    +
    No usage of javax.measure.quantity.ElectricInductance
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/class-use/ElectricPotential.html b/site/apidocs/javax/measure/quantity/class-use/ElectricPotential.html new file mode 100644 index 00000000..e2b070f0 --- /dev/null +++ b/site/apidocs/javax/measure/quantity/class-use/ElectricPotential.html @@ -0,0 +1,153 @@ + + + + + +Uses of Interface javax.measure.quantity.ElectricPotential (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Interface
    javax.measure.quantity.ElectricPotential

    +
    +
    No usage of javax.measure.quantity.ElectricPotential
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/class-use/ElectricResistance.html b/site/apidocs/javax/measure/quantity/class-use/ElectricResistance.html new file mode 100644 index 00000000..4779d6e9 --- /dev/null +++ b/site/apidocs/javax/measure/quantity/class-use/ElectricResistance.html @@ -0,0 +1,153 @@ + + + + + +Uses of Interface javax.measure.quantity.ElectricResistance (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Interface
    javax.measure.quantity.ElectricResistance

    +
    +
    No usage of javax.measure.quantity.ElectricResistance
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/class-use/Energy.html b/site/apidocs/javax/measure/quantity/class-use/Energy.html new file mode 100644 index 00000000..b077bb1a --- /dev/null +++ b/site/apidocs/javax/measure/quantity/class-use/Energy.html @@ -0,0 +1,153 @@ + + + + + +Uses of Interface javax.measure.quantity.Energy (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Interface
    javax.measure.quantity.Energy

    +
    +
    No usage of javax.measure.quantity.Energy
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/class-use/Force.html b/site/apidocs/javax/measure/quantity/class-use/Force.html new file mode 100644 index 00000000..e339cb72 --- /dev/null +++ b/site/apidocs/javax/measure/quantity/class-use/Force.html @@ -0,0 +1,153 @@ + + + + + +Uses of Interface javax.measure.quantity.Force (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Interface
    javax.measure.quantity.Force

    +
    +
    No usage of javax.measure.quantity.Force
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/class-use/Frequency.html b/site/apidocs/javax/measure/quantity/class-use/Frequency.html new file mode 100644 index 00000000..9ece823a --- /dev/null +++ b/site/apidocs/javax/measure/quantity/class-use/Frequency.html @@ -0,0 +1,153 @@ + + + + + +Uses of Interface javax.measure.quantity.Frequency (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Interface
    javax.measure.quantity.Frequency

    +
    +
    No usage of javax.measure.quantity.Frequency
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/class-use/Illuminance.html b/site/apidocs/javax/measure/quantity/class-use/Illuminance.html new file mode 100644 index 00000000..315edc9e --- /dev/null +++ b/site/apidocs/javax/measure/quantity/class-use/Illuminance.html @@ -0,0 +1,153 @@ + + + + + +Uses of Interface javax.measure.quantity.Illuminance (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Interface
    javax.measure.quantity.Illuminance

    +
    +
    No usage of javax.measure.quantity.Illuminance
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/class-use/Length.html b/site/apidocs/javax/measure/quantity/class-use/Length.html new file mode 100644 index 00000000..1e294163 --- /dev/null +++ b/site/apidocs/javax/measure/quantity/class-use/Length.html @@ -0,0 +1,153 @@ + + + + + +Uses of Interface javax.measure.quantity.Length (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Interface
    javax.measure.quantity.Length

    +
    +
    No usage of javax.measure.quantity.Length
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/class-use/LuminousFlux.html b/site/apidocs/javax/measure/quantity/class-use/LuminousFlux.html new file mode 100644 index 00000000..1c490645 --- /dev/null +++ b/site/apidocs/javax/measure/quantity/class-use/LuminousFlux.html @@ -0,0 +1,153 @@ + + + + + +Uses of Interface javax.measure.quantity.LuminousFlux (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Interface
    javax.measure.quantity.LuminousFlux

    +
    +
    No usage of javax.measure.quantity.LuminousFlux
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/class-use/LuminousIntensity.html b/site/apidocs/javax/measure/quantity/class-use/LuminousIntensity.html new file mode 100644 index 00000000..d720cc7a --- /dev/null +++ b/site/apidocs/javax/measure/quantity/class-use/LuminousIntensity.html @@ -0,0 +1,153 @@ + + + + + +Uses of Interface javax.measure.quantity.LuminousIntensity (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Interface
    javax.measure.quantity.LuminousIntensity

    +
    +
    No usage of javax.measure.quantity.LuminousIntensity
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/class-use/MagneticFlux.html b/site/apidocs/javax/measure/quantity/class-use/MagneticFlux.html new file mode 100644 index 00000000..27a4757a --- /dev/null +++ b/site/apidocs/javax/measure/quantity/class-use/MagneticFlux.html @@ -0,0 +1,153 @@ + + + + + +Uses of Interface javax.measure.quantity.MagneticFlux (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Interface
    javax.measure.quantity.MagneticFlux

    +
    +
    No usage of javax.measure.quantity.MagneticFlux
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/class-use/MagneticFluxDensity.html b/site/apidocs/javax/measure/quantity/class-use/MagneticFluxDensity.html new file mode 100644 index 00000000..2287b3d7 --- /dev/null +++ b/site/apidocs/javax/measure/quantity/class-use/MagneticFluxDensity.html @@ -0,0 +1,153 @@ + + + + + +Uses of Interface javax.measure.quantity.MagneticFluxDensity (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Interface
    javax.measure.quantity.MagneticFluxDensity

    +
    +
    No usage of javax.measure.quantity.MagneticFluxDensity
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/class-use/Mass.html b/site/apidocs/javax/measure/quantity/class-use/Mass.html new file mode 100644 index 00000000..cd567bb6 --- /dev/null +++ b/site/apidocs/javax/measure/quantity/class-use/Mass.html @@ -0,0 +1,153 @@ + + + + + +Uses of Interface javax.measure.quantity.Mass (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Interface
    javax.measure.quantity.Mass

    +
    +
    No usage of javax.measure.quantity.Mass
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/class-use/Power.html b/site/apidocs/javax/measure/quantity/class-use/Power.html new file mode 100644 index 00000000..a939d801 --- /dev/null +++ b/site/apidocs/javax/measure/quantity/class-use/Power.html @@ -0,0 +1,153 @@ + + + + + +Uses of Interface javax.measure.quantity.Power (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Interface
    javax.measure.quantity.Power

    +
    +
    No usage of javax.measure.quantity.Power
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/class-use/Pressure.html b/site/apidocs/javax/measure/quantity/class-use/Pressure.html new file mode 100644 index 00000000..75b2433c --- /dev/null +++ b/site/apidocs/javax/measure/quantity/class-use/Pressure.html @@ -0,0 +1,153 @@ + + + + + +Uses of Interface javax.measure.quantity.Pressure (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Interface
    javax.measure.quantity.Pressure

    +
    +
    No usage of javax.measure.quantity.Pressure
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/class-use/RadiationDoseAbsorbed.html b/site/apidocs/javax/measure/quantity/class-use/RadiationDoseAbsorbed.html new file mode 100644 index 00000000..fe0ae181 --- /dev/null +++ b/site/apidocs/javax/measure/quantity/class-use/RadiationDoseAbsorbed.html @@ -0,0 +1,153 @@ + + + + + +Uses of Interface javax.measure.quantity.RadiationDoseAbsorbed (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Interface
    javax.measure.quantity.RadiationDoseAbsorbed

    +
    +
    No usage of javax.measure.quantity.RadiationDoseAbsorbed
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/class-use/RadiationDoseEffective.html b/site/apidocs/javax/measure/quantity/class-use/RadiationDoseEffective.html new file mode 100644 index 00000000..0145a945 --- /dev/null +++ b/site/apidocs/javax/measure/quantity/class-use/RadiationDoseEffective.html @@ -0,0 +1,153 @@ + + + + + +Uses of Interface javax.measure.quantity.RadiationDoseEffective (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Interface
    javax.measure.quantity.RadiationDoseEffective

    +
    +
    No usage of javax.measure.quantity.RadiationDoseEffective
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/class-use/Radioactivity.html b/site/apidocs/javax/measure/quantity/class-use/Radioactivity.html new file mode 100644 index 00000000..abab4e72 --- /dev/null +++ b/site/apidocs/javax/measure/quantity/class-use/Radioactivity.html @@ -0,0 +1,153 @@ + + + + + +Uses of Interface javax.measure.quantity.Radioactivity (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Interface
    javax.measure.quantity.Radioactivity

    +
    +
    No usage of javax.measure.quantity.Radioactivity
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/class-use/SolidAngle.html b/site/apidocs/javax/measure/quantity/class-use/SolidAngle.html new file mode 100644 index 00000000..562b1e5e --- /dev/null +++ b/site/apidocs/javax/measure/quantity/class-use/SolidAngle.html @@ -0,0 +1,153 @@ + + + + + +Uses of Interface javax.measure.quantity.SolidAngle (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Interface
    javax.measure.quantity.SolidAngle

    +
    +
    No usage of javax.measure.quantity.SolidAngle
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/class-use/Speed.html b/site/apidocs/javax/measure/quantity/class-use/Speed.html new file mode 100644 index 00000000..2dd6d7a9 --- /dev/null +++ b/site/apidocs/javax/measure/quantity/class-use/Speed.html @@ -0,0 +1,153 @@ + + + + + +Uses of Interface javax.measure.quantity.Speed (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Interface
    javax.measure.quantity.Speed

    +
    +
    No usage of javax.measure.quantity.Speed
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/class-use/Temperature.html b/site/apidocs/javax/measure/quantity/class-use/Temperature.html new file mode 100644 index 00000000..e1a75d96 --- /dev/null +++ b/site/apidocs/javax/measure/quantity/class-use/Temperature.html @@ -0,0 +1,153 @@ + + + + + +Uses of Interface javax.measure.quantity.Temperature (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Interface
    javax.measure.quantity.Temperature

    +
    +
    No usage of javax.measure.quantity.Temperature
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/class-use/Time.html b/site/apidocs/javax/measure/quantity/class-use/Time.html new file mode 100644 index 00000000..b9983b31 --- /dev/null +++ b/site/apidocs/javax/measure/quantity/class-use/Time.html @@ -0,0 +1,153 @@ + + + + + +Uses of Interface javax.measure.quantity.Time (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Interface
    javax.measure.quantity.Time

    +
    +
    No usage of javax.measure.quantity.Time
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/class-use/Volume.html b/site/apidocs/javax/measure/quantity/class-use/Volume.html new file mode 100644 index 00000000..11af1a8c --- /dev/null +++ b/site/apidocs/javax/measure/quantity/class-use/Volume.html @@ -0,0 +1,153 @@ + + + + + +Uses of Interface javax.measure.quantity.Volume (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Interface
    javax.measure.quantity.Volume

    +
    +
    No usage of javax.measure.quantity.Volume
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/package-frame.html b/site/apidocs/javax/measure/quantity/package-frame.html new file mode 100644 index 00000000..531ba50d --- /dev/null +++ b/site/apidocs/javax/measure/quantity/package-frame.html @@ -0,0 +1,62 @@ + + + + + +javax.measure.quantity (Units of Measurement API 2.0 API) + + + + + + + + + + + + + +

    javax.measure.quantity

    + + + diff --git a/site/apidocs/javax/measure/quantity/package-summary.html b/site/apidocs/javax/measure/quantity/package-summary.html new file mode 100644 index 00000000..308722dd --- /dev/null +++ b/site/apidocs/javax/measure/quantity/package-summary.html @@ -0,0 +1,411 @@ + + + + + +javax.measure.quantity (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Package javax.measure.quantity

    +
    +
    +
    [OPTIONAL] Provides quantitative properties or attributes of thing such as + mass, time, distance, heat, and angular separation. + Quantities of different kinds are represented by sub-types of the + Quantity interface. + +

    Only quantities defined in the BIPM - SI Brochure + are provided here. Users can create their own quantity types by extending the + Quantity interface.

    + +

    This package supports measurable quantities, which can be expressed + as (Number, Unit) tuples. + Those tuples are not necessarily used directly in numerically intensive code. + They are more useful as meta-data converted to the application internal representation + (for example double primitive type with the requirement to provide values in meters) + before computation begins.

    + +

    Quantity sub-types are also used as parameterized type to characterize + generic classes and provide additional compile time check. This technique is + used extensively by the Unit interface, + but users can apply the same approach to their own classes. In the example + below, Sensor, MyQuantity and Vector3D are user-defined + classes:

    + + + // A general-purpose Sensor class used for temperature measurements:
    + Sensor<Temperature> sensor ...;
    + Temperature temp = sensor.getValue();

    + + // A vector of velocity in a three-dimensional space.
    + Unit<Speed> = metrePerSecond = METRE.divide(SECOND);
    + Vector3D<Speed> aircraftSpeed = new Vector3D(200.0, 50.0, -0.5, metrePerSecond); +
    + +

    This package holds only the quantities required by the metric system.

    +
    +
    Since:
    +
    1.0
    +
    Version:
    +
    2.8
    +
    Author:
    +
    Jean-Marie Dautelle, Werner Keil
    +
    See Also:
    +
    Wikipedia: International System of Units, +Wikipedia: 2019 redefinition of the SI base units
    +
    +
      +
    • + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Interface Summary 
      InterfaceDescription
      Acceleration +
      Rate of change of velocity with respect to time.
      +
      AmountOfSubstance +
      Number of elementary entities (molecules, for example) of a substance.
      +
      Angle +
      Figure formed by two lines diverging from a common point.
      +
      Area +
      Extent of a planar region or of the surface of a solid measured in square units.
      +
      CatalyticActivity +
      Catalytic activity.
      +
      Dimensionless +
      Dimensionless quantity.
      +
      ElectricCapacitance +
      Electric capacitance.
      +
      ElectricCharge +
      Electric charge.
      +
      ElectricConductance +
      Electric conductance.
      +
      ElectricCurrent +
      Amount of electric charge flowing past a specified circuit point per unit time.
      +
      ElectricInductance +
      Electric inductance.
      +
      ElectricPotential +
      Electric potential or electromotive force.
      +
      ElectricResistance +
      Electric resistance.
      +
      Energy +
      Capacity of a physical system to do work.
      +
      Force +
      Quantity that tends to produce an acceleration of a body in the direction of its application.
      +
      Frequency +
      Number of times a specified phenomenon occurs within a specified interval.
      +
      Illuminance +
      Illuminance.
      +
      Length +
      Extent of something along its greatest dimension or the extent of space between two objects or places.
      +
      LuminousFlux +
      Luminous flux.
      +
      LuminousIntensity +
      Luminous flux density per solid angle as measured in a given direction relative to the emitting source.
      +
      MagneticFlux +
      Magnetic flux.
      +
      MagneticFluxDensity +
      Magnetic flux density.
      +
      Mass +
      Measure of the quantity of matter that a body or an object contains.
      +
      Power +
      Rate at which work is done.
      +
      Pressure +
      Force applied uniformly over a surface.
      +
      RadiationDoseAbsorbed +
      Amount of energy deposited per unit of mass.
      +
      RadiationDoseEffective +
      Effective (or "equivalent") dose of radiation received by a human or some other living organism.
      +
      Radioactivity +
      Radioactive activity.
      +
      SolidAngle +
      Angle formed by three or more planes intersecting at a common point.
      +
      Speed +
      Distance traveled divided by the time of travel.
      +
      Temperature +
      Degree of hotness or coldness of a body or an environment.
      +
      Time +
      Period of existence or persistence.
      +
      Volume +
      Amount of space occupied by a three-dimensional object or region of space.
      +
      +
    • +
    +
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/package-tree.html b/site/apidocs/javax/measure/quantity/package-tree.html new file mode 100644 index 00000000..df3baed5 --- /dev/null +++ b/site/apidocs/javax/measure/quantity/package-tree.html @@ -0,0 +1,198 @@ + + + + + +javax.measure.quantity Class Hierarchy (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Hierarchy For Package javax.measure.quantity

    +Package Hierarchies: + +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/quantity/package-use.html b/site/apidocs/javax/measure/quantity/package-use.html new file mode 100644 index 00000000..172fed1f --- /dev/null +++ b/site/apidocs/javax/measure/quantity/package-use.html @@ -0,0 +1,153 @@ + + + + + +Uses of Package javax.measure.quantity (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Package
    javax.measure.quantity

    +
    +
    No usage of javax.measure.quantity
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/spi/FormatService.FormatType.html b/site/apidocs/javax/measure/spi/FormatService.FormatType.html new file mode 100644 index 00000000..bc4df2a4 --- /dev/null +++ b/site/apidocs/javax/measure/spi/FormatService.FormatType.html @@ -0,0 +1,383 @@ + + + + + +FormatService.FormatType (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Enum FormatService.FormatType

    +
    +
    + +
    + +
    +
    + +
    +
    +
      +
    • + + + +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          values

          +
          public static FormatService.FormatType[] values​()
          +
          Returns an array containing the constants of this enum type, in +the order they are declared. This method may be used to iterate +over the constants as follows: +
          +for (FormatService.FormatType c : FormatService.FormatType.values())
          +    System.out.println(c);
          +
          +
          +
          Returns:
          +
          an array containing the constants of this enum type, in the order they are declared
          +
          +
        • +
        + + + +
          +
        • +

          valueOf

          +
          public static FormatService.FormatType valueOf​(String name)
          +
          Returns the enum constant of this type with the specified name. +The string must match exactly an identifier used to declare an +enum constant in this type. (Extraneous whitespace characters are +not permitted.)
          +
          +
          Parameters:
          +
          name - the name of the enum constant to be returned.
          +
          Returns:
          +
          the enum constant with the specified name
          +
          Throws:
          +
          IllegalArgumentException - if this enum type has no constant with the specified name
          +
          NullPointerException - if the argument is null
          +
          +
        • +
        +
      • +
      +
    • +
    +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/spi/FormatService.html b/site/apidocs/javax/measure/spi/FormatService.html new file mode 100644 index 00000000..4b455ef6 --- /dev/null +++ b/site/apidocs/javax/measure/spi/FormatService.html @@ -0,0 +1,355 @@ + + + + + +FormatService (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Interface FormatService

    +
    +
    +
    + +
    +
    + +
    +
    +
      +
    • + +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          getQuantityFormat

          +
          QuantityFormat getQuantityFormat​()
          +
          Returns the default quantity format. + + It is up to implementations what to consider a suitable default. For some (locale-sensitive) implementations it may be a quantity format based on + Locale.current() while others may return getQuantityFormat("Simple") or getQuantityFormat("ISO").
          +
          +
          Returns:
          +
          the default QuantityFormat implementation.
          +
          +
        • +
        + + + +
          +
        • +

          getQuantityFormat

          +
          QuantityFormat getQuantityFormat​(String name)
          +
          Returns the quantity format having the specified name or null if none. + + For example (@code getQuantityFormat("Simple")} to return the simple QuantityFormat implementation.
          +
          +
          Parameters:
          +
          name - the name of the format.
          +
          Returns:
          +
          the corresponding quantity format.
          +
          +
        • +
        + + + +
          +
        • +

          getAvailableFormatNames

          +
          Set<String> getAvailableFormatNames​(FormatService.FormatType type)
          +
          Gets a list with available format names of a given type for this format service.
          +
          +
          Parameters:
          +
          type - the FormatService.FormatType
          +
          Returns:
          +
          list of available formats, never null.
          +
          +
        • +
        +
      • +
      +
    • +
    +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/spi/QuantityFactory.html b/site/apidocs/javax/measure/spi/QuantityFactory.html new file mode 100644 index 00000000..23c3e6db --- /dev/null +++ b/site/apidocs/javax/measure/spi/QuantityFactory.html @@ -0,0 +1,349 @@ + + + + + +QuantityFactory (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Interface QuantityFactory<Q extends Quantity<Q>>

    +
    +
    +
    + +
    +
    + +
    +
    +
      +
    • + +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          create

          +
          Quantity<Q> create​(Number value,
          +                   Unit<Q> unit,
          +                   Quantity.Scale scale)
          +
          Returns the quantity for the specified number stated in the specified unit and scale.
          +
          +
          Parameters:
          +
          value - the numeric value stated in the specified unit
          +
          unit - the unit
          +
          scale - The ABSOLUTE / RELATIVE scale of this quantity
          +
          Returns:
          +
          the corresponding quantity
          +
          Since:
          +
          2.0
          +
          +
        • +
        + + + +
          +
        • +

          create

          +
          Quantity<Q> create​(Number value,
          +                   Unit<Q> unit)
          +
          Returns the quantity for the specified number stated in the specified unit.
          +
          +
          Parameters:
          +
          value - the numeric value stated in the specified unit
          +
          unit - the unit
          +
          Returns:
          +
          the corresponding quantity
          +
          +
        • +
        + + + +
          +
        • +

          getSystemUnit

          +
          Unit<Q> getSystemUnit​()
          +
          Returns the system unit for quantities produced by this factory or null if unknown. + +

          + Because the system unit is unique by quantity type, it can be be used to identify the quantity given the unit. For example: +

          + +
          +     static boolean isAngularSpeed(Unit<?> unit) {
          +         return unit.getSystemUnit().equals(RADIAN.divide(SECOND));
          +     }
          +     assert isAngularSpeed(REVOLUTION.divide(MINUTE)); // Returns true.
          + 
          +
          +
          Returns:
          +
          the system unit for this factory.
          +
          See Also:
          +
          Unit.getSystemUnit()
          +
          +
        • +
        +
      • +
      +
    • +
    +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/spi/ServiceProvider.html b/site/apidocs/javax/measure/spi/ServiceProvider.html new file mode 100644 index 00000000..ba570ab8 --- /dev/null +++ b/site/apidocs/javax/measure/spi/ServiceProvider.html @@ -0,0 +1,553 @@ + + + + + +ServiceProvider (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Class ServiceProvider

    +
    +
    +
      +
    • Object
    • +
    • +
        +
      • ServiceProvider
      • +
      +
    • +
    +
    +
      +
    • +
      +
      +
      public abstract class ServiceProvider
      +extends Object
      +
      Service Provider for Units of Measurement services. +

      + All the methods in this class are safe to use by multiple concurrent threads. +

      +
      +
      Since:
      +
      1.0
      +
      Version:
      +
      1.6, January 20, 2019
      +
      Author:
      +
      Werner Keil, Martin Desruisseaux
      +
      +
    • +
    +
    +
    + +
    +
    +
      +
    • + +
        +
      • + + +

        Constructor Detail

        + + + +
          +
        • +

          ServiceProvider

          +
          protected ServiceProvider​()
          +
          Creates a new service provider. Only to be used by subclasses.
          +
        • +
        +
      • +
      + +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          getPriority

          +
          public int getPriority​()
          +
          Allows to define a priority for a registered ServiceProvider instance. + When multiple providers are registered in the system, the provider with the highest priority value is taken. + +

          If the annotation (from JSR-250) is present on the ServiceProvider + implementation class, then that annotation is taken and this getPriority() method is ignored. + Otherwise – if the Priority annotation is absent – this method is used as a fallback.

          +
          +
          Returns:
          +
          the provider's priority (default is 0).
          +
          +
        • +
        + + + + + + + +
          +
        • +

          getUnitFormatService

          +
          @Deprecated
          +public abstract UnitFormatService getUnitFormatService​()
          +
          Deprecated. Use getFormatService(). This method will be removed in a future version, it is here for backward compatibility only.
          +
          Returns the service to obtain a UnitFormat, or null if none.
          +
          +
          Returns:
          +
          the service to obtain a UnitFormat, or null.
          +
          +
        • +
        + + + + + + + +
          +
        • +

          getQuantityFactory

          +
          public abstract <Q extends Quantity<Q>> QuantityFactory<Q> getQuantityFactory​(Class<Q> quantity)
          +
          Returns a factory for the given Quantity type.
          +
          +
          Type Parameters:
          +
          Q - the type of the Quantity instances created by the factory
          +
          Parameters:
          +
          quantity - the quantity type
          +
          Returns:
          +
          the QuantityFactory for the given type
          +
          +
        • +
        + + + +
          +
        • +

          available

          +
          public static final List<ServiceProvider> available​()
          +
          Returns the list of all service providers available for the current thread's context class loader. + The current service provider is always the first item in the returned list. + Other service providers after the first item may depend on the caller thread + (see service loader API note).
          +
          +
          Returns:
          +
          all service providers available for the current thread's context class loader.
          +
          +
        • +
        + + + +
          +
        • +

          of

          +
          public static ServiceProvider of​(String name)
          +
          Returns the ServiceProvider with the specified name. + The given name must match the name of at least one service provider available in the current thread's + context class loader. The service provider names are the values of annotations + when present, or the value of Object.toString() method for providers without Named annotation. + +

          Implementors are encouraged to provide an Named annotation or to override Object.toString() + and use a unique enough name, e.g. the class name or other distinct attributes. + Should multiple service providers nevertheless use the same name, the one with the highest + priority wins.

          +
          +
          Parameters:
          +
          name - the name of the service provider to return
          +
          Returns:
          +
          the ServiceProvider with the specified name
          +
          Throws:
          +
          IllegalArgumentException - if available service providers do not contain a provider with the specified name
          +
          NullPointerException - if name is null
          +
          Since:
          +
          2.0
          +
          See Also:
          +
          Object.toString()
          +
          +
        • +
        + + + + + + + + +
      • +
      +
    • +
    +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/spi/SystemOfUnits.html b/site/apidocs/javax/measure/spi/SystemOfUnits.html new file mode 100644 index 00000000..ef146636 --- /dev/null +++ b/site/apidocs/javax/measure/spi/SystemOfUnits.html @@ -0,0 +1,370 @@ + + + + + +SystemOfUnits (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Interface SystemOfUnits

    +
    +
    +
    +
      +
    • +
      +
      +
      public interface SystemOfUnits
      +
      A system of units grouped together for historical or cultural reasons.
      + Common system of units are "SI" (System International), "Imperial" (British), "US" (US Customary). Nothing prevents a unit from belonging to + several systems of units at the same time (for example an Imperial system would have many of the units held by the US Customary + system).
      +
      +
      Since:
      +
      1.0
      +
      Version:
      +
      1.1, June 21, 2018
      +
      Author:
      +
      Jean-Marie Dautelle, Werner Keil
      +
      See Also:
      +
      Wikipedia: International System of Units, + Wikipedia: System of measurement
      +
      +
    • +
    +
    +
    +
      +
    • + +
        +
      • + + +

        Method Summary

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        All Methods Instance Methods Abstract Methods 
        Modifier and TypeMethodDescription
        StringgetName​() 
        <Q extends Quantity<Q>>
        Unit<Q>
        getUnit​(Class<Q> quantityType) +
        Returns the default unit for the specified quantity or null if none is defined for the given quantity in this unit system.
        +
        Unit<?>getUnit​(String string) +
        Returns a unit with the given string representation or null if none is found in this unit system.
        +
        Set<? extends Unit<?>>getUnits​() +
        Returns a read only view over the units explicitly defined by this system.
        +
        Set<? extends Unit<?>>getUnits​(Dimension dimension) +
        Returns the units defined in this system having the specified dimension (convenience method).
        +
        +
      • +
      +
    • +
    +
    +
    +
      +
    • + +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          getName

          +
          String getName​()
          +
          +
          Returns:
          +
          a name
          +
          +
        • +
        + + + +
          +
        • +

          getUnit

          +
          <Q extends Quantity<Q>> Unit<Q> getUnit​(Class<Q> quantityType)
          +
          Returns the default unit for the specified quantity or null if none is defined for the given quantity in this unit system.
          +
          +
          Type Parameters:
          +
          Q - the compile-time quantity type.
          +
          Parameters:
          +
          quantityType - the quantity type.
          +
          Returns:
          +
          the unit for the specified quantity.
          +
          +
        • +
        + + + +
          +
        • +

          getUnit

          +
          Unit<?> getUnit​(String string)
          +
          Returns a unit with the given string representation or null if none is found in this unit system.
          +
          +
          Parameters:
          +
          string - the string representation of a unit, not null.
          +
          Returns:
          +
          the unit with the given string representation.
          +
          Since:
          +
          2.0
          +
          +
        • +
        + + + +
          +
        • +

          getUnits

          +
          Set<? extends Unit<?>> getUnits​()
          +
          Returns a read only view over the units explicitly defined by this system. This include the base and derived units which are assigned a special + name and symbol. This set does not include new units created by arithmetic or other operations.
          +
          +
          Returns:
          +
          the defined collection of units.
          +
          +
        • +
        + + + +
          +
        • +

          getUnits

          +
          Set<? extends Unit<?>> getUnits​(Dimension dimension)
          +
          Returns the units defined in this system having the specified dimension (convenience method).
          +
          +
          Parameters:
          +
          dimension - the dimension of the units to be returned.
          +
          Returns:
          +
          the collection of units of specified dimension.
          +
          +
        • +
        +
      • +
      +
    • +
    +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/spi/SystemOfUnitsService.html b/site/apidocs/javax/measure/spi/SystemOfUnitsService.html new file mode 100644 index 00000000..25bd30f2 --- /dev/null +++ b/site/apidocs/javax/measure/spi/SystemOfUnitsService.html @@ -0,0 +1,376 @@ + + + + + +SystemOfUnitsService (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Interface SystemOfUnitsService

    +
    +
    +
    + +
    +
    + +
    +
    +
      +
    • + +
        +
      • + + +

        Method Detail

        + + + + + + + +
          +
        • +

          getSystemOfUnits

          +
          SystemOfUnits getSystemOfUnits​(String name)
          +
          Returns the system of units having the specified name or null if + none is found.
          +
          +
          Parameters:
          +
          name - the system of unit name.
          +
          Returns:
          +
          the system of units for the given name.
          +
          +
        • +
        + + + +
          +
        • +

          getAvailableSystemsOfUnits

          +
          Collection<SystemOfUnits> getAvailableSystemsOfUnits​()
          +
          Gets a list with available systems for this SystemOfUnitsService.
          +
          +
          Returns:
          +
          list of available systems of units, never null.
          +
          +
        • +
        + + + +
          +
        • +

          getPrefixes

          +
          default <P extends PrefixSet<P> getPrefixes​(Class<P> prefixType)
          +
          Returns a Set containing the values of a particular Prefix + type. + +

          + This method may be used to iterate over certain prefixes as follows: +

          +
          
          +    for(MetricPrefix mp : service.getPrefixes(MetricPrefix.class))
          +        System.out.println(p);
          + 
          + + The default implementation assumes that prefixes of the given type are implemented as an enumeration. + This is the case of the two default prefix implementations provided in JSR 385, + namely MetricPrefix and BinaryPrefix. + Implementors shall override this method if they provide prefixes implemented in a different way.
          +
          +
          Type Parameters:
          +
          P - compile-time value of the prefixType argument
          +
          Parameters:
          +
          prefixType - the Prefix type
          +
          Returns:
          +
          a set containing the constant values of this Prefix type, in the + order they're declared
          +
          Throws:
          +
          ClassCastException - if the class is not compatible with the desired + Prefix implementation or does not implement Prefix at all.
          +
          Since:
          +
          2.0
          +
          +
        • +
        +
      • +
      +
    • +
    +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/spi/UnitFormatService.html b/site/apidocs/javax/measure/spi/UnitFormatService.html new file mode 100644 index 00000000..94f28b94 --- /dev/null +++ b/site/apidocs/javax/measure/spi/UnitFormatService.html @@ -0,0 +1,329 @@ + + + + + +UnitFormatService (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Interface UnitFormatService

    +
    +
    +
    +
      +
    • +
      +
      All Known Subinterfaces:
      +
      FormatService
      +
      +
      +
      +
      public interface UnitFormatService
      +
      This interface represent the service to obtain UnitFormat instances.
      +
      + Note: This parent interface remains separate for backward-compatibility, it will be merged into FormatService in a future version.
      +
      +
      Since:
      +
      1.0
      +
      Version:
      +
      1.2.2, March 11, 2019
      +
      Author:
      +
      Jean-Marie Dautelle, Werner Keil
      +
      +
    • +
    +
    +
    + +
    +
    +
      +
    • + +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          getUnitFormat

          +
          UnitFormat getUnitFormat​()
          +
          Returns the default unit format. + + It is up to implementations what to consider a suitable default. For some (locale-sensitive) implementations it may be a unit format based on + Locale.current() while others may return getUnitFormat("Simple") or getUnitFormat("ISO").
          +
          +
          Returns:
          +
          the default UnitFormat implementation.
          +
          +
        • +
        + + + +
          +
        • +

          getUnitFormat

          +
          UnitFormat getUnitFormat​(String name)
          +
          Returns the unit format having the specified name or null if none. + + For example getUnitFormat("Simple") to return a simple UnitFormat implementation.
          +
          +
          Parameters:
          +
          name - the name of the format.
          +
          Returns:
          +
          the corresponding unit format.
          +
          +
        • +
        + + + +
          +
        • +

          getAvailableFormatNames

          +
          Set<String> getAvailableFormatNames​()
          +
          Deprecated. use in FormatService instead.
          +
          Gets a list with available format names for this format service.
          +
          +
          Returns:
          +
          list of available formats, never null.
          +
          +
        • +
        +
      • +
      +
    • +
    +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/spi/class-use/FormatService.FormatType.html b/site/apidocs/javax/measure/spi/class-use/FormatService.FormatType.html new file mode 100644 index 00000000..a1f334bd --- /dev/null +++ b/site/apidocs/javax/measure/spi/class-use/FormatService.FormatType.html @@ -0,0 +1,224 @@ + + + + + +Uses of Class javax.measure.spi.FormatService.FormatType (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Class
    javax.measure.spi.FormatService.FormatType

    +
    +
    + +
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/spi/class-use/FormatService.html b/site/apidocs/javax/measure/spi/class-use/FormatService.html new file mode 100644 index 00000000..e5643cbc --- /dev/null +++ b/site/apidocs/javax/measure/spi/class-use/FormatService.html @@ -0,0 +1,199 @@ + + + + + +Uses of Interface javax.measure.spi.FormatService (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Interface
    javax.measure.spi.FormatService

    +
    +
    + +
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/spi/class-use/QuantityFactory.html b/site/apidocs/javax/measure/spi/class-use/QuantityFactory.html new file mode 100644 index 00000000..605aedeb --- /dev/null +++ b/site/apidocs/javax/measure/spi/class-use/QuantityFactory.html @@ -0,0 +1,199 @@ + + + + + +Uses of Interface javax.measure.spi.QuantityFactory (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Interface
    javax.measure.spi.QuantityFactory

    +
    +
    + +
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/spi/class-use/ServiceProvider.html b/site/apidocs/javax/measure/spi/class-use/ServiceProvider.html new file mode 100644 index 00000000..a3097a06 --- /dev/null +++ b/site/apidocs/javax/measure/spi/class-use/ServiceProvider.html @@ -0,0 +1,247 @@ + + + + + +Uses of Class javax.measure.spi.ServiceProvider (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Class
    javax.measure.spi.ServiceProvider

    +
    +
    + +
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/spi/class-use/SystemOfUnits.html b/site/apidocs/javax/measure/spi/class-use/SystemOfUnits.html new file mode 100644 index 00000000..a17609f7 --- /dev/null +++ b/site/apidocs/javax/measure/spi/class-use/SystemOfUnits.html @@ -0,0 +1,224 @@ + + + + + +Uses of Interface javax.measure.spi.SystemOfUnits (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Interface
    javax.measure.spi.SystemOfUnits

    +
    +
    + +
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/spi/class-use/SystemOfUnitsService.html b/site/apidocs/javax/measure/spi/class-use/SystemOfUnitsService.html new file mode 100644 index 00000000..975f2c8d --- /dev/null +++ b/site/apidocs/javax/measure/spi/class-use/SystemOfUnitsService.html @@ -0,0 +1,199 @@ + + + + + +Uses of Interface javax.measure.spi.SystemOfUnitsService (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Interface
    javax.measure.spi.SystemOfUnitsService

    +
    +
    + +
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/spi/class-use/UnitFormatService.html b/site/apidocs/javax/measure/spi/class-use/UnitFormatService.html new file mode 100644 index 00000000..45a452d6 --- /dev/null +++ b/site/apidocs/javax/measure/spi/class-use/UnitFormatService.html @@ -0,0 +1,218 @@ + + + + + +Uses of Interface javax.measure.spi.UnitFormatService (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Interface
    javax.measure.spi.UnitFormatService

    +
    +
    + +
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/spi/package-frame.html b/site/apidocs/javax/measure/spi/package-frame.html new file mode 100644 index 00000000..039e5185 --- /dev/null +++ b/site/apidocs/javax/measure/spi/package-frame.html @@ -0,0 +1,42 @@ + + + + + +javax.measure.spi (Units of Measurement API 2.0 API) + + + + + + + + + + + + + +

    javax.measure.spi

    + + + diff --git a/site/apidocs/javax/measure/spi/package-summary.html b/site/apidocs/javax/measure/spi/package-summary.html new file mode 100644 index 00000000..9d9d8142 --- /dev/null +++ b/site/apidocs/javax/measure/spi/package-summary.html @@ -0,0 +1,243 @@ + + + + + +javax.measure.spi (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Package javax.measure.spi

    +
    +
    +
    [OPTIONAL] The Units of Measurement SPI. Provides services for units, quantities, unit systems and formatters/parsers.
    +
    +
    Since:
    +
    1.0
    +
    Version:
    +
    2.0, July 7, 2019
    +
    Author:
    +
    Jean-Marie Dautelle, Werner Keil, Martin Desruisseaux
    +
    +
      +
    • + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Interface Summary 
      InterfaceDescription
      FormatService +
      This interface represent the service to obtain instances of UnitFormat and QuantityFormat.
      +
      QuantityFactory<Q extends Quantity<Q>> +
      Represents a factory that accepts Number and Unit arguments to create Quantity results.
      +
      SystemOfUnits +
      A system of units grouped together for historical or cultural reasons.
      + Common system of units are "SI" (System International), "Imperial" (British), "US" (US Customary).
      +
      SystemOfUnitsService +
      This interface represents the service to obtain a system + of units.
      +
      UnitFormatService +
      This interface represent the service to obtain UnitFormat instances.
      +
      + Note: This parent interface remains separate for backward-compatibility, it will be merged into FormatService in a future version.
      +
      +
    • +
    • + + + + + + + + + + + + +
      Class Summary 
      ClassDescription
      ServiceProvider +
      Service Provider for Units of Measurement services.
      +
      +
    • +
    • + + + + + + + + + + + + +
      Enum Summary 
      EnumDescription
      FormatService.FormatType 
      +
    • +
    +
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/spi/package-tree.html b/site/apidocs/javax/measure/spi/package-tree.html new file mode 100644 index 00000000..bb9d7e93 --- /dev/null +++ b/site/apidocs/javax/measure/spi/package-tree.html @@ -0,0 +1,189 @@ + + + + + +javax.measure.spi Class Hierarchy (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Hierarchy For Package javax.measure.spi

    +Package Hierarchies: + +
    +
    +

    Class Hierarchy

    + +

    Interface Hierarchy

    + +

    Enum Hierarchy

    + +
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/javax/measure/spi/package-use.html b/site/apidocs/javax/measure/spi/package-use.html new file mode 100644 index 00000000..2eefc934 --- /dev/null +++ b/site/apidocs/javax/measure/spi/package-use.html @@ -0,0 +1,230 @@ + + + + + +Uses of Package javax.measure.spi (Units of Measurement API 2.0 API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Package
    javax.measure.spi

    +
    +
    + +
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/apidocs/jquery/external/jquery/jquery.js b/site/apidocs/jquery/external/jquery/jquery.js new file mode 100644 index 00000000..c5c64825 --- /dev/null +++ b/site/apidocs/jquery/external/jquery/jquery.js @@ -0,0 +1,9789 @@ +/*! + * jQuery JavaScript Library v1.10.2 + * http://jquery.com/ + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * + * Copyright 2005, 2013 jQuery Foundation, Inc. and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2013-07-03T13:48Z + */ +(function( window, undefined ) { + +// Can't do this because several apps including ASP.NET trace +// the stack via arguments.caller.callee and Firefox dies if +// you try to trace through "use strict" call chains. (#13335) +// Support: Firefox 18+ +//"use strict"; +var + // The deferred used on DOM ready + readyList, + + // A central reference to the root jQuery(document) + rootjQuery, + + // Support: IE<10 + // For `typeof xmlNode.method` instead of `xmlNode.method !== undefined` + core_strundefined = typeof undefined, + + // Use the correct document accordingly with window argument (sandbox) + location = window.location, + document = window.document, + docElem = document.documentElement, + + // Map over jQuery in case of overwrite + _jQuery = window.jQuery, + + // Map over the $ in case of overwrite + _$ = window.$, + + // [[Class]] -> type pairs + class2type = {}, + + // List of deleted data cache ids, so we can reuse them + core_deletedIds = [], + + core_version = "1.10.2", + + // Save a reference to some core methods + core_concat = core_deletedIds.concat, + core_push = core_deletedIds.push, + core_slice = core_deletedIds.slice, + core_indexOf = core_deletedIds.indexOf, + core_toString = class2type.toString, + core_hasOwn = class2type.hasOwnProperty, + core_trim = core_version.trim, + + // Define a local copy of jQuery + jQuery = function( selector, context ) { + // The jQuery object is actually just the init constructor 'enhanced' + return new jQuery.fn.init( selector, context, rootjQuery ); + }, + + // Used for matching numbers + core_pnum = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, + + // Used for splitting on whitespace + core_rnotwhite = /\S+/g, + + // Make sure we trim BOM and NBSP (here's looking at you, Safari 5.0 and IE) + rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, + + // A simple way to check for HTML strings + // Prioritize #id over to avoid XSS via location.hash (#9521) + // Strict HTML recognition (#11290: must start with <) + rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/, + + // Match a standalone tag + rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>|)$/, + + // JSON RegExp + rvalidchars = /^[\],:{}\s]*$/, + rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g, + rvalidescape = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g, + rvalidtokens = /"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g, + + // Matches dashed string for camelizing + rmsPrefix = /^-ms-/, + rdashAlpha = /-([\da-z])/gi, + + // Used by jQuery.camelCase as callback to replace() + fcamelCase = function( all, letter ) { + return letter.toUpperCase(); + }, + + // The ready event handler + completed = function( event ) { + + // readyState === "complete" is good enough for us to call the dom ready in oldIE + if ( document.addEventListener || event.type === "load" || document.readyState === "complete" ) { + detach(); + jQuery.ready(); + } + }, + // Clean-up method for dom ready events + detach = function() { + if ( document.addEventListener ) { + document.removeEventListener( "DOMContentLoaded", completed, false ); + window.removeEventListener( "load", completed, false ); + + } else { + document.detachEvent( "onreadystatechange", completed ); + window.detachEvent( "onload", completed ); + } + }; + +jQuery.fn = jQuery.prototype = { + // The current version of jQuery being used + jquery: core_version, + + constructor: jQuery, + init: function( selector, context, rootjQuery ) { + var match, elem; + + // HANDLE: $(""), $(null), $(undefined), $(false) + if ( !selector ) { + return this; + } + + // Handle HTML strings + if ( typeof selector === "string" ) { + if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) { + // Assume that strings that start and end with <> are HTML and skip the regex check + match = [ null, selector, null ]; + + } else { + match = rquickExpr.exec( selector ); + } + + // Match html or make sure no context is specified for #id + if ( match && (match[1] || !context) ) { + + // HANDLE: $(html) -> $(array) + if ( match[1] ) { + context = context instanceof jQuery ? context[0] : context; + + // scripts is true for back-compat + jQuery.merge( this, jQuery.parseHTML( + match[1], + context && context.nodeType ? context.ownerDocument || context : document, + true + ) ); + + // HANDLE: $(html, props) + if ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) { + for ( match in context ) { + // Properties of context are called as methods if possible + if ( jQuery.isFunction( this[ match ] ) ) { + this[ match ]( context[ match ] ); + + // ...and otherwise set as attributes + } else { + this.attr( match, context[ match ] ); + } + } + } + + return this; + + // HANDLE: $(#id) + } else { + elem = document.getElementById( match[2] ); + + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + if ( elem && elem.parentNode ) { + // Handle the case where IE and Opera return items + // by name instead of ID + if ( elem.id !== match[2] ) { + return rootjQuery.find( selector ); + } + + // Otherwise, we inject the element directly into the jQuery object + this.length = 1; + this[0] = elem; + } + + this.context = document; + this.selector = selector; + return this; + } + + // HANDLE: $(expr, $(...)) + } else if ( !context || context.jquery ) { + return ( context || rootjQuery ).find( selector ); + + // HANDLE: $(expr, context) + // (which is just equivalent to: $(context).find(expr) + } else { + return this.constructor( context ).find( selector ); + } + + // HANDLE: $(DOMElement) + } else if ( selector.nodeType ) { + this.context = this[0] = selector; + this.length = 1; + return this; + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( jQuery.isFunction( selector ) ) { + return rootjQuery.ready( selector ); + } + + if ( selector.selector !== undefined ) { + this.selector = selector.selector; + this.context = selector.context; + } + + return jQuery.makeArray( selector, this ); + }, + + // Start with an empty selector + selector: "", + + // The default length of a jQuery object is 0 + length: 0, + + toArray: function() { + return core_slice.call( this ); + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + return num == null ? + + // Return a 'clean' array + this.toArray() : + + // Return just the object + ( num < 0 ? this[ this.length + num ] : this[ num ] ); + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems ) { + + // Build a new jQuery matched element set + var ret = jQuery.merge( this.constructor(), elems ); + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + ret.context = this.context; + + // Return the newly-formed element set + return ret; + }, + + // Execute a callback for every element in the matched set. + // (You can seed the arguments with an array of args, but this is + // only used internally.) + each: function( callback, args ) { + return jQuery.each( this, callback, args ); + }, + + ready: function( fn ) { + // Add the callback + jQuery.ready.promise().done( fn ); + + return this; + }, + + slice: function() { + return this.pushStack( core_slice.apply( this, arguments ) ); + }, + + first: function() { + return this.eq( 0 ); + }, + + last: function() { + return this.eq( -1 ); + }, + + eq: function( i ) { + var len = this.length, + j = +i + ( i < 0 ? len : 0 ); + return this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map(this, function( elem, i ) { + return callback.call( elem, i, elem ); + })); + }, + + end: function() { + return this.prevObject || this.constructor(null); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: core_push, + sort: [].sort, + splice: [].splice +}; + +// Give the init function the jQuery prototype for later instantiation +jQuery.fn.init.prototype = jQuery.fn; + +jQuery.extend = jQuery.fn.extend = function() { + var src, copyIsArray, copy, name, options, clone, + target = arguments[0] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + target = arguments[1] || {}; + // skip the boolean and the target + i = 2; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !jQuery.isFunction(target) ) { + target = {}; + } + + // extend jQuery itself if only one argument is passed + if ( length === i ) { + target = this; + --i; + } + + for ( ; i < length; i++ ) { + // Only deal with non-null/undefined values + if ( (options = arguments[ i ]) != null ) { + // Extend the base object + for ( name in options ) { + src = target[ name ]; + copy = options[ name ]; + + // Prevent never-ending loop + if ( target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) { + if ( copyIsArray ) { + copyIsArray = false; + clone = src && jQuery.isArray(src) ? src : []; + + } else { + clone = src && jQuery.isPlainObject(src) ? src : {}; + } + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; +}; + +jQuery.extend({ + // Unique for each copy of jQuery on the page + // Non-digits removed to match rinlinejQuery + expando: "jQuery" + ( core_version + Math.random() ).replace( /\D/g, "" ), + + noConflict: function( deep ) { + if ( window.$ === jQuery ) { + window.$ = _$; + } + + if ( deep && window.jQuery === jQuery ) { + window.jQuery = _jQuery; + } + + return jQuery; + }, + + // Is the DOM ready to be used? Set to true once it occurs. + isReady: false, + + // A counter to track how many items to wait for before + // the ready event fires. See #6781 + readyWait: 1, + + // Hold (or release) the ready event + holdReady: function( hold ) { + if ( hold ) { + jQuery.readyWait++; + } else { + jQuery.ready( true ); + } + }, + + // Handle when the DOM is ready + ready: function( wait ) { + + // Abort if there are pending holds or we're already ready + if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { + return; + } + + // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). + if ( !document.body ) { + return setTimeout( jQuery.ready ); + } + + // Remember that the DOM is ready + jQuery.isReady = true; + + // If a normal DOM Ready event fired, decrement, and wait if need be + if ( wait !== true && --jQuery.readyWait > 0 ) { + return; + } + + // If there are functions bound, to execute + readyList.resolveWith( document, [ jQuery ] ); + + // Trigger any bound ready events + if ( jQuery.fn.trigger ) { + jQuery( document ).trigger("ready").off("ready"); + } + }, + + // See test/unit/core.js for details concerning isFunction. + // Since version 1.3, DOM methods and functions like alert + // aren't supported. They return false on IE (#2968). + isFunction: function( obj ) { + return jQuery.type(obj) === "function"; + }, + + isArray: Array.isArray || function( obj ) { + return jQuery.type(obj) === "array"; + }, + + isWindow: function( obj ) { + /* jshint eqeqeq: false */ + return obj != null && obj == obj.window; + }, + + isNumeric: function( obj ) { + return !isNaN( parseFloat(obj) ) && isFinite( obj ); + }, + + type: function( obj ) { + if ( obj == null ) { + return String( obj ); + } + return typeof obj === "object" || typeof obj === "function" ? + class2type[ core_toString.call(obj) ] || "object" : + typeof obj; + }, + + isPlainObject: function( obj ) { + var key; + + // Must be an Object. + // Because of IE, we also have to check the presence of the constructor property. + // Make sure that DOM nodes and window objects don't pass through, as well + if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) { + return false; + } + + try { + // Not own constructor property must be Object + if ( obj.constructor && + !core_hasOwn.call(obj, "constructor") && + !core_hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) { + return false; + } + } catch ( e ) { + // IE8,9 Will throw exceptions on certain host objects #9897 + return false; + } + + // Support: IE<9 + // Handle iteration over inherited properties before own properties. + if ( jQuery.support.ownLast ) { + for ( key in obj ) { + return core_hasOwn.call( obj, key ); + } + } + + // Own properties are enumerated firstly, so to speed up, + // if last one is own, then all properties are own. + for ( key in obj ) {} + + return key === undefined || core_hasOwn.call( obj, key ); + }, + + isEmptyObject: function( obj ) { + var name; + for ( name in obj ) { + return false; + } + return true; + }, + + error: function( msg ) { + throw new Error( msg ); + }, + + // data: string of html + // context (optional): If specified, the fragment will be created in this context, defaults to document + // keepScripts (optional): If true, will include scripts passed in the html string + parseHTML: function( data, context, keepScripts ) { + if ( !data || typeof data !== "string" ) { + return null; + } + if ( typeof context === "boolean" ) { + keepScripts = context; + context = false; + } + context = context || document; + + var parsed = rsingleTag.exec( data ), + scripts = !keepScripts && []; + + // Single tag + if ( parsed ) { + return [ context.createElement( parsed[1] ) ]; + } + + parsed = jQuery.buildFragment( [ data ], context, scripts ); + if ( scripts ) { + jQuery( scripts ).remove(); + } + return jQuery.merge( [], parsed.childNodes ); + }, + + parseJSON: function( data ) { + // Attempt to parse using the native JSON parser first + if ( window.JSON && window.JSON.parse ) { + return window.JSON.parse( data ); + } + + if ( data === null ) { + return data; + } + + if ( typeof data === "string" ) { + + // Make sure leading/trailing whitespace is removed (IE can't handle it) + data = jQuery.trim( data ); + + if ( data ) { + // Make sure the incoming data is actual JSON + // Logic borrowed from http://json.org/json2.js + if ( rvalidchars.test( data.replace( rvalidescape, "@" ) + .replace( rvalidtokens, "]" ) + .replace( rvalidbraces, "")) ) { + + return ( new Function( "return " + data ) )(); + } + } + } + + jQuery.error( "Invalid JSON: " + data ); + }, + + // Cross-browser xml parsing + parseXML: function( data ) { + var xml, tmp; + if ( !data || typeof data !== "string" ) { + return null; + } + try { + if ( window.DOMParser ) { // Standard + tmp = new DOMParser(); + xml = tmp.parseFromString( data , "text/xml" ); + } else { // IE + xml = new ActiveXObject( "Microsoft.XMLDOM" ); + xml.async = "false"; + xml.loadXML( data ); + } + } catch( e ) { + xml = undefined; + } + if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) { + jQuery.error( "Invalid XML: " + data ); + } + return xml; + }, + + noop: function() {}, + + // Evaluates a script in a global context + // Workarounds based on findings by Jim Driscoll + // http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context + globalEval: function( data ) { + if ( data && jQuery.trim( data ) ) { + // We use execScript on Internet Explorer + // We use an anonymous function so that context is window + // rather than jQuery in Firefox + ( window.execScript || function( data ) { + window[ "eval" ].call( window, data ); + } )( data ); + } + }, + + // Convert dashed to camelCase; used by the css and data modules + // Microsoft forgot to hump their vendor prefix (#9572) + camelCase: function( string ) { + return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); + }, + + nodeName: function( elem, name ) { + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + }, + + // args is for internal usage only + each: function( obj, callback, args ) { + var value, + i = 0, + length = obj.length, + isArray = isArraylike( obj ); + + if ( args ) { + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback.apply( obj[ i ], args ); + + if ( value === false ) { + break; + } + } + } else { + for ( i in obj ) { + value = callback.apply( obj[ i ], args ); + + if ( value === false ) { + break; + } + } + } + + // A special, fast, case for the most common use of each + } else { + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback.call( obj[ i ], i, obj[ i ] ); + + if ( value === false ) { + break; + } + } + } else { + for ( i in obj ) { + value = callback.call( obj[ i ], i, obj[ i ] ); + + if ( value === false ) { + break; + } + } + } + } + + return obj; + }, + + // Use native String.trim function wherever possible + trim: core_trim && !core_trim.call("\uFEFF\xA0") ? + function( text ) { + return text == null ? + "" : + core_trim.call( text ); + } : + + // Otherwise use our own trimming functionality + function( text ) { + return text == null ? + "" : + ( text + "" ).replace( rtrim, "" ); + }, + + // results is for internal usage only + makeArray: function( arr, results ) { + var ret = results || []; + + if ( arr != null ) { + if ( isArraylike( Object(arr) ) ) { + jQuery.merge( ret, + typeof arr === "string" ? + [ arr ] : arr + ); + } else { + core_push.call( ret, arr ); + } + } + + return ret; + }, + + inArray: function( elem, arr, i ) { + var len; + + if ( arr ) { + if ( core_indexOf ) { + return core_indexOf.call( arr, elem, i ); + } + + len = arr.length; + i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0; + + for ( ; i < len; i++ ) { + // Skip accessing in sparse arrays + if ( i in arr && arr[ i ] === elem ) { + return i; + } + } + } + + return -1; + }, + + merge: function( first, second ) { + var l = second.length, + i = first.length, + j = 0; + + if ( typeof l === "number" ) { + for ( ; j < l; j++ ) { + first[ i++ ] = second[ j ]; + } + } else { + while ( second[j] !== undefined ) { + first[ i++ ] = second[ j++ ]; + } + } + + first.length = i; + + return first; + }, + + grep: function( elems, callback, inv ) { + var retVal, + ret = [], + i = 0, + length = elems.length; + inv = !!inv; + + // Go through the array, only saving the items + // that pass the validator function + for ( ; i < length; i++ ) { + retVal = !!callback( elems[ i ], i ); + if ( inv !== retVal ) { + ret.push( elems[ i ] ); + } + } + + return ret; + }, + + // arg is for internal usage only + map: function( elems, callback, arg ) { + var value, + i = 0, + length = elems.length, + isArray = isArraylike( elems ), + ret = []; + + // Go through the array, translating each of the items to their + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret[ ret.length ] = value; + } + } + + // Go through every key on the object, + } else { + for ( i in elems ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret[ ret.length ] = value; + } + } + } + + // Flatten any nested arrays + return core_concat.apply( [], ret ); + }, + + // A global GUID counter for objects + guid: 1, + + // Bind a function to a context, optionally partially applying any + // arguments. + proxy: function( fn, context ) { + var args, proxy, tmp; + + if ( typeof context === "string" ) { + tmp = fn[ context ]; + context = fn; + fn = tmp; + } + + // Quick check to determine if target is callable, in the spec + // this throws a TypeError, but we will just return undefined. + if ( !jQuery.isFunction( fn ) ) { + return undefined; + } + + // Simulated bind + args = core_slice.call( arguments, 2 ); + proxy = function() { + return fn.apply( context || this, args.concat( core_slice.call( arguments ) ) ); + }; + + // Set the guid of unique handler to the same of original handler, so it can be removed + proxy.guid = fn.guid = fn.guid || jQuery.guid++; + + return proxy; + }, + + // Multifunctional method to get and set values of a collection + // The value/s can optionally be executed if it's a function + access: function( elems, fn, key, value, chainable, emptyGet, raw ) { + var i = 0, + length = elems.length, + bulk = key == null; + + // Sets many values + if ( jQuery.type( key ) === "object" ) { + chainable = true; + for ( i in key ) { + jQuery.access( elems, fn, i, key[i], true, emptyGet, raw ); + } + + // Sets one value + } else if ( value !== undefined ) { + chainable = true; + + if ( !jQuery.isFunction( value ) ) { + raw = true; + } + + if ( bulk ) { + // Bulk operations run against the entire set + if ( raw ) { + fn.call( elems, value ); + fn = null; + + // ...except when executing function values + } else { + bulk = fn; + fn = function( elem, key, value ) { + return bulk.call( jQuery( elem ), value ); + }; + } + } + + if ( fn ) { + for ( ; i < length; i++ ) { + fn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) ); + } + } + } + + return chainable ? + elems : + + // Gets + bulk ? + fn.call( elems ) : + length ? fn( elems[0], key ) : emptyGet; + }, + + now: function() { + return ( new Date() ).getTime(); + }, + + // A method for quickly swapping in/out CSS properties to get correct calculations. + // Note: this method belongs to the css module but it's needed here for the support module. + // If support gets modularized, this method should be moved back to the css module. + swap: function( elem, options, callback, args ) { + var ret, name, + old = {}; + + // Remember the old values, and insert the new ones + for ( name in options ) { + old[ name ] = elem.style[ name ]; + elem.style[ name ] = options[ name ]; + } + + ret = callback.apply( elem, args || [] ); + + // Revert the old values + for ( name in options ) { + elem.style[ name ] = old[ name ]; + } + + return ret; + } +}); + +jQuery.ready.promise = function( obj ) { + if ( !readyList ) { + + readyList = jQuery.Deferred(); + + // Catch cases where $(document).ready() is called after the browser event has already occurred. + // we once tried to use readyState "interactive" here, but it caused issues like the one + // discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15 + if ( document.readyState === "complete" ) { + // Handle it asynchronously to allow scripts the opportunity to delay ready + setTimeout( jQuery.ready ); + + // Standards-based browsers support DOMContentLoaded + } else if ( document.addEventListener ) { + // Use the handy event callback + document.addEventListener( "DOMContentLoaded", completed, false ); + + // A fallback to window.onload, that will always work + window.addEventListener( "load", completed, false ); + + // If IE event model is used + } else { + // Ensure firing before onload, maybe late but safe also for iframes + document.attachEvent( "onreadystatechange", completed ); + + // A fallback to window.onload, that will always work + window.attachEvent( "onload", completed ); + + // If IE and not a frame + // continually check to see if the document is ready + var top = false; + + try { + top = window.frameElement == null && document.documentElement; + } catch(e) {} + + if ( top && top.doScroll ) { + (function doScrollCheck() { + if ( !jQuery.isReady ) { + + try { + // Use the trick by Diego Perini + // http://javascript.nwbox.com/IEContentLoaded/ + top.doScroll("left"); + } catch(e) { + return setTimeout( doScrollCheck, 50 ); + } + + // detach all dom ready events + detach(); + + // and execute any waiting functions + jQuery.ready(); + } + })(); + } + } + } + return readyList.promise( obj ); +}; + +// Populate the class2type map +jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); +}); + +function isArraylike( obj ) { + var length = obj.length, + type = jQuery.type( obj ); + + if ( jQuery.isWindow( obj ) ) { + return false; + } + + if ( obj.nodeType === 1 && length ) { + return true; + } + + return type === "array" || type !== "function" && + ( length === 0 || + typeof length === "number" && length > 0 && ( length - 1 ) in obj ); +} + +// All jQuery objects should point back to these +rootjQuery = jQuery(document); +/*! + * Sizzle CSS Selector Engine v1.10.2 + * http://sizzlejs.com/ + * + * Copyright 2013 jQuery Foundation, Inc. and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2013-07-03 + */ +(function( window, undefined ) { + +var i, + support, + cachedruns, + Expr, + getText, + isXML, + compile, + outermostContext, + sortInput, + + // Local document vars + setDocument, + document, + docElem, + documentIsHTML, + rbuggyQSA, + rbuggyMatches, + matches, + contains, + + // Instance-specific data + expando = "sizzle" + -(new Date()), + preferredDoc = window.document, + dirruns = 0, + done = 0, + classCache = createCache(), + tokenCache = createCache(), + compilerCache = createCache(), + hasDuplicate = false, + sortOrder = function( a, b ) { + if ( a === b ) { + hasDuplicate = true; + return 0; + } + return 0; + }, + + // General-purpose constants + strundefined = typeof undefined, + MAX_NEGATIVE = 1 << 31, + + // Instance methods + hasOwn = ({}).hasOwnProperty, + arr = [], + pop = arr.pop, + push_native = arr.push, + push = arr.push, + slice = arr.slice, + // Use a stripped-down indexOf if we can't use a native one + indexOf = arr.indexOf || function( elem ) { + var i = 0, + len = this.length; + for ( ; i < len; i++ ) { + if ( this[i] === elem ) { + return i; + } + } + return -1; + }, + + booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", + + // Regular expressions + + // Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace + whitespace = "[\\x20\\t\\r\\n\\f]", + // http://www.w3.org/TR/css3-syntax/#characters + characterEncoding = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", + + // Loosely modeled on CSS identifier characters + // An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors + // Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier + identifier = characterEncoding.replace( "w", "w#" ), + + // Acceptable operators http://www.w3.org/TR/selectors/#attribute-selectors + attributes = "\\[" + whitespace + "*(" + characterEncoding + ")" + whitespace + + "*(?:([*^$|!~]?=)" + whitespace + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + identifier + ")|)|)" + whitespace + "*\\]", + + // Prefer arguments quoted, + // then not containing pseudos/brackets, + // then attribute selectors/non-parenthetical expressions, + // then anything else + // These preferences are here to reduce the number of selectors + // needing tokenize in the PSEUDO preFilter + pseudos = ":(" + characterEncoding + ")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|" + attributes.replace( 3, 8 ) + ")*)|.*)\\)|)", + + // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), + + rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), + rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), + + rsibling = new RegExp( whitespace + "*[+~]" ), + rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*)" + whitespace + "*\\]", "g" ), + + rpseudo = new RegExp( pseudos ), + ridentifier = new RegExp( "^" + identifier + "$" ), + + matchExpr = { + "ID": new RegExp( "^#(" + characterEncoding + ")" ), + "CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ), + "TAG": new RegExp( "^(" + characterEncoding.replace( "w", "w*" ) + ")" ), + "ATTR": new RegExp( "^" + attributes ), + "PSEUDO": new RegExp( "^" + pseudos ), + "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), + // For use in libraries implementing .is() + // We use this for POS matching in `select` + "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + + whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + }, + + rnative = /^[^{]+\{\s*\[native \w/, + + // Easily-parseable/retrievable ID or TAG or CLASS selectors + rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + + rinputs = /^(?:input|select|textarea|button)$/i, + rheader = /^h\d$/i, + + rescape = /'|\\/g, + + // CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters + runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), + funescape = function( _, escaped, escapedWhitespace ) { + var high = "0x" + escaped - 0x10000; + // NaN means non-codepoint + // Support: Firefox + // Workaround erroneous numeric interpretation of +"0x" + return high !== high || escapedWhitespace ? + escaped : + // BMP codepoint + high < 0 ? + String.fromCharCode( high + 0x10000 ) : + // Supplemental Plane codepoint (surrogate pair) + String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); + }; + +// Optimize for push.apply( _, NodeList ) +try { + push.apply( + (arr = slice.call( preferredDoc.childNodes )), + preferredDoc.childNodes + ); + // Support: Android<4.0 + // Detect silently failing push.apply + arr[ preferredDoc.childNodes.length ].nodeType; +} catch ( e ) { + push = { apply: arr.length ? + + // Leverage slice if possible + function( target, els ) { + push_native.apply( target, slice.call(els) ); + } : + + // Support: IE<9 + // Otherwise append directly + function( target, els ) { + var j = target.length, + i = 0; + // Can't trust NodeList.length + while ( (target[j++] = els[i++]) ) {} + target.length = j - 1; + } + }; +} + +function Sizzle( selector, context, results, seed ) { + var match, elem, m, nodeType, + // QSA vars + i, groups, old, nid, newContext, newSelector; + + if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { + setDocument( context ); + } + + context = context || document; + results = results || []; + + if ( !selector || typeof selector !== "string" ) { + return results; + } + + if ( (nodeType = context.nodeType) !== 1 && nodeType !== 9 ) { + return []; + } + + if ( documentIsHTML && !seed ) { + + // Shortcuts + if ( (match = rquickExpr.exec( selector )) ) { + // Speed-up: Sizzle("#ID") + if ( (m = match[1]) ) { + if ( nodeType === 9 ) { + elem = context.getElementById( m ); + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + if ( elem && elem.parentNode ) { + // Handle the case where IE, Opera, and Webkit return items + // by name instead of ID + if ( elem.id === m ) { + results.push( elem ); + return results; + } + } else { + return results; + } + } else { + // Context is not a document + if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) && + contains( context, elem ) && elem.id === m ) { + results.push( elem ); + return results; + } + } + + // Speed-up: Sizzle("TAG") + } else if ( match[2] ) { + push.apply( results, context.getElementsByTagName( selector ) ); + return results; + + // Speed-up: Sizzle(".CLASS") + } else if ( (m = match[3]) && support.getElementsByClassName && context.getElementsByClassName ) { + push.apply( results, context.getElementsByClassName( m ) ); + return results; + } + } + + // QSA path + if ( support.qsa && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { + nid = old = expando; + newContext = context; + newSelector = nodeType === 9 && selector; + + // qSA works strangely on Element-rooted queries + // We can work around this by specifying an extra ID on the root + // and working up from there (Thanks to Andrew Dupont for the technique) + // IE 8 doesn't work on object elements + if ( nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) { + groups = tokenize( selector ); + + if ( (old = context.getAttribute("id")) ) { + nid = old.replace( rescape, "\\$&" ); + } else { + context.setAttribute( "id", nid ); + } + nid = "[id='" + nid + "'] "; + + i = groups.length; + while ( i-- ) { + groups[i] = nid + toSelector( groups[i] ); + } + newContext = rsibling.test( selector ) && context.parentNode || context; + newSelector = groups.join(","); + } + + if ( newSelector ) { + try { + push.apply( results, + newContext.querySelectorAll( newSelector ) + ); + return results; + } catch(qsaError) { + } finally { + if ( !old ) { + context.removeAttribute("id"); + } + } + } + } + } + + // All others + return select( selector.replace( rtrim, "$1" ), context, results, seed ); +} + +/** + * Create key-value caches of limited size + * @returns {Function(string, Object)} Returns the Object data after storing it on itself with + * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) + * deleting the oldest entry + */ +function createCache() { + var keys = []; + + function cache( key, value ) { + // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) + if ( keys.push( key += " " ) > Expr.cacheLength ) { + // Only keep the most recent entries + delete cache[ keys.shift() ]; + } + return (cache[ key ] = value); + } + return cache; +} + +/** + * Mark a function for special use by Sizzle + * @param {Function} fn The function to mark + */ +function markFunction( fn ) { + fn[ expando ] = true; + return fn; +} + +/** + * Support testing using an element + * @param {Function} fn Passed the created div and expects a boolean result + */ +function assert( fn ) { + var div = document.createElement("div"); + + try { + return !!fn( div ); + } catch (e) { + return false; + } finally { + // Remove from its parent by default + if ( div.parentNode ) { + div.parentNode.removeChild( div ); + } + // release memory in IE + div = null; + } +} + +/** + * Adds the same handler for all of the specified attrs + * @param {String} attrs Pipe-separated list of attributes + * @param {Function} handler The method that will be applied + */ +function addHandle( attrs, handler ) { + var arr = attrs.split("|"), + i = attrs.length; + + while ( i-- ) { + Expr.attrHandle[ arr[i] ] = handler; + } +} + +/** + * Checks document order of two siblings + * @param {Element} a + * @param {Element} b + * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b + */ +function siblingCheck( a, b ) { + var cur = b && a, + diff = cur && a.nodeType === 1 && b.nodeType === 1 && + ( ~b.sourceIndex || MAX_NEGATIVE ) - + ( ~a.sourceIndex || MAX_NEGATIVE ); + + // Use IE sourceIndex if available on both nodes + if ( diff ) { + return diff; + } + + // Check if b follows a + if ( cur ) { + while ( (cur = cur.nextSibling) ) { + if ( cur === b ) { + return -1; + } + } + } + + return a ? 1 : -1; +} + +/** + * Returns a function to use in pseudos for input types + * @param {String} type + */ +function createInputPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for buttons + * @param {String} type + */ +function createButtonPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return (name === "input" || name === "button") && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for positionals + * @param {Function} fn + */ +function createPositionalPseudo( fn ) { + return markFunction(function( argument ) { + argument = +argument; + return markFunction(function( seed, matches ) { + var j, + matchIndexes = fn( [], seed.length, argument ), + i = matchIndexes.length; + + // Match elements found at the specified indexes + while ( i-- ) { + if ( seed[ (j = matchIndexes[i]) ] ) { + seed[j] = !(matches[j] = seed[j]); + } + } + }); + }); +} + +/** + * Detect xml + * @param {Element|Object} elem An element or a document + */ +isXML = Sizzle.isXML = function( elem ) { + // documentElement is verified for cases where it doesn't yet exist + // (such as loading iframes in IE - #4833) + var documentElement = elem && (elem.ownerDocument || elem).documentElement; + return documentElement ? documentElement.nodeName !== "HTML" : false; +}; + +// Expose support vars for convenience +support = Sizzle.support = {}; + +/** + * Sets document-related variables once based on the current document + * @param {Element|Object} [doc] An element or document object to use to set the document + * @returns {Object} Returns the current document + */ +setDocument = Sizzle.setDocument = function( node ) { + var doc = node ? node.ownerDocument || node : preferredDoc, + parent = doc.defaultView; + + // If no document and documentElement is available, return + if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { + return document; + } + + // Set our document + document = doc; + docElem = doc.documentElement; + + // Support tests + documentIsHTML = !isXML( doc ); + + // Support: IE>8 + // If iframe document is assigned to "document" variable and if iframe has been reloaded, + // IE will throw "permission denied" error when accessing "document" variable, see jQuery #13936 + // IE6-8 do not support the defaultView property so parent will be undefined + if ( parent && parent.attachEvent && parent !== parent.top ) { + parent.attachEvent( "onbeforeunload", function() { + setDocument(); + }); + } + + /* Attributes + ---------------------------------------------------------------------- */ + + // Support: IE<8 + // Verify that getAttribute really returns attributes and not properties (excepting IE8 booleans) + support.attributes = assert(function( div ) { + div.className = "i"; + return !div.getAttribute("className"); + }); + + /* getElement(s)By* + ---------------------------------------------------------------------- */ + + // Check if getElementsByTagName("*") returns only elements + support.getElementsByTagName = assert(function( div ) { + div.appendChild( doc.createComment("") ); + return !div.getElementsByTagName("*").length; + }); + + // Check if getElementsByClassName can be trusted + support.getElementsByClassName = assert(function( div ) { + div.innerHTML = "
    "; + + // Support: Safari<4 + // Catch class over-caching + div.firstChild.className = "i"; + // Support: Opera<10 + // Catch gEBCN failure to find non-leading classes + return div.getElementsByClassName("i").length === 2; + }); + + // Support: IE<10 + // Check if getElementById returns elements by name + // The broken getElementById methods don't pick up programatically-set names, + // so use a roundabout getElementsByName test + support.getById = assert(function( div ) { + docElem.appendChild( div ).id = expando; + return !doc.getElementsByName || !doc.getElementsByName( expando ).length; + }); + + // ID find and filter + if ( support.getById ) { + Expr.find["ID"] = function( id, context ) { + if ( typeof context.getElementById !== strundefined && documentIsHTML ) { + var m = context.getElementById( id ); + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + return m && m.parentNode ? [m] : []; + } + }; + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + return elem.getAttribute("id") === attrId; + }; + }; + } else { + // Support: IE6/7 + // getElementById is not reliable as a find shortcut + delete Expr.find["ID"]; + + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + var node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode("id"); + return node && node.value === attrId; + }; + }; + } + + // Tag + Expr.find["TAG"] = support.getElementsByTagName ? + function( tag, context ) { + if ( typeof context.getElementsByTagName !== strundefined ) { + return context.getElementsByTagName( tag ); + } + } : + function( tag, context ) { + var elem, + tmp = [], + i = 0, + results = context.getElementsByTagName( tag ); + + // Filter out possible comments + if ( tag === "*" ) { + while ( (elem = results[i++]) ) { + if ( elem.nodeType === 1 ) { + tmp.push( elem ); + } + } + + return tmp; + } + return results; + }; + + // Class + Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { + if ( typeof context.getElementsByClassName !== strundefined && documentIsHTML ) { + return context.getElementsByClassName( className ); + } + }; + + /* QSA/matchesSelector + ---------------------------------------------------------------------- */ + + // QSA and matchesSelector support + + // matchesSelector(:active) reports false when true (IE9/Opera 11.5) + rbuggyMatches = []; + + // qSa(:focus) reports false when true (Chrome 21) + // We allow this because of a bug in IE8/9 that throws an error + // whenever `document.activeElement` is accessed on an iframe + // So, we allow :focus to pass through QSA all the time to avoid the IE error + // See http://bugs.jquery.com/ticket/13378 + rbuggyQSA = []; + + if ( (support.qsa = rnative.test( doc.querySelectorAll )) ) { + // Build QSA regex + // Regex strategy adopted from Diego Perini + assert(function( div ) { + // Select is set to empty string on purpose + // This is to test IE's treatment of not explicitly + // setting a boolean content attribute, + // since its presence should be enough + // http://bugs.jquery.com/ticket/12359 + div.innerHTML = ""; + + // Support: IE8 + // Boolean attributes and "value" are not treated correctly + if ( !div.querySelectorAll("[selected]").length ) { + rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); + } + + // Webkit/Opera - :checked should return selected option elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + // IE8 throws error here and will not see later tests + if ( !div.querySelectorAll(":checked").length ) { + rbuggyQSA.push(":checked"); + } + }); + + assert(function( div ) { + + // Support: Opera 10-12/IE8 + // ^= $= *= and empty values + // Should not select anything + // Support: Windows 8 Native Apps + // The type attribute is restricted during .innerHTML assignment + var input = doc.createElement("input"); + input.setAttribute( "type", "hidden" ); + div.appendChild( input ).setAttribute( "t", "" ); + + if ( div.querySelectorAll("[t^='']").length ) { + rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); + } + + // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) + // IE8 throws error here and will not see later tests + if ( !div.querySelectorAll(":enabled").length ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Opera 10-11 does not throw on post-comma invalid pseudos + div.querySelectorAll("*,:x"); + rbuggyQSA.push(",.*:"); + }); + } + + if ( (support.matchesSelector = rnative.test( (matches = docElem.webkitMatchesSelector || + docElem.mozMatchesSelector || + docElem.oMatchesSelector || + docElem.msMatchesSelector) )) ) { + + assert(function( div ) { + // Check to see if it's possible to do matchesSelector + // on a disconnected node (IE 9) + support.disconnectedMatch = matches.call( div, "div" ); + + // This should fail with an exception + // Gecko does not error, returns false instead + matches.call( div, "[s!='']:x" ); + rbuggyMatches.push( "!=", pseudos ); + }); + } + + rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); + rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); + + /* Contains + ---------------------------------------------------------------------- */ + + // Element contains another + // Purposefully does not implement inclusive descendent + // As in, an element does not contain itself + contains = rnative.test( docElem.contains ) || docElem.compareDocumentPosition ? + function( a, b ) { + var adown = a.nodeType === 9 ? a.documentElement : a, + bup = b && b.parentNode; + return a === bup || !!( bup && bup.nodeType === 1 && ( + adown.contains ? + adown.contains( bup ) : + a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 + )); + } : + function( a, b ) { + if ( b ) { + while ( (b = b.parentNode) ) { + if ( b === a ) { + return true; + } + } + } + return false; + }; + + /* Sorting + ---------------------------------------------------------------------- */ + + // Document order sorting + sortOrder = docElem.compareDocumentPosition ? + function( a, b ) { + + // Flag for duplicate removal + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + var compare = b.compareDocumentPosition && a.compareDocumentPosition && a.compareDocumentPosition( b ); + + if ( compare ) { + // Disconnected nodes + if ( compare & 1 || + (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) { + + // Choose the first element that is related to our preferred document + if ( a === doc || contains(preferredDoc, a) ) { + return -1; + } + if ( b === doc || contains(preferredDoc, b) ) { + return 1; + } + + // Maintain original order + return sortInput ? + ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) : + 0; + } + + return compare & 4 ? -1 : 1; + } + + // Not directly comparable, sort on existence of method + return a.compareDocumentPosition ? -1 : 1; + } : + function( a, b ) { + var cur, + i = 0, + aup = a.parentNode, + bup = b.parentNode, + ap = [ a ], + bp = [ b ]; + + // Exit early if the nodes are identical + if ( a === b ) { + hasDuplicate = true; + return 0; + + // Parentless nodes are either documents or disconnected + } else if ( !aup || !bup ) { + return a === doc ? -1 : + b === doc ? 1 : + aup ? -1 : + bup ? 1 : + sortInput ? + ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) : + 0; + + // If the nodes are siblings, we can do a quick check + } else if ( aup === bup ) { + return siblingCheck( a, b ); + } + + // Otherwise we need full lists of their ancestors for comparison + cur = a; + while ( (cur = cur.parentNode) ) { + ap.unshift( cur ); + } + cur = b; + while ( (cur = cur.parentNode) ) { + bp.unshift( cur ); + } + + // Walk down the tree looking for a discrepancy + while ( ap[i] === bp[i] ) { + i++; + } + + return i ? + // Do a sibling check if the nodes have a common ancestor + siblingCheck( ap[i], bp[i] ) : + + // Otherwise nodes in our document sort first + ap[i] === preferredDoc ? -1 : + bp[i] === preferredDoc ? 1 : + 0; + }; + + return doc; +}; + +Sizzle.matches = function( expr, elements ) { + return Sizzle( expr, null, null, elements ); +}; + +Sizzle.matchesSelector = function( elem, expr ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + // Make sure that attribute selectors are quoted + expr = expr.replace( rattributeQuotes, "='$1']" ); + + if ( support.matchesSelector && documentIsHTML && + ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && + ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { + + try { + var ret = matches.call( elem, expr ); + + // IE 9's matchesSelector returns false on disconnected nodes + if ( ret || support.disconnectedMatch || + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { + return ret; + } + } catch(e) {} + } + + return Sizzle( expr, document, null, [elem] ).length > 0; +}; + +Sizzle.contains = function( context, elem ) { + // Set document vars if needed + if ( ( context.ownerDocument || context ) !== document ) { + setDocument( context ); + } + return contains( context, elem ); +}; + +Sizzle.attr = function( elem, name ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + var fn = Expr.attrHandle[ name.toLowerCase() ], + // Don't get fooled by Object.prototype properties (jQuery #13807) + val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? + fn( elem, name, !documentIsHTML ) : + undefined; + + return val === undefined ? + support.attributes || !documentIsHTML ? + elem.getAttribute( name ) : + (val = elem.getAttributeNode(name)) && val.specified ? + val.value : + null : + val; +}; + +Sizzle.error = function( msg ) { + throw new Error( "Syntax error, unrecognized expression: " + msg ); +}; + +/** + * Document sorting and removing duplicates + * @param {ArrayLike} results + */ +Sizzle.uniqueSort = function( results ) { + var elem, + duplicates = [], + j = 0, + i = 0; + + // Unless we *know* we can detect duplicates, assume their presence + hasDuplicate = !support.detectDuplicates; + sortInput = !support.sortStable && results.slice( 0 ); + results.sort( sortOrder ); + + if ( hasDuplicate ) { + while ( (elem = results[i++]) ) { + if ( elem === results[ i ] ) { + j = duplicates.push( i ); + } + } + while ( j-- ) { + results.splice( duplicates[ j ], 1 ); + } + } + + return results; +}; + +/** + * Utility function for retrieving the text value of an array of DOM nodes + * @param {Array|Element} elem + */ +getText = Sizzle.getText = function( elem ) { + var node, + ret = "", + i = 0, + nodeType = elem.nodeType; + + if ( !nodeType ) { + // If no nodeType, this is expected to be an array + for ( ; (node = elem[i]); i++ ) { + // Do not traverse comment nodes + ret += getText( node ); + } + } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { + // Use textContent for elements + // innerText usage removed for consistency of new lines (see #11153) + if ( typeof elem.textContent === "string" ) { + return elem.textContent; + } else { + // Traverse its children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + ret += getText( elem ); + } + } + } else if ( nodeType === 3 || nodeType === 4 ) { + return elem.nodeValue; + } + // Do not include comment or processing instruction nodes + + return ret; +}; + +Expr = Sizzle.selectors = { + + // Can be adjusted by the user + cacheLength: 50, + + createPseudo: markFunction, + + match: matchExpr, + + attrHandle: {}, + + find: {}, + + relative: { + ">": { dir: "parentNode", first: true }, + " ": { dir: "parentNode" }, + "+": { dir: "previousSibling", first: true }, + "~": { dir: "previousSibling" } + }, + + preFilter: { + "ATTR": function( match ) { + match[1] = match[1].replace( runescape, funescape ); + + // Move the given value to match[3] whether quoted or unquoted + match[3] = ( match[4] || match[5] || "" ).replace( runescape, funescape ); + + if ( match[2] === "~=" ) { + match[3] = " " + match[3] + " "; + } + + return match.slice( 0, 4 ); + }, + + "CHILD": function( match ) { + /* matches from matchExpr["CHILD"] + 1 type (only|nth|...) + 2 what (child|of-type) + 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) + 4 xn-component of xn+y argument ([+-]?\d*n|) + 5 sign of xn-component + 6 x of xn-component + 7 sign of y-component + 8 y of y-component + */ + match[1] = match[1].toLowerCase(); + + if ( match[1].slice( 0, 3 ) === "nth" ) { + // nth-* requires argument + if ( !match[3] ) { + Sizzle.error( match[0] ); + } + + // numeric x and y parameters for Expr.filter.CHILD + // remember that false/true cast respectively to 0/1 + match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); + match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); + + // other types prohibit arguments + } else if ( match[3] ) { + Sizzle.error( match[0] ); + } + + return match; + }, + + "PSEUDO": function( match ) { + var excess, + unquoted = !match[5] && match[2]; + + if ( matchExpr["CHILD"].test( match[0] ) ) { + return null; + } + + // Accept quoted arguments as-is + if ( match[3] && match[4] !== undefined ) { + match[2] = match[4]; + + // Strip excess characters from unquoted arguments + } else if ( unquoted && rpseudo.test( unquoted ) && + // Get excess from tokenize (recursively) + (excess = tokenize( unquoted, true )) && + // advance to the next closing parenthesis + (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { + + // excess is a negative index + match[0] = match[0].slice( 0, excess ); + match[2] = unquoted.slice( 0, excess ); + } + + // Return only captures needed by the pseudo filter method (type and argument) + return match.slice( 0, 3 ); + } + }, + + filter: { + + "TAG": function( nodeNameSelector ) { + var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); + return nodeNameSelector === "*" ? + function() { return true; } : + function( elem ) { + return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; + }; + }, + + "CLASS": function( className ) { + var pattern = classCache[ className + " " ]; + + return pattern || + (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && + classCache( className, function( elem ) { + return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== strundefined && elem.getAttribute("class") || "" ); + }); + }, + + "ATTR": function( name, operator, check ) { + return function( elem ) { + var result = Sizzle.attr( elem, name ); + + if ( result == null ) { + return operator === "!="; + } + if ( !operator ) { + return true; + } + + result += ""; + + return operator === "=" ? result === check : + operator === "!=" ? result !== check : + operator === "^=" ? check && result.indexOf( check ) === 0 : + operator === "*=" ? check && result.indexOf( check ) > -1 : + operator === "$=" ? check && result.slice( -check.length ) === check : + operator === "~=" ? ( " " + result + " " ).indexOf( check ) > -1 : + operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : + false; + }; + }, + + "CHILD": function( type, what, argument, first, last ) { + var simple = type.slice( 0, 3 ) !== "nth", + forward = type.slice( -4 ) !== "last", + ofType = what === "of-type"; + + return first === 1 && last === 0 ? + + // Shortcut for :nth-*(n) + function( elem ) { + return !!elem.parentNode; + } : + + function( elem, context, xml ) { + var cache, outerCache, node, diff, nodeIndex, start, + dir = simple !== forward ? "nextSibling" : "previousSibling", + parent = elem.parentNode, + name = ofType && elem.nodeName.toLowerCase(), + useCache = !xml && !ofType; + + if ( parent ) { + + // :(first|last|only)-(child|of-type) + if ( simple ) { + while ( dir ) { + node = elem; + while ( (node = node[ dir ]) ) { + if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) { + return false; + } + } + // Reverse direction for :only-* (if we haven't yet done so) + start = dir = type === "only" && !start && "nextSibling"; + } + return true; + } + + start = [ forward ? parent.firstChild : parent.lastChild ]; + + // non-xml :nth-child(...) stores cache data on `parent` + if ( forward && useCache ) { + // Seek `elem` from a previously-cached index + outerCache = parent[ expando ] || (parent[ expando ] = {}); + cache = outerCache[ type ] || []; + nodeIndex = cache[0] === dirruns && cache[1]; + diff = cache[0] === dirruns && cache[2]; + node = nodeIndex && parent.childNodes[ nodeIndex ]; + + while ( (node = ++nodeIndex && node && node[ dir ] || + + // Fallback to seeking `elem` from the start + (diff = nodeIndex = 0) || start.pop()) ) { + + // When found, cache indexes on `parent` and break + if ( node.nodeType === 1 && ++diff && node === elem ) { + outerCache[ type ] = [ dirruns, nodeIndex, diff ]; + break; + } + } + + // Use previously-cached element index if available + } else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) { + diff = cache[1]; + + // xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...) + } else { + // Use the same loop as above to seek `elem` from the start + while ( (node = ++nodeIndex && node && node[ dir ] || + (diff = nodeIndex = 0) || start.pop()) ) { + + if ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) { + // Cache the index of each encountered element + if ( useCache ) { + (node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ]; + } + + if ( node === elem ) { + break; + } + } + } + } + + // Incorporate the offset, then check against cycle size + diff -= last; + return diff === first || ( diff % first === 0 && diff / first >= 0 ); + } + }; + }, + + "PSEUDO": function( pseudo, argument ) { + // pseudo-class names are case-insensitive + // http://www.w3.org/TR/selectors/#pseudo-classes + // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters + // Remember that setFilters inherits from pseudos + var args, + fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || + Sizzle.error( "unsupported pseudo: " + pseudo ); + + // The user may use createPseudo to indicate that + // arguments are needed to create the filter function + // just as Sizzle does + if ( fn[ expando ] ) { + return fn( argument ); + } + + // But maintain support for old signatures + if ( fn.length > 1 ) { + args = [ pseudo, pseudo, "", argument ]; + return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? + markFunction(function( seed, matches ) { + var idx, + matched = fn( seed, argument ), + i = matched.length; + while ( i-- ) { + idx = indexOf.call( seed, matched[i] ); + seed[ idx ] = !( matches[ idx ] = matched[i] ); + } + }) : + function( elem ) { + return fn( elem, 0, args ); + }; + } + + return fn; + } + }, + + pseudos: { + // Potentially complex pseudos + "not": markFunction(function( selector ) { + // Trim the selector passed to compile + // to avoid treating leading and trailing + // spaces as combinators + var input = [], + results = [], + matcher = compile( selector.replace( rtrim, "$1" ) ); + + return matcher[ expando ] ? + markFunction(function( seed, matches, context, xml ) { + var elem, + unmatched = matcher( seed, null, xml, [] ), + i = seed.length; + + // Match elements unmatched by `matcher` + while ( i-- ) { + if ( (elem = unmatched[i]) ) { + seed[i] = !(matches[i] = elem); + } + } + }) : + function( elem, context, xml ) { + input[0] = elem; + matcher( input, null, xml, results ); + return !results.pop(); + }; + }), + + "has": markFunction(function( selector ) { + return function( elem ) { + return Sizzle( selector, elem ).length > 0; + }; + }), + + "contains": markFunction(function( text ) { + return function( elem ) { + return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; + }; + }), + + // "Whether an element is represented by a :lang() selector + // is based solely on the element's language value + // being equal to the identifier C, + // or beginning with the identifier C immediately followed by "-". + // The matching of C against the element's language value is performed case-insensitively. + // The identifier C does not have to be a valid language name." + // http://www.w3.org/TR/selectors/#lang-pseudo + "lang": markFunction( function( lang ) { + // lang value must be a valid identifier + if ( !ridentifier.test(lang || "") ) { + Sizzle.error( "unsupported lang: " + lang ); + } + lang = lang.replace( runescape, funescape ).toLowerCase(); + return function( elem ) { + var elemLang; + do { + if ( (elemLang = documentIsHTML ? + elem.lang : + elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) { + + elemLang = elemLang.toLowerCase(); + return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; + } + } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); + return false; + }; + }), + + // Miscellaneous + "target": function( elem ) { + var hash = window.location && window.location.hash; + return hash && hash.slice( 1 ) === elem.id; + }, + + "root": function( elem ) { + return elem === docElem; + }, + + "focus": function( elem ) { + return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); + }, + + // Boolean properties + "enabled": function( elem ) { + return elem.disabled === false; + }, + + "disabled": function( elem ) { + return elem.disabled === true; + }, + + "checked": function( elem ) { + // In CSS3, :checked should return both checked and selected elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + var nodeName = elem.nodeName.toLowerCase(); + return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); + }, + + "selected": function( elem ) { + // Accessing this property makes selected-by-default + // options in Safari work properly + if ( elem.parentNode ) { + elem.parentNode.selectedIndex; + } + + return elem.selected === true; + }, + + // Contents + "empty": function( elem ) { + // http://www.w3.org/TR/selectors/#empty-pseudo + // :empty is only affected by element nodes and content nodes(including text(3), cdata(4)), + // not comment, processing instructions, or others + // Thanks to Diego Perini for the nodeName shortcut + // Greater than "@" means alpha characters (specifically not starting with "#" or "?") + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + if ( elem.nodeName > "@" || elem.nodeType === 3 || elem.nodeType === 4 ) { + return false; + } + } + return true; + }, + + "parent": function( elem ) { + return !Expr.pseudos["empty"]( elem ); + }, + + // Element/input types + "header": function( elem ) { + return rheader.test( elem.nodeName ); + }, + + "input": function( elem ) { + return rinputs.test( elem.nodeName ); + }, + + "button": function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === "button" || name === "button"; + }, + + "text": function( elem ) { + var attr; + // IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc) + // use getAttribute instead to test this case + return elem.nodeName.toLowerCase() === "input" && + elem.type === "text" && + ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === elem.type ); + }, + + // Position-in-collection + "first": createPositionalPseudo(function() { + return [ 0 ]; + }), + + "last": createPositionalPseudo(function( matchIndexes, length ) { + return [ length - 1 ]; + }), + + "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { + return [ argument < 0 ? argument + length : argument ]; + }), + + "even": createPositionalPseudo(function( matchIndexes, length ) { + var i = 0; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "odd": createPositionalPseudo(function( matchIndexes, length ) { + var i = 1; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; --i >= 0; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; ++i < length; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }) + } +}; + +Expr.pseudos["nth"] = Expr.pseudos["eq"]; + +// Add button/input type pseudos +for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { + Expr.pseudos[ i ] = createInputPseudo( i ); +} +for ( i in { submit: true, reset: true } ) { + Expr.pseudos[ i ] = createButtonPseudo( i ); +} + +// Easy API for creating new setFilters +function setFilters() {} +setFilters.prototype = Expr.filters = Expr.pseudos; +Expr.setFilters = new setFilters(); + +function tokenize( selector, parseOnly ) { + var matched, match, tokens, type, + soFar, groups, preFilters, + cached = tokenCache[ selector + " " ]; + + if ( cached ) { + return parseOnly ? 0 : cached.slice( 0 ); + } + + soFar = selector; + groups = []; + preFilters = Expr.preFilter; + + while ( soFar ) { + + // Comma and first run + if ( !matched || (match = rcomma.exec( soFar )) ) { + if ( match ) { + // Don't consume trailing commas as valid + soFar = soFar.slice( match[0].length ) || soFar; + } + groups.push( tokens = [] ); + } + + matched = false; + + // Combinators + if ( (match = rcombinators.exec( soFar )) ) { + matched = match.shift(); + tokens.push({ + value: matched, + // Cast descendant combinators to space + type: match[0].replace( rtrim, " " ) + }); + soFar = soFar.slice( matched.length ); + } + + // Filters + for ( type in Expr.filter ) { + if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || + (match = preFilters[ type ]( match ))) ) { + matched = match.shift(); + tokens.push({ + value: matched, + type: type, + matches: match + }); + soFar = soFar.slice( matched.length ); + } + } + + if ( !matched ) { + break; + } + } + + // Return the length of the invalid excess + // if we're just parsing + // Otherwise, throw an error or return tokens + return parseOnly ? + soFar.length : + soFar ? + Sizzle.error( selector ) : + // Cache the tokens + tokenCache( selector, groups ).slice( 0 ); +} + +function toSelector( tokens ) { + var i = 0, + len = tokens.length, + selector = ""; + for ( ; i < len; i++ ) { + selector += tokens[i].value; + } + return selector; +} + +function addCombinator( matcher, combinator, base ) { + var dir = combinator.dir, + checkNonElements = base && dir === "parentNode", + doneName = done++; + + return combinator.first ? + // Check against closest ancestor/preceding element + function( elem, context, xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + return matcher( elem, context, xml ); + } + } + } : + + // Check against all ancestor/preceding elements + function( elem, context, xml ) { + var data, cache, outerCache, + dirkey = dirruns + " " + doneName; + + // We can't set arbitrary data on XML nodes, so they don't benefit from dir caching + if ( xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + if ( matcher( elem, context, xml ) ) { + return true; + } + } + } + } else { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + outerCache = elem[ expando ] || (elem[ expando ] = {}); + if ( (cache = outerCache[ dir ]) && cache[0] === dirkey ) { + if ( (data = cache[1]) === true || data === cachedruns ) { + return data === true; + } + } else { + cache = outerCache[ dir ] = [ dirkey ]; + cache[1] = matcher( elem, context, xml ) || cachedruns; + if ( cache[1] === true ) { + return true; + } + } + } + } + } + }; +} + +function elementMatcher( matchers ) { + return matchers.length > 1 ? + function( elem, context, xml ) { + var i = matchers.length; + while ( i-- ) { + if ( !matchers[i]( elem, context, xml ) ) { + return false; + } + } + return true; + } : + matchers[0]; +} + +function condense( unmatched, map, filter, context, xml ) { + var elem, + newUnmatched = [], + i = 0, + len = unmatched.length, + mapped = map != null; + + for ( ; i < len; i++ ) { + if ( (elem = unmatched[i]) ) { + if ( !filter || filter( elem, context, xml ) ) { + newUnmatched.push( elem ); + if ( mapped ) { + map.push( i ); + } + } + } + } + + return newUnmatched; +} + +function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { + if ( postFilter && !postFilter[ expando ] ) { + postFilter = setMatcher( postFilter ); + } + if ( postFinder && !postFinder[ expando ] ) { + postFinder = setMatcher( postFinder, postSelector ); + } + return markFunction(function( seed, results, context, xml ) { + var temp, i, elem, + preMap = [], + postMap = [], + preexisting = results.length, + + // Get initial elements from seed or context + elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), + + // Prefilter to get matcher input, preserving a map for seed-results synchronization + matcherIn = preFilter && ( seed || !selector ) ? + condense( elems, preMap, preFilter, context, xml ) : + elems, + + matcherOut = matcher ? + // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, + postFinder || ( seed ? preFilter : preexisting || postFilter ) ? + + // ...intermediate processing is necessary + [] : + + // ...otherwise use results directly + results : + matcherIn; + + // Find primary matches + if ( matcher ) { + matcher( matcherIn, matcherOut, context, xml ); + } + + // Apply postFilter + if ( postFilter ) { + temp = condense( matcherOut, postMap ); + postFilter( temp, [], context, xml ); + + // Un-match failing elements by moving them back to matcherIn + i = temp.length; + while ( i-- ) { + if ( (elem = temp[i]) ) { + matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); + } + } + } + + if ( seed ) { + if ( postFinder || preFilter ) { + if ( postFinder ) { + // Get the final matcherOut by condensing this intermediate into postFinder contexts + temp = []; + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) ) { + // Restore matcherIn since elem is not yet a final match + temp.push( (matcherIn[i] = elem) ); + } + } + postFinder( null, (matcherOut = []), temp, xml ); + } + + // Move matched elements from seed to results to keep them synchronized + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) && + (temp = postFinder ? indexOf.call( seed, elem ) : preMap[i]) > -1 ) { + + seed[temp] = !(results[temp] = elem); + } + } + } + + // Add elements to results, through postFinder if defined + } else { + matcherOut = condense( + matcherOut === results ? + matcherOut.splice( preexisting, matcherOut.length ) : + matcherOut + ); + if ( postFinder ) { + postFinder( null, results, matcherOut, xml ); + } else { + push.apply( results, matcherOut ); + } + } + }); +} + +function matcherFromTokens( tokens ) { + var checkContext, matcher, j, + len = tokens.length, + leadingRelative = Expr.relative[ tokens[0].type ], + implicitRelative = leadingRelative || Expr.relative[" "], + i = leadingRelative ? 1 : 0, + + // The foundational matcher ensures that elements are reachable from top-level context(s) + matchContext = addCombinator( function( elem ) { + return elem === checkContext; + }, implicitRelative, true ), + matchAnyContext = addCombinator( function( elem ) { + return indexOf.call( checkContext, elem ) > -1; + }, implicitRelative, true ), + matchers = [ function( elem, context, xml ) { + return ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( + (checkContext = context).nodeType ? + matchContext( elem, context, xml ) : + matchAnyContext( elem, context, xml ) ); + } ]; + + for ( ; i < len; i++ ) { + if ( (matcher = Expr.relative[ tokens[i].type ]) ) { + matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; + } else { + matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); + + // Return special upon seeing a positional matcher + if ( matcher[ expando ] ) { + // Find the next relative operator (if any) for proper handling + j = ++i; + for ( ; j < len; j++ ) { + if ( Expr.relative[ tokens[j].type ] ) { + break; + } + } + return setMatcher( + i > 1 && elementMatcher( matchers ), + i > 1 && toSelector( + // If the preceding token was a descendant combinator, insert an implicit any-element `*` + tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" }) + ).replace( rtrim, "$1" ), + matcher, + i < j && matcherFromTokens( tokens.slice( i, j ) ), + j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), + j < len && toSelector( tokens ) + ); + } + matchers.push( matcher ); + } + } + + return elementMatcher( matchers ); +} + +function matcherFromGroupMatchers( elementMatchers, setMatchers ) { + // A counter to specify which element is currently being matched + var matcherCachedRuns = 0, + bySet = setMatchers.length > 0, + byElement = elementMatchers.length > 0, + superMatcher = function( seed, context, xml, results, expandContext ) { + var elem, j, matcher, + setMatched = [], + matchedCount = 0, + i = "0", + unmatched = seed && [], + outermost = expandContext != null, + contextBackup = outermostContext, + // We must always have either seed elements or context + elems = seed || byElement && Expr.find["TAG"]( "*", expandContext && context.parentNode || context ), + // Use integer dirruns iff this is the outermost matcher + dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1); + + if ( outermost ) { + outermostContext = context !== document && context; + cachedruns = matcherCachedRuns; + } + + // Add elements passing elementMatchers directly to results + // Keep `i` a string if there are no elements so `matchedCount` will be "00" below + for ( ; (elem = elems[i]) != null; i++ ) { + if ( byElement && elem ) { + j = 0; + while ( (matcher = elementMatchers[j++]) ) { + if ( matcher( elem, context, xml ) ) { + results.push( elem ); + break; + } + } + if ( outermost ) { + dirruns = dirrunsUnique; + cachedruns = ++matcherCachedRuns; + } + } + + // Track unmatched elements for set filters + if ( bySet ) { + // They will have gone through all possible matchers + if ( (elem = !matcher && elem) ) { + matchedCount--; + } + + // Lengthen the array for every element, matched or not + if ( seed ) { + unmatched.push( elem ); + } + } + } + + // Apply set filters to unmatched elements + matchedCount += i; + if ( bySet && i !== matchedCount ) { + j = 0; + while ( (matcher = setMatchers[j++]) ) { + matcher( unmatched, setMatched, context, xml ); + } + + if ( seed ) { + // Reintegrate element matches to eliminate the need for sorting + if ( matchedCount > 0 ) { + while ( i-- ) { + if ( !(unmatched[i] || setMatched[i]) ) { + setMatched[i] = pop.call( results ); + } + } + } + + // Discard index placeholder values to get only actual matches + setMatched = condense( setMatched ); + } + + // Add matches to results + push.apply( results, setMatched ); + + // Seedless set matches succeeding multiple successful matchers stipulate sorting + if ( outermost && !seed && setMatched.length > 0 && + ( matchedCount + setMatchers.length ) > 1 ) { + + Sizzle.uniqueSort( results ); + } + } + + // Override manipulation of globals by nested matchers + if ( outermost ) { + dirruns = dirrunsUnique; + outermostContext = contextBackup; + } + + return unmatched; + }; + + return bySet ? + markFunction( superMatcher ) : + superMatcher; +} + +compile = Sizzle.compile = function( selector, group /* Internal Use Only */ ) { + var i, + setMatchers = [], + elementMatchers = [], + cached = compilerCache[ selector + " " ]; + + if ( !cached ) { + // Generate a function of recursive functions that can be used to check each element + if ( !group ) { + group = tokenize( selector ); + } + i = group.length; + while ( i-- ) { + cached = matcherFromTokens( group[i] ); + if ( cached[ expando ] ) { + setMatchers.push( cached ); + } else { + elementMatchers.push( cached ); + } + } + + // Cache the compiled function + cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); + } + return cached; +}; + +function multipleContexts( selector, contexts, results ) { + var i = 0, + len = contexts.length; + for ( ; i < len; i++ ) { + Sizzle( selector, contexts[i], results ); + } + return results; +} + +function select( selector, context, results, seed ) { + var i, tokens, token, type, find, + match = tokenize( selector ); + + if ( !seed ) { + // Try to minimize operations if there is only one group + if ( match.length === 1 ) { + + // Take a shortcut and set the context if the root selector is an ID + tokens = match[0] = match[0].slice( 0 ); + if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && + support.getById && context.nodeType === 9 && documentIsHTML && + Expr.relative[ tokens[1].type ] ) { + + context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; + if ( !context ) { + return results; + } + selector = selector.slice( tokens.shift().value.length ); + } + + // Fetch a seed set for right-to-left matching + i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; + while ( i-- ) { + token = tokens[i]; + + // Abort if we hit a combinator + if ( Expr.relative[ (type = token.type) ] ) { + break; + } + if ( (find = Expr.find[ type ]) ) { + // Search, expanding context for leading sibling combinators + if ( (seed = find( + token.matches[0].replace( runescape, funescape ), + rsibling.test( tokens[0].type ) && context.parentNode || context + )) ) { + + // If seed is empty or no tokens remain, we can return early + tokens.splice( i, 1 ); + selector = seed.length && toSelector( tokens ); + if ( !selector ) { + push.apply( results, seed ); + return results; + } + + break; + } + } + } + } + } + + // Compile and execute a filtering function + // Provide `match` to avoid retokenization if we modified the selector above + compile( selector, match )( + seed, + context, + !documentIsHTML, + results, + rsibling.test( selector ) + ); + return results; +} + +// One-time assignments + +// Sort stability +support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; + +// Support: Chrome<14 +// Always assume duplicates if they aren't passed to the comparison function +support.detectDuplicates = hasDuplicate; + +// Initialize against the default document +setDocument(); + +// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) +// Detached nodes confoundingly follow *each other* +support.sortDetached = assert(function( div1 ) { + // Should return 1, but returns 4 (following) + return div1.compareDocumentPosition( document.createElement("div") ) & 1; +}); + +// Support: IE<8 +// Prevent attribute/property "interpolation" +// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx +if ( !assert(function( div ) { + div.innerHTML = ""; + return div.firstChild.getAttribute("href") === "#" ; +}) ) { + addHandle( "type|href|height|width", function( elem, name, isXML ) { + if ( !isXML ) { + return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); + } + }); +} + +// Support: IE<9 +// Use defaultValue in place of getAttribute("value") +if ( !support.attributes || !assert(function( div ) { + div.innerHTML = ""; + div.firstChild.setAttribute( "value", "" ); + return div.firstChild.getAttribute( "value" ) === ""; +}) ) { + addHandle( "value", function( elem, name, isXML ) { + if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { + return elem.defaultValue; + } + }); +} + +// Support: IE<9 +// Use getAttributeNode to fetch booleans when getAttribute lies +if ( !assert(function( div ) { + return div.getAttribute("disabled") == null; +}) ) { + addHandle( booleans, function( elem, name, isXML ) { + var val; + if ( !isXML ) { + return (val = elem.getAttributeNode( name )) && val.specified ? + val.value : + elem[ name ] === true ? name.toLowerCase() : null; + } + }); +} + +jQuery.find = Sizzle; +jQuery.expr = Sizzle.selectors; +jQuery.expr[":"] = jQuery.expr.pseudos; +jQuery.unique = Sizzle.uniqueSort; +jQuery.text = Sizzle.getText; +jQuery.isXMLDoc = Sizzle.isXML; +jQuery.contains = Sizzle.contains; + + +})( window ); +// String to Object options format cache +var optionsCache = {}; + +// Convert String-formatted options into Object-formatted ones and store in cache +function createOptions( options ) { + var object = optionsCache[ options ] = {}; + jQuery.each( options.match( core_rnotwhite ) || [], function( _, flag ) { + object[ flag ] = true; + }); + return object; +} + +/* + * Create a callback list using the following parameters: + * + * options: an optional list of space-separated options that will change how + * the callback list behaves or a more traditional option object + * + * By default a callback list will act like an event callback list and can be + * "fired" multiple times. + * + * Possible options: + * + * once: will ensure the callback list can only be fired once (like a Deferred) + * + * memory: will keep track of previous values and will call any callback added + * after the list has been fired right away with the latest "memorized" + * values (like a Deferred) + * + * unique: will ensure a callback can only be added once (no duplicate in the list) + * + * stopOnFalse: interrupt callings when a callback returns false + * + */ +jQuery.Callbacks = function( options ) { + + // Convert options from String-formatted to Object-formatted if needed + // (we check in cache first) + options = typeof options === "string" ? + ( optionsCache[ options ] || createOptions( options ) ) : + jQuery.extend( {}, options ); + + var // Flag to know if list is currently firing + firing, + // Last fire value (for non-forgettable lists) + memory, + // Flag to know if list was already fired + fired, + // End of the loop when firing + firingLength, + // Index of currently firing callback (modified by remove if needed) + firingIndex, + // First callback to fire (used internally by add and fireWith) + firingStart, + // Actual callback list + list = [], + // Stack of fire calls for repeatable lists + stack = !options.once && [], + // Fire callbacks + fire = function( data ) { + memory = options.memory && data; + fired = true; + firingIndex = firingStart || 0; + firingStart = 0; + firingLength = list.length; + firing = true; + for ( ; list && firingIndex < firingLength; firingIndex++ ) { + if ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) { + memory = false; // To prevent further calls using add + break; + } + } + firing = false; + if ( list ) { + if ( stack ) { + if ( stack.length ) { + fire( stack.shift() ); + } + } else if ( memory ) { + list = []; + } else { + self.disable(); + } + } + }, + // Actual Callbacks object + self = { + // Add a callback or a collection of callbacks to the list + add: function() { + if ( list ) { + // First, we save the current length + var start = list.length; + (function add( args ) { + jQuery.each( args, function( _, arg ) { + var type = jQuery.type( arg ); + if ( type === "function" ) { + if ( !options.unique || !self.has( arg ) ) { + list.push( arg ); + } + } else if ( arg && arg.length && type !== "string" ) { + // Inspect recursively + add( arg ); + } + }); + })( arguments ); + // Do we need to add the callbacks to the + // current firing batch? + if ( firing ) { + firingLength = list.length; + // With memory, if we're not firing then + // we should call right away + } else if ( memory ) { + firingStart = start; + fire( memory ); + } + } + return this; + }, + // Remove a callback from the list + remove: function() { + if ( list ) { + jQuery.each( arguments, function( _, arg ) { + var index; + while( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { + list.splice( index, 1 ); + // Handle firing indexes + if ( firing ) { + if ( index <= firingLength ) { + firingLength--; + } + if ( index <= firingIndex ) { + firingIndex--; + } + } + } + }); + } + return this; + }, + // Check if a given callback is in the list. + // If no argument is given, return whether or not list has callbacks attached. + has: function( fn ) { + return fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length ); + }, + // Remove all callbacks from the list + empty: function() { + list = []; + firingLength = 0; + return this; + }, + // Have the list do nothing anymore + disable: function() { + list = stack = memory = undefined; + return this; + }, + // Is it disabled? + disabled: function() { + return !list; + }, + // Lock the list in its current state + lock: function() { + stack = undefined; + if ( !memory ) { + self.disable(); + } + return this; + }, + // Is it locked? + locked: function() { + return !stack; + }, + // Call all callbacks with the given context and arguments + fireWith: function( context, args ) { + if ( list && ( !fired || stack ) ) { + args = args || []; + args = [ context, args.slice ? args.slice() : args ]; + if ( firing ) { + stack.push( args ); + } else { + fire( args ); + } + } + return this; + }, + // Call all the callbacks with the given arguments + fire: function() { + self.fireWith( this, arguments ); + return this; + }, + // To know if the callbacks have already been called at least once + fired: function() { + return !!fired; + } + }; + + return self; +}; +jQuery.extend({ + + Deferred: function( func ) { + var tuples = [ + // action, add listener, listener list, final state + [ "resolve", "done", jQuery.Callbacks("once memory"), "resolved" ], + [ "reject", "fail", jQuery.Callbacks("once memory"), "rejected" ], + [ "notify", "progress", jQuery.Callbacks("memory") ] + ], + state = "pending", + promise = { + state: function() { + return state; + }, + always: function() { + deferred.done( arguments ).fail( arguments ); + return this; + }, + then: function( /* fnDone, fnFail, fnProgress */ ) { + var fns = arguments; + return jQuery.Deferred(function( newDefer ) { + jQuery.each( tuples, function( i, tuple ) { + var action = tuple[ 0 ], + fn = jQuery.isFunction( fns[ i ] ) && fns[ i ]; + // deferred[ done | fail | progress ] for forwarding actions to newDefer + deferred[ tuple[1] ](function() { + var returned = fn && fn.apply( this, arguments ); + if ( returned && jQuery.isFunction( returned.promise ) ) { + returned.promise() + .done( newDefer.resolve ) + .fail( newDefer.reject ) + .progress( newDefer.notify ); + } else { + newDefer[ action + "With" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments ); + } + }); + }); + fns = null; + }).promise(); + }, + // Get a promise for this deferred + // If obj is provided, the promise aspect is added to the object + promise: function( obj ) { + return obj != null ? jQuery.extend( obj, promise ) : promise; + } + }, + deferred = {}; + + // Keep pipe for back-compat + promise.pipe = promise.then; + + // Add list-specific methods + jQuery.each( tuples, function( i, tuple ) { + var list = tuple[ 2 ], + stateString = tuple[ 3 ]; + + // promise[ done | fail | progress ] = list.add + promise[ tuple[1] ] = list.add; + + // Handle state + if ( stateString ) { + list.add(function() { + // state = [ resolved | rejected ] + state = stateString; + + // [ reject_list | resolve_list ].disable; progress_list.lock + }, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock ); + } + + // deferred[ resolve | reject | notify ] + deferred[ tuple[0] ] = function() { + deferred[ tuple[0] + "With" ]( this === deferred ? promise : this, arguments ); + return this; + }; + deferred[ tuple[0] + "With" ] = list.fireWith; + }); + + // Make the deferred a promise + promise.promise( deferred ); + + // Call given func if any + if ( func ) { + func.call( deferred, deferred ); + } + + // All done! + return deferred; + }, + + // Deferred helper + when: function( subordinate /* , ..., subordinateN */ ) { + var i = 0, + resolveValues = core_slice.call( arguments ), + length = resolveValues.length, + + // the count of uncompleted subordinates + remaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0, + + // the master Deferred. If resolveValues consist of only a single Deferred, just use that. + deferred = remaining === 1 ? subordinate : jQuery.Deferred(), + + // Update function for both resolve and progress values + updateFunc = function( i, contexts, values ) { + return function( value ) { + contexts[ i ] = this; + values[ i ] = arguments.length > 1 ? core_slice.call( arguments ) : value; + if( values === progressValues ) { + deferred.notifyWith( contexts, values ); + } else if ( !( --remaining ) ) { + deferred.resolveWith( contexts, values ); + } + }; + }, + + progressValues, progressContexts, resolveContexts; + + // add listeners to Deferred subordinates; treat others as resolved + if ( length > 1 ) { + progressValues = new Array( length ); + progressContexts = new Array( length ); + resolveContexts = new Array( length ); + for ( ; i < length; i++ ) { + if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) { + resolveValues[ i ].promise() + .done( updateFunc( i, resolveContexts, resolveValues ) ) + .fail( deferred.reject ) + .progress( updateFunc( i, progressContexts, progressValues ) ); + } else { + --remaining; + } + } + } + + // if we're not waiting on anything, resolve the master + if ( !remaining ) { + deferred.resolveWith( resolveContexts, resolveValues ); + } + + return deferred.promise(); + } +}); +jQuery.support = (function( support ) { + + var all, a, input, select, fragment, opt, eventName, isSupported, i, + div = document.createElement("div"); + + // Setup + div.setAttribute( "className", "t" ); + div.innerHTML = "
    a"; + + // Finish early in limited (non-browser) environments + all = div.getElementsByTagName("*") || []; + a = div.getElementsByTagName("a")[ 0 ]; + if ( !a || !a.style || !all.length ) { + return support; + } + + // First batch of tests + select = document.createElement("select"); + opt = select.appendChild( document.createElement("option") ); + input = div.getElementsByTagName("input")[ 0 ]; + + a.style.cssText = "top:1px;float:left;opacity:.5"; + + // Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7) + support.getSetAttribute = div.className !== "t"; + + // IE strips leading whitespace when .innerHTML is used + support.leadingWhitespace = div.firstChild.nodeType === 3; + + // Make sure that tbody elements aren't automatically inserted + // IE will insert them into empty tables + support.tbody = !div.getElementsByTagName("tbody").length; + + // Make sure that link elements get serialized correctly by innerHTML + // This requires a wrapper element in IE + support.htmlSerialize = !!div.getElementsByTagName("link").length; + + // Get the style information from getAttribute + // (IE uses .cssText instead) + support.style = /top/.test( a.getAttribute("style") ); + + // Make sure that URLs aren't manipulated + // (IE normalizes it by default) + support.hrefNormalized = a.getAttribute("href") === "/a"; + + // Make sure that element opacity exists + // (IE uses filter instead) + // Use a regex to work around a WebKit issue. See #5145 + support.opacity = /^0.5/.test( a.style.opacity ); + + // Verify style float existence + // (IE uses styleFloat instead of cssFloat) + support.cssFloat = !!a.style.cssFloat; + + // Check the default checkbox/radio value ("" on WebKit; "on" elsewhere) + support.checkOn = !!input.value; + + // Make sure that a selected-by-default option has a working selected property. + // (WebKit defaults to false instead of true, IE too, if it's in an optgroup) + support.optSelected = opt.selected; + + // Tests for enctype support on a form (#6743) + support.enctype = !!document.createElement("form").enctype; + + // Makes sure cloning an html5 element does not cause problems + // Where outerHTML is undefined, this still works + support.html5Clone = document.createElement("nav").cloneNode( true ).outerHTML !== "<:nav>"; + + // Will be defined later + support.inlineBlockNeedsLayout = false; + support.shrinkWrapBlocks = false; + support.pixelPosition = false; + support.deleteExpando = true; + support.noCloneEvent = true; + support.reliableMarginRight = true; + support.boxSizingReliable = true; + + // Make sure checked status is properly cloned + input.checked = true; + support.noCloneChecked = input.cloneNode( true ).checked; + + // Make sure that the options inside disabled selects aren't marked as disabled + // (WebKit marks them as disabled) + select.disabled = true; + support.optDisabled = !opt.disabled; + + // Support: IE<9 + try { + delete div.test; + } catch( e ) { + support.deleteExpando = false; + } + + // Check if we can trust getAttribute("value") + input = document.createElement("input"); + input.setAttribute( "value", "" ); + support.input = input.getAttribute( "value" ) === ""; + + // Check if an input maintains its value after becoming a radio + input.value = "t"; + input.setAttribute( "type", "radio" ); + support.radioValue = input.value === "t"; + + // #11217 - WebKit loses check when the name is after the checked attribute + input.setAttribute( "checked", "t" ); + input.setAttribute( "name", "t" ); + + fragment = document.createDocumentFragment(); + fragment.appendChild( input ); + + // Check if a disconnected checkbox will retain its checked + // value of true after appended to the DOM (IE6/7) + support.appendChecked = input.checked; + + // WebKit doesn't clone checked state correctly in fragments + support.checkClone = fragment.cloneNode( true ).cloneNode( true ).lastChild.checked; + + // Support: IE<9 + // Opera does not clone events (and typeof div.attachEvent === undefined). + // IE9-10 clones events bound via attachEvent, but they don't trigger with .click() + if ( div.attachEvent ) { + div.attachEvent( "onclick", function() { + support.noCloneEvent = false; + }); + + div.cloneNode( true ).click(); + } + + // Support: IE<9 (lack submit/change bubble), Firefox 17+ (lack focusin event) + // Beware of CSP restrictions (https://developer.mozilla.org/en/Security/CSP) + for ( i in { submit: true, change: true, focusin: true }) { + div.setAttribute( eventName = "on" + i, "t" ); + + support[ i + "Bubbles" ] = eventName in window || div.attributes[ eventName ].expando === false; + } + + div.style.backgroundClip = "content-box"; + div.cloneNode( true ).style.backgroundClip = ""; + support.clearCloneStyle = div.style.backgroundClip === "content-box"; + + // Support: IE<9 + // Iteration over object's inherited properties before its own. + for ( i in jQuery( support ) ) { + break; + } + support.ownLast = i !== "0"; + + // Run tests that need a body at doc ready + jQuery(function() { + var container, marginDiv, tds, + divReset = "padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;", + body = document.getElementsByTagName("body")[0]; + + if ( !body ) { + // Return for frameset docs that don't have a body + return; + } + + container = document.createElement("div"); + container.style.cssText = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px"; + + body.appendChild( container ).appendChild( div ); + + // Support: IE8 + // Check if table cells still have offsetWidth/Height when they are set + // to display:none and there are still other visible table cells in a + // table row; if so, offsetWidth/Height are not reliable for use when + // determining if an element has been hidden directly using + // display:none (it is still safe to use offsets if a parent element is + // hidden; don safety goggles and see bug #4512 for more information). + div.innerHTML = "
    t
    "; + tds = div.getElementsByTagName("td"); + tds[ 0 ].style.cssText = "padding:0;margin:0;border:0;display:none"; + isSupported = ( tds[ 0 ].offsetHeight === 0 ); + + tds[ 0 ].style.display = ""; + tds[ 1 ].style.display = "none"; + + // Support: IE8 + // Check if empty table cells still have offsetWidth/Height + support.reliableHiddenOffsets = isSupported && ( tds[ 0 ].offsetHeight === 0 ); + + // Check box-sizing and margin behavior. + div.innerHTML = ""; + div.style.cssText = "box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;"; + + // Workaround failing boxSizing test due to offsetWidth returning wrong value + // with some non-1 values of body zoom, ticket #13543 + jQuery.swap( body, body.style.zoom != null ? { zoom: 1 } : {}, function() { + support.boxSizing = div.offsetWidth === 4; + }); + + // Use window.getComputedStyle because jsdom on node.js will break without it. + if ( window.getComputedStyle ) { + support.pixelPosition = ( window.getComputedStyle( div, null ) || {} ).top !== "1%"; + support.boxSizingReliable = ( window.getComputedStyle( div, null ) || { width: "4px" } ).width === "4px"; + + // Check if div with explicit width and no margin-right incorrectly + // gets computed margin-right based on width of container. (#3333) + // Fails in WebKit before Feb 2011 nightlies + // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right + marginDiv = div.appendChild( document.createElement("div") ); + marginDiv.style.cssText = div.style.cssText = divReset; + marginDiv.style.marginRight = marginDiv.style.width = "0"; + div.style.width = "1px"; + + support.reliableMarginRight = + !parseFloat( ( window.getComputedStyle( marginDiv, null ) || {} ).marginRight ); + } + + if ( typeof div.style.zoom !== core_strundefined ) { + // Support: IE<8 + // Check if natively block-level elements act like inline-block + // elements when setting their display to 'inline' and giving + // them layout + div.innerHTML = ""; + div.style.cssText = divReset + "width:1px;padding:1px;display:inline;zoom:1"; + support.inlineBlockNeedsLayout = ( div.offsetWidth === 3 ); + + // Support: IE6 + // Check if elements with layout shrink-wrap their children + div.style.display = "block"; + div.innerHTML = "
    "; + div.firstChild.style.width = "5px"; + support.shrinkWrapBlocks = ( div.offsetWidth !== 3 ); + + if ( support.inlineBlockNeedsLayout ) { + // Prevent IE 6 from affecting layout for positioned elements #11048 + // Prevent IE from shrinking the body in IE 7 mode #12869 + // Support: IE<8 + body.style.zoom = 1; + } + } + + body.removeChild( container ); + + // Null elements to avoid leaks in IE + container = div = tds = marginDiv = null; + }); + + // Null elements to avoid leaks in IE + all = select = fragment = opt = a = input = null; + + return support; +})({}); + +var rbrace = /(?:\{[\s\S]*\}|\[[\s\S]*\])$/, + rmultiDash = /([A-Z])/g; + +function internalData( elem, name, data, pvt /* Internal Use Only */ ){ + if ( !jQuery.acceptData( elem ) ) { + return; + } + + var ret, thisCache, + internalKey = jQuery.expando, + + // We have to handle DOM nodes and JS objects differently because IE6-7 + // can't GC object references properly across the DOM-JS boundary + isNode = elem.nodeType, + + // Only DOM nodes need the global jQuery cache; JS object data is + // attached directly to the object so GC can occur automatically + cache = isNode ? jQuery.cache : elem, + + // Only defining an ID for JS objects if its cache already exists allows + // the code to shortcut on the same path as a DOM node with no cache + id = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey; + + // Avoid doing any more work than we need to when trying to get data on an + // object that has no data at all + if ( (!id || !cache[id] || (!pvt && !cache[id].data)) && data === undefined && typeof name === "string" ) { + return; + } + + if ( !id ) { + // Only DOM nodes need a new unique ID for each element since their data + // ends up in the global cache + if ( isNode ) { + id = elem[ internalKey ] = core_deletedIds.pop() || jQuery.guid++; + } else { + id = internalKey; + } + } + + if ( !cache[ id ] ) { + // Avoid exposing jQuery metadata on plain JS objects when the object + // is serialized using JSON.stringify + cache[ id ] = isNode ? {} : { toJSON: jQuery.noop }; + } + + // An object can be passed to jQuery.data instead of a key/value pair; this gets + // shallow copied over onto the existing cache + if ( typeof name === "object" || typeof name === "function" ) { + if ( pvt ) { + cache[ id ] = jQuery.extend( cache[ id ], name ); + } else { + cache[ id ].data = jQuery.extend( cache[ id ].data, name ); + } + } + + thisCache = cache[ id ]; + + // jQuery data() is stored in a separate object inside the object's internal data + // cache in order to avoid key collisions between internal data and user-defined + // data. + if ( !pvt ) { + if ( !thisCache.data ) { + thisCache.data = {}; + } + + thisCache = thisCache.data; + } + + if ( data !== undefined ) { + thisCache[ jQuery.camelCase( name ) ] = data; + } + + // Check for both converted-to-camel and non-converted data property names + // If a data property was specified + if ( typeof name === "string" ) { + + // First Try to find as-is property data + ret = thisCache[ name ]; + + // Test for null|undefined property data + if ( ret == null ) { + + // Try to find the camelCased property + ret = thisCache[ jQuery.camelCase( name ) ]; + } + } else { + ret = thisCache; + } + + return ret; +} + +function internalRemoveData( elem, name, pvt ) { + if ( !jQuery.acceptData( elem ) ) { + return; + } + + var thisCache, i, + isNode = elem.nodeType, + + // See jQuery.data for more information + cache = isNode ? jQuery.cache : elem, + id = isNode ? elem[ jQuery.expando ] : jQuery.expando; + + // If there is already no cache entry for this object, there is no + // purpose in continuing + if ( !cache[ id ] ) { + return; + } + + if ( name ) { + + thisCache = pvt ? cache[ id ] : cache[ id ].data; + + if ( thisCache ) { + + // Support array or space separated string names for data keys + if ( !jQuery.isArray( name ) ) { + + // try the string as a key before any manipulation + if ( name in thisCache ) { + name = [ name ]; + } else { + + // split the camel cased version by spaces unless a key with the spaces exists + name = jQuery.camelCase( name ); + if ( name in thisCache ) { + name = [ name ]; + } else { + name = name.split(" "); + } + } + } else { + // If "name" is an array of keys... + // When data is initially created, via ("key", "val") signature, + // keys will be converted to camelCase. + // Since there is no way to tell _how_ a key was added, remove + // both plain key and camelCase key. #12786 + // This will only penalize the array argument path. + name = name.concat( jQuery.map( name, jQuery.camelCase ) ); + } + + i = name.length; + while ( i-- ) { + delete thisCache[ name[i] ]; + } + + // If there is no data left in the cache, we want to continue + // and let the cache object itself get destroyed + if ( pvt ? !isEmptyDataObject(thisCache) : !jQuery.isEmptyObject(thisCache) ) { + return; + } + } + } + + // See jQuery.data for more information + if ( !pvt ) { + delete cache[ id ].data; + + // Don't destroy the parent cache unless the internal data object + // had been the only thing left in it + if ( !isEmptyDataObject( cache[ id ] ) ) { + return; + } + } + + // Destroy the cache + if ( isNode ) { + jQuery.cleanData( [ elem ], true ); + + // Use delete when supported for expandos or `cache` is not a window per isWindow (#10080) + /* jshint eqeqeq: false */ + } else if ( jQuery.support.deleteExpando || cache != cache.window ) { + /* jshint eqeqeq: true */ + delete cache[ id ]; + + // When all else fails, null + } else { + cache[ id ] = null; + } +} + +jQuery.extend({ + cache: {}, + + // The following elements throw uncatchable exceptions if you + // attempt to add expando properties to them. + noData: { + "applet": true, + "embed": true, + // Ban all objects except for Flash (which handle expandos) + "object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" + }, + + hasData: function( elem ) { + elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ]; + return !!elem && !isEmptyDataObject( elem ); + }, + + data: function( elem, name, data ) { + return internalData( elem, name, data ); + }, + + removeData: function( elem, name ) { + return internalRemoveData( elem, name ); + }, + + // For internal use only. + _data: function( elem, name, data ) { + return internalData( elem, name, data, true ); + }, + + _removeData: function( elem, name ) { + return internalRemoveData( elem, name, true ); + }, + + // A method for determining if a DOM node can handle the data expando + acceptData: function( elem ) { + // Do not set data on non-element because it will not be cleared (#8335). + if ( elem.nodeType && elem.nodeType !== 1 && elem.nodeType !== 9 ) { + return false; + } + + var noData = elem.nodeName && jQuery.noData[ elem.nodeName.toLowerCase() ]; + + // nodes accept data unless otherwise specified; rejection can be conditional + return !noData || noData !== true && elem.getAttribute("classid") === noData; + } +}); + +jQuery.fn.extend({ + data: function( key, value ) { + var attrs, name, + data = null, + i = 0, + elem = this[0]; + + // Special expections of .data basically thwart jQuery.access, + // so implement the relevant behavior ourselves + + // Gets all values + if ( key === undefined ) { + if ( this.length ) { + data = jQuery.data( elem ); + + if ( elem.nodeType === 1 && !jQuery._data( elem, "parsedAttrs" ) ) { + attrs = elem.attributes; + for ( ; i < attrs.length; i++ ) { + name = attrs[i].name; + + if ( name.indexOf("data-") === 0 ) { + name = jQuery.camelCase( name.slice(5) ); + + dataAttr( elem, name, data[ name ] ); + } + } + jQuery._data( elem, "parsedAttrs", true ); + } + } + + return data; + } + + // Sets multiple values + if ( typeof key === "object" ) { + return this.each(function() { + jQuery.data( this, key ); + }); + } + + return arguments.length > 1 ? + + // Sets one value + this.each(function() { + jQuery.data( this, key, value ); + }) : + + // Gets one value + // Try to fetch any internally stored data first + elem ? dataAttr( elem, key, jQuery.data( elem, key ) ) : null; + }, + + removeData: function( key ) { + return this.each(function() { + jQuery.removeData( this, key ); + }); + } +}); + +function dataAttr( elem, key, data ) { + // If nothing was found internally, try to fetch any + // data from the HTML5 data-* attribute + if ( data === undefined && elem.nodeType === 1 ) { + + var name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase(); + + data = elem.getAttribute( name ); + + if ( typeof data === "string" ) { + try { + data = data === "true" ? true : + data === "false" ? false : + data === "null" ? null : + // Only convert to a number if it doesn't change the string + +data + "" === data ? +data : + rbrace.test( data ) ? jQuery.parseJSON( data ) : + data; + } catch( e ) {} + + // Make sure we set the data so it isn't changed later + jQuery.data( elem, key, data ); + + } else { + data = undefined; + } + } + + return data; +} + +// checks a cache object for emptiness +function isEmptyDataObject( obj ) { + var name; + for ( name in obj ) { + + // if the public data object is empty, the private is still empty + if ( name === "data" && jQuery.isEmptyObject( obj[name] ) ) { + continue; + } + if ( name !== "toJSON" ) { + return false; + } + } + + return true; +} +jQuery.extend({ + queue: function( elem, type, data ) { + var queue; + + if ( elem ) { + type = ( type || "fx" ) + "queue"; + queue = jQuery._data( elem, type ); + + // Speed up dequeue by getting out quickly if this is just a lookup + if ( data ) { + if ( !queue || jQuery.isArray(data) ) { + queue = jQuery._data( elem, type, jQuery.makeArray(data) ); + } else { + queue.push( data ); + } + } + return queue || []; + } + }, + + dequeue: function( elem, type ) { + type = type || "fx"; + + var queue = jQuery.queue( elem, type ), + startLength = queue.length, + fn = queue.shift(), + hooks = jQuery._queueHooks( elem, type ), + next = function() { + jQuery.dequeue( elem, type ); + }; + + // If the fx queue is dequeued, always remove the progress sentinel + if ( fn === "inprogress" ) { + fn = queue.shift(); + startLength--; + } + + if ( fn ) { + + // Add a progress sentinel to prevent the fx queue from being + // automatically dequeued + if ( type === "fx" ) { + queue.unshift( "inprogress" ); + } + + // clear up the last queue stop function + delete hooks.stop; + fn.call( elem, next, hooks ); + } + + if ( !startLength && hooks ) { + hooks.empty.fire(); + } + }, + + // not intended for public consumption - generates a queueHooks object, or returns the current one + _queueHooks: function( elem, type ) { + var key = type + "queueHooks"; + return jQuery._data( elem, key ) || jQuery._data( elem, key, { + empty: jQuery.Callbacks("once memory").add(function() { + jQuery._removeData( elem, type + "queue" ); + jQuery._removeData( elem, key ); + }) + }); + } +}); + +jQuery.fn.extend({ + queue: function( type, data ) { + var setter = 2; + + if ( typeof type !== "string" ) { + data = type; + type = "fx"; + setter--; + } + + if ( arguments.length < setter ) { + return jQuery.queue( this[0], type ); + } + + return data === undefined ? + this : + this.each(function() { + var queue = jQuery.queue( this, type, data ); + + // ensure a hooks for this queue + jQuery._queueHooks( this, type ); + + if ( type === "fx" && queue[0] !== "inprogress" ) { + jQuery.dequeue( this, type ); + } + }); + }, + dequeue: function( type ) { + return this.each(function() { + jQuery.dequeue( this, type ); + }); + }, + // Based off of the plugin by Clint Helfers, with permission. + // http://blindsignals.com/index.php/2009/07/jquery-delay/ + delay: function( time, type ) { + time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; + type = type || "fx"; + + return this.queue( type, function( next, hooks ) { + var timeout = setTimeout( next, time ); + hooks.stop = function() { + clearTimeout( timeout ); + }; + }); + }, + clearQueue: function( type ) { + return this.queue( type || "fx", [] ); + }, + // Get a promise resolved when queues of a certain type + // are emptied (fx is the type by default) + promise: function( type, obj ) { + var tmp, + count = 1, + defer = jQuery.Deferred(), + elements = this, + i = this.length, + resolve = function() { + if ( !( --count ) ) { + defer.resolveWith( elements, [ elements ] ); + } + }; + + if ( typeof type !== "string" ) { + obj = type; + type = undefined; + } + type = type || "fx"; + + while( i-- ) { + tmp = jQuery._data( elements[ i ], type + "queueHooks" ); + if ( tmp && tmp.empty ) { + count++; + tmp.empty.add( resolve ); + } + } + resolve(); + return defer.promise( obj ); + } +}); +var nodeHook, boolHook, + rclass = /[\t\r\n\f]/g, + rreturn = /\r/g, + rfocusable = /^(?:input|select|textarea|button|object)$/i, + rclickable = /^(?:a|area)$/i, + ruseDefault = /^(?:checked|selected)$/i, + getSetAttribute = jQuery.support.getSetAttribute, + getSetInput = jQuery.support.input; + +jQuery.fn.extend({ + attr: function( name, value ) { + return jQuery.access( this, jQuery.attr, name, value, arguments.length > 1 ); + }, + + removeAttr: function( name ) { + return this.each(function() { + jQuery.removeAttr( this, name ); + }); + }, + + prop: function( name, value ) { + return jQuery.access( this, jQuery.prop, name, value, arguments.length > 1 ); + }, + + removeProp: function( name ) { + name = jQuery.propFix[ name ] || name; + return this.each(function() { + // try/catch handles cases where IE balks (such as removing a property on window) + try { + this[ name ] = undefined; + delete this[ name ]; + } catch( e ) {} + }); + }, + + addClass: function( value ) { + var classes, elem, cur, clazz, j, + i = 0, + len = this.length, + proceed = typeof value === "string" && value; + + if ( jQuery.isFunction( value ) ) { + return this.each(function( j ) { + jQuery( this ).addClass( value.call( this, j, this.className ) ); + }); + } + + if ( proceed ) { + // The disjunction here is for better compressibility (see removeClass) + classes = ( value || "" ).match( core_rnotwhite ) || []; + + for ( ; i < len; i++ ) { + elem = this[ i ]; + cur = elem.nodeType === 1 && ( elem.className ? + ( " " + elem.className + " " ).replace( rclass, " " ) : + " " + ); + + if ( cur ) { + j = 0; + while ( (clazz = classes[j++]) ) { + if ( cur.indexOf( " " + clazz + " " ) < 0 ) { + cur += clazz + " "; + } + } + elem.className = jQuery.trim( cur ); + + } + } + } + + return this; + }, + + removeClass: function( value ) { + var classes, elem, cur, clazz, j, + i = 0, + len = this.length, + proceed = arguments.length === 0 || typeof value === "string" && value; + + if ( jQuery.isFunction( value ) ) { + return this.each(function( j ) { + jQuery( this ).removeClass( value.call( this, j, this.className ) ); + }); + } + if ( proceed ) { + classes = ( value || "" ).match( core_rnotwhite ) || []; + + for ( ; i < len; i++ ) { + elem = this[ i ]; + // This expression is here for better compressibility (see addClass) + cur = elem.nodeType === 1 && ( elem.className ? + ( " " + elem.className + " " ).replace( rclass, " " ) : + "" + ); + + if ( cur ) { + j = 0; + while ( (clazz = classes[j++]) ) { + // Remove *all* instances + while ( cur.indexOf( " " + clazz + " " ) >= 0 ) { + cur = cur.replace( " " + clazz + " ", " " ); + } + } + elem.className = value ? jQuery.trim( cur ) : ""; + } + } + } + + return this; + }, + + toggleClass: function( value, stateVal ) { + var type = typeof value; + + if ( typeof stateVal === "boolean" && type === "string" ) { + return stateVal ? this.addClass( value ) : this.removeClass( value ); + } + + if ( jQuery.isFunction( value ) ) { + return this.each(function( i ) { + jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal ); + }); + } + + return this.each(function() { + if ( type === "string" ) { + // toggle individual class names + var className, + i = 0, + self = jQuery( this ), + classNames = value.match( core_rnotwhite ) || []; + + while ( (className = classNames[ i++ ]) ) { + // check each className given, space separated list + if ( self.hasClass( className ) ) { + self.removeClass( className ); + } else { + self.addClass( className ); + } + } + + // Toggle whole class name + } else if ( type === core_strundefined || type === "boolean" ) { + if ( this.className ) { + // store className if set + jQuery._data( this, "__className__", this.className ); + } + + // If the element has a class name or if we're passed "false", + // then remove the whole classname (if there was one, the above saved it). + // Otherwise bring back whatever was previously saved (if anything), + // falling back to the empty string if nothing was stored. + this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || ""; + } + }); + }, + + hasClass: function( selector ) { + var className = " " + selector + " ", + i = 0, + l = this.length; + for ( ; i < l; i++ ) { + if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) >= 0 ) { + return true; + } + } + + return false; + }, + + val: function( value ) { + var ret, hooks, isFunction, + elem = this[0]; + + if ( !arguments.length ) { + if ( elem ) { + hooks = jQuery.valHooks[ elem.type ] || jQuery.valHooks[ elem.nodeName.toLowerCase() ]; + + if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) { + return ret; + } + + ret = elem.value; + + return typeof ret === "string" ? + // handle most common string cases + ret.replace(rreturn, "") : + // handle cases where value is null/undef or number + ret == null ? "" : ret; + } + + return; + } + + isFunction = jQuery.isFunction( value ); + + return this.each(function( i ) { + var val; + + if ( this.nodeType !== 1 ) { + return; + } + + if ( isFunction ) { + val = value.call( this, i, jQuery( this ).val() ); + } else { + val = value; + } + + // Treat null/undefined as ""; convert numbers to string + if ( val == null ) { + val = ""; + } else if ( typeof val === "number" ) { + val += ""; + } else if ( jQuery.isArray( val ) ) { + val = jQuery.map(val, function ( value ) { + return value == null ? "" : value + ""; + }); + } + + hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; + + // If set returns undefined, fall back to normal setting + if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) { + this.value = val; + } + }); + } +}); + +jQuery.extend({ + valHooks: { + option: { + get: function( elem ) { + // Use proper attribute retrieval(#6932, #12072) + var val = jQuery.find.attr( elem, "value" ); + return val != null ? + val : + elem.text; + } + }, + select: { + get: function( elem ) { + var value, option, + options = elem.options, + index = elem.selectedIndex, + one = elem.type === "select-one" || index < 0, + values = one ? null : [], + max = one ? index + 1 : options.length, + i = index < 0 ? + max : + one ? index : 0; + + // Loop through all the selected options + for ( ; i < max; i++ ) { + option = options[ i ]; + + // oldIE doesn't update selected after form reset (#2551) + if ( ( option.selected || i === index ) && + // Don't return options that are disabled or in a disabled optgroup + ( jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null ) && + ( !option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" ) ) ) { + + // Get the specific value for the option + value = jQuery( option ).val(); + + // We don't need an array for one selects + if ( one ) { + return value; + } + + // Multi-Selects return an array + values.push( value ); + } + } + + return values; + }, + + set: function( elem, value ) { + var optionSet, option, + options = elem.options, + values = jQuery.makeArray( value ), + i = options.length; + + while ( i-- ) { + option = options[ i ]; + if ( (option.selected = jQuery.inArray( jQuery(option).val(), values ) >= 0) ) { + optionSet = true; + } + } + + // force browsers to behave consistently when non-matching value is set + if ( !optionSet ) { + elem.selectedIndex = -1; + } + return values; + } + } + }, + + attr: function( elem, name, value ) { + var hooks, ret, + nType = elem.nodeType; + + // don't get/set attributes on text, comment and attribute nodes + if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + // Fallback to prop when attributes are not supported + if ( typeof elem.getAttribute === core_strundefined ) { + return jQuery.prop( elem, name, value ); + } + + // All attributes are lowercase + // Grab necessary hook if one is defined + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + name = name.toLowerCase(); + hooks = jQuery.attrHooks[ name ] || + ( jQuery.expr.match.bool.test( name ) ? boolHook : nodeHook ); + } + + if ( value !== undefined ) { + + if ( value === null ) { + jQuery.removeAttr( elem, name ); + + } else if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) { + return ret; + + } else { + elem.setAttribute( name, value + "" ); + return value; + } + + } else if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) { + return ret; + + } else { + ret = jQuery.find.attr( elem, name ); + + // Non-existent attributes return null, we normalize to undefined + return ret == null ? + undefined : + ret; + } + }, + + removeAttr: function( elem, value ) { + var name, propName, + i = 0, + attrNames = value && value.match( core_rnotwhite ); + + if ( attrNames && elem.nodeType === 1 ) { + while ( (name = attrNames[i++]) ) { + propName = jQuery.propFix[ name ] || name; + + // Boolean attributes get special treatment (#10870) + if ( jQuery.expr.match.bool.test( name ) ) { + // Set corresponding property to false + if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) { + elem[ propName ] = false; + // Support: IE<9 + // Also clear defaultChecked/defaultSelected (if appropriate) + } else { + elem[ jQuery.camelCase( "default-" + name ) ] = + elem[ propName ] = false; + } + + // See #9699 for explanation of this approach (setting first, then removal) + } else { + jQuery.attr( elem, name, "" ); + } + + elem.removeAttribute( getSetAttribute ? name : propName ); + } + } + }, + + attrHooks: { + type: { + set: function( elem, value ) { + if ( !jQuery.support.radioValue && value === "radio" && jQuery.nodeName(elem, "input") ) { + // Setting the type on a radio button after the value resets the value in IE6-9 + // Reset value to default in case type is set after value during creation + var val = elem.value; + elem.setAttribute( "type", value ); + if ( val ) { + elem.value = val; + } + return value; + } + } + } + }, + + propFix: { + "for": "htmlFor", + "class": "className" + }, + + prop: function( elem, name, value ) { + var ret, hooks, notxml, + nType = elem.nodeType; + + // don't get/set properties on text, comment and attribute nodes + if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); + + if ( notxml ) { + // Fix name and attach hooks + name = jQuery.propFix[ name ] || name; + hooks = jQuery.propHooks[ name ]; + } + + if ( value !== undefined ) { + return hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ? + ret : + ( elem[ name ] = value ); + + } else { + return hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ? + ret : + elem[ name ]; + } + }, + + propHooks: { + tabIndex: { + get: function( elem ) { + // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set + // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ + // Use proper attribute retrieval(#12072) + var tabindex = jQuery.find.attr( elem, "tabindex" ); + + return tabindex ? + parseInt( tabindex, 10 ) : + rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ? + 0 : + -1; + } + } + } +}); + +// Hooks for boolean attributes +boolHook = { + set: function( elem, value, name ) { + if ( value === false ) { + // Remove boolean attributes when set to false + jQuery.removeAttr( elem, name ); + } else if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) { + // IE<8 needs the *property* name + elem.setAttribute( !getSetAttribute && jQuery.propFix[ name ] || name, name ); + + // Use defaultChecked and defaultSelected for oldIE + } else { + elem[ jQuery.camelCase( "default-" + name ) ] = elem[ name ] = true; + } + + return name; + } +}; +jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) { + var getter = jQuery.expr.attrHandle[ name ] || jQuery.find.attr; + + jQuery.expr.attrHandle[ name ] = getSetInput && getSetAttribute || !ruseDefault.test( name ) ? + function( elem, name, isXML ) { + var fn = jQuery.expr.attrHandle[ name ], + ret = isXML ? + undefined : + /* jshint eqeqeq: false */ + (jQuery.expr.attrHandle[ name ] = undefined) != + getter( elem, name, isXML ) ? + + name.toLowerCase() : + null; + jQuery.expr.attrHandle[ name ] = fn; + return ret; + } : + function( elem, name, isXML ) { + return isXML ? + undefined : + elem[ jQuery.camelCase( "default-" + name ) ] ? + name.toLowerCase() : + null; + }; +}); + +// fix oldIE attroperties +if ( !getSetInput || !getSetAttribute ) { + jQuery.attrHooks.value = { + set: function( elem, value, name ) { + if ( jQuery.nodeName( elem, "input" ) ) { + // Does not return so that setAttribute is also used + elem.defaultValue = value; + } else { + // Use nodeHook if defined (#1954); otherwise setAttribute is fine + return nodeHook && nodeHook.set( elem, value, name ); + } + } + }; +} + +// IE6/7 do not support getting/setting some attributes with get/setAttribute +if ( !getSetAttribute ) { + + // Use this for any attribute in IE6/7 + // This fixes almost every IE6/7 issue + nodeHook = { + set: function( elem, value, name ) { + // Set the existing or create a new attribute node + var ret = elem.getAttributeNode( name ); + if ( !ret ) { + elem.setAttributeNode( + (ret = elem.ownerDocument.createAttribute( name )) + ); + } + + ret.value = value += ""; + + // Break association with cloned elements by also using setAttribute (#9646) + return name === "value" || value === elem.getAttribute( name ) ? + value : + undefined; + } + }; + jQuery.expr.attrHandle.id = jQuery.expr.attrHandle.name = jQuery.expr.attrHandle.coords = + // Some attributes are constructed with empty-string values when not defined + function( elem, name, isXML ) { + var ret; + return isXML ? + undefined : + (ret = elem.getAttributeNode( name )) && ret.value !== "" ? + ret.value : + null; + }; + jQuery.valHooks.button = { + get: function( elem, name ) { + var ret = elem.getAttributeNode( name ); + return ret && ret.specified ? + ret.value : + undefined; + }, + set: nodeHook.set + }; + + // Set contenteditable to false on removals(#10429) + // Setting to empty string throws an error as an invalid value + jQuery.attrHooks.contenteditable = { + set: function( elem, value, name ) { + nodeHook.set( elem, value === "" ? false : value, name ); + } + }; + + // Set width and height to auto instead of 0 on empty string( Bug #8150 ) + // This is for removals + jQuery.each([ "width", "height" ], function( i, name ) { + jQuery.attrHooks[ name ] = { + set: function( elem, value ) { + if ( value === "" ) { + elem.setAttribute( name, "auto" ); + return value; + } + } + }; + }); +} + + +// Some attributes require a special call on IE +// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx +if ( !jQuery.support.hrefNormalized ) { + // href/src property should get the full normalized URL (#10299/#12915) + jQuery.each([ "href", "src" ], function( i, name ) { + jQuery.propHooks[ name ] = { + get: function( elem ) { + return elem.getAttribute( name, 4 ); + } + }; + }); +} + +if ( !jQuery.support.style ) { + jQuery.attrHooks.style = { + get: function( elem ) { + // Return undefined in the case of empty string + // Note: IE uppercases css property names, but if we were to .toLowerCase() + // .cssText, that would destroy case senstitivity in URL's, like in "background" + return elem.style.cssText || undefined; + }, + set: function( elem, value ) { + return ( elem.style.cssText = value + "" ); + } + }; +} + +// Safari mis-reports the default selected property of an option +// Accessing the parent's selectedIndex property fixes it +if ( !jQuery.support.optSelected ) { + jQuery.propHooks.selected = { + get: function( elem ) { + var parent = elem.parentNode; + + if ( parent ) { + parent.selectedIndex; + + // Make sure that it also works with optgroups, see #5701 + if ( parent.parentNode ) { + parent.parentNode.selectedIndex; + } + } + return null; + } + }; +} + +jQuery.each([ + "tabIndex", + "readOnly", + "maxLength", + "cellSpacing", + "cellPadding", + "rowSpan", + "colSpan", + "useMap", + "frameBorder", + "contentEditable" +], function() { + jQuery.propFix[ this.toLowerCase() ] = this; +}); + +// IE6/7 call enctype encoding +if ( !jQuery.support.enctype ) { + jQuery.propFix.enctype = "encoding"; +} + +// Radios and checkboxes getter/setter +jQuery.each([ "radio", "checkbox" ], function() { + jQuery.valHooks[ this ] = { + set: function( elem, value ) { + if ( jQuery.isArray( value ) ) { + return ( elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0 ); + } + } + }; + if ( !jQuery.support.checkOn ) { + jQuery.valHooks[ this ].get = function( elem ) { + // Support: Webkit + // "" is returned instead of "on" if a value isn't specified + return elem.getAttribute("value") === null ? "on" : elem.value; + }; + } +}); +var rformElems = /^(?:input|select|textarea)$/i, + rkeyEvent = /^key/, + rmouseEvent = /^(?:mouse|contextmenu)|click/, + rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, + rtypenamespace = /^([^.]*)(?:\.(.+)|)$/; + +function returnTrue() { + return true; +} + +function returnFalse() { + return false; +} + +function safeActiveElement() { + try { + return document.activeElement; + } catch ( err ) { } +} + +/* + * Helper functions for managing events -- not part of the public interface. + * Props to Dean Edwards' addEvent library for many of the ideas. + */ +jQuery.event = { + + global: {}, + + add: function( elem, types, handler, data, selector ) { + var tmp, events, t, handleObjIn, + special, eventHandle, handleObj, + handlers, type, namespaces, origType, + elemData = jQuery._data( elem ); + + // Don't attach events to noData or text/comment nodes (but allow plain objects) + if ( !elemData ) { + return; + } + + // Caller can pass in an object of custom data in lieu of the handler + if ( handler.handler ) { + handleObjIn = handler; + handler = handleObjIn.handler; + selector = handleObjIn.selector; + } + + // Make sure that the handler has a unique ID, used to find/remove it later + if ( !handler.guid ) { + handler.guid = jQuery.guid++; + } + + // Init the element's event structure and main handler, if this is the first + if ( !(events = elemData.events) ) { + events = elemData.events = {}; + } + if ( !(eventHandle = elemData.handle) ) { + eventHandle = elemData.handle = function( e ) { + // Discard the second event of a jQuery.event.trigger() and + // when an event is called after a page has unloaded + return typeof jQuery !== core_strundefined && (!e || jQuery.event.triggered !== e.type) ? + jQuery.event.dispatch.apply( eventHandle.elem, arguments ) : + undefined; + }; + // Add elem as a property of the handle fn to prevent a memory leak with IE non-native events + eventHandle.elem = elem; + } + + // Handle multiple events separated by a space + types = ( types || "" ).match( core_rnotwhite ) || [""]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[t] ) || []; + type = origType = tmp[1]; + namespaces = ( tmp[2] || "" ).split( "." ).sort(); + + // There *must* be a type, no attaching namespace-only handlers + if ( !type ) { + continue; + } + + // If event changes its type, use the special event handlers for the changed type + special = jQuery.event.special[ type ] || {}; + + // If selector defined, determine special event api type, otherwise given type + type = ( selector ? special.delegateType : special.bindType ) || type; + + // Update special based on newly reset type + special = jQuery.event.special[ type ] || {}; + + // handleObj is passed to all event handlers + handleObj = jQuery.extend({ + type: type, + origType: origType, + data: data, + handler: handler, + guid: handler.guid, + selector: selector, + needsContext: selector && jQuery.expr.match.needsContext.test( selector ), + namespace: namespaces.join(".") + }, handleObjIn ); + + // Init the event handler queue if we're the first + if ( !(handlers = events[ type ]) ) { + handlers = events[ type ] = []; + handlers.delegateCount = 0; + + // Only use addEventListener/attachEvent if the special events handler returns false + if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) { + // Bind the global event handler to the element + if ( elem.addEventListener ) { + elem.addEventListener( type, eventHandle, false ); + + } else if ( elem.attachEvent ) { + elem.attachEvent( "on" + type, eventHandle ); + } + } + } + + if ( special.add ) { + special.add.call( elem, handleObj ); + + if ( !handleObj.handler.guid ) { + handleObj.handler.guid = handler.guid; + } + } + + // Add to the element's handler list, delegates in front + if ( selector ) { + handlers.splice( handlers.delegateCount++, 0, handleObj ); + } else { + handlers.push( handleObj ); + } + + // Keep track of which events have ever been used, for event optimization + jQuery.event.global[ type ] = true; + } + + // Nullify elem to prevent memory leaks in IE + elem = null; + }, + + // Detach an event or set of events from an element + remove: function( elem, types, handler, selector, mappedTypes ) { + var j, handleObj, tmp, + origCount, t, events, + special, handlers, type, + namespaces, origType, + elemData = jQuery.hasData( elem ) && jQuery._data( elem ); + + if ( !elemData || !(events = elemData.events) ) { + return; + } + + // Once for each type.namespace in types; type may be omitted + types = ( types || "" ).match( core_rnotwhite ) || [""]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[t] ) || []; + type = origType = tmp[1]; + namespaces = ( tmp[2] || "" ).split( "." ).sort(); + + // Unbind all events (on this namespace, if provided) for the element + if ( !type ) { + for ( type in events ) { + jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); + } + continue; + } + + special = jQuery.event.special[ type ] || {}; + type = ( selector ? special.delegateType : special.bindType ) || type; + handlers = events[ type ] || []; + tmp = tmp[2] && new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ); + + // Remove matching events + origCount = j = handlers.length; + while ( j-- ) { + handleObj = handlers[ j ]; + + if ( ( mappedTypes || origType === handleObj.origType ) && + ( !handler || handler.guid === handleObj.guid ) && + ( !tmp || tmp.test( handleObj.namespace ) ) && + ( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) { + handlers.splice( j, 1 ); + + if ( handleObj.selector ) { + handlers.delegateCount--; + } + if ( special.remove ) { + special.remove.call( elem, handleObj ); + } + } + } + + // Remove generic event handler if we removed something and no more handlers exist + // (avoids potential for endless recursion during removal of special event handlers) + if ( origCount && !handlers.length ) { + if ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) { + jQuery.removeEvent( elem, type, elemData.handle ); + } + + delete events[ type ]; + } + } + + // Remove the expando if it's no longer used + if ( jQuery.isEmptyObject( events ) ) { + delete elemData.handle; + + // removeData also checks for emptiness and clears the expando if empty + // so use it instead of delete + jQuery._removeData( elem, "events" ); + } + }, + + trigger: function( event, data, elem, onlyHandlers ) { + var handle, ontype, cur, + bubbleType, special, tmp, i, + eventPath = [ elem || document ], + type = core_hasOwn.call( event, "type" ) ? event.type : event, + namespaces = core_hasOwn.call( event, "namespace" ) ? event.namespace.split(".") : []; + + cur = tmp = elem = elem || document; + + // Don't do events on text and comment nodes + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; + } + + // focus/blur morphs to focusin/out; ensure we're not firing them right now + if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { + return; + } + + if ( type.indexOf(".") >= 0 ) { + // Namespaced trigger; create a regexp to match event type in handle() + namespaces = type.split("."); + type = namespaces.shift(); + namespaces.sort(); + } + ontype = type.indexOf(":") < 0 && "on" + type; + + // Caller can pass in a jQuery.Event object, Object, or just an event type string + event = event[ jQuery.expando ] ? + event : + new jQuery.Event( type, typeof event === "object" && event ); + + // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) + event.isTrigger = onlyHandlers ? 2 : 3; + event.namespace = namespaces.join("."); + event.namespace_re = event.namespace ? + new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ) : + null; + + // Clean up the event in case it is being reused + event.result = undefined; + if ( !event.target ) { + event.target = elem; + } + + // Clone any incoming data and prepend the event, creating the handler arg list + data = data == null ? + [ event ] : + jQuery.makeArray( data, [ event ] ); + + // Allow special events to draw outside the lines + special = jQuery.event.special[ type ] || {}; + if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { + return; + } + + // Determine event propagation path in advance, per W3C events spec (#9951) + // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) + if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) { + + bubbleType = special.delegateType || type; + if ( !rfocusMorph.test( bubbleType + type ) ) { + cur = cur.parentNode; + } + for ( ; cur; cur = cur.parentNode ) { + eventPath.push( cur ); + tmp = cur; + } + + // Only add window if we got to document (e.g., not plain obj or detached DOM) + if ( tmp === (elem.ownerDocument || document) ) { + eventPath.push( tmp.defaultView || tmp.parentWindow || window ); + } + } + + // Fire handlers on the event path + i = 0; + while ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) { + + event.type = i > 1 ? + bubbleType : + special.bindType || type; + + // jQuery handler + handle = ( jQuery._data( cur, "events" ) || {} )[ event.type ] && jQuery._data( cur, "handle" ); + if ( handle ) { + handle.apply( cur, data ); + } + + // Native handler + handle = ontype && cur[ ontype ]; + if ( handle && jQuery.acceptData( cur ) && handle.apply && handle.apply( cur, data ) === false ) { + event.preventDefault(); + } + } + event.type = type; + + // If nobody prevented the default action, do it now + if ( !onlyHandlers && !event.isDefaultPrevented() ) { + + if ( (!special._default || special._default.apply( eventPath.pop(), data ) === false) && + jQuery.acceptData( elem ) ) { + + // Call a native DOM method on the target with the same name name as the event. + // Can't use an .isFunction() check here because IE6/7 fails that test. + // Don't do default actions on window, that's where global variables be (#6170) + if ( ontype && elem[ type ] && !jQuery.isWindow( elem ) ) { + + // Don't re-trigger an onFOO event when we call its FOO() method + tmp = elem[ ontype ]; + + if ( tmp ) { + elem[ ontype ] = null; + } + + // Prevent re-triggering of the same event, since we already bubbled it above + jQuery.event.triggered = type; + try { + elem[ type ](); + } catch ( e ) { + // IE<9 dies on focus/blur to hidden element (#1486,#12518) + // only reproducible on winXP IE8 native, not IE9 in IE8 mode + } + jQuery.event.triggered = undefined; + + if ( tmp ) { + elem[ ontype ] = tmp; + } + } + } + } + + return event.result; + }, + + dispatch: function( event ) { + + // Make a writable jQuery.Event from the native event object + event = jQuery.event.fix( event ); + + var i, ret, handleObj, matched, j, + handlerQueue = [], + args = core_slice.call( arguments ), + handlers = ( jQuery._data( this, "events" ) || {} )[ event.type ] || [], + special = jQuery.event.special[ event.type ] || {}; + + // Use the fix-ed jQuery.Event rather than the (read-only) native event + args[0] = event; + event.delegateTarget = this; + + // Call the preDispatch hook for the mapped type, and let it bail if desired + if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { + return; + } + + // Determine handlers + handlerQueue = jQuery.event.handlers.call( this, event, handlers ); + + // Run delegates first; they may want to stop propagation beneath us + i = 0; + while ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) { + event.currentTarget = matched.elem; + + j = 0; + while ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) { + + // Triggered event must either 1) have no namespace, or + // 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace). + if ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) { + + event.handleObj = handleObj; + event.data = handleObj.data; + + ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler ) + .apply( matched.elem, args ); + + if ( ret !== undefined ) { + if ( (event.result = ret) === false ) { + event.preventDefault(); + event.stopPropagation(); + } + } + } + } + } + + // Call the postDispatch hook for the mapped type + if ( special.postDispatch ) { + special.postDispatch.call( this, event ); + } + + return event.result; + }, + + handlers: function( event, handlers ) { + var sel, handleObj, matches, i, + handlerQueue = [], + delegateCount = handlers.delegateCount, + cur = event.target; + + // Find delegate handlers + // Black-hole SVG instance trees (#13180) + // Avoid non-left-click bubbling in Firefox (#3861) + if ( delegateCount && cur.nodeType && (!event.button || event.type !== "click") ) { + + /* jshint eqeqeq: false */ + for ( ; cur != this; cur = cur.parentNode || this ) { + /* jshint eqeqeq: true */ + + // Don't check non-elements (#13208) + // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) + if ( cur.nodeType === 1 && (cur.disabled !== true || event.type !== "click") ) { + matches = []; + for ( i = 0; i < delegateCount; i++ ) { + handleObj = handlers[ i ]; + + // Don't conflict with Object.prototype properties (#13203) + sel = handleObj.selector + " "; + + if ( matches[ sel ] === undefined ) { + matches[ sel ] = handleObj.needsContext ? + jQuery( sel, this ).index( cur ) >= 0 : + jQuery.find( sel, this, null, [ cur ] ).length; + } + if ( matches[ sel ] ) { + matches.push( handleObj ); + } + } + if ( matches.length ) { + handlerQueue.push({ elem: cur, handlers: matches }); + } + } + } + } + + // Add the remaining (directly-bound) handlers + if ( delegateCount < handlers.length ) { + handlerQueue.push({ elem: this, handlers: handlers.slice( delegateCount ) }); + } + + return handlerQueue; + }, + + fix: function( event ) { + if ( event[ jQuery.expando ] ) { + return event; + } + + // Create a writable copy of the event object and normalize some properties + var i, prop, copy, + type = event.type, + originalEvent = event, + fixHook = this.fixHooks[ type ]; + + if ( !fixHook ) { + this.fixHooks[ type ] = fixHook = + rmouseEvent.test( type ) ? this.mouseHooks : + rkeyEvent.test( type ) ? this.keyHooks : + {}; + } + copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props; + + event = new jQuery.Event( originalEvent ); + + i = copy.length; + while ( i-- ) { + prop = copy[ i ]; + event[ prop ] = originalEvent[ prop ]; + } + + // Support: IE<9 + // Fix target property (#1925) + if ( !event.target ) { + event.target = originalEvent.srcElement || document; + } + + // Support: Chrome 23+, Safari? + // Target should not be a text node (#504, #13143) + if ( event.target.nodeType === 3 ) { + event.target = event.target.parentNode; + } + + // Support: IE<9 + // For mouse/key events, metaKey==false if it's undefined (#3368, #11328) + event.metaKey = !!event.metaKey; + + return fixHook.filter ? fixHook.filter( event, originalEvent ) : event; + }, + + // Includes some event props shared by KeyEvent and MouseEvent + props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "), + + fixHooks: {}, + + keyHooks: { + props: "char charCode key keyCode".split(" "), + filter: function( event, original ) { + + // Add which for key events + if ( event.which == null ) { + event.which = original.charCode != null ? original.charCode : original.keyCode; + } + + return event; + } + }, + + mouseHooks: { + props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "), + filter: function( event, original ) { + var body, eventDoc, doc, + button = original.button, + fromElement = original.fromElement; + + // Calculate pageX/Y if missing and clientX/Y available + if ( event.pageX == null && original.clientX != null ) { + eventDoc = event.target.ownerDocument || document; + doc = eventDoc.documentElement; + body = eventDoc.body; + + event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 ); + event.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 ); + } + + // Add relatedTarget, if necessary + if ( !event.relatedTarget && fromElement ) { + event.relatedTarget = fromElement === event.target ? original.toElement : fromElement; + } + + // Add which for click: 1 === left; 2 === middle; 3 === right + // Note: button is not normalized, so don't use it + if ( !event.which && button !== undefined ) { + event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) ); + } + + return event; + } + }, + + special: { + load: { + // Prevent triggered image.load events from bubbling to window.load + noBubble: true + }, + focus: { + // Fire native event if possible so blur/focus sequence is correct + trigger: function() { + if ( this !== safeActiveElement() && this.focus ) { + try { + this.focus(); + return false; + } catch ( e ) { + // Support: IE<9 + // If we error on focus to hidden element (#1486, #12518), + // let .trigger() run the handlers + } + } + }, + delegateType: "focusin" + }, + blur: { + trigger: function() { + if ( this === safeActiveElement() && this.blur ) { + this.blur(); + return false; + } + }, + delegateType: "focusout" + }, + click: { + // For checkbox, fire native event so checked state will be right + trigger: function() { + if ( jQuery.nodeName( this, "input" ) && this.type === "checkbox" && this.click ) { + this.click(); + return false; + } + }, + + // For cross-browser consistency, don't fire native .click() on links + _default: function( event ) { + return jQuery.nodeName( event.target, "a" ); + } + }, + + beforeunload: { + postDispatch: function( event ) { + + // Even when returnValue equals to undefined Firefox will still show alert + if ( event.result !== undefined ) { + event.originalEvent.returnValue = event.result; + } + } + } + }, + + simulate: function( type, elem, event, bubble ) { + // Piggyback on a donor event to simulate a different one. + // Fake originalEvent to avoid donor's stopPropagation, but if the + // simulated event prevents default then we do the same on the donor. + var e = jQuery.extend( + new jQuery.Event(), + event, + { + type: type, + isSimulated: true, + originalEvent: {} + } + ); + if ( bubble ) { + jQuery.event.trigger( e, null, elem ); + } else { + jQuery.event.dispatch.call( elem, e ); + } + if ( e.isDefaultPrevented() ) { + event.preventDefault(); + } + } +}; + +jQuery.removeEvent = document.removeEventListener ? + function( elem, type, handle ) { + if ( elem.removeEventListener ) { + elem.removeEventListener( type, handle, false ); + } + } : + function( elem, type, handle ) { + var name = "on" + type; + + if ( elem.detachEvent ) { + + // #8545, #7054, preventing memory leaks for custom events in IE6-8 + // detachEvent needed property on element, by name of that event, to properly expose it to GC + if ( typeof elem[ name ] === core_strundefined ) { + elem[ name ] = null; + } + + elem.detachEvent( name, handle ); + } + }; + +jQuery.Event = function( src, props ) { + // Allow instantiation without the 'new' keyword + if ( !(this instanceof jQuery.Event) ) { + return new jQuery.Event( src, props ); + } + + // Event object + if ( src && src.type ) { + this.originalEvent = src; + this.type = src.type; + + // Events bubbling up the document may have been marked as prevented + // by a handler lower down the tree; reflect the correct value. + this.isDefaultPrevented = ( src.defaultPrevented || src.returnValue === false || + src.getPreventDefault && src.getPreventDefault() ) ? returnTrue : returnFalse; + + // Event type + } else { + this.type = src; + } + + // Put explicitly provided properties onto the event object + if ( props ) { + jQuery.extend( this, props ); + } + + // Create a timestamp if incoming event doesn't have one + this.timeStamp = src && src.timeStamp || jQuery.now(); + + // Mark it as fixed + this[ jQuery.expando ] = true; +}; + +// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding +// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html +jQuery.Event.prototype = { + isDefaultPrevented: returnFalse, + isPropagationStopped: returnFalse, + isImmediatePropagationStopped: returnFalse, + + preventDefault: function() { + var e = this.originalEvent; + + this.isDefaultPrevented = returnTrue; + if ( !e ) { + return; + } + + // If preventDefault exists, run it on the original event + if ( e.preventDefault ) { + e.preventDefault(); + + // Support: IE + // Otherwise set the returnValue property of the original event to false + } else { + e.returnValue = false; + } + }, + stopPropagation: function() { + var e = this.originalEvent; + + this.isPropagationStopped = returnTrue; + if ( !e ) { + return; + } + // If stopPropagation exists, run it on the original event + if ( e.stopPropagation ) { + e.stopPropagation(); + } + + // Support: IE + // Set the cancelBubble property of the original event to true + e.cancelBubble = true; + }, + stopImmediatePropagation: function() { + this.isImmediatePropagationStopped = returnTrue; + this.stopPropagation(); + } +}; + +// Create mouseenter/leave events using mouseover/out and event-time checks +jQuery.each({ + mouseenter: "mouseover", + mouseleave: "mouseout" +}, function( orig, fix ) { + jQuery.event.special[ orig ] = { + delegateType: fix, + bindType: fix, + + handle: function( event ) { + var ret, + target = this, + related = event.relatedTarget, + handleObj = event.handleObj; + + // For mousenter/leave call the handler if related is outside the target. + // NB: No relatedTarget if the mouse left/entered the browser window + if ( !related || (related !== target && !jQuery.contains( target, related )) ) { + event.type = handleObj.origType; + ret = handleObj.handler.apply( this, arguments ); + event.type = fix; + } + return ret; + } + }; +}); + +// IE submit delegation +if ( !jQuery.support.submitBubbles ) { + + jQuery.event.special.submit = { + setup: function() { + // Only need this for delegated form submit events + if ( jQuery.nodeName( this, "form" ) ) { + return false; + } + + // Lazy-add a submit handler when a descendant form may potentially be submitted + jQuery.event.add( this, "click._submit keypress._submit", function( e ) { + // Node name check avoids a VML-related crash in IE (#9807) + var elem = e.target, + form = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ? elem.form : undefined; + if ( form && !jQuery._data( form, "submitBubbles" ) ) { + jQuery.event.add( form, "submit._submit", function( event ) { + event._submit_bubble = true; + }); + jQuery._data( form, "submitBubbles", true ); + } + }); + // return undefined since we don't need an event listener + }, + + postDispatch: function( event ) { + // If form was submitted by the user, bubble the event up the tree + if ( event._submit_bubble ) { + delete event._submit_bubble; + if ( this.parentNode && !event.isTrigger ) { + jQuery.event.simulate( "submit", this.parentNode, event, true ); + } + } + }, + + teardown: function() { + // Only need this for delegated form submit events + if ( jQuery.nodeName( this, "form" ) ) { + return false; + } + + // Remove delegated handlers; cleanData eventually reaps submit handlers attached above + jQuery.event.remove( this, "._submit" ); + } + }; +} + +// IE change delegation and checkbox/radio fix +if ( !jQuery.support.changeBubbles ) { + + jQuery.event.special.change = { + + setup: function() { + + if ( rformElems.test( this.nodeName ) ) { + // IE doesn't fire change on a check/radio until blur; trigger it on click + // after a propertychange. Eat the blur-change in special.change.handle. + // This still fires onchange a second time for check/radio after blur. + if ( this.type === "checkbox" || this.type === "radio" ) { + jQuery.event.add( this, "propertychange._change", function( event ) { + if ( event.originalEvent.propertyName === "checked" ) { + this._just_changed = true; + } + }); + jQuery.event.add( this, "click._change", function( event ) { + if ( this._just_changed && !event.isTrigger ) { + this._just_changed = false; + } + // Allow triggered, simulated change events (#11500) + jQuery.event.simulate( "change", this, event, true ); + }); + } + return false; + } + // Delegated event; lazy-add a change handler on descendant inputs + jQuery.event.add( this, "beforeactivate._change", function( e ) { + var elem = e.target; + + if ( rformElems.test( elem.nodeName ) && !jQuery._data( elem, "changeBubbles" ) ) { + jQuery.event.add( elem, "change._change", function( event ) { + if ( this.parentNode && !event.isSimulated && !event.isTrigger ) { + jQuery.event.simulate( "change", this.parentNode, event, true ); + } + }); + jQuery._data( elem, "changeBubbles", true ); + } + }); + }, + + handle: function( event ) { + var elem = event.target; + + // Swallow native change events from checkbox/radio, we already triggered them above + if ( this !== elem || event.isSimulated || event.isTrigger || (elem.type !== "radio" && elem.type !== "checkbox") ) { + return event.handleObj.handler.apply( this, arguments ); + } + }, + + teardown: function() { + jQuery.event.remove( this, "._change" ); + + return !rformElems.test( this.nodeName ); + } + }; +} + +// Create "bubbling" focus and blur events +if ( !jQuery.support.focusinBubbles ) { + jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) { + + // Attach a single capturing handler while someone wants focusin/focusout + var attaches = 0, + handler = function( event ) { + jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true ); + }; + + jQuery.event.special[ fix ] = { + setup: function() { + if ( attaches++ === 0 ) { + document.addEventListener( orig, handler, true ); + } + }, + teardown: function() { + if ( --attaches === 0 ) { + document.removeEventListener( orig, handler, true ); + } + } + }; + }); +} + +jQuery.fn.extend({ + + on: function( types, selector, data, fn, /*INTERNAL*/ one ) { + var type, origFn; + + // Types can be a map of types/handlers + if ( typeof types === "object" ) { + // ( types-Object, selector, data ) + if ( typeof selector !== "string" ) { + // ( types-Object, data ) + data = data || selector; + selector = undefined; + } + for ( type in types ) { + this.on( type, selector, data, types[ type ], one ); + } + return this; + } + + if ( data == null && fn == null ) { + // ( types, fn ) + fn = selector; + data = selector = undefined; + } else if ( fn == null ) { + if ( typeof selector === "string" ) { + // ( types, selector, fn ) + fn = data; + data = undefined; + } else { + // ( types, data, fn ) + fn = data; + data = selector; + selector = undefined; + } + } + if ( fn === false ) { + fn = returnFalse; + } else if ( !fn ) { + return this; + } + + if ( one === 1 ) { + origFn = fn; + fn = function( event ) { + // Can use an empty set, since event contains the info + jQuery().off( event ); + return origFn.apply( this, arguments ); + }; + // Use same guid so caller can remove using origFn + fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); + } + return this.each( function() { + jQuery.event.add( this, types, fn, data, selector ); + }); + }, + one: function( types, selector, data, fn ) { + return this.on( types, selector, data, fn, 1 ); + }, + off: function( types, selector, fn ) { + var handleObj, type; + if ( types && types.preventDefault && types.handleObj ) { + // ( event ) dispatched jQuery.Event + handleObj = types.handleObj; + jQuery( types.delegateTarget ).off( + handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType, + handleObj.selector, + handleObj.handler + ); + return this; + } + if ( typeof types === "object" ) { + // ( types-object [, selector] ) + for ( type in types ) { + this.off( type, selector, types[ type ] ); + } + return this; + } + if ( selector === false || typeof selector === "function" ) { + // ( types [, fn] ) + fn = selector; + selector = undefined; + } + if ( fn === false ) { + fn = returnFalse; + } + return this.each(function() { + jQuery.event.remove( this, types, fn, selector ); + }); + }, + + trigger: function( type, data ) { + return this.each(function() { + jQuery.event.trigger( type, data, this ); + }); + }, + triggerHandler: function( type, data ) { + var elem = this[0]; + if ( elem ) { + return jQuery.event.trigger( type, data, elem, true ); + } + } +}); +var isSimple = /^.[^:#\[\.,]*$/, + rparentsprev = /^(?:parents|prev(?:Until|All))/, + rneedsContext = jQuery.expr.match.needsContext, + // methods guaranteed to produce a unique set when starting from a unique set + guaranteedUnique = { + children: true, + contents: true, + next: true, + prev: true + }; + +jQuery.fn.extend({ + find: function( selector ) { + var i, + ret = [], + self = this, + len = self.length; + + if ( typeof selector !== "string" ) { + return this.pushStack( jQuery( selector ).filter(function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( self[ i ], this ) ) { + return true; + } + } + }) ); + } + + for ( i = 0; i < len; i++ ) { + jQuery.find( selector, self[ i ], ret ); + } + + // Needed because $( selector, context ) becomes $( context ).find( selector ) + ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret ); + ret.selector = this.selector ? this.selector + " " + selector : selector; + return ret; + }, + + has: function( target ) { + var i, + targets = jQuery( target, this ), + len = targets.length; + + return this.filter(function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( this, targets[i] ) ) { + return true; + } + } + }); + }, + + not: function( selector ) { + return this.pushStack( winnow(this, selector || [], true) ); + }, + + filter: function( selector ) { + return this.pushStack( winnow(this, selector || [], false) ); + }, + + is: function( selector ) { + return !!winnow( + this, + + // If this is a positional/relative selector, check membership in the returned set + // so $("p:first").is("p:last") won't return true for a doc with two "p". + typeof selector === "string" && rneedsContext.test( selector ) ? + jQuery( selector ) : + selector || [], + false + ).length; + }, + + closest: function( selectors, context ) { + var cur, + i = 0, + l = this.length, + ret = [], + pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ? + jQuery( selectors, context || this.context ) : + 0; + + for ( ; i < l; i++ ) { + for ( cur = this[i]; cur && cur !== context; cur = cur.parentNode ) { + // Always skip document fragments + if ( cur.nodeType < 11 && (pos ? + pos.index(cur) > -1 : + + // Don't pass non-elements to Sizzle + cur.nodeType === 1 && + jQuery.find.matchesSelector(cur, selectors)) ) { + + cur = ret.push( cur ); + break; + } + } + } + + return this.pushStack( ret.length > 1 ? jQuery.unique( ret ) : ret ); + }, + + // Determine the position of an element within + // the matched set of elements + index: function( elem ) { + + // No argument, return index in parent + if ( !elem ) { + return ( this[0] && this[0].parentNode ) ? this.first().prevAll().length : -1; + } + + // index in selector + if ( typeof elem === "string" ) { + return jQuery.inArray( this[0], jQuery( elem ) ); + } + + // Locate the position of the desired element + return jQuery.inArray( + // If it receives a jQuery object, the first element is used + elem.jquery ? elem[0] : elem, this ); + }, + + add: function( selector, context ) { + var set = typeof selector === "string" ? + jQuery( selector, context ) : + jQuery.makeArray( selector && selector.nodeType ? [ selector ] : selector ), + all = jQuery.merge( this.get(), set ); + + return this.pushStack( jQuery.unique(all) ); + }, + + addBack: function( selector ) { + return this.add( selector == null ? + this.prevObject : this.prevObject.filter(selector) + ); + } +}); + +function sibling( cur, dir ) { + do { + cur = cur[ dir ]; + } while ( cur && cur.nodeType !== 1 ); + + return cur; +} + +jQuery.each({ + parent: function( elem ) { + var parent = elem.parentNode; + return parent && parent.nodeType !== 11 ? parent : null; + }, + parents: function( elem ) { + return jQuery.dir( elem, "parentNode" ); + }, + parentsUntil: function( elem, i, until ) { + return jQuery.dir( elem, "parentNode", until ); + }, + next: function( elem ) { + return sibling( elem, "nextSibling" ); + }, + prev: function( elem ) { + return sibling( elem, "previousSibling" ); + }, + nextAll: function( elem ) { + return jQuery.dir( elem, "nextSibling" ); + }, + prevAll: function( elem ) { + return jQuery.dir( elem, "previousSibling" ); + }, + nextUntil: function( elem, i, until ) { + return jQuery.dir( elem, "nextSibling", until ); + }, + prevUntil: function( elem, i, until ) { + return jQuery.dir( elem, "previousSibling", until ); + }, + siblings: function( elem ) { + return jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem ); + }, + children: function( elem ) { + return jQuery.sibling( elem.firstChild ); + }, + contents: function( elem ) { + return jQuery.nodeName( elem, "iframe" ) ? + elem.contentDocument || elem.contentWindow.document : + jQuery.merge( [], elem.childNodes ); + } +}, function( name, fn ) { + jQuery.fn[ name ] = function( until, selector ) { + var ret = jQuery.map( this, fn, until ); + + if ( name.slice( -5 ) !== "Until" ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + ret = jQuery.filter( selector, ret ); + } + + if ( this.length > 1 ) { + // Remove duplicates + if ( !guaranteedUnique[ name ] ) { + ret = jQuery.unique( ret ); + } + + // Reverse order for parents* and prev-derivatives + if ( rparentsprev.test( name ) ) { + ret = ret.reverse(); + } + } + + return this.pushStack( ret ); + }; +}); + +jQuery.extend({ + filter: function( expr, elems, not ) { + var elem = elems[ 0 ]; + + if ( not ) { + expr = ":not(" + expr + ")"; + } + + return elems.length === 1 && elem.nodeType === 1 ? + jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] : + jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { + return elem.nodeType === 1; + })); + }, + + dir: function( elem, dir, until ) { + var matched = [], + cur = elem[ dir ]; + + while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) { + if ( cur.nodeType === 1 ) { + matched.push( cur ); + } + cur = cur[dir]; + } + return matched; + }, + + sibling: function( n, elem ) { + var r = []; + + for ( ; n; n = n.nextSibling ) { + if ( n.nodeType === 1 && n !== elem ) { + r.push( n ); + } + } + + return r; + } +}); + +// Implement the identical functionality for filter and not +function winnow( elements, qualifier, not ) { + if ( jQuery.isFunction( qualifier ) ) { + return jQuery.grep( elements, function( elem, i ) { + /* jshint -W018 */ + return !!qualifier.call( elem, i, elem ) !== not; + }); + + } + + if ( qualifier.nodeType ) { + return jQuery.grep( elements, function( elem ) { + return ( elem === qualifier ) !== not; + }); + + } + + if ( typeof qualifier === "string" ) { + if ( isSimple.test( qualifier ) ) { + return jQuery.filter( qualifier, elements, not ); + } + + qualifier = jQuery.filter( qualifier, elements ); + } + + return jQuery.grep( elements, function( elem ) { + return ( jQuery.inArray( elem, qualifier ) >= 0 ) !== not; + }); +} +function createSafeFragment( document ) { + var list = nodeNames.split( "|" ), + safeFrag = document.createDocumentFragment(); + + if ( safeFrag.createElement ) { + while ( list.length ) { + safeFrag.createElement( + list.pop() + ); + } + } + return safeFrag; +} + +var nodeNames = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|" + + "header|hgroup|mark|meter|nav|output|progress|section|summary|time|video", + rinlinejQuery = / jQuery\d+="(?:null|\d+)"/g, + rnoshimcache = new RegExp("<(?:" + nodeNames + ")[\\s/>]", "i"), + rleadingWhitespace = /^\s+/, + rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, + rtagName = /<([\w:]+)/, + rtbody = /\s*$/g, + + // We have to close these tags to support XHTML (#13200) + wrapMap = { + option: [ 1, "" ], + legend: [ 1, "
    ", "
    " ], + area: [ 1, "", "" ], + param: [ 1, "", "" ], + thead: [ 1, "", "
    " ], + tr: [ 2, "", "
    " ], + col: [ 2, "", "
    " ], + td: [ 3, "", "
    " ], + + // IE6-8 can't serialize link, script, style, or any html5 (NoScope) tags, + // unless wrapped in a div with non-breaking characters in front of it. + _default: jQuery.support.htmlSerialize ? [ 0, "", "" ] : [ 1, "X
    ", "
    " ] + }, + safeFragment = createSafeFragment( document ), + fragmentDiv = safeFragment.appendChild( document.createElement("div") ); + +wrapMap.optgroup = wrapMap.option; +wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; +wrapMap.th = wrapMap.td; + +jQuery.fn.extend({ + text: function( value ) { + return jQuery.access( this, function( value ) { + return value === undefined ? + jQuery.text( this ) : + this.empty().append( ( this[0] && this[0].ownerDocument || document ).createTextNode( value ) ); + }, null, value, arguments.length ); + }, + + append: function() { + return this.domManip( arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.appendChild( elem ); + } + }); + }, + + prepend: function() { + return this.domManip( arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.insertBefore( elem, target.firstChild ); + } + }); + }, + + before: function() { + return this.domManip( arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this ); + } + }); + }, + + after: function() { + return this.domManip( arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this.nextSibling ); + } + }); + }, + + // keepData is for internal use only--do not document + remove: function( selector, keepData ) { + var elem, + elems = selector ? jQuery.filter( selector, this ) : this, + i = 0; + + for ( ; (elem = elems[i]) != null; i++ ) { + + if ( !keepData && elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem ) ); + } + + if ( elem.parentNode ) { + if ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) { + setGlobalEval( getAll( elem, "script" ) ); + } + elem.parentNode.removeChild( elem ); + } + } + + return this; + }, + + empty: function() { + var elem, + i = 0; + + for ( ; (elem = this[i]) != null; i++ ) { + // Remove element nodes and prevent memory leaks + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + } + + // Remove any remaining nodes + while ( elem.firstChild ) { + elem.removeChild( elem.firstChild ); + } + + // If this is a select, ensure that it displays empty (#12336) + // Support: IE<9 + if ( elem.options && jQuery.nodeName( elem, "select" ) ) { + elem.options.length = 0; + } + } + + return this; + }, + + clone: function( dataAndEvents, deepDataAndEvents ) { + dataAndEvents = dataAndEvents == null ? false : dataAndEvents; + deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; + + return this.map( function () { + return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); + }); + }, + + html: function( value ) { + return jQuery.access( this, function( value ) { + var elem = this[0] || {}, + i = 0, + l = this.length; + + if ( value === undefined ) { + return elem.nodeType === 1 ? + elem.innerHTML.replace( rinlinejQuery, "" ) : + undefined; + } + + // See if we can take a shortcut and just use innerHTML + if ( typeof value === "string" && !rnoInnerhtml.test( value ) && + ( jQuery.support.htmlSerialize || !rnoshimcache.test( value ) ) && + ( jQuery.support.leadingWhitespace || !rleadingWhitespace.test( value ) ) && + !wrapMap[ ( rtagName.exec( value ) || ["", ""] )[1].toLowerCase() ] ) { + + value = value.replace( rxhtmlTag, "<$1>" ); + + try { + for (; i < l; i++ ) { + // Remove element nodes and prevent memory leaks + elem = this[i] || {}; + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + elem.innerHTML = value; + } + } + + elem = 0; + + // If using innerHTML throws an exception, use the fallback method + } catch(e) {} + } + + if ( elem ) { + this.empty().append( value ); + } + }, null, value, arguments.length ); + }, + + replaceWith: function() { + var + // Snapshot the DOM in case .domManip sweeps something relevant into its fragment + args = jQuery.map( this, function( elem ) { + return [ elem.nextSibling, elem.parentNode ]; + }), + i = 0; + + // Make the changes, replacing each context element with the new content + this.domManip( arguments, function( elem ) { + var next = args[ i++ ], + parent = args[ i++ ]; + + if ( parent ) { + // Don't use the snapshot next if it has moved (#13810) + if ( next && next.parentNode !== parent ) { + next = this.nextSibling; + } + jQuery( this ).remove(); + parent.insertBefore( elem, next ); + } + // Allow new content to include elements from the context set + }, true ); + + // Force removal if there was no new content (e.g., from empty arguments) + return i ? this : this.remove(); + }, + + detach: function( selector ) { + return this.remove( selector, true ); + }, + + domManip: function( args, callback, allowIntersection ) { + + // Flatten any nested arrays + args = core_concat.apply( [], args ); + + var first, node, hasScripts, + scripts, doc, fragment, + i = 0, + l = this.length, + set = this, + iNoClone = l - 1, + value = args[0], + isFunction = jQuery.isFunction( value ); + + // We can't cloneNode fragments that contain checked, in WebKit + if ( isFunction || !( l <= 1 || typeof value !== "string" || jQuery.support.checkClone || !rchecked.test( value ) ) ) { + return this.each(function( index ) { + var self = set.eq( index ); + if ( isFunction ) { + args[0] = value.call( this, index, self.html() ); + } + self.domManip( args, callback, allowIntersection ); + }); + } + + if ( l ) { + fragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, !allowIntersection && this ); + first = fragment.firstChild; + + if ( fragment.childNodes.length === 1 ) { + fragment = first; + } + + if ( first ) { + scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); + hasScripts = scripts.length; + + // Use the original fragment for the last item instead of the first because it can end up + // being emptied incorrectly in certain situations (#8070). + for ( ; i < l; i++ ) { + node = fragment; + + if ( i !== iNoClone ) { + node = jQuery.clone( node, true, true ); + + // Keep references to cloned scripts for later restoration + if ( hasScripts ) { + jQuery.merge( scripts, getAll( node, "script" ) ); + } + } + + callback.call( this[i], node, i ); + } + + if ( hasScripts ) { + doc = scripts[ scripts.length - 1 ].ownerDocument; + + // Reenable scripts + jQuery.map( scripts, restoreScript ); + + // Evaluate executable scripts on first document insertion + for ( i = 0; i < hasScripts; i++ ) { + node = scripts[ i ]; + if ( rscriptType.test( node.type || "" ) && + !jQuery._data( node, "globalEval" ) && jQuery.contains( doc, node ) ) { + + if ( node.src ) { + // Hope ajax is available... + jQuery._evalUrl( node.src ); + } else { + jQuery.globalEval( ( node.text || node.textContent || node.innerHTML || "" ).replace( rcleanScript, "" ) ); + } + } + } + } + + // Fix #11809: Avoid leaking memory + fragment = first = null; + } + } + + return this; + } +}); + +// Support: IE<8 +// Manipulating tables requires a tbody +function manipulationTarget( elem, content ) { + return jQuery.nodeName( elem, "table" ) && + jQuery.nodeName( content.nodeType === 1 ? content : content.firstChild, "tr" ) ? + + elem.getElementsByTagName("tbody")[0] || + elem.appendChild( elem.ownerDocument.createElement("tbody") ) : + elem; +} + +// Replace/restore the type attribute of script elements for safe DOM manipulation +function disableScript( elem ) { + elem.type = (jQuery.find.attr( elem, "type" ) !== null) + "/" + elem.type; + return elem; +} +function restoreScript( elem ) { + var match = rscriptTypeMasked.exec( elem.type ); + if ( match ) { + elem.type = match[1]; + } else { + elem.removeAttribute("type"); + } + return elem; +} + +// Mark scripts as having already been evaluated +function setGlobalEval( elems, refElements ) { + var elem, + i = 0; + for ( ; (elem = elems[i]) != null; i++ ) { + jQuery._data( elem, "globalEval", !refElements || jQuery._data( refElements[i], "globalEval" ) ); + } +} + +function cloneCopyEvent( src, dest ) { + + if ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) { + return; + } + + var type, i, l, + oldData = jQuery._data( src ), + curData = jQuery._data( dest, oldData ), + events = oldData.events; + + if ( events ) { + delete curData.handle; + curData.events = {}; + + for ( type in events ) { + for ( i = 0, l = events[ type ].length; i < l; i++ ) { + jQuery.event.add( dest, type, events[ type ][ i ] ); + } + } + } + + // make the cloned public data object a copy from the original + if ( curData.data ) { + curData.data = jQuery.extend( {}, curData.data ); + } +} + +function fixCloneNodeIssues( src, dest ) { + var nodeName, e, data; + + // We do not need to do anything for non-Elements + if ( dest.nodeType !== 1 ) { + return; + } + + nodeName = dest.nodeName.toLowerCase(); + + // IE6-8 copies events bound via attachEvent when using cloneNode. + if ( !jQuery.support.noCloneEvent && dest[ jQuery.expando ] ) { + data = jQuery._data( dest ); + + for ( e in data.events ) { + jQuery.removeEvent( dest, e, data.handle ); + } + + // Event data gets referenced instead of copied if the expando gets copied too + dest.removeAttribute( jQuery.expando ); + } + + // IE blanks contents when cloning scripts, and tries to evaluate newly-set text + if ( nodeName === "script" && dest.text !== src.text ) { + disableScript( dest ).text = src.text; + restoreScript( dest ); + + // IE6-10 improperly clones children of object elements using classid. + // IE10 throws NoModificationAllowedError if parent is null, #12132. + } else if ( nodeName === "object" ) { + if ( dest.parentNode ) { + dest.outerHTML = src.outerHTML; + } + + // This path appears unavoidable for IE9. When cloning an object + // element in IE9, the outerHTML strategy above is not sufficient. + // If the src has innerHTML and the destination does not, + // copy the src.innerHTML into the dest.innerHTML. #10324 + if ( jQuery.support.html5Clone && ( src.innerHTML && !jQuery.trim(dest.innerHTML) ) ) { + dest.innerHTML = src.innerHTML; + } + + } else if ( nodeName === "input" && manipulation_rcheckableType.test( src.type ) ) { + // IE6-8 fails to persist the checked state of a cloned checkbox + // or radio button. Worse, IE6-7 fail to give the cloned element + // a checked appearance if the defaultChecked value isn't also set + + dest.defaultChecked = dest.checked = src.checked; + + // IE6-7 get confused and end up setting the value of a cloned + // checkbox/radio button to an empty string instead of "on" + if ( dest.value !== src.value ) { + dest.value = src.value; + } + + // IE6-8 fails to return the selected option to the default selected + // state when cloning options + } else if ( nodeName === "option" ) { + dest.defaultSelected = dest.selected = src.defaultSelected; + + // IE6-8 fails to set the defaultValue to the correct value when + // cloning other types of input fields + } else if ( nodeName === "input" || nodeName === "textarea" ) { + dest.defaultValue = src.defaultValue; + } +} + +jQuery.each({ + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" +}, function( name, original ) { + jQuery.fn[ name ] = function( selector ) { + var elems, + i = 0, + ret = [], + insert = jQuery( selector ), + last = insert.length - 1; + + for ( ; i <= last; i++ ) { + elems = i === last ? this : this.clone(true); + jQuery( insert[i] )[ original ]( elems ); + + // Modern browsers can apply jQuery collections as arrays, but oldIE needs a .get() + core_push.apply( ret, elems.get() ); + } + + return this.pushStack( ret ); + }; +}); + +function getAll( context, tag ) { + var elems, elem, + i = 0, + found = typeof context.getElementsByTagName !== core_strundefined ? context.getElementsByTagName( tag || "*" ) : + typeof context.querySelectorAll !== core_strundefined ? context.querySelectorAll( tag || "*" ) : + undefined; + + if ( !found ) { + for ( found = [], elems = context.childNodes || context; (elem = elems[i]) != null; i++ ) { + if ( !tag || jQuery.nodeName( elem, tag ) ) { + found.push( elem ); + } else { + jQuery.merge( found, getAll( elem, tag ) ); + } + } + } + + return tag === undefined || tag && jQuery.nodeName( context, tag ) ? + jQuery.merge( [ context ], found ) : + found; +} + +// Used in buildFragment, fixes the defaultChecked property +function fixDefaultChecked( elem ) { + if ( manipulation_rcheckableType.test( elem.type ) ) { + elem.defaultChecked = elem.checked; + } +} + +jQuery.extend({ + clone: function( elem, dataAndEvents, deepDataAndEvents ) { + var destElements, node, clone, i, srcElements, + inPage = jQuery.contains( elem.ownerDocument, elem ); + + if ( jQuery.support.html5Clone || jQuery.isXMLDoc(elem) || !rnoshimcache.test( "<" + elem.nodeName + ">" ) ) { + clone = elem.cloneNode( true ); + + // IE<=8 does not properly clone detached, unknown element nodes + } else { + fragmentDiv.innerHTML = elem.outerHTML; + fragmentDiv.removeChild( clone = fragmentDiv.firstChild ); + } + + if ( (!jQuery.support.noCloneEvent || !jQuery.support.noCloneChecked) && + (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) { + + // We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2 + destElements = getAll( clone ); + srcElements = getAll( elem ); + + // Fix all IE cloning issues + for ( i = 0; (node = srcElements[i]) != null; ++i ) { + // Ensure that the destination node is not null; Fixes #9587 + if ( destElements[i] ) { + fixCloneNodeIssues( node, destElements[i] ); + } + } + } + + // Copy the events from the original to the clone + if ( dataAndEvents ) { + if ( deepDataAndEvents ) { + srcElements = srcElements || getAll( elem ); + destElements = destElements || getAll( clone ); + + for ( i = 0; (node = srcElements[i]) != null; i++ ) { + cloneCopyEvent( node, destElements[i] ); + } + } else { + cloneCopyEvent( elem, clone ); + } + } + + // Preserve script evaluation history + destElements = getAll( clone, "script" ); + if ( destElements.length > 0 ) { + setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); + } + + destElements = srcElements = node = null; + + // Return the cloned set + return clone; + }, + + buildFragment: function( elems, context, scripts, selection ) { + var j, elem, contains, + tmp, tag, tbody, wrap, + l = elems.length, + + // Ensure a safe fragment + safe = createSafeFragment( context ), + + nodes = [], + i = 0; + + for ( ; i < l; i++ ) { + elem = elems[ i ]; + + if ( elem || elem === 0 ) { + + // Add nodes directly + if ( jQuery.type( elem ) === "object" ) { + jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); + + // Convert non-html into a text node + } else if ( !rhtml.test( elem ) ) { + nodes.push( context.createTextNode( elem ) ); + + // Convert html into DOM nodes + } else { + tmp = tmp || safe.appendChild( context.createElement("div") ); + + // Deserialize a standard representation + tag = ( rtagName.exec( elem ) || ["", ""] )[1].toLowerCase(); + wrap = wrapMap[ tag ] || wrapMap._default; + + tmp.innerHTML = wrap[1] + elem.replace( rxhtmlTag, "<$1>" ) + wrap[2]; + + // Descend through wrappers to the right content + j = wrap[0]; + while ( j-- ) { + tmp = tmp.lastChild; + } + + // Manually add leading whitespace removed by IE + if ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( elem ) ) { + nodes.push( context.createTextNode( rleadingWhitespace.exec( elem )[0] ) ); + } + + // Remove IE's autoinserted from table fragments + if ( !jQuery.support.tbody ) { + + // String was a , *may* have spurious + elem = tag === "table" && !rtbody.test( elem ) ? + tmp.firstChild : + + // String was a bare or + wrap[1] === "
    " && !rtbody.test( elem ) ? + tmp : + 0; + + j = elem && elem.childNodes.length; + while ( j-- ) { + if ( jQuery.nodeName( (tbody = elem.childNodes[j]), "tbody" ) && !tbody.childNodes.length ) { + elem.removeChild( tbody ); + } + } + } + + jQuery.merge( nodes, tmp.childNodes ); + + // Fix #12392 for WebKit and IE > 9 + tmp.textContent = ""; + + // Fix #12392 for oldIE + while ( tmp.firstChild ) { + tmp.removeChild( tmp.firstChild ); + } + + // Remember the top-level container for proper cleanup + tmp = safe.lastChild; + } + } + } + + // Fix #11356: Clear elements from fragment + if ( tmp ) { + safe.removeChild( tmp ); + } + + // Reset defaultChecked for any radios and checkboxes + // about to be appended to the DOM in IE 6/7 (#8060) + if ( !jQuery.support.appendChecked ) { + jQuery.grep( getAll( nodes, "input" ), fixDefaultChecked ); + } + + i = 0; + while ( (elem = nodes[ i++ ]) ) { + + // #4087 - If origin and destination elements are the same, and this is + // that element, do not do anything + if ( selection && jQuery.inArray( elem, selection ) !== -1 ) { + continue; + } + + contains = jQuery.contains( elem.ownerDocument, elem ); + + // Append to fragment + tmp = getAll( safe.appendChild( elem ), "script" ); + + // Preserve script evaluation history + if ( contains ) { + setGlobalEval( tmp ); + } + + // Capture executables + if ( scripts ) { + j = 0; + while ( (elem = tmp[ j++ ]) ) { + if ( rscriptType.test( elem.type || "" ) ) { + scripts.push( elem ); + } + } + } + } + + tmp = null; + + return safe; + }, + + cleanData: function( elems, /* internal */ acceptData ) { + var elem, type, id, data, + i = 0, + internalKey = jQuery.expando, + cache = jQuery.cache, + deleteExpando = jQuery.support.deleteExpando, + special = jQuery.event.special; + + for ( ; (elem = elems[i]) != null; i++ ) { + + if ( acceptData || jQuery.acceptData( elem ) ) { + + id = elem[ internalKey ]; + data = id && cache[ id ]; + + if ( data ) { + if ( data.events ) { + for ( type in data.events ) { + if ( special[ type ] ) { + jQuery.event.remove( elem, type ); + + // This is a shortcut to avoid jQuery.event.remove's overhead + } else { + jQuery.removeEvent( elem, type, data.handle ); + } + } + } + + // Remove cache only if it was not already removed by jQuery.event.remove + if ( cache[ id ] ) { + + delete cache[ id ]; + + // IE does not allow us to delete expando properties from nodes, + // nor does it have a removeAttribute function on Document nodes; + // we must handle all of these cases + if ( deleteExpando ) { + delete elem[ internalKey ]; + + } else if ( typeof elem.removeAttribute !== core_strundefined ) { + elem.removeAttribute( internalKey ); + + } else { + elem[ internalKey ] = null; + } + + core_deletedIds.push( id ); + } + } + } + } + }, + + _evalUrl: function( url ) { + return jQuery.ajax({ + url: url, + type: "GET", + dataType: "script", + async: false, + global: false, + "throws": true + }); + } +}); +jQuery.fn.extend({ + wrapAll: function( html ) { + if ( jQuery.isFunction( html ) ) { + return this.each(function(i) { + jQuery(this).wrapAll( html.call(this, i) ); + }); + } + + if ( this[0] ) { + // The elements to wrap the target around + var wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(true); + + if ( this[0].parentNode ) { + wrap.insertBefore( this[0] ); + } + + wrap.map(function() { + var elem = this; + + while ( elem.firstChild && elem.firstChild.nodeType === 1 ) { + elem = elem.firstChild; + } + + return elem; + }).append( this ); + } + + return this; + }, + + wrapInner: function( html ) { + if ( jQuery.isFunction( html ) ) { + return this.each(function(i) { + jQuery(this).wrapInner( html.call(this, i) ); + }); + } + + return this.each(function() { + var self = jQuery( this ), + contents = self.contents(); + + if ( contents.length ) { + contents.wrapAll( html ); + + } else { + self.append( html ); + } + }); + }, + + wrap: function( html ) { + var isFunction = jQuery.isFunction( html ); + + return this.each(function(i) { + jQuery( this ).wrapAll( isFunction ? html.call(this, i) : html ); + }); + }, + + unwrap: function() { + return this.parent().each(function() { + if ( !jQuery.nodeName( this, "body" ) ) { + jQuery( this ).replaceWith( this.childNodes ); + } + }).end(); + } +}); +var iframe, getStyles, curCSS, + ralpha = /alpha\([^)]*\)/i, + ropacity = /opacity\s*=\s*([^)]*)/, + rposition = /^(top|right|bottom|left)$/, + // swappable if display is none or starts with table except "table", "table-cell", or "table-caption" + // see here for display values: https://developer.mozilla.org/en-US/docs/CSS/display + rdisplayswap = /^(none|table(?!-c[ea]).+)/, + rmargin = /^margin/, + rnumsplit = new RegExp( "^(" + core_pnum + ")(.*)$", "i" ), + rnumnonpx = new RegExp( "^(" + core_pnum + ")(?!px)[a-z%]+$", "i" ), + rrelNum = new RegExp( "^([+-])=(" + core_pnum + ")", "i" ), + elemdisplay = { BODY: "block" }, + + cssShow = { position: "absolute", visibility: "hidden", display: "block" }, + cssNormalTransform = { + letterSpacing: 0, + fontWeight: 400 + }, + + cssExpand = [ "Top", "Right", "Bottom", "Left" ], + cssPrefixes = [ "Webkit", "O", "Moz", "ms" ]; + +// return a css property mapped to a potentially vendor prefixed property +function vendorPropName( style, name ) { + + // shortcut for names that are not vendor prefixed + if ( name in style ) { + return name; + } + + // check for vendor prefixed names + var capName = name.charAt(0).toUpperCase() + name.slice(1), + origName = name, + i = cssPrefixes.length; + + while ( i-- ) { + name = cssPrefixes[ i ] + capName; + if ( name in style ) { + return name; + } + } + + return origName; +} + +function isHidden( elem, el ) { + // isHidden might be called from jQuery#filter function; + // in that case, element will be second argument + elem = el || elem; + return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem ); +} + +function showHide( elements, show ) { + var display, elem, hidden, + values = [], + index = 0, + length = elements.length; + + for ( ; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + + values[ index ] = jQuery._data( elem, "olddisplay" ); + display = elem.style.display; + if ( show ) { + // Reset the inline display of this element to learn if it is + // being hidden by cascaded rules or not + if ( !values[ index ] && display === "none" ) { + elem.style.display = ""; + } + + // Set elements which have been overridden with display: none + // in a stylesheet to whatever the default browser style is + // for such an element + if ( elem.style.display === "" && isHidden( elem ) ) { + values[ index ] = jQuery._data( elem, "olddisplay", css_defaultDisplay(elem.nodeName) ); + } + } else { + + if ( !values[ index ] ) { + hidden = isHidden( elem ); + + if ( display && display !== "none" || !hidden ) { + jQuery._data( elem, "olddisplay", hidden ? display : jQuery.css( elem, "display" ) ); + } + } + } + } + + // Set the display of most of the elements in a second loop + // to avoid the constant reflow + for ( index = 0; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + if ( !show || elem.style.display === "none" || elem.style.display === "" ) { + elem.style.display = show ? values[ index ] || "" : "none"; + } + } + + return elements; +} + +jQuery.fn.extend({ + css: function( name, value ) { + return jQuery.access( this, function( elem, name, value ) { + var len, styles, + map = {}, + i = 0; + + if ( jQuery.isArray( name ) ) { + styles = getStyles( elem ); + len = name.length; + + for ( ; i < len; i++ ) { + map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); + } + + return map; + } + + return value !== undefined ? + jQuery.style( elem, name, value ) : + jQuery.css( elem, name ); + }, name, value, arguments.length > 1 ); + }, + show: function() { + return showHide( this, true ); + }, + hide: function() { + return showHide( this ); + }, + toggle: function( state ) { + if ( typeof state === "boolean" ) { + return state ? this.show() : this.hide(); + } + + return this.each(function() { + if ( isHidden( this ) ) { + jQuery( this ).show(); + } else { + jQuery( this ).hide(); + } + }); + } +}); + +jQuery.extend({ + // Add in style property hooks for overriding the default + // behavior of getting and setting a style property + cssHooks: { + opacity: { + get: function( elem, computed ) { + if ( computed ) { + // We should always get a number back from opacity + var ret = curCSS( elem, "opacity" ); + return ret === "" ? "1" : ret; + } + } + } + }, + + // Don't automatically add "px" to these possibly-unitless properties + cssNumber: { + "columnCount": true, + "fillOpacity": true, + "fontWeight": true, + "lineHeight": true, + "opacity": true, + "order": true, + "orphans": true, + "widows": true, + "zIndex": true, + "zoom": true + }, + + // Add in properties whose names you wish to fix before + // setting or getting the value + cssProps: { + // normalize float css property + "float": jQuery.support.cssFloat ? "cssFloat" : "styleFloat" + }, + + // Get and set the style property on a DOM Node + style: function( elem, name, value, extra ) { + // Don't set styles on text and comment nodes + if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { + return; + } + + // Make sure that we're working with the right name + var ret, type, hooks, + origName = jQuery.camelCase( name ), + style = elem.style; + + name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( style, origName ) ); + + // gets hook for the prefixed version + // followed by the unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // Check if we're setting a value + if ( value !== undefined ) { + type = typeof value; + + // convert relative number strings (+= or -=) to relative numbers. #7345 + if ( type === "string" && (ret = rrelNum.exec( value )) ) { + value = ( ret[1] + 1 ) * ret[2] + parseFloat( jQuery.css( elem, name ) ); + // Fixes bug #9237 + type = "number"; + } + + // Make sure that NaN and null values aren't set. See: #7116 + if ( value == null || type === "number" && isNaN( value ) ) { + return; + } + + // If a number was passed in, add 'px' to the (except for certain CSS properties) + if ( type === "number" && !jQuery.cssNumber[ origName ] ) { + value += "px"; + } + + // Fixes #8908, it can be done more correctly by specifing setters in cssHooks, + // but it would mean to define eight (for every problematic property) identical functions + if ( !jQuery.support.clearCloneStyle && value === "" && name.indexOf("background") === 0 ) { + style[ name ] = "inherit"; + } + + // If a hook was provided, use that value, otherwise just set the specified value + if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value, extra )) !== undefined ) { + + // Wrapped to prevent IE from throwing errors when 'invalid' values are provided + // Fixes bug #5509 + try { + style[ name ] = value; + } catch(e) {} + } + + } else { + // If a hook was provided get the non-computed value from there + if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) { + return ret; + } + + // Otherwise just get the value from the style object + return style[ name ]; + } + }, + + css: function( elem, name, extra, styles ) { + var num, val, hooks, + origName = jQuery.camelCase( name ); + + // Make sure that we're working with the right name + name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( elem.style, origName ) ); + + // gets hook for the prefixed version + // followed by the unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // If a hook was provided get the computed value from there + if ( hooks && "get" in hooks ) { + val = hooks.get( elem, true, extra ); + } + + // Otherwise, if a way to get the computed value exists, use that + if ( val === undefined ) { + val = curCSS( elem, name, styles ); + } + + //convert "normal" to computed value + if ( val === "normal" && name in cssNormalTransform ) { + val = cssNormalTransform[ name ]; + } + + // Return, converting to number if forced or a qualifier was provided and val looks numeric + if ( extra === "" || extra ) { + num = parseFloat( val ); + return extra === true || jQuery.isNumeric( num ) ? num || 0 : val; + } + return val; + } +}); + +// NOTE: we've included the "window" in window.getComputedStyle +// because jsdom on node.js will break without it. +if ( window.getComputedStyle ) { + getStyles = function( elem ) { + return window.getComputedStyle( elem, null ); + }; + + curCSS = function( elem, name, _computed ) { + var width, minWidth, maxWidth, + computed = _computed || getStyles( elem ), + + // getPropertyValue is only needed for .css('filter') in IE9, see #12537 + ret = computed ? computed.getPropertyValue( name ) || computed[ name ] : undefined, + style = elem.style; + + if ( computed ) { + + if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) { + ret = jQuery.style( elem, name ); + } + + // A tribute to the "awesome hack by Dean Edwards" + // Chrome < 17 and Safari 5.0 uses "computed value" instead of "used value" for margin-right + // Safari 5.1.7 (at least) returns percentage for a larger set of values, but width seems to be reliably pixels + // this is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values + if ( rnumnonpx.test( ret ) && rmargin.test( name ) ) { + + // Remember the original values + width = style.width; + minWidth = style.minWidth; + maxWidth = style.maxWidth; + + // Put in the new values to get a computed value out + style.minWidth = style.maxWidth = style.width = ret; + ret = computed.width; + + // Revert the changed values + style.width = width; + style.minWidth = minWidth; + style.maxWidth = maxWidth; + } + } + + return ret; + }; +} else if ( document.documentElement.currentStyle ) { + getStyles = function( elem ) { + return elem.currentStyle; + }; + + curCSS = function( elem, name, _computed ) { + var left, rs, rsLeft, + computed = _computed || getStyles( elem ), + ret = computed ? computed[ name ] : undefined, + style = elem.style; + + // Avoid setting ret to empty string here + // so we don't default to auto + if ( ret == null && style && style[ name ] ) { + ret = style[ name ]; + } + + // From the awesome hack by Dean Edwards + // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291 + + // If we're not dealing with a regular pixel number + // but a number that has a weird ending, we need to convert it to pixels + // but not position css attributes, as those are proportional to the parent element instead + // and we can't measure the parent instead because it might trigger a "stacking dolls" problem + if ( rnumnonpx.test( ret ) && !rposition.test( name ) ) { + + // Remember the original values + left = style.left; + rs = elem.runtimeStyle; + rsLeft = rs && rs.left; + + // Put in the new values to get a computed value out + if ( rsLeft ) { + rs.left = elem.currentStyle.left; + } + style.left = name === "fontSize" ? "1em" : ret; + ret = style.pixelLeft + "px"; + + // Revert the changed values + style.left = left; + if ( rsLeft ) { + rs.left = rsLeft; + } + } + + return ret === "" ? "auto" : ret; + }; +} + +function setPositiveNumber( elem, value, subtract ) { + var matches = rnumsplit.exec( value ); + return matches ? + // Guard against undefined "subtract", e.g., when used as in cssHooks + Math.max( 0, matches[ 1 ] - ( subtract || 0 ) ) + ( matches[ 2 ] || "px" ) : + value; +} + +function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) { + var i = extra === ( isBorderBox ? "border" : "content" ) ? + // If we already have the right measurement, avoid augmentation + 4 : + // Otherwise initialize for horizontal or vertical properties + name === "width" ? 1 : 0, + + val = 0; + + for ( ; i < 4; i += 2 ) { + // both box models exclude margin, so add it if we want it + if ( extra === "margin" ) { + val += jQuery.css( elem, extra + cssExpand[ i ], true, styles ); + } + + if ( isBorderBox ) { + // border-box includes padding, so remove it if we want content + if ( extra === "content" ) { + val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + } + + // at this point, extra isn't border nor margin, so remove border + if ( extra !== "margin" ) { + val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } else { + // at this point, extra isn't content, so add padding + val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + + // at this point, extra isn't content nor padding, so add border + if ( extra !== "padding" ) { + val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } + } + + return val; +} + +function getWidthOrHeight( elem, name, extra ) { + + // Start with offset property, which is equivalent to the border-box value + var valueIsBorderBox = true, + val = name === "width" ? elem.offsetWidth : elem.offsetHeight, + styles = getStyles( elem ), + isBorderBox = jQuery.support.boxSizing && jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; + + // some non-html elements return undefined for offsetWidth, so check for null/undefined + // svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285 + // MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668 + if ( val <= 0 || val == null ) { + // Fall back to computed then uncomputed css if necessary + val = curCSS( elem, name, styles ); + if ( val < 0 || val == null ) { + val = elem.style[ name ]; + } + + // Computed unit is not pixels. Stop here and return. + if ( rnumnonpx.test(val) ) { + return val; + } + + // we need the check for style in case a browser which returns unreliable values + // for getComputedStyle silently falls back to the reliable elem.style + valueIsBorderBox = isBorderBox && ( jQuery.support.boxSizingReliable || val === elem.style[ name ] ); + + // Normalize "", auto, and prepare for extra + val = parseFloat( val ) || 0; + } + + // use the active box-sizing model to add/subtract irrelevant styles + return ( val + + augmentWidthOrHeight( + elem, + name, + extra || ( isBorderBox ? "border" : "content" ), + valueIsBorderBox, + styles + ) + ) + "px"; +} + +// Try to determine the default display value of an element +function css_defaultDisplay( nodeName ) { + var doc = document, + display = elemdisplay[ nodeName ]; + + if ( !display ) { + display = actualDisplay( nodeName, doc ); + + // If the simple way fails, read from inside an iframe + if ( display === "none" || !display ) { + // Use the already-created iframe if possible + iframe = ( iframe || + jQuery(" + +
    + +
    + +
    + +
    + + + diff --git a/site/testapidocs/javax/measure/spi/FormatServiceTest.html b/site/testapidocs/javax/measure/spi/FormatServiceTest.html new file mode 100644 index 00000000..5c09115b --- /dev/null +++ b/site/testapidocs/javax/measure/spi/FormatServiceTest.html @@ -0,0 +1,331 @@ + + + + + +FormatServiceTest (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Class FormatServiceTest

    +
    +
    +
      +
    • Object
    • +
    • +
        +
      • FormatServiceTest
      • +
      +
    • +
    +
    + +
    +
    +
      +
    • + +
        +
      • + + +

        Constructor Summary

        +
    + + + + + + + + + +
    Constructors 
    ConstructorDescription
    FormatServiceTest​() 
    + + + + + + + +
    +
      +
    • + +
        +
      • + + +

        Constructor Detail

        + + + +
          +
        • +

          FormatServiceTest

          +
          public FormatServiceTest​()
          +
        • +
        +
      • +
      + +
        +
      • + + +

        Method Detail

        + + + + + + + +
          +
        • +

          testTypes

          +
          @Test
          +public void testTypes​()
          +
          Tests FormatService#FormatType.
          +
        • +
        +
      • +
      +
    • +
    +
    + + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/spi/ServiceProviderTest.html b/site/testapidocs/javax/measure/spi/ServiceProviderTest.html new file mode 100644 index 00000000..7d424879 --- /dev/null +++ b/site/testapidocs/javax/measure/spi/ServiceProviderTest.html @@ -0,0 +1,449 @@ + + + + + +ServiceProviderTest (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Class ServiceProviderTest

    +
    +
    +
      +
    • Object
    • +
    • +
        +
      • ServiceProviderTest
      • +
      +
    • +
    +
    + +
    +
    + +
    +
    +
      +
    • + +
        +
      • + + +

        Constructor Detail

        + + + +
          +
        • +

          ServiceProviderTest

          +
          public ServiceProviderTest​()
          +
        • +
        +
      • +
      + +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          testSetCurrentNull

          +
          @Test
          +public void testSetCurrentNull​()
          +
        • +
        + + + + + + + + + + + +
          +
        • +

          testOfNull

          +
          @Test
          +public void testOfNull​()
          +
          Tests ServiceProvider#of() by passing null.
          +
        • +
        + + + +
          +
        • +

          testOfNonExistent

          +
          @Test
          +public void testOfNonExistent​()
          +
          Tests ServiceProvider#of() by passing a non-existing name.
          +
        • +
        + + + +
          +
        • +

          testGetMetricPrefixes

          +
          @Test
          +public void testGetMetricPrefixes​()
          +
        • +
        + + + +
          +
        • +

          testGetBinaryPrefixes

          +
          @Test
          +public void testGetBinaryPrefixes​()
          +
        • +
        + + + +
          +
        • +

          testWrongPrefixType

          +
          @Test
          +public void testWrongPrefixType​()
          +
        • +
        + + + +
          +
        • +

          testWrongEnumType

          +
          @Test
          +public void testWrongEnumType​()
          +
        • +
        +
      • +
      +
    • +
    +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/spi/class-use/FormatServiceTest.html b/site/testapidocs/javax/measure/spi/class-use/FormatServiceTest.html new file mode 100644 index 00000000..0904cd12 --- /dev/null +++ b/site/testapidocs/javax/measure/spi/class-use/FormatServiceTest.html @@ -0,0 +1,153 @@ + + + + + +Uses of Class javax.measure.spi.FormatServiceTest (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Class
    javax.measure.spi.FormatServiceTest

    +
    +
    No usage of javax.measure.spi.FormatServiceTest
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/spi/class-use/ServiceProviderTest.html b/site/testapidocs/javax/measure/spi/class-use/ServiceProviderTest.html new file mode 100644 index 00000000..b0507941 --- /dev/null +++ b/site/testapidocs/javax/measure/spi/class-use/ServiceProviderTest.html @@ -0,0 +1,153 @@ + + + + + +Uses of Class javax.measure.spi.ServiceProviderTest (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Class
    javax.measure.spi.ServiceProviderTest

    +
    +
    No usage of javax.measure.spi.ServiceProviderTest
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/spi/package-frame.html b/site/testapidocs/javax/measure/spi/package-frame.html new file mode 100644 index 00000000..599f18b5 --- /dev/null +++ b/site/testapidocs/javax/measure/spi/package-frame.html @@ -0,0 +1,31 @@ + + + + + +javax.measure.spi (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + +

    javax.measure.spi

    + + + diff --git a/site/testapidocs/javax/measure/spi/package-summary.html b/site/testapidocs/javax/measure/spi/package-summary.html new file mode 100644 index 00000000..072f9074 --- /dev/null +++ b/site/testapidocs/javax/measure/spi/package-summary.html @@ -0,0 +1,180 @@ + + + + + +javax.measure.spi (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Package javax.measure.spi

    +
    +
    + +
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/spi/package-tree.html b/site/testapidocs/javax/measure/spi/package-tree.html new file mode 100644 index 00000000..f73292f0 --- /dev/null +++ b/site/testapidocs/javax/measure/spi/package-tree.html @@ -0,0 +1,167 @@ + + + + + +javax.measure.spi Class Hierarchy (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Hierarchy For Package javax.measure.spi

    +Package Hierarchies: + +
    +
    +

    Class Hierarchy

    + +
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/spi/package-use.html b/site/testapidocs/javax/measure/spi/package-use.html new file mode 100644 index 00000000..3c106531 --- /dev/null +++ b/site/testapidocs/javax/measure/spi/package-use.html @@ -0,0 +1,153 @@ + + + + + +Uses of Package javax.measure.spi (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Package
    javax.measure.spi

    +
    +
    No usage of javax.measure.spi
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/BinaryPrefixTest.html b/site/testapidocs/javax/measure/test/BinaryPrefixTest.html new file mode 100644 index 00000000..0986a406 --- /dev/null +++ b/site/testapidocs/javax/measure/test/BinaryPrefixTest.html @@ -0,0 +1,419 @@ + + + + + +BinaryPrefixTest (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Class BinaryPrefixTest

    +
    +
    +
      +
    • Object
    • +
    • +
        +
      • BinaryPrefixTest
      • +
      +
    • +
    +
    +
      +
    • +
      +
      +
      public class BinaryPrefixTest
      +extends Object
      +
    • +
    +
    +
    + +
    +
    +
      +
    • + +
        +
      • + + +

        Constructor Detail

        + + + +
          +
        • +

          BinaryPrefixTest

          +
          public BinaryPrefixTest​()
          +
        • +
        +
      • +
      + +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          testKibi

          +
          @Test
          +public void testKibi​()
          +
        • +
        + + + +
          +
        • +

          testMebi

          +
          @Test
          +public void testMebi​()
          +
        • +
        + + + +
          +
        • +

          testExbi

          +
          @Test
          +public void testExbi​()
          +
        • +
        + + + +
          +
        • +

          testGibi

          +
          @Test
          +public void testGibi​()
          +
        • +
        + + + +
          +
        • +

          testTebi

          +
          @Test
          +public void testTebi​()
          +
        • +
        + + + +
          +
        • +

          testPebi

          +
          @Test
          +public void testPebi​()
          +
        • +
        + + + +
          +
        • +

          testYobi

          +
          @Test
          +public void testYobi​()
          +
        • +
        + + + +
          +
        • +

          testZebi

          +
          @Test
          +public void testZebi​()
          +
        • +
        +
      • +
      +
    • +
    +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/CalcTripLength.html b/site/testapidocs/javax/measure/test/CalcTripLength.html new file mode 100644 index 00000000..ae9e1bc0 --- /dev/null +++ b/site/testapidocs/javax/measure/test/CalcTripLength.html @@ -0,0 +1,310 @@ + + + + + +CalcTripLength (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Class CalcTripLength

    +
    +
    +
      +
    • Object
    • +
    • +
        +
      • CalcTripLength
      • +
      +
    • +
    +
    +
      +
    • +
      +
      +
      public class CalcTripLength
      +extends Object
      +
      +
      Author:
      +
      paul.morrison
      +
      +
    • +
    +
    +
    + +
    +
    +
      +
    • + +
        +
      • + + +

        Constructor Detail

        + + + +
          +
        • +

          CalcTripLength

          +
          public CalcTripLength​()
          +
        • +
        +
      • +
      + +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          main

          +
          public static void main​(String[] argv)
          +
        • +
        +
      • +
      +
    • +
    +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/CircleInfo.html b/site/testapidocs/javax/measure/test/CircleInfo.html new file mode 100644 index 00000000..50b625fb --- /dev/null +++ b/site/testapidocs/javax/measure/test/CircleInfo.html @@ -0,0 +1,306 @@ + + + + + +CircleInfo (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Class CircleInfo

    +
    +
    +
      +
    • Object
    • +
    • +
        +
      • CircleInfo
      • +
      +
    • +
    +
    +
      +
    • +
      +
      +
      public class CircleInfo
      +extends Object
      +
    • +
    +
    +
    + +
    +
    +
      +
    • + +
        +
      • + + +

        Constructor Detail

        + + + +
          +
        • +

          CircleInfo

          +
          public CircleInfo​()
          +
        • +
        +
      • +
      + +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          main

          +
          public static void main​(String[] args)
          +
        • +
        +
      • +
      +
    • +
    +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/Conversions.html b/site/testapidocs/javax/measure/test/Conversions.html new file mode 100644 index 00000000..ca2940f0 --- /dev/null +++ b/site/testapidocs/javax/measure/test/Conversions.html @@ -0,0 +1,306 @@ + + + + + +Conversions (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Class Conversions

    +
    +
    +
      +
    • Object
    • +
    • +
        +
      • Conversions
      • +
      +
    • +
    +
    +
      +
    • +
      +
      +
      public class Conversions
      +extends Object
      +
    • +
    +
    +
    + +
    +
    +
      +
    • + +
        +
      • + + +

        Constructor Detail

        + + + +
          +
        • +

          Conversions

          +
          public Conversions​()
          +
        • +
        +
      • +
      + +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          main

          +
          public static void main​(String[] args)
          +
        • +
        +
      • +
      +
    • +
    +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/ConverterTest.html b/site/testapidocs/javax/measure/test/ConverterTest.html new file mode 100644 index 00000000..003483e6 --- /dev/null +++ b/site/testapidocs/javax/measure/test/ConverterTest.html @@ -0,0 +1,339 @@ + + + + + +ConverterTest (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Class ConverterTest

    +
    +
    +
      +
    • Object
    • +
    • +
        +
      • ConverterTest
      • +
      +
    • +
    +
    +
      +
    • +
      +
      +
      public class ConverterTest
      +extends Object
      +
    • +
    +
    +
    + +
    +
    +
      +
    • + +
        +
      • + + +

        Constructor Detail

        + + + +
          +
        • +

          ConverterTest

          +
          public ConverterTest​()
          +
        • +
        +
      • +
      + +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          init

          +
          @BeforeEach
          +public void init​()
          +
        • +
        + + + +
          +
        • +

          testIdentity

          +
          @Test
          +public void testIdentity​()
          +
        • +
        + + + +
          +
        • +

          testLinear

          +
          @Test
          +public void testLinear​()
          +
        • +
        +
      • +
      +
    • +
    +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/DimensionTest.html b/site/testapidocs/javax/measure/test/DimensionTest.html new file mode 100644 index 00000000..c30ec4b8 --- /dev/null +++ b/site/testapidocs/javax/measure/test/DimensionTest.html @@ -0,0 +1,403 @@ + + + + + +DimensionTest (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Class DimensionTest

    +
    +
    +
      +
    • Object
    • +
    • +
        +
      • DimensionTest
      • +
      +
    • +
    +
    +
      +
    • +
      +
      +
      public class DimensionTest
      +extends Object
      +
    • +
    +
    +
    + +
    +
    +
      +
    • + +
        +
      • + + +

        Constructor Detail

        + + + +
          +
        • +

          DimensionTest

          +
          public DimensionTest​()
          +
        • +
        +
      • +
      + +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          init

          +
          @BeforeEach
          +public void init​()
          +
        • +
        + + + +
          +
        • +

          testGetInstance

          +
          @Test
          +public void testGetInstance​()
          +
        • +
        + + + +
          +
        • +

          testMultiply

          +
          @Test
          +public void testMultiply​()
          +
        • +
        + + + +
          +
        • +

          testDivide

          +
          @Test
          +public void testDivide​()
          +
        • +
        + + + +
          +
        • +

          testPow

          +
          @Test
          +public void testPow​()
          +
        • +
        + + + +
          +
        • +

          testRoot

          +
          @Test
          +public void testRoot​()
          +
        • +
        + + + +
          +
        • +

          testGetProductDimensions

          +
          @Test
          +public void testGetProductDimensions​()
          +
        • +
        +
      • +
      +
    • +
    +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/ExceptionsTest.html b/site/testapidocs/javax/measure/test/ExceptionsTest.html new file mode 100644 index 00000000..32ae69f0 --- /dev/null +++ b/site/testapidocs/javax/measure/test/ExceptionsTest.html @@ -0,0 +1,457 @@ + + + + + +ExceptionsTest (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Class ExceptionsTest

    +
    +
    +
      +
    • Object
    • +
    • +
        +
      • ExceptionsTest
      • +
      +
    • +
    +
    +
      +
    • +
      +
      +
      public class ExceptionsTest
      +extends Object
      +
      +
      Version:
      +
      1.1
      +
      Author:
      +
      Werner Keil
      +
      +
    • +
    +
    +
    + +
    +
    +
      +
    • + +
        +
      • + + +

        Constructor Detail

        + + + +
          +
        • +

          ExceptionsTest

          +
          public ExceptionsTest​()
          +
        • +
        +
      • +
      + +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          testMeasurementException

          +
          @Test
          +public void testMeasurementException​()
          +
        • +
        + + + +
          +
        • +

          testMeasurementExceptionWithCause

          +
          @Test
          +public void testMeasurementExceptionWithCause​()
          +
        • +
        + + + +
          +
        • +

          testMeasurementExceptionWithMessageAndCause

          +
          @Test
          +public void testMeasurementExceptionWithMessageAndCause​()
          +
        • +
        + + + +
          +
        • +

          testDefaultConstructor

          +
          @Test
          +public void testDefaultConstructor​()
          +
        • +
        + + + +
          +
        • +

          testIncommensurableException

          +
          @Test
          +public void testIncommensurableException​()
          +
        • +
        + + + +
          +
        • +

          testIncommensurableExceptionWithCause

          +
          @Test
          +public void testIncommensurableExceptionWithCause​()
          +
        • +
        + + + +
          +
        • +

          testIncommensurableExceptionWithMessageAndCause

          +
          @Test
          +public void testIncommensurableExceptionWithMessageAndCause​()
          +
        • +
        + + + +
          +
        • +

          testUnconvertibleException

          +
          @Test
          +public void testUnconvertibleException​()
          +
        • +
        + + + +
          +
        • +

          testUnconvertibleExceptionWithCause

          +
          @Test
          +public void testUnconvertibleExceptionWithCause​()
          +
        • +
        + + + +
          +
        • +

          testUnconvertibleExceptionWithMessageAndCause

          +
          @Test
          +public void testUnconvertibleExceptionWithMessageAndCause​()
          +
        • +
        +
      • +
      +
    • +
    +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/MetricPrefixTest.html b/site/testapidocs/javax/measure/test/MetricPrefixTest.html new file mode 100644 index 00000000..8b0cf7e4 --- /dev/null +++ b/site/testapidocs/javax/measure/test/MetricPrefixTest.html @@ -0,0 +1,611 @@ + + + + + +MetricPrefixTest (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Class MetricPrefixTest

    +
    +
    +
      +
    • Object
    • +
    • +
        +
      • MetricPrefixTest
      • +
      +
    • +
    +
    +
      +
    • +
      +
      +
      public class MetricPrefixTest
      +extends Object
      +
    • +
    +
    +
    + +
    +
    +
      +
    • + +
        +
      • + + +

        Constructor Detail

        + + + +
          +
        • +

          MetricPrefixTest

          +
          public MetricPrefixTest​()
          +
        • +
        +
      • +
      + +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          testAtto

          +
          @Test
          +public void testAtto​()
          +
        • +
        + + + +
          +
        • +

          testCenti

          +
          @Test
          +public void testCenti​()
          +
        • +
        + + + +
          +
        • +

          testDeci

          +
          @Test
          +public void testDeci​()
          +
        • +
        + + + +
          +
        • +

          testDeka

          +
          @Test
          +public void testDeka​()
          +
        • +
        + + + +
          +
        • +

          testExa

          +
          @Test
          +public void testExa​()
          +
        • +
        + + + +
          +
        • +

          testFemto

          +
          @Test
          +public void testFemto​()
          +
        • +
        + + + +
          +
        • +

          testGiga

          +
          @Test
          +public void testGiga​()
          +
        • +
        + + + +
          +
        • +

          testHecto

          +
          @Test
          +public void testHecto​()
          +
        • +
        + + + +
          +
        • +

          testKilo

          +
          @Test
          +public void testKilo​()
          +
        • +
        + + + +
          +
        • +

          testMega

          +
          @Test
          +public void testMega​()
          +
        • +
        + + + +
          +
        • +

          testMilli

          +
          @Test
          +public void testMilli​()
          +
        • +
        + + + +
          +
        • +

          testMicro

          +
          @Test
          +public void testMicro​()
          +
        • +
        + + + +
          +
        • +

          testNano

          +
          @Test
          +public void testNano​()
          +
        • +
        + + + +
          +
        • +

          testPeta

          +
          @Test
          +public void testPeta​()
          +
        • +
        + + + +
          +
        • +

          testPico

          +
          @Test
          +public void testPico​()
          +
        • +
        + + + +
          +
        • +

          testTera

          +
          @Test
          +public void testTera​()
          +
        • +
        + + + +
          +
        • +

          testYocto

          +
          @Test
          +public void testYocto​()
          +
        • +
        + + + +
          +
        • +

          testYotta

          +
          @Test
          +public void testYotta​()
          +
        • +
        + + + +
          +
        • +

          testZepto

          +
          @Test
          +public void testZepto​()
          +
        • +
        + + + +
          +
        • +

          testZetta

          +
          @Test
          +public void testZetta​()
          +
        • +
        +
      • +
      +
    • +
    +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/TestConverter.Pair.html b/site/testapidocs/javax/measure/test/TestConverter.Pair.html new file mode 100644 index 00000000..80615f66 --- /dev/null +++ b/site/testapidocs/javax/measure/test/TestConverter.Pair.html @@ -0,0 +1,521 @@ + + + + + +TestConverter.Pair (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Class TestConverter.Pair

    +
    +
    + +
    +
      +
    • +
      +
      All Implemented Interfaces:
      +
      UnitConverter
      +
      +
      +
      Enclosing class:
      +
      TestConverter
      +
      +
      +
      +
      public static final class TestConverter.Pair
      +extends TestConverter
      +
      This class represents converters made up of two or more separate converters (in matrix notation [pair] = [left] x [right]).
      +
    • +
    +
    +
    + +
    +
    + +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/TestConverter.html b/site/testapidocs/javax/measure/test/TestConverter.html new file mode 100644 index 00000000..8ec1e8ca --- /dev/null +++ b/site/testapidocs/javax/measure/test/TestConverter.html @@ -0,0 +1,563 @@ + + + + + +TestConverter (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Class TestConverter

    +
    +
    +
      +
    • Object
    • +
    • +
        +
      • TestConverter
      • +
      +
    • +
    +
    + +
    +
    + +
    +
    +
      +
    • + +
        +
      • + + +

        Field Detail

        + + + +
          +
        • +

          IDENTITY

          +
          public static final TestConverter IDENTITY
          +
          Holds identity converter.
          +
        • +
        +
      • +
      + +
        +
      • + + +

        Constructor Detail

        + + + +
          +
        • +

          TestConverter

          +
          protected TestConverter​()
          +
          Default constructor.
          +
        • +
        +
      • +
      + + +
    • +
    +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/TestUnit.html b/site/testapidocs/javax/measure/test/TestUnit.html new file mode 100644 index 00000000..76680120 --- /dev/null +++ b/site/testapidocs/javax/measure/test/TestUnit.html @@ -0,0 +1,926 @@ + + + + + +TestUnit (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Class TestUnit<Q extends Quantity<Q>>

    +
    +
    +
      +
    • Object
    • +
    • +
        +
      • TestUnit<Q>
      • +
      +
    • +
    +
    + +
    +
    + +
    +
    + +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/TripLeg.html b/site/testapidocs/javax/measure/test/TripLeg.html new file mode 100644 index 00000000..89c9e706 --- /dev/null +++ b/site/testapidocs/javax/measure/test/TripLeg.html @@ -0,0 +1,314 @@ + + + + + +TripLeg (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Class TripLeg

    +
    +
    + +
    +
      +
    • +
      +
      +
      public class TripLeg
      +extends Object
      +
      +
      Author:
      +
      paul.morrison
      +
      +
    • +
    +
    +
    + +
    +
    + +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/UnitTest.html b/site/testapidocs/javax/measure/test/UnitTest.html new file mode 100644 index 00000000..cbd8dfdb --- /dev/null +++ b/site/testapidocs/javax/measure/test/UnitTest.html @@ -0,0 +1,432 @@ + + + + + +UnitTest (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Class UnitTest

    +
    +
    + +
    +
      +
    • +
      +
      +
      public class UnitTest
      +extends Object
      +
      +
      Author:
      +
      Werner
      +
      +
    • +
    +
    +
    + +
    +
    +
      +
    • + +
        +
      • + + +

        Constructor Detail

        + + + +
          +
        • +

          UnitTest

          +
          public UnitTest​()
          +
        • +
        +
      • +
      + +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          init

          +
          @BeforeEach
          +public void init​()
          +
        • +
        + + + +
          +
        • +

          testGetSymbol

          +
          @Test
          +public void testGetSymbol​()
          +
          Test method for EnumUnit.getSymbol().
          +
        • +
        + + + +
          +
        • +

          testGetDimension

          +
          @Test
          +public void testGetDimension​()
          +
          Test method for EnumUnit.getDimension().
          +
        • +
        + + + +
          +
        • +

          testIsCompatible

          +
          @Test
          +public void testIsCompatible​()
          +
          Test method for EnumUnit.isCompatible(javax.measure.Unit).
          +
        • +
        + + + +
          +
        • +

          testGetConverterTo

          +
          @Test
          +public void testGetConverterTo​()
          +
        • +
        + + + +
          +
        • +

          testDivideNull

          +
          @Test
          +public void testDivideNull​()
          +
        • +
        + + + +
          +
        • +

          testMultiplyNull

          +
          @Test
          +public void testMultiplyNull​()
          +
        • +
        + + + +
          +
        • +

          testShiftNull

          +
          @Test
          +public void testShiftNull​()
          +
        • +
        +
      • +
      +
    • +
    +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/class-use/BinaryPrefixTest.html b/site/testapidocs/javax/measure/test/class-use/BinaryPrefixTest.html new file mode 100644 index 00000000..f1982e7b --- /dev/null +++ b/site/testapidocs/javax/measure/test/class-use/BinaryPrefixTest.html @@ -0,0 +1,153 @@ + + + + + +Uses of Class javax.measure.test.BinaryPrefixTest (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Class
    javax.measure.test.BinaryPrefixTest

    +
    +
    No usage of javax.measure.test.BinaryPrefixTest
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/class-use/CalcTripLength.html b/site/testapidocs/javax/measure/test/class-use/CalcTripLength.html new file mode 100644 index 00000000..9ca3ece9 --- /dev/null +++ b/site/testapidocs/javax/measure/test/class-use/CalcTripLength.html @@ -0,0 +1,153 @@ + + + + + +Uses of Class javax.measure.test.CalcTripLength (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Class
    javax.measure.test.CalcTripLength

    +
    +
    No usage of javax.measure.test.CalcTripLength
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/class-use/CircleInfo.html b/site/testapidocs/javax/measure/test/class-use/CircleInfo.html new file mode 100644 index 00000000..7ea723c7 --- /dev/null +++ b/site/testapidocs/javax/measure/test/class-use/CircleInfo.html @@ -0,0 +1,153 @@ + + + + + +Uses of Class javax.measure.test.CircleInfo (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Class
    javax.measure.test.CircleInfo

    +
    +
    No usage of javax.measure.test.CircleInfo
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/class-use/Conversions.html b/site/testapidocs/javax/measure/test/class-use/Conversions.html new file mode 100644 index 00000000..32a67845 --- /dev/null +++ b/site/testapidocs/javax/measure/test/class-use/Conversions.html @@ -0,0 +1,153 @@ + + + + + +Uses of Class javax.measure.test.Conversions (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Class
    javax.measure.test.Conversions

    +
    +
    No usage of javax.measure.test.Conversions
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/class-use/ConverterTest.html b/site/testapidocs/javax/measure/test/class-use/ConverterTest.html new file mode 100644 index 00000000..cdb105ad --- /dev/null +++ b/site/testapidocs/javax/measure/test/class-use/ConverterTest.html @@ -0,0 +1,153 @@ + + + + + +Uses of Class javax.measure.test.ConverterTest (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Class
    javax.measure.test.ConverterTest

    +
    +
    No usage of javax.measure.test.ConverterTest
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/class-use/DimensionTest.html b/site/testapidocs/javax/measure/test/class-use/DimensionTest.html new file mode 100644 index 00000000..9b3fd963 --- /dev/null +++ b/site/testapidocs/javax/measure/test/class-use/DimensionTest.html @@ -0,0 +1,153 @@ + + + + + +Uses of Class javax.measure.test.DimensionTest (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Class
    javax.measure.test.DimensionTest

    +
    +
    No usage of javax.measure.test.DimensionTest
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/class-use/ExceptionsTest.html b/site/testapidocs/javax/measure/test/class-use/ExceptionsTest.html new file mode 100644 index 00000000..e3a022d4 --- /dev/null +++ b/site/testapidocs/javax/measure/test/class-use/ExceptionsTest.html @@ -0,0 +1,153 @@ + + + + + +Uses of Class javax.measure.test.ExceptionsTest (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Class
    javax.measure.test.ExceptionsTest

    +
    +
    No usage of javax.measure.test.ExceptionsTest
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/class-use/MetricPrefixTest.html b/site/testapidocs/javax/measure/test/class-use/MetricPrefixTest.html new file mode 100644 index 00000000..bac43b20 --- /dev/null +++ b/site/testapidocs/javax/measure/test/class-use/MetricPrefixTest.html @@ -0,0 +1,153 @@ + + + + + +Uses of Class javax.measure.test.MetricPrefixTest (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Class
    javax.measure.test.MetricPrefixTest

    +
    +
    No usage of javax.measure.test.MetricPrefixTest
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/class-use/TestConverter.Pair.html b/site/testapidocs/javax/measure/test/class-use/TestConverter.Pair.html new file mode 100644 index 00000000..4af87b4f --- /dev/null +++ b/site/testapidocs/javax/measure/test/class-use/TestConverter.Pair.html @@ -0,0 +1,195 @@ + + + + + +Uses of Class javax.measure.test.TestConverter.Pair (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Class
    javax.measure.test.TestConverter.Pair

    +
    +
    + +
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/class-use/TestConverter.html b/site/testapidocs/javax/measure/test/class-use/TestConverter.html new file mode 100644 index 00000000..51ffc7cd --- /dev/null +++ b/site/testapidocs/javax/measure/test/class-use/TestConverter.html @@ -0,0 +1,280 @@ + + + + + +Uses of Class javax.measure.test.TestConverter (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Class
    javax.measure.test.TestConverter

    +
    +
    + +
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/class-use/TestUnit.html b/site/testapidocs/javax/measure/test/class-use/TestUnit.html new file mode 100644 index 00000000..782cb344 --- /dev/null +++ b/site/testapidocs/javax/measure/test/class-use/TestUnit.html @@ -0,0 +1,283 @@ + + + + + +Uses of Class javax.measure.test.TestUnit (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Class
    javax.measure.test.TestUnit

    +
    +
    + +
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/class-use/TripLeg.html b/site/testapidocs/javax/measure/test/class-use/TripLeg.html new file mode 100644 index 00000000..aa05ef84 --- /dev/null +++ b/site/testapidocs/javax/measure/test/class-use/TripLeg.html @@ -0,0 +1,153 @@ + + + + + +Uses of Class javax.measure.test.TripLeg (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Class
    javax.measure.test.TripLeg

    +
    +
    No usage of javax.measure.test.TripLeg
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/class-use/UnitTest.html b/site/testapidocs/javax/measure/test/class-use/UnitTest.html new file mode 100644 index 00000000..977d83fc --- /dev/null +++ b/site/testapidocs/javax/measure/test/class-use/UnitTest.html @@ -0,0 +1,153 @@ + + + + + +Uses of Class javax.measure.test.UnitTest (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Class
    javax.measure.test.UnitTest

    +
    +
    No usage of javax.measure.test.UnitTest
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/format/MeasurementParseTest.html b/site/testapidocs/javax/measure/test/format/MeasurementParseTest.html new file mode 100644 index 00000000..93ac4d12 --- /dev/null +++ b/site/testapidocs/javax/measure/test/format/MeasurementParseTest.html @@ -0,0 +1,356 @@ + + + + + +MeasurementParseTest (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Class MeasurementParseTest

    +
    +
    +
      +
    • Object
    • +
    • +
        +
      • MeasurementParseTest
      • +
      +
    • +
    +
    +
      +
    • +
      +
      +
      public class MeasurementParseTest
      +extends Object
      +
      Measurement Format Tests
      +
    • +
    +
    +
    + +
    +
    +
      +
    • + +
        +
      • + + +

        Constructor Detail

        + + + +
          +
        • +

          MeasurementParseTest

          +
          public MeasurementParseTest​()
          +
        • +
        +
      • +
      + +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          testExceptionWithMessage

          +
          @Test
          +public void testExceptionWithMessage​()
          +
        • +
        + + + +
          +
        • +

          testOldExceptionWithMessageDataAndPos

          +
          @Test
          +public void testOldExceptionWithMessageDataAndPos​()
          +
        • +
        + + + +
          +
        • +

          testOldExceptionWithMessageAndPos

          +
          @Test
          +public void testOldExceptionWithMessageAndPos​()
          +
        • +
        + + + +
          +
        • +

          testOldExceptionWithCause

          +
          @Test
          +public void testOldExceptionWithCause​()
          +
        • +
        +
      • +
      +
    • +
    +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/format/QuantityFormatTest.html b/site/testapidocs/javax/measure/test/format/QuantityFormatTest.html new file mode 100644 index 00000000..1c0720b8 --- /dev/null +++ b/site/testapidocs/javax/measure/test/format/QuantityFormatTest.html @@ -0,0 +1,407 @@ + + + + + +QuantityFormatTest (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Class QuantityFormatTest

    +
    +
    +
      +
    • Object
    • +
    • +
        +
      • QuantityFormatTest
      • +
      +
    • +
    +
    +
      +
    • +
      +
      +
      public class QuantityFormatTest
      +extends Object
      +
      +
      Author:
      +
      Werner Keil
      +
      +
    • +
    +
    +
    + +
    +
    +
      +
    • + +
        +
      • + + +

        Constructor Detail

        + + + +
          +
        • +

          QuantityFormatTest

          +
          public QuantityFormatTest​()
          +
        • +
        +
      • +
      + +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          init

          +
          @BeforeEach
          +public void init​()
          +
        • +
        + + + +
          +
        • +

          testParseSimple

          +
          @Test
          +public void testParseSimple​()
          +
        • +
        + + + +
          +
        • +

          testParseIrregularString

          +
          @Test
          +public void testParseIrregularString​()
          +
        • +
        + + + +
          +
        • +

          testParserException

          +
          @Test
          +public void testParserException​()
          +
        • +
        + + + +
          +
        • +

          testParserExceptionWithPosition

          +
          @Test
          +public void testParserExceptionWithPosition​()
          +
        • +
        + + + +
          +
        • +

          testParserExceptionWithNullString

          +
          @Test
          +public void testParserExceptionWithNullString​()
          +
        • +
        + + + +
          +
        • +

          testLocalSensitive

          +
          @Test
          +public void testLocalSensitive​()
          +
        • +
        +
      • +
      +
    • +
    +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/format/SimpleTestUnitFormat.html b/site/testapidocs/javax/measure/test/format/SimpleTestUnitFormat.html new file mode 100644 index 00000000..1f1bfa2b --- /dev/null +++ b/site/testapidocs/javax/measure/test/format/SimpleTestUnitFormat.html @@ -0,0 +1,483 @@ + + + + + +SimpleTestUnitFormat (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Class SimpleTestUnitFormat

    +
    +
    +
      +
    • Object
    • +
    • +
        +
      • SimpleTestUnitFormat
      • +
      +
    • +
    +
    +
      +
    • +
      +
      All Implemented Interfaces:
      +
      UnitFormat
      +
      +
      +
      +
      public class SimpleTestUnitFormat
      +extends Object
      +
      Provides a simple interface for formatting and parsing units.
      +
      +
      Version:
      +
      0.7
      +
      Author:
      +
      Werner Keil
      +
      +
    • +
    +
    +
    + +
    +
    +
      +
    • + +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          geInstance

          +
          public static UnitFormat geInstance​()
          +
          Returns the instance for formatting and parsing using case insensitive symbols
          +
          +
          Returns:
          +
          the default instance
          +
          +
        • +
        + + + +
          +
        • +

          format

          +
          public Appendable format​(Unit<?> unit,
          +                         Appendable appendable)
          +                  throws IOException
          +
          Formats the specified unit.
          +
          +
          Specified by:
          +
          format in interface UnitFormat
          +
          Parameters:
          +
          unit - the unit to format.
          +
          appendable - the appendable destination.
          +
          Returns:
          +
          The appendable destination passed in as appendable, with formatted text appended.
          +
          Throws:
          +
          IOException - if an error occurs.
          +
          +
        • +
        + + + +
          +
        • +

          label

          +
          public void label​(Unit<?> unit,
          +                  String label)
          +
        • +
        + + + +
          +
        • +

          isLocaleSensitive

          +
          public boolean isLocaleSensitive​()
          +
        • +
        + + + +
          +
        • +

          getInstance

          +
          public static UnitFormat getInstance​()
          +
          Returns the unit format for the default locale.
          +
          +
          Returns:
          +
          the locale format.
          +
          +
        • +
        + + + + + + + +
          +
        • +

          parse

          +
          public final Unit<?> parse​(CharSequence csq)
          +                    throws MeasurementParseException
          +
          Parses the specified character sequence to produce a unit (convenience method). If the specified sequence is empty, the unitary unit + (dimensionless) is returned.
          +
          +
          Specified by:
          +
          parse in interface UnitFormat
          +
          Parameters:
          +
          csq - the CharSequence to parse.
          +
          Returns:
          +
          the unit parsed from the specified character sub-sequence.
          +
          Throws:
          +
          MeasurementParseException - if any problem occurs while parsing the specified character sequence (e.g. illegal syntax).
          +
          +
        • +
        + + + +
          +
        • +

          parse

          +
          public final Unit<?> parse​(CharSequence csq,
          +                           ParsePosition pos)
          +                    throws MeasurementParseException
          +
          Parses the specified character sequence to produce a unit (convenience method). If the specified sequence is empty, the unitary unit + (dimensionless) is returned.
          +
          +
          Specified by:
          +
          parse in interface UnitFormat
          +
          Parameters:
          +
          csq - the CharSequence to parse.
          +
          pos - a ParsePosition object holding the current parsing index and error parsing index information as described above.
          +
          Returns:
          +
          the unit parsed from the specified character sub-sequence.
          +
          Throws:
          +
          MeasurementParseException - if any problem occurs while parsing the specified character sequence (e.g. illegal syntax).
          +
          +
        • +
        + + + +
          +
        • +

          format

          +
          public final String format​(Unit<?> unit)
          +
          Formats an object to produce a string. This is equivalent to
          format(unit, + new StringBuilder()).toString();
          +
          +
          Specified by:
          +
          format in interface UnitFormat
          +
          Parameters:
          +
          unit - The unit to format
          +
          Returns:
          +
          Formatted string.
          +
          Throws:
          +
          IllegalArgumentException - if the Format cannot format the given object
          +
          +
        • +
        +
      • +
      +
    • +
    +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/format/UnitFormatTest.html b/site/testapidocs/javax/measure/test/format/UnitFormatTest.html new file mode 100644 index 00000000..e6b6ffed --- /dev/null +++ b/site/testapidocs/javax/measure/test/format/UnitFormatTest.html @@ -0,0 +1,455 @@ + + + + + +UnitFormatTest (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Class UnitFormatTest

    +
    +
    +
      +
    • Object
    • +
    • +
        +
      • UnitFormatTest
      • +
      +
    • +
    +
    + +
    +
    + +
    +
    +
      +
    • + +
        +
      • + + +

        Constructor Detail

        + + + +
          +
        • +

          UnitFormatTest

          +
          public UnitFormatTest​()
          +
        • +
        +
      • +
      + +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          init

          +
          @BeforeEach
          +public void init​()
          +
        • +
        + + + +
          +
        • +

          testFormatKph

          +
          @Test
          +public void testFormatKph​()
          +
        • +
        + + + +
          +
        • +

          testParseSimple

          +
          @Test
          +public void testParseSimple​()
          +
        • +
        + + + +
          +
        • +

          testFormatFromQuantity

          +
          @Test
          +public void testFormatFromQuantity​()
          +
        • +
        + + + +
          +
        • +

          testParseIrregularString

          +
          @Test
          +public void testParseIrregularString​()
          +
        • +
        + + + +
          +
        • +

          testParserException

          +
          @Test
          +public void testParserException​()
          +
        • +
        + + + +
          +
        • +

          testParserExceptionWithPosition

          +
          @Test
          +public void testParserExceptionWithPosition​()
          +
        • +
        + + + +
          +
        • +

          testParserExceptionWithNullString

          +
          @Test
          +public void testParserExceptionWithNullString​()
          +
        • +
        + + + +
          +
        • +

          testLocalSensitive

          +
          @Test
          +public void testLocalSensitive​()
          +
        • +
        + + + +
          +
        • +

          testMoreLocalSensitive

          +
          @Test
          +public void testMoreLocalSensitive​()
          +
        • +
        +
      • +
      +
    • +
    +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/format/class-use/MeasurementParseTest.html b/site/testapidocs/javax/measure/test/format/class-use/MeasurementParseTest.html new file mode 100644 index 00000000..ea8b559f --- /dev/null +++ b/site/testapidocs/javax/measure/test/format/class-use/MeasurementParseTest.html @@ -0,0 +1,153 @@ + + + + + +Uses of Class javax.measure.test.format.MeasurementParseTest (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Class
    javax.measure.test.format.MeasurementParseTest

    +
    +
    No usage of javax.measure.test.format.MeasurementParseTest
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/format/class-use/QuantityFormatTest.html b/site/testapidocs/javax/measure/test/format/class-use/QuantityFormatTest.html new file mode 100644 index 00000000..bc6b9fd0 --- /dev/null +++ b/site/testapidocs/javax/measure/test/format/class-use/QuantityFormatTest.html @@ -0,0 +1,153 @@ + + + + + +Uses of Class javax.measure.test.format.QuantityFormatTest (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Class
    javax.measure.test.format.QuantityFormatTest

    +
    +
    No usage of javax.measure.test.format.QuantityFormatTest
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/format/class-use/SimpleTestUnitFormat.html b/site/testapidocs/javax/measure/test/format/class-use/SimpleTestUnitFormat.html new file mode 100644 index 00000000..b666de55 --- /dev/null +++ b/site/testapidocs/javax/measure/test/format/class-use/SimpleTestUnitFormat.html @@ -0,0 +1,153 @@ + + + + + +Uses of Class javax.measure.test.format.SimpleTestUnitFormat (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Class
    javax.measure.test.format.SimpleTestUnitFormat

    +
    +
    No usage of javax.measure.test.format.SimpleTestUnitFormat
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/format/class-use/UnitFormatTest.html b/site/testapidocs/javax/measure/test/format/class-use/UnitFormatTest.html new file mode 100644 index 00000000..a0936674 --- /dev/null +++ b/site/testapidocs/javax/measure/test/format/class-use/UnitFormatTest.html @@ -0,0 +1,153 @@ + + + + + +Uses of Class javax.measure.test.format.UnitFormatTest (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Class
    javax.measure.test.format.UnitFormatTest

    +
    +
    No usage of javax.measure.test.format.UnitFormatTest
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/format/package-frame.html b/site/testapidocs/javax/measure/test/format/package-frame.html new file mode 100644 index 00000000..cc3afcec --- /dev/null +++ b/site/testapidocs/javax/measure/test/format/package-frame.html @@ -0,0 +1,33 @@ + + + + + +javax.measure.test.format (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + +

    javax.measure.test.format

    + + + diff --git a/site/testapidocs/javax/measure/test/format/package-summary.html b/site/testapidocs/javax/measure/test/format/package-summary.html new file mode 100644 index 00000000..f7e7d295 --- /dev/null +++ b/site/testapidocs/javax/measure/test/format/package-summary.html @@ -0,0 +1,192 @@ + + + + + +javax.measure.test.format (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Package javax.measure.test.format

    +
    +
    +
    +
    Author:
    +
    Werner
    +
    + +
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/format/package-tree.html b/site/testapidocs/javax/measure/test/format/package-tree.html new file mode 100644 index 00000000..53a72441 --- /dev/null +++ b/site/testapidocs/javax/measure/test/format/package-tree.html @@ -0,0 +1,169 @@ + + + + + +javax.measure.test.format Class Hierarchy (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Hierarchy For Package javax.measure.test.format

    +Package Hierarchies: + +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/format/package-use.html b/site/testapidocs/javax/measure/test/format/package-use.html new file mode 100644 index 00000000..8d0863c6 --- /dev/null +++ b/site/testapidocs/javax/measure/test/format/package-use.html @@ -0,0 +1,153 @@ + + + + + +Uses of Package javax.measure.test.format (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Package
    javax.measure.test.format

    +
    +
    No usage of javax.measure.test.format
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/function/MultiplyConverter.html b/site/testapidocs/javax/measure/test/function/MultiplyConverter.html new file mode 100644 index 00000000..4fc73d32 --- /dev/null +++ b/site/testapidocs/javax/measure/test/function/MultiplyConverter.html @@ -0,0 +1,575 @@ + + + + + +MultiplyConverter (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Class MultiplyConverter

    +
    +
    + +
    + +
    +
    + +
    +
    + +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/function/class-use/MultiplyConverter.html b/site/testapidocs/javax/measure/test/function/class-use/MultiplyConverter.html new file mode 100644 index 00000000..8a276343 --- /dev/null +++ b/site/testapidocs/javax/measure/test/function/class-use/MultiplyConverter.html @@ -0,0 +1,195 @@ + + + + + +Uses of Class javax.measure.test.function.MultiplyConverter (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Class
    javax.measure.test.function.MultiplyConverter

    +
    +
    + +
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/function/package-frame.html b/site/testapidocs/javax/measure/test/function/package-frame.html new file mode 100644 index 00000000..4decff96 --- /dev/null +++ b/site/testapidocs/javax/measure/test/function/package-frame.html @@ -0,0 +1,30 @@ + + + + + +javax.measure.test.function (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + +

    javax.measure.test.function

    +
    +

    Classes

    + +
    + + diff --git a/site/testapidocs/javax/measure/test/function/package-summary.html b/site/testapidocs/javax/measure/test/function/package-summary.html new file mode 100644 index 00000000..eb98fcf4 --- /dev/null +++ b/site/testapidocs/javax/measure/test/function/package-summary.html @@ -0,0 +1,175 @@ + + + + + +javax.measure.test.function (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Package javax.measure.test.function

    +
    +
    +
      +
    • + + + + + + + + + + + + +
      Class Summary 
      ClassDescription
      MultiplyConverter +
      + This class represents a converter multiplying numeric values by a constant scaling factor (double based).
      +
      +
    • +
    +
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/function/package-tree.html b/site/testapidocs/javax/measure/test/function/package-tree.html new file mode 100644 index 00000000..492eb260 --- /dev/null +++ b/site/testapidocs/javax/measure/test/function/package-tree.html @@ -0,0 +1,170 @@ + + + + + +javax.measure.test.function Class Hierarchy (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Hierarchy For Package javax.measure.test.function

    +Package Hierarchies: + +
    +
    +

    Class Hierarchy

    + +
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/function/package-use.html b/site/testapidocs/javax/measure/test/function/package-use.html new file mode 100644 index 00000000..d40954ca --- /dev/null +++ b/site/testapidocs/javax/measure/test/function/package-use.html @@ -0,0 +1,191 @@ + + + + + +Uses of Package javax.measure.test.function (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Package
    javax.measure.test.function

    +
    +
    + +
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/package-frame.html b/site/testapidocs/javax/measure/test/package-frame.html new file mode 100644 index 00000000..1adf91db --- /dev/null +++ b/site/testapidocs/javax/measure/test/package-frame.html @@ -0,0 +1,42 @@ + + + + + +javax.measure.test (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + +

    javax.measure.test

    + + + diff --git a/site/testapidocs/javax/measure/test/package-summary.html b/site/testapidocs/javax/measure/test/package-summary.html new file mode 100644 index 00000000..2fc60626 --- /dev/null +++ b/site/testapidocs/javax/measure/test/package-summary.html @@ -0,0 +1,229 @@ + + + + + +javax.measure.test (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Package javax.measure.test

    +
    +
    +
    +
    Author:
    +
    Werner
    +
    + +
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/package-tree.html b/site/testapidocs/javax/measure/test/package-tree.html new file mode 100644 index 00000000..a2b01dc3 --- /dev/null +++ b/site/testapidocs/javax/measure/test/package-tree.html @@ -0,0 +1,181 @@ + + + + + +javax.measure.test Class Hierarchy (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Hierarchy For Package javax.measure.test

    +Package Hierarchies: + +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/package-use.html b/site/testapidocs/javax/measure/test/package-use.html new file mode 100644 index 00000000..ddaeb0c1 --- /dev/null +++ b/site/testapidocs/javax/measure/test/package-use.html @@ -0,0 +1,263 @@ + + + + + +Uses of Package javax.measure.test (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Package
    javax.measure.test

    +
    +
    + +
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/quantity/AreaQuantity.html b/site/testapidocs/javax/measure/test/quantity/AreaQuantity.html new file mode 100644 index 00000000..2206e9fe --- /dev/null +++ b/site/testapidocs/javax/measure/test/quantity/AreaQuantity.html @@ -0,0 +1,778 @@ + + + + + +AreaQuantity (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Class AreaQuantity

    +
    +
    + +
    + +
    +
    + +
    +
    + +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/quantity/AreaQuantityTest.html b/site/testapidocs/javax/measure/test/quantity/AreaQuantityTest.html new file mode 100644 index 00000000..30dfc76a --- /dev/null +++ b/site/testapidocs/javax/measure/test/quantity/AreaQuantityTest.html @@ -0,0 +1,583 @@ + + + + + +AreaQuantityTest (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Class AreaQuantityTest

    +
    +
    +
      +
    • Object
    • +
    • +
        +
      • AreaQuantityTest
      • +
      +
    • +
    +
    +
      +
    • +
      +
      +
      public class AreaQuantityTest
      +extends Object
      +
      +
      Author:
      +
      Werner Keil
      +
      +
    • +
    +
    +
    + +
    +
    +
      +
    • + +
        +
      • + + +

        Constructor Detail

        + + + +
          +
        • +

          AreaQuantityTest

          +
          public AreaQuantityTest​()
          +
        • +
        +
      • +
      + +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          setUp

          +
          @BeforeEach
          +public void setUp​()
          +
        • +
        + + + +
          +
        • +

          testAreaQuantity

          +
          @Test
          +public void testAreaQuantity​()
          +
        • +
        + + + +
          +
        • +

          testAdd

          +
          @Test
          +public void testAdd​()
          +
        • +
        + + + +
          +
        • +

          testSubtract

          +
          @Test
          +public void testSubtract​()
          +
        • +
        + + + +
          +
        • +

          testEq

          +
          @Test
          +public void testEq​()
          +
        • +
        + + + +
          +
        • +

          testGt

          +
          @Test
          +public void testGt​()
          +
        • +
        + + + +
          +
        • +

          testLt

          +
          @Test
          +public void testLt​()
          +
        • +
        + + + +
          +
        • +

          testGe

          +
          @Test
          +public void testGe​()
          +
        • +
        + + + +
          +
        • +

          testLe

          +
          @Test
          +public void testLe​()
          +
        • +
        + + + +
          +
        • +

          testMultiplyDouble

          +
          @Test
          +public void testMultiplyDouble​()
          +
        • +
        + + + +
          +
        • +

          testDivideDouble

          +
          @Test
          +public void testDivideDouble​()
          +
        • +
        + + + +
          +
        • +

          testDivideDistanceQuantity

          +
          @Test
          +public void testDivideDistanceQuantity​()
          +
        • +
        + + + +
          +
        • +

          testMultiplyDistanceQuantity

          +
          @Test
          +public void testMultiplyDistanceQuantity​()
          +
        • +
        + + + +
          +
        • +

          testConvert

          +
          @Test
          +public void testConvert​()
          +
        • +
        + + + +
          +
        • +

          testShowInUnits

          +
          @Test
          +public void testShowInUnits​()
          +
        • +
        + + + +
          +
        • +

          testToSystemUnit

          +
          @Test
          +public void testToSystemUnit​()
          +
        • +
        + + + +
          +
        • +

          testNegate

          +
          @Test
          +public void testNegate​()
          +
        • +
        + + + +
          +
        • +

          testScale

          +
          @Test
          +public void testScale​()
          +
        • +
        +
      • +
      +
    • +
    +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/quantity/CircleInfo.html b/site/testapidocs/javax/measure/test/quantity/CircleInfo.html new file mode 100644 index 00000000..f77c7766 --- /dev/null +++ b/site/testapidocs/javax/measure/test/quantity/CircleInfo.html @@ -0,0 +1,310 @@ + + + + + +CircleInfo (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Class CircleInfo

    +
    +
    +
      +
    • Object
    • +
    • +
        +
      • CircleInfo
      • +
      +
    • +
    +
    +
      +
    • +
      +
      +
      public class CircleInfo
      +extends Object
      +
    • +
    +
    +
    + +
    +
    +
      +
    • + +
        +
      • + + +

        Constructor Detail

        + + + +
          +
        • +

          CircleInfo

          +
          public CircleInfo​()
          +
        • +
        +
      • +
      + +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          main

          +
          public static void main​(String[] args)
          +
          +
          Parameters:
          +
          args - arguments
          +
          +
        • +
        +
      • +
      +
    • +
    +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/quantity/DimensionlessQuantity.html b/site/testapidocs/javax/measure/test/quantity/DimensionlessQuantity.html new file mode 100644 index 00000000..d69a9685 --- /dev/null +++ b/site/testapidocs/javax/measure/test/quantity/DimensionlessQuantity.html @@ -0,0 +1,650 @@ + + + + + + +DimensionlessQuantity (Units of Measurement API 2.0-SNAPSHOT Test API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    javax.measure.test.quantity
    +

    Class DimensionlessQuantity

    +
    +
    + +
    + +
    +
    + +
    +
    + +
    +
    + + + + + +

    Copyright © 2014–2018 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/quantity/DistanceQuantity.html b/site/testapidocs/javax/measure/test/quantity/DistanceQuantity.html new file mode 100644 index 00000000..fcb413ed --- /dev/null +++ b/site/testapidocs/javax/measure/test/quantity/DistanceQuantity.html @@ -0,0 +1,792 @@ + + + + + +DistanceQuantity (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Class DistanceQuantity

    +
    +
    + +
    + +
    +
    + +
    +
    + +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/quantity/DistanceQuantityTest.html b/site/testapidocs/javax/measure/test/quantity/DistanceQuantityTest.html new file mode 100644 index 00000000..d4e585b3 --- /dev/null +++ b/site/testapidocs/javax/measure/test/quantity/DistanceQuantityTest.html @@ -0,0 +1,567 @@ + + + + + +DistanceQuantityTest (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Class DistanceQuantityTest

    +
    +
    +
      +
    • Object
    • +
    • +
        +
      • DistanceQuantityTest
      • +
      +
    • +
    +
    +
      +
    • +
      +
      +
      public class DistanceQuantityTest
      +extends Object
      +
      +
      Author:
      +
      Werner Keil
      +
      +
    • +
    +
    +
    + +
    +
    +
      +
    • + +
        +
      • + + +

        Constructor Detail

        + + + +
          +
        • +

          DistanceQuantityTest

          +
          public DistanceQuantityTest​()
          +
        • +
        +
      • +
      + +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          setUp

          +
          @BeforeEach
          +public void setUp​()
          +
        • +
        + + + +
          +
        • +

          testAreaQuantity

          +
          @Test
          +public void testAreaQuantity​()
          +
        • +
        + + + +
          +
        • +

          testAdd

          +
          @Test
          +public void testAdd​()
          +
        • +
        + + + +
          +
        • +

          testSubtract

          +
          @Test
          +public void testSubtract​()
          +
        • +
        + + + +
          +
        • +

          testEq

          +
          @Test
          +public void testEq​()
          +
        • +
        + + + +
          +
        • +

          testGt

          +
          @Test
          +public void testGt​()
          +
        • +
        + + + +
          +
        • +

          testLt

          +
          @Test
          +public void testLt​()
          +
        • +
        + + + +
          +
        • +

          testGe

          +
          @Test
          +public void testGe​()
          +
        • +
        + + + +
          +
        • +

          testLe

          +
          @Test
          +public void testLe​()
          +
        • +
        + + + +
          +
        • +

          testMultiplyDouble

          +
          @Test
          +public void testMultiplyDouble​()
          +
        • +
        + + + +
          +
        • +

          testDivideDouble

          +
          @Test
          +public void testDivideDouble​()
          +
        • +
        + + + +
          +
        • +

          testMultiplyDistanceQuantity

          +
          @Test
          +public void testMultiplyDistanceQuantity​()
          +
        • +
        + + + +
          +
        • +

          testConvert

          +
          @Test
          +public void testConvert​()
          +
        • +
        + + + +
          +
        • +

          testShowInUnits

          +
          @Test
          +public void testShowInUnits​()
          +
        • +
        + + + +
          +
        • +

          testToSystemUnit

          +
          @Test
          +public void testToSystemUnit​()
          +
        • +
        + + + +
          +
        • +

          testNegate

          +
          @Test
          +public void testNegate​()
          +
        • +
        + + + +
          +
        • +

          testAbsolute

          +
          @Test
          +public void testAbsolute​()
          +
        • +
        +
      • +
      +
    • +
    +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/quantity/TemperatureQuantity.html b/site/testapidocs/javax/measure/test/quantity/TemperatureQuantity.html new file mode 100644 index 00000000..11d4136a --- /dev/null +++ b/site/testapidocs/javax/measure/test/quantity/TemperatureQuantity.html @@ -0,0 +1,797 @@ + + + + + +TemperatureQuantity (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Class TemperatureQuantity

    +
    +
    + +
    + +
    +
    + +
    +
    + +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/quantity/TemperatureQuantityTest.html b/site/testapidocs/javax/measure/test/quantity/TemperatureQuantityTest.html new file mode 100644 index 00000000..828d3bdf --- /dev/null +++ b/site/testapidocs/javax/measure/test/quantity/TemperatureQuantityTest.html @@ -0,0 +1,583 @@ + + + + + +TemperatureQuantityTest (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Class TemperatureQuantityTest

    +
    +
    +
      +
    • Object
    • +
    • +
        +
      • TemperatureQuantityTest
      • +
      +
    • +
    +
    +
      +
    • +
      +
      +
      public class TemperatureQuantityTest
      +extends Object
      +
      +
      Author:
      +
      Werner Keil
      +
      +
    • +
    +
    +
    + +
    +
    +
      +
    • + +
        +
      • + + +

        Constructor Detail

        + + + +
          +
        • +

          TemperatureQuantityTest

          +
          public TemperatureQuantityTest​()
          +
        • +
        +
      • +
      + +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          setUp

          +
          @BeforeEach
          +public void setUp​()
          +
        • +
        + + + +
          +
        • +

          testQuantity

          +
          @Test
          +public void testQuantity​()
          +
        • +
        + + + +
          +
        • +

          testAdd

          +
          @Test
          +public void testAdd​()
          +
        • +
        + + + +
          +
        • +

          testSubtract

          +
          @Test
          +public void testSubtract​()
          +
        • +
        + + + +
          +
        • +

          testEq

          +
          @Test
          +public void testEq​()
          +
        • +
        + + + +
          +
        • +

          testGt

          +
          @Test
          +public void testGt​()
          +
        • +
        + + + +
          +
        • +

          testLt

          +
          @Test
          +public void testLt​()
          +
        • +
        + + + +
          +
        • +

          testGe

          +
          @Test
          +public void testGe​()
          +
        • +
        + + + +
          +
        • +

          testLe

          +
          @Test
          +public void testLe​()
          +
        • +
        + + + +
          +
        • +

          testMultiplyDouble

          +
          @Test
          +public void testMultiplyDouble​()
          +
        • +
        + + + +
          +
        • +

          testDivideDouble

          +
          @Test
          +public void testDivideDouble​()
          +
        • +
        + + + +
          +
        • +

          testConvert

          +
          @Test
          +public void testConvert​()
          +
        • +
        + + + +
          +
        • +

          testToSystemUnit

          +
          @Test
          +public void testToSystemUnit​()
          +
        • +
        + + + +
          +
        • +

          testNegate

          +
          @Test
          +public void testNegate​()
          +
        • +
        + + + +
          +
        • +

          testScale

          +
          @Test
          +public void testScale​()
          +
        • +
        + + + +
          +
        • +

          testLevelCelsius

          +
          @Test
          +public void testLevelCelsius​()
          +
        • +
        + + + +
          +
        • +

          testLevelFahrenheit

          +
          @Test
          +public void testLevelFahrenheit​()
          +
        • +
        + + + +
          +
        • +

          testAbsolute

          +
          @Test
          +public void testAbsolute​()
          +
        • +
        +
      • +
      +
    • +
    +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/quantity/TestQuantities.html b/site/testapidocs/javax/measure/test/quantity/TestQuantities.html new file mode 100644 index 00000000..e179d69c --- /dev/null +++ b/site/testapidocs/javax/measure/test/quantity/TestQuantities.html @@ -0,0 +1,294 @@ + + + + + +TestQuantities (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Class TestQuantities

    +
    +
    +
      +
    • Object
    • +
    • +
        +
      • TestQuantities
      • +
      +
    • +
    +
    +
      +
    • +
      +
      +
      public final class TestQuantities
      +extends Object
      +
      Singleton class for accessing Quantity instances.
      +
      +
      Since:
      +
      1.0
      +
      Author:
      +
      werner, otaviojava
      +
      +
    • +
    +
    +
    + +
    +
    +
      +
    • + +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          getQuantity

          +
          public static <Q extends Quantity<Q>> Quantity<Q> getQuantity​(Number value,
          +                                                              Unit<Q> unit)
          +
          Returns the scalar measurement. When the Number was BigDecimal or BigInteger will use DecimalQuantity, when the + Number was Double will DoubleQuantity otherwise NumberQuantity. in the specified unit.
          +
          +
          Type Parameters:
          +
          Q - The type of the quantity.
          +
          Parameters:
          +
          value - the measurement value.
          +
          unit - the measurement unit.
          +
          Returns:
          +
          the corresponding numeric measurement.
          +
          Throws:
          +
          NullPointerException - when value or unit were null
          +
          +
        • +
        +
      • +
      +
    • +
    +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/quantity/TestQuantity.html b/site/testapidocs/javax/measure/test/quantity/TestQuantity.html new file mode 100644 index 00000000..b4d89353 --- /dev/null +++ b/site/testapidocs/javax/measure/test/quantity/TestQuantity.html @@ -0,0 +1,696 @@ + + + + + +TestQuantity (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Class TestQuantity<Q extends Quantity<Q>>

    +
    +
    +
      +
    • Object
    • +
    • +
        +
      • TestQuantity<Q>
      • +
      +
    • +
    +
    + +
    +
    + +
    +
    + +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/quantity/TimeQuantity.html b/site/testapidocs/javax/measure/test/quantity/TimeQuantity.html new file mode 100644 index 00000000..ca910304 --- /dev/null +++ b/site/testapidocs/javax/measure/test/quantity/TimeQuantity.html @@ -0,0 +1,711 @@ + + + + + +TimeQuantity (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Class TimeQuantity

    +
    +
    + +
    + +
    +
    + +
    +
    + +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/quantity/VolumeQuantity.html b/site/testapidocs/javax/measure/test/quantity/VolumeQuantity.html new file mode 100644 index 00000000..b7451519 --- /dev/null +++ b/site/testapidocs/javax/measure/test/quantity/VolumeQuantity.html @@ -0,0 +1,739 @@ + + + + + +VolumeQuantity (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Class VolumeQuantity

    +
    +
    + +
    + +
    +
    + +
    +
    + +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/quantity/class-use/AreaQuantity.html b/site/testapidocs/javax/measure/test/quantity/class-use/AreaQuantity.html new file mode 100644 index 00000000..cf06126b --- /dev/null +++ b/site/testapidocs/javax/measure/test/quantity/class-use/AreaQuantity.html @@ -0,0 +1,285 @@ + + + + + +Uses of Class javax.measure.test.quantity.AreaQuantity (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Class
    javax.measure.test.quantity.AreaQuantity

    +
    +
    + +
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/quantity/class-use/AreaQuantityTest.html b/site/testapidocs/javax/measure/test/quantity/class-use/AreaQuantityTest.html new file mode 100644 index 00000000..8a28e36c --- /dev/null +++ b/site/testapidocs/javax/measure/test/quantity/class-use/AreaQuantityTest.html @@ -0,0 +1,153 @@ + + + + + +Uses of Class javax.measure.test.quantity.AreaQuantityTest (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Class
    javax.measure.test.quantity.AreaQuantityTest

    +
    +
    No usage of javax.measure.test.quantity.AreaQuantityTest
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/quantity/class-use/CircleInfo.html b/site/testapidocs/javax/measure/test/quantity/class-use/CircleInfo.html new file mode 100644 index 00000000..05b2c543 --- /dev/null +++ b/site/testapidocs/javax/measure/test/quantity/class-use/CircleInfo.html @@ -0,0 +1,153 @@ + + + + + +Uses of Class javax.measure.test.quantity.CircleInfo (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Class
    javax.measure.test.quantity.CircleInfo

    +
    +
    No usage of javax.measure.test.quantity.CircleInfo
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/quantity/class-use/DimensionlessQuantity.html b/site/testapidocs/javax/measure/test/quantity/class-use/DimensionlessQuantity.html new file mode 100644 index 00000000..7d78e7c1 --- /dev/null +++ b/site/testapidocs/javax/measure/test/quantity/class-use/DimensionlessQuantity.html @@ -0,0 +1,207 @@ + + + + + + +Uses of Class javax.measure.test.quantity.DimensionlessQuantity (Units of Measurement API 2.0-SNAPSHOT Test API) + + + + + + + + + + + +
    +

    Uses of Class
    javax.measure.test.quantity.DimensionlessQuantity

    +
    +
    + +
    + + + + +

    Copyright © 2014–2018 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/quantity/class-use/DistanceQuantity.html b/site/testapidocs/javax/measure/test/quantity/class-use/DistanceQuantity.html new file mode 100644 index 00000000..90227954 --- /dev/null +++ b/site/testapidocs/javax/measure/test/quantity/class-use/DistanceQuantity.html @@ -0,0 +1,334 @@ + + + + + +Uses of Class javax.measure.test.quantity.DistanceQuantity (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Class
    javax.measure.test.quantity.DistanceQuantity

    +
    +
    + +
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/quantity/class-use/DistanceQuantityTest.html b/site/testapidocs/javax/measure/test/quantity/class-use/DistanceQuantityTest.html new file mode 100644 index 00000000..ce78fc7f --- /dev/null +++ b/site/testapidocs/javax/measure/test/quantity/class-use/DistanceQuantityTest.html @@ -0,0 +1,153 @@ + + + + + +Uses of Class javax.measure.test.quantity.DistanceQuantityTest (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Class
    javax.measure.test.quantity.DistanceQuantityTest

    +
    +
    No usage of javax.measure.test.quantity.DistanceQuantityTest
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/quantity/class-use/TemperatureQuantity.html b/site/testapidocs/javax/measure/test/quantity/class-use/TemperatureQuantity.html new file mode 100644 index 00000000..b2f0f810 --- /dev/null +++ b/site/testapidocs/javax/measure/test/quantity/class-use/TemperatureQuantity.html @@ -0,0 +1,235 @@ + + + + + +Uses of Class javax.measure.test.quantity.TemperatureQuantity (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Class
    javax.measure.test.quantity.TemperatureQuantity

    +
    +
    + +
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/quantity/class-use/TemperatureQuantityTest.html b/site/testapidocs/javax/measure/test/quantity/class-use/TemperatureQuantityTest.html new file mode 100644 index 00000000..0f2f9e4c --- /dev/null +++ b/site/testapidocs/javax/measure/test/quantity/class-use/TemperatureQuantityTest.html @@ -0,0 +1,153 @@ + + + + + +Uses of Class javax.measure.test.quantity.TemperatureQuantityTest (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Class
    javax.measure.test.quantity.TemperatureQuantityTest

    +
    +
    No usage of javax.measure.test.quantity.TemperatureQuantityTest
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/quantity/class-use/TestQuantities.html b/site/testapidocs/javax/measure/test/quantity/class-use/TestQuantities.html new file mode 100644 index 00000000..bc4a097c --- /dev/null +++ b/site/testapidocs/javax/measure/test/quantity/class-use/TestQuantities.html @@ -0,0 +1,153 @@ + + + + + +Uses of Class javax.measure.test.quantity.TestQuantities (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Class
    javax.measure.test.quantity.TestQuantities

    +
    +
    No usage of javax.measure.test.quantity.TestQuantities
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/quantity/class-use/TestQuantity.html b/site/testapidocs/javax/measure/test/quantity/class-use/TestQuantity.html new file mode 100644 index 00000000..e4e2f5e8 --- /dev/null +++ b/site/testapidocs/javax/measure/test/quantity/class-use/TestQuantity.html @@ -0,0 +1,302 @@ + + + + + +Uses of Class javax.measure.test.quantity.TestQuantity (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Class
    javax.measure.test.quantity.TestQuantity

    +
    +
    + +
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/quantity/class-use/TimeQuantity.html b/site/testapidocs/javax/measure/test/quantity/class-use/TimeQuantity.html new file mode 100644 index 00000000..c242d5f3 --- /dev/null +++ b/site/testapidocs/javax/measure/test/quantity/class-use/TimeQuantity.html @@ -0,0 +1,265 @@ + + + + + +Uses of Class javax.measure.test.quantity.TimeQuantity (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Class
    javax.measure.test.quantity.TimeQuantity

    +
    +
    + +
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/quantity/class-use/VolumeQuantity.html b/site/testapidocs/javax/measure/test/quantity/class-use/VolumeQuantity.html new file mode 100644 index 00000000..b8cb00b3 --- /dev/null +++ b/site/testapidocs/javax/measure/test/quantity/class-use/VolumeQuantity.html @@ -0,0 +1,275 @@ + + + + + +Uses of Class javax.measure.test.quantity.VolumeQuantity (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Class
    javax.measure.test.quantity.VolumeQuantity

    +
    +
    + +
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/quantity/package-frame.html b/site/testapidocs/javax/measure/test/quantity/package-frame.html new file mode 100644 index 00000000..19ac0dd2 --- /dev/null +++ b/site/testapidocs/javax/measure/test/quantity/package-frame.html @@ -0,0 +1,40 @@ + + + + + +javax.measure.test.quantity (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + +

    javax.measure.test.quantity

    + + + diff --git a/site/testapidocs/javax/measure/test/quantity/package-summary.html b/site/testapidocs/javax/measure/test/quantity/package-summary.html new file mode 100644 index 00000000..e87feb00 --- /dev/null +++ b/site/testapidocs/javax/measure/test/quantity/package-summary.html @@ -0,0 +1,214 @@ + + + + + +javax.measure.test.quantity (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Package javax.measure.test.quantity

    +
    +
    + +
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/quantity/package-tree.html b/site/testapidocs/javax/measure/test/quantity/package-tree.html new file mode 100644 index 00000000..05e0f0a1 --- /dev/null +++ b/site/testapidocs/javax/measure/test/quantity/package-tree.html @@ -0,0 +1,179 @@ + + + + + +javax.measure.test.quantity Class Hierarchy (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Hierarchy For Package javax.measure.test.quantity

    +Package Hierarchies: + +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/quantity/package-use.html b/site/testapidocs/javax/measure/test/quantity/package-use.html new file mode 100644 index 00000000..91026805 --- /dev/null +++ b/site/testapidocs/javax/measure/test/quantity/package-use.html @@ -0,0 +1,229 @@ + + + + + +Uses of Package javax.measure.test.quantity (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Package
    javax.measure.test.quantity

    +
    +
    + +
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/unit/AreaUnit.html b/site/testapidocs/javax/measure/test/unit/AreaUnit.html new file mode 100644 index 00000000..801d8dc4 --- /dev/null +++ b/site/testapidocs/javax/measure/test/unit/AreaUnit.html @@ -0,0 +1,440 @@ + + + + + +AreaUnit (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Class AreaUnit

    +
    +
    + +
    +
      +
    • +
      +
      All Implemented Interfaces:
      +
      Unit<Area>
      +
      +
      +
      +
      public class AreaUnit
      +extends TestUnit<Area>
      +
      +
      Author:
      +
      Werner Keil
      +
      +
    • +
    +
    +
    + +
    +
    + +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/unit/BaseUnit.html b/site/testapidocs/javax/measure/test/unit/BaseUnit.html new file mode 100644 index 00000000..65744875 --- /dev/null +++ b/site/testapidocs/javax/measure/test/unit/BaseUnit.html @@ -0,0 +1,484 @@ + + + + + +BaseUnit (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Class BaseUnit<Q extends Quantity<Q>>

    +
    +
    + +
    +
      +
    • +
      +
      Type Parameters:
      +
      Q - The type of the quantity measured by this unit.
      +
      +
      +
      All Implemented Interfaces:
      +
      Unit<Q>
      +
      +
      +
      Direct Known Subclasses:
      +
      DistanceUnit, TimeUnit
      +
      +
      +
      +
      public class BaseUnit<Q extends Quantity<Q>>
      +extends TestUnit<Q>
      +
      Building blocks on top of which all others units are created. Base units are always unscaled metric units. + +

      + When using the standard model (default), all seven base units are dimensionally independent. +

      +
      +
      Since:
      +
      1.0
      +
      Version:
      +
      1.1
      +
      Author:
      +
      Jean-Marie Dautelle, Werner Keil
      +
      See Also:
      +
      Wikipedia: SI base unit
      +
      +
    • +
    +
    +
    + +
    +
    +
      +
    • + +
        +
      • + + +

        Constructor Detail

        + + + +
          +
        • +

          BaseUnit

          +
          public BaseUnit​(String symbol,
          +                String name)
          +
          Creates a base unit having the specified symbol.
          +
          +
          Parameters:
          +
          symbol - the symbol of this base unit.
          +
          name - the name of this base unit.
          +
          Throws:
          +
          IllegalArgumentException - if the specified symbol is associated to a different unit.
          +
          +
        • +
        + + + +
          +
        • +

          BaseUnit

          +
          public BaseUnit​(String name,
          +                double factor)
          +
          Creates a base unit with name and factor
          +
          +
          Parameters:
          +
          factor - the factor
          +
          name - the name of this base unit.
          +
          Throws:
          +
          IllegalArgumentException - if the specified symbol is associated to a different unit.
          +
          +
        • +
        + + + +
          +
        • +

          BaseUnit

          +
          public BaseUnit​(String symbol)
          +
          Creates a base unit having the specified symbol.
          +
          +
          Parameters:
          +
          symbol - the symbol of this base unit.
          +
          Throws:
          +
          IllegalArgumentException - if the specified symbol is associated to a different unit.
          +
          +
        • +
        +
      • +
      + + +
    • +
    +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/unit/DistanceUnit.html b/site/testapidocs/javax/measure/test/unit/DistanceUnit.html new file mode 100644 index 00000000..21bbc538 --- /dev/null +++ b/site/testapidocs/javax/measure/test/unit/DistanceUnit.html @@ -0,0 +1,529 @@ + + + + + +DistanceUnit (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Class DistanceUnit

    +
    +
    + +
    +
      +
    • +
      +
      All Implemented Interfaces:
      +
      Unit<Q>
      +
      +
      +
      +
      public class DistanceUnit
      +extends BaseUnit<Length>
      +
      +
      Author:
      +
      Werner Keil
      +
      +
    • +
    +
    +
    + +
    +
    + +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/unit/MultiplyConverter.html b/site/testapidocs/javax/measure/test/unit/MultiplyConverter.html new file mode 100644 index 00000000..0a46ca7b --- /dev/null +++ b/site/testapidocs/javax/measure/test/unit/MultiplyConverter.html @@ -0,0 +1,543 @@ + + + + + +MultiplyConverter (Units of Measurement API 2.0-PRD Test API) + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Class MultiplyConverter

    +
    +
    + +
    +
      +
    • +
      +
      All Implemented Interfaces:
      +
      Comparable<UnitConverter>
      +
      +
      +
      +
      public final class MultiplyConverter
      +extends TestConverter
      +implements Comparable<UnitConverter>
      +

      + This class represents a converter multiplying numeric values by a constant scaling factor (double based). +

      +
      +
      Since:
      +
      2.0
      +
      Version:
      +
      1.0, March 28, 2018
      +
      Author:
      +
      Jean-Marie Dautelle, Werner Keil
      +
      +
    • +
    +
    +
    + +
    +
    +
      +
    • + +
        +
      • + + +

        Constructor Detail

        + + + +
          +
        • +

          MultiplyConverter

          +
          public MultiplyConverter​(double factor)
          +
          Creates a multiply converter with the specified scale factor.
          +
          +
          Parameters:
          +
          factor - the scaling factor.
          +
          Throws:
          +
          IllegalArgumentException - if coefficient is 1.0 (would result in identity converter)
          +
          +
        • +
        +
      • +
      + +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          getFactor

          +
          public double getFactor​()
          +
          Returns the scale factor of this converter.
          +
          +
          Returns:
          +
          the scale factor.
          +
          +
        • +
        + + + +
          +
        • +

          concatenate

          +
          public UnitConverter concatenate​(UnitConverter converter)
          +
          +
          Overrides:
          +
          concatenate in class TestConverter
          +
          +
        • +
        + + + + + + + +
          +
        • +

          convert

          +
          public double convert​(double value)
          +
          +
          Specified by:
          +
          convert in class TestConverter
          +
          +
        • +
        + + + + + + + + + + + + + + + +
          +
        • +

          isLinear

          +
          public boolean isLinear​()
          +
        • +
        + + + +
          +
        • +

          getValue

          +
          public Double getValue​()
          +
        • +
        + + + +
          +
        • +

          compareTo

          +
          public int compareTo​(UnitConverter o)
          +
          +
          Specified by:
          +
          compareTo in interface Comparable<UnitConverter>
          +
          +
        • +
        +
      • +
      +
    • +
    +
    +
    + + + + + +

    Copyright © 2014–2019 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/unit/PrefixTest.html b/site/testapidocs/javax/measure/test/unit/PrefixTest.html new file mode 100644 index 00000000..bdec7c5a --- /dev/null +++ b/site/testapidocs/javax/measure/test/unit/PrefixTest.html @@ -0,0 +1,303 @@ + + + + + + +PrefixTest (Units of Measurement API 2.0-SNAPSHOT Test API) + + + + + + + + + + + + + + + + +
    +
    javax.measure.test.unit
    +

    Class PrefixTest

    +
    +
    +
      +
    • Object
    • +
    • +
        +
      • PrefixTest
      • +
      +
    • +
    +
    +
      +
    • +
      +
      +
      public class PrefixTest
      +extends Object
      +
    • +
    +
    +
    + +
    +
    +
      +
    • + +
        +
      • + + +

        Constructor Detail

        + + + +
          +
        • +

          PrefixTest

          +
          public PrefixTest()
          +
        • +
        +
      • +
      + +
        +
      • + + +

        Method Detail

        + + + +
          +
        • +

          testKilo

          +
          public void testKilo()
          +
        • +
        + + + +
          +
        • +

          testMega

          +
          public void testMega()
          +
        • +
        + + + +
          +
        • +

          testDeci

          +
          public void testDeci()
          +
        • +
        +
      • +
      +
    • +
    +
    +
    + + + + + +

    Copyright © 2014–2018 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/unit/SpeedUnit.html b/site/testapidocs/javax/measure/test/unit/SpeedUnit.html new file mode 100644 index 00000000..e2319f16 --- /dev/null +++ b/site/testapidocs/javax/measure/test/unit/SpeedUnit.html @@ -0,0 +1,410 @@ + + + + + +SpeedUnit (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Class SpeedUnit

    +
    +
    + +
    +
      +
    • +
      +
      All Implemented Interfaces:
      +
      Unit<Speed>
      +
      +
      +
      +
      public class SpeedUnit
      +extends TestUnit<Speed>
      +
      +
      Author:
      +
      Werner Keil
      +
      +
    • +
    +
    +
    + +
    +
    + +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/unit/TemperatureUnit.html b/site/testapidocs/javax/measure/test/unit/TemperatureUnit.html new file mode 100644 index 00000000..60d06a2b --- /dev/null +++ b/site/testapidocs/javax/measure/test/unit/TemperatureUnit.html @@ -0,0 +1,740 @@ + + + + + +TemperatureUnit (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Class TemperatureUnit

    +
    +
    + +
    +
      +
    • +
      +
      All Implemented Interfaces:
      +
      Unit<Temperature>
      +
      +
      +
      +
      public class TemperatureUnit
      +extends TestUnit<Temperature>
      +
      +
      Version:
      +
      0.7, $Date: 2019-02-06 $
      +
      Author:
      +
      Werner Keil
      +
      +
    • +
    +
    +
    + +
    +
    + +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/unit/TimeUnit.html b/site/testapidocs/javax/measure/test/unit/TimeUnit.html new file mode 100644 index 00000000..c3bddd62 --- /dev/null +++ b/site/testapidocs/javax/measure/test/unit/TimeUnit.html @@ -0,0 +1,439 @@ + + + + + +TimeUnit (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Class TimeUnit

    +
    +
    + +
    +
      +
    • +
      +
      All Implemented Interfaces:
      +
      Unit<Q>
      +
      +
      +
      +
      public class TimeUnit
      +extends BaseUnit<Time>
      +
      +
      Version:
      +
      0.2
      +
      Author:
      +
      Werner Keil
      +
      +
    • +
    +
    +
    + +
    +
    + +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/unit/VolumeUnit.html b/site/testapidocs/javax/measure/test/unit/VolumeUnit.html new file mode 100644 index 00000000..a1ac9338 --- /dev/null +++ b/site/testapidocs/javax/measure/test/unit/VolumeUnit.html @@ -0,0 +1,455 @@ + + + + + +VolumeUnit (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + + + + + + + + + +
    + + + + +
    + + + +
    + +

    Class VolumeUnit

    +
    +
    + +
    +
      +
    • +
      +
      All Implemented Interfaces:
      +
      Unit<Volume>
      +
      +
      +
      +
      public class VolumeUnit
      +extends TestUnit<Volume>
      +
      +
      Author:
      +
      Werner Keil
      +
      +
    • +
    +
    +
    + +
    +
    + +
    +
    + + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/unit/class-use/AreaUnit.html b/site/testapidocs/javax/measure/test/unit/class-use/AreaUnit.html new file mode 100644 index 00000000..da2273e4 --- /dev/null +++ b/site/testapidocs/javax/measure/test/unit/class-use/AreaUnit.html @@ -0,0 +1,259 @@ + + + + + +Uses of Class javax.measure.test.unit.AreaUnit (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Class
    javax.measure.test.unit.AreaUnit

    +
    +
    + +
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/unit/class-use/BaseUnit.html b/site/testapidocs/javax/measure/test/unit/class-use/BaseUnit.html new file mode 100644 index 00000000..45effcd3 --- /dev/null +++ b/site/testapidocs/javax/measure/test/unit/class-use/BaseUnit.html @@ -0,0 +1,200 @@ + + + + + +Uses of Class javax.measure.test.unit.BaseUnit (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Class
    javax.measure.test.unit.BaseUnit

    +
    +
    + +
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/unit/class-use/DistanceUnit.html b/site/testapidocs/javax/measure/test/unit/class-use/DistanceUnit.html new file mode 100644 index 00000000..2cbe3e23 --- /dev/null +++ b/site/testapidocs/javax/measure/test/unit/class-use/DistanceUnit.html @@ -0,0 +1,300 @@ + + + + + +Uses of Class javax.measure.test.unit.DistanceUnit (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Class
    javax.measure.test.unit.DistanceUnit

    +
    +
    + +
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/unit/class-use/MultiplyConverter.html b/site/testapidocs/javax/measure/test/unit/class-use/MultiplyConverter.html new file mode 100644 index 00000000..917be485 --- /dev/null +++ b/site/testapidocs/javax/measure/test/unit/class-use/MultiplyConverter.html @@ -0,0 +1,195 @@ + + + + + +Uses of Class javax.measure.test.unit.MultiplyConverter (Units of Measurement API 2.0-PRD Test API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Class
    javax.measure.test.unit.MultiplyConverter

    +
    +
    + +
    + + + + +

    Copyright © 2014–2019 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/unit/class-use/PrefixTest.html b/site/testapidocs/javax/measure/test/unit/class-use/PrefixTest.html new file mode 100644 index 00000000..f592d104 --- /dev/null +++ b/site/testapidocs/javax/measure/test/unit/class-use/PrefixTest.html @@ -0,0 +1,126 @@ + + + + + + +Uses of Class javax.measure.test.unit.PrefixTest (Units of Measurement API 2.0-SNAPSHOT Test API) + + + + + + + + + + + +
    +

    Uses of Class
    javax.measure.test.unit.PrefixTest

    +
    +
    No usage of javax.measure.test.unit.PrefixTest
    + + + + +

    Copyright © 2014–2018 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/unit/class-use/SpeedUnit.html b/site/testapidocs/javax/measure/test/unit/class-use/SpeedUnit.html new file mode 100644 index 00000000..a4553c39 --- /dev/null +++ b/site/testapidocs/javax/measure/test/unit/class-use/SpeedUnit.html @@ -0,0 +1,205 @@ + + + + + +Uses of Class javax.measure.test.unit.SpeedUnit (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Class
    javax.measure.test.unit.SpeedUnit

    +
    +
    + +
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/unit/class-use/TemperatureUnit.html b/site/testapidocs/javax/measure/test/unit/class-use/TemperatureUnit.html new file mode 100644 index 00000000..07cbdedf --- /dev/null +++ b/site/testapidocs/javax/measure/test/unit/class-use/TemperatureUnit.html @@ -0,0 +1,293 @@ + + + + + +Uses of Class javax.measure.test.unit.TemperatureUnit (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Class
    javax.measure.test.unit.TemperatureUnit

    +
    +
    + +
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/unit/class-use/TimeUnit.html b/site/testapidocs/javax/measure/test/unit/class-use/TimeUnit.html new file mode 100644 index 00000000..974f8826 --- /dev/null +++ b/site/testapidocs/javax/measure/test/unit/class-use/TimeUnit.html @@ -0,0 +1,248 @@ + + + + + +Uses of Class javax.measure.test.unit.TimeUnit (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Class
    javax.measure.test.unit.TimeUnit

    +
    +
    + +
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/unit/class-use/VolumeUnit.html b/site/testapidocs/javax/measure/test/unit/class-use/VolumeUnit.html new file mode 100644 index 00000000..8b7aafe7 --- /dev/null +++ b/site/testapidocs/javax/measure/test/unit/class-use/VolumeUnit.html @@ -0,0 +1,264 @@ + + + + + +Uses of Class javax.measure.test.unit.VolumeUnit (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Class
    javax.measure.test.unit.VolumeUnit

    +
    +
    + +
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/unit/package-frame.html b/site/testapidocs/javax/measure/test/unit/package-frame.html new file mode 100644 index 00000000..6ae73b71 --- /dev/null +++ b/site/testapidocs/javax/measure/test/unit/package-frame.html @@ -0,0 +1,36 @@ + + + + + +javax.measure.test.unit (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + +

    javax.measure.test.unit

    + + + diff --git a/site/testapidocs/javax/measure/test/unit/package-summary.html b/site/testapidocs/javax/measure/test/unit/package-summary.html new file mode 100644 index 00000000..63fc651a --- /dev/null +++ b/site/testapidocs/javax/measure/test/unit/package-summary.html @@ -0,0 +1,198 @@ + + + + + +javax.measure.test.unit (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Package javax.measure.test.unit

    +
    +
    + +
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/unit/package-tree.html b/site/testapidocs/javax/measure/test/unit/package-tree.html new file mode 100644 index 00000000..5eedf431 --- /dev/null +++ b/site/testapidocs/javax/measure/test/unit/package-tree.html @@ -0,0 +1,179 @@ + + + + + +javax.measure.test.unit Class Hierarchy (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Hierarchy For Package javax.measure.test.unit

    +Package Hierarchies: + +
    +
    +

    Class Hierarchy

    + +
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/javax/measure/test/unit/package-use.html b/site/testapidocs/javax/measure/test/unit/package-use.html new file mode 100644 index 00000000..07a2bf2f --- /dev/null +++ b/site/testapidocs/javax/measure/test/unit/package-use.html @@ -0,0 +1,251 @@ + + + + + +Uses of Package javax.measure.test.unit (Units of Measurement API 2.0 Test API) + + + + + + + + + + + + + + +
    + + + + +
    + + +
    +

    Uses of Package
    javax.measure.test.unit

    +
    +
    + +
    + + + + +

    Copyright © 2014–2020 Jean-Marie Dautelle, Werner Keil, Otavio Santana. All rights reserved.

    + + diff --git a/site/testapidocs/jquery/external/jquery/jquery.js b/site/testapidocs/jquery/external/jquery/jquery.js new file mode 100644 index 00000000..c5c64825 --- /dev/null +++ b/site/testapidocs/jquery/external/jquery/jquery.js @@ -0,0 +1,9789 @@ +/*! + * jQuery JavaScript Library v1.10.2 + * http://jquery.com/ + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * + * Copyright 2005, 2013 jQuery Foundation, Inc. and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2013-07-03T13:48Z + */ +(function( window, undefined ) { + +// Can't do this because several apps including ASP.NET trace +// the stack via arguments.caller.callee and Firefox dies if +// you try to trace through "use strict" call chains. (#13335) +// Support: Firefox 18+ +//"use strict"; +var + // The deferred used on DOM ready + readyList, + + // A central reference to the root jQuery(document) + rootjQuery, + + // Support: IE<10 + // For `typeof xmlNode.method` instead of `xmlNode.method !== undefined` + core_strundefined = typeof undefined, + + // Use the correct document accordingly with window argument (sandbox) + location = window.location, + document = window.document, + docElem = document.documentElement, + + // Map over jQuery in case of overwrite + _jQuery = window.jQuery, + + // Map over the $ in case of overwrite + _$ = window.$, + + // [[Class]] -> type pairs + class2type = {}, + + // List of deleted data cache ids, so we can reuse them + core_deletedIds = [], + + core_version = "1.10.2", + + // Save a reference to some core methods + core_concat = core_deletedIds.concat, + core_push = core_deletedIds.push, + core_slice = core_deletedIds.slice, + core_indexOf = core_deletedIds.indexOf, + core_toString = class2type.toString, + core_hasOwn = class2type.hasOwnProperty, + core_trim = core_version.trim, + + // Define a local copy of jQuery + jQuery = function( selector, context ) { + // The jQuery object is actually just the init constructor 'enhanced' + return new jQuery.fn.init( selector, context, rootjQuery ); + }, + + // Used for matching numbers + core_pnum = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, + + // Used for splitting on whitespace + core_rnotwhite = /\S+/g, + + // Make sure we trim BOM and NBSP (here's looking at you, Safari 5.0 and IE) + rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, + + // A simple way to check for HTML strings + // Prioritize #id over to avoid XSS via location.hash (#9521) + // Strict HTML recognition (#11290: must start with <) + rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/, + + // Match a standalone tag + rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>|)$/, + + // JSON RegExp + rvalidchars = /^[\],:{}\s]*$/, + rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g, + rvalidescape = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g, + rvalidtokens = /"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g, + + // Matches dashed string for camelizing + rmsPrefix = /^-ms-/, + rdashAlpha = /-([\da-z])/gi, + + // Used by jQuery.camelCase as callback to replace() + fcamelCase = function( all, letter ) { + return letter.toUpperCase(); + }, + + // The ready event handler + completed = function( event ) { + + // readyState === "complete" is good enough for us to call the dom ready in oldIE + if ( document.addEventListener || event.type === "load" || document.readyState === "complete" ) { + detach(); + jQuery.ready(); + } + }, + // Clean-up method for dom ready events + detach = function() { + if ( document.addEventListener ) { + document.removeEventListener( "DOMContentLoaded", completed, false ); + window.removeEventListener( "load", completed, false ); + + } else { + document.detachEvent( "onreadystatechange", completed ); + window.detachEvent( "onload", completed ); + } + }; + +jQuery.fn = jQuery.prototype = { + // The current version of jQuery being used + jquery: core_version, + + constructor: jQuery, + init: function( selector, context, rootjQuery ) { + var match, elem; + + // HANDLE: $(""), $(null), $(undefined), $(false) + if ( !selector ) { + return this; + } + + // Handle HTML strings + if ( typeof selector === "string" ) { + if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) { + // Assume that strings that start and end with <> are HTML and skip the regex check + match = [ null, selector, null ]; + + } else { + match = rquickExpr.exec( selector ); + } + + // Match html or make sure no context is specified for #id + if ( match && (match[1] || !context) ) { + + // HANDLE: $(html) -> $(array) + if ( match[1] ) { + context = context instanceof jQuery ? context[0] : context; + + // scripts is true for back-compat + jQuery.merge( this, jQuery.parseHTML( + match[1], + context && context.nodeType ? context.ownerDocument || context : document, + true + ) ); + + // HANDLE: $(html, props) + if ( rsingleTag.test( match[1] ) && jQuery.isPlainObject( context ) ) { + for ( match in context ) { + // Properties of context are called as methods if possible + if ( jQuery.isFunction( this[ match ] ) ) { + this[ match ]( context[ match ] ); + + // ...and otherwise set as attributes + } else { + this.attr( match, context[ match ] ); + } + } + } + + return this; + + // HANDLE: $(#id) + } else { + elem = document.getElementById( match[2] ); + + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + if ( elem && elem.parentNode ) { + // Handle the case where IE and Opera return items + // by name instead of ID + if ( elem.id !== match[2] ) { + return rootjQuery.find( selector ); + } + + // Otherwise, we inject the element directly into the jQuery object + this.length = 1; + this[0] = elem; + } + + this.context = document; + this.selector = selector; + return this; + } + + // HANDLE: $(expr, $(...)) + } else if ( !context || context.jquery ) { + return ( context || rootjQuery ).find( selector ); + + // HANDLE: $(expr, context) + // (which is just equivalent to: $(context).find(expr) + } else { + return this.constructor( context ).find( selector ); + } + + // HANDLE: $(DOMElement) + } else if ( selector.nodeType ) { + this.context = this[0] = selector; + this.length = 1; + return this; + + // HANDLE: $(function) + // Shortcut for document ready + } else if ( jQuery.isFunction( selector ) ) { + return rootjQuery.ready( selector ); + } + + if ( selector.selector !== undefined ) { + this.selector = selector.selector; + this.context = selector.context; + } + + return jQuery.makeArray( selector, this ); + }, + + // Start with an empty selector + selector: "", + + // The default length of a jQuery object is 0 + length: 0, + + toArray: function() { + return core_slice.call( this ); + }, + + // Get the Nth element in the matched element set OR + // Get the whole matched element set as a clean array + get: function( num ) { + return num == null ? + + // Return a 'clean' array + this.toArray() : + + // Return just the object + ( num < 0 ? this[ this.length + num ] : this[ num ] ); + }, + + // Take an array of elements and push it onto the stack + // (returning the new matched element set) + pushStack: function( elems ) { + + // Build a new jQuery matched element set + var ret = jQuery.merge( this.constructor(), elems ); + + // Add the old object onto the stack (as a reference) + ret.prevObject = this; + ret.context = this.context; + + // Return the newly-formed element set + return ret; + }, + + // Execute a callback for every element in the matched set. + // (You can seed the arguments with an array of args, but this is + // only used internally.) + each: function( callback, args ) { + return jQuery.each( this, callback, args ); + }, + + ready: function( fn ) { + // Add the callback + jQuery.ready.promise().done( fn ); + + return this; + }, + + slice: function() { + return this.pushStack( core_slice.apply( this, arguments ) ); + }, + + first: function() { + return this.eq( 0 ); + }, + + last: function() { + return this.eq( -1 ); + }, + + eq: function( i ) { + var len = this.length, + j = +i + ( i < 0 ? len : 0 ); + return this.pushStack( j >= 0 && j < len ? [ this[j] ] : [] ); + }, + + map: function( callback ) { + return this.pushStack( jQuery.map(this, function( elem, i ) { + return callback.call( elem, i, elem ); + })); + }, + + end: function() { + return this.prevObject || this.constructor(null); + }, + + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: core_push, + sort: [].sort, + splice: [].splice +}; + +// Give the init function the jQuery prototype for later instantiation +jQuery.fn.init.prototype = jQuery.fn; + +jQuery.extend = jQuery.fn.extend = function() { + var src, copyIsArray, copy, name, options, clone, + target = arguments[0] || {}, + i = 1, + length = arguments.length, + deep = false; + + // Handle a deep copy situation + if ( typeof target === "boolean" ) { + deep = target; + target = arguments[1] || {}; + // skip the boolean and the target + i = 2; + } + + // Handle case when target is a string or something (possible in deep copy) + if ( typeof target !== "object" && !jQuery.isFunction(target) ) { + target = {}; + } + + // extend jQuery itself if only one argument is passed + if ( length === i ) { + target = this; + --i; + } + + for ( ; i < length; i++ ) { + // Only deal with non-null/undefined values + if ( (options = arguments[ i ]) != null ) { + // Extend the base object + for ( name in options ) { + src = target[ name ]; + copy = options[ name ]; + + // Prevent never-ending loop + if ( target === copy ) { + continue; + } + + // Recurse if we're merging plain objects or arrays + if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) { + if ( copyIsArray ) { + copyIsArray = false; + clone = src && jQuery.isArray(src) ? src : []; + + } else { + clone = src && jQuery.isPlainObject(src) ? src : {}; + } + + // Never move original objects, clone them + target[ name ] = jQuery.extend( deep, clone, copy ); + + // Don't bring in undefined values + } else if ( copy !== undefined ) { + target[ name ] = copy; + } + } + } + } + + // Return the modified object + return target; +}; + +jQuery.extend({ + // Unique for each copy of jQuery on the page + // Non-digits removed to match rinlinejQuery + expando: "jQuery" + ( core_version + Math.random() ).replace( /\D/g, "" ), + + noConflict: function( deep ) { + if ( window.$ === jQuery ) { + window.$ = _$; + } + + if ( deep && window.jQuery === jQuery ) { + window.jQuery = _jQuery; + } + + return jQuery; + }, + + // Is the DOM ready to be used? Set to true once it occurs. + isReady: false, + + // A counter to track how many items to wait for before + // the ready event fires. See #6781 + readyWait: 1, + + // Hold (or release) the ready event + holdReady: function( hold ) { + if ( hold ) { + jQuery.readyWait++; + } else { + jQuery.ready( true ); + } + }, + + // Handle when the DOM is ready + ready: function( wait ) { + + // Abort if there are pending holds or we're already ready + if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) { + return; + } + + // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443). + if ( !document.body ) { + return setTimeout( jQuery.ready ); + } + + // Remember that the DOM is ready + jQuery.isReady = true; + + // If a normal DOM Ready event fired, decrement, and wait if need be + if ( wait !== true && --jQuery.readyWait > 0 ) { + return; + } + + // If there are functions bound, to execute + readyList.resolveWith( document, [ jQuery ] ); + + // Trigger any bound ready events + if ( jQuery.fn.trigger ) { + jQuery( document ).trigger("ready").off("ready"); + } + }, + + // See test/unit/core.js for details concerning isFunction. + // Since version 1.3, DOM methods and functions like alert + // aren't supported. They return false on IE (#2968). + isFunction: function( obj ) { + return jQuery.type(obj) === "function"; + }, + + isArray: Array.isArray || function( obj ) { + return jQuery.type(obj) === "array"; + }, + + isWindow: function( obj ) { + /* jshint eqeqeq: false */ + return obj != null && obj == obj.window; + }, + + isNumeric: function( obj ) { + return !isNaN( parseFloat(obj) ) && isFinite( obj ); + }, + + type: function( obj ) { + if ( obj == null ) { + return String( obj ); + } + return typeof obj === "object" || typeof obj === "function" ? + class2type[ core_toString.call(obj) ] || "object" : + typeof obj; + }, + + isPlainObject: function( obj ) { + var key; + + // Must be an Object. + // Because of IE, we also have to check the presence of the constructor property. + // Make sure that DOM nodes and window objects don't pass through, as well + if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) { + return false; + } + + try { + // Not own constructor property must be Object + if ( obj.constructor && + !core_hasOwn.call(obj, "constructor") && + !core_hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) { + return false; + } + } catch ( e ) { + // IE8,9 Will throw exceptions on certain host objects #9897 + return false; + } + + // Support: IE<9 + // Handle iteration over inherited properties before own properties. + if ( jQuery.support.ownLast ) { + for ( key in obj ) { + return core_hasOwn.call( obj, key ); + } + } + + // Own properties are enumerated firstly, so to speed up, + // if last one is own, then all properties are own. + for ( key in obj ) {} + + return key === undefined || core_hasOwn.call( obj, key ); + }, + + isEmptyObject: function( obj ) { + var name; + for ( name in obj ) { + return false; + } + return true; + }, + + error: function( msg ) { + throw new Error( msg ); + }, + + // data: string of html + // context (optional): If specified, the fragment will be created in this context, defaults to document + // keepScripts (optional): If true, will include scripts passed in the html string + parseHTML: function( data, context, keepScripts ) { + if ( !data || typeof data !== "string" ) { + return null; + } + if ( typeof context === "boolean" ) { + keepScripts = context; + context = false; + } + context = context || document; + + var parsed = rsingleTag.exec( data ), + scripts = !keepScripts && []; + + // Single tag + if ( parsed ) { + return [ context.createElement( parsed[1] ) ]; + } + + parsed = jQuery.buildFragment( [ data ], context, scripts ); + if ( scripts ) { + jQuery( scripts ).remove(); + } + return jQuery.merge( [], parsed.childNodes ); + }, + + parseJSON: function( data ) { + // Attempt to parse using the native JSON parser first + if ( window.JSON && window.JSON.parse ) { + return window.JSON.parse( data ); + } + + if ( data === null ) { + return data; + } + + if ( typeof data === "string" ) { + + // Make sure leading/trailing whitespace is removed (IE can't handle it) + data = jQuery.trim( data ); + + if ( data ) { + // Make sure the incoming data is actual JSON + // Logic borrowed from http://json.org/json2.js + if ( rvalidchars.test( data.replace( rvalidescape, "@" ) + .replace( rvalidtokens, "]" ) + .replace( rvalidbraces, "")) ) { + + return ( new Function( "return " + data ) )(); + } + } + } + + jQuery.error( "Invalid JSON: " + data ); + }, + + // Cross-browser xml parsing + parseXML: function( data ) { + var xml, tmp; + if ( !data || typeof data !== "string" ) { + return null; + } + try { + if ( window.DOMParser ) { // Standard + tmp = new DOMParser(); + xml = tmp.parseFromString( data , "text/xml" ); + } else { // IE + xml = new ActiveXObject( "Microsoft.XMLDOM" ); + xml.async = "false"; + xml.loadXML( data ); + } + } catch( e ) { + xml = undefined; + } + if ( !xml || !xml.documentElement || xml.getElementsByTagName( "parsererror" ).length ) { + jQuery.error( "Invalid XML: " + data ); + } + return xml; + }, + + noop: function() {}, + + // Evaluates a script in a global context + // Workarounds based on findings by Jim Driscoll + // http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context + globalEval: function( data ) { + if ( data && jQuery.trim( data ) ) { + // We use execScript on Internet Explorer + // We use an anonymous function so that context is window + // rather than jQuery in Firefox + ( window.execScript || function( data ) { + window[ "eval" ].call( window, data ); + } )( data ); + } + }, + + // Convert dashed to camelCase; used by the css and data modules + // Microsoft forgot to hump their vendor prefix (#9572) + camelCase: function( string ) { + return string.replace( rmsPrefix, "ms-" ).replace( rdashAlpha, fcamelCase ); + }, + + nodeName: function( elem, name ) { + return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); + }, + + // args is for internal usage only + each: function( obj, callback, args ) { + var value, + i = 0, + length = obj.length, + isArray = isArraylike( obj ); + + if ( args ) { + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback.apply( obj[ i ], args ); + + if ( value === false ) { + break; + } + } + } else { + for ( i in obj ) { + value = callback.apply( obj[ i ], args ); + + if ( value === false ) { + break; + } + } + } + + // A special, fast, case for the most common use of each + } else { + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback.call( obj[ i ], i, obj[ i ] ); + + if ( value === false ) { + break; + } + } + } else { + for ( i in obj ) { + value = callback.call( obj[ i ], i, obj[ i ] ); + + if ( value === false ) { + break; + } + } + } + } + + return obj; + }, + + // Use native String.trim function wherever possible + trim: core_trim && !core_trim.call("\uFEFF\xA0") ? + function( text ) { + return text == null ? + "" : + core_trim.call( text ); + } : + + // Otherwise use our own trimming functionality + function( text ) { + return text == null ? + "" : + ( text + "" ).replace( rtrim, "" ); + }, + + // results is for internal usage only + makeArray: function( arr, results ) { + var ret = results || []; + + if ( arr != null ) { + if ( isArraylike( Object(arr) ) ) { + jQuery.merge( ret, + typeof arr === "string" ? + [ arr ] : arr + ); + } else { + core_push.call( ret, arr ); + } + } + + return ret; + }, + + inArray: function( elem, arr, i ) { + var len; + + if ( arr ) { + if ( core_indexOf ) { + return core_indexOf.call( arr, elem, i ); + } + + len = arr.length; + i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0; + + for ( ; i < len; i++ ) { + // Skip accessing in sparse arrays + if ( i in arr && arr[ i ] === elem ) { + return i; + } + } + } + + return -1; + }, + + merge: function( first, second ) { + var l = second.length, + i = first.length, + j = 0; + + if ( typeof l === "number" ) { + for ( ; j < l; j++ ) { + first[ i++ ] = second[ j ]; + } + } else { + while ( second[j] !== undefined ) { + first[ i++ ] = second[ j++ ]; + } + } + + first.length = i; + + return first; + }, + + grep: function( elems, callback, inv ) { + var retVal, + ret = [], + i = 0, + length = elems.length; + inv = !!inv; + + // Go through the array, only saving the items + // that pass the validator function + for ( ; i < length; i++ ) { + retVal = !!callback( elems[ i ], i ); + if ( inv !== retVal ) { + ret.push( elems[ i ] ); + } + } + + return ret; + }, + + // arg is for internal usage only + map: function( elems, callback, arg ) { + var value, + i = 0, + length = elems.length, + isArray = isArraylike( elems ), + ret = []; + + // Go through the array, translating each of the items to their + if ( isArray ) { + for ( ; i < length; i++ ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret[ ret.length ] = value; + } + } + + // Go through every key on the object, + } else { + for ( i in elems ) { + value = callback( elems[ i ], i, arg ); + + if ( value != null ) { + ret[ ret.length ] = value; + } + } + } + + // Flatten any nested arrays + return core_concat.apply( [], ret ); + }, + + // A global GUID counter for objects + guid: 1, + + // Bind a function to a context, optionally partially applying any + // arguments. + proxy: function( fn, context ) { + var args, proxy, tmp; + + if ( typeof context === "string" ) { + tmp = fn[ context ]; + context = fn; + fn = tmp; + } + + // Quick check to determine if target is callable, in the spec + // this throws a TypeError, but we will just return undefined. + if ( !jQuery.isFunction( fn ) ) { + return undefined; + } + + // Simulated bind + args = core_slice.call( arguments, 2 ); + proxy = function() { + return fn.apply( context || this, args.concat( core_slice.call( arguments ) ) ); + }; + + // Set the guid of unique handler to the same of original handler, so it can be removed + proxy.guid = fn.guid = fn.guid || jQuery.guid++; + + return proxy; + }, + + // Multifunctional method to get and set values of a collection + // The value/s can optionally be executed if it's a function + access: function( elems, fn, key, value, chainable, emptyGet, raw ) { + var i = 0, + length = elems.length, + bulk = key == null; + + // Sets many values + if ( jQuery.type( key ) === "object" ) { + chainable = true; + for ( i in key ) { + jQuery.access( elems, fn, i, key[i], true, emptyGet, raw ); + } + + // Sets one value + } else if ( value !== undefined ) { + chainable = true; + + if ( !jQuery.isFunction( value ) ) { + raw = true; + } + + if ( bulk ) { + // Bulk operations run against the entire set + if ( raw ) { + fn.call( elems, value ); + fn = null; + + // ...except when executing function values + } else { + bulk = fn; + fn = function( elem, key, value ) { + return bulk.call( jQuery( elem ), value ); + }; + } + } + + if ( fn ) { + for ( ; i < length; i++ ) { + fn( elems[i], key, raw ? value : value.call( elems[i], i, fn( elems[i], key ) ) ); + } + } + } + + return chainable ? + elems : + + // Gets + bulk ? + fn.call( elems ) : + length ? fn( elems[0], key ) : emptyGet; + }, + + now: function() { + return ( new Date() ).getTime(); + }, + + // A method for quickly swapping in/out CSS properties to get correct calculations. + // Note: this method belongs to the css module but it's needed here for the support module. + // If support gets modularized, this method should be moved back to the css module. + swap: function( elem, options, callback, args ) { + var ret, name, + old = {}; + + // Remember the old values, and insert the new ones + for ( name in options ) { + old[ name ] = elem.style[ name ]; + elem.style[ name ] = options[ name ]; + } + + ret = callback.apply( elem, args || [] ); + + // Revert the old values + for ( name in options ) { + elem.style[ name ] = old[ name ]; + } + + return ret; + } +}); + +jQuery.ready.promise = function( obj ) { + if ( !readyList ) { + + readyList = jQuery.Deferred(); + + // Catch cases where $(document).ready() is called after the browser event has already occurred. + // we once tried to use readyState "interactive" here, but it caused issues like the one + // discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15 + if ( document.readyState === "complete" ) { + // Handle it asynchronously to allow scripts the opportunity to delay ready + setTimeout( jQuery.ready ); + + // Standards-based browsers support DOMContentLoaded + } else if ( document.addEventListener ) { + // Use the handy event callback + document.addEventListener( "DOMContentLoaded", completed, false ); + + // A fallback to window.onload, that will always work + window.addEventListener( "load", completed, false ); + + // If IE event model is used + } else { + // Ensure firing before onload, maybe late but safe also for iframes + document.attachEvent( "onreadystatechange", completed ); + + // A fallback to window.onload, that will always work + window.attachEvent( "onload", completed ); + + // If IE and not a frame + // continually check to see if the document is ready + var top = false; + + try { + top = window.frameElement == null && document.documentElement; + } catch(e) {} + + if ( top && top.doScroll ) { + (function doScrollCheck() { + if ( !jQuery.isReady ) { + + try { + // Use the trick by Diego Perini + // http://javascript.nwbox.com/IEContentLoaded/ + top.doScroll("left"); + } catch(e) { + return setTimeout( doScrollCheck, 50 ); + } + + // detach all dom ready events + detach(); + + // and execute any waiting functions + jQuery.ready(); + } + })(); + } + } + } + return readyList.promise( obj ); +}; + +// Populate the class2type map +jQuery.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) { + class2type[ "[object " + name + "]" ] = name.toLowerCase(); +}); + +function isArraylike( obj ) { + var length = obj.length, + type = jQuery.type( obj ); + + if ( jQuery.isWindow( obj ) ) { + return false; + } + + if ( obj.nodeType === 1 && length ) { + return true; + } + + return type === "array" || type !== "function" && + ( length === 0 || + typeof length === "number" && length > 0 && ( length - 1 ) in obj ); +} + +// All jQuery objects should point back to these +rootjQuery = jQuery(document); +/*! + * Sizzle CSS Selector Engine v1.10.2 + * http://sizzlejs.com/ + * + * Copyright 2013 jQuery Foundation, Inc. and other contributors + * Released under the MIT license + * http://jquery.org/license + * + * Date: 2013-07-03 + */ +(function( window, undefined ) { + +var i, + support, + cachedruns, + Expr, + getText, + isXML, + compile, + outermostContext, + sortInput, + + // Local document vars + setDocument, + document, + docElem, + documentIsHTML, + rbuggyQSA, + rbuggyMatches, + matches, + contains, + + // Instance-specific data + expando = "sizzle" + -(new Date()), + preferredDoc = window.document, + dirruns = 0, + done = 0, + classCache = createCache(), + tokenCache = createCache(), + compilerCache = createCache(), + hasDuplicate = false, + sortOrder = function( a, b ) { + if ( a === b ) { + hasDuplicate = true; + return 0; + } + return 0; + }, + + // General-purpose constants + strundefined = typeof undefined, + MAX_NEGATIVE = 1 << 31, + + // Instance methods + hasOwn = ({}).hasOwnProperty, + arr = [], + pop = arr.pop, + push_native = arr.push, + push = arr.push, + slice = arr.slice, + // Use a stripped-down indexOf if we can't use a native one + indexOf = arr.indexOf || function( elem ) { + var i = 0, + len = this.length; + for ( ; i < len; i++ ) { + if ( this[i] === elem ) { + return i; + } + } + return -1; + }, + + booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", + + // Regular expressions + + // Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace + whitespace = "[\\x20\\t\\r\\n\\f]", + // http://www.w3.org/TR/css3-syntax/#characters + characterEncoding = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", + + // Loosely modeled on CSS identifier characters + // An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors + // Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier + identifier = characterEncoding.replace( "w", "w#" ), + + // Acceptable operators http://www.w3.org/TR/selectors/#attribute-selectors + attributes = "\\[" + whitespace + "*(" + characterEncoding + ")" + whitespace + + "*(?:([*^$|!~]?=)" + whitespace + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + identifier + ")|)|)" + whitespace + "*\\]", + + // Prefer arguments quoted, + // then not containing pseudos/brackets, + // then attribute selectors/non-parenthetical expressions, + // then anything else + // These preferences are here to reduce the number of selectors + // needing tokenize in the PSEUDO preFilter + pseudos = ":(" + characterEncoding + ")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|" + attributes.replace( 3, 8 ) + ")*)|.*)\\)|)", + + // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), + + rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), + rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), + + rsibling = new RegExp( whitespace + "*[+~]" ), + rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*)" + whitespace + "*\\]", "g" ), + + rpseudo = new RegExp( pseudos ), + ridentifier = new RegExp( "^" + identifier + "$" ), + + matchExpr = { + "ID": new RegExp( "^#(" + characterEncoding + ")" ), + "CLASS": new RegExp( "^\\.(" + characterEncoding + ")" ), + "TAG": new RegExp( "^(" + characterEncoding.replace( "w", "w*" ) + ")" ), + "ATTR": new RegExp( "^" + attributes ), + "PSEUDO": new RegExp( "^" + pseudos ), + "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), + // For use in libraries implementing .is() + // We use this for POS matching in `select` + "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + + whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + }, + + rnative = /^[^{]+\{\s*\[native \w/, + + // Easily-parseable/retrievable ID or TAG or CLASS selectors + rquickExpr = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + + rinputs = /^(?:input|select|textarea|button)$/i, + rheader = /^h\d$/i, + + rescape = /'|\\/g, + + // CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters + runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), + funescape = function( _, escaped, escapedWhitespace ) { + var high = "0x" + escaped - 0x10000; + // NaN means non-codepoint + // Support: Firefox + // Workaround erroneous numeric interpretation of +"0x" + return high !== high || escapedWhitespace ? + escaped : + // BMP codepoint + high < 0 ? + String.fromCharCode( high + 0x10000 ) : + // Supplemental Plane codepoint (surrogate pair) + String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); + }; + +// Optimize for push.apply( _, NodeList ) +try { + push.apply( + (arr = slice.call( preferredDoc.childNodes )), + preferredDoc.childNodes + ); + // Support: Android<4.0 + // Detect silently failing push.apply + arr[ preferredDoc.childNodes.length ].nodeType; +} catch ( e ) { + push = { apply: arr.length ? + + // Leverage slice if possible + function( target, els ) { + push_native.apply( target, slice.call(els) ); + } : + + // Support: IE<9 + // Otherwise append directly + function( target, els ) { + var j = target.length, + i = 0; + // Can't trust NodeList.length + while ( (target[j++] = els[i++]) ) {} + target.length = j - 1; + } + }; +} + +function Sizzle( selector, context, results, seed ) { + var match, elem, m, nodeType, + // QSA vars + i, groups, old, nid, newContext, newSelector; + + if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { + setDocument( context ); + } + + context = context || document; + results = results || []; + + if ( !selector || typeof selector !== "string" ) { + return results; + } + + if ( (nodeType = context.nodeType) !== 1 && nodeType !== 9 ) { + return []; + } + + if ( documentIsHTML && !seed ) { + + // Shortcuts + if ( (match = rquickExpr.exec( selector )) ) { + // Speed-up: Sizzle("#ID") + if ( (m = match[1]) ) { + if ( nodeType === 9 ) { + elem = context.getElementById( m ); + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + if ( elem && elem.parentNode ) { + // Handle the case where IE, Opera, and Webkit return items + // by name instead of ID + if ( elem.id === m ) { + results.push( elem ); + return results; + } + } else { + return results; + } + } else { + // Context is not a document + if ( context.ownerDocument && (elem = context.ownerDocument.getElementById( m )) && + contains( context, elem ) && elem.id === m ) { + results.push( elem ); + return results; + } + } + + // Speed-up: Sizzle("TAG") + } else if ( match[2] ) { + push.apply( results, context.getElementsByTagName( selector ) ); + return results; + + // Speed-up: Sizzle(".CLASS") + } else if ( (m = match[3]) && support.getElementsByClassName && context.getElementsByClassName ) { + push.apply( results, context.getElementsByClassName( m ) ); + return results; + } + } + + // QSA path + if ( support.qsa && (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { + nid = old = expando; + newContext = context; + newSelector = nodeType === 9 && selector; + + // qSA works strangely on Element-rooted queries + // We can work around this by specifying an extra ID on the root + // and working up from there (Thanks to Andrew Dupont for the technique) + // IE 8 doesn't work on object elements + if ( nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) { + groups = tokenize( selector ); + + if ( (old = context.getAttribute("id")) ) { + nid = old.replace( rescape, "\\$&" ); + } else { + context.setAttribute( "id", nid ); + } + nid = "[id='" + nid + "'] "; + + i = groups.length; + while ( i-- ) { + groups[i] = nid + toSelector( groups[i] ); + } + newContext = rsibling.test( selector ) && context.parentNode || context; + newSelector = groups.join(","); + } + + if ( newSelector ) { + try { + push.apply( results, + newContext.querySelectorAll( newSelector ) + ); + return results; + } catch(qsaError) { + } finally { + if ( !old ) { + context.removeAttribute("id"); + } + } + } + } + } + + // All others + return select( selector.replace( rtrim, "$1" ), context, results, seed ); +} + +/** + * Create key-value caches of limited size + * @returns {Function(string, Object)} Returns the Object data after storing it on itself with + * property name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength) + * deleting the oldest entry + */ +function createCache() { + var keys = []; + + function cache( key, value ) { + // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) + if ( keys.push( key += " " ) > Expr.cacheLength ) { + // Only keep the most recent entries + delete cache[ keys.shift() ]; + } + return (cache[ key ] = value); + } + return cache; +} + +/** + * Mark a function for special use by Sizzle + * @param {Function} fn The function to mark + */ +function markFunction( fn ) { + fn[ expando ] = true; + return fn; +} + +/** + * Support testing using an element + * @param {Function} fn Passed the created div and expects a boolean result + */ +function assert( fn ) { + var div = document.createElement("div"); + + try { + return !!fn( div ); + } catch (e) { + return false; + } finally { + // Remove from its parent by default + if ( div.parentNode ) { + div.parentNode.removeChild( div ); + } + // release memory in IE + div = null; + } +} + +/** + * Adds the same handler for all of the specified attrs + * @param {String} attrs Pipe-separated list of attributes + * @param {Function} handler The method that will be applied + */ +function addHandle( attrs, handler ) { + var arr = attrs.split("|"), + i = attrs.length; + + while ( i-- ) { + Expr.attrHandle[ arr[i] ] = handler; + } +} + +/** + * Checks document order of two siblings + * @param {Element} a + * @param {Element} b + * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b + */ +function siblingCheck( a, b ) { + var cur = b && a, + diff = cur && a.nodeType === 1 && b.nodeType === 1 && + ( ~b.sourceIndex || MAX_NEGATIVE ) - + ( ~a.sourceIndex || MAX_NEGATIVE ); + + // Use IE sourceIndex if available on both nodes + if ( diff ) { + return diff; + } + + // Check if b follows a + if ( cur ) { + while ( (cur = cur.nextSibling) ) { + if ( cur === b ) { + return -1; + } + } + } + + return a ? 1 : -1; +} + +/** + * Returns a function to use in pseudos for input types + * @param {String} type + */ +function createInputPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for buttons + * @param {String} type + */ +function createButtonPseudo( type ) { + return function( elem ) { + var name = elem.nodeName.toLowerCase(); + return (name === "input" || name === "button") && elem.type === type; + }; +} + +/** + * Returns a function to use in pseudos for positionals + * @param {Function} fn + */ +function createPositionalPseudo( fn ) { + return markFunction(function( argument ) { + argument = +argument; + return markFunction(function( seed, matches ) { + var j, + matchIndexes = fn( [], seed.length, argument ), + i = matchIndexes.length; + + // Match elements found at the specified indexes + while ( i-- ) { + if ( seed[ (j = matchIndexes[i]) ] ) { + seed[j] = !(matches[j] = seed[j]); + } + } + }); + }); +} + +/** + * Detect xml + * @param {Element|Object} elem An element or a document + */ +isXML = Sizzle.isXML = function( elem ) { + // documentElement is verified for cases where it doesn't yet exist + // (such as loading iframes in IE - #4833) + var documentElement = elem && (elem.ownerDocument || elem).documentElement; + return documentElement ? documentElement.nodeName !== "HTML" : false; +}; + +// Expose support vars for convenience +support = Sizzle.support = {}; + +/** + * Sets document-related variables once based on the current document + * @param {Element|Object} [doc] An element or document object to use to set the document + * @returns {Object} Returns the current document + */ +setDocument = Sizzle.setDocument = function( node ) { + var doc = node ? node.ownerDocument || node : preferredDoc, + parent = doc.defaultView; + + // If no document and documentElement is available, return + if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { + return document; + } + + // Set our document + document = doc; + docElem = doc.documentElement; + + // Support tests + documentIsHTML = !isXML( doc ); + + // Support: IE>8 + // If iframe document is assigned to "document" variable and if iframe has been reloaded, + // IE will throw "permission denied" error when accessing "document" variable, see jQuery #13936 + // IE6-8 do not support the defaultView property so parent will be undefined + if ( parent && parent.attachEvent && parent !== parent.top ) { + parent.attachEvent( "onbeforeunload", function() { + setDocument(); + }); + } + + /* Attributes + ---------------------------------------------------------------------- */ + + // Support: IE<8 + // Verify that getAttribute really returns attributes and not properties (excepting IE8 booleans) + support.attributes = assert(function( div ) { + div.className = "i"; + return !div.getAttribute("className"); + }); + + /* getElement(s)By* + ---------------------------------------------------------------------- */ + + // Check if getElementsByTagName("*") returns only elements + support.getElementsByTagName = assert(function( div ) { + div.appendChild( doc.createComment("") ); + return !div.getElementsByTagName("*").length; + }); + + // Check if getElementsByClassName can be trusted + support.getElementsByClassName = assert(function( div ) { + div.innerHTML = "
    "; + + // Support: Safari<4 + // Catch class over-caching + div.firstChild.className = "i"; + // Support: Opera<10 + // Catch gEBCN failure to find non-leading classes + return div.getElementsByClassName("i").length === 2; + }); + + // Support: IE<10 + // Check if getElementById returns elements by name + // The broken getElementById methods don't pick up programatically-set names, + // so use a roundabout getElementsByName test + support.getById = assert(function( div ) { + docElem.appendChild( div ).id = expando; + return !doc.getElementsByName || !doc.getElementsByName( expando ).length; + }); + + // ID find and filter + if ( support.getById ) { + Expr.find["ID"] = function( id, context ) { + if ( typeof context.getElementById !== strundefined && documentIsHTML ) { + var m = context.getElementById( id ); + // Check parentNode to catch when Blackberry 4.6 returns + // nodes that are no longer in the document #6963 + return m && m.parentNode ? [m] : []; + } + }; + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + return elem.getAttribute("id") === attrId; + }; + }; + } else { + // Support: IE6/7 + // getElementById is not reliable as a find shortcut + delete Expr.find["ID"]; + + Expr.filter["ID"] = function( id ) { + var attrId = id.replace( runescape, funescape ); + return function( elem ) { + var node = typeof elem.getAttributeNode !== strundefined && elem.getAttributeNode("id"); + return node && node.value === attrId; + }; + }; + } + + // Tag + Expr.find["TAG"] = support.getElementsByTagName ? + function( tag, context ) { + if ( typeof context.getElementsByTagName !== strundefined ) { + return context.getElementsByTagName( tag ); + } + } : + function( tag, context ) { + var elem, + tmp = [], + i = 0, + results = context.getElementsByTagName( tag ); + + // Filter out possible comments + if ( tag === "*" ) { + while ( (elem = results[i++]) ) { + if ( elem.nodeType === 1 ) { + tmp.push( elem ); + } + } + + return tmp; + } + return results; + }; + + // Class + Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { + if ( typeof context.getElementsByClassName !== strundefined && documentIsHTML ) { + return context.getElementsByClassName( className ); + } + }; + + /* QSA/matchesSelector + ---------------------------------------------------------------------- */ + + // QSA and matchesSelector support + + // matchesSelector(:active) reports false when true (IE9/Opera 11.5) + rbuggyMatches = []; + + // qSa(:focus) reports false when true (Chrome 21) + // We allow this because of a bug in IE8/9 that throws an error + // whenever `document.activeElement` is accessed on an iframe + // So, we allow :focus to pass through QSA all the time to avoid the IE error + // See http://bugs.jquery.com/ticket/13378 + rbuggyQSA = []; + + if ( (support.qsa = rnative.test( doc.querySelectorAll )) ) { + // Build QSA regex + // Regex strategy adopted from Diego Perini + assert(function( div ) { + // Select is set to empty string on purpose + // This is to test IE's treatment of not explicitly + // setting a boolean content attribute, + // since its presence should be enough + // http://bugs.jquery.com/ticket/12359 + div.innerHTML = ""; + + // Support: IE8 + // Boolean attributes and "value" are not treated correctly + if ( !div.querySelectorAll("[selected]").length ) { + rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); + } + + // Webkit/Opera - :checked should return selected option elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + // IE8 throws error here and will not see later tests + if ( !div.querySelectorAll(":checked").length ) { + rbuggyQSA.push(":checked"); + } + }); + + assert(function( div ) { + + // Support: Opera 10-12/IE8 + // ^= $= *= and empty values + // Should not select anything + // Support: Windows 8 Native Apps + // The type attribute is restricted during .innerHTML assignment + var input = doc.createElement("input"); + input.setAttribute( "type", "hidden" ); + div.appendChild( input ).setAttribute( "t", "" ); + + if ( div.querySelectorAll("[t^='']").length ) { + rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); + } + + // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) + // IE8 throws error here and will not see later tests + if ( !div.querySelectorAll(":enabled").length ) { + rbuggyQSA.push( ":enabled", ":disabled" ); + } + + // Opera 10-11 does not throw on post-comma invalid pseudos + div.querySelectorAll("*,:x"); + rbuggyQSA.push(",.*:"); + }); + } + + if ( (support.matchesSelector = rnative.test( (matches = docElem.webkitMatchesSelector || + docElem.mozMatchesSelector || + docElem.oMatchesSelector || + docElem.msMatchesSelector) )) ) { + + assert(function( div ) { + // Check to see if it's possible to do matchesSelector + // on a disconnected node (IE 9) + support.disconnectedMatch = matches.call( div, "div" ); + + // This should fail with an exception + // Gecko does not error, returns false instead + matches.call( div, "[s!='']:x" ); + rbuggyMatches.push( "!=", pseudos ); + }); + } + + rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); + rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); + + /* Contains + ---------------------------------------------------------------------- */ + + // Element contains another + // Purposefully does not implement inclusive descendent + // As in, an element does not contain itself + contains = rnative.test( docElem.contains ) || docElem.compareDocumentPosition ? + function( a, b ) { + var adown = a.nodeType === 9 ? a.documentElement : a, + bup = b && b.parentNode; + return a === bup || !!( bup && bup.nodeType === 1 && ( + adown.contains ? + adown.contains( bup ) : + a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 + )); + } : + function( a, b ) { + if ( b ) { + while ( (b = b.parentNode) ) { + if ( b === a ) { + return true; + } + } + } + return false; + }; + + /* Sorting + ---------------------------------------------------------------------- */ + + // Document order sorting + sortOrder = docElem.compareDocumentPosition ? + function( a, b ) { + + // Flag for duplicate removal + if ( a === b ) { + hasDuplicate = true; + return 0; + } + + var compare = b.compareDocumentPosition && a.compareDocumentPosition && a.compareDocumentPosition( b ); + + if ( compare ) { + // Disconnected nodes + if ( compare & 1 || + (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) { + + // Choose the first element that is related to our preferred document + if ( a === doc || contains(preferredDoc, a) ) { + return -1; + } + if ( b === doc || contains(preferredDoc, b) ) { + return 1; + } + + // Maintain original order + return sortInput ? + ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) : + 0; + } + + return compare & 4 ? -1 : 1; + } + + // Not directly comparable, sort on existence of method + return a.compareDocumentPosition ? -1 : 1; + } : + function( a, b ) { + var cur, + i = 0, + aup = a.parentNode, + bup = b.parentNode, + ap = [ a ], + bp = [ b ]; + + // Exit early if the nodes are identical + if ( a === b ) { + hasDuplicate = true; + return 0; + + // Parentless nodes are either documents or disconnected + } else if ( !aup || !bup ) { + return a === doc ? -1 : + b === doc ? 1 : + aup ? -1 : + bup ? 1 : + sortInput ? + ( indexOf.call( sortInput, a ) - indexOf.call( sortInput, b ) ) : + 0; + + // If the nodes are siblings, we can do a quick check + } else if ( aup === bup ) { + return siblingCheck( a, b ); + } + + // Otherwise we need full lists of their ancestors for comparison + cur = a; + while ( (cur = cur.parentNode) ) { + ap.unshift( cur ); + } + cur = b; + while ( (cur = cur.parentNode) ) { + bp.unshift( cur ); + } + + // Walk down the tree looking for a discrepancy + while ( ap[i] === bp[i] ) { + i++; + } + + return i ? + // Do a sibling check if the nodes have a common ancestor + siblingCheck( ap[i], bp[i] ) : + + // Otherwise nodes in our document sort first + ap[i] === preferredDoc ? -1 : + bp[i] === preferredDoc ? 1 : + 0; + }; + + return doc; +}; + +Sizzle.matches = function( expr, elements ) { + return Sizzle( expr, null, null, elements ); +}; + +Sizzle.matchesSelector = function( elem, expr ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + // Make sure that attribute selectors are quoted + expr = expr.replace( rattributeQuotes, "='$1']" ); + + if ( support.matchesSelector && documentIsHTML && + ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && + ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { + + try { + var ret = matches.call( elem, expr ); + + // IE 9's matchesSelector returns false on disconnected nodes + if ( ret || support.disconnectedMatch || + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { + return ret; + } + } catch(e) {} + } + + return Sizzle( expr, document, null, [elem] ).length > 0; +}; + +Sizzle.contains = function( context, elem ) { + // Set document vars if needed + if ( ( context.ownerDocument || context ) !== document ) { + setDocument( context ); + } + return contains( context, elem ); +}; + +Sizzle.attr = function( elem, name ) { + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + var fn = Expr.attrHandle[ name.toLowerCase() ], + // Don't get fooled by Object.prototype properties (jQuery #13807) + val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? + fn( elem, name, !documentIsHTML ) : + undefined; + + return val === undefined ? + support.attributes || !documentIsHTML ? + elem.getAttribute( name ) : + (val = elem.getAttributeNode(name)) && val.specified ? + val.value : + null : + val; +}; + +Sizzle.error = function( msg ) { + throw new Error( "Syntax error, unrecognized expression: " + msg ); +}; + +/** + * Document sorting and removing duplicates + * @param {ArrayLike} results + */ +Sizzle.uniqueSort = function( results ) { + var elem, + duplicates = [], + j = 0, + i = 0; + + // Unless we *know* we can detect duplicates, assume their presence + hasDuplicate = !support.detectDuplicates; + sortInput = !support.sortStable && results.slice( 0 ); + results.sort( sortOrder ); + + if ( hasDuplicate ) { + while ( (elem = results[i++]) ) { + if ( elem === results[ i ] ) { + j = duplicates.push( i ); + } + } + while ( j-- ) { + results.splice( duplicates[ j ], 1 ); + } + } + + return results; +}; + +/** + * Utility function for retrieving the text value of an array of DOM nodes + * @param {Array|Element} elem + */ +getText = Sizzle.getText = function( elem ) { + var node, + ret = "", + i = 0, + nodeType = elem.nodeType; + + if ( !nodeType ) { + // If no nodeType, this is expected to be an array + for ( ; (node = elem[i]); i++ ) { + // Do not traverse comment nodes + ret += getText( node ); + } + } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { + // Use textContent for elements + // innerText usage removed for consistency of new lines (see #11153) + if ( typeof elem.textContent === "string" ) { + return elem.textContent; + } else { + // Traverse its children + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + ret += getText( elem ); + } + } + } else if ( nodeType === 3 || nodeType === 4 ) { + return elem.nodeValue; + } + // Do not include comment or processing instruction nodes + + return ret; +}; + +Expr = Sizzle.selectors = { + + // Can be adjusted by the user + cacheLength: 50, + + createPseudo: markFunction, + + match: matchExpr, + + attrHandle: {}, + + find: {}, + + relative: { + ">": { dir: "parentNode", first: true }, + " ": { dir: "parentNode" }, + "+": { dir: "previousSibling", first: true }, + "~": { dir: "previousSibling" } + }, + + preFilter: { + "ATTR": function( match ) { + match[1] = match[1].replace( runescape, funescape ); + + // Move the given value to match[3] whether quoted or unquoted + match[3] = ( match[4] || match[5] || "" ).replace( runescape, funescape ); + + if ( match[2] === "~=" ) { + match[3] = " " + match[3] + " "; + } + + return match.slice( 0, 4 ); + }, + + "CHILD": function( match ) { + /* matches from matchExpr["CHILD"] + 1 type (only|nth|...) + 2 what (child|of-type) + 3 argument (even|odd|\d*|\d*n([+-]\d+)?|...) + 4 xn-component of xn+y argument ([+-]?\d*n|) + 5 sign of xn-component + 6 x of xn-component + 7 sign of y-component + 8 y of y-component + */ + match[1] = match[1].toLowerCase(); + + if ( match[1].slice( 0, 3 ) === "nth" ) { + // nth-* requires argument + if ( !match[3] ) { + Sizzle.error( match[0] ); + } + + // numeric x and y parameters for Expr.filter.CHILD + // remember that false/true cast respectively to 0/1 + match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); + match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); + + // other types prohibit arguments + } else if ( match[3] ) { + Sizzle.error( match[0] ); + } + + return match; + }, + + "PSEUDO": function( match ) { + var excess, + unquoted = !match[5] && match[2]; + + if ( matchExpr["CHILD"].test( match[0] ) ) { + return null; + } + + // Accept quoted arguments as-is + if ( match[3] && match[4] !== undefined ) { + match[2] = match[4]; + + // Strip excess characters from unquoted arguments + } else if ( unquoted && rpseudo.test( unquoted ) && + // Get excess from tokenize (recursively) + (excess = tokenize( unquoted, true )) && + // advance to the next closing parenthesis + (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { + + // excess is a negative index + match[0] = match[0].slice( 0, excess ); + match[2] = unquoted.slice( 0, excess ); + } + + // Return only captures needed by the pseudo filter method (type and argument) + return match.slice( 0, 3 ); + } + }, + + filter: { + + "TAG": function( nodeNameSelector ) { + var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); + return nodeNameSelector === "*" ? + function() { return true; } : + function( elem ) { + return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; + }; + }, + + "CLASS": function( className ) { + var pattern = classCache[ className + " " ]; + + return pattern || + (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && + classCache( className, function( elem ) { + return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== strundefined && elem.getAttribute("class") || "" ); + }); + }, + + "ATTR": function( name, operator, check ) { + return function( elem ) { + var result = Sizzle.attr( elem, name ); + + if ( result == null ) { + return operator === "!="; + } + if ( !operator ) { + return true; + } + + result += ""; + + return operator === "=" ? result === check : + operator === "!=" ? result !== check : + operator === "^=" ? check && result.indexOf( check ) === 0 : + operator === "*=" ? check && result.indexOf( check ) > -1 : + operator === "$=" ? check && result.slice( -check.length ) === check : + operator === "~=" ? ( " " + result + " " ).indexOf( check ) > -1 : + operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : + false; + }; + }, + + "CHILD": function( type, what, argument, first, last ) { + var simple = type.slice( 0, 3 ) !== "nth", + forward = type.slice( -4 ) !== "last", + ofType = what === "of-type"; + + return first === 1 && last === 0 ? + + // Shortcut for :nth-*(n) + function( elem ) { + return !!elem.parentNode; + } : + + function( elem, context, xml ) { + var cache, outerCache, node, diff, nodeIndex, start, + dir = simple !== forward ? "nextSibling" : "previousSibling", + parent = elem.parentNode, + name = ofType && elem.nodeName.toLowerCase(), + useCache = !xml && !ofType; + + if ( parent ) { + + // :(first|last|only)-(child|of-type) + if ( simple ) { + while ( dir ) { + node = elem; + while ( (node = node[ dir ]) ) { + if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) { + return false; + } + } + // Reverse direction for :only-* (if we haven't yet done so) + start = dir = type === "only" && !start && "nextSibling"; + } + return true; + } + + start = [ forward ? parent.firstChild : parent.lastChild ]; + + // non-xml :nth-child(...) stores cache data on `parent` + if ( forward && useCache ) { + // Seek `elem` from a previously-cached index + outerCache = parent[ expando ] || (parent[ expando ] = {}); + cache = outerCache[ type ] || []; + nodeIndex = cache[0] === dirruns && cache[1]; + diff = cache[0] === dirruns && cache[2]; + node = nodeIndex && parent.childNodes[ nodeIndex ]; + + while ( (node = ++nodeIndex && node && node[ dir ] || + + // Fallback to seeking `elem` from the start + (diff = nodeIndex = 0) || start.pop()) ) { + + // When found, cache indexes on `parent` and break + if ( node.nodeType === 1 && ++diff && node === elem ) { + outerCache[ type ] = [ dirruns, nodeIndex, diff ]; + break; + } + } + + // Use previously-cached element index if available + } else if ( useCache && (cache = (elem[ expando ] || (elem[ expando ] = {}))[ type ]) && cache[0] === dirruns ) { + diff = cache[1]; + + // xml :nth-child(...) or :nth-last-child(...) or :nth(-last)?-of-type(...) + } else { + // Use the same loop as above to seek `elem` from the start + while ( (node = ++nodeIndex && node && node[ dir ] || + (diff = nodeIndex = 0) || start.pop()) ) { + + if ( ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) && ++diff ) { + // Cache the index of each encountered element + if ( useCache ) { + (node[ expando ] || (node[ expando ] = {}))[ type ] = [ dirruns, diff ]; + } + + if ( node === elem ) { + break; + } + } + } + } + + // Incorporate the offset, then check against cycle size + diff -= last; + return diff === first || ( diff % first === 0 && diff / first >= 0 ); + } + }; + }, + + "PSEUDO": function( pseudo, argument ) { + // pseudo-class names are case-insensitive + // http://www.w3.org/TR/selectors/#pseudo-classes + // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters + // Remember that setFilters inherits from pseudos + var args, + fn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] || + Sizzle.error( "unsupported pseudo: " + pseudo ); + + // The user may use createPseudo to indicate that + // arguments are needed to create the filter function + // just as Sizzle does + if ( fn[ expando ] ) { + return fn( argument ); + } + + // But maintain support for old signatures + if ( fn.length > 1 ) { + args = [ pseudo, pseudo, "", argument ]; + return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? + markFunction(function( seed, matches ) { + var idx, + matched = fn( seed, argument ), + i = matched.length; + while ( i-- ) { + idx = indexOf.call( seed, matched[i] ); + seed[ idx ] = !( matches[ idx ] = matched[i] ); + } + }) : + function( elem ) { + return fn( elem, 0, args ); + }; + } + + return fn; + } + }, + + pseudos: { + // Potentially complex pseudos + "not": markFunction(function( selector ) { + // Trim the selector passed to compile + // to avoid treating leading and trailing + // spaces as combinators + var input = [], + results = [], + matcher = compile( selector.replace( rtrim, "$1" ) ); + + return matcher[ expando ] ? + markFunction(function( seed, matches, context, xml ) { + var elem, + unmatched = matcher( seed, null, xml, [] ), + i = seed.length; + + // Match elements unmatched by `matcher` + while ( i-- ) { + if ( (elem = unmatched[i]) ) { + seed[i] = !(matches[i] = elem); + } + } + }) : + function( elem, context, xml ) { + input[0] = elem; + matcher( input, null, xml, results ); + return !results.pop(); + }; + }), + + "has": markFunction(function( selector ) { + return function( elem ) { + return Sizzle( selector, elem ).length > 0; + }; + }), + + "contains": markFunction(function( text ) { + return function( elem ) { + return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; + }; + }), + + // "Whether an element is represented by a :lang() selector + // is based solely on the element's language value + // being equal to the identifier C, + // or beginning with the identifier C immediately followed by "-". + // The matching of C against the element's language value is performed case-insensitively. + // The identifier C does not have to be a valid language name." + // http://www.w3.org/TR/selectors/#lang-pseudo + "lang": markFunction( function( lang ) { + // lang value must be a valid identifier + if ( !ridentifier.test(lang || "") ) { + Sizzle.error( "unsupported lang: " + lang ); + } + lang = lang.replace( runescape, funescape ).toLowerCase(); + return function( elem ) { + var elemLang; + do { + if ( (elemLang = documentIsHTML ? + elem.lang : + elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) { + + elemLang = elemLang.toLowerCase(); + return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; + } + } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); + return false; + }; + }), + + // Miscellaneous + "target": function( elem ) { + var hash = window.location && window.location.hash; + return hash && hash.slice( 1 ) === elem.id; + }, + + "root": function( elem ) { + return elem === docElem; + }, + + "focus": function( elem ) { + return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); + }, + + // Boolean properties + "enabled": function( elem ) { + return elem.disabled === false; + }, + + "disabled": function( elem ) { + return elem.disabled === true; + }, + + "checked": function( elem ) { + // In CSS3, :checked should return both checked and selected elements + // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked + var nodeName = elem.nodeName.toLowerCase(); + return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); + }, + + "selected": function( elem ) { + // Accessing this property makes selected-by-default + // options in Safari work properly + if ( elem.parentNode ) { + elem.parentNode.selectedIndex; + } + + return elem.selected === true; + }, + + // Contents + "empty": function( elem ) { + // http://www.w3.org/TR/selectors/#empty-pseudo + // :empty is only affected by element nodes and content nodes(including text(3), cdata(4)), + // not comment, processing instructions, or others + // Thanks to Diego Perini for the nodeName shortcut + // Greater than "@" means alpha characters (specifically not starting with "#" or "?") + for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { + if ( elem.nodeName > "@" || elem.nodeType === 3 || elem.nodeType === 4 ) { + return false; + } + } + return true; + }, + + "parent": function( elem ) { + return !Expr.pseudos["empty"]( elem ); + }, + + // Element/input types + "header": function( elem ) { + return rheader.test( elem.nodeName ); + }, + + "input": function( elem ) { + return rinputs.test( elem.nodeName ); + }, + + "button": function( elem ) { + var name = elem.nodeName.toLowerCase(); + return name === "input" && elem.type === "button" || name === "button"; + }, + + "text": function( elem ) { + var attr; + // IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc) + // use getAttribute instead to test this case + return elem.nodeName.toLowerCase() === "input" && + elem.type === "text" && + ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === elem.type ); + }, + + // Position-in-collection + "first": createPositionalPseudo(function() { + return [ 0 ]; + }), + + "last": createPositionalPseudo(function( matchIndexes, length ) { + return [ length - 1 ]; + }), + + "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { + return [ argument < 0 ? argument + length : argument ]; + }), + + "even": createPositionalPseudo(function( matchIndexes, length ) { + var i = 0; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "odd": createPositionalPseudo(function( matchIndexes, length ) { + var i = 1; + for ( ; i < length; i += 2 ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; --i >= 0; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }), + + "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; + for ( ; ++i < length; ) { + matchIndexes.push( i ); + } + return matchIndexes; + }) + } +}; + +Expr.pseudos["nth"] = Expr.pseudos["eq"]; + +// Add button/input type pseudos +for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { + Expr.pseudos[ i ] = createInputPseudo( i ); +} +for ( i in { submit: true, reset: true } ) { + Expr.pseudos[ i ] = createButtonPseudo( i ); +} + +// Easy API for creating new setFilters +function setFilters() {} +setFilters.prototype = Expr.filters = Expr.pseudos; +Expr.setFilters = new setFilters(); + +function tokenize( selector, parseOnly ) { + var matched, match, tokens, type, + soFar, groups, preFilters, + cached = tokenCache[ selector + " " ]; + + if ( cached ) { + return parseOnly ? 0 : cached.slice( 0 ); + } + + soFar = selector; + groups = []; + preFilters = Expr.preFilter; + + while ( soFar ) { + + // Comma and first run + if ( !matched || (match = rcomma.exec( soFar )) ) { + if ( match ) { + // Don't consume trailing commas as valid + soFar = soFar.slice( match[0].length ) || soFar; + } + groups.push( tokens = [] ); + } + + matched = false; + + // Combinators + if ( (match = rcombinators.exec( soFar )) ) { + matched = match.shift(); + tokens.push({ + value: matched, + // Cast descendant combinators to space + type: match[0].replace( rtrim, " " ) + }); + soFar = soFar.slice( matched.length ); + } + + // Filters + for ( type in Expr.filter ) { + if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || + (match = preFilters[ type ]( match ))) ) { + matched = match.shift(); + tokens.push({ + value: matched, + type: type, + matches: match + }); + soFar = soFar.slice( matched.length ); + } + } + + if ( !matched ) { + break; + } + } + + // Return the length of the invalid excess + // if we're just parsing + // Otherwise, throw an error or return tokens + return parseOnly ? + soFar.length : + soFar ? + Sizzle.error( selector ) : + // Cache the tokens + tokenCache( selector, groups ).slice( 0 ); +} + +function toSelector( tokens ) { + var i = 0, + len = tokens.length, + selector = ""; + for ( ; i < len; i++ ) { + selector += tokens[i].value; + } + return selector; +} + +function addCombinator( matcher, combinator, base ) { + var dir = combinator.dir, + checkNonElements = base && dir === "parentNode", + doneName = done++; + + return combinator.first ? + // Check against closest ancestor/preceding element + function( elem, context, xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + return matcher( elem, context, xml ); + } + } + } : + + // Check against all ancestor/preceding elements + function( elem, context, xml ) { + var data, cache, outerCache, + dirkey = dirruns + " " + doneName; + + // We can't set arbitrary data on XML nodes, so they don't benefit from dir caching + if ( xml ) { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + if ( matcher( elem, context, xml ) ) { + return true; + } + } + } + } else { + while ( (elem = elem[ dir ]) ) { + if ( elem.nodeType === 1 || checkNonElements ) { + outerCache = elem[ expando ] || (elem[ expando ] = {}); + if ( (cache = outerCache[ dir ]) && cache[0] === dirkey ) { + if ( (data = cache[1]) === true || data === cachedruns ) { + return data === true; + } + } else { + cache = outerCache[ dir ] = [ dirkey ]; + cache[1] = matcher( elem, context, xml ) || cachedruns; + if ( cache[1] === true ) { + return true; + } + } + } + } + } + }; +} + +function elementMatcher( matchers ) { + return matchers.length > 1 ? + function( elem, context, xml ) { + var i = matchers.length; + while ( i-- ) { + if ( !matchers[i]( elem, context, xml ) ) { + return false; + } + } + return true; + } : + matchers[0]; +} + +function condense( unmatched, map, filter, context, xml ) { + var elem, + newUnmatched = [], + i = 0, + len = unmatched.length, + mapped = map != null; + + for ( ; i < len; i++ ) { + if ( (elem = unmatched[i]) ) { + if ( !filter || filter( elem, context, xml ) ) { + newUnmatched.push( elem ); + if ( mapped ) { + map.push( i ); + } + } + } + } + + return newUnmatched; +} + +function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) { + if ( postFilter && !postFilter[ expando ] ) { + postFilter = setMatcher( postFilter ); + } + if ( postFinder && !postFinder[ expando ] ) { + postFinder = setMatcher( postFinder, postSelector ); + } + return markFunction(function( seed, results, context, xml ) { + var temp, i, elem, + preMap = [], + postMap = [], + preexisting = results.length, + + // Get initial elements from seed or context + elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), + + // Prefilter to get matcher input, preserving a map for seed-results synchronization + matcherIn = preFilter && ( seed || !selector ) ? + condense( elems, preMap, preFilter, context, xml ) : + elems, + + matcherOut = matcher ? + // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, + postFinder || ( seed ? preFilter : preexisting || postFilter ) ? + + // ...intermediate processing is necessary + [] : + + // ...otherwise use results directly + results : + matcherIn; + + // Find primary matches + if ( matcher ) { + matcher( matcherIn, matcherOut, context, xml ); + } + + // Apply postFilter + if ( postFilter ) { + temp = condense( matcherOut, postMap ); + postFilter( temp, [], context, xml ); + + // Un-match failing elements by moving them back to matcherIn + i = temp.length; + while ( i-- ) { + if ( (elem = temp[i]) ) { + matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); + } + } + } + + if ( seed ) { + if ( postFinder || preFilter ) { + if ( postFinder ) { + // Get the final matcherOut by condensing this intermediate into postFinder contexts + temp = []; + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) ) { + // Restore matcherIn since elem is not yet a final match + temp.push( (matcherIn[i] = elem) ); + } + } + postFinder( null, (matcherOut = []), temp, xml ); + } + + // Move matched elements from seed to results to keep them synchronized + i = matcherOut.length; + while ( i-- ) { + if ( (elem = matcherOut[i]) && + (temp = postFinder ? indexOf.call( seed, elem ) : preMap[i]) > -1 ) { + + seed[temp] = !(results[temp] = elem); + } + } + } + + // Add elements to results, through postFinder if defined + } else { + matcherOut = condense( + matcherOut === results ? + matcherOut.splice( preexisting, matcherOut.length ) : + matcherOut + ); + if ( postFinder ) { + postFinder( null, results, matcherOut, xml ); + } else { + push.apply( results, matcherOut ); + } + } + }); +} + +function matcherFromTokens( tokens ) { + var checkContext, matcher, j, + len = tokens.length, + leadingRelative = Expr.relative[ tokens[0].type ], + implicitRelative = leadingRelative || Expr.relative[" "], + i = leadingRelative ? 1 : 0, + + // The foundational matcher ensures that elements are reachable from top-level context(s) + matchContext = addCombinator( function( elem ) { + return elem === checkContext; + }, implicitRelative, true ), + matchAnyContext = addCombinator( function( elem ) { + return indexOf.call( checkContext, elem ) > -1; + }, implicitRelative, true ), + matchers = [ function( elem, context, xml ) { + return ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( + (checkContext = context).nodeType ? + matchContext( elem, context, xml ) : + matchAnyContext( elem, context, xml ) ); + } ]; + + for ( ; i < len; i++ ) { + if ( (matcher = Expr.relative[ tokens[i].type ]) ) { + matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; + } else { + matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); + + // Return special upon seeing a positional matcher + if ( matcher[ expando ] ) { + // Find the next relative operator (if any) for proper handling + j = ++i; + for ( ; j < len; j++ ) { + if ( Expr.relative[ tokens[j].type ] ) { + break; + } + } + return setMatcher( + i > 1 && elementMatcher( matchers ), + i > 1 && toSelector( + // If the preceding token was a descendant combinator, insert an implicit any-element `*` + tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" }) + ).replace( rtrim, "$1" ), + matcher, + i < j && matcherFromTokens( tokens.slice( i, j ) ), + j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), + j < len && toSelector( tokens ) + ); + } + matchers.push( matcher ); + } + } + + return elementMatcher( matchers ); +} + +function matcherFromGroupMatchers( elementMatchers, setMatchers ) { + // A counter to specify which element is currently being matched + var matcherCachedRuns = 0, + bySet = setMatchers.length > 0, + byElement = elementMatchers.length > 0, + superMatcher = function( seed, context, xml, results, expandContext ) { + var elem, j, matcher, + setMatched = [], + matchedCount = 0, + i = "0", + unmatched = seed && [], + outermost = expandContext != null, + contextBackup = outermostContext, + // We must always have either seed elements or context + elems = seed || byElement && Expr.find["TAG"]( "*", expandContext && context.parentNode || context ), + // Use integer dirruns iff this is the outermost matcher + dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1); + + if ( outermost ) { + outermostContext = context !== document && context; + cachedruns = matcherCachedRuns; + } + + // Add elements passing elementMatchers directly to results + // Keep `i` a string if there are no elements so `matchedCount` will be "00" below + for ( ; (elem = elems[i]) != null; i++ ) { + if ( byElement && elem ) { + j = 0; + while ( (matcher = elementMatchers[j++]) ) { + if ( matcher( elem, context, xml ) ) { + results.push( elem ); + break; + } + } + if ( outermost ) { + dirruns = dirrunsUnique; + cachedruns = ++matcherCachedRuns; + } + } + + // Track unmatched elements for set filters + if ( bySet ) { + // They will have gone through all possible matchers + if ( (elem = !matcher && elem) ) { + matchedCount--; + } + + // Lengthen the array for every element, matched or not + if ( seed ) { + unmatched.push( elem ); + } + } + } + + // Apply set filters to unmatched elements + matchedCount += i; + if ( bySet && i !== matchedCount ) { + j = 0; + while ( (matcher = setMatchers[j++]) ) { + matcher( unmatched, setMatched, context, xml ); + } + + if ( seed ) { + // Reintegrate element matches to eliminate the need for sorting + if ( matchedCount > 0 ) { + while ( i-- ) { + if ( !(unmatched[i] || setMatched[i]) ) { + setMatched[i] = pop.call( results ); + } + } + } + + // Discard index placeholder values to get only actual matches + setMatched = condense( setMatched ); + } + + // Add matches to results + push.apply( results, setMatched ); + + // Seedless set matches succeeding multiple successful matchers stipulate sorting + if ( outermost && !seed && setMatched.length > 0 && + ( matchedCount + setMatchers.length ) > 1 ) { + + Sizzle.uniqueSort( results ); + } + } + + // Override manipulation of globals by nested matchers + if ( outermost ) { + dirruns = dirrunsUnique; + outermostContext = contextBackup; + } + + return unmatched; + }; + + return bySet ? + markFunction( superMatcher ) : + superMatcher; +} + +compile = Sizzle.compile = function( selector, group /* Internal Use Only */ ) { + var i, + setMatchers = [], + elementMatchers = [], + cached = compilerCache[ selector + " " ]; + + if ( !cached ) { + // Generate a function of recursive functions that can be used to check each element + if ( !group ) { + group = tokenize( selector ); + } + i = group.length; + while ( i-- ) { + cached = matcherFromTokens( group[i] ); + if ( cached[ expando ] ) { + setMatchers.push( cached ); + } else { + elementMatchers.push( cached ); + } + } + + // Cache the compiled function + cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); + } + return cached; +}; + +function multipleContexts( selector, contexts, results ) { + var i = 0, + len = contexts.length; + for ( ; i < len; i++ ) { + Sizzle( selector, contexts[i], results ); + } + return results; +} + +function select( selector, context, results, seed ) { + var i, tokens, token, type, find, + match = tokenize( selector ); + + if ( !seed ) { + // Try to minimize operations if there is only one group + if ( match.length === 1 ) { + + // Take a shortcut and set the context if the root selector is an ID + tokens = match[0] = match[0].slice( 0 ); + if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && + support.getById && context.nodeType === 9 && documentIsHTML && + Expr.relative[ tokens[1].type ] ) { + + context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; + if ( !context ) { + return results; + } + selector = selector.slice( tokens.shift().value.length ); + } + + // Fetch a seed set for right-to-left matching + i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; + while ( i-- ) { + token = tokens[i]; + + // Abort if we hit a combinator + if ( Expr.relative[ (type = token.type) ] ) { + break; + } + if ( (find = Expr.find[ type ]) ) { + // Search, expanding context for leading sibling combinators + if ( (seed = find( + token.matches[0].replace( runescape, funescape ), + rsibling.test( tokens[0].type ) && context.parentNode || context + )) ) { + + // If seed is empty or no tokens remain, we can return early + tokens.splice( i, 1 ); + selector = seed.length && toSelector( tokens ); + if ( !selector ) { + push.apply( results, seed ); + return results; + } + + break; + } + } + } + } + } + + // Compile and execute a filtering function + // Provide `match` to avoid retokenization if we modified the selector above + compile( selector, match )( + seed, + context, + !documentIsHTML, + results, + rsibling.test( selector ) + ); + return results; +} + +// One-time assignments + +// Sort stability +support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; + +// Support: Chrome<14 +// Always assume duplicates if they aren't passed to the comparison function +support.detectDuplicates = hasDuplicate; + +// Initialize against the default document +setDocument(); + +// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) +// Detached nodes confoundingly follow *each other* +support.sortDetached = assert(function( div1 ) { + // Should return 1, but returns 4 (following) + return div1.compareDocumentPosition( document.createElement("div") ) & 1; +}); + +// Support: IE<8 +// Prevent attribute/property "interpolation" +// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx +if ( !assert(function( div ) { + div.innerHTML = ""; + return div.firstChild.getAttribute("href") === "#" ; +}) ) { + addHandle( "type|href|height|width", function( elem, name, isXML ) { + if ( !isXML ) { + return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); + } + }); +} + +// Support: IE<9 +// Use defaultValue in place of getAttribute("value") +if ( !support.attributes || !assert(function( div ) { + div.innerHTML = ""; + div.firstChild.setAttribute( "value", "" ); + return div.firstChild.getAttribute( "value" ) === ""; +}) ) { + addHandle( "value", function( elem, name, isXML ) { + if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { + return elem.defaultValue; + } + }); +} + +// Support: IE<9 +// Use getAttributeNode to fetch booleans when getAttribute lies +if ( !assert(function( div ) { + return div.getAttribute("disabled") == null; +}) ) { + addHandle( booleans, function( elem, name, isXML ) { + var val; + if ( !isXML ) { + return (val = elem.getAttributeNode( name )) && val.specified ? + val.value : + elem[ name ] === true ? name.toLowerCase() : null; + } + }); +} + +jQuery.find = Sizzle; +jQuery.expr = Sizzle.selectors; +jQuery.expr[":"] = jQuery.expr.pseudos; +jQuery.unique = Sizzle.uniqueSort; +jQuery.text = Sizzle.getText; +jQuery.isXMLDoc = Sizzle.isXML; +jQuery.contains = Sizzle.contains; + + +})( window ); +// String to Object options format cache +var optionsCache = {}; + +// Convert String-formatted options into Object-formatted ones and store in cache +function createOptions( options ) { + var object = optionsCache[ options ] = {}; + jQuery.each( options.match( core_rnotwhite ) || [], function( _, flag ) { + object[ flag ] = true; + }); + return object; +} + +/* + * Create a callback list using the following parameters: + * + * options: an optional list of space-separated options that will change how + * the callback list behaves or a more traditional option object + * + * By default a callback list will act like an event callback list and can be + * "fired" multiple times. + * + * Possible options: + * + * once: will ensure the callback list can only be fired once (like a Deferred) + * + * memory: will keep track of previous values and will call any callback added + * after the list has been fired right away with the latest "memorized" + * values (like a Deferred) + * + * unique: will ensure a callback can only be added once (no duplicate in the list) + * + * stopOnFalse: interrupt callings when a callback returns false + * + */ +jQuery.Callbacks = function( options ) { + + // Convert options from String-formatted to Object-formatted if needed + // (we check in cache first) + options = typeof options === "string" ? + ( optionsCache[ options ] || createOptions( options ) ) : + jQuery.extend( {}, options ); + + var // Flag to know if list is currently firing + firing, + // Last fire value (for non-forgettable lists) + memory, + // Flag to know if list was already fired + fired, + // End of the loop when firing + firingLength, + // Index of currently firing callback (modified by remove if needed) + firingIndex, + // First callback to fire (used internally by add and fireWith) + firingStart, + // Actual callback list + list = [], + // Stack of fire calls for repeatable lists + stack = !options.once && [], + // Fire callbacks + fire = function( data ) { + memory = options.memory && data; + fired = true; + firingIndex = firingStart || 0; + firingStart = 0; + firingLength = list.length; + firing = true; + for ( ; list && firingIndex < firingLength; firingIndex++ ) { + if ( list[ firingIndex ].apply( data[ 0 ], data[ 1 ] ) === false && options.stopOnFalse ) { + memory = false; // To prevent further calls using add + break; + } + } + firing = false; + if ( list ) { + if ( stack ) { + if ( stack.length ) { + fire( stack.shift() ); + } + } else if ( memory ) { + list = []; + } else { + self.disable(); + } + } + }, + // Actual Callbacks object + self = { + // Add a callback or a collection of callbacks to the list + add: function() { + if ( list ) { + // First, we save the current length + var start = list.length; + (function add( args ) { + jQuery.each( args, function( _, arg ) { + var type = jQuery.type( arg ); + if ( type === "function" ) { + if ( !options.unique || !self.has( arg ) ) { + list.push( arg ); + } + } else if ( arg && arg.length && type !== "string" ) { + // Inspect recursively + add( arg ); + } + }); + })( arguments ); + // Do we need to add the callbacks to the + // current firing batch? + if ( firing ) { + firingLength = list.length; + // With memory, if we're not firing then + // we should call right away + } else if ( memory ) { + firingStart = start; + fire( memory ); + } + } + return this; + }, + // Remove a callback from the list + remove: function() { + if ( list ) { + jQuery.each( arguments, function( _, arg ) { + var index; + while( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) { + list.splice( index, 1 ); + // Handle firing indexes + if ( firing ) { + if ( index <= firingLength ) { + firingLength--; + } + if ( index <= firingIndex ) { + firingIndex--; + } + } + } + }); + } + return this; + }, + // Check if a given callback is in the list. + // If no argument is given, return whether or not list has callbacks attached. + has: function( fn ) { + return fn ? jQuery.inArray( fn, list ) > -1 : !!( list && list.length ); + }, + // Remove all callbacks from the list + empty: function() { + list = []; + firingLength = 0; + return this; + }, + // Have the list do nothing anymore + disable: function() { + list = stack = memory = undefined; + return this; + }, + // Is it disabled? + disabled: function() { + return !list; + }, + // Lock the list in its current state + lock: function() { + stack = undefined; + if ( !memory ) { + self.disable(); + } + return this; + }, + // Is it locked? + locked: function() { + return !stack; + }, + // Call all callbacks with the given context and arguments + fireWith: function( context, args ) { + if ( list && ( !fired || stack ) ) { + args = args || []; + args = [ context, args.slice ? args.slice() : args ]; + if ( firing ) { + stack.push( args ); + } else { + fire( args ); + } + } + return this; + }, + // Call all the callbacks with the given arguments + fire: function() { + self.fireWith( this, arguments ); + return this; + }, + // To know if the callbacks have already been called at least once + fired: function() { + return !!fired; + } + }; + + return self; +}; +jQuery.extend({ + + Deferred: function( func ) { + var tuples = [ + // action, add listener, listener list, final state + [ "resolve", "done", jQuery.Callbacks("once memory"), "resolved" ], + [ "reject", "fail", jQuery.Callbacks("once memory"), "rejected" ], + [ "notify", "progress", jQuery.Callbacks("memory") ] + ], + state = "pending", + promise = { + state: function() { + return state; + }, + always: function() { + deferred.done( arguments ).fail( arguments ); + return this; + }, + then: function( /* fnDone, fnFail, fnProgress */ ) { + var fns = arguments; + return jQuery.Deferred(function( newDefer ) { + jQuery.each( tuples, function( i, tuple ) { + var action = tuple[ 0 ], + fn = jQuery.isFunction( fns[ i ] ) && fns[ i ]; + // deferred[ done | fail | progress ] for forwarding actions to newDefer + deferred[ tuple[1] ](function() { + var returned = fn && fn.apply( this, arguments ); + if ( returned && jQuery.isFunction( returned.promise ) ) { + returned.promise() + .done( newDefer.resolve ) + .fail( newDefer.reject ) + .progress( newDefer.notify ); + } else { + newDefer[ action + "With" ]( this === promise ? newDefer.promise() : this, fn ? [ returned ] : arguments ); + } + }); + }); + fns = null; + }).promise(); + }, + // Get a promise for this deferred + // If obj is provided, the promise aspect is added to the object + promise: function( obj ) { + return obj != null ? jQuery.extend( obj, promise ) : promise; + } + }, + deferred = {}; + + // Keep pipe for back-compat + promise.pipe = promise.then; + + // Add list-specific methods + jQuery.each( tuples, function( i, tuple ) { + var list = tuple[ 2 ], + stateString = tuple[ 3 ]; + + // promise[ done | fail | progress ] = list.add + promise[ tuple[1] ] = list.add; + + // Handle state + if ( stateString ) { + list.add(function() { + // state = [ resolved | rejected ] + state = stateString; + + // [ reject_list | resolve_list ].disable; progress_list.lock + }, tuples[ i ^ 1 ][ 2 ].disable, tuples[ 2 ][ 2 ].lock ); + } + + // deferred[ resolve | reject | notify ] + deferred[ tuple[0] ] = function() { + deferred[ tuple[0] + "With" ]( this === deferred ? promise : this, arguments ); + return this; + }; + deferred[ tuple[0] + "With" ] = list.fireWith; + }); + + // Make the deferred a promise + promise.promise( deferred ); + + // Call given func if any + if ( func ) { + func.call( deferred, deferred ); + } + + // All done! + return deferred; + }, + + // Deferred helper + when: function( subordinate /* , ..., subordinateN */ ) { + var i = 0, + resolveValues = core_slice.call( arguments ), + length = resolveValues.length, + + // the count of uncompleted subordinates + remaining = length !== 1 || ( subordinate && jQuery.isFunction( subordinate.promise ) ) ? length : 0, + + // the master Deferred. If resolveValues consist of only a single Deferred, just use that. + deferred = remaining === 1 ? subordinate : jQuery.Deferred(), + + // Update function for both resolve and progress values + updateFunc = function( i, contexts, values ) { + return function( value ) { + contexts[ i ] = this; + values[ i ] = arguments.length > 1 ? core_slice.call( arguments ) : value; + if( values === progressValues ) { + deferred.notifyWith( contexts, values ); + } else if ( !( --remaining ) ) { + deferred.resolveWith( contexts, values ); + } + }; + }, + + progressValues, progressContexts, resolveContexts; + + // add listeners to Deferred subordinates; treat others as resolved + if ( length > 1 ) { + progressValues = new Array( length ); + progressContexts = new Array( length ); + resolveContexts = new Array( length ); + for ( ; i < length; i++ ) { + if ( resolveValues[ i ] && jQuery.isFunction( resolveValues[ i ].promise ) ) { + resolveValues[ i ].promise() + .done( updateFunc( i, resolveContexts, resolveValues ) ) + .fail( deferred.reject ) + .progress( updateFunc( i, progressContexts, progressValues ) ); + } else { + --remaining; + } + } + } + + // if we're not waiting on anything, resolve the master + if ( !remaining ) { + deferred.resolveWith( resolveContexts, resolveValues ); + } + + return deferred.promise(); + } +}); +jQuery.support = (function( support ) { + + var all, a, input, select, fragment, opt, eventName, isSupported, i, + div = document.createElement("div"); + + // Setup + div.setAttribute( "className", "t" ); + div.innerHTML = "
    a"; + + // Finish early in limited (non-browser) environments + all = div.getElementsByTagName("*") || []; + a = div.getElementsByTagName("a")[ 0 ]; + if ( !a || !a.style || !all.length ) { + return support; + } + + // First batch of tests + select = document.createElement("select"); + opt = select.appendChild( document.createElement("option") ); + input = div.getElementsByTagName("input")[ 0 ]; + + a.style.cssText = "top:1px;float:left;opacity:.5"; + + // Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7) + support.getSetAttribute = div.className !== "t"; + + // IE strips leading whitespace when .innerHTML is used + support.leadingWhitespace = div.firstChild.nodeType === 3; + + // Make sure that tbody elements aren't automatically inserted + // IE will insert them into empty tables + support.tbody = !div.getElementsByTagName("tbody").length; + + // Make sure that link elements get serialized correctly by innerHTML + // This requires a wrapper element in IE + support.htmlSerialize = !!div.getElementsByTagName("link").length; + + // Get the style information from getAttribute + // (IE uses .cssText instead) + support.style = /top/.test( a.getAttribute("style") ); + + // Make sure that URLs aren't manipulated + // (IE normalizes it by default) + support.hrefNormalized = a.getAttribute("href") === "/a"; + + // Make sure that element opacity exists + // (IE uses filter instead) + // Use a regex to work around a WebKit issue. See #5145 + support.opacity = /^0.5/.test( a.style.opacity ); + + // Verify style float existence + // (IE uses styleFloat instead of cssFloat) + support.cssFloat = !!a.style.cssFloat; + + // Check the default checkbox/radio value ("" on WebKit; "on" elsewhere) + support.checkOn = !!input.value; + + // Make sure that a selected-by-default option has a working selected property. + // (WebKit defaults to false instead of true, IE too, if it's in an optgroup) + support.optSelected = opt.selected; + + // Tests for enctype support on a form (#6743) + support.enctype = !!document.createElement("form").enctype; + + // Makes sure cloning an html5 element does not cause problems + // Where outerHTML is undefined, this still works + support.html5Clone = document.createElement("nav").cloneNode( true ).outerHTML !== "<:nav>"; + + // Will be defined later + support.inlineBlockNeedsLayout = false; + support.shrinkWrapBlocks = false; + support.pixelPosition = false; + support.deleteExpando = true; + support.noCloneEvent = true; + support.reliableMarginRight = true; + support.boxSizingReliable = true; + + // Make sure checked status is properly cloned + input.checked = true; + support.noCloneChecked = input.cloneNode( true ).checked; + + // Make sure that the options inside disabled selects aren't marked as disabled + // (WebKit marks them as disabled) + select.disabled = true; + support.optDisabled = !opt.disabled; + + // Support: IE<9 + try { + delete div.test; + } catch( e ) { + support.deleteExpando = false; + } + + // Check if we can trust getAttribute("value") + input = document.createElement("input"); + input.setAttribute( "value", "" ); + support.input = input.getAttribute( "value" ) === ""; + + // Check if an input maintains its value after becoming a radio + input.value = "t"; + input.setAttribute( "type", "radio" ); + support.radioValue = input.value === "t"; + + // #11217 - WebKit loses check when the name is after the checked attribute + input.setAttribute( "checked", "t" ); + input.setAttribute( "name", "t" ); + + fragment = document.createDocumentFragment(); + fragment.appendChild( input ); + + // Check if a disconnected checkbox will retain its checked + // value of true after appended to the DOM (IE6/7) + support.appendChecked = input.checked; + + // WebKit doesn't clone checked state correctly in fragments + support.checkClone = fragment.cloneNode( true ).cloneNode( true ).lastChild.checked; + + // Support: IE<9 + // Opera does not clone events (and typeof div.attachEvent === undefined). + // IE9-10 clones events bound via attachEvent, but they don't trigger with .click() + if ( div.attachEvent ) { + div.attachEvent( "onclick", function() { + support.noCloneEvent = false; + }); + + div.cloneNode( true ).click(); + } + + // Support: IE<9 (lack submit/change bubble), Firefox 17+ (lack focusin event) + // Beware of CSP restrictions (https://developer.mozilla.org/en/Security/CSP) + for ( i in { submit: true, change: true, focusin: true }) { + div.setAttribute( eventName = "on" + i, "t" ); + + support[ i + "Bubbles" ] = eventName in window || div.attributes[ eventName ].expando === false; + } + + div.style.backgroundClip = "content-box"; + div.cloneNode( true ).style.backgroundClip = ""; + support.clearCloneStyle = div.style.backgroundClip === "content-box"; + + // Support: IE<9 + // Iteration over object's inherited properties before its own. + for ( i in jQuery( support ) ) { + break; + } + support.ownLast = i !== "0"; + + // Run tests that need a body at doc ready + jQuery(function() { + var container, marginDiv, tds, + divReset = "padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;", + body = document.getElementsByTagName("body")[0]; + + if ( !body ) { + // Return for frameset docs that don't have a body + return; + } + + container = document.createElement("div"); + container.style.cssText = "border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px"; + + body.appendChild( container ).appendChild( div ); + + // Support: IE8 + // Check if table cells still have offsetWidth/Height when they are set + // to display:none and there are still other visible table cells in a + // table row; if so, offsetWidth/Height are not reliable for use when + // determining if an element has been hidden directly using + // display:none (it is still safe to use offsets if a parent element is + // hidden; don safety goggles and see bug #4512 for more information). + div.innerHTML = "
    t
    "; + tds = div.getElementsByTagName("td"); + tds[ 0 ].style.cssText = "padding:0;margin:0;border:0;display:none"; + isSupported = ( tds[ 0 ].offsetHeight === 0 ); + + tds[ 0 ].style.display = ""; + tds[ 1 ].style.display = "none"; + + // Support: IE8 + // Check if empty table cells still have offsetWidth/Height + support.reliableHiddenOffsets = isSupported && ( tds[ 0 ].offsetHeight === 0 ); + + // Check box-sizing and margin behavior. + div.innerHTML = ""; + div.style.cssText = "box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;"; + + // Workaround failing boxSizing test due to offsetWidth returning wrong value + // with some non-1 values of body zoom, ticket #13543 + jQuery.swap( body, body.style.zoom != null ? { zoom: 1 } : {}, function() { + support.boxSizing = div.offsetWidth === 4; + }); + + // Use window.getComputedStyle because jsdom on node.js will break without it. + if ( window.getComputedStyle ) { + support.pixelPosition = ( window.getComputedStyle( div, null ) || {} ).top !== "1%"; + support.boxSizingReliable = ( window.getComputedStyle( div, null ) || { width: "4px" } ).width === "4px"; + + // Check if div with explicit width and no margin-right incorrectly + // gets computed margin-right based on width of container. (#3333) + // Fails in WebKit before Feb 2011 nightlies + // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right + marginDiv = div.appendChild( document.createElement("div") ); + marginDiv.style.cssText = div.style.cssText = divReset; + marginDiv.style.marginRight = marginDiv.style.width = "0"; + div.style.width = "1px"; + + support.reliableMarginRight = + !parseFloat( ( window.getComputedStyle( marginDiv, null ) || {} ).marginRight ); + } + + if ( typeof div.style.zoom !== core_strundefined ) { + // Support: IE<8 + // Check if natively block-level elements act like inline-block + // elements when setting their display to 'inline' and giving + // them layout + div.innerHTML = ""; + div.style.cssText = divReset + "width:1px;padding:1px;display:inline;zoom:1"; + support.inlineBlockNeedsLayout = ( div.offsetWidth === 3 ); + + // Support: IE6 + // Check if elements with layout shrink-wrap their children + div.style.display = "block"; + div.innerHTML = "
    "; + div.firstChild.style.width = "5px"; + support.shrinkWrapBlocks = ( div.offsetWidth !== 3 ); + + if ( support.inlineBlockNeedsLayout ) { + // Prevent IE 6 from affecting layout for positioned elements #11048 + // Prevent IE from shrinking the body in IE 7 mode #12869 + // Support: IE<8 + body.style.zoom = 1; + } + } + + body.removeChild( container ); + + // Null elements to avoid leaks in IE + container = div = tds = marginDiv = null; + }); + + // Null elements to avoid leaks in IE + all = select = fragment = opt = a = input = null; + + return support; +})({}); + +var rbrace = /(?:\{[\s\S]*\}|\[[\s\S]*\])$/, + rmultiDash = /([A-Z])/g; + +function internalData( elem, name, data, pvt /* Internal Use Only */ ){ + if ( !jQuery.acceptData( elem ) ) { + return; + } + + var ret, thisCache, + internalKey = jQuery.expando, + + // We have to handle DOM nodes and JS objects differently because IE6-7 + // can't GC object references properly across the DOM-JS boundary + isNode = elem.nodeType, + + // Only DOM nodes need the global jQuery cache; JS object data is + // attached directly to the object so GC can occur automatically + cache = isNode ? jQuery.cache : elem, + + // Only defining an ID for JS objects if its cache already exists allows + // the code to shortcut on the same path as a DOM node with no cache + id = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey; + + // Avoid doing any more work than we need to when trying to get data on an + // object that has no data at all + if ( (!id || !cache[id] || (!pvt && !cache[id].data)) && data === undefined && typeof name === "string" ) { + return; + } + + if ( !id ) { + // Only DOM nodes need a new unique ID for each element since their data + // ends up in the global cache + if ( isNode ) { + id = elem[ internalKey ] = core_deletedIds.pop() || jQuery.guid++; + } else { + id = internalKey; + } + } + + if ( !cache[ id ] ) { + // Avoid exposing jQuery metadata on plain JS objects when the object + // is serialized using JSON.stringify + cache[ id ] = isNode ? {} : { toJSON: jQuery.noop }; + } + + // An object can be passed to jQuery.data instead of a key/value pair; this gets + // shallow copied over onto the existing cache + if ( typeof name === "object" || typeof name === "function" ) { + if ( pvt ) { + cache[ id ] = jQuery.extend( cache[ id ], name ); + } else { + cache[ id ].data = jQuery.extend( cache[ id ].data, name ); + } + } + + thisCache = cache[ id ]; + + // jQuery data() is stored in a separate object inside the object's internal data + // cache in order to avoid key collisions between internal data and user-defined + // data. + if ( !pvt ) { + if ( !thisCache.data ) { + thisCache.data = {}; + } + + thisCache = thisCache.data; + } + + if ( data !== undefined ) { + thisCache[ jQuery.camelCase( name ) ] = data; + } + + // Check for both converted-to-camel and non-converted data property names + // If a data property was specified + if ( typeof name === "string" ) { + + // First Try to find as-is property data + ret = thisCache[ name ]; + + // Test for null|undefined property data + if ( ret == null ) { + + // Try to find the camelCased property + ret = thisCache[ jQuery.camelCase( name ) ]; + } + } else { + ret = thisCache; + } + + return ret; +} + +function internalRemoveData( elem, name, pvt ) { + if ( !jQuery.acceptData( elem ) ) { + return; + } + + var thisCache, i, + isNode = elem.nodeType, + + // See jQuery.data for more information + cache = isNode ? jQuery.cache : elem, + id = isNode ? elem[ jQuery.expando ] : jQuery.expando; + + // If there is already no cache entry for this object, there is no + // purpose in continuing + if ( !cache[ id ] ) { + return; + } + + if ( name ) { + + thisCache = pvt ? cache[ id ] : cache[ id ].data; + + if ( thisCache ) { + + // Support array or space separated string names for data keys + if ( !jQuery.isArray( name ) ) { + + // try the string as a key before any manipulation + if ( name in thisCache ) { + name = [ name ]; + } else { + + // split the camel cased version by spaces unless a key with the spaces exists + name = jQuery.camelCase( name ); + if ( name in thisCache ) { + name = [ name ]; + } else { + name = name.split(" "); + } + } + } else { + // If "name" is an array of keys... + // When data is initially created, via ("key", "val") signature, + // keys will be converted to camelCase. + // Since there is no way to tell _how_ a key was added, remove + // both plain key and camelCase key. #12786 + // This will only penalize the array argument path. + name = name.concat( jQuery.map( name, jQuery.camelCase ) ); + } + + i = name.length; + while ( i-- ) { + delete thisCache[ name[i] ]; + } + + // If there is no data left in the cache, we want to continue + // and let the cache object itself get destroyed + if ( pvt ? !isEmptyDataObject(thisCache) : !jQuery.isEmptyObject(thisCache) ) { + return; + } + } + } + + // See jQuery.data for more information + if ( !pvt ) { + delete cache[ id ].data; + + // Don't destroy the parent cache unless the internal data object + // had been the only thing left in it + if ( !isEmptyDataObject( cache[ id ] ) ) { + return; + } + } + + // Destroy the cache + if ( isNode ) { + jQuery.cleanData( [ elem ], true ); + + // Use delete when supported for expandos or `cache` is not a window per isWindow (#10080) + /* jshint eqeqeq: false */ + } else if ( jQuery.support.deleteExpando || cache != cache.window ) { + /* jshint eqeqeq: true */ + delete cache[ id ]; + + // When all else fails, null + } else { + cache[ id ] = null; + } +} + +jQuery.extend({ + cache: {}, + + // The following elements throw uncatchable exceptions if you + // attempt to add expando properties to them. + noData: { + "applet": true, + "embed": true, + // Ban all objects except for Flash (which handle expandos) + "object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" + }, + + hasData: function( elem ) { + elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ]; + return !!elem && !isEmptyDataObject( elem ); + }, + + data: function( elem, name, data ) { + return internalData( elem, name, data ); + }, + + removeData: function( elem, name ) { + return internalRemoveData( elem, name ); + }, + + // For internal use only. + _data: function( elem, name, data ) { + return internalData( elem, name, data, true ); + }, + + _removeData: function( elem, name ) { + return internalRemoveData( elem, name, true ); + }, + + // A method for determining if a DOM node can handle the data expando + acceptData: function( elem ) { + // Do not set data on non-element because it will not be cleared (#8335). + if ( elem.nodeType && elem.nodeType !== 1 && elem.nodeType !== 9 ) { + return false; + } + + var noData = elem.nodeName && jQuery.noData[ elem.nodeName.toLowerCase() ]; + + // nodes accept data unless otherwise specified; rejection can be conditional + return !noData || noData !== true && elem.getAttribute("classid") === noData; + } +}); + +jQuery.fn.extend({ + data: function( key, value ) { + var attrs, name, + data = null, + i = 0, + elem = this[0]; + + // Special expections of .data basically thwart jQuery.access, + // so implement the relevant behavior ourselves + + // Gets all values + if ( key === undefined ) { + if ( this.length ) { + data = jQuery.data( elem ); + + if ( elem.nodeType === 1 && !jQuery._data( elem, "parsedAttrs" ) ) { + attrs = elem.attributes; + for ( ; i < attrs.length; i++ ) { + name = attrs[i].name; + + if ( name.indexOf("data-") === 0 ) { + name = jQuery.camelCase( name.slice(5) ); + + dataAttr( elem, name, data[ name ] ); + } + } + jQuery._data( elem, "parsedAttrs", true ); + } + } + + return data; + } + + // Sets multiple values + if ( typeof key === "object" ) { + return this.each(function() { + jQuery.data( this, key ); + }); + } + + return arguments.length > 1 ? + + // Sets one value + this.each(function() { + jQuery.data( this, key, value ); + }) : + + // Gets one value + // Try to fetch any internally stored data first + elem ? dataAttr( elem, key, jQuery.data( elem, key ) ) : null; + }, + + removeData: function( key ) { + return this.each(function() { + jQuery.removeData( this, key ); + }); + } +}); + +function dataAttr( elem, key, data ) { + // If nothing was found internally, try to fetch any + // data from the HTML5 data-* attribute + if ( data === undefined && elem.nodeType === 1 ) { + + var name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase(); + + data = elem.getAttribute( name ); + + if ( typeof data === "string" ) { + try { + data = data === "true" ? true : + data === "false" ? false : + data === "null" ? null : + // Only convert to a number if it doesn't change the string + +data + "" === data ? +data : + rbrace.test( data ) ? jQuery.parseJSON( data ) : + data; + } catch( e ) {} + + // Make sure we set the data so it isn't changed later + jQuery.data( elem, key, data ); + + } else { + data = undefined; + } + } + + return data; +} + +// checks a cache object for emptiness +function isEmptyDataObject( obj ) { + var name; + for ( name in obj ) { + + // if the public data object is empty, the private is still empty + if ( name === "data" && jQuery.isEmptyObject( obj[name] ) ) { + continue; + } + if ( name !== "toJSON" ) { + return false; + } + } + + return true; +} +jQuery.extend({ + queue: function( elem, type, data ) { + var queue; + + if ( elem ) { + type = ( type || "fx" ) + "queue"; + queue = jQuery._data( elem, type ); + + // Speed up dequeue by getting out quickly if this is just a lookup + if ( data ) { + if ( !queue || jQuery.isArray(data) ) { + queue = jQuery._data( elem, type, jQuery.makeArray(data) ); + } else { + queue.push( data ); + } + } + return queue || []; + } + }, + + dequeue: function( elem, type ) { + type = type || "fx"; + + var queue = jQuery.queue( elem, type ), + startLength = queue.length, + fn = queue.shift(), + hooks = jQuery._queueHooks( elem, type ), + next = function() { + jQuery.dequeue( elem, type ); + }; + + // If the fx queue is dequeued, always remove the progress sentinel + if ( fn === "inprogress" ) { + fn = queue.shift(); + startLength--; + } + + if ( fn ) { + + // Add a progress sentinel to prevent the fx queue from being + // automatically dequeued + if ( type === "fx" ) { + queue.unshift( "inprogress" ); + } + + // clear up the last queue stop function + delete hooks.stop; + fn.call( elem, next, hooks ); + } + + if ( !startLength && hooks ) { + hooks.empty.fire(); + } + }, + + // not intended for public consumption - generates a queueHooks object, or returns the current one + _queueHooks: function( elem, type ) { + var key = type + "queueHooks"; + return jQuery._data( elem, key ) || jQuery._data( elem, key, { + empty: jQuery.Callbacks("once memory").add(function() { + jQuery._removeData( elem, type + "queue" ); + jQuery._removeData( elem, key ); + }) + }); + } +}); + +jQuery.fn.extend({ + queue: function( type, data ) { + var setter = 2; + + if ( typeof type !== "string" ) { + data = type; + type = "fx"; + setter--; + } + + if ( arguments.length < setter ) { + return jQuery.queue( this[0], type ); + } + + return data === undefined ? + this : + this.each(function() { + var queue = jQuery.queue( this, type, data ); + + // ensure a hooks for this queue + jQuery._queueHooks( this, type ); + + if ( type === "fx" && queue[0] !== "inprogress" ) { + jQuery.dequeue( this, type ); + } + }); + }, + dequeue: function( type ) { + return this.each(function() { + jQuery.dequeue( this, type ); + }); + }, + // Based off of the plugin by Clint Helfers, with permission. + // http://blindsignals.com/index.php/2009/07/jquery-delay/ + delay: function( time, type ) { + time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; + type = type || "fx"; + + return this.queue( type, function( next, hooks ) { + var timeout = setTimeout( next, time ); + hooks.stop = function() { + clearTimeout( timeout ); + }; + }); + }, + clearQueue: function( type ) { + return this.queue( type || "fx", [] ); + }, + // Get a promise resolved when queues of a certain type + // are emptied (fx is the type by default) + promise: function( type, obj ) { + var tmp, + count = 1, + defer = jQuery.Deferred(), + elements = this, + i = this.length, + resolve = function() { + if ( !( --count ) ) { + defer.resolveWith( elements, [ elements ] ); + } + }; + + if ( typeof type !== "string" ) { + obj = type; + type = undefined; + } + type = type || "fx"; + + while( i-- ) { + tmp = jQuery._data( elements[ i ], type + "queueHooks" ); + if ( tmp && tmp.empty ) { + count++; + tmp.empty.add( resolve ); + } + } + resolve(); + return defer.promise( obj ); + } +}); +var nodeHook, boolHook, + rclass = /[\t\r\n\f]/g, + rreturn = /\r/g, + rfocusable = /^(?:input|select|textarea|button|object)$/i, + rclickable = /^(?:a|area)$/i, + ruseDefault = /^(?:checked|selected)$/i, + getSetAttribute = jQuery.support.getSetAttribute, + getSetInput = jQuery.support.input; + +jQuery.fn.extend({ + attr: function( name, value ) { + return jQuery.access( this, jQuery.attr, name, value, arguments.length > 1 ); + }, + + removeAttr: function( name ) { + return this.each(function() { + jQuery.removeAttr( this, name ); + }); + }, + + prop: function( name, value ) { + return jQuery.access( this, jQuery.prop, name, value, arguments.length > 1 ); + }, + + removeProp: function( name ) { + name = jQuery.propFix[ name ] || name; + return this.each(function() { + // try/catch handles cases where IE balks (such as removing a property on window) + try { + this[ name ] = undefined; + delete this[ name ]; + } catch( e ) {} + }); + }, + + addClass: function( value ) { + var classes, elem, cur, clazz, j, + i = 0, + len = this.length, + proceed = typeof value === "string" && value; + + if ( jQuery.isFunction( value ) ) { + return this.each(function( j ) { + jQuery( this ).addClass( value.call( this, j, this.className ) ); + }); + } + + if ( proceed ) { + // The disjunction here is for better compressibility (see removeClass) + classes = ( value || "" ).match( core_rnotwhite ) || []; + + for ( ; i < len; i++ ) { + elem = this[ i ]; + cur = elem.nodeType === 1 && ( elem.className ? + ( " " + elem.className + " " ).replace( rclass, " " ) : + " " + ); + + if ( cur ) { + j = 0; + while ( (clazz = classes[j++]) ) { + if ( cur.indexOf( " " + clazz + " " ) < 0 ) { + cur += clazz + " "; + } + } + elem.className = jQuery.trim( cur ); + + } + } + } + + return this; + }, + + removeClass: function( value ) { + var classes, elem, cur, clazz, j, + i = 0, + len = this.length, + proceed = arguments.length === 0 || typeof value === "string" && value; + + if ( jQuery.isFunction( value ) ) { + return this.each(function( j ) { + jQuery( this ).removeClass( value.call( this, j, this.className ) ); + }); + } + if ( proceed ) { + classes = ( value || "" ).match( core_rnotwhite ) || []; + + for ( ; i < len; i++ ) { + elem = this[ i ]; + // This expression is here for better compressibility (see addClass) + cur = elem.nodeType === 1 && ( elem.className ? + ( " " + elem.className + " " ).replace( rclass, " " ) : + "" + ); + + if ( cur ) { + j = 0; + while ( (clazz = classes[j++]) ) { + // Remove *all* instances + while ( cur.indexOf( " " + clazz + " " ) >= 0 ) { + cur = cur.replace( " " + clazz + " ", " " ); + } + } + elem.className = value ? jQuery.trim( cur ) : ""; + } + } + } + + return this; + }, + + toggleClass: function( value, stateVal ) { + var type = typeof value; + + if ( typeof stateVal === "boolean" && type === "string" ) { + return stateVal ? this.addClass( value ) : this.removeClass( value ); + } + + if ( jQuery.isFunction( value ) ) { + return this.each(function( i ) { + jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal ); + }); + } + + return this.each(function() { + if ( type === "string" ) { + // toggle individual class names + var className, + i = 0, + self = jQuery( this ), + classNames = value.match( core_rnotwhite ) || []; + + while ( (className = classNames[ i++ ]) ) { + // check each className given, space separated list + if ( self.hasClass( className ) ) { + self.removeClass( className ); + } else { + self.addClass( className ); + } + } + + // Toggle whole class name + } else if ( type === core_strundefined || type === "boolean" ) { + if ( this.className ) { + // store className if set + jQuery._data( this, "__className__", this.className ); + } + + // If the element has a class name or if we're passed "false", + // then remove the whole classname (if there was one, the above saved it). + // Otherwise bring back whatever was previously saved (if anything), + // falling back to the empty string if nothing was stored. + this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || ""; + } + }); + }, + + hasClass: function( selector ) { + var className = " " + selector + " ", + i = 0, + l = this.length; + for ( ; i < l; i++ ) { + if ( this[i].nodeType === 1 && (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) >= 0 ) { + return true; + } + } + + return false; + }, + + val: function( value ) { + var ret, hooks, isFunction, + elem = this[0]; + + if ( !arguments.length ) { + if ( elem ) { + hooks = jQuery.valHooks[ elem.type ] || jQuery.valHooks[ elem.nodeName.toLowerCase() ]; + + if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) { + return ret; + } + + ret = elem.value; + + return typeof ret === "string" ? + // handle most common string cases + ret.replace(rreturn, "") : + // handle cases where value is null/undef or number + ret == null ? "" : ret; + } + + return; + } + + isFunction = jQuery.isFunction( value ); + + return this.each(function( i ) { + var val; + + if ( this.nodeType !== 1 ) { + return; + } + + if ( isFunction ) { + val = value.call( this, i, jQuery( this ).val() ); + } else { + val = value; + } + + // Treat null/undefined as ""; convert numbers to string + if ( val == null ) { + val = ""; + } else if ( typeof val === "number" ) { + val += ""; + } else if ( jQuery.isArray( val ) ) { + val = jQuery.map(val, function ( value ) { + return value == null ? "" : value + ""; + }); + } + + hooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ]; + + // If set returns undefined, fall back to normal setting + if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) { + this.value = val; + } + }); + } +}); + +jQuery.extend({ + valHooks: { + option: { + get: function( elem ) { + // Use proper attribute retrieval(#6932, #12072) + var val = jQuery.find.attr( elem, "value" ); + return val != null ? + val : + elem.text; + } + }, + select: { + get: function( elem ) { + var value, option, + options = elem.options, + index = elem.selectedIndex, + one = elem.type === "select-one" || index < 0, + values = one ? null : [], + max = one ? index + 1 : options.length, + i = index < 0 ? + max : + one ? index : 0; + + // Loop through all the selected options + for ( ; i < max; i++ ) { + option = options[ i ]; + + // oldIE doesn't update selected after form reset (#2551) + if ( ( option.selected || i === index ) && + // Don't return options that are disabled or in a disabled optgroup + ( jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null ) && + ( !option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" ) ) ) { + + // Get the specific value for the option + value = jQuery( option ).val(); + + // We don't need an array for one selects + if ( one ) { + return value; + } + + // Multi-Selects return an array + values.push( value ); + } + } + + return values; + }, + + set: function( elem, value ) { + var optionSet, option, + options = elem.options, + values = jQuery.makeArray( value ), + i = options.length; + + while ( i-- ) { + option = options[ i ]; + if ( (option.selected = jQuery.inArray( jQuery(option).val(), values ) >= 0) ) { + optionSet = true; + } + } + + // force browsers to behave consistently when non-matching value is set + if ( !optionSet ) { + elem.selectedIndex = -1; + } + return values; + } + } + }, + + attr: function( elem, name, value ) { + var hooks, ret, + nType = elem.nodeType; + + // don't get/set attributes on text, comment and attribute nodes + if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + // Fallback to prop when attributes are not supported + if ( typeof elem.getAttribute === core_strundefined ) { + return jQuery.prop( elem, name, value ); + } + + // All attributes are lowercase + // Grab necessary hook if one is defined + if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) { + name = name.toLowerCase(); + hooks = jQuery.attrHooks[ name ] || + ( jQuery.expr.match.bool.test( name ) ? boolHook : nodeHook ); + } + + if ( value !== undefined ) { + + if ( value === null ) { + jQuery.removeAttr( elem, name ); + + } else if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) { + return ret; + + } else { + elem.setAttribute( name, value + "" ); + return value; + } + + } else if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) { + return ret; + + } else { + ret = jQuery.find.attr( elem, name ); + + // Non-existent attributes return null, we normalize to undefined + return ret == null ? + undefined : + ret; + } + }, + + removeAttr: function( elem, value ) { + var name, propName, + i = 0, + attrNames = value && value.match( core_rnotwhite ); + + if ( attrNames && elem.nodeType === 1 ) { + while ( (name = attrNames[i++]) ) { + propName = jQuery.propFix[ name ] || name; + + // Boolean attributes get special treatment (#10870) + if ( jQuery.expr.match.bool.test( name ) ) { + // Set corresponding property to false + if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) { + elem[ propName ] = false; + // Support: IE<9 + // Also clear defaultChecked/defaultSelected (if appropriate) + } else { + elem[ jQuery.camelCase( "default-" + name ) ] = + elem[ propName ] = false; + } + + // See #9699 for explanation of this approach (setting first, then removal) + } else { + jQuery.attr( elem, name, "" ); + } + + elem.removeAttribute( getSetAttribute ? name : propName ); + } + } + }, + + attrHooks: { + type: { + set: function( elem, value ) { + if ( !jQuery.support.radioValue && value === "radio" && jQuery.nodeName(elem, "input") ) { + // Setting the type on a radio button after the value resets the value in IE6-9 + // Reset value to default in case type is set after value during creation + var val = elem.value; + elem.setAttribute( "type", value ); + if ( val ) { + elem.value = val; + } + return value; + } + } + } + }, + + propFix: { + "for": "htmlFor", + "class": "className" + }, + + prop: function( elem, name, value ) { + var ret, hooks, notxml, + nType = elem.nodeType; + + // don't get/set properties on text, comment and attribute nodes + if ( !elem || nType === 3 || nType === 8 || nType === 2 ) { + return; + } + + notxml = nType !== 1 || !jQuery.isXMLDoc( elem ); + + if ( notxml ) { + // Fix name and attach hooks + name = jQuery.propFix[ name ] || name; + hooks = jQuery.propHooks[ name ]; + } + + if ( value !== undefined ) { + return hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ? + ret : + ( elem[ name ] = value ); + + } else { + return hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ? + ret : + elem[ name ]; + } + }, + + propHooks: { + tabIndex: { + get: function( elem ) { + // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set + // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ + // Use proper attribute retrieval(#12072) + var tabindex = jQuery.find.attr( elem, "tabindex" ); + + return tabindex ? + parseInt( tabindex, 10 ) : + rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ? + 0 : + -1; + } + } + } +}); + +// Hooks for boolean attributes +boolHook = { + set: function( elem, value, name ) { + if ( value === false ) { + // Remove boolean attributes when set to false + jQuery.removeAttr( elem, name ); + } else if ( getSetInput && getSetAttribute || !ruseDefault.test( name ) ) { + // IE<8 needs the *property* name + elem.setAttribute( !getSetAttribute && jQuery.propFix[ name ] || name, name ); + + // Use defaultChecked and defaultSelected for oldIE + } else { + elem[ jQuery.camelCase( "default-" + name ) ] = elem[ name ] = true; + } + + return name; + } +}; +jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) { + var getter = jQuery.expr.attrHandle[ name ] || jQuery.find.attr; + + jQuery.expr.attrHandle[ name ] = getSetInput && getSetAttribute || !ruseDefault.test( name ) ? + function( elem, name, isXML ) { + var fn = jQuery.expr.attrHandle[ name ], + ret = isXML ? + undefined : + /* jshint eqeqeq: false */ + (jQuery.expr.attrHandle[ name ] = undefined) != + getter( elem, name, isXML ) ? + + name.toLowerCase() : + null; + jQuery.expr.attrHandle[ name ] = fn; + return ret; + } : + function( elem, name, isXML ) { + return isXML ? + undefined : + elem[ jQuery.camelCase( "default-" + name ) ] ? + name.toLowerCase() : + null; + }; +}); + +// fix oldIE attroperties +if ( !getSetInput || !getSetAttribute ) { + jQuery.attrHooks.value = { + set: function( elem, value, name ) { + if ( jQuery.nodeName( elem, "input" ) ) { + // Does not return so that setAttribute is also used + elem.defaultValue = value; + } else { + // Use nodeHook if defined (#1954); otherwise setAttribute is fine + return nodeHook && nodeHook.set( elem, value, name ); + } + } + }; +} + +// IE6/7 do not support getting/setting some attributes with get/setAttribute +if ( !getSetAttribute ) { + + // Use this for any attribute in IE6/7 + // This fixes almost every IE6/7 issue + nodeHook = { + set: function( elem, value, name ) { + // Set the existing or create a new attribute node + var ret = elem.getAttributeNode( name ); + if ( !ret ) { + elem.setAttributeNode( + (ret = elem.ownerDocument.createAttribute( name )) + ); + } + + ret.value = value += ""; + + // Break association with cloned elements by also using setAttribute (#9646) + return name === "value" || value === elem.getAttribute( name ) ? + value : + undefined; + } + }; + jQuery.expr.attrHandle.id = jQuery.expr.attrHandle.name = jQuery.expr.attrHandle.coords = + // Some attributes are constructed with empty-string values when not defined + function( elem, name, isXML ) { + var ret; + return isXML ? + undefined : + (ret = elem.getAttributeNode( name )) && ret.value !== "" ? + ret.value : + null; + }; + jQuery.valHooks.button = { + get: function( elem, name ) { + var ret = elem.getAttributeNode( name ); + return ret && ret.specified ? + ret.value : + undefined; + }, + set: nodeHook.set + }; + + // Set contenteditable to false on removals(#10429) + // Setting to empty string throws an error as an invalid value + jQuery.attrHooks.contenteditable = { + set: function( elem, value, name ) { + nodeHook.set( elem, value === "" ? false : value, name ); + } + }; + + // Set width and height to auto instead of 0 on empty string( Bug #8150 ) + // This is for removals + jQuery.each([ "width", "height" ], function( i, name ) { + jQuery.attrHooks[ name ] = { + set: function( elem, value ) { + if ( value === "" ) { + elem.setAttribute( name, "auto" ); + return value; + } + } + }; + }); +} + + +// Some attributes require a special call on IE +// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx +if ( !jQuery.support.hrefNormalized ) { + // href/src property should get the full normalized URL (#10299/#12915) + jQuery.each([ "href", "src" ], function( i, name ) { + jQuery.propHooks[ name ] = { + get: function( elem ) { + return elem.getAttribute( name, 4 ); + } + }; + }); +} + +if ( !jQuery.support.style ) { + jQuery.attrHooks.style = { + get: function( elem ) { + // Return undefined in the case of empty string + // Note: IE uppercases css property names, but if we were to .toLowerCase() + // .cssText, that would destroy case senstitivity in URL's, like in "background" + return elem.style.cssText || undefined; + }, + set: function( elem, value ) { + return ( elem.style.cssText = value + "" ); + } + }; +} + +// Safari mis-reports the default selected property of an option +// Accessing the parent's selectedIndex property fixes it +if ( !jQuery.support.optSelected ) { + jQuery.propHooks.selected = { + get: function( elem ) { + var parent = elem.parentNode; + + if ( parent ) { + parent.selectedIndex; + + // Make sure that it also works with optgroups, see #5701 + if ( parent.parentNode ) { + parent.parentNode.selectedIndex; + } + } + return null; + } + }; +} + +jQuery.each([ + "tabIndex", + "readOnly", + "maxLength", + "cellSpacing", + "cellPadding", + "rowSpan", + "colSpan", + "useMap", + "frameBorder", + "contentEditable" +], function() { + jQuery.propFix[ this.toLowerCase() ] = this; +}); + +// IE6/7 call enctype encoding +if ( !jQuery.support.enctype ) { + jQuery.propFix.enctype = "encoding"; +} + +// Radios and checkboxes getter/setter +jQuery.each([ "radio", "checkbox" ], function() { + jQuery.valHooks[ this ] = { + set: function( elem, value ) { + if ( jQuery.isArray( value ) ) { + return ( elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0 ); + } + } + }; + if ( !jQuery.support.checkOn ) { + jQuery.valHooks[ this ].get = function( elem ) { + // Support: Webkit + // "" is returned instead of "on" if a value isn't specified + return elem.getAttribute("value") === null ? "on" : elem.value; + }; + } +}); +var rformElems = /^(?:input|select|textarea)$/i, + rkeyEvent = /^key/, + rmouseEvent = /^(?:mouse|contextmenu)|click/, + rfocusMorph = /^(?:focusinfocus|focusoutblur)$/, + rtypenamespace = /^([^.]*)(?:\.(.+)|)$/; + +function returnTrue() { + return true; +} + +function returnFalse() { + return false; +} + +function safeActiveElement() { + try { + return document.activeElement; + } catch ( err ) { } +} + +/* + * Helper functions for managing events -- not part of the public interface. + * Props to Dean Edwards' addEvent library for many of the ideas. + */ +jQuery.event = { + + global: {}, + + add: function( elem, types, handler, data, selector ) { + var tmp, events, t, handleObjIn, + special, eventHandle, handleObj, + handlers, type, namespaces, origType, + elemData = jQuery._data( elem ); + + // Don't attach events to noData or text/comment nodes (but allow plain objects) + if ( !elemData ) { + return; + } + + // Caller can pass in an object of custom data in lieu of the handler + if ( handler.handler ) { + handleObjIn = handler; + handler = handleObjIn.handler; + selector = handleObjIn.selector; + } + + // Make sure that the handler has a unique ID, used to find/remove it later + if ( !handler.guid ) { + handler.guid = jQuery.guid++; + } + + // Init the element's event structure and main handler, if this is the first + if ( !(events = elemData.events) ) { + events = elemData.events = {}; + } + if ( !(eventHandle = elemData.handle) ) { + eventHandle = elemData.handle = function( e ) { + // Discard the second event of a jQuery.event.trigger() and + // when an event is called after a page has unloaded + return typeof jQuery !== core_strundefined && (!e || jQuery.event.triggered !== e.type) ? + jQuery.event.dispatch.apply( eventHandle.elem, arguments ) : + undefined; + }; + // Add elem as a property of the handle fn to prevent a memory leak with IE non-native events + eventHandle.elem = elem; + } + + // Handle multiple events separated by a space + types = ( types || "" ).match( core_rnotwhite ) || [""]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[t] ) || []; + type = origType = tmp[1]; + namespaces = ( tmp[2] || "" ).split( "." ).sort(); + + // There *must* be a type, no attaching namespace-only handlers + if ( !type ) { + continue; + } + + // If event changes its type, use the special event handlers for the changed type + special = jQuery.event.special[ type ] || {}; + + // If selector defined, determine special event api type, otherwise given type + type = ( selector ? special.delegateType : special.bindType ) || type; + + // Update special based on newly reset type + special = jQuery.event.special[ type ] || {}; + + // handleObj is passed to all event handlers + handleObj = jQuery.extend({ + type: type, + origType: origType, + data: data, + handler: handler, + guid: handler.guid, + selector: selector, + needsContext: selector && jQuery.expr.match.needsContext.test( selector ), + namespace: namespaces.join(".") + }, handleObjIn ); + + // Init the event handler queue if we're the first + if ( !(handlers = events[ type ]) ) { + handlers = events[ type ] = []; + handlers.delegateCount = 0; + + // Only use addEventListener/attachEvent if the special events handler returns false + if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) { + // Bind the global event handler to the element + if ( elem.addEventListener ) { + elem.addEventListener( type, eventHandle, false ); + + } else if ( elem.attachEvent ) { + elem.attachEvent( "on" + type, eventHandle ); + } + } + } + + if ( special.add ) { + special.add.call( elem, handleObj ); + + if ( !handleObj.handler.guid ) { + handleObj.handler.guid = handler.guid; + } + } + + // Add to the element's handler list, delegates in front + if ( selector ) { + handlers.splice( handlers.delegateCount++, 0, handleObj ); + } else { + handlers.push( handleObj ); + } + + // Keep track of which events have ever been used, for event optimization + jQuery.event.global[ type ] = true; + } + + // Nullify elem to prevent memory leaks in IE + elem = null; + }, + + // Detach an event or set of events from an element + remove: function( elem, types, handler, selector, mappedTypes ) { + var j, handleObj, tmp, + origCount, t, events, + special, handlers, type, + namespaces, origType, + elemData = jQuery.hasData( elem ) && jQuery._data( elem ); + + if ( !elemData || !(events = elemData.events) ) { + return; + } + + // Once for each type.namespace in types; type may be omitted + types = ( types || "" ).match( core_rnotwhite ) || [""]; + t = types.length; + while ( t-- ) { + tmp = rtypenamespace.exec( types[t] ) || []; + type = origType = tmp[1]; + namespaces = ( tmp[2] || "" ).split( "." ).sort(); + + // Unbind all events (on this namespace, if provided) for the element + if ( !type ) { + for ( type in events ) { + jQuery.event.remove( elem, type + types[ t ], handler, selector, true ); + } + continue; + } + + special = jQuery.event.special[ type ] || {}; + type = ( selector ? special.delegateType : special.bindType ) || type; + handlers = events[ type ] || []; + tmp = tmp[2] && new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ); + + // Remove matching events + origCount = j = handlers.length; + while ( j-- ) { + handleObj = handlers[ j ]; + + if ( ( mappedTypes || origType === handleObj.origType ) && + ( !handler || handler.guid === handleObj.guid ) && + ( !tmp || tmp.test( handleObj.namespace ) ) && + ( !selector || selector === handleObj.selector || selector === "**" && handleObj.selector ) ) { + handlers.splice( j, 1 ); + + if ( handleObj.selector ) { + handlers.delegateCount--; + } + if ( special.remove ) { + special.remove.call( elem, handleObj ); + } + } + } + + // Remove generic event handler if we removed something and no more handlers exist + // (avoids potential for endless recursion during removal of special event handlers) + if ( origCount && !handlers.length ) { + if ( !special.teardown || special.teardown.call( elem, namespaces, elemData.handle ) === false ) { + jQuery.removeEvent( elem, type, elemData.handle ); + } + + delete events[ type ]; + } + } + + // Remove the expando if it's no longer used + if ( jQuery.isEmptyObject( events ) ) { + delete elemData.handle; + + // removeData also checks for emptiness and clears the expando if empty + // so use it instead of delete + jQuery._removeData( elem, "events" ); + } + }, + + trigger: function( event, data, elem, onlyHandlers ) { + var handle, ontype, cur, + bubbleType, special, tmp, i, + eventPath = [ elem || document ], + type = core_hasOwn.call( event, "type" ) ? event.type : event, + namespaces = core_hasOwn.call( event, "namespace" ) ? event.namespace.split(".") : []; + + cur = tmp = elem = elem || document; + + // Don't do events on text and comment nodes + if ( elem.nodeType === 3 || elem.nodeType === 8 ) { + return; + } + + // focus/blur morphs to focusin/out; ensure we're not firing them right now + if ( rfocusMorph.test( type + jQuery.event.triggered ) ) { + return; + } + + if ( type.indexOf(".") >= 0 ) { + // Namespaced trigger; create a regexp to match event type in handle() + namespaces = type.split("."); + type = namespaces.shift(); + namespaces.sort(); + } + ontype = type.indexOf(":") < 0 && "on" + type; + + // Caller can pass in a jQuery.Event object, Object, or just an event type string + event = event[ jQuery.expando ] ? + event : + new jQuery.Event( type, typeof event === "object" && event ); + + // Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true) + event.isTrigger = onlyHandlers ? 2 : 3; + event.namespace = namespaces.join("."); + event.namespace_re = event.namespace ? + new RegExp( "(^|\\.)" + namespaces.join("\\.(?:.*\\.|)") + "(\\.|$)" ) : + null; + + // Clean up the event in case it is being reused + event.result = undefined; + if ( !event.target ) { + event.target = elem; + } + + // Clone any incoming data and prepend the event, creating the handler arg list + data = data == null ? + [ event ] : + jQuery.makeArray( data, [ event ] ); + + // Allow special events to draw outside the lines + special = jQuery.event.special[ type ] || {}; + if ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) { + return; + } + + // Determine event propagation path in advance, per W3C events spec (#9951) + // Bubble up to document, then to window; watch for a global ownerDocument var (#9724) + if ( !onlyHandlers && !special.noBubble && !jQuery.isWindow( elem ) ) { + + bubbleType = special.delegateType || type; + if ( !rfocusMorph.test( bubbleType + type ) ) { + cur = cur.parentNode; + } + for ( ; cur; cur = cur.parentNode ) { + eventPath.push( cur ); + tmp = cur; + } + + // Only add window if we got to document (e.g., not plain obj or detached DOM) + if ( tmp === (elem.ownerDocument || document) ) { + eventPath.push( tmp.defaultView || tmp.parentWindow || window ); + } + } + + // Fire handlers on the event path + i = 0; + while ( (cur = eventPath[i++]) && !event.isPropagationStopped() ) { + + event.type = i > 1 ? + bubbleType : + special.bindType || type; + + // jQuery handler + handle = ( jQuery._data( cur, "events" ) || {} )[ event.type ] && jQuery._data( cur, "handle" ); + if ( handle ) { + handle.apply( cur, data ); + } + + // Native handler + handle = ontype && cur[ ontype ]; + if ( handle && jQuery.acceptData( cur ) && handle.apply && handle.apply( cur, data ) === false ) { + event.preventDefault(); + } + } + event.type = type; + + // If nobody prevented the default action, do it now + if ( !onlyHandlers && !event.isDefaultPrevented() ) { + + if ( (!special._default || special._default.apply( eventPath.pop(), data ) === false) && + jQuery.acceptData( elem ) ) { + + // Call a native DOM method on the target with the same name name as the event. + // Can't use an .isFunction() check here because IE6/7 fails that test. + // Don't do default actions on window, that's where global variables be (#6170) + if ( ontype && elem[ type ] && !jQuery.isWindow( elem ) ) { + + // Don't re-trigger an onFOO event when we call its FOO() method + tmp = elem[ ontype ]; + + if ( tmp ) { + elem[ ontype ] = null; + } + + // Prevent re-triggering of the same event, since we already bubbled it above + jQuery.event.triggered = type; + try { + elem[ type ](); + } catch ( e ) { + // IE<9 dies on focus/blur to hidden element (#1486,#12518) + // only reproducible on winXP IE8 native, not IE9 in IE8 mode + } + jQuery.event.triggered = undefined; + + if ( tmp ) { + elem[ ontype ] = tmp; + } + } + } + } + + return event.result; + }, + + dispatch: function( event ) { + + // Make a writable jQuery.Event from the native event object + event = jQuery.event.fix( event ); + + var i, ret, handleObj, matched, j, + handlerQueue = [], + args = core_slice.call( arguments ), + handlers = ( jQuery._data( this, "events" ) || {} )[ event.type ] || [], + special = jQuery.event.special[ event.type ] || {}; + + // Use the fix-ed jQuery.Event rather than the (read-only) native event + args[0] = event; + event.delegateTarget = this; + + // Call the preDispatch hook for the mapped type, and let it bail if desired + if ( special.preDispatch && special.preDispatch.call( this, event ) === false ) { + return; + } + + // Determine handlers + handlerQueue = jQuery.event.handlers.call( this, event, handlers ); + + // Run delegates first; they may want to stop propagation beneath us + i = 0; + while ( (matched = handlerQueue[ i++ ]) && !event.isPropagationStopped() ) { + event.currentTarget = matched.elem; + + j = 0; + while ( (handleObj = matched.handlers[ j++ ]) && !event.isImmediatePropagationStopped() ) { + + // Triggered event must either 1) have no namespace, or + // 2) have namespace(s) a subset or equal to those in the bound event (both can have no namespace). + if ( !event.namespace_re || event.namespace_re.test( handleObj.namespace ) ) { + + event.handleObj = handleObj; + event.data = handleObj.data; + + ret = ( (jQuery.event.special[ handleObj.origType ] || {}).handle || handleObj.handler ) + .apply( matched.elem, args ); + + if ( ret !== undefined ) { + if ( (event.result = ret) === false ) { + event.preventDefault(); + event.stopPropagation(); + } + } + } + } + } + + // Call the postDispatch hook for the mapped type + if ( special.postDispatch ) { + special.postDispatch.call( this, event ); + } + + return event.result; + }, + + handlers: function( event, handlers ) { + var sel, handleObj, matches, i, + handlerQueue = [], + delegateCount = handlers.delegateCount, + cur = event.target; + + // Find delegate handlers + // Black-hole SVG instance trees (#13180) + // Avoid non-left-click bubbling in Firefox (#3861) + if ( delegateCount && cur.nodeType && (!event.button || event.type !== "click") ) { + + /* jshint eqeqeq: false */ + for ( ; cur != this; cur = cur.parentNode || this ) { + /* jshint eqeqeq: true */ + + // Don't check non-elements (#13208) + // Don't process clicks on disabled elements (#6911, #8165, #11382, #11764) + if ( cur.nodeType === 1 && (cur.disabled !== true || event.type !== "click") ) { + matches = []; + for ( i = 0; i < delegateCount; i++ ) { + handleObj = handlers[ i ]; + + // Don't conflict with Object.prototype properties (#13203) + sel = handleObj.selector + " "; + + if ( matches[ sel ] === undefined ) { + matches[ sel ] = handleObj.needsContext ? + jQuery( sel, this ).index( cur ) >= 0 : + jQuery.find( sel, this, null, [ cur ] ).length; + } + if ( matches[ sel ] ) { + matches.push( handleObj ); + } + } + if ( matches.length ) { + handlerQueue.push({ elem: cur, handlers: matches }); + } + } + } + } + + // Add the remaining (directly-bound) handlers + if ( delegateCount < handlers.length ) { + handlerQueue.push({ elem: this, handlers: handlers.slice( delegateCount ) }); + } + + return handlerQueue; + }, + + fix: function( event ) { + if ( event[ jQuery.expando ] ) { + return event; + } + + // Create a writable copy of the event object and normalize some properties + var i, prop, copy, + type = event.type, + originalEvent = event, + fixHook = this.fixHooks[ type ]; + + if ( !fixHook ) { + this.fixHooks[ type ] = fixHook = + rmouseEvent.test( type ) ? this.mouseHooks : + rkeyEvent.test( type ) ? this.keyHooks : + {}; + } + copy = fixHook.props ? this.props.concat( fixHook.props ) : this.props; + + event = new jQuery.Event( originalEvent ); + + i = copy.length; + while ( i-- ) { + prop = copy[ i ]; + event[ prop ] = originalEvent[ prop ]; + } + + // Support: IE<9 + // Fix target property (#1925) + if ( !event.target ) { + event.target = originalEvent.srcElement || document; + } + + // Support: Chrome 23+, Safari? + // Target should not be a text node (#504, #13143) + if ( event.target.nodeType === 3 ) { + event.target = event.target.parentNode; + } + + // Support: IE<9 + // For mouse/key events, metaKey==false if it's undefined (#3368, #11328) + event.metaKey = !!event.metaKey; + + return fixHook.filter ? fixHook.filter( event, originalEvent ) : event; + }, + + // Includes some event props shared by KeyEvent and MouseEvent + props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "), + + fixHooks: {}, + + keyHooks: { + props: "char charCode key keyCode".split(" "), + filter: function( event, original ) { + + // Add which for key events + if ( event.which == null ) { + event.which = original.charCode != null ? original.charCode : original.keyCode; + } + + return event; + } + }, + + mouseHooks: { + props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "), + filter: function( event, original ) { + var body, eventDoc, doc, + button = original.button, + fromElement = original.fromElement; + + // Calculate pageX/Y if missing and clientX/Y available + if ( event.pageX == null && original.clientX != null ) { + eventDoc = event.target.ownerDocument || document; + doc = eventDoc.documentElement; + body = eventDoc.body; + + event.pageX = original.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 ); + event.pageY = original.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 ); + } + + // Add relatedTarget, if necessary + if ( !event.relatedTarget && fromElement ) { + event.relatedTarget = fromElement === event.target ? original.toElement : fromElement; + } + + // Add which for click: 1 === left; 2 === middle; 3 === right + // Note: button is not normalized, so don't use it + if ( !event.which && button !== undefined ) { + event.which = ( button & 1 ? 1 : ( button & 2 ? 3 : ( button & 4 ? 2 : 0 ) ) ); + } + + return event; + } + }, + + special: { + load: { + // Prevent triggered image.load events from bubbling to window.load + noBubble: true + }, + focus: { + // Fire native event if possible so blur/focus sequence is correct + trigger: function() { + if ( this !== safeActiveElement() && this.focus ) { + try { + this.focus(); + return false; + } catch ( e ) { + // Support: IE<9 + // If we error on focus to hidden element (#1486, #12518), + // let .trigger() run the handlers + } + } + }, + delegateType: "focusin" + }, + blur: { + trigger: function() { + if ( this === safeActiveElement() && this.blur ) { + this.blur(); + return false; + } + }, + delegateType: "focusout" + }, + click: { + // For checkbox, fire native event so checked state will be right + trigger: function() { + if ( jQuery.nodeName( this, "input" ) && this.type === "checkbox" && this.click ) { + this.click(); + return false; + } + }, + + // For cross-browser consistency, don't fire native .click() on links + _default: function( event ) { + return jQuery.nodeName( event.target, "a" ); + } + }, + + beforeunload: { + postDispatch: function( event ) { + + // Even when returnValue equals to undefined Firefox will still show alert + if ( event.result !== undefined ) { + event.originalEvent.returnValue = event.result; + } + } + } + }, + + simulate: function( type, elem, event, bubble ) { + // Piggyback on a donor event to simulate a different one. + // Fake originalEvent to avoid donor's stopPropagation, but if the + // simulated event prevents default then we do the same on the donor. + var e = jQuery.extend( + new jQuery.Event(), + event, + { + type: type, + isSimulated: true, + originalEvent: {} + } + ); + if ( bubble ) { + jQuery.event.trigger( e, null, elem ); + } else { + jQuery.event.dispatch.call( elem, e ); + } + if ( e.isDefaultPrevented() ) { + event.preventDefault(); + } + } +}; + +jQuery.removeEvent = document.removeEventListener ? + function( elem, type, handle ) { + if ( elem.removeEventListener ) { + elem.removeEventListener( type, handle, false ); + } + } : + function( elem, type, handle ) { + var name = "on" + type; + + if ( elem.detachEvent ) { + + // #8545, #7054, preventing memory leaks for custom events in IE6-8 + // detachEvent needed property on element, by name of that event, to properly expose it to GC + if ( typeof elem[ name ] === core_strundefined ) { + elem[ name ] = null; + } + + elem.detachEvent( name, handle ); + } + }; + +jQuery.Event = function( src, props ) { + // Allow instantiation without the 'new' keyword + if ( !(this instanceof jQuery.Event) ) { + return new jQuery.Event( src, props ); + } + + // Event object + if ( src && src.type ) { + this.originalEvent = src; + this.type = src.type; + + // Events bubbling up the document may have been marked as prevented + // by a handler lower down the tree; reflect the correct value. + this.isDefaultPrevented = ( src.defaultPrevented || src.returnValue === false || + src.getPreventDefault && src.getPreventDefault() ) ? returnTrue : returnFalse; + + // Event type + } else { + this.type = src; + } + + // Put explicitly provided properties onto the event object + if ( props ) { + jQuery.extend( this, props ); + } + + // Create a timestamp if incoming event doesn't have one + this.timeStamp = src && src.timeStamp || jQuery.now(); + + // Mark it as fixed + this[ jQuery.expando ] = true; +}; + +// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding +// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html +jQuery.Event.prototype = { + isDefaultPrevented: returnFalse, + isPropagationStopped: returnFalse, + isImmediatePropagationStopped: returnFalse, + + preventDefault: function() { + var e = this.originalEvent; + + this.isDefaultPrevented = returnTrue; + if ( !e ) { + return; + } + + // If preventDefault exists, run it on the original event + if ( e.preventDefault ) { + e.preventDefault(); + + // Support: IE + // Otherwise set the returnValue property of the original event to false + } else { + e.returnValue = false; + } + }, + stopPropagation: function() { + var e = this.originalEvent; + + this.isPropagationStopped = returnTrue; + if ( !e ) { + return; + } + // If stopPropagation exists, run it on the original event + if ( e.stopPropagation ) { + e.stopPropagation(); + } + + // Support: IE + // Set the cancelBubble property of the original event to true + e.cancelBubble = true; + }, + stopImmediatePropagation: function() { + this.isImmediatePropagationStopped = returnTrue; + this.stopPropagation(); + } +}; + +// Create mouseenter/leave events using mouseover/out and event-time checks +jQuery.each({ + mouseenter: "mouseover", + mouseleave: "mouseout" +}, function( orig, fix ) { + jQuery.event.special[ orig ] = { + delegateType: fix, + bindType: fix, + + handle: function( event ) { + var ret, + target = this, + related = event.relatedTarget, + handleObj = event.handleObj; + + // For mousenter/leave call the handler if related is outside the target. + // NB: No relatedTarget if the mouse left/entered the browser window + if ( !related || (related !== target && !jQuery.contains( target, related )) ) { + event.type = handleObj.origType; + ret = handleObj.handler.apply( this, arguments ); + event.type = fix; + } + return ret; + } + }; +}); + +// IE submit delegation +if ( !jQuery.support.submitBubbles ) { + + jQuery.event.special.submit = { + setup: function() { + // Only need this for delegated form submit events + if ( jQuery.nodeName( this, "form" ) ) { + return false; + } + + // Lazy-add a submit handler when a descendant form may potentially be submitted + jQuery.event.add( this, "click._submit keypress._submit", function( e ) { + // Node name check avoids a VML-related crash in IE (#9807) + var elem = e.target, + form = jQuery.nodeName( elem, "input" ) || jQuery.nodeName( elem, "button" ) ? elem.form : undefined; + if ( form && !jQuery._data( form, "submitBubbles" ) ) { + jQuery.event.add( form, "submit._submit", function( event ) { + event._submit_bubble = true; + }); + jQuery._data( form, "submitBubbles", true ); + } + }); + // return undefined since we don't need an event listener + }, + + postDispatch: function( event ) { + // If form was submitted by the user, bubble the event up the tree + if ( event._submit_bubble ) { + delete event._submit_bubble; + if ( this.parentNode && !event.isTrigger ) { + jQuery.event.simulate( "submit", this.parentNode, event, true ); + } + } + }, + + teardown: function() { + // Only need this for delegated form submit events + if ( jQuery.nodeName( this, "form" ) ) { + return false; + } + + // Remove delegated handlers; cleanData eventually reaps submit handlers attached above + jQuery.event.remove( this, "._submit" ); + } + }; +} + +// IE change delegation and checkbox/radio fix +if ( !jQuery.support.changeBubbles ) { + + jQuery.event.special.change = { + + setup: function() { + + if ( rformElems.test( this.nodeName ) ) { + // IE doesn't fire change on a check/radio until blur; trigger it on click + // after a propertychange. Eat the blur-change in special.change.handle. + // This still fires onchange a second time for check/radio after blur. + if ( this.type === "checkbox" || this.type === "radio" ) { + jQuery.event.add( this, "propertychange._change", function( event ) { + if ( event.originalEvent.propertyName === "checked" ) { + this._just_changed = true; + } + }); + jQuery.event.add( this, "click._change", function( event ) { + if ( this._just_changed && !event.isTrigger ) { + this._just_changed = false; + } + // Allow triggered, simulated change events (#11500) + jQuery.event.simulate( "change", this, event, true ); + }); + } + return false; + } + // Delegated event; lazy-add a change handler on descendant inputs + jQuery.event.add( this, "beforeactivate._change", function( e ) { + var elem = e.target; + + if ( rformElems.test( elem.nodeName ) && !jQuery._data( elem, "changeBubbles" ) ) { + jQuery.event.add( elem, "change._change", function( event ) { + if ( this.parentNode && !event.isSimulated && !event.isTrigger ) { + jQuery.event.simulate( "change", this.parentNode, event, true ); + } + }); + jQuery._data( elem, "changeBubbles", true ); + } + }); + }, + + handle: function( event ) { + var elem = event.target; + + // Swallow native change events from checkbox/radio, we already triggered them above + if ( this !== elem || event.isSimulated || event.isTrigger || (elem.type !== "radio" && elem.type !== "checkbox") ) { + return event.handleObj.handler.apply( this, arguments ); + } + }, + + teardown: function() { + jQuery.event.remove( this, "._change" ); + + return !rformElems.test( this.nodeName ); + } + }; +} + +// Create "bubbling" focus and blur events +if ( !jQuery.support.focusinBubbles ) { + jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) { + + // Attach a single capturing handler while someone wants focusin/focusout + var attaches = 0, + handler = function( event ) { + jQuery.event.simulate( fix, event.target, jQuery.event.fix( event ), true ); + }; + + jQuery.event.special[ fix ] = { + setup: function() { + if ( attaches++ === 0 ) { + document.addEventListener( orig, handler, true ); + } + }, + teardown: function() { + if ( --attaches === 0 ) { + document.removeEventListener( orig, handler, true ); + } + } + }; + }); +} + +jQuery.fn.extend({ + + on: function( types, selector, data, fn, /*INTERNAL*/ one ) { + var type, origFn; + + // Types can be a map of types/handlers + if ( typeof types === "object" ) { + // ( types-Object, selector, data ) + if ( typeof selector !== "string" ) { + // ( types-Object, data ) + data = data || selector; + selector = undefined; + } + for ( type in types ) { + this.on( type, selector, data, types[ type ], one ); + } + return this; + } + + if ( data == null && fn == null ) { + // ( types, fn ) + fn = selector; + data = selector = undefined; + } else if ( fn == null ) { + if ( typeof selector === "string" ) { + // ( types, selector, fn ) + fn = data; + data = undefined; + } else { + // ( types, data, fn ) + fn = data; + data = selector; + selector = undefined; + } + } + if ( fn === false ) { + fn = returnFalse; + } else if ( !fn ) { + return this; + } + + if ( one === 1 ) { + origFn = fn; + fn = function( event ) { + // Can use an empty set, since event contains the info + jQuery().off( event ); + return origFn.apply( this, arguments ); + }; + // Use same guid so caller can remove using origFn + fn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ ); + } + return this.each( function() { + jQuery.event.add( this, types, fn, data, selector ); + }); + }, + one: function( types, selector, data, fn ) { + return this.on( types, selector, data, fn, 1 ); + }, + off: function( types, selector, fn ) { + var handleObj, type; + if ( types && types.preventDefault && types.handleObj ) { + // ( event ) dispatched jQuery.Event + handleObj = types.handleObj; + jQuery( types.delegateTarget ).off( + handleObj.namespace ? handleObj.origType + "." + handleObj.namespace : handleObj.origType, + handleObj.selector, + handleObj.handler + ); + return this; + } + if ( typeof types === "object" ) { + // ( types-object [, selector] ) + for ( type in types ) { + this.off( type, selector, types[ type ] ); + } + return this; + } + if ( selector === false || typeof selector === "function" ) { + // ( types [, fn] ) + fn = selector; + selector = undefined; + } + if ( fn === false ) { + fn = returnFalse; + } + return this.each(function() { + jQuery.event.remove( this, types, fn, selector ); + }); + }, + + trigger: function( type, data ) { + return this.each(function() { + jQuery.event.trigger( type, data, this ); + }); + }, + triggerHandler: function( type, data ) { + var elem = this[0]; + if ( elem ) { + return jQuery.event.trigger( type, data, elem, true ); + } + } +}); +var isSimple = /^.[^:#\[\.,]*$/, + rparentsprev = /^(?:parents|prev(?:Until|All))/, + rneedsContext = jQuery.expr.match.needsContext, + // methods guaranteed to produce a unique set when starting from a unique set + guaranteedUnique = { + children: true, + contents: true, + next: true, + prev: true + }; + +jQuery.fn.extend({ + find: function( selector ) { + var i, + ret = [], + self = this, + len = self.length; + + if ( typeof selector !== "string" ) { + return this.pushStack( jQuery( selector ).filter(function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( self[ i ], this ) ) { + return true; + } + } + }) ); + } + + for ( i = 0; i < len; i++ ) { + jQuery.find( selector, self[ i ], ret ); + } + + // Needed because $( selector, context ) becomes $( context ).find( selector ) + ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret ); + ret.selector = this.selector ? this.selector + " " + selector : selector; + return ret; + }, + + has: function( target ) { + var i, + targets = jQuery( target, this ), + len = targets.length; + + return this.filter(function() { + for ( i = 0; i < len; i++ ) { + if ( jQuery.contains( this, targets[i] ) ) { + return true; + } + } + }); + }, + + not: function( selector ) { + return this.pushStack( winnow(this, selector || [], true) ); + }, + + filter: function( selector ) { + return this.pushStack( winnow(this, selector || [], false) ); + }, + + is: function( selector ) { + return !!winnow( + this, + + // If this is a positional/relative selector, check membership in the returned set + // so $("p:first").is("p:last") won't return true for a doc with two "p". + typeof selector === "string" && rneedsContext.test( selector ) ? + jQuery( selector ) : + selector || [], + false + ).length; + }, + + closest: function( selectors, context ) { + var cur, + i = 0, + l = this.length, + ret = [], + pos = rneedsContext.test( selectors ) || typeof selectors !== "string" ? + jQuery( selectors, context || this.context ) : + 0; + + for ( ; i < l; i++ ) { + for ( cur = this[i]; cur && cur !== context; cur = cur.parentNode ) { + // Always skip document fragments + if ( cur.nodeType < 11 && (pos ? + pos.index(cur) > -1 : + + // Don't pass non-elements to Sizzle + cur.nodeType === 1 && + jQuery.find.matchesSelector(cur, selectors)) ) { + + cur = ret.push( cur ); + break; + } + } + } + + return this.pushStack( ret.length > 1 ? jQuery.unique( ret ) : ret ); + }, + + // Determine the position of an element within + // the matched set of elements + index: function( elem ) { + + // No argument, return index in parent + if ( !elem ) { + return ( this[0] && this[0].parentNode ) ? this.first().prevAll().length : -1; + } + + // index in selector + if ( typeof elem === "string" ) { + return jQuery.inArray( this[0], jQuery( elem ) ); + } + + // Locate the position of the desired element + return jQuery.inArray( + // If it receives a jQuery object, the first element is used + elem.jquery ? elem[0] : elem, this ); + }, + + add: function( selector, context ) { + var set = typeof selector === "string" ? + jQuery( selector, context ) : + jQuery.makeArray( selector && selector.nodeType ? [ selector ] : selector ), + all = jQuery.merge( this.get(), set ); + + return this.pushStack( jQuery.unique(all) ); + }, + + addBack: function( selector ) { + return this.add( selector == null ? + this.prevObject : this.prevObject.filter(selector) + ); + } +}); + +function sibling( cur, dir ) { + do { + cur = cur[ dir ]; + } while ( cur && cur.nodeType !== 1 ); + + return cur; +} + +jQuery.each({ + parent: function( elem ) { + var parent = elem.parentNode; + return parent && parent.nodeType !== 11 ? parent : null; + }, + parents: function( elem ) { + return jQuery.dir( elem, "parentNode" ); + }, + parentsUntil: function( elem, i, until ) { + return jQuery.dir( elem, "parentNode", until ); + }, + next: function( elem ) { + return sibling( elem, "nextSibling" ); + }, + prev: function( elem ) { + return sibling( elem, "previousSibling" ); + }, + nextAll: function( elem ) { + return jQuery.dir( elem, "nextSibling" ); + }, + prevAll: function( elem ) { + return jQuery.dir( elem, "previousSibling" ); + }, + nextUntil: function( elem, i, until ) { + return jQuery.dir( elem, "nextSibling", until ); + }, + prevUntil: function( elem, i, until ) { + return jQuery.dir( elem, "previousSibling", until ); + }, + siblings: function( elem ) { + return jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem ); + }, + children: function( elem ) { + return jQuery.sibling( elem.firstChild ); + }, + contents: function( elem ) { + return jQuery.nodeName( elem, "iframe" ) ? + elem.contentDocument || elem.contentWindow.document : + jQuery.merge( [], elem.childNodes ); + } +}, function( name, fn ) { + jQuery.fn[ name ] = function( until, selector ) { + var ret = jQuery.map( this, fn, until ); + + if ( name.slice( -5 ) !== "Until" ) { + selector = until; + } + + if ( selector && typeof selector === "string" ) { + ret = jQuery.filter( selector, ret ); + } + + if ( this.length > 1 ) { + // Remove duplicates + if ( !guaranteedUnique[ name ] ) { + ret = jQuery.unique( ret ); + } + + // Reverse order for parents* and prev-derivatives + if ( rparentsprev.test( name ) ) { + ret = ret.reverse(); + } + } + + return this.pushStack( ret ); + }; +}); + +jQuery.extend({ + filter: function( expr, elems, not ) { + var elem = elems[ 0 ]; + + if ( not ) { + expr = ":not(" + expr + ")"; + } + + return elems.length === 1 && elem.nodeType === 1 ? + jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] : + jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) { + return elem.nodeType === 1; + })); + }, + + dir: function( elem, dir, until ) { + var matched = [], + cur = elem[ dir ]; + + while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) { + if ( cur.nodeType === 1 ) { + matched.push( cur ); + } + cur = cur[dir]; + } + return matched; + }, + + sibling: function( n, elem ) { + var r = []; + + for ( ; n; n = n.nextSibling ) { + if ( n.nodeType === 1 && n !== elem ) { + r.push( n ); + } + } + + return r; + } +}); + +// Implement the identical functionality for filter and not +function winnow( elements, qualifier, not ) { + if ( jQuery.isFunction( qualifier ) ) { + return jQuery.grep( elements, function( elem, i ) { + /* jshint -W018 */ + return !!qualifier.call( elem, i, elem ) !== not; + }); + + } + + if ( qualifier.nodeType ) { + return jQuery.grep( elements, function( elem ) { + return ( elem === qualifier ) !== not; + }); + + } + + if ( typeof qualifier === "string" ) { + if ( isSimple.test( qualifier ) ) { + return jQuery.filter( qualifier, elements, not ); + } + + qualifier = jQuery.filter( qualifier, elements ); + } + + return jQuery.grep( elements, function( elem ) { + return ( jQuery.inArray( elem, qualifier ) >= 0 ) !== not; + }); +} +function createSafeFragment( document ) { + var list = nodeNames.split( "|" ), + safeFrag = document.createDocumentFragment(); + + if ( safeFrag.createElement ) { + while ( list.length ) { + safeFrag.createElement( + list.pop() + ); + } + } + return safeFrag; +} + +var nodeNames = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|" + + "header|hgroup|mark|meter|nav|output|progress|section|summary|time|video", + rinlinejQuery = / jQuery\d+="(?:null|\d+)"/g, + rnoshimcache = new RegExp("<(?:" + nodeNames + ")[\\s/>]", "i"), + rleadingWhitespace = /^\s+/, + rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, + rtagName = /<([\w:]+)/, + rtbody = /\s*$/g, + + // We have to close these tags to support XHTML (#13200) + wrapMap = { + option: [ 1, "" ], + legend: [ 1, "
    ", "
    " ], + area: [ 1, "", "" ], + param: [ 1, "", "" ], + thead: [ 1, "", "
    " ], + tr: [ 2, "", "
    " ], + col: [ 2, "", "
    " ], + td: [ 3, "", "
    " ], + + // IE6-8 can't serialize link, script, style, or any html5 (NoScope) tags, + // unless wrapped in a div with non-breaking characters in front of it. + _default: jQuery.support.htmlSerialize ? [ 0, "", "" ] : [ 1, "X
    ", "
    " ] + }, + safeFragment = createSafeFragment( document ), + fragmentDiv = safeFragment.appendChild( document.createElement("div") ); + +wrapMap.optgroup = wrapMap.option; +wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; +wrapMap.th = wrapMap.td; + +jQuery.fn.extend({ + text: function( value ) { + return jQuery.access( this, function( value ) { + return value === undefined ? + jQuery.text( this ) : + this.empty().append( ( this[0] && this[0].ownerDocument || document ).createTextNode( value ) ); + }, null, value, arguments.length ); + }, + + append: function() { + return this.domManip( arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.appendChild( elem ); + } + }); + }, + + prepend: function() { + return this.domManip( arguments, function( elem ) { + if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { + var target = manipulationTarget( this, elem ); + target.insertBefore( elem, target.firstChild ); + } + }); + }, + + before: function() { + return this.domManip( arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this ); + } + }); + }, + + after: function() { + return this.domManip( arguments, function( elem ) { + if ( this.parentNode ) { + this.parentNode.insertBefore( elem, this.nextSibling ); + } + }); + }, + + // keepData is for internal use only--do not document + remove: function( selector, keepData ) { + var elem, + elems = selector ? jQuery.filter( selector, this ) : this, + i = 0; + + for ( ; (elem = elems[i]) != null; i++ ) { + + if ( !keepData && elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem ) ); + } + + if ( elem.parentNode ) { + if ( keepData && jQuery.contains( elem.ownerDocument, elem ) ) { + setGlobalEval( getAll( elem, "script" ) ); + } + elem.parentNode.removeChild( elem ); + } + } + + return this; + }, + + empty: function() { + var elem, + i = 0; + + for ( ; (elem = this[i]) != null; i++ ) { + // Remove element nodes and prevent memory leaks + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + } + + // Remove any remaining nodes + while ( elem.firstChild ) { + elem.removeChild( elem.firstChild ); + } + + // If this is a select, ensure that it displays empty (#12336) + // Support: IE<9 + if ( elem.options && jQuery.nodeName( elem, "select" ) ) { + elem.options.length = 0; + } + } + + return this; + }, + + clone: function( dataAndEvents, deepDataAndEvents ) { + dataAndEvents = dataAndEvents == null ? false : dataAndEvents; + deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents; + + return this.map( function () { + return jQuery.clone( this, dataAndEvents, deepDataAndEvents ); + }); + }, + + html: function( value ) { + return jQuery.access( this, function( value ) { + var elem = this[0] || {}, + i = 0, + l = this.length; + + if ( value === undefined ) { + return elem.nodeType === 1 ? + elem.innerHTML.replace( rinlinejQuery, "" ) : + undefined; + } + + // See if we can take a shortcut and just use innerHTML + if ( typeof value === "string" && !rnoInnerhtml.test( value ) && + ( jQuery.support.htmlSerialize || !rnoshimcache.test( value ) ) && + ( jQuery.support.leadingWhitespace || !rleadingWhitespace.test( value ) ) && + !wrapMap[ ( rtagName.exec( value ) || ["", ""] )[1].toLowerCase() ] ) { + + value = value.replace( rxhtmlTag, "<$1>" ); + + try { + for (; i < l; i++ ) { + // Remove element nodes and prevent memory leaks + elem = this[i] || {}; + if ( elem.nodeType === 1 ) { + jQuery.cleanData( getAll( elem, false ) ); + elem.innerHTML = value; + } + } + + elem = 0; + + // If using innerHTML throws an exception, use the fallback method + } catch(e) {} + } + + if ( elem ) { + this.empty().append( value ); + } + }, null, value, arguments.length ); + }, + + replaceWith: function() { + var + // Snapshot the DOM in case .domManip sweeps something relevant into its fragment + args = jQuery.map( this, function( elem ) { + return [ elem.nextSibling, elem.parentNode ]; + }), + i = 0; + + // Make the changes, replacing each context element with the new content + this.domManip( arguments, function( elem ) { + var next = args[ i++ ], + parent = args[ i++ ]; + + if ( parent ) { + // Don't use the snapshot next if it has moved (#13810) + if ( next && next.parentNode !== parent ) { + next = this.nextSibling; + } + jQuery( this ).remove(); + parent.insertBefore( elem, next ); + } + // Allow new content to include elements from the context set + }, true ); + + // Force removal if there was no new content (e.g., from empty arguments) + return i ? this : this.remove(); + }, + + detach: function( selector ) { + return this.remove( selector, true ); + }, + + domManip: function( args, callback, allowIntersection ) { + + // Flatten any nested arrays + args = core_concat.apply( [], args ); + + var first, node, hasScripts, + scripts, doc, fragment, + i = 0, + l = this.length, + set = this, + iNoClone = l - 1, + value = args[0], + isFunction = jQuery.isFunction( value ); + + // We can't cloneNode fragments that contain checked, in WebKit + if ( isFunction || !( l <= 1 || typeof value !== "string" || jQuery.support.checkClone || !rchecked.test( value ) ) ) { + return this.each(function( index ) { + var self = set.eq( index ); + if ( isFunction ) { + args[0] = value.call( this, index, self.html() ); + } + self.domManip( args, callback, allowIntersection ); + }); + } + + if ( l ) { + fragment = jQuery.buildFragment( args, this[ 0 ].ownerDocument, false, !allowIntersection && this ); + first = fragment.firstChild; + + if ( fragment.childNodes.length === 1 ) { + fragment = first; + } + + if ( first ) { + scripts = jQuery.map( getAll( fragment, "script" ), disableScript ); + hasScripts = scripts.length; + + // Use the original fragment for the last item instead of the first because it can end up + // being emptied incorrectly in certain situations (#8070). + for ( ; i < l; i++ ) { + node = fragment; + + if ( i !== iNoClone ) { + node = jQuery.clone( node, true, true ); + + // Keep references to cloned scripts for later restoration + if ( hasScripts ) { + jQuery.merge( scripts, getAll( node, "script" ) ); + } + } + + callback.call( this[i], node, i ); + } + + if ( hasScripts ) { + doc = scripts[ scripts.length - 1 ].ownerDocument; + + // Reenable scripts + jQuery.map( scripts, restoreScript ); + + // Evaluate executable scripts on first document insertion + for ( i = 0; i < hasScripts; i++ ) { + node = scripts[ i ]; + if ( rscriptType.test( node.type || "" ) && + !jQuery._data( node, "globalEval" ) && jQuery.contains( doc, node ) ) { + + if ( node.src ) { + // Hope ajax is available... + jQuery._evalUrl( node.src ); + } else { + jQuery.globalEval( ( node.text || node.textContent || node.innerHTML || "" ).replace( rcleanScript, "" ) ); + } + } + } + } + + // Fix #11809: Avoid leaking memory + fragment = first = null; + } + } + + return this; + } +}); + +// Support: IE<8 +// Manipulating tables requires a tbody +function manipulationTarget( elem, content ) { + return jQuery.nodeName( elem, "table" ) && + jQuery.nodeName( content.nodeType === 1 ? content : content.firstChild, "tr" ) ? + + elem.getElementsByTagName("tbody")[0] || + elem.appendChild( elem.ownerDocument.createElement("tbody") ) : + elem; +} + +// Replace/restore the type attribute of script elements for safe DOM manipulation +function disableScript( elem ) { + elem.type = (jQuery.find.attr( elem, "type" ) !== null) + "/" + elem.type; + return elem; +} +function restoreScript( elem ) { + var match = rscriptTypeMasked.exec( elem.type ); + if ( match ) { + elem.type = match[1]; + } else { + elem.removeAttribute("type"); + } + return elem; +} + +// Mark scripts as having already been evaluated +function setGlobalEval( elems, refElements ) { + var elem, + i = 0; + for ( ; (elem = elems[i]) != null; i++ ) { + jQuery._data( elem, "globalEval", !refElements || jQuery._data( refElements[i], "globalEval" ) ); + } +} + +function cloneCopyEvent( src, dest ) { + + if ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) { + return; + } + + var type, i, l, + oldData = jQuery._data( src ), + curData = jQuery._data( dest, oldData ), + events = oldData.events; + + if ( events ) { + delete curData.handle; + curData.events = {}; + + for ( type in events ) { + for ( i = 0, l = events[ type ].length; i < l; i++ ) { + jQuery.event.add( dest, type, events[ type ][ i ] ); + } + } + } + + // make the cloned public data object a copy from the original + if ( curData.data ) { + curData.data = jQuery.extend( {}, curData.data ); + } +} + +function fixCloneNodeIssues( src, dest ) { + var nodeName, e, data; + + // We do not need to do anything for non-Elements + if ( dest.nodeType !== 1 ) { + return; + } + + nodeName = dest.nodeName.toLowerCase(); + + // IE6-8 copies events bound via attachEvent when using cloneNode. + if ( !jQuery.support.noCloneEvent && dest[ jQuery.expando ] ) { + data = jQuery._data( dest ); + + for ( e in data.events ) { + jQuery.removeEvent( dest, e, data.handle ); + } + + // Event data gets referenced instead of copied if the expando gets copied too + dest.removeAttribute( jQuery.expando ); + } + + // IE blanks contents when cloning scripts, and tries to evaluate newly-set text + if ( nodeName === "script" && dest.text !== src.text ) { + disableScript( dest ).text = src.text; + restoreScript( dest ); + + // IE6-10 improperly clones children of object elements using classid. + // IE10 throws NoModificationAllowedError if parent is null, #12132. + } else if ( nodeName === "object" ) { + if ( dest.parentNode ) { + dest.outerHTML = src.outerHTML; + } + + // This path appears unavoidable for IE9. When cloning an object + // element in IE9, the outerHTML strategy above is not sufficient. + // If the src has innerHTML and the destination does not, + // copy the src.innerHTML into the dest.innerHTML. #10324 + if ( jQuery.support.html5Clone && ( src.innerHTML && !jQuery.trim(dest.innerHTML) ) ) { + dest.innerHTML = src.innerHTML; + } + + } else if ( nodeName === "input" && manipulation_rcheckableType.test( src.type ) ) { + // IE6-8 fails to persist the checked state of a cloned checkbox + // or radio button. Worse, IE6-7 fail to give the cloned element + // a checked appearance if the defaultChecked value isn't also set + + dest.defaultChecked = dest.checked = src.checked; + + // IE6-7 get confused and end up setting the value of a cloned + // checkbox/radio button to an empty string instead of "on" + if ( dest.value !== src.value ) { + dest.value = src.value; + } + + // IE6-8 fails to return the selected option to the default selected + // state when cloning options + } else if ( nodeName === "option" ) { + dest.defaultSelected = dest.selected = src.defaultSelected; + + // IE6-8 fails to set the defaultValue to the correct value when + // cloning other types of input fields + } else if ( nodeName === "input" || nodeName === "textarea" ) { + dest.defaultValue = src.defaultValue; + } +} + +jQuery.each({ + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" +}, function( name, original ) { + jQuery.fn[ name ] = function( selector ) { + var elems, + i = 0, + ret = [], + insert = jQuery( selector ), + last = insert.length - 1; + + for ( ; i <= last; i++ ) { + elems = i === last ? this : this.clone(true); + jQuery( insert[i] )[ original ]( elems ); + + // Modern browsers can apply jQuery collections as arrays, but oldIE needs a .get() + core_push.apply( ret, elems.get() ); + } + + return this.pushStack( ret ); + }; +}); + +function getAll( context, tag ) { + var elems, elem, + i = 0, + found = typeof context.getElementsByTagName !== core_strundefined ? context.getElementsByTagName( tag || "*" ) : + typeof context.querySelectorAll !== core_strundefined ? context.querySelectorAll( tag || "*" ) : + undefined; + + if ( !found ) { + for ( found = [], elems = context.childNodes || context; (elem = elems[i]) != null; i++ ) { + if ( !tag || jQuery.nodeName( elem, tag ) ) { + found.push( elem ); + } else { + jQuery.merge( found, getAll( elem, tag ) ); + } + } + } + + return tag === undefined || tag && jQuery.nodeName( context, tag ) ? + jQuery.merge( [ context ], found ) : + found; +} + +// Used in buildFragment, fixes the defaultChecked property +function fixDefaultChecked( elem ) { + if ( manipulation_rcheckableType.test( elem.type ) ) { + elem.defaultChecked = elem.checked; + } +} + +jQuery.extend({ + clone: function( elem, dataAndEvents, deepDataAndEvents ) { + var destElements, node, clone, i, srcElements, + inPage = jQuery.contains( elem.ownerDocument, elem ); + + if ( jQuery.support.html5Clone || jQuery.isXMLDoc(elem) || !rnoshimcache.test( "<" + elem.nodeName + ">" ) ) { + clone = elem.cloneNode( true ); + + // IE<=8 does not properly clone detached, unknown element nodes + } else { + fragmentDiv.innerHTML = elem.outerHTML; + fragmentDiv.removeChild( clone = fragmentDiv.firstChild ); + } + + if ( (!jQuery.support.noCloneEvent || !jQuery.support.noCloneChecked) && + (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) { + + // We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2 + destElements = getAll( clone ); + srcElements = getAll( elem ); + + // Fix all IE cloning issues + for ( i = 0; (node = srcElements[i]) != null; ++i ) { + // Ensure that the destination node is not null; Fixes #9587 + if ( destElements[i] ) { + fixCloneNodeIssues( node, destElements[i] ); + } + } + } + + // Copy the events from the original to the clone + if ( dataAndEvents ) { + if ( deepDataAndEvents ) { + srcElements = srcElements || getAll( elem ); + destElements = destElements || getAll( clone ); + + for ( i = 0; (node = srcElements[i]) != null; i++ ) { + cloneCopyEvent( node, destElements[i] ); + } + } else { + cloneCopyEvent( elem, clone ); + } + } + + // Preserve script evaluation history + destElements = getAll( clone, "script" ); + if ( destElements.length > 0 ) { + setGlobalEval( destElements, !inPage && getAll( elem, "script" ) ); + } + + destElements = srcElements = node = null; + + // Return the cloned set + return clone; + }, + + buildFragment: function( elems, context, scripts, selection ) { + var j, elem, contains, + tmp, tag, tbody, wrap, + l = elems.length, + + // Ensure a safe fragment + safe = createSafeFragment( context ), + + nodes = [], + i = 0; + + for ( ; i < l; i++ ) { + elem = elems[ i ]; + + if ( elem || elem === 0 ) { + + // Add nodes directly + if ( jQuery.type( elem ) === "object" ) { + jQuery.merge( nodes, elem.nodeType ? [ elem ] : elem ); + + // Convert non-html into a text node + } else if ( !rhtml.test( elem ) ) { + nodes.push( context.createTextNode( elem ) ); + + // Convert html into DOM nodes + } else { + tmp = tmp || safe.appendChild( context.createElement("div") ); + + // Deserialize a standard representation + tag = ( rtagName.exec( elem ) || ["", ""] )[1].toLowerCase(); + wrap = wrapMap[ tag ] || wrapMap._default; + + tmp.innerHTML = wrap[1] + elem.replace( rxhtmlTag, "<$1>" ) + wrap[2]; + + // Descend through wrappers to the right content + j = wrap[0]; + while ( j-- ) { + tmp = tmp.lastChild; + } + + // Manually add leading whitespace removed by IE + if ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( elem ) ) { + nodes.push( context.createTextNode( rleadingWhitespace.exec( elem )[0] ) ); + } + + // Remove IE's autoinserted from table fragments + if ( !jQuery.support.tbody ) { + + // String was a , *may* have spurious + elem = tag === "table" && !rtbody.test( elem ) ? + tmp.firstChild : + + // String was a bare or + wrap[1] === "
    " && !rtbody.test( elem ) ? + tmp : + 0; + + j = elem && elem.childNodes.length; + while ( j-- ) { + if ( jQuery.nodeName( (tbody = elem.childNodes[j]), "tbody" ) && !tbody.childNodes.length ) { + elem.removeChild( tbody ); + } + } + } + + jQuery.merge( nodes, tmp.childNodes ); + + // Fix #12392 for WebKit and IE > 9 + tmp.textContent = ""; + + // Fix #12392 for oldIE + while ( tmp.firstChild ) { + tmp.removeChild( tmp.firstChild ); + } + + // Remember the top-level container for proper cleanup + tmp = safe.lastChild; + } + } + } + + // Fix #11356: Clear elements from fragment + if ( tmp ) { + safe.removeChild( tmp ); + } + + // Reset defaultChecked for any radios and checkboxes + // about to be appended to the DOM in IE 6/7 (#8060) + if ( !jQuery.support.appendChecked ) { + jQuery.grep( getAll( nodes, "input" ), fixDefaultChecked ); + } + + i = 0; + while ( (elem = nodes[ i++ ]) ) { + + // #4087 - If origin and destination elements are the same, and this is + // that element, do not do anything + if ( selection && jQuery.inArray( elem, selection ) !== -1 ) { + continue; + } + + contains = jQuery.contains( elem.ownerDocument, elem ); + + // Append to fragment + tmp = getAll( safe.appendChild( elem ), "script" ); + + // Preserve script evaluation history + if ( contains ) { + setGlobalEval( tmp ); + } + + // Capture executables + if ( scripts ) { + j = 0; + while ( (elem = tmp[ j++ ]) ) { + if ( rscriptType.test( elem.type || "" ) ) { + scripts.push( elem ); + } + } + } + } + + tmp = null; + + return safe; + }, + + cleanData: function( elems, /* internal */ acceptData ) { + var elem, type, id, data, + i = 0, + internalKey = jQuery.expando, + cache = jQuery.cache, + deleteExpando = jQuery.support.deleteExpando, + special = jQuery.event.special; + + for ( ; (elem = elems[i]) != null; i++ ) { + + if ( acceptData || jQuery.acceptData( elem ) ) { + + id = elem[ internalKey ]; + data = id && cache[ id ]; + + if ( data ) { + if ( data.events ) { + for ( type in data.events ) { + if ( special[ type ] ) { + jQuery.event.remove( elem, type ); + + // This is a shortcut to avoid jQuery.event.remove's overhead + } else { + jQuery.removeEvent( elem, type, data.handle ); + } + } + } + + // Remove cache only if it was not already removed by jQuery.event.remove + if ( cache[ id ] ) { + + delete cache[ id ]; + + // IE does not allow us to delete expando properties from nodes, + // nor does it have a removeAttribute function on Document nodes; + // we must handle all of these cases + if ( deleteExpando ) { + delete elem[ internalKey ]; + + } else if ( typeof elem.removeAttribute !== core_strundefined ) { + elem.removeAttribute( internalKey ); + + } else { + elem[ internalKey ] = null; + } + + core_deletedIds.push( id ); + } + } + } + } + }, + + _evalUrl: function( url ) { + return jQuery.ajax({ + url: url, + type: "GET", + dataType: "script", + async: false, + global: false, + "throws": true + }); + } +}); +jQuery.fn.extend({ + wrapAll: function( html ) { + if ( jQuery.isFunction( html ) ) { + return this.each(function(i) { + jQuery(this).wrapAll( html.call(this, i) ); + }); + } + + if ( this[0] ) { + // The elements to wrap the target around + var wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(true); + + if ( this[0].parentNode ) { + wrap.insertBefore( this[0] ); + } + + wrap.map(function() { + var elem = this; + + while ( elem.firstChild && elem.firstChild.nodeType === 1 ) { + elem = elem.firstChild; + } + + return elem; + }).append( this ); + } + + return this; + }, + + wrapInner: function( html ) { + if ( jQuery.isFunction( html ) ) { + return this.each(function(i) { + jQuery(this).wrapInner( html.call(this, i) ); + }); + } + + return this.each(function() { + var self = jQuery( this ), + contents = self.contents(); + + if ( contents.length ) { + contents.wrapAll( html ); + + } else { + self.append( html ); + } + }); + }, + + wrap: function( html ) { + var isFunction = jQuery.isFunction( html ); + + return this.each(function(i) { + jQuery( this ).wrapAll( isFunction ? html.call(this, i) : html ); + }); + }, + + unwrap: function() { + return this.parent().each(function() { + if ( !jQuery.nodeName( this, "body" ) ) { + jQuery( this ).replaceWith( this.childNodes ); + } + }).end(); + } +}); +var iframe, getStyles, curCSS, + ralpha = /alpha\([^)]*\)/i, + ropacity = /opacity\s*=\s*([^)]*)/, + rposition = /^(top|right|bottom|left)$/, + // swappable if display is none or starts with table except "table", "table-cell", or "table-caption" + // see here for display values: https://developer.mozilla.org/en-US/docs/CSS/display + rdisplayswap = /^(none|table(?!-c[ea]).+)/, + rmargin = /^margin/, + rnumsplit = new RegExp( "^(" + core_pnum + ")(.*)$", "i" ), + rnumnonpx = new RegExp( "^(" + core_pnum + ")(?!px)[a-z%]+$", "i" ), + rrelNum = new RegExp( "^([+-])=(" + core_pnum + ")", "i" ), + elemdisplay = { BODY: "block" }, + + cssShow = { position: "absolute", visibility: "hidden", display: "block" }, + cssNormalTransform = { + letterSpacing: 0, + fontWeight: 400 + }, + + cssExpand = [ "Top", "Right", "Bottom", "Left" ], + cssPrefixes = [ "Webkit", "O", "Moz", "ms" ]; + +// return a css property mapped to a potentially vendor prefixed property +function vendorPropName( style, name ) { + + // shortcut for names that are not vendor prefixed + if ( name in style ) { + return name; + } + + // check for vendor prefixed names + var capName = name.charAt(0).toUpperCase() + name.slice(1), + origName = name, + i = cssPrefixes.length; + + while ( i-- ) { + name = cssPrefixes[ i ] + capName; + if ( name in style ) { + return name; + } + } + + return origName; +} + +function isHidden( elem, el ) { + // isHidden might be called from jQuery#filter function; + // in that case, element will be second argument + elem = el || elem; + return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem ); +} + +function showHide( elements, show ) { + var display, elem, hidden, + values = [], + index = 0, + length = elements.length; + + for ( ; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + + values[ index ] = jQuery._data( elem, "olddisplay" ); + display = elem.style.display; + if ( show ) { + // Reset the inline display of this element to learn if it is + // being hidden by cascaded rules or not + if ( !values[ index ] && display === "none" ) { + elem.style.display = ""; + } + + // Set elements which have been overridden with display: none + // in a stylesheet to whatever the default browser style is + // for such an element + if ( elem.style.display === "" && isHidden( elem ) ) { + values[ index ] = jQuery._data( elem, "olddisplay", css_defaultDisplay(elem.nodeName) ); + } + } else { + + if ( !values[ index ] ) { + hidden = isHidden( elem ); + + if ( display && display !== "none" || !hidden ) { + jQuery._data( elem, "olddisplay", hidden ? display : jQuery.css( elem, "display" ) ); + } + } + } + } + + // Set the display of most of the elements in a second loop + // to avoid the constant reflow + for ( index = 0; index < length; index++ ) { + elem = elements[ index ]; + if ( !elem.style ) { + continue; + } + if ( !show || elem.style.display === "none" || elem.style.display === "" ) { + elem.style.display = show ? values[ index ] || "" : "none"; + } + } + + return elements; +} + +jQuery.fn.extend({ + css: function( name, value ) { + return jQuery.access( this, function( elem, name, value ) { + var len, styles, + map = {}, + i = 0; + + if ( jQuery.isArray( name ) ) { + styles = getStyles( elem ); + len = name.length; + + for ( ; i < len; i++ ) { + map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles ); + } + + return map; + } + + return value !== undefined ? + jQuery.style( elem, name, value ) : + jQuery.css( elem, name ); + }, name, value, arguments.length > 1 ); + }, + show: function() { + return showHide( this, true ); + }, + hide: function() { + return showHide( this ); + }, + toggle: function( state ) { + if ( typeof state === "boolean" ) { + return state ? this.show() : this.hide(); + } + + return this.each(function() { + if ( isHidden( this ) ) { + jQuery( this ).show(); + } else { + jQuery( this ).hide(); + } + }); + } +}); + +jQuery.extend({ + // Add in style property hooks for overriding the default + // behavior of getting and setting a style property + cssHooks: { + opacity: { + get: function( elem, computed ) { + if ( computed ) { + // We should always get a number back from opacity + var ret = curCSS( elem, "opacity" ); + return ret === "" ? "1" : ret; + } + } + } + }, + + // Don't automatically add "px" to these possibly-unitless properties + cssNumber: { + "columnCount": true, + "fillOpacity": true, + "fontWeight": true, + "lineHeight": true, + "opacity": true, + "order": true, + "orphans": true, + "widows": true, + "zIndex": true, + "zoom": true + }, + + // Add in properties whose names you wish to fix before + // setting or getting the value + cssProps: { + // normalize float css property + "float": jQuery.support.cssFloat ? "cssFloat" : "styleFloat" + }, + + // Get and set the style property on a DOM Node + style: function( elem, name, value, extra ) { + // Don't set styles on text and comment nodes + if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) { + return; + } + + // Make sure that we're working with the right name + var ret, type, hooks, + origName = jQuery.camelCase( name ), + style = elem.style; + + name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( style, origName ) ); + + // gets hook for the prefixed version + // followed by the unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // Check if we're setting a value + if ( value !== undefined ) { + type = typeof value; + + // convert relative number strings (+= or -=) to relative numbers. #7345 + if ( type === "string" && (ret = rrelNum.exec( value )) ) { + value = ( ret[1] + 1 ) * ret[2] + parseFloat( jQuery.css( elem, name ) ); + // Fixes bug #9237 + type = "number"; + } + + // Make sure that NaN and null values aren't set. See: #7116 + if ( value == null || type === "number" && isNaN( value ) ) { + return; + } + + // If a number was passed in, add 'px' to the (except for certain CSS properties) + if ( type === "number" && !jQuery.cssNumber[ origName ] ) { + value += "px"; + } + + // Fixes #8908, it can be done more correctly by specifing setters in cssHooks, + // but it would mean to define eight (for every problematic property) identical functions + if ( !jQuery.support.clearCloneStyle && value === "" && name.indexOf("background") === 0 ) { + style[ name ] = "inherit"; + } + + // If a hook was provided, use that value, otherwise just set the specified value + if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value, extra )) !== undefined ) { + + // Wrapped to prevent IE from throwing errors when 'invalid' values are provided + // Fixes bug #5509 + try { + style[ name ] = value; + } catch(e) {} + } + + } else { + // If a hook was provided get the non-computed value from there + if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) { + return ret; + } + + // Otherwise just get the value from the style object + return style[ name ]; + } + }, + + css: function( elem, name, extra, styles ) { + var num, val, hooks, + origName = jQuery.camelCase( name ); + + // Make sure that we're working with the right name + name = jQuery.cssProps[ origName ] || ( jQuery.cssProps[ origName ] = vendorPropName( elem.style, origName ) ); + + // gets hook for the prefixed version + // followed by the unprefixed version + hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ]; + + // If a hook was provided get the computed value from there + if ( hooks && "get" in hooks ) { + val = hooks.get( elem, true, extra ); + } + + // Otherwise, if a way to get the computed value exists, use that + if ( val === undefined ) { + val = curCSS( elem, name, styles ); + } + + //convert "normal" to computed value + if ( val === "normal" && name in cssNormalTransform ) { + val = cssNormalTransform[ name ]; + } + + // Return, converting to number if forced or a qualifier was provided and val looks numeric + if ( extra === "" || extra ) { + num = parseFloat( val ); + return extra === true || jQuery.isNumeric( num ) ? num || 0 : val; + } + return val; + } +}); + +// NOTE: we've included the "window" in window.getComputedStyle +// because jsdom on node.js will break without it. +if ( window.getComputedStyle ) { + getStyles = function( elem ) { + return window.getComputedStyle( elem, null ); + }; + + curCSS = function( elem, name, _computed ) { + var width, minWidth, maxWidth, + computed = _computed || getStyles( elem ), + + // getPropertyValue is only needed for .css('filter') in IE9, see #12537 + ret = computed ? computed.getPropertyValue( name ) || computed[ name ] : undefined, + style = elem.style; + + if ( computed ) { + + if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) { + ret = jQuery.style( elem, name ); + } + + // A tribute to the "awesome hack by Dean Edwards" + // Chrome < 17 and Safari 5.0 uses "computed value" instead of "used value" for margin-right + // Safari 5.1.7 (at least) returns percentage for a larger set of values, but width seems to be reliably pixels + // this is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values + if ( rnumnonpx.test( ret ) && rmargin.test( name ) ) { + + // Remember the original values + width = style.width; + minWidth = style.minWidth; + maxWidth = style.maxWidth; + + // Put in the new values to get a computed value out + style.minWidth = style.maxWidth = style.width = ret; + ret = computed.width; + + // Revert the changed values + style.width = width; + style.minWidth = minWidth; + style.maxWidth = maxWidth; + } + } + + return ret; + }; +} else if ( document.documentElement.currentStyle ) { + getStyles = function( elem ) { + return elem.currentStyle; + }; + + curCSS = function( elem, name, _computed ) { + var left, rs, rsLeft, + computed = _computed || getStyles( elem ), + ret = computed ? computed[ name ] : undefined, + style = elem.style; + + // Avoid setting ret to empty string here + // so we don't default to auto + if ( ret == null && style && style[ name ] ) { + ret = style[ name ]; + } + + // From the awesome hack by Dean Edwards + // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291 + + // If we're not dealing with a regular pixel number + // but a number that has a weird ending, we need to convert it to pixels + // but not position css attributes, as those are proportional to the parent element instead + // and we can't measure the parent instead because it might trigger a "stacking dolls" problem + if ( rnumnonpx.test( ret ) && !rposition.test( name ) ) { + + // Remember the original values + left = style.left; + rs = elem.runtimeStyle; + rsLeft = rs && rs.left; + + // Put in the new values to get a computed value out + if ( rsLeft ) { + rs.left = elem.currentStyle.left; + } + style.left = name === "fontSize" ? "1em" : ret; + ret = style.pixelLeft + "px"; + + // Revert the changed values + style.left = left; + if ( rsLeft ) { + rs.left = rsLeft; + } + } + + return ret === "" ? "auto" : ret; + }; +} + +function setPositiveNumber( elem, value, subtract ) { + var matches = rnumsplit.exec( value ); + return matches ? + // Guard against undefined "subtract", e.g., when used as in cssHooks + Math.max( 0, matches[ 1 ] - ( subtract || 0 ) ) + ( matches[ 2 ] || "px" ) : + value; +} + +function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) { + var i = extra === ( isBorderBox ? "border" : "content" ) ? + // If we already have the right measurement, avoid augmentation + 4 : + // Otherwise initialize for horizontal or vertical properties + name === "width" ? 1 : 0, + + val = 0; + + for ( ; i < 4; i += 2 ) { + // both box models exclude margin, so add it if we want it + if ( extra === "margin" ) { + val += jQuery.css( elem, extra + cssExpand[ i ], true, styles ); + } + + if ( isBorderBox ) { + // border-box includes padding, so remove it if we want content + if ( extra === "content" ) { + val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + } + + // at this point, extra isn't border nor margin, so remove border + if ( extra !== "margin" ) { + val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } else { + // at this point, extra isn't content, so add padding + val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles ); + + // at this point, extra isn't content nor padding, so add border + if ( extra !== "padding" ) { + val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles ); + } + } + } + + return val; +} + +function getWidthOrHeight( elem, name, extra ) { + + // Start with offset property, which is equivalent to the border-box value + var valueIsBorderBox = true, + val = name === "width" ? elem.offsetWidth : elem.offsetHeight, + styles = getStyles( elem ), + isBorderBox = jQuery.support.boxSizing && jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; + + // some non-html elements return undefined for offsetWidth, so check for null/undefined + // svg - https://bugzilla.mozilla.org/show_bug.cgi?id=649285 + // MathML - https://bugzilla.mozilla.org/show_bug.cgi?id=491668 + if ( val <= 0 || val == null ) { + // Fall back to computed then uncomputed css if necessary + val = curCSS( elem, name, styles ); + if ( val < 0 || val == null ) { + val = elem.style[ name ]; + } + + // Computed unit is not pixels. Stop here and return. + if ( rnumnonpx.test(val) ) { + return val; + } + + // we need the check for style in case a browser which returns unreliable values + // for getComputedStyle silently falls back to the reliable elem.style + valueIsBorderBox = isBorderBox && ( jQuery.support.boxSizingReliable || val === elem.style[ name ] ); + + // Normalize "", auto, and prepare for extra + val = parseFloat( val ) || 0; + } + + // use the active box-sizing model to add/subtract irrelevant styles + return ( val + + augmentWidthOrHeight( + elem, + name, + extra || ( isBorderBox ? "border" : "content" ), + valueIsBorderBox, + styles + ) + ) + "px"; +} + +// Try to determine the default display value of an element +function css_defaultDisplay( nodeName ) { + var doc = document, + display = elemdisplay[ nodeName ]; + + if ( !display ) { + display = actualDisplay( nodeName, doc ); + + // If the simple way fails, read from inside an iframe + if ( display === "none" || !display ) { + // Use the already-created iframe if possible + iframe = ( iframe || + jQuery("