
main.java.com.debughelper.tools.r8.dex.MixedSectionCollection Maven / Gradle / Ivy
Show all versions of debughelper Show documentation
// Copyright (c) 2016, the R8 project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
package com.debughelper.tools.r8.dex;
import com.debughelper.tools.r8.graph.DexAnnotation;
import com.debughelper.tools.r8.graph.DexAnnotationDirectory;
import com.debughelper.tools.r8.graph.DexAnnotationSet;
import com.debughelper.tools.r8.graph.DexCode;
import com.debughelper.tools.r8.graph.DexDebugInfo;
import com.debughelper.tools.r8.graph.DexEncodedArray;
import com.debughelper.tools.r8.graph.DexItem;
import com.debughelper.tools.r8.graph.DexProgramClass;
import com.debughelper.tools.r8.graph.DexTypeList;
import com.debughelper.tools.r8.graph.ParameterAnnotationsList;
/**
* Collection of the various components of the mixed section of a dex file.
*
* This semantically is just a wrapper around a bunch of collections. We do not expose the
* collections directly to allow for implementations that under the hood do not use collections.
*
*
See {@link DexItem#collectMixedSectionItems(MixedSectionCollection)} for
* information on how to fill a {@link MixedSectionCollection}.
*/
public abstract class MixedSectionCollection {
/**
* Adds the given class data to the collection.
*
* Does not add any dependencies.
*
* @return true if the item was not added before
*/
public abstract boolean add(com.debughelper.tools.r8.graph.DexProgramClass dexClassData);
/**
* Adds the given encoded array to the collection.
*
* Does not add any dependencies.
*
* @return true if the item was not added before
*/
public abstract boolean add(DexEncodedArray dexEncodedArray);
/**
* Adds the given annotation set to the collection.
*
* Does not add any dependencies.
*
* @return true if the item was not added before
*/
public abstract boolean add(DexAnnotationSet dexAnnotationSet);
/**
* Adds the given code item to the collection.
*
* Does not add any dependencies.
*
* @return true if the item was not added before
*/
public abstract boolean add(DexCode dexCode);
/**
* Adds the given debug info to the collection.
*
* Does not add any dependencies.
*
* @return true if the item was not added before
*/
public abstract boolean add(DexDebugInfo dexDebugInfo);
/**
* Adds the given type list to the collection.
*
* Does not add any dependencies.
*
* @return true if the item was not added before
*/
public abstract boolean add(DexTypeList dexTypeList);
/**
* Adds the given annotation-set reference list to the collection.
*
* Does not add any dependencies.
*
* @return true if the item was not added before
*/
public abstract boolean add(ParameterAnnotationsList annotationSetRefList);
/**
* Adds the given annotation to the collection.
*
* Does not add any dependencies.
*
* @return true if the item was not added before
*/
public abstract boolean add(DexAnnotation annotation);
/**
* Adds the given annotation directory to the collection.
*
* Add a dependency between the clazz and the annotation directory.
*
* @return true if the item was not added before
*/
public abstract boolean setAnnotationsDirectoryForClass(DexProgramClass clazz,
DexAnnotationDirectory annotationDirectory);
}