class OpenedDelegator extends BaseDelegator implements IOpenedDelegator {

    @Override
    public List<IFileSpec> getOpenedFiles(
            final List<IFileSpec> fileSpecs,
            final boolean allClients,
            final String clientName,
            final int maxFiles,
            final int changeListId) throws ConnectionException, AccessException {

        try {
            OpenedFilesOptions openedFilesOptions = new OpenedFilesOptions(
                    allClients,
                    clientName,
                    maxFiles,
                    null,
                    changeListId);

            return getOpenedFiles(fileSpecs, openedFilesOptions);
        } catch (final ConnectionException | AccessException exc) {
            throw exc;
        } catch (P4JavaException exc) {
            // TODO Why does this exception behave differently to return as 
            // empty list?
            Log.warn("Unexpected exception in IServer.openedFiles: %s", exc);
            return Collections.emptyList();
        }
    }

    public  OpenedDelegator(final IOptionsServer server);

}