KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > armedbear > lisp > SimpleTypeError


1 /*
2  * SimpleTypeError.java
3  *
4  * Copyright (C) 2002-2004 Peter Graves
5  * $Id: SimpleTypeError.java,v 1.4 2004/03/10 01:53:21 piso Exp $
6  *
7  * This program is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU General Public License
9  * as published by the Free Software Foundation; either version 2
10  * of the License, or (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, write to the Free Software
19  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20  */

21
22 package org.armedbear.lisp;
23
24 public final class SimpleTypeError extends TypeError
25 {
26     public SimpleTypeError(LispObject initArgs) throws ConditionThrowable
27     {
28         super(initArgs);
29     }
30
31     public LispObject typeOf()
32     {
33         return Symbol.SIMPLE_TYPE_ERROR;
34     }
35
36     public LispClass classOf()
37     {
38         return BuiltInClass.SIMPLE_TYPE_ERROR;
39     }
40
41     public LispObject typep(LispObject type) throws ConditionThrowable
42     {
43         if (type == Symbol.SIMPLE_TYPE_ERROR)
44             return T;
45         if (type == BuiltInClass.SIMPLE_TYPE_ERROR)
46             return T;
47         if (type == Symbol.SIMPLE_CONDITION)
48             return T;
49         if (type == BuiltInClass.SIMPLE_CONDITION)
50             return T;
51         return super.typep(type);
52     }
53
54     public String JavaDoc getMessage()
55     {
56         try {
57             LispObject formatControl = getFormatControl();
58             if (formatControl != NIL) {
59                 LispObject formatArguments = getFormatArguments();
60                 if (formatArguments != NIL) {
61                     // (apply 'format (append '(nil format-control) format-arguments))
62
LispObject result =
63                         Primitives.APPLY.execute(Symbol.FORMAT,
64                                                  Primitives.APPEND.execute(list2(NIL,
65                                                                                  formatControl),
66                                                                    formatArguments));
67                     return result.getStringValue();
68                 }
69             }
70             if (datum != null && expectedType != null) {
71                 StringBuffer JavaDoc sb = new StringBuffer JavaDoc("The value ");
72                 sb.append(String.valueOf(datum));
73                 sb.append(" is not of type ");
74                 sb.append(String.valueOf(expectedType));
75                 sb.append('.');
76                 return sb.toString();
77             }
78         }
79         catch (Throwable JavaDoc t) {}
80         return null;
81     }
82 }
83
Popular Tags