blob: f5f20b9c7570d37fe1bbd01cea9e7c6d78e34853 [file] [log] [blame]
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.base;
import org.chromium.base.annotations.CalledByNative;
/**
* A simple single-argument callback to handle the result of a computation.
*
* @param <T> The type of the computation's result.
*/
public interface Callback<T> {
/**
* Invoked with the result of a computation.
*/
void onResult(T result);
/**
* JNI Generator does not know how to target static methods on interfaces
* (which is new in Java 8, and requires desugaring).
*/
abstract class Helper {
@SuppressWarnings("unchecked")
@CalledByNative("Helper")
static void onObjectResultFromNative(Callback callback, Object result) {
callback.onResult(result);
}
@SuppressWarnings("unchecked")
@CalledByNative("Helper")
static void onBooleanResultFromNative(Callback callback, boolean result) {
callback.onResult(Boolean.valueOf(result));
}
@SuppressWarnings("unchecked")
@CalledByNative("Helper")
static void onIntResultFromNative(Callback callback, int result) {
callback.onResult(Integer.valueOf(result));
}
}
}