// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/kpdus/jad.html
// Decompiler options: packimports(3) fieldsfirst lnc
// Source File Name: XSLMessage.java
package com.icl.saxon.style;
import com.icl.saxon.Context;
import com.icl.saxon.Controller;
import com.icl.saxon.output.Emitter;
import com.icl.saxon.tree.*;
import java.io.OutputStreamWriter;
import java.util.Hashtable;
import java.util.Properties;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
// Referenced classes of package com.icl.saxon.style:
// StyleElement, TerminationException, StandardNames
public class XSLMessage extends StyleElement
{
boolean terminate;
public XSLMessage()
{
/* 20*/ terminate = false;
}
public boolean isInstruction()
{
/* 28*/ return true;
}
public boolean mayContainTemplateBody()
{
/* 37*/ return true;
}
public void prepareAttributes()
throws TransformerConfigurationException
{
/* 42*/ String s = null;
/* 43*/ StandardNames standardnames = getStandardNames();
/* 44*/ AttributeCollection attributecollection = getAttributeList();
/* 46*/ for(int i = 0; i < attributecollection.getLength(); i++)
{
/* 47*/ int j = attributecollection.getNameCode(i);
/* 48*/ int k = j & 0xfffff;
/* 49*/ if(k == standardnames.TERMINATE)
/* 50*/ s = attributecollection.getValue(i);
/* 52*/ else
/* 52*/ checkUnknownAttribute(j);
}
/* 56*/ if(s != null)
/* 57*/ if(s.equals("yes"))
/* 58*/ terminate = true;
/* 59*/ else
/* 59*/ if(s.equals("no"))
/* 60*/ terminate = false;
/* 62*/ else
/* 62*/ styleError("terminate must be \"yes\" or \"no\"");
}
public void validate()
throws TransformerConfigurationException
{
/* 68*/ checkWithinTemplate();
}
public void process(Context context)
throws TransformerException
{
/* 73*/ Controller controller = context.getController();
/* 74*/ Emitter emitter = controller.getMessageEmitter();
/* 75*/ if(emitter == null)
/* 76*/ emitter = controller.makeMessageEmitter();
/* 78*/ if(emitter.getWriter() == null)
/* 79*/ emitter.setWriter(new OutputStreamWriter(System.err));
/* 82*/ com.icl.saxon.output.Outputter outputter = controller.getOutputter();
/* 83*/ Properties properties = new Properties();
/* 84*/ properties.put("omit-xml-declaration", "yes");
/* 85*/ controller.changeOutputDestination(properties, emitter);
/* 87*/ processChildren(context);
/* 89*/ controller.resetOutputDestination(outputter);
/* 91*/ if(terminate)
/* 92*/ throw new TerminationException("Processing terminated by xsl:message at line " + getLineNumber());
/* 94*/ else
/* 94*/ return;
}
}