01: /*
02: * Licensed to the Apache Software Foundation (ASF) under one or more
03: * contributor license agreements. See the NOTICE file distributed with
04: * this work for additional information regarding copyright ownership.
05: * The ASF licenses this file to You under the Apache License, Version 2.0
06: * (the "License"); you may not use this file except in compliance with
07: * the License. You may obtain a copy of the License at
08: *
09: * http://www.apache.org/licenses/LICENSE-2.0
10: *
11: * Unless required by applicable law or agreed to in writing, software
12: * distributed under the License is distributed on an "AS IS" BASIS,
13: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14: * See the License for the specific language governing permissions and
15: * limitations under the License.
16: */
17: package org.apache.cocoon.forms.binding;
18:
19: import org.apache.cocoon.forms.formmodel.Widget;
20:
21: import org.apache.commons.jxpath.JXPathContext;
22:
23: /**
24: * SetAttributeJXPathBinding provides an implementation of a {@link Binding}
25: * that sets a particular attribute to a fixed value upon save.
26: * <p>
27: * NOTES: <ol>
28: * <li>This Binding does not perform any actions when loading.</li>
29: * </ol>
30: *
31: * @version $Id: SetAttributeJXPathBinding.java 517733 2007-03-13 15:37:22Z vgritsenko $
32: */
33: public class SetAttributeJXPathBinding extends JXPathBindingBase {
34:
35: private final String name;
36: private final String value;
37:
38: /**
39: * Constructs SetAttributeJXPathBinding
40: */
41: public SetAttributeJXPathBinding(
42: JXPathBindingBuilderBase.CommonAttributes commonAtts,
43: String attName, String attValue) {
44: super (commonAtts);
45: this .name = attName;
46: this .value = attValue;
47: }
48:
49: public String getId() {
50: return name;
51: }
52:
53: public String getValue() {
54: return value;
55: }
56:
57: /**
58: * Do-Nothing implementation.
59: */
60: public void doLoad(Widget frmModel, JXPathContext jxpc) {
61: //this does nothing in the loading of things
62: }
63:
64: /**
65: * Sets the attribute value on the passed JXPathContext
66: */
67: public void doSave(Widget frmModel, JXPathContext jxpc) {
68: jxpc.setValue("@" + this .name, this .value);
69: if (getLogger().isDebugEnabled()) {
70: getLogger().debug("done saving " + this );
71: }
72: }
73:
74: public String toString() {
75: return "SetAttributeJXPathBinding [attName=" + this .name
76: + ", attValue=" + this .value + "]";
77: }
78: }
|