01: /*
02: * The contents of this file are subject to the Sapient Public License
03: * Version 1.0 (the "License"); you may not use this file except in compliance
04: * with the License. You may obtain a copy of the License at
05: * http://carbon.sf.net/License.html.
06: *
07: * Software distributed under the License is distributed on an "AS IS" basis,
08: * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for
09: * the specific language governing rights and limitations under the License.
10: *
11: * The Original Code is The Carbon Component Framework.
12: *
13: * The Initial Developer of the Original Code is Sapient Corporation
14: *
15: * Copyright (C) 2003 Sapient Corporation. All Rights Reserved.
16: */
17:
18: package org.sape.carbon.core.config.type.handlers;
19:
20: import org.sape.carbon.core.config.type.ConfigurationTypeHandler;
21: import org.sape.carbon.core.config.type.TypeConversionException;
22:
23: /**
24: * <P>Parses and formats between Strings and Class objects.</P>
25: *
26: * Copyright 2002 Sapient
27: * @since carbon 1.0
28: * @author Greg Hinkle, January 2002
29: * @version $Revision: 1.15 $($Author: dvoet $ / $Date: 2003/05/05 21:21:20 $)
30: */
31: public class ClassTypeHandler implements ConfigurationTypeHandler {
32:
33: /**
34: * <P>Parses a string into a Class object.</P>
35: *
36: * @param type type of object to be converted to class
37: * @param stringValue the String representation of the requested Class
38: * @return Class version of the String
39: * @throws TypeConversionException when the string does not represent
40: * a valid Class
41: */
42: public Object toObject(Class type, String stringValue)
43: throws TypeConversionException {
44:
45: if (stringValue == null) {
46: throw new TypeConversionException(this .getClass(),
47: "Cannot load a class with a null name.");
48: }
49:
50: Class object = null;
51: try {
52: object = Class.forName(stringValue.trim(), true, this
53: .getClass().getClassLoader());
54: } catch (ClassNotFoundException cnfe) {
55: throw new TypeConversionException(this .getClass(),
56: "Couldn't format", cnfe);
57: }
58: return object;
59: }
60:
61: /**
62: * <P>Formats an Class into a String value.</P>
63: *
64: * @param objectValue the Class to be formatted
65: * @return string version of the class object
66: * @throws ClassCastException when past an object other than a Class
67: */
68: public String toString(Object objectValue) {
69: return ((Class) objectValue).getName();
70: }
71:
72: }
|