1 /* 2 * Copyright (C) 2011 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package vogar.android; 18 19 import java.io.File; 20 import vogar.Action; 21 import vogar.Classpath; 22 import vogar.Result; 23 import vogar.tasks.Task; 24 25 public final class DexTask extends Task { 26 private final AndroidSdk androidSdk; 27 private final Classpath classpath; 28 private final boolean benchmark; 29 private final File jar; 30 private final Action action; 31 private final File localDex; 32 DexTask(AndroidSdk androidSdk, Classpath classpath, boolean benchmark, String name, File jar, Action action, File localDex)33 public DexTask(AndroidSdk androidSdk, Classpath classpath, boolean benchmark, String name, 34 File jar, Action action, File localDex) { 35 super("dex " + name); 36 this.androidSdk = androidSdk; 37 this.classpath = classpath; 38 this.benchmark = benchmark; 39 this.jar = jar; 40 this.action = action; 41 this.localDex = localDex; 42 } 43 execute()44 @Override protected Result execute() throws Exception { 45 // make the local dex (inside a jar) 46 Classpath cp = Classpath.of(jar); 47 if (benchmark && action != null) { 48 cp.addAll(classpath); 49 } 50 androidSdk.dex(localDex, cp); 51 return Result.SUCCESS; 52 } 53 } 54