return new MPTItemIterator(client, builder, dataSource, mdPrefix, deletedState, recordDiss, aboutDiss);
return new MPTItemIterator(client, builder, dataSource, mdPrefix, recordDiss, aboutDiss);
	public RemoteIterator listRecords(Date from, Date until, String mdPrefix,			String mdPrefixDissType, String mdPrefixAboutDissType) {		        String recordDiss = FedoraOAIDriver.getRequired(proaiProperties, FedoraOAIDriver.NS +                 "md.format." + mdPrefix + ".dissType");                 String aboutDiss = FedoraOAIDriver.getOptional(proaiProperties, FedoraOAIDriver.NS +                 "md.format." + mdPrefix + ".about.dissType");        		GraphQuery query = new GraphQuery();		        GraphPattern requiredPath = new GraphPattern();        try {            /* First, build the core required part of the query */            requiredPath = new GraphPattern();            requiredPath.addTriplePattern(getPattern("$item", "<" + this.itemID + ">",  "$itemID"));            requiredPath.addTriplePattern(getPattern("$item", "<info:fedora/fedora-system:def/view#disseminates>", "$recordDiss"));            requiredPath.addTriplePattern(getPattern("$recordDiss", "<info:fedora/fedora-system:def/view#disseminationType>", "<" + mdPrefixDissType + ">"));            requiredPath.addTriplePattern(getPattern("$recordDiss", "<info:fedora/fedora-system:def/view#lastModifiedDate>", "$date"));            requiredPath.addTriplePattern(getPattern("$recordDiss", "<info:fedora/fedora-system:def/model#state>", "$state"));                    requiredPath.addFilter(getFilter("$date", ">", "\"" + DateUtility.convertDateToString(new Date(from.getTime() - 1)) + "\""));            /* Note: We add a milisecond to the 'until', in order to assure that the comparison is inclusive */             requiredPath.addFilter(getFilter("$date", "<", "\"" + DateUtility.convertDateToString(new Date(until.getTime() + 1)) + "\""));        } catch (ParseException e) {            throw new RepositoryException("Could not parse itemID", e);        }        query.addRequired(requiredPath);				/* Next, the setSpec, if asked for) */		if (setSpecPath != null && setSpecPath.length() > 0) {			query.addOptional(parseSetSpecPath(setSpecPath));		}				/* Next, the about */		GraphPattern aboutPath = new GraphPattern();        try {            aboutPath.addTriplePattern(getPattern("$item", "<info:fedora/fedora-system:def/view#disseminates>", "$aboutDiss"));            aboutPath.addTriplePattern(getPattern("$aboutDiss", "<info:fedora/fedora-system:def/view#disseminationType>", "<" + mdPrefixAboutDissType + ">"));        } catch (ParseException e) {            throw new RepositoryException("Could not parse metadata about dissemination type \n", e);        }        query.addOptional(aboutPath);		        String[] targets = {"$item", "$itemID", "$date", "$state", "$setSpec", "$recordDiss", "$aboutDiss"};        GraphQuerySQLProvider builder = new GraphQuerySQLProvider(adaptor, query);        builder.setTargets(Arrays.asList(targets));        builder.orderBy("$itemID", false);                try {            logger.debug("Build ListRecords query " + builder.getSQL());        } catch (QueryException e) {            logger.error("Error building ListRecords query", e);        }		return new MPTItemIterator(client, builder, dataSource, mdPrefix, deletedState, recordDiss, aboutDiss);	}