// 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: Count.java
package com.icl.saxon.functions;
import com.icl.saxon.Context;
import com.icl.saxon.expr.*;
import com.icl.saxon.om.NodeEnumeration;
public class Count extends Function
{
public Count()
{
}
public String getName()
{
/* 13*/ return "count";
}
public int getDataType()
{
/* 22*/ return 2;
}
public Expression simplify()
throws XPathException
{
/* 30*/ checkArgumentCount(1, 1);
/* 31*/ super.argument[0] = super.argument[0].simplify();
/* 33*/ if(super.argument[0] instanceof Value)
/* 34*/ return evaluate(null);
/* 36*/ else
/* 36*/ return this;
}
public double evaluateAsNumber(Context context)
throws XPathException
{
/* 44*/ int i = 0;
/* 45*/ for(NodeEnumeration nodeenumeration = super.argument[0].enumerate(context, true); nodeenumeration.hasMoreElements();)
{
/* 47*/ nodeenumeration.nextElement();
/* 48*/ i++;
}
/* 50*/ return (double)i;
}
public Value evaluate(Context context)
throws XPathException
{
/* 58*/ return new NumericValue(evaluateAsNumber(context));
}
public int getDependencies()
{
/* 66*/ return super.argument[0].getDependencies();
}
public Expression reduce(int i, Context context)
throws XPathException
{
/* 74*/ Count count = new Count();
/* 75*/ count.addArgument(super.argument[0].reduce(i, context));
/* 76*/ count.setStaticContext(getStaticContext());
/* 77*/ return count.simplify();
}
}