blob: 5dfce48d3f17d4433f80c7c8600c82ad82c3b673 [file] [log] [blame]
/*
* Copyright (C) 2017 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 android.net.lowpan;
import android.os.ServiceSpecificException;
import android.util.AndroidException;
/**
* <code>LowpanException</code> is thrown if an action to a LoWPAN interface could not be performed
* or a LoWPAN interface property could not be fetched or changed.
*
* @see LowpanInterface
* @hide
*/
// @SystemApi
public class LowpanException extends AndroidException {
public LowpanException() {}
public LowpanException(String message) {
super(message);
}
public LowpanException(String message, Throwable cause) {
super(message, cause);
}
public LowpanException(Exception cause) {
super(cause);
}
/* This method returns LowpanException so that the caller
* can add "throw" before the invocation of this method.
* This might seem superfluous, but it is actually to
* help provide a hint to the java compiler that this
* function will not return.
*/
static LowpanException rethrowFromServiceSpecificException(ServiceSpecificException e)
throws LowpanException {
switch (e.errorCode) {
case ILowpanInterface.ERROR_DISABLED:
throw new InterfaceDisabledException(e);
case ILowpanInterface.ERROR_WRONG_STATE:
throw new WrongStateException(e);
case ILowpanInterface.ERROR_CANCELED:
throw new OperationCanceledException(e);
case ILowpanInterface.ERROR_JOIN_FAILED_UNKNOWN:
throw new JoinFailedException(e);
case ILowpanInterface.ERROR_JOIN_FAILED_AT_SCAN:
throw new JoinFailedAtScanException(e);
case ILowpanInterface.ERROR_JOIN_FAILED_AT_AUTH:
throw new JoinFailedAtAuthException(e);
case ILowpanInterface.ERROR_FORM_FAILED_AT_SCAN:
throw new NetworkAlreadyExistsException(e);
case ILowpanInterface.ERROR_FEATURE_NOT_SUPPORTED:
throw new LowpanException(
e.getMessage() != null ? e.getMessage() : "Feature not supported", e);
case ILowpanInterface.ERROR_NCP_PROBLEM:
throw new LowpanRuntimeException(
e.getMessage() != null ? e.getMessage() : "NCP problem", e);
case ILowpanInterface.ERROR_INVALID_ARGUMENT:
throw new LowpanRuntimeException(
e.getMessage() != null ? e.getMessage() : "Invalid argument", e);
case ILowpanInterface.ERROR_UNSPECIFIED:
default:
throw new LowpanRuntimeException(e);
}
}
}