if (this.setSpecPath == null) {  return new FedoraSetInfoIterator(); }
	public RemoteIterator listSetInfo() {                GraphQuery query = new GraphQuery();               /* First, the required bits */        GraphPattern requiredPath = new GraphPattern();        try {            requiredPath.addTriplePattern(getPattern("$set", "<" + setSpec + ">", "$setSpec"));            requiredPath.addTriplePattern(getPattern("$set", "<" + setName + ">", "$setName"));        } catch (ParseException e) {            throw new RepositoryException("could not parse setSpec or setName\n", e);        }        query.addRequired(requiredPath);                /* Now, the optional dissemination */        GraphPattern disseminationPath = new GraphPattern();        try {            disseminationPath.addTriplePattern(getPattern("$set", "<" + VIEW.DISSEMINATES + ">", "$setDiss"));            disseminationPath.addTriplePattern(getPattern("$setDiss", "<" + VIEW.DISSEMINATION_TYPE.uri + ">", "<" + setSpecDissType + ">"));         } catch (ParseException e) {            throw new RepositoryException("Could not parse set info dissemination path\n", e);        }        query.addOptional(disseminationPath);                String[] targets = {"$set", "$setSpec", "$setName", "$setDiss"};        GraphQuerySQLProvider builder = new GraphQuerySQLProvider(adaptor, query);        builder.setTargets(Arrays.asList(targets));                try {            logger.debug("Build SetInfo query " + builder.getSQL());        } catch (QueryException e) {            logger.error("Error building SetInfo query", e);        }        return new MPTSetInfoIterator(client, builder, dataSource);	}