
com.liferay.object.web.internal.util.ObjectEntryUtil Maven / Gradle / Ivy
The newest version!
/**
* SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com
* SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06
*/
package com.liferay.object.web.internal.util;
import com.liferay.document.library.kernel.model.DLFileEntry;
import com.liferay.document.library.kernel.service.DLFileEntryLocalServiceUtil;
import com.liferay.info.field.InfoField;
import com.liferay.info.field.InfoFieldValue;
import com.liferay.info.field.type.DateInfoFieldType;
import com.liferay.info.field.type.DateTimeInfoFieldType;
import com.liferay.info.item.InfoItemFieldValues;
import com.liferay.info.localized.InfoLocalizedValue;
import com.liferay.list.type.model.ListTypeEntry;
import com.liferay.list.type.service.ListTypeEntryLocalServiceUtil;
import com.liferay.object.constants.ObjectFieldConstants;
import com.liferay.object.field.util.ObjectFieldUtil;
import com.liferay.object.model.ObjectDefinition;
import com.liferay.object.model.ObjectEntry;
import com.liferay.object.model.ObjectField;
import com.liferay.object.model.ObjectRelationship;
import com.liferay.object.relationship.util.ObjectRelationshipUtil;
import com.liferay.object.rest.dto.v1_0.FileEntry;
import com.liferay.object.rest.dto.v1_0.ListEntry;
import com.liferay.object.service.ObjectDefinitionLocalServiceUtil;
import com.liferay.object.service.ObjectEntryLocalServiceUtil;
import com.liferay.object.service.ObjectRelationshipLocalServiceUtil;
import com.liferay.object.web.internal.model.ProxyObjectEntry;
import com.liferay.petra.string.StringPool;
import com.liferay.portal.kernel.util.DateUtil;
import com.liferay.portal.kernel.util.FastDateFormatFactoryUtil;
import com.liferay.portal.kernel.util.GetterUtil;
import com.liferay.portal.kernel.util.KeyValuePair;
import com.liferay.portal.kernel.util.LocaleUtil;
import com.liferay.portal.kernel.util.StringUtil;
import java.text.Format;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Objects;
/**
* @author Eudaldo Alonso
*/
public class ObjectEntryUtil {
public static Object getValue(
Locale locale, ObjectField objectField, Map values)
throws Exception {
Object value = values.get(objectField.getName());
if (value == null) {
return null;
}
if (objectField.compareBusinessType(
ObjectFieldConstants.BUSINESS_TYPE_ATTACHMENT)) {
FileEntry fileEntry = (FileEntry)value;
DLFileEntry dlFileEntry =
DLFileEntryLocalServiceUtil.fetchDLFileEntry(
GetterUtil.getLong(fileEntry.getId()));
if (dlFileEntry == null) {
return null;
}
return fileEntry;
}
else if (objectField.compareBusinessType(
ObjectFieldConstants.BUSINESS_TYPE_DATE)) {
return DateUtil.parseDate("yyyy-MM-dd", value.toString(), locale);
}
else if (objectField.compareBusinessType(
ObjectFieldConstants.BUSINESS_TYPE_DATE_TIME)) {
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(
ObjectFieldUtil.getDateTimePattern(value.toString()));
return LocalDateTime.parse(value.toString(), dateTimeFormatter);
}
else if (objectField.compareBusinessType(
ObjectFieldConstants.BUSINESS_TYPE_MULTISELECT_PICKLIST)) {
List listTypeEntries = new ArrayList<>();
for (ListEntry listEntry : (List)value) {
ListTypeEntry listTypeEntry =
ListTypeEntryLocalServiceUtil.fetchListTypeEntry(
objectField.getListTypeDefinitionId(),
listEntry.getKey());
if (listTypeEntry == null) {
continue;
}
listTypeEntries.add(listTypeEntry);
}
return listTypeEntries;
}
else if (objectField.compareBusinessType(
ObjectFieldConstants.BUSINESS_TYPE_PICKLIST)) {
ListEntry listEntry = (ListEntry)value;
return ListTypeEntryLocalServiceUtil.fetchListTypeEntry(
objectField.getListTypeDefinitionId(), listEntry.getKey());
}
else if (objectField.compareBusinessType(
ObjectFieldConstants.BUSINESS_TYPE_RELATIONSHIP)) {
long primaryKey = GetterUtil.getLong(value);
if (primaryKey == 0) {
return null;
}
ObjectRelationship objectRelationship =
ObjectRelationshipLocalServiceUtil.
fetchObjectRelationshipByObjectFieldId2(
objectField.getObjectFieldId());
return new KeyValuePair(
String.valueOf(primaryKey),
ObjectEntryLocalServiceUtil.getTitleValue(
objectRelationship.getObjectDefinitionId1(), primaryKey));
}
return value;
}
public static ObjectEntry toObjectEntry(
long objectDefinitionId,
com.liferay.object.rest.dto.v1_0.ObjectEntry objectEntry) {
ObjectEntry serviceBuilderObjectEntry =
ObjectEntryLocalServiceUtil.createObjectEntry(0L);
serviceBuilderObjectEntry.setExternalReferenceCode(
objectEntry.getExternalReferenceCode());
serviceBuilderObjectEntry.setObjectEntryId(
GetterUtil.getLong(objectEntry.getId()));
serviceBuilderObjectEntry.setObjectDefinitionId(objectDefinitionId);
return new ProxyObjectEntry(serviceBuilderObjectEntry, objectEntry);
}
public static Map toProperties(
long companyId, InfoItemFieldValues infoItemFieldValues) {
Map properties = new HashMap<>();
for (InfoFieldValue
© 2015 - 2025 Weber Informatics LLC | Privacy Policy