// 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: XSLSort.java
package com.icl.saxon.style;
import com.icl.saxon.Context;
import com.icl.saxon.expr.*;
import com.icl.saxon.om.AbstractNode;
import com.icl.saxon.om.NodeInfo;
import com.icl.saxon.sort.SortKeyDefinition;
import com.icl.saxon.tree.AttributeCollection;
import com.icl.saxon.tree.ElementWithAttributes;
import java.util.Locale;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
// Referenced classes of package com.icl.saxon.style:
// StyleElement, ExpressionContext, XSLApplyTemplates, XSLForEach,
// SAXONGroup, StandardNames
public class XSLSort extends StyleElement
{
private SortKeyDefinition sortKeyDefinition;
public XSLSort()
{
}
public void prepareAttributes()
throws TransformerConfigurationException
{
/* 27*/ StandardNames standardnames = getStandardNames();
/* 28*/ AttributeCollection attributecollection = getAttributeList();
/* 30*/ String s = null;
/* 31*/ String s1 = null;
/* 32*/ String s2 = null;
/* 33*/ String s3 = null;
/* 34*/ String s4 = null;
/* 36*/ for(int i = 0; i < attributecollection.getLength(); i++)
{
/* 37*/ int j = attributecollection.getNameCode(i);
/* 38*/ int k = j & 0xfffff;
/* 39*/ if(k == standardnames.SELECT)
/* 40*/ s = attributecollection.getValue(i);
/* 41*/ else
/* 41*/ if(k == standardnames.ORDER)
/* 42*/ s1 = attributecollection.getValue(i);
/* 43*/ else
/* 43*/ if(k == standardnames.DATA_TYPE)
/* 44*/ s2 = attributecollection.getValue(i);
/* 45*/ else
/* 45*/ if(k == standardnames.CASE_ORDER)
/* 46*/ s3 = attributecollection.getValue(i);
/* 47*/ else
/* 47*/ if(k == standardnames.LANG)
/* 48*/ s4 = attributecollection.getValue(i);
/* 50*/ else
/* 50*/ checkUnknownAttribute(j);
}
Object obj;
/* 54*/ if(s == null)
/* 55*/ obj = new ContextNodeExpression();
/* 57*/ else
/* 57*/ obj = makeExpression(s);
Object obj1;
/* 60*/ if(s1 == null)
/* 61*/ obj1 = new StringValue("ascending");
/* 63*/ else
/* 63*/ obj1 = makeAttributeValueTemplate(s1);
Object obj2;
/* 66*/ if(s2 == null)
/* 67*/ obj2 = new StringValue("text");
/* 69*/ else
/* 69*/ obj2 = makeAttributeValueTemplate(s2);
Object obj3;
/* 72*/ if(s3 == null)
/* 73*/ obj3 = new StringValue("#default");
/* 75*/ else
/* 75*/ obj3 = makeAttributeValueTemplate(s3);
Object obj4;
/* 78*/ if(s4 == null)
/* 79*/ obj4 = new StringValue(Locale.getDefault().getLanguage());
/* 81*/ else
/* 81*/ obj4 = makeAttributeValueTemplate(s4);
/* 85*/ try
{
/* 85*/ sortKeyDefinition = new SortKeyDefinition();
/* 86*/ sortKeyDefinition.setSortKey(((com.icl.saxon.expr.Expression) (obj)));
/* 87*/ sortKeyDefinition.setOrder(((com.icl.saxon.expr.Expression) (obj1)));
/* 88*/ sortKeyDefinition.setDataType(((com.icl.saxon.expr.Expression) (obj2)));
/* 89*/ sortKeyDefinition.setCaseOrder(((com.icl.saxon.expr.Expression) (obj3)));
/* 90*/ sortKeyDefinition.setLanguage(((com.icl.saxon.expr.Expression) (obj4)));
/* 91*/ sortKeyDefinition.setStaticContext(new ExpressionContext(this));
/* 92*/ sortKeyDefinition.bindComparer();
}
/* 94*/ catch(XPathException xpathexception)
{
/* 94*/ compileError(xpathexception);
}
}
public void validate()
throws TransformerConfigurationException
{
/* 99*/ NodeInfo nodeinfo = (NodeInfo)getParentNode();
/* 100*/ if(!(nodeinfo instanceof XSLApplyTemplates) && !(nodeinfo instanceof XSLForEach) && !(nodeinfo instanceof SAXONGroup))
/* 104*/ compileError("xsl:sort must be child of xsl:apply-templates or xsl:for-each");
}
public void process(Context context)
throws TransformerException
{
}
public SortKeyDefinition getSortKeyDefinition()
{
/* 112*/ return sortKeyDefinition;
}
}