View Javadoc

1   /*
2    * EL4J, the Extension Library for the J2EE, adds incremental enhancements to
3    * the spring framework, http://el4j.sf.net
4    * Copyright (C) 2005 by ELCA Informatique SA, Av. de la Harpe 22-24,
5    * 1000 Lausanne, Switzerland, http://www.elca.ch
6    *
7    * EL4J is published under the GNU Lesser General Public License (LGPL)
8    * Version 2.1. See http://www.gnu.org/licenses/
9    *
10   * This program is distributed in the hope that it will be useful,
11   * but WITHOUT ANY WARRANTY; without even the implied warranty of
12   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13   * GNU Lesser General Public License for more details.
14   *
15   * For alternative licensing, please contact info@elca.ch
16   */
17  package ch.elca.el4j.services.gui.swing.cookswing.binding;
18  
19  import cookxml.cookxml.setter.VarSetter;
20  import cookxml.core.DecodeEngine;
21  import cookxml.core.exception.SetterException;
22  
23  /**
24   * This setter enhances the {@link VarSetter} so that it can set variables of
25   * type {@link NoAddValueHolder}.
26   *
27   * @svnLink $Revision: 3881 $;$Date: 2009-08-04 15:22:05 +0200 (Di, 04. Aug 2009) $;$Author: swismer $;$URL: https://el4j.svn.sourceforge.net/svnroot/el4j/branches/el4j_3_1/el4j/framework/modules/swing/src/main/java/ch/elca/el4j/services/gui/swing/cookswing/binding/NoAddVarSetter.java $
28   *
29   * @author Stefan Wismer (SWI)
30   */
31  public class NoAddVarSetter extends VarSetter {
32  
33  	/** {@inheritDoc} */
34  	@SuppressWarnings("unchecked")
35  	@Override
36  	public void setAttribute(String ns, String tag, String attrNS, String attr,
37  		Object obj, Object value, DecodeEngine decodeEngine)
38  		throws SetterException {
39  		
40  		if (obj instanceof NoAddValueHolder) {
41  			if (value == null || !(value instanceof String)) {
42  				return;
43  			}
44  			String str = (String) value;
45  			if (str.length() == 0) {
46  				return;
47  			}
48  			decodeEngine.getVarLookup().setVariable(
49  				str, ((NoAddValueHolder) obj).getObject(), decodeEngine);
50  		} else {
51  			super.setAttribute(ns, tag, attrNS, attr, obj, value, decodeEngine);
52  		}
53  		
54  	}
55  }