/*
 * Copyright (C) 2008-2015 by Holger Arndt
 *
 * This file is part of the Universal Java Matrix Package (UJMP).
 * See the NOTICE file distributed with this work for additional
 * information regarding copyright ownership and licensing.
 *
 * UJMP 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
 * of the License, or (at your option) any later version.
 *
 * UJMP 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.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with UJMP; if not, write to the
 * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
 * Boston, MA  02110-1301  USA
 */

package org.ujmp.core.util;

import java.math.MathContext;
import java.util.Locale;

import org.ujmp.core.mapmatrix.DefaultMapMatrix;

public class UJMPSettings extends DefaultMapMatrix {
	private static final long serialVersionUID = -4677534766141735270L;

	private static final Object lock = new Object();

	public static final String USEBLOCKMATRIXMULTIPLY = "UseBlockMatrixMultiply";
	public static final String USEMULTITHREADEDRANDOM = "UseMultThreadedRandom";
	public static final String DEFAULTBLOCKSIZE = "DefaultBlockSize";
	public static final String MATHCONTEXT = "MathContext";
	public static final String DEFAULTTOLERANCE = "DefaultTolerance";
	public static final String NUMBEROFTHREADS = "NumberOfThreads";

	public static final String USEJBLAS = "UseJBlas";
	public static final String USEOJALGO = "UseOjalgo";
	public static final String USEEJML = "UseEJML";
	public static final String USEPARALLELCOLT = "UseParallelColt";
	public static final String USECOMMONSMATH = "UseCommonsMath";
	public static final String USEMTJ = "UseMTJ";

	public static final String MAXROWSTOPRINT = "MaxRowsToPrint";
	public static final String MAXCOLSTOPRINT = "MaxColsToPrint";
	public static final String MAXTOOLTIPROWS = "MaxTooltipRows";
	public static final String MAXTOOLTIPCOLS = "MaxTooltipCols";

	public static final String USERAGENT = "UserAgent";

	private static UJMPSettings instance = null;

	private UJMPSettings() {
		put(DEFAULTBLOCKSIZE, 100);
		put(MATHCONTEXT, MathContext.DECIMAL128);
		put(USEMULTITHREADEDRANDOM, true);
		put(USEBLOCKMATRIXMULTIPLY, false);
		put(DEFAULTTOLERANCE, 1.0e-12);

		put(USEJBLAS, true);
		put(USEEJML, true);
		put(USEOJALGO, true);
		put(USEPARALLELCOLT, true);
		put(USEMTJ, true);
		put(USECOMMONSMATH, true);

		put(MAXROWSTOPRINT, 100);
		put(MAXCOLSTOPRINT, 100);
		put(MAXTOOLTIPROWS, 10);
		put(MAXTOOLTIPCOLS, 10);

		put(USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:28.0) Gecko/20100101 Firefox/28.0");

		put(NUMBEROFTHREADS, Runtime.getRuntime().availableProcessors());
		Locale.setDefault(Locale.US);
		System.setProperty("file.encoding", "UTF-8");
		System.setProperty("sun.jnu.encoding", "UTF-8");
	}

	public static final UJMPSettings getInstance() {
		if (instance == null) {
			synchronized (lock) {
				if (instance == null) {
					instance = new UJMPSettings();
				}
			}
		}
		return instance;
	}

	public MathContext getMathContext() {
		return (MathContext) get(MATHCONTEXT);
	}

	public void setMathContext(MathContext mc) {
		put(MATHCONTEXT, mc);
	}

	public int getNumberOfThreads() {
		return MathUtil.getInt(get(NUMBEROFTHREADS));
	}

	public void setNumberOfThreads(int numberOfThreads) {
		put(NUMBEROFTHREADS, numberOfThreads);
	}

	public double getTolerance() {
		return MathUtil.getDouble(get(DEFAULTTOLERANCE));
	}

	public void setTolerance(double tolerance) {
		put(DEFAULTTOLERANCE, tolerance);
	}

	public int getMaxColumnsToPrint() {
		return MathUtil.getInt(get(MAXCOLSTOPRINT));
	}

	public void setMaxColumnsToPrint(int maxColumnsToPrint) {
		put(MAXCOLSTOPRINT, maxColumnsToPrint);
	}

	public int getMaxRowsToPrint() {
		return MathUtil.getInt(get(MAXROWSTOPRINT));
	}

	public void setMaxRowsToPrint(int maxRowsToPrint) {
		put(MAXROWSTOPRINT, maxRowsToPrint);
	}

	public int getMaxToolTipCols() {
		return MathUtil.getInt(get(MAXTOOLTIPCOLS));
	}

	public void setMaxToolTipCols(int maxToolTipCols) {
		put(MAXTOOLTIPCOLS, maxToolTipCols);
	}

	public int getMaxToolTipRows() {
		return MathUtil.getInt(get(MAXTOOLTIPROWS));
	}

	public void setMaxToolTipRows(int maxToolTipRows) {
		put(MAXTOOLTIPROWS, maxToolTipRows);
	}

	public static Locale getLocale() {
		return Locale.getDefault();
	}

	public static void setLocale(Locale locale) {
		Locale.setDefault(locale);
	}

	public void setUseCommonsMath(boolean useCommonsMath) {
		put(USECOMMONSMATH, useCommonsMath);
	}

	public boolean isUseCommonsMath() {
		return MathUtil.getBoolean(get(USECOMMONSMATH));
	}

	public void setUseJBlas(boolean useJBlas) {
		put(USEJBLAS, useJBlas);
	}

	public boolean isUseJBlas() {
		return MathUtil.getBoolean(get(USEJBLAS));
	}

	public void setUseOjalgo(boolean useOjalgo) {
		put(USEOJALGO, useOjalgo);
	}

	public boolean isUseOjalgo() {
		return MathUtil.getBoolean(get(USEOJALGO));
	}

	public void setUseEJML(boolean useEJML) {
		put(USEEJML, useEJML);
	}

	public boolean isUseEJML() {
		return MathUtil.getBoolean(get(USEEJML));
	}

	public void setUseParallelColt(boolean useParallelColt) {
		put(USEPARALLELCOLT, useParallelColt);
	}

	public boolean isUseParallelColt() {
		return MathUtil.getBoolean(get(USEPARALLELCOLT));
	}

	public void setUseMTJ(boolean useMTJ) {
		put(USEMTJ, useMTJ);
	}

	public boolean isUseMTJ() {
		return MathUtil.getBoolean(get(USEMTJ));
	}

	public boolean isUseBlockMatrixMultiply() {
		return MathUtil.getBoolean(get(USEBLOCKMATRIXMULTIPLY));
	}

	public void setUseBlockMatrixMultiply(boolean useBlockMatrix) {
		put(USEBLOCKMATRIXMULTIPLY, useBlockMatrix);
	}

	public boolean isUseMultiThreadedRandom() {
		return MathUtil.getBoolean(USEMULTITHREADEDRANDOM);
	}

	public void setUseMultiThreadedRandom(boolean value) {
		put(USEMULTITHREADEDRANDOM, value);
	}

	public int getDefaultBlockSize() {
		return MathUtil.getInt(get(DEFAULTBLOCKSIZE));
	}

	public void setDefaultBlockSize(int defaultBlockSize) {
		put(DEFAULTBLOCKSIZE, defaultBlockSize);
	}

	public String getUserAgent() {
		return StringUtil.getString(get(USERAGENT));
	}

	public void setUserAgent(String value) {
		put(USERAGENT, value);
	}

	public String getTempDir() {
		return System.getProperty("java.io.tmpdir");
	}

}

 

Ads help maintain this website.