KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jfree > xml > factory > objects > URLObjectDescription


1 /* ========================================================================
2  * JCommon : a free general purpose class library for the Java(tm) platform
3  * ========================================================================
4  *
5  * (C) Copyright 2000-2005, by Object Refinery Limited and Contributors.
6  *
7  * Project Info: http://www.jfree.org/jcommon/index.html
8  *
9  * This library is free software; you can redistribute it and/or modify it
10  * under the terms of the GNU Lesser General Public License as published by
11  * the Free Software Foundation; either version 2.1 of the License, or
12  * (at your option) any later version.
13  *
14  * This library is distributed in the hope that it will be useful, but
15  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
16  * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
17  * License for more details.
18  *
19  * You should have received a copy of the GNU Lesser General Public
20  * License along with this library; if not, write to the Free Software
21  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
22  * USA.
23  *
24  * [Java is a trademark or registered trademark of Sun Microsystems, Inc.
25  * in the United States and other countries.]
26  *
27  * --------------------
28  * URLClassFactory.java
29  * --------------------
30  * (C)opyright 2003, 2004, by Thomas Morgner and Contributors.
31  *
32  * Original Author: Thomas Morgner;
33  * Contributor(s): David Gilbert (for Object Refinery Limited);
34  *
35  * $Id: URLObjectDescription.java,v 1.3 2005/11/14 11:04:43 mungady Exp $
36  *
37  * Changes (from 19-Feb-2003)
38  * -------------------------
39  * 19-Feb-2003 : Added standard header and Javadocs (DG);
40  * 29-Apr-2003 : Distilled from the JFreeReport project and moved into JCommon
41  *
42  */

43
44 package org.jfree.xml.factory.objects;
45
46 import java.net.URL JavaDoc;
47
48 import org.jfree.io.IOUtils;
49 import org.jfree.util.Log;
50 import org.jfree.xml.Parser;
51
52 /**
53  * An object-description for a <code>URL</code> object.
54  *
55  * @author Thomas Morgner
56  */

57 public class URLObjectDescription extends AbstractObjectDescription {
58
59     /**
60      * Creates a new object description.
61      */

62     public URLObjectDescription() {
63         super(URL JavaDoc.class);
64         setParameterDefinition("value", String JavaDoc.class);
65     }
66
67     /**
68      * Creates an object based on this description.
69      *
70      * @return The object.
71      */

72     public Object JavaDoc createObject() {
73         final String JavaDoc o = (String JavaDoc) getParameter("value");
74         final String JavaDoc baseURL = getConfig().getConfigProperty(Parser.CONTENTBASE_KEY);
75         try {
76             try {
77                 final URL JavaDoc bURL = new URL JavaDoc(baseURL);
78                 return new URL JavaDoc(bURL, o);
79             }
80             catch (Exception JavaDoc e) {
81                 Log.warn("BaseURL is invalid: ", e);
82             }
83             return new URL JavaDoc(o);
84         }
85         catch (Exception JavaDoc e) {
86             return null;
87         }
88     }
89
90     /**
91      * Sets the parameters of this description object to match the supplied object.
92      *
93      * @param o the object (should be an instance of <code>URL</code>).
94      *
95      * @throws ObjectFactoryException if the object is not an instance of <code>URL</code>.
96      */

97     public void setParameterFromObject(final Object JavaDoc o) throws ObjectFactoryException {
98         if (!(o instanceof URL JavaDoc)) {
99             throw new ObjectFactoryException("Is no instance of java.net.URL");
100         }
101
102         final URL JavaDoc comp = (URL JavaDoc) o;
103         final String JavaDoc baseURL = getConfig().getConfigProperty(Parser.CONTENTBASE_KEY);
104         try {
105             final URL JavaDoc bURL = new URL JavaDoc(baseURL);
106             setParameter("value", IOUtils.getInstance().createRelativeURL(comp, bURL));
107         }
108         catch (Exception JavaDoc e) {
109             Log.warn("BaseURL is invalid: ", e);
110         }
111         setParameter("value", comp.toExternalForm());
112     }
113
114 }
115
Popular Tags