ValueNumberCache.Entry entry = new ValueNumberCache.Entry(handle, inputValueList); ValueNumber[] outputValueList = cache.lookupOutputValues(entry); if (outputValueList == null) { outputValueList = new ValueNumber[numWordsProduced]; for (int i = 0; i < numWordsProduced; ++i) outputValueList[i] = factory.createFreshValue(); cache.addOutputValues(entry, outputValueList); } return outputValueList;
return getOutputValues(inputValueList, numWordsProduced, 0);
	private ValueNumber[] getOutputValues(ValueNumber[] inputValueList, int numWordsProduced) {		ValueNumberCache.Entry entry = new ValueNumberCache.Entry(handle, inputValueList);		ValueNumber[] outputValueList = cache.lookupOutputValues(entry);		if (outputValueList == null) {			outputValueList = new ValueNumber[numWordsProduced];			for (int i = 0; i < numWordsProduced; ++i)				outputValueList[i] = factory.createFreshValue();			cache.addOutputValues(entry, outputValueList);		}		return outputValueList;	}