import java.lang.reflect.Field;
import java.lang.reflect.Method;
import javax.imageio.ImageTypeSpecifier;
class Emp{
private String name;
private String job;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getJob() {
return job;
}
public void setJob(String job) {
this.job = job;
}
@Override
public String toString() {
return "Emp [name=" + name + ", job=" + job + "]";
}
}
class Empcation{
private Emp emp=new Emp();
public void setValue(String value) throws Exception
{
BeanOperation.setBeanValue(this,value);
}
public Object getValue()
{
return new Emp();
}
}
class BeanOperation{
public static void setBeanValue(Object actionobject,String msg) throws Exception
{
String []result=msg.split("\\|");
for(int i=0;i<result.length;i++)
{
String []temp=result[i].split(":");
String attribute =temp[0];
String value=temp[1];
String []fields=attribute.split("\\.");
Object currentObject=getObject(actionobject,fields[0]);
setObjectvalue(currentObject,fields[1],value);
}
}
public static String initCap(String string)
{
return string.substring(0,1).toUpperCase()+string.substring(1);
}
public static Object getObject(Object obj,String attribute) throws Exception
{
String methodName="get"+initCap(attribute);
Field field =obj.getClass().getDeclaredField(attribute);
if(field==null)
{
field=obj.getClass().getField(attribute);
; }
if(field==null)
{
return null;
}
Method method=obj.getClass().getMethod(methodName);
return method.invoke(obj);
}
public static void setObjectvalue(Object obj,String attribute,String value) throws Exception
{
Field field=obj.getClass().getDeclaredField(attribute);
if(field==null)
{
field=obj.getClass().getField(attribute);
}
if(field==null)
{
return ;
}
String method="set"+initCap(value);
Method methodName1=obj.getClass().getMethod(method,field.getType());
methodName1.invoke(obj);
}
}
public class Test{
public static void main(String[] args) throws Exception {
String Value ="emp.ename:yuisama|emp.job:Java Coder";
Empcation empcation=new Empcation();
empcation.setValue(Value);
System.out.println(empcation.getValue());
}
}