first commit

This commit is contained in:
2025-07-28 13:56:49 +05:30
commit e9eb805edb
3438 changed files with 520990 additions and 0 deletions

View 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();
}
}