diff options
Diffstat (limited to 'hit/src/com/android/hit/Types.java')
-rw-r--r-- | hit/src/com/android/hit/Types.java | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/hit/src/com/android/hit/Types.java b/hit/src/com/android/hit/Types.java new file mode 100644 index 0000000..62228ce --- /dev/null +++ b/hit/src/com/android/hit/Types.java @@ -0,0 +1,89 @@ +/* + * Copyright (C) 2008 Google Inc. + * + * 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.hit; + +public class Types { + private static int mIdSize = 4; + + public static final int OBJECT = 2; + public static final int BOOLEAN = 4; + public static final int CHAR = 5; + public static final int FLOAT = 6; + public static final int DOUBLE = 7; + public static final int BYTE = 8; + public static final int SHORT = 9; + public static final int INT = 10; + public static final int LONG = 11; + + public static final void setIdSize(int size) { + mIdSize = size; + } + + public static final int getTypeSize(int type) { + switch (type) { + case '[': return mIdSize; // array object + case 'L': return mIdSize; // object + case 'Z': return 1; // boolean + case 'C': return 2; // char + case 'F': return 4; // float + case 'D': return 8; // double + case 'B': return 1; // byte + case 'S': return 2; // short + case 'I': return 4; // int + case 'J': return 8; // long + + case OBJECT: return mIdSize; + case BOOLEAN: return 1; + case CHAR: return 2; + case FLOAT: return 4; + case DOUBLE: return 8; + case BYTE: return 1; + case SHORT: return 2; + case INT: return 4; + case LONG: return 8; + } + + throw new IllegalArgumentException("Illegal type signature: " + type); + } + + public static final String getTypeName(int type) { + switch (type) { + case '[': return "array"; + case 'L': return "object"; + case 'Z': return "boolean"; + case 'C': return "char"; + case 'F': return "float"; + case 'D': return "double"; + case 'B': return "byte"; + case 'S': return "short"; + case 'I': return "int"; + case 'J': return "long"; + + case OBJECT: return "object"; + case BOOLEAN: return "boolean"; + case CHAR: return "char"; + case FLOAT: return "float"; + case DOUBLE: return "double"; + case BYTE: return "byte"; + case SHORT: return "short"; + case INT: return "int"; + case LONG: return "long"; + } + + throw new IllegalArgumentException("Illegal type signature: " + type); + } +} |