view src/nabble/naml/compiler/ParamChunk.java @ 0:7ecd1a4ef557

add content
author Franklin Schmidt <fschmidt@gmail.com>
date Thu, 21 Mar 2019 19:15:52 -0600
parents
children
line wrap: on
line source

package nabble.naml.compiler;


final class ParamChunk implements Chunk {
	final String name;

	ParamChunk(String name) {
		this.name = name;
	}
	
	public void run(IPrintWriter out,RunState runState) {
		String s = runState.getArg(name);
		if( s != null )
			s = runState.getEncoder().encode(s);
		out.print(s);
	}

	public boolean hasOutput() {
		return true;
	}

	@Override public String toString() {
		return "{ParamChunk: "+name+"}";
	}

	@Override public boolean equals(Object obj) {
		if( this==obj )
			return true;
		if( !(obj instanceof ParamChunk) )
			return false;
		ParamChunk pc = (ParamChunk)obj;
		return pc.name.equals(name);
	}

	@Override public int hashCode() {
		return name.hashCode() + getClass().hashCode();
	}

	@Override public Chunk intern() {
		return interner.intern(this);
	}
}