public List<Tuple> readSync( Pattern pattern, String restriction, String key, long timeout, Provider provider) throws TupleSpaceException, TupleSpaceSecurityException { List<Tuple> tuples = new ArrayList<Tuple>(); switch (provider) { case LOCAL: tuples = localDomain.readSync(pattern, restriction, key, timeout); break; case INFRA: tuples = infraDomain.readSync(pattern, restriction, key, timeout); break; case ADHOC: tuples = adhocDomain.readSync(pattern, restriction, key, timeout); break; case ALL: tuples = localDomain.readSync(pattern, restriction, key, timeout); tuples.addAll(infraDomain.readSync(pattern, restriction, key, timeout)); tuples.addAll(adhocDomain.readSync(pattern, restriction, key, timeout)); break; default: // ANY provider tuples = localDomain.readSync(pattern, restriction, key, timeout); if (tuples == null || tuples.size() == 0) { tuples = infraDomain.readSync(pattern, restriction, key, timeout); if (tuples == null || tuples.size() == 0) { tuples = adhocDomain.readSync(pattern, restriction, key, timeout); } } break; } return tuples; }