com.liferay.object.internal.action.executor.GroovyObjectActionExecutorImpl Maven / Gradle / Ivy
/**
* 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.internal.action.executor;
import com.liferay.object.action.executor.ObjectActionExecutor;
import com.liferay.object.constants.ObjectActionExecutorConstants;
import com.liferay.object.internal.action.util.ObjectEntryVariablesUtil;
import com.liferay.object.model.ObjectDefinition;
import com.liferay.object.scripting.executor.ObjectScriptingExecutor;
import com.liferay.object.service.ObjectDefinitionLocalService;
import com.liferay.object.system.SystemObjectDefinitionManagerRegistry;
import com.liferay.portal.kernel.json.JSONObject;
import com.liferay.portal.kernel.scripting.ScriptingException;
import com.liferay.portal.kernel.util.GetterUtil;
import com.liferay.portal.kernel.util.UnicodeProperties;
import com.liferay.portal.vulcan.dto.converter.DTOConverterRegistry;
import java.util.HashSet;
import java.util.Map;
import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Reference;
/**
* @author Marco Leo
*/
@Component(service = ObjectActionExecutor.class)
public class GroovyObjectActionExecutorImpl implements ObjectActionExecutor {
@Override
public void execute(
long companyId, long objectActionId,
UnicodeProperties parametersUnicodeProperties,
JSONObject payloadJSONObject, long userId)
throws Exception {
ObjectDefinition objectDefinition =
_objectDefinitionLocalService.fetchObjectDefinition(
payloadJSONObject.getLong("objectDefinitionId"));
Map inputObjects =
ObjectEntryVariablesUtil.getVariables(
_dtoConverterRegistry, objectDefinition, payloadJSONObject,
_systemObjectDefinitionManagerRegistry);
Map results = _objectScriptingExecutor.execute(
(Map)inputObjects.get("baseModel"), new HashSet<>(),
parametersUnicodeProperties.get("script"));
if (GetterUtil.getBoolean(results.get("invalidScript"))) {
throw new ScriptingException();
}
}
@Override
public String getKey() {
return ObjectActionExecutorConstants.KEY_GROOVY;
}
@Reference
private DTOConverterRegistry _dtoConverterRegistry;
@Reference
private ObjectDefinitionLocalService _objectDefinitionLocalService;
@Reference(target = "(scripting.language=groovy)")
private ObjectScriptingExecutor _objectScriptingExecutor;
@Reference
private SystemObjectDefinitionManagerRegistry
_systemObjectDefinitionManagerRegistry;
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy