public interface ImportContainer
The only required method is importSymbol(software.amazon.smithy.codegen.core.Symbol, java.lang.String)
, but implementations
are expected to also override toString()
so that it contains the
formatted imports that can be written as code to a file. Other methods
can, and should, be added to make working with language specific imports
easier too.
Modifier and Type | Method and Description |
---|---|
default void |
importSymbol(Symbol symbol)
Adds an import for the given symbol if and only if the "namespace" of the
provided Symbol differs from the "namespace" associated with the
ImportContainer.
|
void |
importSymbol(Symbol symbol,
java.lang.String alias)
Adds an import for the given symbol if and only if the "namespace" of the
provided Symbol differs from the "namespace" associated with the
ImportContainer.
|
java.lang.String |
toString()
Implementations must implement a custom
toString method that
converts the collected imports to code that can be written to a
CodeWriter . |
void importSymbol(Symbol symbol, java.lang.String alias)
"namespace" in this context can mean whatever it needs to mean for the target programming language. In some languages, it might mean the path to a file. In others, it might mean a proper namespace string. It's up to subclasses to both track a current "namespace" and implement this method in a way that makes sense.
symbol
- Symbol to import if it's in another namespace.alias
- Alias to import the symbol as.default void importSymbol(Symbol symbol)
symbol
- The symbol to import.importSymbol(Symbol, String)
java.lang.String toString()
toString
method that
converts the collected imports to code that can be written to a
CodeWriter
.toString
in class java.lang.Object