Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright (C) 2012 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.builder.internal.compiler;
 
 
 import java.io.File;
 import java.util.List;

A Source File processor for AIDL files. This compiles each aidl file found by the SourceSearcher.
 
 public class AidlProcessor implements SourceSearcher.SourceFileProcessor {
 
     @NonNull
     private final String mAidlExecutable;
     @NonNull
     private final String mFrameworkLocation;
     @NonNull
     private final List<FilemImportFolders;
     @NonNull
     private final File mSourceOutputDir;
     @Nullable
     private final File mParcelableOutputDir;
     @NonNull
     @NonNull
     private final CommandLineRunner mRunner;
 
     public AidlProcessor(@NonNull String aidlExecutable,
                          @NonNull String frameworkLocation,
                          @NonNull List<FileimportFolders,
                          @NonNull File sourceOutputDir,
                          @Nullable File parcelableOutputDir,
                          @NonNull DependencyFileProcessor dependencyFileProcessor,
                          @NonNull CommandLineRunner runner) {
          = aidlExecutable;
          = frameworkLocation;
          = importFolders;
          = sourceOutputDir;
          = parcelableOutputDir;
          = dependencyFileProcessor;
          = runner;
     }
 
     @Override
     public void processFile(@NonNull File sourceFolder, @NonNull File sourceFile)
             throws IOExceptionInterruptedExceptionLoggedErrorException {
         ArrayList<Stringcommand = Lists.newArrayList();
 
         command.add();
 
         command.add("-p" + );
         command.add("-o" + .getAbsolutePath());
 
         // add all the library aidl folders to access parcelables that are in libraries
         for (File f : ) {
             command.add("-I" + f.getAbsolutePath());
         }
 
         // create a temp file for the dependency
         File depFile = File.createTempFile("aidl"".d");
         command.add("-d" + depFile.getAbsolutePath());
 
         command.add(sourceFile.getAbsolutePath());
 
         .runCmdLine(commandnull);
 
         // send the dependency file to the processor.
         DependencyData data = .processFile(depFile);
 
         if ( != null && data != null && data.getOutputFiles().isEmpty()) {
             // looks like a parcelable. Store it in the 2ndary output of the DependencyData object.
 
             String relative = FileOp.makeRelative(sourceFoldersourceFile);
            File destFile = new File(relative);
            destFile.getParentFile().mkdirs();
            Files.copy(sourceFiledestFile);
            data.addSecondaryOutputFile(destFile.getPath());
        }
        depFile.delete();
    }
New to GrepCode? Check out our FAQ X