public final class PluginContext extends java.lang.Object implements ToSmithyBuilder<PluginContext>
Modifier and Type | Class and Description |
---|---|
static class |
PluginContext.Builder
Builds a
PluginContext . |
Modifier and Type | Method and Description |
---|---|
static PluginContext.Builder |
builder()
Creates a new PluginContext Builder.
|
java.util.List<ValidationEvent> |
getEvents()
Gets the validation events encountered after projecting the model.
|
FileManifest |
getFileManifest()
Gets the FileManifest used to create files in the projection.
|
Model |
getModel()
Gets the model that was projected.
|
Model |
getModelWithoutTraitShapes()
Creates a new Model where shapes that define traits or shapes
that are only used as part of a trait definition have been removed.
|
java.util.Optional<Model> |
getOriginalModel()
Get the original model before applying the projection.
|
java.util.Optional<java.lang.ClassLoader> |
getPluginClassLoader()
Gets the ClassLoader that should be used in build plugins to load
services.
|
java.util.Optional<ProjectionConfig> |
getProjection() |
java.lang.String |
getProjectionName()
Gets the name of the projection being applied.
|
ObjectNode |
getSettings()
Gets the plugin configuration settings.
|
java.util.Set<java.nio.file.Path> |
getSources()
Gets the source models, or models that are considered the subject
of the build.
|
boolean |
isSourceMetadata(java.lang.String metadataKey)
Checks if the given metadata key-value pair is either not present
in the old model (thus a new, source metadata), or is present and
the filename of the entry in the original model matches one of
the defined
sources . |
boolean |
isSourceShape(ToShapeId shape)
Checks if the given shape/ID is either not present in the original
model (thus a new, source shape), or is present and the filename of
the shape in the original model matches one of the defined
sources . |
PluginContext.Builder |
toBuilder()
Take this object and create a builder that contains all of the
current property values of this object.
|
public static PluginContext.Builder builder()
public java.util.Optional<ProjectionConfig> getProjection()
public java.lang.String getProjectionName()
If no projection could be found, "source" is assumed.
public Model getModel()
public java.util.Optional<Model> getOriginalModel()
public java.util.List<ValidationEvent> getEvents()
public ObjectNode getSettings()
public FileManifest getFileManifest()
All files written by a plugin should either be written using this
manifest or added to the manifest via FileManifest.addFile(java.nio.file.Path)
.
public java.util.Optional<java.lang.ClassLoader> getPluginClassLoader()
public Model getModelWithoutTraitShapes()
This is typically functionality used by code generators when generating data structures from a model. It's useful because it only provides shapes that are used to describe data structures rather than shapes used to describe metadata about the data structures.
Note: this method just calls ModelTransformer.getModelWithoutTraitShapes(software.amazon.smithy.model.Model)
.
It's added to PluginContext
to make it more easily available
to code generators.
public java.util.Set<java.nio.file.Path> getSources()
This does not return an exhaustive set of model paths! There are typically two kinds of models that are added to a build: source models and discovered models. Discovered models are someone else's models. Source models are the models owned by the package being built.
public boolean isSourceShape(ToShapeId shape)
sources
.shape
- Shape or Shape ID to check.public boolean isSourceMetadata(java.lang.String metadataKey)
sources
.metadataKey
- Metadata key to check.public PluginContext.Builder toBuilder()
ToSmithyBuilder
toBuilder
in interface ToSmithyBuilder<PluginContext>