Class Directive
- java.lang.Object
-
- io.github.applecommander.bastools.api.Directive
-
- Direct Known Subclasses:
EmbeddedBinaryDirective,EmbeddedShapeTable,HexDirective
public abstract class Directive extends java.lang.Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interfaceDirective.Expressionstatic classDirective.MapExpressionstatic classDirective.SimpleExpressionstatic classDirective.Variable
-
Field Summary
Fields Modifier and Type Field Description protected Configurationconfigstatic java.util.function.Predicate<java.lang.Integer>ONLY_ONEprotected java.io.OutputStreamoutputStreamstatic java.util.function.Predicate<java.lang.Integer>ZEROstatic java.util.function.Predicate<java.lang.Integer>ZERO_OR_ONE
-
Constructor Summary
Constructors Modifier Constructor Description protectedDirective(java.lang.String directiveName, Configuration config, java.io.OutputStream outputStream, java.lang.String... parameterNames)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidappend(Token token)Append directive tokens.booleandefaultBooleanExpression(java.lang.String paramName, boolean defaultValue)java.util.Optional<Directive.Expression>optionalExpression(java.lang.String paramName)java.util.Optional<java.lang.Integer>optionalIntegerExpression(java.lang.String paramName)java.util.Optional<Directive.MapExpression>optionalMapExpression(java.lang.String paramName)java.util.Optional<java.lang.String>optionalStringExpression(java.lang.String paramName)java.lang.IntegerrequiredIntegerExpression(java.lang.String paramName, java.lang.String errorMessage)java.lang.StringrequiredStringExpression(java.lang.String paramName, java.lang.String errorMessage)java.lang.Stringresolve(java.lang.String originalVariableName)Resolve the given variable name with any variable replacements that should occur.voidvalidateSet(java.util.function.Predicate<java.lang.Integer> validator, java.lang.String message, java.util.Optional<?>... opts)Validate a set of optionals with the given validator.abstract voidwriteBytes(int startAddress, Line line)Write directive contents to output file.
-
-
-
Field Detail
-
config
protected Configuration config
-
outputStream
protected java.io.OutputStream outputStream
-
ONLY_ONE
public static final java.util.function.Predicate<java.lang.Integer> ONLY_ONE
-
ZERO_OR_ONE
public static final java.util.function.Predicate<java.lang.Integer> ZERO_OR_ONE
-
ZERO
public static final java.util.function.Predicate<java.lang.Integer> ZERO
-
-
Constructor Detail
-
Directive
protected Directive(java.lang.String directiveName, Configuration config, java.io.OutputStream outputStream, java.lang.String... parameterNames)
-
-
Method Detail
-
resolve
public java.lang.String resolve(java.lang.String originalVariableName)
Resolve the given variable name with any variable replacements that should occur.
-
optionalExpression
public java.util.Optional<Directive.Expression> optionalExpression(java.lang.String paramName)
-
optionalIntegerExpression
public java.util.Optional<java.lang.Integer> optionalIntegerExpression(java.lang.String paramName)
-
requiredIntegerExpression
public java.lang.Integer requiredIntegerExpression(java.lang.String paramName, java.lang.String errorMessage)
-
optionalStringExpression
public java.util.Optional<java.lang.String> optionalStringExpression(java.lang.String paramName)
-
defaultBooleanExpression
public boolean defaultBooleanExpression(java.lang.String paramName, boolean defaultValue)
-
requiredStringExpression
public java.lang.String requiredStringExpression(java.lang.String paramName, java.lang.String errorMessage)
-
optionalMapExpression
public java.util.Optional<Directive.MapExpression> optionalMapExpression(java.lang.String paramName)
-
validateSet
public void validateSet(java.util.function.Predicate<java.lang.Integer> validator, java.lang.String message, java.util.Optional<?>... opts)Validate a set of optionals with the given validator. If it fails, throw an exception with the message.
-
append
public void append(Token token)
Append directive tokens. Note that this MUST be terminated by a termination token (probably EOL) to prevent loss of information.
-
writeBytes
public abstract void writeBytes(int startAddress, Line line) throws java.io.IOExceptionWrite directive contents to output file. Note that address is adjusted for the line header already.- Throws:
java.io.IOException
-
-