package com.basic.security.manager;
|
|
import android.text.TextUtils;
|
|
import com.basic.security.model.Identity;
|
import com.basic.security.model.ModelAdapter;
|
import com.basic.security.model.Person;
|
import com.basic.security.model.PersonA;
|
import com.basic.security.model.PersonAReserved;
|
import com.basic.security.utils.ExceptionUtil;
|
import com.google.gson.Gson;
|
|
import java.lang.reflect.Field;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
public class PersonAReservedManager extends BaseManager {
|
|
public static String getReservedJsonStr(ModelAdapter person) {
|
String reservedJsonStr = "";
|
try {
|
Gson gson = new Gson();
|
Map<String, String> reservedMap = new HashMap<>();
|
List<String> personIdentityNameList = PersonIdentityManager.findIdentityNameByPersonId(person.getString(Person.id));
|
if (personIdentityNameList.size() > 0) {
|
reservedMap.put(PersonAReserved.person_identity_name_list, gson.toJson(personIdentityNameList));
|
}
|
Field[] fields = PersonAReserved.class.getDeclaredFields();
|
for (Field field : fields) {
|
String fieldName = field.getName();
|
if (fieldName.startsWith("person_") && !PersonAReserved.person_identity_name_list.equals(fieldName)) {
|
String modelFieldValue = person.getString(fieldName.substring("person_".length()));
|
if (!TextUtils.isEmpty(modelFieldValue)) {
|
reservedMap.put(fieldName.substring("person_".length()), modelFieldValue);
|
}
|
}
|
}
|
reservedJsonStr = gson.toJson(reservedMap);
|
} catch (Exception e) {
|
ExceptionUtil.printException(e);
|
}
|
return reservedJsonStr;
|
}
|
|
public static void parseReservedJson(ModelAdapter personA, ModelAdapter person) {
|
try {
|
String reserved = personA.getString(PersonA.reserved);
|
if (TextUtils.isEmpty(reserved)) {
|
return;
|
}
|
PersonIdentityManager.deletePersonIdentityByPersonId(personA.getString(PersonA.id));
|
Gson gson = new Gson();
|
Map<String, String> reservedMap = gson.fromJson(reserved, Map.class);
|
String person_identity_name_list_str = reservedMap.get(PersonAReserved.person_identity_name_list);
|
if (TextUtils.isEmpty(person_identity_name_list_str)) {
|
List<String> person_identity_name_list = gson.fromJson(person_identity_name_list_str, List.class);
|
for (String identityName : person_identity_name_list) {
|
ModelAdapter identity = IdentityManager.findIdentityByName(identityName);
|
if (identity != null) {
|
PersonIdentityManager.savePersonIdentity(personA.getString(PersonA.id), identity.getString(Identity.id));
|
}
|
}
|
}
|
for (Map.Entry<String, String> entry : reservedMap.entrySet()) {
|
if (!PersonAReserved.person_identity_name_list.equals(entry.getKey())) {
|
person.setString(entry.getKey(), entry.getValue());
|
}
|
}
|
} catch (Exception e) {
|
ExceptionUtil.printException(e);
|
}
|
}
|
|
public static void main(String[] args) {
|
}
|
|
|
}
|