class ClientDelegator extends BaseDelegator implements IClientDelegator {

	static IClient getClientOrNullFromHelixResultMap(
			@Nullable final List<Map<String, Object>> resultMaps,
			@Nullable final GetClientTemplateOptions opts,
			@Nonnull final IOptionsServer server,
			@Nonnull final BiPredicate<Map<String, Object>, GetClientTemplateOptions> conditions,
			@Nonnull final Function<Map<String, Object>, Boolean> handle)
			throws AccessException, RequestException {

		IClient client = null;
		if (nonNull(resultMaps)) {
			for (Map<String, Object> map : resultMaps) {
				if (nonNull(map)) {
					if (handle.apply(map)) {
						if (conditions.test(map, opts)) {
							client = new Client(server, map);
						}
					}
				}
			}
		}

		return client;
	}

	public  ClientDelegator(IOptionsServer server);

}