blob: a29c5bf2c51306aab825208aadc4e9ccaefb24aa [file] [log] [blame]
/*
* Copyright (C) 2022 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.networkstack.apishim.common;
/**
* A shim for Ikev2VpnProfile.
*
* T should extend Ikev2VpnProfile, but this can't be written here as that class is not
* available in API29.
* @param <T> type of profile, typically Ikev2VpnProfile
*/
// TODO : when API29 is no longer supported, remove the type argument
public interface Ikev2VpnProfileShim<T> {
/**
* @see Ikev2VpnProfile#isInternetValidationRequired()
*/
default boolean isInternetValidationRequired() throws UnsupportedApiLevelException {
throw new UnsupportedApiLevelException("Only supported from API level 33.");
}
/**
* @see Ikev2VpnProfile#getIkeTunnelConnectionParams()
*/
default Object getIkeTunnelConnectionParams() throws UnsupportedApiLevelException {
throw new UnsupportedApiLevelException("Only supported from API level 33.");
}
/**
* Return the <T> type of profile.
*/
default T getProfile() throws UnsupportedApiLevelException {
throw new UnsupportedApiLevelException("Only supported from API level 30.");
}
}