# Package org.apache.sis.util

package org.apache.sis.util
Simple data objects and miscellaneous utilities. This package provides general purpose static methods working on primitive or basic Java types (`Characters`, `CharSequences`, `StringBuilders`, `Locales`, `Numbers`, `Classes`), arrays (`ArraysExt`) or other standard Java types (`Exceptions`). It defines also general purpose annotations, enumerations and exceptions.

Some other noticeable services are:

- `ObjectConverters`, together with the `ObjectConverter` interface, for converting various kinds of objects.
- `Utilities`, together with the `LenientComparable` interface, for comparing objects in various ways.

Since:
  0.3

- Related Packages
  Module
  Package
  Description
  org.apache.sis.util
  org.apache.sis.util.collection
  Addition to the collection framework.
  org.apache.sis.metadata
  org.apache.sis.util.iso
  Implementations of GeoAPI types from the `org​.opengis​.util` package.
  org.apache.sis.util
  org.apache.sis.util.logging
  Extensions to the JDK logging framework.
- Class
  Description
  AbstractInternationalString
  Base class for character strings that has been internationalized into several locales.
  ArgumentCheckByAssertion
  Marker annotation for methods which use assertions for validating their arguments.
  ArgumentChecks
  Static methods for performing argument checks.
  ArraysExt
  Static methods for simple operations on arrays and array elements.
  Characters
  Static methods working on `char` values, and some character constants.
  Characters.Filter
  Subsets of Unicode characters identified by their general category.
  CharSequences
  Static methods working with `CharSequence` instances.
  Classes
  Static methods working on `Class` objects.
  ComparisonMode
  Specifies the level of strictness when comparing two `LenientComparable` objects for equality.
  ConditionallySafe
  Annotates a code with parameterized types that are safe only under some conditions.
  CorruptedObjectException
  May be thrown on attempt to use an object which has been corrupted by a previous operation.
  Debug
  Annotates classes or methods that are provided mostly for debugging purpose.
  DefaultInternationalString
  An international string using a map of strings for different locales.
  Deprecable
  Interface of classes for which deprecated instances may exist.
  Disposable
  A resource that can be disposed when waiting for the garbage collector would be overly conservative.
  Emptiable
  Interface of classes for which empty instances may exist.
  Exceptions
  Static methods working with `Exception` instances.
  LenientComparable
  Interfaces of classes for which instances can be compared for equality using different levels of strictness.
  Locales
  Utility methods working on `Locale` instances.
  Localized
  Interface of classes for which each instance is configured for a particular locale.
  LocalizedException
  An exception which can produce an error message in the client locale.
  Numbers
  Static methods working with `Number` objects, and a few primitive types by extension.
  ObjectConverter<S,T>
  A function which converts instances of source type to instances of target type.
  ObjectConverters
  Static methods for creating `ObjectConverter` instances or collection views based on converters.
  OptionalCandidate
  Marker annotation for methods which may return `java​.util​.Optional` in a future version.
  Printable
  Object providing a `print()` method for sending a string representation to the standard output stream.
  ResourceInternationalString
  An international string backed by a `ResourceBundle`.
  SimpleInternationalString
  An international string consisting of a single string for all locales.
  StringBuilders
  Static methods working on `StringBuilder` instances.
  UnconvertibleObjectException
  Thrown when an object cannot be converted from the source type to the target type.
  UnknownNameException
  Thrown when an operation cannot complete because a given name is unrecognized.
  UnsupportedImplementationException
  Thrown when an operation cannot use arbitrary implementation of an interface, and a given instance does not met the requirement.
  Utilities
  Static methods for object comparisons in different ways (deeply, approximately, etc).
  Version
  Holds a version number as a sequence of strings separated by either a dot or a dash.
  Workaround
  Annotates code containing workarounds for bugs or limitations in an external library.