Class ExpressionList<T>

java.lang.Object
io.github.syst3ms.skriptparser.lang.ExpressionList<T>
Type Parameters:
T - the common supertype of all expressions in this list
All Implemented Interfaces:
Expression<T>, SyntaxElement
Direct Known Subclasses:
LiteralList

public class ExpressionList<T> extends Object implements Expression<T>
A list of expressions
  • Field Details

    • expressions

      protected Expression<? extends T>[] expressions
    • single

      protected final boolean single
    • and

      protected boolean and
  • Constructor Details

  • Method Details

    • init

      @Contract("_, _, _ -> fail") public boolean init(Expression<?>[] expressions, int matchedPattern, ParseContext parseContext)
      Description copied from interface: SyntaxElement
      Initializes this SyntaxElement before being used. This method is always called before all the others in an extending class, the only exception being CodeSection.loadSection(FileSection, ParserState, SkriptLogger).
      Specified by:
      init in interface SyntaxElement
      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 be null.
      matchedPattern - the index of the pattern that was successfully matched. It corresponds to the order of the syntaxes in registration
      parseContext - an object containing additional information about the parsing of this syntax element, like regex matches and parse marks
      Returns:
      true if the syntax element was initialized successfully, false otherwise.
      See Also:
    • getValues

      public T[] getValues(TriggerContext ctx)
      Description copied from interface: Expression
      Retrieves 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:
      getValues in interface Expression<T>
      Parameters:
      ctx - the event
      Returns:
      an array of the values
      See Also:
    • getExpressions

      public Expression<? extends T>[] getExpressions()
      Retrieves all Expressions within this ExpressionList.
      Returns:
      all Expressions relating to this ExpressionList.
    • getValues

      public T[] getValues(Function<Expression<? extends T>, T[]> function)
      Retrieves all values of this Expression using a function that will be applied to each expression.
      Parameters:
      function - the function
      Returns:
      an array of the values
    • getArray

      public T[] getArray(TriggerContext ctx)
      Description copied from interface: Expression
      Retrieves all values of this Expressions, without accounting for possible modifiers. This means that if this is an or-list, it will still return all possible values.
      Specified by:
      getArray in interface Expression<T>
      Parameters:
      ctx - the event
      Returns:
      an array of the raw values
    • isSingle

      public boolean isSingle()
      Specified by:
      isSingle in interface Expression<T>
      Returns:
      whether this expression returns a single value. By default, this is defined on registration, but it can be overridden.
    • getReturnType

      public Class<T> getReturnType()
      Specified by:
      getReturnType in interface Expression<T>
      Returns:
      the return type of this expression. By default, this is defined on registration, but, like Expression.isSingle(), can be overriden.
    • toString

      public String toString(TriggerContext ctx, boolean debug)
      Specified by:
      toString in interface SyntaxElement
      Parameters:
      ctx - the event
      debug - whether to show additional information or not
      Returns:
      a String that should aim to resemble what is written in the script as closely as possible
    • convertExpression

      public <R> Optional<? extends Expression<R>> convertExpression(Class<R> to)
      Description copied from interface: Expression
      Converts this expression from it's current type (T) to another type, using converters.
      Specified by:
      convertExpression in interface Expression<T>
      Type Parameters:
      R - the type to convert this Expression to
      Parameters:
      to - the class of the type to convert this Expression to
      Returns:
      a converted Expression, or null if it couldn't be converted
    • iterator

      public Iterator<? extends T> iterator(TriggerContext ctx)
      Specified by:
      iterator in interface Expression<T>
      Parameters:
      ctx - the event
      Returns:
      an iterator of the values of this expression
    • isLoopOf

      public boolean isLoopOf(String s)
      Description copied from interface: Expression
      When 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:
      isLoopOf in interface Expression<T>
      Parameters:
      s - the loop reference
      Returns:
      whether the given reference describes this expression's elements. By default, returns true if the parameter is "value"
      See Also:
    • isAndList

      public boolean isAndList()
      Specified by:
      isAndList in interface Expression<T>
    • setAndList

      public void setAndList(boolean isAndList)
      Specified by:
      setAndList in interface Expression<T>
    • getSource

      public Expression<?> getSource()
      Specified by:
      getSource in interface Expression<T>