Class SectionNode

java.lang.Object
ch.njol.skript.config.Node
ch.njol.skript.config.SectionNode
All Implemented Interfaces:
Iterable<Node>

public class SectionNode extends Node implements Iterable<Node>
  • Constructor Details

  • Method Details

    • size

      public int size()
      Returns:
      Total amount of nodes (including void nodes) in this section.
    • add

      public void add​(Node n)
      Adds the given node at the end of this section.
      Parameters:
      n -
    • insert

      public void insert​(Node n, int index)
      Inserts the given node into this section at the specified position.
      Parameters:
      n -
      index - between 0 and size(), inclusive
    • remove

      public void remove​(Node n)
      Removes the given node from this section.
      Parameters:
      n -
    • remove

      public @Nullable Node remove​(String key)
      Removes an entry with the given key.
      Parameters:
      key -
      Returns:
      The removed node, or null if the key didn't match any node.
    • iterator

      public Iterator<Node> iterator()
      Iterator over all non-void nodes of this section.
      Specified by:
      iterator in interface Iterable<Node>
    • get

      public @Nullable Node get​(@Nullable String key)
      Gets a subnode (EntryNode or SectionNode) with the specified name.
      Parameters:
      key -
      Returns:
      The node with the given name
    • getValue

      public @Nullable String getValue​(String key)
    • get

      public String get​(String name, String def)
      Gets an entry's value or the default value if it doesn't exist or is not an EntryNode.
      Parameters:
      name - The name of the node (case insensitive)
      def - The default value
      Returns:
      The value of the entry node with the give node, or def if there's no entry with the given name.
    • set

      public void set​(String key, String value)
    • set

      public void set​(String key, @Nullable Node node)
    • isEmpty

      public boolean isEmpty()
    • convertToEntries

      public void convertToEntries​(int levels)
      Converts all SimpleNodes in this section to EntryNodes.
      Parameters:
      levels - Amount of levels to go down, e.g. 0 to only convert direct subnodes of this section or -1 for all subnodes including subnodes of subnodes etc.
    • convertToEntries

      public void convertToEntries​(int levels, String separator)
      REMIND breaks saving - separator argument can be different from config.sepator
      Parameters:
      levels - Maximum depth of recursion, -1 for no limit.
      separator - Some separator, e.g. ":" or "=".
    • save

      public void save​(PrintWriter w)
      Overrides:
      save in class Node
    • validate

      public boolean validate​(SectionValidator validator)
    • setValues

      public boolean setValues​(SectionNode other, String... excluded)
      Parameters:
      other -
      excluded - keys and sections to exclude
      Returns:
      false if this and the other SectionNode contain the exact same set of keys