javax0.jamal.yaml.Resolver Maven / Gradle / Ivy
package javax0.jamal.yaml;
import javax0.jamal.api.BadSyntax;
import javax0.jamal.api.Processor;
import javax0.jamal.api.Ref;
import javax0.jamal.engine.StackLimiter;
import javax0.jamal.tools.Params;
import javax0.jamal.tools.Scanner;
import javax0.jamal.tools.param.BooleanParameter;
import org.yaml.snakeyaml.Yaml;
import java.io.StringWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.IdentityHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
/**
* A resolver object can resolve the Jamal Yaml macro references in a Yaml structure.
*/
@SuppressWarnings("unchecked")
class Resolver {
final Yaml yaml = YamlFactory.newYaml();
/**
* Those objects that have been resolved, or their resolution is currently going. Since there is no IdentityHashSet,
* we use a map, the value is always null.
*/
final Map