01: /*******************************************************************************
02: * Copyright (c) 2005, 2007 BEA Systems, Inc.
03: * All rights reserved. This program and the accompanying materials
04: * are made available under the terms of the Eclipse Public License v1.0
05: * which accompanies this distribution, and is available at
06: * http://www.eclipse.org/legal/epl-v10.html
07: *
08: * Contributors:
09: * wharley@bea.com - initial API and implementation
10: *******************************************************************************/package org.eclipse.jdt.apt.core.util;
11:
12: import java.util.Collections;
13: import java.util.HashMap;
14: import java.util.Map;
15:
16: /**
17: * String constants used to access APT preference store
18: */
19: public class AptPreferenceConstants {
20: public static final String APT_STRING_BASE = "org.eclipse.jdt.apt"; //$NON-NLS-1$
21: public static final String APT_GENSRCDIR = APT_STRING_BASE
22: + ".genSrcDir"; //$NON-NLS-1$
23: public static final String APT_PROCESSOROPTIONS = APT_STRING_BASE
24: + ".processorOptions"; //$NON-NLS-1$
25: public static final String APT_RECONCILEENABLED = APT_STRING_BASE
26: + ".reconcileEnabled"; //$NON-NLS-1$
27: public static final String APT_PROCESSANNOTATIONS = "org.eclipse.jdt.core.compiler.processAnnotations"; //$NON-NLS-1$
28: // backward compatibility prior to Eclipse 3.3:
29: public static final String APT_ENABLED = APT_STRING_BASE
30: + ".aptEnabled"; //$NON-NLS-1$
31:
32: // used for APT_PROCESSANNOTATIONS setting:
33: public static final String ENABLED = "enabled"; //$NON-NLS-1$
34: public static final String DISABLED = "disabled"; //$NON-NLS-1$
35:
36: // Used in preference to indicate null value for processor option
37: public static final String APT_NULLVALUE = APT_STRING_BASE
38: + ".NULLVALUE"; //$NON-NLS-1$
39:
40: public static final String DEFAULT_GENERATED_SOURCE_FOLDER_NAME = ".apt_generated"; //$NON-NLS-1$
41:
42: /**
43: * Processors should report this option in {@link com.sun.mirror.apt.AnnotationProcessorFactory#supportedOptions()}
44: * in order to enable type generation while editing, that is, during reconcile.
45: */
46: public static final String RTTG_ENABLED_OPTION = "enableTypeGenerationInEditor"; //$NON-NLS-1$
47:
48: public static Map<String, String> DEFAULT_OPTIONS_MAP;
49:
50: static {
51: Map<String, String> options = new HashMap<String, String>();
52: options.put(AptPreferenceConstants.APT_ENABLED, "false"); //$NON-NLS-1$
53: options.put(AptPreferenceConstants.APT_GENSRCDIR,
54: DEFAULT_GENERATED_SOURCE_FOLDER_NAME);
55: options.put(AptPreferenceConstants.APT_PROCESSOROPTIONS, ""); //$NON-NLS-1$
56: options
57: .put(AptPreferenceConstants.APT_RECONCILEENABLED,
58: "true"); //$NON-NLS-1$
59: DEFAULT_OPTIONS_MAP = Collections.unmodifiableMap(options);
60: }
61:
62: /**
63: * Names of all apt settings that can be read from APT preference store.
64: * Order is unimportant. Note that not all "apt settings" may be in the
65: * APT preference store - for instance, the factory path is kept in a
66: * separate file. This list only applies to the information available
67: * from IPreferencesService. See AptConfig for usage.
68: */
69: public static final String[] OPTION_NAMES = { APT_ENABLED,
70: APT_GENSRCDIR, APT_PROCESSOROPTIONS, APT_RECONCILEENABLED, };
71:
72: /**
73: * Number of apt settings in the APT preference store.
74: */
75: public static final int NSETTINGS = OPTION_NAMES.length;
76: }
|