Class Template
- java.lang.Object
-
- software.amazon.smithy.rulesengine.language.syntax.expressions.Template
-
- All Implemented Interfaces:
FromSourceLocation
,ToNode
public final class Template extends java.lang.Object implements FromSourceLocation, ToNode
Template represents a "Template Literal". This is a literal string within the rules language. A template can contain 0 or more dynamic sections. The dynamic sections use getAttr short-form:`https://{Region}.{partition#dnsSuffix}` -------- ------------ | | Dynamic getAttr short form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
Template.Literal
A static template value part.static interface
Template.Part
An interface for parts of a template that can be visited.
-
Constructor Summary
Constructors Constructor Description Template(StringNode template)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description <T> java.util.stream.Stream<T>
accept(TemplateVisitor<T> visitor)
boolean
equals(java.lang.Object o)
java.lang.String
expectLiteral()
Returns the literal value of this template, throwingRuntimeException
if the template is not static.static Template
fromString(java.lang.String s)
java.util.List<Template.Part>
getParts()
SourceLocation
getSourceLocation()
Gets the source location of a value.int
hashCode()
boolean
isStatic()
Gets if the template is static or not.Node
toNode()
Converts a value to aNode
.java.lang.String
toString()
Type
typeCheck(Scope<Type> scope)
Evaluates this template in the provided scope.
-
-
-
Constructor Detail
-
Template
public Template(StringNode template)
-
-
Method Detail
-
fromString
public static Template fromString(java.lang.String s)
-
getSourceLocation
public SourceLocation getSourceLocation()
Description copied from interface:FromSourceLocation
Gets the source location of a value.- Specified by:
getSourceLocation
in interfaceFromSourceLocation
- Returns:
- Returns the source location of the value.
-
accept
public <T> java.util.stream.Stream<T> accept(TemplateVisitor<T> visitor)
-
getParts
public java.util.List<Template.Part> getParts()
-
isStatic
public boolean isStatic()
Gets if the template is static or not.- Returns:
- true if all template parts are literals, false otherwise.
-
expectLiteral
public java.lang.String expectLiteral()
Returns the literal value of this template, throwingRuntimeException
if the template is not static.- Returns:
- returns the string literal value.
-
typeCheck
public Type typeCheck(Scope<Type> scope)
Evaluates this template in the provided scope.- Parameters:
scope
- the scope to check this template within.- Returns:
- the type of the template.
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
equals
public boolean equals(java.lang.Object o)
- Overrides:
equals
in classjava.lang.Object
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-