1f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project/*
2f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Licensed to the Apache Software Foundation (ASF) under one or more
3f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * contributor license agreements.  See the NOTICE file distributed with
4f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * this work for additional information regarding copyright ownership.
5f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * The ASF licenses this file to You under the Apache License, Version 2.0
6f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * (the "License"); you may not use this file except in compliance with
7f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the License.  You may obtain a copy of the License at
8f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *
9f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *     http://www.apache.org/licenses/LICENSE-2.0
10f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *
11f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Unless required by applicable law or agreed to in writing, software
12f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS,
13f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * See the License for the specific language governing permissions and
15f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * limitations under the License.
16f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */
17f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
18f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpackage java.sql;
19f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
20f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.Serializable;
21f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
22f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport org.apache.harmony.sql.internal.nls.Messages;
23f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
24f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project/**
25f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * An exception class that holds information about Database access warnings.
26f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project *
27f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @since Android 1.0
28f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */
29f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpublic class SQLWarning extends SQLException implements Serializable {
30f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
31f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    private static final long serialVersionUID = 3917336774604784856L;
32f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
33f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
34f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Creates an {@code SQLWarning} object. The reason string is set to {@code
35f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * null}, the {@code SQLState} string is set to {@code null} and the error
36f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * code is set to 0.
37f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *
38f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @since Android 1.0
39f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
40f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public SQLWarning() {
41f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        super();
42f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
43f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
44f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
45f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Creates an {@code SQLWarning} object. The reason string is set to the
46f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * given reason string, the {@code SQLState} string is set to {@code null}
47f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * and the error code is set to 0.
48f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *
49f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param theReason
50f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            the reason why this warning is issued.
51f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @since Android 1.0
52f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
53f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public SQLWarning(String theReason) {
54f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        super(theReason);
55f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
56f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
57f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
58f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Creates an {@code SQLWarning} object. The reason string is set to the
59f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * given reason string, the {@code SQLState} string is set to the given
60f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * {@code SQLState} string and the error code is set to 0.
61f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *
62f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param theReason
63f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            the reason why this warning is issued.
64f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param theSQLState
65f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            the string to use as the {@code SQLState} string.
66f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
67f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public SQLWarning(String theReason, String theSQLState) {
68f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        super(theReason, theSQLState);
69f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
70f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
71f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
72f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Creates an {@code SQLWarning} object. The reason string is set to the
73f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * given reason string, the {@code SQLState} string is set to the given
74f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * {@code SQLState} string and the error code is set to the given error code
75f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * value.
76f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *
77f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param theReason
78f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            the reason why this warning is issued.
79f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param theSQLState
80f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            the X/Open standard specifc error code.
81f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param theErrorCode
82f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            a vendor specific error code.
83f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @since Android 1.0
84f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
85f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public SQLWarning(String theReason, String theSQLState, int theErrorCode) {
86f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        super(theReason, theSQLState, theErrorCode);
87f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
88f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
89f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
90f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Gets the next {@code SQLWarning} chained to this {@code SQLWarning} object.
91f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *
92f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @return the {@code SQLWarning} chained to this {@code SQLWarning}.
93f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *         {@code null} if no {@code SQLWarning} is chained to this {@code
94f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *         SQLWarning}.
95f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @since Android 1.0
96f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
97f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public SQLWarning getNextWarning() {
98f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        SQLException next = super.getNextException();
99f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        if (next == null) {
100f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            return null;
101f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
102f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        if (next instanceof SQLWarning) {
103f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            return (SQLWarning) next;
104f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
105f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        throw new Error(Messages.getString("sql.8")); //$NON-NLS-1$
106f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
107f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
108f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
109f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * Chains a supplied {@code SQLWarning} to this {@code SQLWarning}.
110f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *
111f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @param w
112f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *            the {@code SQLWarning} linked to this {@code SQLWarning}.
113f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @since Android 1.0
114f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
115f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void setNextWarning(SQLWarning w) {
116f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        super.setNextException(w);
117f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
118f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project}
119