2 * Copyright (C) 2007 The Android Open Source Project
4 * Licensed under the Eclipse Public License, Version 1.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.eclipse.org/org/documents/epl-v10.php
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 package com.android.ide.eclipse.adt;
19 import com.android.ide.eclipse.adt.internal.build.PostCompilerBuilder;
20 import com.android.ide.eclipse.adt.internal.build.PreCompilerBuilder;
21 import com.android.ide.eclipse.adt.internal.build.ResourceManagerBuilder;
22 import com.android.sdklib.SdkConstants;
25 import java.util.regex.Pattern;
28 * Constant definition class.<br>
30 * Most constants have a prefix defining the content.
32 * <li><code>WS_</code> Workspace path constant. Those are absolute paths,
33 * from the project root.</li>
34 * <li><code>OS_</code> OS path constant. These paths are different depending on the platform.</li>
35 * <li><code>FN_</code> File name constant.</li>
36 * <li><code>FD_</code> Folder name constant.</li>
37 * <li><code>MARKER_</code> Resource Marker Ids constant.</li>
38 * <li><code>EXT_</code> File extension constant. This does NOT include a dot.</li>
39 * <li><code>DOT_</code> File extension constant. This start with a dot.</li>
40 * <li><code>RE_</code> Regexp constant.</li>
41 * <li><code>NS_</code> Namespace constant.</li>
42 * <li><code>CLASS_</code> Fully qualified class name.</li>
46 public class AndroidConstants {
48 * The old Editors Plugin ID. It is still used in some places for compatibility.
49 * Please do not use for new features.
51 public static final String EDITORS_NAMESPACE = "com.android.ide.eclipse.editors"; // $NON-NLS-1$
53 /** Nature of default Android projects */
54 public final static String NATURE_DEFAULT = "com.android.ide.eclipse.adt.AndroidNature"; //$NON-NLS-1$
55 /** Nature of Android export projects */
56 public final static String NATURE_EXPORT = "com.android.ide.eclipse.adt.AndroidExportNature"; //$NON-NLS-1$
58 /** Separator for workspace path, i.e. "/". */
59 public final static String WS_SEP = "/"; //$NON-NLS-1$
60 /** Separator character for workspace path, i.e. '/'. */
61 public final static char WS_SEP_CHAR = '/';
63 /** Extension of the Application package Files, i.e. "apk". */
64 public final static String EXT_ANDROID_PACKAGE = "apk"; //$NON-NLS-1$
65 /** Extension of java files, i.e. "java" */
66 public final static String EXT_JAVA = "java"; //$NON-NLS-1$
67 /** Extension of compiled java files, i.e. "class" */
68 public final static String EXT_CLASS = "class"; //$NON-NLS-1$
69 /** Extension of xml files, i.e. "xml" */
70 public final static String EXT_XML = "xml"; //$NON-NLS-1$
71 /** Extension of jar files, i.e. "jar" */
72 public final static String EXT_JAR = "jar"; //$NON-NLS-1$
73 /** Extension of aidl files, i.e. "aidl" */
74 public final static String EXT_AIDL = "aidl"; //$NON-NLS-1$
75 /** Extension of native libraries, i.e. "so" */
76 public final static String EXT_NATIVE_LIB = "so"; //$NON-NLS-1$
78 private final static String DOT = "."; //$NON-NLS-1$
80 /** Dot-Extension of the Application package Files, i.e. ".apk". */
81 public final static String DOT_ANDROID_PACKAGE = DOT + EXT_ANDROID_PACKAGE;
82 /** Dot-Extension of java files, i.e. ".java" */
83 public final static String DOT_JAVA = DOT + EXT_JAVA;
84 /** Dot-Extension of compiled java files, i.e. ".class" */
85 public final static String DOT_CLASS = DOT + EXT_CLASS;
86 /** Dot-Extension of xml files, i.e. ".xml" */
87 public final static String DOT_XML = DOT + EXT_XML;
88 /** Dot-Extension of jar files, i.e. ".jar" */
89 public final static String DOT_JAR = DOT + EXT_JAR;
90 /** Dot-Extension of aidl files, i.e. ".aidl" */
91 public final static String DOT_AIDL = DOT + EXT_AIDL;
93 /** Name of the android sources directory */
94 public static final String FD_ANDROID_SOURCES = "sources"; //$NON-NLS-1$
96 /** Resource base name for java files and classes */
97 public final static String FN_RESOURCE_BASE = "R"; //$NON-NLS-1$
98 /** Resource java class filename, i.e. "R.java" */
99 public final static String FN_RESOURCE_CLASS = FN_RESOURCE_BASE + DOT_JAVA;
100 /** Resource class file filename, i.e. "R.class" */
101 public final static String FN_COMPILED_RESOURCE_CLASS = FN_RESOURCE_BASE + DOT_CLASS;
102 /** Manifest java class filename, i.e. "Manifest.java" */
103 public final static String FN_MANIFEST_CLASS = "Manifest.java"; //$NON-NLS-1$
104 /** Temporary packaged resources file name, i.e. "resources.ap_" */
105 public final static String FN_RESOURCES_AP_ = "resources.ap_"; //$NON-NLS-1$
106 /** Temporary packaged resources file name for a specific set of configuration */
107 public final static String FN_RESOURCES_S_AP_ = "resources-%s.ap_"; //$NON-NLS-1$
108 public final static Pattern PATTERN_RESOURCES_S_AP_ =
109 Pattern.compile("resources-.*\\.ap_", Pattern.CASE_INSENSITIVE); //$NON-NLS-1$
111 public final static String FN_TRACEVIEW =
112 (SdkConstants.CURRENT_PLATFORM == SdkConstants.PLATFORM_WINDOWS) ?
113 "traceview.exe" : "traceview"; //$NON-NLS-1$ //$NON-NLS-2$
115 /** Absolute path of the workspace root, i.e. "/" */
116 public final static String WS_ROOT = WS_SEP;
118 /** Absolute path of the resource folder, eg "/res".<br> This is a workspace path. */
119 public final static String WS_RESOURCES = WS_SEP + SdkConstants.FD_RESOURCES;
121 /** Absolute path of the resource folder, eg "/assets".<br> This is a workspace path. */
122 public final static String WS_ASSETS = WS_SEP + SdkConstants.FD_ASSETS;
124 /** Leaf of the javaDoc folder. Does not start with a separator. */
125 public final static String WS_JAVADOC_FOLDER_LEAF = SdkConstants.FD_DOCS + "/" + //$NON-NLS-1$
126 SdkConstants.FD_DOCS_REFERENCE;
128 /** Path of the samples directory relative to the sdk folder.
129 * This is an OS path, ending with a separator.
130 * FIXME: remove once the NPW is fixed. */
131 public final static String OS_SDK_SAMPLES_FOLDER = SdkConstants.FD_SAMPLES + File.separator;
133 public final static String RE_DOT = "\\."; //$NON-NLS-1$
134 /** Regexp for java extension, i.e. "\.java$" */
135 public final static String RE_JAVA_EXT = "\\.java$"; //$NON-NLS-1$
136 /** Regexp for aidl extension, i.e. "\.aidl$" */
137 public final static String RE_AIDL_EXT = "\\.aidl$"; //$NON-NLS-1$
140 * Namespace pattern for the custom resource XML, i.e. "http://schemas.android.com/apk/res/%s"
142 * This string contains a %s. It must be combined with the desired Java package, e.g.:
144 * String.format(AndroidConstants.NS_CUSTOM_RESOURCES, "android");
145 * String.format(AndroidConstants.NS_CUSTOM_RESOURCES, "com.test.mycustomapp");
148 * Note: if you need an URI specifically for the "android" namespace, consider using
149 * {@link SdkConstants#NS_RESOURCES} instead.
151 // TODO rename NS_CUSTOM_RESOURCES to NS_CUSTOM_RESOURCES_S (denoting it takes a %s) in
153 public final static String NS_CUSTOM_RESOURCES = "http://schemas.android.com/apk/res/%1$s"; //$NON-NLS-1$
155 /** The old common plug-in ID. Please do not use for new features. */
156 private static final String LEGACY_PLUGIN_ID = "com.android.ide.eclipse.common"; //$NON-NLS-1$
158 /** Generic marker for ADT errors, only to be used in the {@link ResourceManagerBuilder} */
159 public final static String MARKER_ADT = AdtPlugin.PLUGIN_ID + ".adtProblem"; //$NON-NLS-1$
161 /** Marker for Android Target errors.
162 * This is not cleared on each like other markers. Instead, it's cleared
163 * when an AndroidClasspathContainerInitializer has succeeded in creating an
164 * AndroidClasspathContainer */
165 public final static String MARKER_TARGET = AdtPlugin.PLUGIN_ID + ".targetProblem"; //$NON-NLS-1$
167 /** aapt marker error when running the compile command, only to be used
168 * in {@link PreCompilerBuilder} */
169 public final static String MARKER_AAPT_COMPILE = LEGACY_PLUGIN_ID + ".aaptProblem"; //$NON-NLS-1$
171 /** XML marker error, only to be used in {@link PreCompilerBuilder} */
172 public final static String MARKER_XML = LEGACY_PLUGIN_ID + ".xmlProblem"; //$NON-NLS-1$
174 /** aidl marker error, only to be used in {@link PreCompilerBuilder} */
175 public final static String MARKER_AIDL = LEGACY_PLUGIN_ID + ".aidlProblem"; //$NON-NLS-1$
177 /** android marker error, only to be used in the Manifest parsing
178 * from the {@link PreCompilerBuilder} */
179 public final static String MARKER_ANDROID = LEGACY_PLUGIN_ID + ".androidProblem"; //$NON-NLS-1$
181 /** aapt marker error when running the package command, only to be used in {@link PostCompilerBuilder} */
182 public final static String MARKER_AAPT_PACKAGE = LEGACY_PLUGIN_ID + ".aapt2Problem"; //$NON-NLS-1$
184 /** final packaging error marker, only to be used in {@link PostCompilerBuilder} */
185 public final static String MARKER_PACKAGING = AdtPlugin.PLUGIN_ID + ".packagingProblem"; //$NON-NLS-1$
188 /** Name for the "type" marker attribute */
189 public final static String MARKER_ATTR_TYPE = "android.type"; //$NON-NLS-1$
190 /** Name for the "class" marker attribute */
191 public final static String MARKER_ATTR_CLASS = "android.class"; //$NON-NLS-1$
192 /** activity value for marker attribute "type" */
193 public final static String MARKER_ATTR_TYPE_ACTIVITY = "activity"; //$NON-NLS-1$
194 /** service value for marker attribute "type" */
195 public final static String MARKER_ATTR_TYPE_SERVICE = "service"; //$NON-NLS-1$
196 /** receiver value for marker attribute "type" */
197 public final static String MARKER_ATTR_TYPE_RECEIVER = "receiver"; //$NON-NLS-1$
198 /** provider value for marker attribute "type" */
199 public final static String MARKER_ATTR_TYPE_PROVIDER = "provider"; //$NON-NLS-1$
201 public final static String CLASS_BRIDGE = "com.android.layoutlib.bridge.Bridge"; //$NON-NLS-1$
204 * Prefered compiler level, i.e. "1.5".
206 public final static String COMPILER_COMPLIANCE_PREFERRED = "1.5"; //$NON-NLS-1$
208 * List of valid compiler level, i.e. "1.5" and "1.6"
210 public final static String[] COMPILER_COMPLIANCE = {
215 /** The base URL where to find the Android class & manifest documentation */
216 public static final String CODESITE_BASE_URL = "http://code.google.com/android"; //$NON-NLS-1$
218 public static final String LIBRARY_TEST_RUNNER = "android.test.runner"; // $NON-NLS-1$