class FixesDelegator extends BaseDelegator implements IFixesDelegator {

    @Override
    public List<IFix> getFixList(final List<IFileSpec> fileSpecs, final int changeListId,
            final String jobId, final boolean includeIntegrations, final int maxFixes)
            throws ConnectionException, RequestException, AccessException {

        try {
            // Note the hack below to get backwards compatibility with the
            // need to let IChangelist.DEFAULT be similar to saying *no*
            // changelist, which was arguably wrong and is fixed in the
            // new version where DEFAULT is OK. See job 040703.
            int resolvedChangelistId = changeListId;
            if (changeListId == IChangelist.DEFAULT) {
                resolvedChangelistId = IChangelist.UNKNOWN;
            }

            GetFixesOptions getFixesOptions = new GetFixesOptions()
                    .setChangelistId(resolvedChangelistId)
                    .setIncludeIntegrations(includeIntegrations).setJobId(jobId)
                    .setMaxFixes(maxFixes);
            return getFixes(fileSpecs, getFixesOptions);
        } catch (final ConnectionException | AccessException | RequestException exc) {
            throw exc;
        } catch (P4JavaException exc) {
            throw new RequestException(exc.getMessage(), exc);
        }
    }

    public  FixesDelegator(final IOptionsServer server);

}