Class WrapIdentifierImpl<T>
java.lang.Object
io.github.douira.glsl_transformer.transform.Transformation<T>
io.github.douira.glsl_transformer.core.WrapIdentifier<T>
io.github.douira.glsl_transformer.core.WrapIdentifierImpl<T>
A wrap identifier transformation with a fixed wrapping result.
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class io.github.douira.glsl_transformer.transform.Transformation
Transformation.PhaseEntry<T> -
Field Summary
Fields inherited from class io.github.douira.glsl_transformer.transform.Transformation
DEFAULT_GROUP -
Constructor Summary
ConstructorsConstructorDescriptionWrapIdentifierImpl(String wrapResult, HandlerTarget<T> wrappingTarget, TransformationPhase<T> wrappingInjector) Creates a new wrap identifier transformation with a fixed result identifier and a fixed replacement phase for which only the target is given.WrapIdentifierImpl(String wrapResult, TransformationPhase<T> wrappingReplacer, TransformationPhase<T> wrappingInjector) Creates a new wrap identifier transformation with a fixed result identifier. -
Method Summary
Modifier and TypeMethodDescriptionstatic <T> WrapIdentifier<T>fromExpression(String wrapTarget, String wrapResult, String wrapExpression, RunPhase<T> wrappingInjector) Creates a new wrap identifier transformation that uses a parsed replace target that replaces identifiers with an expression.static <T> WrapIdentifier<T>fromTerminal(String wrapTarget, String wrapResult, RunPhase<T> wrappingInjector) Creates a new wrap identifier transformation that uses an unparsed terminal replace target.Returns the wrap result that will be preset after wrapping.static <T> WrapIdentifier<T>withExternalDeclaration(String wrapTarget, String wrapResult, String wrapExpression, TransformationPhase.InjectionPoint location, String injectedCode) Creates a new wrap identifier transformation that inserts a parsed expression as a replacement and inserts a new external declaration.Methods inherited from class io.github.douira.glsl_transformer.transform.Transformation
addConcurrentPhase, addPhase, addPhase, addPhase, addPhase, addPhases, append, getDefaultGroup, merge, resetState
-
Constructor Details
-
WrapIdentifierImpl
public WrapIdentifierImpl(String wrapResult, TransformationPhase<T> wrappingReplacer, TransformationPhase<T> wrappingInjector) Creates a new wrap identifier transformation with a fixed result identifier.- Parameters:
wrapResult- The identifier that's inserted for the wrappingwrappingReplacer- The replacer phase that replaces a target identifier with a replacement expression or identifierwrappingInjector- A transformation phase that does the additional code injection, usually providing a definition for the newly inserted identifier in the form of an external declaration of some sort- See Also:
-
WrapIdentifierImpl
public WrapIdentifierImpl(String wrapResult, HandlerTarget<T> wrappingTarget, TransformationPhase<T> wrappingInjector) Creates a new wrap identifier transformation with a fixed result identifier and a fixed replacement phase for which only the target is given.- Parameters:
wrapResult- The identifier that's inserted for the wrappingwrappingTarget- A replacement target to be used in a search terminals phasewrappingInjector- A transformation phase that does the additional code injection, usually providing a definition for the newly inserted identifier in the form of an external declaration of some sort
-
-
Method Details
-
getWrapResult
Description copied from class:WrapIdentifierReturns the wrap result that will be preset after wrapping. This is only used for detection of the identifier prior to wrapping for throwing an error if it's present.- Specified by:
getWrapResultin classWrapIdentifier<T>- Returns:
- The identifier that's inserted for the wrapping
-
fromTerminal
public static <T> WrapIdentifier<T> fromTerminal(String wrapTarget, String wrapResult, RunPhase<T> wrappingInjector) Creates a new wrap identifier transformation that uses an unparsed terminal replace target. It uses the wrap result as the identifier to disallow as well as the terminal to insert as a replacement. This is a commonly used operation when the inserted replacement is just a different identifier.- Type Parameters:
T- The job parameter type- Parameters:
wrapTarget- The identifier to replacewrapResult- The identifier that will be used to replace itwrappingInjector- A transformation phase that does the additional code injection- Returns:
- The wrap identifier transformation with the given parameters
-
fromExpression
public static <T> WrapIdentifier<T> fromExpression(String wrapTarget, String wrapResult, String wrapExpression, RunPhase<T> wrappingInjector) Creates a new wrap identifier transformation that uses a parsed replace target that replaces identifiers with an expression. (which may also just be an identifier)- Type Parameters:
T- The job parameter type- Parameters:
wrapTarget- The identifier to replacewrapResult- The identifier that will be used to replace itwrapExpression- The expression to insert instead of thewrapTargetwrappingInjector- A transformation phase that does the additional code injection- Returns:
- The wrap identifier transformation with the given parameters
-
withExternalDeclaration
public static <T> WrapIdentifier<T> withExternalDeclaration(String wrapTarget, String wrapResult, String wrapExpression, TransformationPhase.InjectionPoint location, String injectedCode) Creates a new wrap identifier transformation that inserts a parsed expression as a replacement and inserts a new external declaration.- Type Parameters:
T- The job parameter type- Parameters:
wrapTarget- The identifier to replacewrapResult- The identifier that will be used to replace itwrapExpression- The expression to insert instead of thewrapTargetlocation- The injection location for the new codeinjectedCode- The code to parse and inject as an external declaration at the given location- Returns:
- The wrap identifier transformation with the given parameters
- See Also:
-