Node n = null; if ((contextSequence == null) && (contextItem == null)) return new EmptySequence(); if(contextItem != null) contextSequence = contextItem.toSequence(); if(getSignature().getArgumentCount() > 0) { NodeSet result = getArgument(0).eval(contextSequence).toNodeSet(); if(result.getLength() > 0) n = result.item(0);
if(contextItem != null) contextSequence = contextItem.toSequence(); Item item = null;   if(getArgumentCount() > 0) { Sequence seq = getArgument(0).eval(contextSequence); if(seq.getLength() > 0) item = seq.itemAt(0);
    public Sequence eval(Sequence contextSequence, Item contextItem) throws XPathException {        Node n = null;  		if ((contextSequence == null) && (contextItem == null))  		  return new EmptySequence();		if(contextItem != null)			contextSequence = contextItem.toSequence();        if(getSignature().getArgumentCount() > 0) {            NodeSet result = getArgument(0).eval(contextSequence).toNodeSet();            if(result.getLength() > 0)            	n = result.item(0);        } else {        	if(contextSequence.getLength() > 0 && contextSequence.getItemType() == Type.NODE)            	n = ((NodeSet)contextSequence).item(0);        }        if(n != null) {	        switch(n.getNodeType()) {	        	case Node.ELEMENT_NODE:	            	return new StringValue(n.getLocalName());	        	case Node.ATTRIBUTE_NODE:	            	return new StringValue(n.getLocalName());	        	default:	            	return new StringValue("");	        }        }         return new StringValue("");    }