/** * Copyright (c) 2000-present Liferay, Inc. All rights reserved. * * This library is free software; you can redistribute it and/or modify it under * the terms of the GNU Lesser General Public License as published by the Free * Software Foundation; either version 2.1 of the License, or (at your option) * any later version. * * This library is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more * details. */ package com.liferay.gradle.plugins.lang.builder; import com.liferay.gradle.util.FileUtil; import com.liferay.gradle.util.GradleUtil; import com.liferay.gradle.util.Validator; import com.liferay.lang.builder.LangBuilderArgs; import java.io.File; import java.util.ArrayList; import java.util.List; import org.gradle.api.logging.Logger; import org.gradle.api.logging.Logging; import org.gradle.api.tasks.Input; import org.gradle.api.tasks.InputFile; import org.gradle.api.tasks.JavaExec; import org.gradle.api.tasks.Optional; /** * @author Andrea Di Giorgi */ public class BuildLangTask extends JavaExec { public BuildLangTask() { setMain("com.liferay.lang.builder.LangBuilder"); } @Override public void exec() { setArgs(_getCompleteArgs()); super.exec(); } @Input public File getLangDir() { return GradleUtil.toFile(getProject(), _langDir); } @Input public String getLangFileName() { return GradleUtil.toString(_langFileName); } @InputFile @Optional public File getPortalLanguagePropertiesFile() { return GradleUtil.toFile(getProject(), _portalLanguagePropertiesFile); } @Input @Optional public String getTranslateSubscriptionKey() { return GradleUtil.toString(_translateSubscriptionKey); } @Input public boolean isPlugin() { return _plugin; } @Input public boolean isTranslate() { return _translate; } public void setLangDir(Object langDir) { _langDir = langDir; } public void setLangFileName(Object langFileName) { _langFileName = langFileName; } public void setPlugin(boolean plugin) { _plugin = plugin; } public void setPortalLanguagePropertiesFile( Object portalLanguagePropertiesFile) { _portalLanguagePropertiesFile = portalLanguagePropertiesFile; } public void setTranslate(boolean translate) { _translate = translate; } public void setTranslateSubscriptionKey(Object translateSubscriptionKey) { _translateSubscriptionKey = translateSubscriptionKey; } private List<String> _getCompleteArgs() { List<String> args = new ArrayList<>(getArgs()); args.add( "lang.dir=" + FileUtil.relativize(getLangDir(), getWorkingDir())); args.add("lang.file=" + getLangFileName()); args.add("lang.plugin=" + isPlugin()); File portalLanguagePropertiesFile = getPortalLanguagePropertiesFile(); if (portalLanguagePropertiesFile != null) { args.add( "lang.portal.language.properties.file=" + FileUtil.relativize( getPortalLanguagePropertiesFile(), getWorkingDir())); } boolean translate = isTranslate(); if (translate) { String translateSubscriptionKey = getTranslateSubscriptionKey(); if (Validator.isNull(translateSubscriptionKey)) { if (_logger.isWarnEnabled()) { _logger.warn( "Translation is disabled because credentials are not " + "specified"); } translate = false; } else { args.add( "lang.translate.subscription.key=" + translateSubscriptionKey); } } args.add("lang.translate=" + translate); return args; } private static final Logger _logger = Logging.getLogger( BuildLangTask.class); private Object _langDir; private Object _langFileName = LangBuilderArgs.LANG_FILE_NAME; private boolean _plugin = LangBuilderArgs.PLUGIN; private Object _portalLanguagePropertiesFile; private boolean _translate = LangBuilderArgs.TRANSLATE; private Object _translateSubscriptionKey; }