Class SimpleLiteral<T>

java.lang.Object
io.github.syst3ms.skriptparser.lang.SimpleLiteral<T>
Type Parameters:
T - the type of the values
All Implemented Interfaces:
Expression<T>, Literal<T>, SyntaxElement

public class SimpleLiteral<T> extends Object implements Literal<T>
A simple literal with a fixed set of values
  • Constructor Details

    • SimpleLiteral

      public SimpleLiteral(T[] values)
    • SimpleLiteral

      @SafeVarargs public SimpleLiteral(Class<T> c, T... values)
  • 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()
      Specified by:
      getValues in interface Literal<T>
    • 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<? extends 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
    • iterator

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

      public boolean isLoopOf(String loop)
      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:
      loop - 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>
    • 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