001: /*
002: * Koala Bean Markup Language - Copyright (C) 1999 Dyade
003: *
004: * Permission is hereby granted, free of charge, to any person obtaining a
005: * copy of this software and associated documentation files
006: * (the "Software"), to deal in the Software without restriction, including
007: * without limitation the rights to use, copy, modify, merge, publish,
008: * distribute, sublicense, and/or sell copies of the Software, and to permit
009: * persons to whom the Software is furnished to do so, subject to the
010: * following conditions:
011: * The above copyright notice and this permission notice shall be included
012: * in all copies or substantial portions of the Software.
013: *
014: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
015: * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
016: * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
017: * IN NO EVENT SHALL Dyade BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
018: * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
019: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
020: * DEALINGS IN THE SOFTWARE.
021: *
022: * Except as contained in this notice, the name of Dyade shall not be
023: * used in advertising or otherwise to promote the sale, use or other
024: * dealings in this Software without prior written authorization from
025: * Dyade.
026: *
027: * $Id: KBMLDeserializerDefaultErrorHandler.java,v 1.4 2000/07/07 17:52:18 tkormann Exp $
028: * Author: Thierry.Kormann@sophia.inria.fr
029: */
030:
031: package fr.dyade.koala.xml.kbml;
032:
033: import java.beans.*;
034: import java.lang.reflect.*;
035: import java.io.IOException;
036:
037: /**
038: * The default error handler for the KBMLDeserializer that displays
039: * error messages on the standard error output stream.
040: *
041: * @author Thierry.Kormann@sophia.inria.fr
042: */
043: public class KBMLDeserializerDefaultErrorHandler implements
044: KBMLDeserializer.ErrorHandler {
045:
046: public void instanciateBean(String className, IOException ex) {
047: System.err.println("Can't instanciate the bean of class "
048: + className + "\n" + ex);
049: }
050:
051: public void instanciateBean(String className,
052: ClassNotFoundException ex) {
053: System.err.println("Can't instanciate the bean of class "
054: + className + "\n" + ex);
055: }
056:
057: public void instanciateBean(String className,
058: IllegalAccessException ex) {
059: System.err.println("Can't instanciate the bean of class "
060: + className + "\n" + ex);
061: }
062:
063: public void instanciateBean(String className,
064: InstantiationException ex) {
065: System.err.println("Can't instanciate the bean of class "
066: + className + "\n" + ex);
067: }
068:
069: public void instanciateBean(String className, NoSuchMethodError err) {
070: System.err.println("Can't instanciate the bean of class "
071: + className + "\n" + err);
072: }
073:
074: public void propertyDescriptor(Object bean, String propertyName) {
075: System.err
076: .println("Can't find property descriptor for property "
077: + bean.getClass().getName() + ":"
078: + propertyName);
079: }
080:
081: public void introspector(Object bean, IntrospectionException ex) {
082: System.err
083: .println("An error occured while getting the BeanInfo for "
084: + bean.getClass().getName() + "\n" + ex);
085: }
086:
087: public void writeMethod(Object bean, PropertyDescriptor pd) {
088: System.err.println("No write method found for "
089: + bean.getClass().getName() + ":" + pd.getName());
090: }
091:
092: public void writeMethod(Object bean, PropertyDescriptor pd,
093: IllegalAccessException ex) {
094: System.err.println("Error while trying to set the property "
095: + bean.getClass().getName() + ":" + pd.getName() + "\n"
096: + ex);
097: }
098:
099: public void writeMethod(Object bean, PropertyDescriptor pd,
100: InvocationTargetException ex) {
101: System.err.println("Error while trying to set the property "
102: + bean.getClass().getName() + ":" + pd.getName() + "\n"
103: + ex);
104: ex.getTargetException().printStackTrace();
105: }
106:
107: public void writeMethod(Object bean, PropertyDescriptor pd,
108: IllegalArgumentException ex) {
109: System.err.println("The write method\n" + pd.getWriteMethod()
110: + "\nof bean " + bean.getClass().getName()
111: + "\nhas been called with bad arguments\n" + ex);
112: }
113:
114: public void instanciateValue(String className,
115: ClassNotFoundException ex) {
116: System.err.println("Can't instanciate the value of class "
117: + className + "\n");
118: }
119:
120: public void propertyEditor(PropertyDescriptor pd,
121: IllegalAccessException ex) {
122: System.err
123: .println("Can't instanciate the custom property editor for "
124: + "property "
125: + pd.getName()
126: + " of type "
127: + pd.getPropertyType());
128: }
129:
130: public void propertyEditor(PropertyDescriptor pd,
131: InstantiationException ex) {
132: System.err
133: .println("Can't instanciate the custom property editor for "
134: + "property "
135: + pd.getName()
136: + " of type "
137: + pd.getPropertyType());
138: }
139:
140: public void propertyEditor(PropertyDescriptor pd,
141: NoSuchMethodError err) {
142: System.err
143: .println("Can't instanciate the custom property editor for "
144: + "property "
145: + pd.getName()
146: + " of type "
147: + pd.getPropertyType());
148: }
149:
150: public void propertyEditor(PropertyDescriptor pd) {
151: System.err.println("Can't find property editor for property "
152: + pd.getName() + " of type " + pd.getPropertyType());
153: }
154:
155: }
|