1 /*
2 * The SmartWeb Framework
3 * Copyright (C) 2004-2006
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18 *
19 * For further informations on the SmartWeb Framework please visit
20 *
21 * http://smartweb.sourceforge.net
22 */
23 package net.smartlab.web;
24
25 import java.io.Serializable;
26
27 /**
28 * An UndefinedKeyException is thrown whenever an application tries to retrieve
29 * from a persistent storage an entity using the <i>unique identifier</i>, also
30 * known as <i>primary key</i> or simply <i>key</i>, and the requested
31 * identifing value is not present in the storage system.
32 *
33 * @author rlogiacco
34 */
35 public class UndefinedKeyException extends DAOException {
36
37 private final static long serialVersionUID = 4418831216086543320L;
38
39 /**
40 * The key not found on the database.
41 *
42 * @uml.property name="key"
43 */
44 private Serializable key;
45
46 /**
47 * The class referred by the search.
48 *
49 * @uml.property name="type"
50 */
51 private Class type;
52
53
54 /**
55 * Constructs a new instance with the key and type not found in the
56 * repository and originating exception.
57 *
58 * @param key the key not found in the repository.
59 * @param type the class of the key not found in the repository.
60 * @param cause the originating exception.
61 */
62 public UndefinedKeyException(Serializable key, Class type, Throwable cause) {
63 super("persistence.error.select", cause);
64 this.key = key;
65 this.type = type;
66 }
67
68 /**
69 * Constructs a new instance with the key and type not found in the
70 * repository.
71 *
72 * @param key the key not found in the repository.
73 * @param type the class of the key not found in the repository.
74 */
75 public UndefinedKeyException(Serializable key, Class type) {
76 super("persistence.error.select");
77 this.key = key;
78 this.type = type;
79 }
80
81 /**
82 * Returns the key.
83 *
84 * @return the key.
85 * @uml.property name="key"
86 */
87 public Serializable getKey() {
88 return key;
89 }
90
91 /**
92 * Returns the type.
93 *
94 * @return the type.
95 * @uml.property name="type"
96 */
97 public Class getType() {
98 return type;
99 }
100 }