package com.github.mustachejava; import com.github.mustachejava.util.Node; import java.io.Writer; import java.util.List; import java.util.Set; import java.util.concurrent.atomic.AtomicInteger; /** * Code objects that are executed in order to evaluate the template */ public interface Code { Writer execute(Writer writer, List<Object> scopes); void identity(Writer writer); void append(String text); Code[] getCodes(); void setCodes(Code[] codes); void init(); @SuppressWarnings("CloneDoesntDeclareCloneNotSupportedException") Object clone(); Object clone(Set<Code> seen); String getName(); Node invert(Node node, String text, AtomicInteger position); }