| // Copyright (c) 2017, 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.android.tools.r8; | |
| import com.android.tools.r8.origin.Origin; | |
| /** | |
| * Base interface for application resources. | |
| * | |
| * Resources are inputs to the compilation that are provided from outside sources, e.g., the | |
| * command-line interface or API clients such as gradle. Each resource has an associated | |
| * {@link Origin} which is some opaque description of where the resource comes from. The D8/R8 | |
| * compiler does not assume any particular structure of origin and does not rely on it for | |
| * compilation. The origin will be provided to diagnostics handlers so that they may detail what | |
| * resource was cause of some particular error. | |
| * | |
| * The D8/R8 compilers uses default implementations for various file-system resources, but the | |
| * client is free to provide their own. | |
| */ | |
| @KeepForSubclassing | |
| public interface Resource { | |
| /** | |
| * Get the origin of the resource. | |
| * | |
| * The origin is a description of where the resource originates from. The client is free to define | |
| * what that means for a particular resource. | |
| */ | |
| Origin getOrigin(); | |
| } |