KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > idaremedia > antx > PropertyHandle


1 /**
2  * $Id: PropertyHandle.java 180 2007-03-15 12:56:38Z ssmc $
3  * Copyright 2002-2003 iDare Media, Inc. All rights reserved.
4  *
5  * Originally written by iDare Media, Inc. for release into the public domain. This
6  * library, source form and binary form, is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public License as published by the
8  * Free Software Foundation; either version 2 of the License, or (at your option) any later
9  * version.<p>
10  *
11  * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
12  * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
13  * See the GNU LGPL (GNU Lesser General Public License) for more details.<p>
14  *
15  * You should have received a copy of the GNU Lesser General Public License along with this
16  * library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite
17  * 330, Boston, MA 02111-1307 USA. The LGPL can be found online at
18  * http://www.fsf.org/copyleft/lesser.html<p>
19  *
20  * This product has been influenced by several projects within the open-source community.
21  * The JWare developers wish to acknowledge the open-source community's support. For more
22  * information regarding the open-source products used within JWare, please visit the
23  * JWare website.
24  *----------------------------------------------------------------------------------------*
25  * WEBSITE- http://www.jware.info EMAIL- inquiries@jware.info
26  *----------------------------------------------------------------------------------------*
27  **/

28
29 package com.idaremedia.antx;
30
31 import org.apache.tools.ant.BuildException;
32
33 /**
34  * A modifiable thread-local property. Modifiable properties are always stored as
35  * strings; non-strings are converted using the strict {@linkplain Stringifier} helper.
36  *
37  * @since JWare/AntX 0.1
38  * @author ssmc, &copy;2002-2003 <a HREF="http://www.jware.info">iDare&nbsp;Media,&nbsp;Inc.</a>
39  * @version 0.5
40  * @.safety guarded
41  * @.group impl,helper
42  * @see ExportedProperties
43  **/

44
45 public final class PropertyHandle extends InheritableThreadLocal JavaDoc
46 {
47     /**
48      * Creates a new null-valued property handle.
49      **/

50     public PropertyHandle()
51     {
52     }
53
54     /**
55      * Updates this handle's property value. Only permits <i>null</i>,
56      * strings, and strictly stringifiable object.
57      * @throws BuildException if value is of un-stringable class
58      * @see Stringifier
59      **/

60     public void set(Object JavaDoc value)
61     {
62         Object JavaDoc checked = value;
63
64         if (checked!=null && !(checked instanceof String JavaDoc)) {
65             checked = Stringifier.get(false).stringFrom(value,null);
66             if (checked==null) {
67                 throw new BuildException(AntX.uistrs().get("export.only.strings"));
68             }
69         }
70
71         super.set(checked);
72     }
73 }
74
75 /* end-of-PropertyHandle.java */
76
Popular Tags