1/*
2 * Copyright (C) 2007 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package com.android.dexgen.rop.code;
18
19import com.android.dexgen.rop.type.StdTypeList;
20import com.android.dexgen.rop.type.Type;
21
22/**
23 * Common exception types.
24 */
25public final class Exceptions {
26    /** {@code non-null;} the type {@code java.lang.ArithmeticException} */
27    public static final Type TYPE_ArithmeticException =
28        Type.intern("Ljava/lang/ArithmeticException;");
29
30    /**
31     * {@code non-null;} the type
32     * {@code java.lang.ArrayIndexOutOfBoundsException}
33     */
34    public static final Type TYPE_ArrayIndexOutOfBoundsException =
35        Type.intern("Ljava/lang/ArrayIndexOutOfBoundsException;");
36
37    /** {@code non-null;} the type {@code java.lang.ArrayStoreException} */
38    public static final Type TYPE_ArrayStoreException =
39        Type.intern("Ljava/lang/ArrayStoreException;");
40
41    /** {@code non-null;} the type {@code java.lang.ClassCastException} */
42    public static final Type TYPE_ClassCastException =
43        Type.intern("Ljava/lang/ClassCastException;");
44
45    /** {@code non-null;} the type {@code java.lang.Error} */
46    public static final Type TYPE_Error = Type.intern("Ljava/lang/Error;");
47
48    /**
49     * {@code non-null;} the type
50     * {@code java.lang.IllegalMonitorStateException}
51     */
52    public static final Type TYPE_IllegalMonitorStateException =
53        Type.intern("Ljava/lang/IllegalMonitorStateException;");
54
55    /** {@code non-null;} the type {@code java.lang.NegativeArraySizeException} */
56    public static final Type TYPE_NegativeArraySizeException =
57        Type.intern("Ljava/lang/NegativeArraySizeException;");
58
59    /** {@code non-null;} the type {@code java.lang.NullPointerException} */
60    public static final Type TYPE_NullPointerException =
61        Type.intern("Ljava/lang/NullPointerException;");
62
63    /** {@code non-null;} the list {@code [java.lang.Error]} */
64    public static final StdTypeList LIST_Error = StdTypeList.make(TYPE_Error);
65
66    /**
67     * {@code non-null;} the list {@code[java.lang.Error,
68     * java.lang.ArithmeticException]}
69     */
70    public static final StdTypeList LIST_Error_ArithmeticException =
71        StdTypeList.make(TYPE_Error, TYPE_ArithmeticException);
72
73    /**
74     * {@code non-null;} the list {@code[java.lang.Error,
75     * java.lang.ClassCastException]}
76     */
77    public static final StdTypeList LIST_Error_ClassCastException =
78        StdTypeList.make(TYPE_Error, TYPE_ClassCastException);
79
80    /**
81     * {@code non-null;} the list {@code [java.lang.Error,
82     * java.lang.NegativeArraySizeException]}
83     */
84    public static final StdTypeList LIST_Error_NegativeArraySizeException =
85        StdTypeList.make(TYPE_Error, TYPE_NegativeArraySizeException);
86
87    /**
88     * {@code non-null;} the list {@code [java.lang.Error,
89     * java.lang.NullPointerException]}
90     */
91    public static final StdTypeList LIST_Error_NullPointerException =
92        StdTypeList.make(TYPE_Error, TYPE_NullPointerException);
93
94    /**
95     * {@code non-null;} the list {@code [java.lang.Error,
96     * java.lang.NullPointerException,
97     * java.lang.ArrayIndexOutOfBoundsException]}
98     */
99    public static final StdTypeList LIST_Error_Null_ArrayIndexOutOfBounds =
100        StdTypeList.make(TYPE_Error,
101                      TYPE_NullPointerException,
102                      TYPE_ArrayIndexOutOfBoundsException);
103
104    /**
105     * {@code non-null;} the list {@code [java.lang.Error,
106     * java.lang.NullPointerException,
107     * java.lang.ArrayIndexOutOfBoundsException,
108     * java.lang.ArrayStoreException]}
109     */
110    public static final StdTypeList LIST_Error_Null_ArrayIndex_ArrayStore =
111        StdTypeList.make(TYPE_Error,
112                      TYPE_NullPointerException,
113                      TYPE_ArrayIndexOutOfBoundsException,
114                      TYPE_ArrayStoreException);
115
116    /**
117     * {@code non-null;} the list {@code [java.lang.Error,
118     * java.lang.NullPointerException,
119     * java.lang.IllegalMonitorStateException]}
120     */
121    public static final StdTypeList
122        LIST_Error_Null_IllegalMonitorStateException =
123        StdTypeList.make(TYPE_Error,
124                      TYPE_NullPointerException,
125                      TYPE_IllegalMonitorStateException);
126
127    /**
128     * This class is uninstantiable.
129     */
130    private Exceptions() {
131        // This space intentionally left blank.
132    }
133}
134