# Package com.google.gwt.core.ext.linker

Classes for writing Linkers. Developers implementing custom `linkers` will use these classes to alter the set compilation `artifacts` generated by the compilation process.

- Interface Summary
  Interface | Description
  --- | ---
  ConfigurationProperty | Represents a configuration property.
  PropertyProviderGenerator | An interface for generating a property provider JS implementation, rather than having it defined in a module file.
  SelectionProperty | Represents a deferred binding property.
  StatementRanges | Describes the source-code positions of top-level statements in a string of JavaScript.
  SymbolData | Provides basic information about symbols in the generated JavaScript.

- Class Summary
  Class | Description
  --- | ---
  AbstractLinker | Provides basic functions common to all Linker implementations.
  Artifact<C extends Artifact<C>> | A base type for all artifacts relating to the link process.
  ArtifactSet | Provides stable ordering and de-duplication of artifacts.
  BinaryEmittedArtifact | A thinned down version of some `EmittedArtifact`.
  CompilationMetricsArtifact | Captures some metrics from the compile permutations step of the build.
  CompilationResult | Represents a unique compilation of the module.
  DelegatingCompilationResult | A delegate for `CompilationResult` intended for third party linkers that want to modify a compilation result.
  EmittedArtifact | An artifact that will be emitted into the output.
  GeneratedResource | A resource created by a Generator invoking `GeneratorContext.tryCreateResource(com.google.gwt.core.ext.TreeLogger, String)` during the compilation process.
  ModuleMetricsArtifact | Captures some metrics from the module load and initial type oracle compile step.
  PrecompilationMetricsArtifact | Captures some metrics from the precompilation step.
  PublicResource | A resource in the module's public path.
  ScriptReference | An external script file referenced in the module manifest.
  SoftPermutation | Represents a permutation of collapsed deferred-binding property values.
  StylesheetReference | An external stylesheet referenced in the module manifest.
  SymbolData.ClassIdentComparator | A Comparator for use when presenting the data to humans.
  SyntheticArtifact | Artifacts created by `AbstractLinker`.
  TypeIndexedSet<T extends java.lang.Comparable> | A SortedSet that maintains an index of its members by concrete type using a `TypeIndexedSet.TypeIndex`.
  TypeIndexedSet.TypeIndex | Organizes set members by their concrete type.

- Enum Summary
  Enum | Description
  --- | ---
  EmittedArtifact.Visibility | Describes the visibility of an artifact.
  LinkerOrder.Order | Allowable values for the LinkerOrder.

- Annotation Types Summary
  Annotation Type | Description
  --- | ---
  LinkerOrder | Defines the relative order in which a Linker will be run.
  Shardable | This annotation, when placed on a `Linker` class, indicates that the linker supports the shardable version of the Linker API.
  Transferable | An artifact marked with this annotation is passed through a compilation all the way to the final call to `Linker.link(com.google.gwt.core.ext.TreeLogger, com.google.gwt.core.ext.LinkerContext, ArtifactSet, boolean)` .