01: /*
02: * Licensed to the Apache Software Foundation (ASF) under one
03: * or more contributor license agreements. See the NOTICE file
04: * distributed with this work for additional information
05: * regarding copyright ownership. The ASF licenses this file
06: * to you under the Apache License, Version 2.0 (the
07: * "License"); you may not use this file except in compliance
08: * with the License. You may obtain a copy of the License at
09: *
10: * http://www.apache.org/licenses/LICENSE-2.0
11: *
12: * Unless required by applicable law or agreed to in writing,
13: * software distributed under the License is distributed on an
14: * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15: * KIND, either express or implied. See the License for the
16: * specific language governing permissions and limitations
17: * under the License.
18: *
19: */
20: package org.apache.mina.integration.beans;
21:
22: import java.beans.PropertyEditor;
23: import java.beans.PropertyEditorSupport;
24:
25: /**
26: * An abstract bi-directional {@link PropertyEditor}.
27: *
28: * @author The Apache MINA Project (dev@mina.apache.org)
29: * @version $Rev: 601229 $, $Date: 2007-12-05 00:13:18 -0700 (Wed, 05 Dec 2007) $
30: */
31: public abstract class AbstractPropertyEditor extends
32: PropertyEditorSupport {
33:
34: private String text;
35: private Object value;
36: private boolean trimText = true;
37:
38: protected void setTrimText(boolean trimText) {
39: this .trimText = trimText;
40: }
41:
42: @Override
43: public String getAsText() {
44: return text;
45: }
46:
47: @Override
48: public Object getValue() {
49: return value;
50: }
51:
52: @Override
53: public void setAsText(String text) throws IllegalArgumentException {
54: this .text = text;
55: if (text == null) {
56: value = defaultValue();
57: } else {
58: value = toValue(trimText ? text.trim() : text);
59: }
60: }
61:
62: @Override
63: public void setValue(Object value) {
64: this .value = value;
65: if (value == null) {
66: text = defaultText();
67: } else {
68: text = toText(value);
69: }
70: }
71:
72: protected String defaultText() {
73: return null;
74: }
75:
76: protected Object defaultValue() {
77: return null;
78: }
79:
80: protected abstract String toText(Object value);
81:
82: protected abstract Object toValue(String text)
83: throws IllegalArgumentException;
84:
85: }
|