14c27e0e3bed006a9ba45c6c02be5fe49827b3feaSan Mehat/* 24c27e0e3bed006a9ba45c6c02be5fe49827b3feaSan Mehat * Copyright (C) 2006 The Android Open Source Project 34c27e0e3bed006a9ba45c6c02be5fe49827b3feaSan Mehat * 44c27e0e3bed006a9ba45c6c02be5fe49827b3feaSan Mehat * Licensed under the Apache License, Version 2.0 (the "License"); 54c27e0e3bed006a9ba45c6c02be5fe49827b3feaSan Mehat * you may not use this file except in compliance with the License. 64c27e0e3bed006a9ba45c6c02be5fe49827b3feaSan Mehat * You may obtain a copy of the License at 74c27e0e3bed006a9ba45c6c02be5fe49827b3feaSan Mehat * 84c27e0e3bed006a9ba45c6c02be5fe49827b3feaSan Mehat * http://www.apache.org/licenses/LICENSE-2.0 94c27e0e3bed006a9ba45c6c02be5fe49827b3feaSan Mehat * 104c27e0e3bed006a9ba45c6c02be5fe49827b3feaSan Mehat * Unless required by applicable law or agreed to in writing, software 114c27e0e3bed006a9ba45c6c02be5fe49827b3feaSan Mehat * distributed under the License is distributed on an "AS IS" BASIS, 124c27e0e3bed006a9ba45c6c02be5fe49827b3feaSan Mehat * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 134c27e0e3bed006a9ba45c6c02be5fe49827b3feaSan Mehat * See the License for the specific language governing permissions and 144c27e0e3bed006a9ba45c6c02be5fe49827b3feaSan Mehat * limitations under the License. 154c27e0e3bed006a9ba45c6c02be5fe49827b3feaSan Mehat */ 164c27e0e3bed006a9ba45c6c02be5fe49827b3feaSan Mehat 174c27e0e3bed006a9ba45c6c02be5fe49827b3feaSan Mehatpackage com.android.server; 184c27e0e3bed006a9ba45c6c02be5fe49827b3feaSan Mehat 1931c6e4817f6c967fc4f61c4f1d9f25743958f7deJeff Sharkeyimport android.os.Parcel; 2031c6e4817f6c967fc4f61c4f1d9f25743958f7deJeff Sharkey 214c27e0e3bed006a9ba45c6c02be5fe49827b3feaSan Mehat/** 2231c6e4817f6c967fc4f61c4f1d9f25743958f7deJeff Sharkey * An exception that indicates there was an error with a 2331c6e4817f6c967fc4f61c4f1d9f25743958f7deJeff Sharkey * {@link NativeDaemonConnector} operation. 244c27e0e3bed006a9ba45c6c02be5fe49827b3feaSan Mehat */ 2531c6e4817f6c967fc4f61c4f1d9f25743958f7deJeff Sharkeypublic class NativeDaemonConnectorException extends Exception { 26ec4caa0f549bf9a75d20daa95b8aa8d9fab39681San Mehat private String mCmd; 2731c6e4817f6c967fc4f61c4f1d9f25743958f7deJeff Sharkey private NativeDaemonEvent mEvent; 284c27e0e3bed006a9ba45c6c02be5fe49827b3feaSan Mehat 2931c6e4817f6c967fc4f61c4f1d9f25743958f7deJeff Sharkey public NativeDaemonConnectorException(String detailMessage) { 3031c6e4817f6c967fc4f61c4f1d9f25743958f7deJeff Sharkey super(detailMessage); 3131c6e4817f6c967fc4f61c4f1d9f25743958f7deJeff Sharkey } 324c27e0e3bed006a9ba45c6c02be5fe49827b3feaSan Mehat 3331c6e4817f6c967fc4f61c4f1d9f25743958f7deJeff Sharkey public NativeDaemonConnectorException(String detailMessage, Throwable throwable) { 3431c6e4817f6c967fc4f61c4f1d9f25743958f7deJeff Sharkey super(detailMessage, throwable); 354c27e0e3bed006a9ba45c6c02be5fe49827b3feaSan Mehat } 364c27e0e3bed006a9ba45c6c02be5fe49827b3feaSan Mehat 3731c6e4817f6c967fc4f61c4f1d9f25743958f7deJeff Sharkey public NativeDaemonConnectorException(String cmd, NativeDaemonEvent event) { 3831c6e4817f6c967fc4f61c4f1d9f25743958f7deJeff Sharkey super("command '" + cmd + "' failed with '" + event + "'"); 39ec4caa0f549bf9a75d20daa95b8aa8d9fab39681San Mehat mCmd = cmd; 4031c6e4817f6c967fc4f61c4f1d9f25743958f7deJeff Sharkey mEvent = event; 414c27e0e3bed006a9ba45c6c02be5fe49827b3feaSan Mehat } 424c27e0e3bed006a9ba45c6c02be5fe49827b3feaSan Mehat 434c27e0e3bed006a9ba45c6c02be5fe49827b3feaSan Mehat public int getCode() { 4431c6e4817f6c967fc4f61c4f1d9f25743958f7deJeff Sharkey return mEvent.getCode(); 454c27e0e3bed006a9ba45c6c02be5fe49827b3feaSan Mehat } 46ec4caa0f549bf9a75d20daa95b8aa8d9fab39681San Mehat 47ec4caa0f549bf9a75d20daa95b8aa8d9fab39681San Mehat public String getCmd() { 48ec4caa0f549bf9a75d20daa95b8aa8d9fab39681San Mehat return mCmd; 49ec4caa0f549bf9a75d20daa95b8aa8d9fab39681San Mehat } 5031c6e4817f6c967fc4f61c4f1d9f25743958f7deJeff Sharkey 5131c6e4817f6c967fc4f61c4f1d9f25743958f7deJeff Sharkey /** 5231c6e4817f6c967fc4f61c4f1d9f25743958f7deJeff Sharkey * Rethrow as a {@link RuntimeException} subclass that is handled by 5331c6e4817f6c967fc4f61c4f1d9f25743958f7deJeff Sharkey * {@link Parcel#writeException(Exception)}. 5431c6e4817f6c967fc4f61c4f1d9f25743958f7deJeff Sharkey */ 5531c6e4817f6c967fc4f61c4f1d9f25743958f7deJeff Sharkey public IllegalArgumentException rethrowAsParcelableException() { 5631c6e4817f6c967fc4f61c4f1d9f25743958f7deJeff Sharkey throw new IllegalStateException(getMessage(), this); 5731c6e4817f6c967fc4f61c4f1d9f25743958f7deJeff Sharkey } 584c27e0e3bed006a9ba45c6c02be5fe49827b3feaSan Mehat} 59