first commit
This commit is contained in:
153
hrmsEjb/org/apache/struts/config/FormPropertyConfig.java
Normal file
153
hrmsEjb/org/apache/struts/config/FormPropertyConfig.java
Normal file
@@ -0,0 +1,153 @@
|
||||
package org.apache.struts.config;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.lang.reflect.Array;
|
||||
import org.apache.commons.beanutils.ConvertUtils;
|
||||
|
||||
public class FormPropertyConfig implements Serializable {
|
||||
public FormPropertyConfig() {}
|
||||
|
||||
public FormPropertyConfig(String name, String type, String initial) {
|
||||
this(name, type, initial, 0);
|
||||
}
|
||||
|
||||
public FormPropertyConfig(String name, String type, String initial, int size) {
|
||||
setName(name);
|
||||
setType(type);
|
||||
setInitial(initial);
|
||||
setSize(size);
|
||||
}
|
||||
|
||||
protected boolean configured = false;
|
||||
|
||||
protected String initial = null;
|
||||
|
||||
public String getInitial() {
|
||||
return this.initial;
|
||||
}
|
||||
|
||||
public void setInitial(String initial) {
|
||||
if (this.configured)
|
||||
throw new IllegalStateException("Configuration is frozen");
|
||||
this.initial = initial;
|
||||
}
|
||||
|
||||
protected String name = null;
|
||||
|
||||
public String getName() {
|
||||
return this.name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
if (this.configured)
|
||||
throw new IllegalStateException("Configuration is frozen");
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
protected int size = 0;
|
||||
|
||||
public int getSize() {
|
||||
return this.size;
|
||||
}
|
||||
|
||||
public void setSize(int size) {
|
||||
if (this.configured)
|
||||
throw new IllegalStateException("Configuration is frozen");
|
||||
if (size < 0)
|
||||
throw new IllegalArgumentException("size < 0");
|
||||
this.size = size;
|
||||
}
|
||||
|
||||
protected String type = null;
|
||||
|
||||
public String getType() {
|
||||
return this.type;
|
||||
}
|
||||
|
||||
public void setType(String type) {
|
||||
if (this.configured)
|
||||
throw new IllegalStateException("Configuration is frozen");
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public Class getTypeClass() {
|
||||
String baseType = getType();
|
||||
boolean indexed = false;
|
||||
if (baseType.endsWith("[]")) {
|
||||
baseType = baseType.substring(0, baseType.length() - 2);
|
||||
indexed = true;
|
||||
}
|
||||
Class baseClass = null;
|
||||
if ("boolean".equals(baseType)) {
|
||||
baseClass = boolean.class;
|
||||
} else if ("byte".equals(baseType)) {
|
||||
Class clazz = byte.class;
|
||||
} else if ("char".equals(baseType)) {
|
||||
Class clazz = char.class;
|
||||
} else if ("double".equals(baseType)) {
|
||||
Class clazz = double.class;
|
||||
} else if ("float".equals(baseType)) {
|
||||
Class clazz = float.class;
|
||||
} else if ("int".equals(baseType)) {
|
||||
Class clazz = int.class;
|
||||
} else if ("long".equals(baseType)) {
|
||||
Class clazz = long.class;
|
||||
} else if ("short".equals(baseType)) {
|
||||
Class clazz = short.class;
|
||||
} else {
|
||||
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
|
||||
if (classLoader == null)
|
||||
classLoader = getClass().getClassLoader();
|
||||
try {
|
||||
baseClass = (Class)classLoader.loadClass(baseType);
|
||||
} catch (Throwable t) {
|
||||
baseClass = null;
|
||||
}
|
||||
}
|
||||
if (indexed)
|
||||
return Array.newInstance(baseClass, 0).getClass();
|
||||
return baseClass;
|
||||
}
|
||||
|
||||
public Object initial() {
|
||||
Object initialValue = null;
|
||||
try {
|
||||
Class clazz = getTypeClass();
|
||||
if (clazz.isArray()) {
|
||||
if (this.initial != null) {
|
||||
initialValue = ConvertUtils.convert(this.initial, clazz);
|
||||
} else {
|
||||
initialValue = Array.newInstance(clazz.getComponentType(), this.size);
|
||||
for (int i = 0; i < this.size; i++) {
|
||||
try {
|
||||
Array.set(initialValue, i, clazz.getComponentType().newInstance());
|
||||
} catch (Throwable t) {}
|
||||
}
|
||||
}
|
||||
} else if (this.initial != null) {
|
||||
initialValue = ConvertUtils.convert(this.initial, clazz);
|
||||
} else {
|
||||
initialValue = clazz.newInstance();
|
||||
}
|
||||
} catch (Throwable t) {
|
||||
initialValue = null;
|
||||
}
|
||||
return initialValue;
|
||||
}
|
||||
|
||||
public void freeze() {
|
||||
this.configured = true;
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
StringBuffer sb = new StringBuffer("FormPropertyConfig[");
|
||||
sb.append("name=");
|
||||
sb.append(this.name);
|
||||
sb.append(",type=");
|
||||
sb.append(this.type);
|
||||
sb.append(",initial=");
|
||||
sb.append(this.initial);
|
||||
sb.append("]");
|
||||
return sb.toString();
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user