1aeb4c0601330f5f30fe0026a714ff59f0fe90abfRitesh Reddy/* 2aeb4c0601330f5f30fe0026a714ff59f0fe90abfRitesh Reddy * Copyright (C) 2008 The Android Open Source Project 3aeb4c0601330f5f30fe0026a714ff59f0fe90abfRitesh Reddy * 4aeb4c0601330f5f30fe0026a714ff59f0fe90abfRitesh Reddy * Licensed under the Apache License, Version 2.0 (the "License"); 5aeb4c0601330f5f30fe0026a714ff59f0fe90abfRitesh Reddy * you may not use this file except in compliance with the License. 6aeb4c0601330f5f30fe0026a714ff59f0fe90abfRitesh Reddy * You may obtain a copy of the License at 7aeb4c0601330f5f30fe0026a714ff59f0fe90abfRitesh Reddy * 8aeb4c0601330f5f30fe0026a714ff59f0fe90abfRitesh Reddy * http://www.apache.org/licenses/LICENSE-2.0 9aeb4c0601330f5f30fe0026a714ff59f0fe90abfRitesh Reddy * 10aeb4c0601330f5f30fe0026a714ff59f0fe90abfRitesh Reddy * Unless required by applicable law or agreed to in writing, software 11aeb4c0601330f5f30fe0026a714ff59f0fe90abfRitesh Reddy * distributed under the License is distributed on an "AS IS" BASIS, 12aeb4c0601330f5f30fe0026a714ff59f0fe90abfRitesh Reddy * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13aeb4c0601330f5f30fe0026a714ff59f0fe90abfRitesh Reddy * See the License for the specific language governing permissions and 14aeb4c0601330f5f30fe0026a714ff59f0fe90abfRitesh Reddy * limitations under the License. 15aeb4c0601330f5f30fe0026a714ff59f0fe90abfRitesh Reddy */ 16aeb4c0601330f5f30fe0026a714ff59f0fe90abfRitesh Reddy 17aeb4c0601330f5f30fe0026a714ff59f0fe90abfRitesh Reddypackage android.util; 18aeb4c0601330f5f30fe0026a714ff59f0fe90abfRitesh Reddy 19aeb4c0601330f5f30fe0026a714ff59f0fe90abfRitesh Reddyimport java.io.DataInputStream; 20aeb4c0601330f5f30fe0026a714ff59f0fe90abfRitesh Reddyimport java.io.DataOutputStream; 21aeb4c0601330f5f30fe0026a714ff59f0fe90abfRitesh Reddyimport java.io.IOException; 22aeb4c0601330f5f30fe0026a714ff59f0fe90abfRitesh Reddy 23aeb4c0601330f5f30fe0026a714ff59f0fe90abfRitesh Reddy/** 24aeb4c0601330f5f30fe0026a714ff59f0fe90abfRitesh Reddy * Utility methods for Backup/Restore 25aeb4c0601330f5f30fe0026a714ff59f0fe90abfRitesh Reddy * @hide 26aeb4c0601330f5f30fe0026a714ff59f0fe90abfRitesh Reddy */ 27aeb4c0601330f5f30fe0026a714ff59f0fe90abfRitesh Reddypublic class BackupUtils { 28aeb4c0601330f5f30fe0026a714ff59f0fe90abfRitesh Reddy 29aeb4c0601330f5f30fe0026a714ff59f0fe90abfRitesh Reddy public static final int NULL = 0; 30aeb4c0601330f5f30fe0026a714ff59f0fe90abfRitesh Reddy public static final int NOT_NULL = 1; 31aeb4c0601330f5f30fe0026a714ff59f0fe90abfRitesh Reddy 32aeb4c0601330f5f30fe0026a714ff59f0fe90abfRitesh Reddy /** 33aeb4c0601330f5f30fe0026a714ff59f0fe90abfRitesh Reddy * Thrown when there is a backup version mismatch 34aeb4c0601330f5f30fe0026a714ff59f0fe90abfRitesh Reddy * between the data received and what the system can handle 35aeb4c0601330f5f30fe0026a714ff59f0fe90abfRitesh Reddy */ 36aeb4c0601330f5f30fe0026a714ff59f0fe90abfRitesh Reddy public static class BadVersionException extends Exception { 37aeb4c0601330f5f30fe0026a714ff59f0fe90abfRitesh Reddy public BadVersionException(String message) { 38aeb4c0601330f5f30fe0026a714ff59f0fe90abfRitesh Reddy super(message); 39aeb4c0601330f5f30fe0026a714ff59f0fe90abfRitesh Reddy } 40aeb4c0601330f5f30fe0026a714ff59f0fe90abfRitesh Reddy } 41aeb4c0601330f5f30fe0026a714ff59f0fe90abfRitesh Reddy 42aeb4c0601330f5f30fe0026a714ff59f0fe90abfRitesh Reddy public static String readString(DataInputStream in) throws IOException { 43aeb4c0601330f5f30fe0026a714ff59f0fe90abfRitesh Reddy return (in.readByte() == NOT_NULL) ? in.readUTF() : null; 44aeb4c0601330f5f30fe0026a714ff59f0fe90abfRitesh Reddy } 45aeb4c0601330f5f30fe0026a714ff59f0fe90abfRitesh Reddy 46aeb4c0601330f5f30fe0026a714ff59f0fe90abfRitesh Reddy public static void writeString(DataOutputStream out, String val) throws IOException { 47aeb4c0601330f5f30fe0026a714ff59f0fe90abfRitesh Reddy if (val != null) { 48aeb4c0601330f5f30fe0026a714ff59f0fe90abfRitesh Reddy out.writeByte(NOT_NULL); 49aeb4c0601330f5f30fe0026a714ff59f0fe90abfRitesh Reddy out.writeUTF(val); 50aeb4c0601330f5f30fe0026a714ff59f0fe90abfRitesh Reddy } else { 51aeb4c0601330f5f30fe0026a714ff59f0fe90abfRitesh Reddy out.writeByte(NULL); 52aeb4c0601330f5f30fe0026a714ff59f0fe90abfRitesh Reddy } 53aeb4c0601330f5f30fe0026a714ff59f0fe90abfRitesh Reddy } 54aeb4c0601330f5f30fe0026a714ff59f0fe90abfRitesh Reddy}