if (cachedResults != null && cachedResults[1] != null)  return (ResolverExport[]) cachedResults[1];
if (cachedResults != null && cachedResults[1] != null) { if (!constrained.getExporter().isResolved()) {  ResolverExport[] constraints = (ResolverExport[]) cachedResults[1]; boolean dropped = false; for (int i = 0; !dropped && i < constraints.length; i++) dropped = constraints[i].isDropped(); if (!dropped) return constraints;  } else {  return (ResolverExport[]) cachedResults[1]; } }
	private ResolverExport[] getConstraints(ResolverExport constrained) {		// check the cache first		Object[] cachedResults = getCachedConstraints(constrained);		if (cachedResults != null && cachedResults[1] != null)			// we have aready cached the results for this return the cached results			return (ResolverExport[]) cachedResults[1];		ArrayList resultlist = getConstraintsList(constrained);		ResolverExport[] results = (ResolverExport[]) resultlist.toArray(new ResolverExport[resultlist.size()]);		if (!checkCycles || constrained.getExporter().isResolved()) {			// if the bundle is resolved or we are not checking cycles then we can add the results to the cached results			if (cachedResults == null)				cachedResults = createConstraintsCache(constrained); // should have been created by getConstraintsList			cachedResults[1] = results;		}		return results;	}