提交 84f4bb55 编写于 作者: R Ray

update Meta

上级 45f4c6ce
......@@ -336,14 +336,14 @@ public abstract class JpaObject extends GsonPropertyObject implements Serializab
}
public static <T extends JpaObject> T cast(Class<T> cls, List<String> fields, Object[] objects) throws Exception {
T t = cls.newInstance();
T t = cls.getDeclaredConstructor().newInstance();
for (int i = 0; i < fields.size(); i++) {
PropertyUtils.setProperty(t, fields.get(i), objects[i]);
}
return t;
}
public abstract static class EntityProperties {
}
// public abstract static class EntityProperties {
// }
}
\ No newline at end of file
......@@ -4,44 +4,99 @@ import java.util.ArrayList;
import java.util.Date;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map.Entry;
import java.util.Objects;
import org.apache.commons.lang3.StringUtils;
import org.jblas.util.Logger;
import com.x.base.core.container.EntityManagerContainer;
import com.x.base.core.container.factory.EntityManagerContainerFactory;
import com.x.base.core.entity.annotation.CheckPersistType;
import com.x.base.core.project.gson.GsonPropertyObject;
import com.x.base.core.project.gson.XGsonBuilder;
import com.x.base.core.project.http.ActionResult;
import com.x.base.core.project.http.EffectivePerson;
import com.x.base.core.project.logger.Logger;
import com.x.base.core.project.logger.LoggerFactory;
import com.x.base.core.project.tools.DateTools;
import com.x.base.core.project.tools.StringTools;
import com.x.program.center.core.entity.validation.Meta;
class ActionMeta extends BaseAction {
private static final Logger LOGGER = LoggerFactory.getLogger(ActionMeta.class);
public static final String DATETIMESTRING1 = "2021-01-01 01:01:01";
public static final String DATETIMESTRING2 = "2022-02-02 02:02:02";
public static final String DATESTRING1 = "2021-01-01";
public static final String DATESTRING2 = "2022-02-02";
public static final String TIMESTRING1 = "01:01:01";
public static final String TIMESTRING2 = "02:02:02";
public static final String STRING1 = "o2oa";
public static final String STRING2 = "o2server";
public static final Integer INTEGER1 = 1;
public static final Integer INTEGER2 = 2;
public static final Long LONG1 = 10000000000L;
public static final Long LONG2 = 20000000000L;
public static final Float FLOAT1 = 1.1f;
public static final Float FLOAT2 = 2.2f;
public static final Double DOUBLE1 = 3.3d;
public static final Double DOUBLE2 = 4.4d;
protected static Date dateTime1 = null;
protected static Date dateTime2 = null;
protected static Date date1 = null;
protected static Date date2 = null;
protected static Date time1 = null;
protected static Date time2 = null;
public static final Boolean BOOLEAN1 = true;
public static final Boolean BOOLEAN2 = false;
static {
try {
dateTime1 = DateTools.parse(DATETIMESTRING1, DateTools.format_yyyyMMddHHmmss);
dateTime2 = DateTools.parse(DATETIMESTRING2, DateTools.format_yyyyMMddHHmmss);
date1 = DateTools.parse(DATESTRING1, DateTools.format_yyyyMMdd);
date2 = DateTools.parse(DATESTRING2, DateTools.format_yyyyMMdd);
time1 = DateTools.parse(TIMESTRING1, DateTools.format_HHmmss);
time2 = DateTools.parse(TIMESTRING2, DateTools.format_HHmmss);
} catch (Exception e) {
LOGGER.error(e);
}
}
ActionResult<Wo> execute(EffectivePerson effectivePerson) throws Exception {
LOGGER.debug("execute:{}.", effectivePerson::getDistinguishedName);
String id = StringTools.uniqueToken();
Meta meta = new Meta();
try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
meta.setId(id);
assignmentStringValue(meta);
assignmentStringLobValue(meta);
assignmentBooleanValue(meta);
assignmentDateTimeValue(meta);
assignmentDateValue(meta);
assignmentTimeValue(meta);
assignmentIntegerValue(meta);
assignmentLongValue(meta);
assignmentFloatValue(meta);
assignmentDoubleValue(meta);
assignmentListValue(meta);
assignmentProperties(meta);
assignmentDateTimeValue(meta);
assignmentDateValue(meta);
assignmentTimeValue(meta);
assignmentBooleanValue(meta);
assignmentStringValueList(meta);
assignmentIntegerValueList(meta);
assignmentLongValueList(meta);
assignmentFloatValueList(meta);
assignmentDoubleValueList(meta);
assignmentDateTimeValueList(meta);
assignmentBooleanValueList(meta);
assignmentStringValueMap(meta);
assignmentDateValueMap(meta);
assignmentIntegerValueMap(meta);
assignmentLongValueMap(meta);
assignmentFloatValueMap(meta);
assignmentDoubleValueMap(meta);
assignmentDateTimeValueMap(meta);
assignmentBooleanValueMap(meta);
assignmentProperties(meta);
emc.beginTransaction(Meta.class);
emc.persist(meta, CheckPersistType.all);
emc.commit();
......@@ -51,17 +106,14 @@ class ActionMeta extends BaseAction {
Meta o = emc.find(id, Meta.class);
wo.setAssertStringValue(assertStringValue(o, meta));
wo.setAssertStringLobValue(assertStringLobValue(o, meta));
wo.setAssertBooleanValue(assertBooleanValue(o, meta));
wo.setAssertDateTimeValue(assertDateTimeValue(o, meta));
wo.setAssertDateValue(assertDateValue(o, meta));
wo.setAssertTimeValue(assertTimeValue(o, meta));
wo.setAssertIntegerValue(assertIntegerValue(o, meta));
wo.setAssertLongValue(assertLongValue(o, meta));
wo.setAssertFloatValue(assertFloatValue(o, meta));
wo.setAssertDoubleValue(assertDoubleValue(o, meta));
wo.setAssertListValue(assertListValue(o, meta));
wo.setAssertMapValue(assertMapValue(o, meta));
wo.setAssertProperties(assertProperties(o, meta));
wo.setAssertDateTimeValue(assertDateTimeValue(o, meta));
wo.setAssertDateValue(assertDateValue(o, meta));
wo.setAssertTimeValue(assertTimeValue(o, meta));
wo.setAssertBooleanValue(assertBooleanValue(o, meta));
}
ActionResult<Wo> result = new ActionResult<>();
result.setData(wo);
......@@ -76,14 +128,6 @@ class ActionMeta extends BaseAction {
private String assertStringLobValue;
private String assertBooleanValue;
private String assertDateTimeValue;
private String assertDateValue;
private String assertTimeValue;
private String assertIntegerValue;
private String assertLongValue;
......@@ -92,11 +136,12 @@ class ActionMeta extends BaseAction {
private String assertDoubleValue;
private String assertListValue;
private String assertDateTimeValue;
private String assertMapValue;
private String assertDateValue;
private String assertProperties;
private String assertTimeValue;
private String assertBooleanValue;
public String getAssertStringValue() {
return assertStringValue;
......@@ -178,105 +223,149 @@ class ActionMeta extends BaseAction {
this.assertDoubleValue = assertDoubleValue;
}
public String getAssertListValue() {
return assertListValue;
}
public void setAssertListValue(String assertListValue) {
this.assertListValue = assertListValue;
}
public String getAssertMapValue() {
return assertMapValue;
}
public void setAssertMapValue(String assertMapValue) {
this.assertMapValue = assertMapValue;
}
}
public String getAssertProperties() {
return assertProperties;
}
private static void assignmentStringValue(Meta persistObject) {
persistObject.setStringValue(STRING1);
}
public void setAssertProperties(String assertProperties) {
this.assertProperties = assertProperties;
}
private static void assignmentStringLobValue(Meta persistObject) {
persistObject.setStringLobValue(StringUtils.repeat(STRING2, 40));
}
private static void assignmentIntegerValue(Meta persistObject) {
persistObject.setIntegerValue(INTEGER1);
}
private static void assignmentStringValue(Meta persistObject) {
persistObject.setStringValue("123456789");
private static void assignmentLongValue(Meta persistObject) {
persistObject.setLongValue(LONG1);
}
private static void assignmentStringLobValue(Meta persistObject) {
persistObject.setStringLobValue(StringUtils.repeat("123456789", 40));
private static void assignmentFloatValue(Meta persistObject) {
persistObject.setFloatValue(FLOAT1);
}
private static void assignmentBooleanValue(Meta persistObject) {
persistObject.setBooleanValue(true);
private static void assignmentDoubleValue(Meta persistObject) {
persistObject.setDoubleValue(DOUBLE1);
}
private static void assignmentDateTimeValue(Meta persistObject) {
persistObject.setDateTimeValue(new Date());
persistObject.setDateTimeValue(dateTime1);
}
private static void assignmentDateValue(Meta persistObject) {
persistObject.setDateValue(new Date());
persistObject.setDateValue(date1);
}
private static void assignmentTimeValue(Meta persistObject) {
persistObject.setTimeValue(new Date());
persistObject.setTimeValue(time1);
}
private static void assignmentIntegerValue(Meta persistObject) {
persistObject.setIntegerValue(123456789);
private static void assignmentBooleanValue(Meta persistObject) {
persistObject.setBooleanValue(BOOLEAN1);
}
private static void assignmentLongValue(Meta persistObject) {
persistObject.setLongValue(Integer.MAX_VALUE * 10L);
private static void assignmentStringValueList(Meta persistObject) {
List<String> list = new ArrayList<>();
list.add(STRING1);
list.add(STRING2);
persistObject.setStringValueList(list);
}
private static void assignmentFloatValue(Meta persistObject) {
persistObject.setFloatValue(12345.6789);
private static void assignmentIntegerValueList(Meta persistObject) {
List<Integer> list = new ArrayList<>();
list.add(INTEGER1);
list.add(INTEGER2);
persistObject.setIntegerValueList(list);
}
private static void assignmentDoubleValue(Meta persistObject) {
persistObject.setDoubleValue(12345.6789);
private static void assignmentLongValueList(Meta persistObject) {
List<Long> list = new ArrayList<>();
list.add(LONG1);
list.add(LONG2);
persistObject.setLongValueList(list);
}
private static void assignmentListValue(Meta persistObject) {
List<String> list = new ArrayList<>();
list.add("aaaa");
list.add("bbbb");
list.add("cccc");
list.add("dddd");
persistObject.setListValueList(list);
private static void assignmentFloatValueList(Meta persistObject) {
List<Float> list = new ArrayList<>();
list.add(FLOAT1);
list.add(FLOAT2);
persistObject.setFloatValueList(list);
}
private static void assignmentDoubleValueList(Meta persistObject) {
List<Double> list = new ArrayList<>();
list.add(DOUBLE1);
list.add(DOUBLE2);
persistObject.setDoubleValueList(list);
}
private static void assignmentDateTimeValueList(Meta persistObject) {
List<Date> list = new ArrayList<>();
list.add(dateTime1);
list.add(dateTime2);
persistObject.setDateTimeValueList(list);
}
private static void assignmentBooleanValueList(Meta persistObject) {
List<Boolean> list = new ArrayList<>();
list.add(BOOLEAN1);
list.add(BOOLEAN1);
persistObject.setBooleanValueList(list);
}
private static void assignmentStringValueMap(Meta persistObject) {
LinkedHashMap<String, String> map = new LinkedHashMap<>();
map.put("1", "aaaa");
map.put("2", "bbbb");
map.put("3", "cccc");
map.put("4", "dddd");
map.put(STRING1, STRING1);
map.put(STRING2, STRING2);
persistObject.setStringValueMap(map);
}
private static void assignmentDateValueMap(Meta persistObject) {
try {
private static void assignmentIntegerValueMap(Meta persistObject) {
LinkedHashMap<String, Integer> map = new LinkedHashMap<>();
map.put(STRING1, INTEGER1);
map.put(STRING2, INTEGER2);
persistObject.setIntegerValueMap(map);
}
private static void assignmentLongValueMap(Meta persistObject) {
LinkedHashMap<String, Long> map = new LinkedHashMap<>();
map.put(STRING1, LONG1);
map.put(STRING2, LONG2);
persistObject.setLongValueMap(map);
}
private static void assignmentFloatValueMap(Meta persistObject) {
LinkedHashMap<String, Float> map = new LinkedHashMap<>();
map.put(STRING1, FLOAT1);
map.put(STRING2, FLOAT2);
persistObject.setFloatValueMap(map);
}
private static void assignmentDoubleValueMap(Meta persistObject) {
LinkedHashMap<String, Double> map = new LinkedHashMap<>();
map.put(STRING1, DOUBLE1);
map.put(STRING2, DOUBLE2);
persistObject.setDoubleValueMap(map);
}
private static void assignmentDateTimeValueMap(Meta persistObject) {
LinkedHashMap<String, Date> map = new LinkedHashMap<>();
Date date = DateTools.parse("2020-01-01 12:13:14", DateTools.format_yyyyMMddHHmm);
map.put("date", date);
persistObject.setDateValueMap(map);
} catch (Exception e) {
Logger
}
map.put(STRING1, dateTime1);
map.put(STRING2, dateTime2);
persistObject.setDateTimeValueMap(map);
}
private static void assignmentBooleanValueMap(Meta persistObject) {
LinkedHashMap<String, Boolean> map = new LinkedHashMap<>();
map.put(STRING1, BOOLEAN1);
map.put(STRING2, BOOLEAN2);
persistObject.setBooleanValueMap(map);
}
private static void assignmentProperties(Meta persistObject) {
persistObject.getProperties().setName("aaaa");
persistObject.getProperties().setConut(1);
persistObject.getProperties().setName(STRING1);
persistObject.getProperties().setConut(INTEGER1);
}
private String assertStringValue(Meta fromDbObject, Meta persistObject) {
......@@ -295,38 +384,6 @@ class ActionMeta extends BaseAction {
return message;
}
private String assertBooleanValue(Meta fromDbObject, Meta persistObject) {
String message = "booleanValue %s formDbObject:%s, persistObject:%s.";
message = String.format(message,
Objects.equals(fromDbObject.getBooleanValue(), persistObject.getBooleanValue()),
fromDbObject.getBooleanValue(), persistObject.getBooleanValue());
return message;
}
private String assertDateTimeValue(Meta fromDbObject, Meta persistObject) {
String message = "dateTimeValue %s formDbObject:%s, persistObject:%s.";
message = String.format(message,
Objects.equals(fromDbObject.getDateTimeValue().getTime(), persistObject.getDateTimeValue().getTime()),
fromDbObject.getDateTimeValue(), persistObject.getDateTimeValue());
return message;
}
private String assertDateValue(Meta fromDbObject, Meta persistObject) {
String message = "dateValue %s formDbObject:%s, persistObject:%s.";
message = String.format(message,
Objects.equals(fromDbObject.getDateValue().getTime(), persistObject.getDateValue().getTime()),
fromDbObject.getDateValue(), persistObject.getDateValue());
return message;
}
private String assertTimeValue(Meta fromDbObject, Meta persistObject) {
String message = "timeValue %s formDbObject:%s, persistObject:%s.";
message = String.format(message,
Objects.equals(fromDbObject.getTimeValue().getTime(), persistObject.getTimeValue().getTime()),
fromDbObject.getTimeValue(), persistObject.getTimeValue());
return message;
}
private String assertIntegerValue(Meta fromDbObject, Meta persistObject) {
String message = "integerValue %s formDbObject:%s, persistObject:%s.";
message = String.format(message,
......@@ -356,46 +413,35 @@ class ActionMeta extends BaseAction {
return message;
}
private String assertListValue(Meta fromDbObject, Meta persistObject) {
String message = "listValue %s formDbObject:%s, persistObject:%s.";
boolean check = true;
for (int i = 0; i < fromDbObject.getListValueList().size(); i++) {
if (!StringUtils.equals(fromDbObject.getListValueList().get(i), persistObject.getListValueList().get(i))) {
check = false;
}
}
for (int i = 0; i < persistObject.getListValueList().size(); i++) {
if (!StringUtils.equals(persistObject.getListValueList().get(i), fromDbObject.getListValueList().get(i))) {
check = false;
}
}
message = String.format(message, check, XGsonBuilder.toJson(fromDbObject.getListValueList()),
XGsonBuilder.toJson(persistObject.getListValueList()));
private String assertDateTimeValue(Meta fromDbObject, Meta persistObject) {
String message = "dateTimeValue %s formDbObject:%s, persistObject:%s.";
message = String.format(message,
Objects.equals(fromDbObject.getDateTimeValue().getTime(), persistObject.getDateTimeValue().getTime()),
fromDbObject.getDateTimeValue(), persistObject.getDateTimeValue());
return message;
}
private String assertMapValue(Meta fromDbObject, Meta persistObject) {
String message = "mapValue %s formDbObject:%s, persistObject:%s.";
boolean check = true;
for (Entry<String, String> en : fromDbObject.getMapValueMap().entrySet()) {
if (!StringUtils.equals(en.getValue(), persistObject.getMapValueMap().get(en.getKey()))) {
check = false;
}
}
for (Entry<String, String> en : persistObject.getMapValueMap().entrySet()) {
if (!StringUtils.equals(en.getValue(), fromDbObject.getMapValueMap().get(en.getKey()))) {
check = false;
}
}
message = String.format(message, check, XGsonBuilder.toJson(fromDbObject.getMapValueMap()),
XGsonBuilder.toJson(persistObject.getMapValueMap()));
private String assertDateValue(Meta fromDbObject, Meta persistObject) {
String message = "dateValue %s formDbObject:%s, persistObject:%s.";
message = String.format(message,
Objects.equals(fromDbObject.getDateValue().getTime(), persistObject.getDateValue().getTime()),
fromDbObject.getDateValue(), persistObject.getDateValue());
return message;
}
private String assertTimeValue(Meta fromDbObject, Meta persistObject) {
String message = "timeValue %s formDbObject:%s, persistObject:%s.";
message = String.format(message,
Objects.equals(fromDbObject.getTimeValue().getTime(), persistObject.getTimeValue().getTime()),
fromDbObject.getTimeValue(), persistObject.getTimeValue());
return message;
}
private String assertProperties(Meta fromDbObject, Meta persistObject) {
String message = "properties %s formDbObject:%s, persistObject:%s.";
message = String.format(message, Objects.equals(fromDbObject.getProperties(), persistObject.getProperties()),
fromDbObject.getProperties(), persistObject.getProperties());
private String assertBooleanValue(Meta fromDbObject, Meta persistObject) {
String message = "booleanValue %s formDbObject:%s, persistObject:%s.";
message = String.format(message,
Objects.equals(fromDbObject.getBooleanValue(), persistObject.getBooleanValue()),
fromDbObject.getBooleanValue(), persistObject.getBooleanValue());
return message;
}
......
......@@ -11,6 +11,7 @@ import javax.persistence.Column;
import org.apache.commons.beanutils.PropertyUtilsBean;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.reflect.FieldUtils;
import org.apache.openjpa.persistence.jdbc.ElementColumn;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
......@@ -29,7 +30,7 @@ import com.x.base.core.project.jaxrs.WrapBoolean;
import com.x.base.core.project.logger.Logger;
import com.x.base.core.project.logger.LoggerFactory;
import com.x.base.core.project.tools.DateTools;
import com.x.processplatform.core.entity.content.Data;
import com.x.base.core.project.tools.StringTools;
import com.x.query.core.entity.schema.Table;
import com.x.query.service.processing.Business;
......@@ -86,78 +87,64 @@ class ActionUpdate extends BaseAction {
IllegalArgumentException, SecurityException {
List<Field> fields = FieldUtils.getFieldsListWithAnnotation(cls, Column.class);
T t = cls.getConstructor().newInstance();
JsonObject data = null;
JsonObject work = null;
JsonObject jsonObject = null;
if ((jsonElement != null) && jsonElement.isJsonObject()) {
data = jsonElement.getAsJsonObject();
if (data.has(Data.WORK_PROPERTY)) {
JsonElement jsonElementWork = data.get(Data.WORK_PROPERTY);
if ((null != jsonElementWork) && jsonElementWork.isJsonObject()) {
work = jsonElementWork.getAsJsonObject();
}
}
jsonObject = jsonElement.getAsJsonObject();
}
for (Field field : fields) {
switch (JpaObjectTools.type(field)) {
case JpaObject.TYPE_STRING:
propertyUtilsBean.setProperty(t, field.getName(),
extractStringOrDistinguishedName(processPlatformGetJsonElement(data, work, field)));
propertyUtilsBean.setProperty(t, field.getName(), extractStringOrDistinguishedName(
getJsonElement(jsonObject, field), getColumnDefinedStringLength(field)));
break;
case JpaObject.TYPE_INTEGER:
propertyUtilsBean.setProperty(t, field.getName(),
extractInteger(processPlatformGetJsonElement(data, work, field)));
propertyUtilsBean.setProperty(t, field.getName(), extractInteger(getJsonElement(jsonObject, field)));
break;
case JpaObject.TYPE_LONG:
propertyUtilsBean.setProperty(t, field.getName(),
extractLong(processPlatformGetJsonElement(data, work, field)));
propertyUtilsBean.setProperty(t, field.getName(), extractLong(getJsonElement(jsonObject, field)));
break;
case JpaObject.TYPE_FLOAT:
propertyUtilsBean.setProperty(t, field.getName(),
extractFloat(processPlatformGetJsonElement(data, work, field)));
propertyUtilsBean.setProperty(t, field.getName(), extractFloat(getJsonElement(jsonObject, field)));
break;
case JpaObject.TYPE_DOUBLE:
propertyUtilsBean.setProperty(t, field.getName(),
extractDouble(processPlatformGetJsonElement(data, work, field)));
propertyUtilsBean.setProperty(t, field.getName(), extractDouble(getJsonElement(jsonObject, field)));
break;
case JpaObject.TYPE_DATETIME:
propertyUtilsBean.setProperty(t, field.getName(),
extractDateTime(processPlatformGetJsonElement(data, work, field)));
propertyUtilsBean.setProperty(t, field.getName(), extractDateTime(getJsonElement(jsonObject, field)));
break;
case JpaObject.TYPE_DATE:
propertyUtilsBean.setProperty(t, field.getName(),
extractDate(processPlatformGetJsonElement(data, work, field)));
propertyUtilsBean.setProperty(t, field.getName(), extractDate(getJsonElement(jsonObject, field)));
break;
case JpaObject.TYPE_BOOLEAN:
propertyUtilsBean.setProperty(t, field.getName(),
extractBoolean(processPlatformGetJsonElement(data, work, field)));
propertyUtilsBean.setProperty(t, field.getName(), extractBoolean(getJsonElement(jsonObject, field)));
break;
case JpaObject.TYPE_STRINGLIST:
propertyUtilsBean.setProperty(t, field.getName(),
extractStringOrDistinguishedNameList(processPlatformGetJsonElement(data, work, field)));
propertyUtilsBean.setProperty(t, field.getName(), extractStringOrDistinguishedNameList(
getJsonElement(jsonObject, field), getElementColumnDefinedStringLength(field)));
break;
case JpaObject.TYPE_INTEGERLIST:
propertyUtilsBean.setProperty(t, field.getName(),
extractIntegerList(processPlatformGetJsonElement(data, work, field)));
extractIntegerList(getJsonElement(jsonObject, field)));
break;
case JpaObject.TYPE_LONGLIST:
propertyUtilsBean.setProperty(t, field.getName(),
extractLongList(processPlatformGetJsonElement(data, work, field)));
extractLongList(getJsonElement(jsonObject, field)));
break;
case JpaObject.TYPE_FLOATLIST:
propertyUtilsBean.setProperty(t, field.getName(),
extractFloatList(processPlatformGetJsonElement(data, work, field)));
extractFloatList(getJsonElement(jsonObject, field)));
break;
case JpaObject.TYPE_DOUBLELIST:
propertyUtilsBean.setProperty(t, field.getName(),
extractDoubleList(processPlatformGetJsonElement(data, work, field)));
extractDoubleList(getJsonElement(jsonObject, field)));
break;
case JpaObject.TYPE_DATETIMELIST:
propertyUtilsBean.setProperty(t, field.getName(),
extractDateTimeList(processPlatformGetJsonElement(data, work, field)));
extractDateTimeList(getJsonElement(jsonObject, field)));
break;
case JpaObject.TYPE_BOOLEANLIST:
propertyUtilsBean.setProperty(t, field.getName(),
extractBooleanList(processPlatformGetJsonElement(data, work, field)));
extractBooleanList(getJsonElement(jsonObject, field)));
break;
default:
break;
......@@ -166,17 +153,25 @@ class ActionUpdate extends BaseAction {
return t;
}
private JsonElement processPlatformGetJsonElement(JsonObject data, JsonObject work, Field field) {
private int getColumnDefinedStringLength(Field field) {
Column column = field.getAnnotation(Column.class);
return (null != column) ? column.length() : JpaObject.length_255B;
}
private int getElementColumnDefinedStringLength(Field field) {
ElementColumn elementColumn = field.getAnnotation(ElementColumn.class);
return (null != elementColumn) ? elementColumn.length() : JpaObject.length_255B;
}
private JsonElement getJsonElement(JsonObject jsonObject, Field field) {
JsonElement element = null;
if ((null != work) && work.has(field.getName())) {
element = work.get(field.getName());
} else if ((null != data) && data.has(field.getName())) {
element = data.get(field.getName());
if ((null != jsonObject) && jsonObject.has(field.getName())) {
element = jsonObject.get(field.getName());
}
return element;
}
private String extractStringOrDistinguishedName(JsonElement jsonElement) {
private String extractStringOrDistinguishedName(JsonElement jsonElement, int maxLength) {
String value = null;
if (null != jsonElement) {
if (jsonElement.isJsonPrimitive()) {
......@@ -189,27 +184,27 @@ class ActionUpdate extends BaseAction {
} else if (jsonElement.isJsonArray()) {
JsonArray os = jsonElement.getAsJsonArray();
if (os.size() > 0) {
value = extractStringOrDistinguishedName(os.get(0));
value = extractStringOrDistinguishedName(os.get(0), maxLength);
}
}
}
return value;
return StringTools.utf8SubString(value, maxLength);
}
private List<String> extractStringOrDistinguishedNameList(JsonElement jsonElement) {
private List<String> extractStringOrDistinguishedNameList(JsonElement jsonElement, int maxLength) {
List<String> values = new ArrayList<>();
if (null != jsonElement) {
if (jsonElement.isJsonPrimitive()) {
values.add(jsonElement.getAsString());
values.add(StringTools.utf8SubString(jsonElement.getAsString(), maxLength));
} else if (jsonElement.isJsonObject()) {
JsonObject o = jsonElement.getAsJsonObject();
if (o.has(JpaObject.DISTINGUISHEDNAME)) {
values.add(o.get(JpaObject.DISTINGUISHEDNAME).getAsString());
values.add(StringTools.utf8SubString(o.get(JpaObject.DISTINGUISHEDNAME).getAsString(), maxLength));
}
} else if (jsonElement.isJsonArray()) {
JsonArray os = jsonElement.getAsJsonArray();
for (JsonElement o : os) {
values.add(extractStringOrDistinguishedName(o));
values.add(extractStringOrDistinguishedName(o, maxLength));
}
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册