]> git.argeo.org Git - lgpl/argeo-commons.git/blob - server/dao/LightDaoPropertyEditor.java
Prepare next development cycle
[lgpl/argeo-commons.git] / server / dao / LightDaoPropertyEditor.java
1 /*
2 * Copyright (C) 2010 Mathieu Baudier <mbaudier@argeo.org>
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17 package org.argeo.server.dao;
18
19 import java.beans.PropertyEditorSupport;
20
21 import org.argeo.ArgeoException;
22
23 public class LightDaoPropertyEditor extends PropertyEditorSupport implements
24 LightDaoAware {
25 private LightDaoSupport lightDaoSupport;
26
27 private Class<?> targetClass;
28 /** Can be null */
29 private String businessIdField;
30
31 @Override
32 public String getAsText() {
33 return getValue().toString();
34 }
35
36 @Override
37 public void setAsText(String text) throws IllegalArgumentException {
38 if (targetClass == null)
39 throw new ArgeoException("Target class cannot be null");
40
41 if (businessIdField != null)
42 setValue(lightDaoSupport.getByField(targetClass, businessIdField,
43 text));
44 else
45 setValue(lightDaoSupport.getByKey(targetClass, text));
46 }
47
48 public void setLightDaoSupport(LightDaoSupport lightDaoSupport) {
49 this.lightDaoSupport = lightDaoSupport;
50 }
51
52 public void setTargetClass(Class<?> targetClass) {
53 this.targetClass = targetClass;
54 }
55
56 public void setBusinessIdField(String businessIdField) {
57 this.businessIdField = businessIdField;
58 }
59
60 }