package com.jiuqi.lbsinterface.bean;
import java.io.Serializable;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.UUID;
import com.jqmobile.core.orm.DBColumn;
import com.jqmobile.core.utils.plain.Log;
public class Bean implements Serializable {
@DBColumn(primaryId = true, comment = "主键,UUID")
private String guid;
@DBColumn(date = true, comment = "数据插入时间")
private long createDate;
public String getGuid() {
return guid;
}
public void setGuid(String recid) {
this.guid = recid;
}
/**
* 自动生成新的RECID
*/
public void setGuid() {
this.guid = UUID.randomUUID().toString();
}
public long getCreateDate() {
return createDate;
}
public void setCreateDate(long createDate) {
this.createDate = createDate;
}
public void setCreateDate() {
this.createDate = System.currentTimeMillis();
}
public <T> T to(T obj){
Field[] objs = getAllFields(obj.getClass());
Field[] fs = getAllFields(this.getClass());
for(Field o : objs){
for(Field f : fs){
if(f.getName().equals(o.getName()) && f.getType().equals(o.getType())){
f.setAccessible(true);
o.setAccessible(true);
try {
o.set(obj, f.get(this));
} catch (Exception e) {
Log.getLog(this).w(f,e);
continue;
}
}
}
}
return obj;
}
private static Field[] getAllFields(Class<?> c){
List<Field> list = new ArrayList<Field>();
while(c != Object.class){
list.addAll(Arrays.asList(c.getDeclaredFields()));
c = c.getSuperclass();
}
List<Field> result = new ArrayList<Field>();
for(Field f : list){
if(f.getName().contains("$")){
continue;
}
result.add(f);
}
return result.toArray(new Field[result.size()]);
}
}