All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.aspectj.ajde.core.JavaOptions Maven / Gradle / Ivy

Go to download

AspectJ tools most notably contains the AspectJ compiler (AJC). AJC applies aspects to Java classes during compilation, fully replacing Javac for plain Java classes and also compiling native AspectJ or annotation-based @AspectJ syntax. Furthermore, AJC can weave aspects into existing class files in a post-compile binary weaving step. This library is a superset of AspectJ weaver and hence also of AspectJ runtime.

There is a newer version: 1.9.22.1
Show newest version
/********************************************************************
 * Copyright (c) 2007 Contributors. All rights reserved.
 * This program and the accompanying materials are made available
 * under the terms of the Eclipse Public License v 2.0
 * which accompanies this distribution and is available at
 * https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.txt
 *
 * Contributors: IBM Corporation - initial API and implementation
 * 				 Helen Hawkins   - initial version (bug 148190)
 *******************************************************************/
package org.aspectj.ajde.core;

import java.util.HashMap;
import java.util.Map;

import org.aspectj.org.eclipse.jdt.internal.compiler.impl.CompilerOptions;

/**
 * Class containing the current custom java options
 */
public final class JavaOptions {

	public static final String COMPLIANCE_LEVEL = CompilerOptions.OPTION_Compliance;
	public static final String SOURCE_COMPATIBILITY_LEVEL = CompilerOptions.OPTION_Source;
	public static final String TARGET_COMPATIBILITY_LEVEL = CompilerOptions.OPTION_TargetPlatform;
	// Version constants
	public static final String VERSION_13 = CompilerOptions.VERSION_1_3;
	public static final String VERSION_14 = CompilerOptions.VERSION_1_4;
	public static final String VERSION_15 = CompilerOptions.VERSION_1_5;
	public static final String VERSION_16 = CompilerOptions.VERSION_1_6;

	// by default will use the platform default encoding
	public static final String CHARACTER_ENCODING = CompilerOptions.OPTION_Encoding;

	// indicates if unused/optimizable local variables need to be preserved (debugging purpose)
	public static final String PRESERVE_ALL_LOCALS = CompilerOptions.OPTION_PreserveUnusedLocal;
	public static final String PRESERVE = CompilerOptions.PRESERVE;
	public static final String OPTIMIZE = CompilerOptions.OPTIMIZE_OUT;

	// Warning constants
	public static final String WARN_METHOD_WITH_CONSTRUCTOR_NAME = CompilerOptions.OPTION_ReportMethodWithConstructorName;
	public static final String WARN_OVERRIDING_PACKAGE_DEFAULT_METHOD = CompilerOptions.OPTION_ReportOverridingPackageDefaultMethod;
	public static final String WARN_DEPRECATION = CompilerOptions.OPTION_ReportDeprecation;
	public static final String WARN_HIDDEN_CATCH_BLOCKS = CompilerOptions.OPTION_ReportHiddenCatchBlock;
	public static final String WARN_UNUSED_LOCALS = CompilerOptions.OPTION_ReportUnusedLocal;
	public static final String WARN_UNUSED_PARAMETER = CompilerOptions.OPTION_ReportUnusedParameter;
	public static final String WARN_UNUSED_IMPORTS = CompilerOptions.OPTION_ReportUnusedImport;
	public static final String WARN_SYNTHETIC_ACCESS = CompilerOptions.OPTION_ReportSyntheticAccessEmulation;
	public static final String WARN_ASSERT_IDENITIFIER = CompilerOptions.OPTION_ReportAssertIdentifier;
	public static final String WARN_NON_NLS = CompilerOptions.OPTION_ReportNonExternalizedStringLiteral;
	// warning option constants
	public static final String IGNORE = CompilerOptions.IGNORE;
	public static final String WARNING = CompilerOptions.WARNING;

	// Debug constants
	public static final String DEBUG_SOURCE = CompilerOptions.OPTION_SourceFileAttribute;
	public static final String DEBUG_LINES  = CompilerOptions.OPTION_LocalVariableAttribute;
	public static final String DEBUG_VARS   = CompilerOptions.OPTION_LineNumberAttribute;
	// Debug option constants
	public static final String GENERATE = CompilerOptions.GENERATE;
	public static final String DO_NOT_GENERATE = CompilerOptions.DO_NOT_GENERATE;

	private static Map defaultOptionsMap;

	/**
	 * @return the java options map with the default settings
	 */
	public static Map getDefaultJavaOptions() {
		if (defaultOptionsMap != null) return defaultOptionsMap;

		defaultOptionsMap = new HashMap<>();
		defaultOptionsMap.put(COMPLIANCE_LEVEL, VERSION_14);
		defaultOptionsMap.put(SOURCE_COMPATIBILITY_LEVEL, VERSION_13);
		defaultOptionsMap.put(PRESERVE_ALL_LOCALS, OPTIMIZE);
		defaultOptionsMap.put(WARN_METHOD_WITH_CONSTRUCTOR_NAME, IGNORE);
		defaultOptionsMap.put(WARN_OVERRIDING_PACKAGE_DEFAULT_METHOD, IGNORE);
		defaultOptionsMap.put(WARN_DEPRECATION, IGNORE);
		defaultOptionsMap.put(WARN_HIDDEN_CATCH_BLOCKS, IGNORE);
		defaultOptionsMap.put(WARN_UNUSED_LOCALS, IGNORE);
		defaultOptionsMap.put(WARN_UNUSED_PARAMETER, IGNORE);
		defaultOptionsMap.put(WARN_UNUSED_IMPORTS, IGNORE);
		defaultOptionsMap.put(WARN_SYNTHETIC_ACCESS, IGNORE);
		defaultOptionsMap.put(WARN_ASSERT_IDENITIFIER, IGNORE);
		defaultOptionsMap.put(WARN_NON_NLS, IGNORE);
		defaultOptionsMap.put(DEBUG_SOURCE, GENERATE);
		defaultOptionsMap.put(DEBUG_LINES, GENERATE);
		defaultOptionsMap.put(DEBUG_VARS, DO_NOT_GENERATE);

		return defaultOptionsMap;
	}

	/**
	 * @return true if the given value is a valid JVM version
	 * (JavaOptions.VERSION_13, JavaOptions.VERSION_134, JavaOptions.VERSION_15,
	 * JavaOptions.VERSION_16) and false otherwise
	 */
	public static boolean isValidJvmVersion(String value) {
		return VERSION_13.equals(value) || VERSION_14.equals(value)
			|| VERSION_15.equals(value) || VERSION_16.equals(value);
	}

	/**
	 * @return true if the given option is JavaOptions.PRESERVE or
	 * JavaOptions.OPTIMIZE and false otherwise
	 */
	public static boolean isValidPreserveAllLocalsOption(String option) {
		return PRESERVE.equals(option) || OPTIMIZE.equals(option);
	}

	/**
	 * @return true if the given option is JavaOptions.IGNORE or
	 * JavaOptions.WARNING and false otherwise
	 */
	public static boolean isIgnoreOrWarning(String option) {
		return IGNORE.equals(option) || WARNING.equals(option);
	}

	/**
	 * @return true if the given option is JavaOptions.GENERATE or
	 * JavaOptions.DO_NOT_GENERATE and false otherwise
	 */
	public static boolean isGenerateOrNot(String option) {
		return GENERATE.equals(option) || DO_NOT_GENERATE.equals(option);
	}

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy