Home | History | Annotate | Download | only in desugar
      1 // Copyright 2017 The Bazel Authors. All rights reserved.
      2 //
      3 // Licensed under the Apache License, Version 2.0 (the "License");
      4 // you may not use this file except in compliance with the License.
      5 // You may obtain a copy of the License at
      6 //
      7 //    http://www.apache.org/licenses/LICENSE-2.0
      8 //
      9 // Unless required by applicable law or agreed to in writing, software
     10 // distributed under the License is distributed on an "AS IS" BASIS,
     11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     12 // See the License for the specific language governing permissions and
     13 // limitations under the License.
     14 package com.google.devtools.build.android.desugar;
     15 
     16 import java.io.IOException;
     17 
     18 /** Output file provider allows to write files in directory or jar files. */
     19 interface OutputFileProvider extends AutoCloseable {
     20 
     21   /** Filename to use to write out dependency metadata for later consistency checking. */
     22   public static final String DESUGAR_DEPS_FILENAME = "META-INF/desugar_deps";
     23 
     24   /**
     25    * Copy {@code filename} from {@code inputFileProvider} to this output. If input file provider is
     26    * a {@link ZipInputFileProvider} then the metadata of the zip entry are kept.
     27    */
     28   void copyFrom(String filename, InputFileProvider inputFileProvider) throws IOException;
     29 
     30   /** Write {@code content} in {@code filename} to this output */
     31   void write(String filename, byte[] content) throws IOException;
     32 }
     33