1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package org.efaps.admin.datamodel.attributetype;
22
23 import java.sql.SQLException;
24 import java.util.ArrayList;
25 import java.util.List;
26
27 import org.efaps.admin.datamodel.Attribute;
28 import org.efaps.db.wrapper.AbstractSQLInsertUpdate;
29 import org.efaps.util.EFapsException;
30
31
32
33
34
35
36
37
38 public class StringType
39 extends AbstractType
40 {
41
42
43
44 private static final long serialVersionUID = 1L;
45
46
47
48
49 @Override
50 protected void prepare(final AbstractSQLInsertUpdate<?> _insertUpdate,
51 final Attribute _attribute,
52 final Object... _values)
53 throws SQLException
54 {
55 checkSQLColumnSize(_attribute, 1);
56 _insertUpdate.column(_attribute.getSqlColNames().get(0), eval(_values));
57 }
58
59
60
61
62
63
64
65
66 protected String eval(final Object[] _values)
67 {
68 final String ret;
69 if ((_values == null) || (_values.length == 0) || (_values[0] == null)) {
70 ret = null;
71 } else if (_values[0] instanceof String) {
72 ret = (String) _values[0];
73 } else if (_values[0] != null) {
74 ret = _values[0].toString();
75 } else {
76 ret = null;
77 }
78 return ret;
79 }
80
81
82
83
84 @Override
85 public Object readValue(final Attribute _attribute,
86 final List<Object> _objectList)
87 throws EFapsException
88 {
89 Object ret = null;
90 if (_objectList.size() < 1) {
91 ret = null;
92 } else if (_objectList.size() > 1) {
93 final List<String> list = new ArrayList<String>();
94 for (final Object object : _objectList) {
95 list.add(object == null ? "" : object.toString().trim());
96 }
97 ret = list;
98 } else {
99 final Object object = _objectList.get(0);
100 ret = object == null ? "" : object.toString().trim();
101 }
102 return ret;
103 }
104
105
106
107
108 @Override
109 public String toString4Where(final Object _value)
110 throws EFapsException
111 {
112 String ret = "";
113 if (_value instanceof String) {
114 ret = (String) _value;
115 } else if (_value != null) {
116 ret = _value.toString();
117 }
118 return ret;
119 }
120 }