blob: c4fa8bcc501cf0bc8cb81c4c4318d927d4acfdb1 [file] [log] [blame]
/*
* Copyright (C) 2009 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.sdklib.xml;
/**
* Helper and Constants for the AndroidManifest.xml file.
*
*/
public final class AndroidManifest {
public final static String NODE_MANIFEST = "manifest"; //$NON-NLS-1$
public final static String NODE_APPLICATION = "application"; //$NON-NLS-1$
public final static String NODE_ACTIVITY = "activity"; //$NON-NLS-1$
public final static String NODE_SERVICE = "service"; //$NON-NLS-1$
public final static String NODE_RECEIVER = "receiver"; //$NON-NLS-1$
public final static String NODE_PROVIDER = "provider"; //$NON-NLS-1$
public final static String NODE_INTENT = "intent-filter"; //$NON-NLS-1$
public final static String NODE_ACTION = "action"; //$NON-NLS-1$
public final static String NODE_CATEGORY = "category"; //$NON-NLS-1$
public final static String NODE_USES_SDK = "uses-sdk"; //$NON-NLS-1$
public final static String NODE_INSTRUMENTATION = "instrumentation"; //$NON-NLS-1$
public final static String NODE_USES_LIBRARY = "uses-library"; //$NON-NLS-1$
public final static String ATTRIBUTE_PACKAGE = "package"; //$NON-NLS-1$
public final static String ATTRIBUTE_NAME = "name"; //$NON-NLS-1$
public final static String ATTRIBUTE_PROCESS = "process"; //$NON-NLS-$
public final static String ATTRIBUTE_DEBUGGABLE = "debuggable"; //$NON-NLS-$
public final static String ATTRIBUTE_MIN_SDK_VERSION = "minSdkVersion"; //$NON-NLS-$
public final static String ATTRIBUTE_TARGET_PACKAGE = "targetPackage"; //$NON-NLS-1$
public final static String ATTRIBUTE_EXPORTED = "exported"; //$NON-NLS-1$
/**
* Combines a java package, with a class value from the manifest to make a fully qualified
* class name
* @param javaPackage the java package from the manifest.
* @param className the class name from the manifest.
* @return the fully qualified class name.
*/
public static String combinePackageAndClassName(String javaPackage, String className) {
if (className == null || className.length() == 0) {
return javaPackage;
}
if (javaPackage == null || javaPackage.length() == 0) {
return className;
}
// the class name can be a subpackage (starts with a '.'
// char), a simple class name (no dot), or a full java package
boolean startWithDot = (className.charAt(0) == '.');
boolean hasDot = (className.indexOf('.') != -1);
if (startWithDot || hasDot == false) {
// add the concatenation of the package and class name
if (startWithDot) {
return javaPackage + className;
} else {
return javaPackage + '.' + className;
}
} else {
// just add the class as it should be a fully qualified java name.
return className;
}
}
}