summaryrefslogtreecommitdiff
path: root/support/arara/source/src/main/java/com/github/cereda/arara/model/Configuration.java
diff options
context:
space:
mode:
Diffstat (limited to 'support/arara/source/src/main/java/com/github/cereda/arara/model/Configuration.java')
-rw-r--r--support/arara/source/src/main/java/com/github/cereda/arara/model/Configuration.java246
1 files changed, 0 insertions, 246 deletions
diff --git a/support/arara/source/src/main/java/com/github/cereda/arara/model/Configuration.java b/support/arara/source/src/main/java/com/github/cereda/arara/model/Configuration.java
deleted file mode 100644
index 70f6382364..0000000000
--- a/support/arara/source/src/main/java/com/github/cereda/arara/model/Configuration.java
+++ /dev/null
@@ -1,246 +0,0 @@
-/**
- * Arara, the cool TeX automation tool
- * Copyright (c) 2012 -- 2019, Paulo Roberto Massa Cereda
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * 3. Neither the name of the project's author nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY
- * WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-package com.github.cereda.arara.model;
-
-import com.github.cereda.arara.controller.ConfigurationController;
-import com.github.cereda.arara.controller.LanguageController;
-import com.github.cereda.arara.utils.CommonUtils;
-import com.github.cereda.arara.utils.ConfigurationUtils;
-import java.io.File;
-import java.nio.charset.Charset;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.concurrent.TimeUnit;
-
-/**
- * Implements the configuration model, which holds the default settings and can
- * load the configuration file.
- * @author Paulo Roberto Massa Cereda
- * @version 4.0
- * @since 4.0
- */
-public class Configuration {
-
- // the application messages obtained from the
- // language controller
- private static final LanguageController messages =
- LanguageController.getInstance();
-
- /**
- * Loads the application configuration.
- * @throws AraraException Something wrong happened, to be caught in the
- * higher levels.
- */
- public static void load() throws AraraException {
-
- // initialize both file type and language models,
- // since we can track errors from there instead
- // of relying on a check on this level
- FileType.init();
- Language.init();
-
- // reset everything
- reset();
-
- // get the configuration file, if any
- File file = ConfigurationUtils.getConfigFile();
- if (file != null) {
-
- // set the configuration file name for
- // logging purposes
- ConfigurationController.getInstance().
- put("execution.configuration.name",
- CommonUtils.getCanonicalPath(file)
- );
-
- // then validate it and update the
- // configuration accordingly
- Resource resource = ConfigurationUtils.validateConfiguration(file);
- update(resource);
- }
-
- // just to be sure, update the
- // current locale in order to
- // display localized messages
- Locale locale = ((Language) ConfigurationController.
- getInstance().get("execution.language")).getLocale();
- LanguageController.getInstance().setLocale(locale);
- }
-
- /**
- * Resets the configuration to initial settings.
- * @throws AraraException Something wrong happened, to be caught in the
- * higher levels.
- */
- private static void reset() throws AraraException {
-
- // put everything in a map to be
- // later assigned to the configuration
- // controller, which holds the settings
- Map<String, Object> mapping = new HashMap<String, Object>();
-
- mapping.put("execution.loops", 10L);
- mapping.put("directives.charset", Charset.forName("UTF-8"));
- mapping.put("execution.errors.halt", true);
- mapping.put("execution.timeout", false);
- mapping.put("execution.timeout.value", 0L);
- mapping.put("execution.timeout.unit", TimeUnit.MILLISECONDS);
- mapping.put("application.version", "4.0");
- mapping.put("application.revision", "2");
- mapping.put("directives.linebreak.pattern", "^\\s*-->\\s(.*)$");
-
- String directive = "^\\s*(\\w+)\\s*(:\\s*(\\{.*\\})\\s*)?";
- String pattern = "(\\s+(if|while|until|unless)\\s+(\\S.*))?$";
-
- mapping.put("directives.pattern", directive.concat(pattern));
- mapping.put("application.pattern", "arara:\\s");
- mapping.put("application.width", 65);
- mapping.put("execution.database.name", "arara");
- mapping.put("execution.log.name", "arara");
- mapping.put("execution.verbose", false);
-
- mapping.put("trigger.halt", false);
- mapping.put("execution.language", new Language("en"));
- mapping.put("execution.logging", false);
- mapping.put("execution.dryrun", false);
- mapping.put("execution.status", 0);
- mapping.put("application.copyright.year", "2012-2019");
- mapping.put("execution.filetypes", ConfigurationUtils.
- getDefaultFileTypes());
- mapping.put("execution.rule.paths",
- Arrays.asList(
- CommonUtils.buildPath(
- ConfigurationUtils.getApplicationPath(),
- "rules"
- )
- )
- );
-
- mapping.put("execution.preambles", new HashMap<String, String>());
- mapping.put("execution.preamble.active", false);
- mapping.put("execution.configuration.name", "[none]");
- mapping.put("execution.header", false);
- mapping.put("ui.lookandfeel", "none");
-
- // get the configuration controller and
- // set every map key to it
- ConfigurationController controller =
- ConfigurationController.getInstance();
- for (String key : mapping.keySet()) {
- controller.put(key, mapping.get(key));
- }
- }
-
- /**
- * Update the configuration based on the provided map.
- * @param data Map containing the new configuration settings.
- * @throws AraraException Something wrong happened, to be caught in the
- * higher levels.
- */
- private static void update(Resource resource) throws AraraException {
-
- ConfigurationController controller =
- ConfigurationController.getInstance();
-
- if (resource.getPaths() != null) {
- List<String> paths = resource.getPaths();
- paths = ConfigurationUtils.normalizePaths(paths);
- controller.put("execution.rule.paths", paths);
- }
-
- if (resource.getFiletypes() != null) {
- List<FileTypeResource> resources = resource.getFiletypes();
- List<FileType> filetypes = new ArrayList<FileType>();
- for (FileTypeResource type : resources) {
- if (type.getPattern() != null) {
- filetypes.add(
- new FileType(type.getExtension(), type.getPattern())
- );
- } else {
- filetypes.add(new FileType(type.getExtension()));
- }
- }
- filetypes = ConfigurationUtils.normalizeFileTypes(filetypes);
- controller.put("execution.filetypes", filetypes);
- }
-
- controller.put("execution.verbose", resource.isVerbose());
- controller.put("execution.logging", resource.isLogging());
- controller.put("execution.header", resource.isHeader());
-
- if (resource.getDbname() != null) {
- controller.put("execution.database.name",
- ConfigurationUtils.cleanFileName(resource.getDbname()));
- }
-
- if (resource.getLogname() != null) {
- controller.put("execution.log.name",
- ConfigurationUtils.cleanFileName(resource.getLogname()));
- }
-
- if (resource.getLanguage() != null) {
- controller.put("execution.language",
- new Language(resource.getLanguage()));
- }
-
- long loops = resource.getLoops();
- if (loops > 0) {
- controller.put("execution.loops", loops);
- } else {
- if (loops < 0) {
- throw new AraraException(
- messages.getMessage(
- Messages.ERROR_CONFIGURATION_LOOPS_INVALID_RANGE
- )
- );
- }
- }
-
- if (resource.getPreambles() != null) {
- controller.put("execution.preambles",
- resource.getPreambles());
- }
-
- if (resource.getLaf() != null) {
- controller.put("ui.lookandfeel",
- resource.getLaf());
- }
-
- }
-
-}