first commit
This commit is contained in:
140
hrmsEjb/org/apache/commons/beanutils/DynaProperty.java
Normal file
140
hrmsEjb/org/apache/commons/beanutils/DynaProperty.java
Normal file
@@ -0,0 +1,140 @@
|
||||
package org.apache.commons.beanutils;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.ObjectInputStream;
|
||||
import java.io.ObjectOutputStream;
|
||||
import java.io.Serializable;
|
||||
import java.io.StreamCorruptedException;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class DynaProperty implements Serializable {
|
||||
private static final int BOOLEAN_TYPE = 1;
|
||||
|
||||
private static final int BYTE_TYPE = 2;
|
||||
|
||||
private static final int CHAR_TYPE = 3;
|
||||
|
||||
private static final int DOUBLE_TYPE = 4;
|
||||
|
||||
private static final int FLOAT_TYPE = 5;
|
||||
|
||||
private static final int INT_TYPE = 6;
|
||||
|
||||
private static final int LONG_TYPE = 7;
|
||||
|
||||
private static final int SHORT_TYPE = 8;
|
||||
|
||||
protected String name;
|
||||
|
||||
protected transient Class type;
|
||||
|
||||
public DynaProperty(String name) {
|
||||
this(name, Object.class);
|
||||
}
|
||||
|
||||
public DynaProperty(String name, Class type) {
|
||||
this.name = null;
|
||||
this.type = null;
|
||||
this.name = name;
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return this.name;
|
||||
}
|
||||
|
||||
public Class getType() {
|
||||
return this.type;
|
||||
}
|
||||
|
||||
public boolean isIndexed() {
|
||||
if (this.type == null)
|
||||
return false;
|
||||
if (this.type.isArray())
|
||||
return true;
|
||||
if (List.class.isAssignableFrom(this.type))
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean isMapped() {
|
||||
if (this.type == null)
|
||||
return false;
|
||||
return Map.class.isAssignableFrom(this.type);
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
StringBuffer sb = new StringBuffer("DynaProperty[name=");
|
||||
sb.append(this.name);
|
||||
sb.append(",type=");
|
||||
sb.append(this.type);
|
||||
sb.append("]");
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
private void writeObject(ObjectOutputStream out) throws IOException {
|
||||
int primitiveType = 0;
|
||||
if (boolean.class.equals(this.type)) {
|
||||
primitiveType = 1;
|
||||
} else if (byte.class.equals(this.type)) {
|
||||
primitiveType = 2;
|
||||
} else if (char.class.equals(this.type)) {
|
||||
primitiveType = 3;
|
||||
} else if (double.class.equals(this.type)) {
|
||||
primitiveType = 4;
|
||||
} else if (float.class.equals(this.type)) {
|
||||
primitiveType = 5;
|
||||
} else if (int.class.equals(this.type)) {
|
||||
primitiveType = 6;
|
||||
} else if (long.class.equals(this.type)) {
|
||||
primitiveType = 7;
|
||||
} else if (short.class.equals(this.type)) {
|
||||
primitiveType = 8;
|
||||
}
|
||||
if (primitiveType == 0) {
|
||||
out.writeBoolean(false);
|
||||
out.writeObject(this.type);
|
||||
} else {
|
||||
out.writeBoolean(true);
|
||||
out.writeInt(primitiveType);
|
||||
}
|
||||
out.defaultWriteObject();
|
||||
}
|
||||
|
||||
private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException {
|
||||
if (in.readBoolean()) {
|
||||
switch (in.readInt()) {
|
||||
case 1:
|
||||
this.type = boolean.class;
|
||||
break;
|
||||
case 2:
|
||||
this.type = byte.class;
|
||||
break;
|
||||
case 3:
|
||||
this.type = char.class;
|
||||
break;
|
||||
case 4:
|
||||
this.type = double.class;
|
||||
break;
|
||||
case 5:
|
||||
this.type = float.class;
|
||||
break;
|
||||
case 6:
|
||||
this.type = int.class;
|
||||
break;
|
||||
case 7:
|
||||
this.type = long.class;
|
||||
break;
|
||||
case 8:
|
||||
this.type = short.class;
|
||||
break;
|
||||
default:
|
||||
throw new StreamCorruptedException("Invalid primitive type. Check version of beanutils used to serialize is compatible.");
|
||||
}
|
||||
} else {
|
||||
this.type = (Class)in.readObject();
|
||||
}
|
||||
in.defaultReadObject();
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user