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

com.android.sdklib.repository.descriptors.IPkgDesc Maven / Gradle / Ivy

/*
 * Copyright (C) 2013 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.repository.descriptors;

import com.android.annotations.NonNull;
import com.android.annotations.Nullable;
import com.android.sdklib.AndroidVersion;
import com.android.sdklib.internal.repository.IListDescription;
import com.android.sdklib.internal.repository.packages.License;
import com.android.sdklib.repository.FullRevision;
import com.android.sdklib.repository.MajorRevision;

import java.io.File;

/**
 * {@link IPkgDesc} keeps information on individual SDK packages
 * (both local or remote packages definitions.)
 * 
* Packages have different attributes depending on their type. *

* To create a new {@link IPkgDesc}, use one of the package-specific constructors * provided by {@code PkgDesc.Builder.newXxx()}. *

* To query packages capabilities, rely on {@link #getType()} and the {@code IPkgDesc.hasXxx()} * methods provided by {@link IPkgDesc}. */ public interface IPkgDesc extends Comparable, IPkgCapabilities, IListDescription { /** * Returns the type of the package. * @return Returns one of the {@link PkgType} constants. */ @NonNull public abstract PkgType getType(); /** * Returns the list-display meta data of this package. * @return The list-display data, if available, or null. */ @Nullable public String getListDisplay(); @Nullable public String getDescriptionShort(); @Nullable public String getDescriptionUrl(); @Nullable public License getLicense(); public boolean isObsolete(); /** * Returns the package's {@link FullRevision} or null. * @return A non-null value if {@link #hasFullRevision()} is true; otherwise a null value. */ @Nullable public FullRevision getFullRevision(); /** * Returns the package's {@link MajorRevision} or null. * @return A non-null value if {@link #hasMajorRevision()} is true; otherwise a null value. */ @Nullable public MajorRevision getMajorRevision(); /** * Returns the package's {@link AndroidVersion} or null. * @return A non-null value if {@link #hasAndroidVersion()} is true; otherwise a null value. */ @Nullable public AndroidVersion getAndroidVersion(); /** * Returns the package's path string or null. *

* For {@link PkgType#PKG_SYS_IMAGE}, the path is the system-image ABI.
* For {@link PkgType#PKG_PLATFORM}, the path is the platform hash string.
* For {@link PkgType#PKG_ADDON}, the path is the platform hash string.
* For {@link PkgType#PKG_EXTRA}, the path is the extra-path string.
* * @return A non-null value if {@link #hasPath()} is true; otherwise a null value. */ @Nullable public String getPath(); /** * Returns the package's tag id-display tuple or null. * * @return A non-null tag if {@link #hasTag()} is true; otherwise a null value. */ @Nullable public IdDisplay getTag(); /** * Returns the package's vendor-id string or null. * @return A non-null value if {@link #hasVendor()} is true; otherwise a null value. */ @Nullable public IdDisplay getVendor(); /** * Returns the package's {@code min-tools-rev} or null. * @return A non-null value if {@link #hasMinToolsRev()} is true; otherwise a null value. */ @Nullable public FullRevision getMinToolsRev(); /** * Returns the package's {@code min-platform-tools-rev} or null. * @return A non-null value if {@link #hasMinPlatformToolsRev()} is true; otherwise null. */ @Nullable public FullRevision getMinPlatformToolsRev(); /** * Indicates whether this package descriptor is an update for the given * existing descriptor. * * @param existingDesc A non-null existing descriptor. * @return True if this package is an update for the given one. */ public boolean isUpdateFor(@NonNull IPkgDesc existingDesc); /** * Returns a stable string id that can be used to reference this package. * @return A stable string id that can be used to reference this package. */ @NonNull public String getInstallId(); /** * Returns the canonical location where such a package would be installed. * @param sdkLocation The root of the SDK. * @return the canonical location where such a package would be installed. */ @NonNull public File getCanonicalInstallFolder(@NonNull File sdkLocation); }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy