Class ConvertedExpression<F,T>
java.lang.Object
io.github.syst3ms.skriptparser.lang.base.ConvertedExpression<F,T>
- Type Parameters:
F- The type of the source expressionT- The new, converted type of this expression
- All Implemented Interfaces:
Expression<T>, SyntaxElement
An expression that has been converted to another type. Type conversion is only being done at runtime, since the values
of the source expression aren't known until runtime.
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionExpression<? extends F> T[]getValues(TriggerContext ctx) Retrieves all values of this Expression, accounting for possible modifiers.booleaninit(Expression<?>[] expressions, int matchedPattern, ParseContext parseContext) Initializes this SyntaxElement before being used.booleanWhen this expression is looped, returns what the loop reference (as in loop-<reference>) should be in order to describe each element of the values of this expression.booleanisSingle()iterator(TriggerContext context) static <F,T> Optional <? extends ConvertedExpression<F, T>> newInstance(Expression<F> v, Class<T> to) Creates a new instance that converts the result by using the registered converters.static <F,T> ConvertedExpression <F, T> newInstance(Expression<F> v, Class<T> to, Function<?, Optional<? extends T>> converter) Creates a new instance that converts the result by using the given converter.toString(TriggerContext ctx, boolean debug) Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface Expression
acceptsChange, acceptsChange, acceptsChange, change, check, check, convertExpression, getArray, getSingle, isAndList, setAndList, stream
-
Method Details
-
newInstance
public static <F,T> Optional<? extends ConvertedExpression<F,T>> newInstance(Expression<F> v, Class<T> to) Creates a new instance that converts the result by using the registered converters.- Type Parameters:
F- the original return typeT- the converted return type- Parameters:
v- the source Expressionto- the Class to convert to- Returns:
- an optional ConvertedExpression instance
-
newInstance
public static <F,T> ConvertedExpression<F,T> newInstance(Expression<F> v, Class<T> to, Function<?, Optional<? extends T>> converter) Creates a new instance that converts the result by using the given converter.- Type Parameters:
F- the original return typeT- the converted return type- Parameters:
v- the source Expressionto- the Class to convert toconverter- the converter to use- Returns:
- an optional ConvertedExpression instance
-
getValues
Description copied from interface:ExpressionRetrieves all values of this Expression, accounting for possible modifiers. This means that if this is an or-list, it will choose a random value to return.- Specified by:
getValuesin interfaceExpression<F>- Parameters:
ctx- the event- Returns:
- an array of the values
- See Also:
-
init
Description copied from interface:SyntaxElementInitializes this SyntaxElement before being used. This method is always called before all the others in an extending class, the only exception beingCodeSection.loadSection(FileSection, ParserState, SkriptLogger).- Specified by:
initin interfaceSyntaxElement- Parameters:
expressions- an array of expressions representing all the expressions that are being passed to this syntax element. As opposed to Skript, elements of this array can't benull.matchedPattern- the index of the pattern that was successfully matched. It corresponds to the order of the syntaxes in registrationparseContext- an object containing additional information about the parsing of this syntax element, like regex matches and parse marks- Returns:
trueif the syntax element was initialized successfully,falseotherwise.- See Also:
-
toString
- Specified by:
toStringin interfaceSyntaxElement- Parameters:
ctx- the eventdebug- whether to show additional information or not- Returns:
- a
Stringthat should aim to resemble what is written in the script as closely as possible
-
isSingle
public boolean isSingle()- Specified by:
isSinglein interfaceExpression<F>- Returns:
- whether this expression returns a single value. By default, this is defined on registration, but it can be overridden.
-
getReturnType
- Specified by:
getReturnTypein interfaceExpression<F>- Returns:
- the return type of this expression. By default, this is defined on registration, but, like Expression.isSingle(), can be overriden.
-
isLoopOf
Description copied from interface:ExpressionWhen this expression is looped, returns what the loop reference (as in loop-<reference>) should be in order to describe each element of the values of this expression.- Specified by:
isLoopOfin interfaceExpression<F>- Parameters:
loop- the loop reference- Returns:
- whether the given reference describes this expression's elements. By default, returns
trueif the parameter is"value" - See Also:
-
getSource
- Specified by:
getSourcein interfaceExpression<F>
-
iterator
- Specified by:
iteratorin interfaceExpression<F>- Parameters:
context- the event- Returns:
- an iterator of the values of this expression
-