⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sublist.java

📁 A framework written in Java for implementing high-level and dynamic languages, compiling them into J
💻 JAVA
字号:
// Copyright (c) 2001  Per M.A. Bothner and Brainfood Inc.// This is free software;  for terms and warranty disclaimer see ./COPYING.package gnu.xquery.util;import gnu.mapping.*;import gnu.lists.*;/** Extracts a sub-range from a value sequence. * Implements XQuery 'sublist'. */public class SubList extends MethodProc{  public static final SubList subList = new SubList();  public int numArgs() { return 0x3002; }  public static void subList(Object seq, double start, double end,                             Consumer out)  {    if (seq instanceof Values)      {	Values vals = (Values) seq;        int n = 0;	int i = 0;	while (++n < start)	  {	    i = vals.nextDataIndex(i);	    if (i < 0)	      return;	  }	int startPosition = i;	int endPosition = i;	while (n++ < end)	  {	    i = vals.nextDataIndex(i);	    if (i < 0)	      break;	    endPosition = i;	  }	vals.consumeIRange(startPosition, endPosition, out);      }    else      {	if (start <= 1 && end >= 2)	  out.writeObject(seq);      }  }  public void apply (CallContext ctx)  {    Consumer consumer = ctx.consumer;    Object seq = ctx.getNextArg();    double d1 = Math.round(StringUtils.asDouble(ctx.getNextArg()));    Object eof = Sequence.eofValue;     Object arg2 = ctx.getNextArg(eof);    ctx.lastArg();    double d2 = arg2 != eof ? Math.round(StringUtils.asDouble(arg2))      : Double.POSITIVE_INFINITY;    subList(seq, d1, d1 + d2, consumer);  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -