17850f3f3da0099b76f09ed64d23e0a43ba4a5c76jessewilson@google.com/* 27850f3f3da0099b76f09ed64d23e0a43ba4a5c76jessewilson@google.com * Copyright (C) 2009 The Android Open Source Project 37850f3f3da0099b76f09ed64d23e0a43ba4a5c76jessewilson@google.com * 47850f3f3da0099b76f09ed64d23e0a43ba4a5c76jessewilson@google.com * Licensed under the Apache License, Version 2.0 (the "License"); 57850f3f3da0099b76f09ed64d23e0a43ba4a5c76jessewilson@google.com * you may not use this file except in compliance with the License. 67850f3f3da0099b76f09ed64d23e0a43ba4a5c76jessewilson@google.com * You may obtain a copy of the License at 77850f3f3da0099b76f09ed64d23e0a43ba4a5c76jessewilson@google.com * 87850f3f3da0099b76f09ed64d23e0a43ba4a5c76jessewilson@google.com * http://www.apache.org/licenses/LICENSE-2.0 97850f3f3da0099b76f09ed64d23e0a43ba4a5c76jessewilson@google.com * 107850f3f3da0099b76f09ed64d23e0a43ba4a5c76jessewilson@google.com * Unless required by applicable law or agreed to in writing, software 117850f3f3da0099b76f09ed64d23e0a43ba4a5c76jessewilson@google.com * distributed under the License is distributed on an "AS IS" BASIS, 127850f3f3da0099b76f09ed64d23e0a43ba4a5c76jessewilson@google.com * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 137850f3f3da0099b76f09ed64d23e0a43ba4a5c76jessewilson@google.com * See the License for the specific language governing permissions and 147850f3f3da0099b76f09ed64d23e0a43ba4a5c76jessewilson@google.com * limitations under the License. 157850f3f3da0099b76f09ed64d23e0a43ba4a5c76jessewilson@google.com */ 167850f3f3da0099b76f09ed64d23e0a43ba4a5c76jessewilson@google.com 177850f3f3da0099b76f09ed64d23e0a43ba4a5c76jessewilson@google.compackage vogar; 187850f3f3da0099b76f09ed64d23e0a43ba4a5c76jessewilson@google.com 197850f3f3da0099b76f09ed64d23e0a43ba4a5c76jessewilson@google.comimport java.io.File; 207850f3f3da0099b76f09ed64d23e0a43ba4a5c76jessewilson@google.comimport java.util.ArrayList; 217850f3f3da0099b76f09ed64d23e0a43ba4a5c76jessewilson@google.comimport java.util.Arrays; 227850f3f3da0099b76f09ed64d23e0a43ba4a5c76jessewilson@google.comimport java.util.Collection; 237850f3f3da0099b76f09ed64d23e0a43ba4a5c76jessewilson@google.comimport java.util.List; 24969d5622a380e2f2f9ebdfbf7a22cbb3e031125bjessewilson@google.comimport vogar.util.Strings; 257850f3f3da0099b76f09ed64d23e0a43ba4a5c76jessewilson@google.com 267850f3f3da0099b76f09ed64d23e0a43ba4a5c76jessewilson@google.com/** 277850f3f3da0099b76f09ed64d23e0a43ba4a5c76jessewilson@google.com * A list of jar files and directories. 287850f3f3da0099b76f09ed64d23e0a43ba4a5c76jessewilson@google.com */ 297850f3f3da0099b76f09ed64d23e0a43ba4a5c76jessewilson@google.compublic final class Classpath { 307850f3f3da0099b76f09ed64d23e0a43ba4a5c76jessewilson@google.com 317850f3f3da0099b76f09ed64d23e0a43ba4a5c76jessewilson@google.com private final List<File> elements = new ArrayList<File>(); 327850f3f3da0099b76f09ed64d23e0a43ba4a5c76jessewilson@google.com 337850f3f3da0099b76f09ed64d23e0a43ba4a5c76jessewilson@google.com public static Classpath of(File... files) { 347850f3f3da0099b76f09ed64d23e0a43ba4a5c76jessewilson@google.com return of(Arrays.asList(files)); 357850f3f3da0099b76f09ed64d23e0a43ba4a5c76jessewilson@google.com } 367850f3f3da0099b76f09ed64d23e0a43ba4a5c76jessewilson@google.com 377850f3f3da0099b76f09ed64d23e0a43ba4a5c76jessewilson@google.com public static Classpath of(Collection<File> files) { 387850f3f3da0099b76f09ed64d23e0a43ba4a5c76jessewilson@google.com Classpath result = new Classpath(); 397850f3f3da0099b76f09ed64d23e0a43ba4a5c76jessewilson@google.com result.elements.addAll(files); 407850f3f3da0099b76f09ed64d23e0a43ba4a5c76jessewilson@google.com return result; 417850f3f3da0099b76f09ed64d23e0a43ba4a5c76jessewilson@google.com } 427850f3f3da0099b76f09ed64d23e0a43ba4a5c76jessewilson@google.com 437850f3f3da0099b76f09ed64d23e0a43ba4a5c76jessewilson@google.com public void addAll(File... elements) { 447850f3f3da0099b76f09ed64d23e0a43ba4a5c76jessewilson@google.com addAll(Arrays.asList(elements)); 457850f3f3da0099b76f09ed64d23e0a43ba4a5c76jessewilson@google.com } 467850f3f3da0099b76f09ed64d23e0a43ba4a5c76jessewilson@google.com 477850f3f3da0099b76f09ed64d23e0a43ba4a5c76jessewilson@google.com public void addAll(Collection<File> elements) { 487850f3f3da0099b76f09ed64d23e0a43ba4a5c76jessewilson@google.com this.elements.addAll(elements); 497850f3f3da0099b76f09ed64d23e0a43ba4a5c76jessewilson@google.com } 507850f3f3da0099b76f09ed64d23e0a43ba4a5c76jessewilson@google.com 517850f3f3da0099b76f09ed64d23e0a43ba4a5c76jessewilson@google.com public void addAll(Classpath anotherClasspath) { 527850f3f3da0099b76f09ed64d23e0a43ba4a5c76jessewilson@google.com this.elements.addAll(anotherClasspath.elements); 537850f3f3da0099b76f09ed64d23e0a43ba4a5c76jessewilson@google.com } 547850f3f3da0099b76f09ed64d23e0a43ba4a5c76jessewilson@google.com 557850f3f3da0099b76f09ed64d23e0a43ba4a5c76jessewilson@google.com public Collection<File> getElements() { 567850f3f3da0099b76f09ed64d23e0a43ba4a5c76jessewilson@google.com return elements; 577850f3f3da0099b76f09ed64d23e0a43ba4a5c76jessewilson@google.com } 587850f3f3da0099b76f09ed64d23e0a43ba4a5c76jessewilson@google.com 59e956c912fdab19b9cc806b47288048fca9121546jessewilson@google.com public boolean isEmpty() { 60e956c912fdab19b9cc806b47288048fca9121546jessewilson@google.com return elements.isEmpty(); 61e956c912fdab19b9cc806b47288048fca9121546jessewilson@google.com } 62e956c912fdab19b9cc806b47288048fca9121546jessewilson@google.com 633dafbce3b8d025f465ebf0a4c6d018c7dc31654ejsharpe@google.com public boolean contains(File file) { 643dafbce3b8d025f465ebf0a4c6d018c7dc31654ejsharpe@google.com return elements.contains(file); 653dafbce3b8d025f465ebf0a4c6d018c7dc31654ejsharpe@google.com } 663dafbce3b8d025f465ebf0a4c6d018c7dc31654ejsharpe@google.com 677850f3f3da0099b76f09ed64d23e0a43ba4a5c76jessewilson@google.com @Override public String toString() { 687850f3f3da0099b76f09ed64d23e0a43ba4a5c76jessewilson@google.com return Strings.join(elements, ":"); 697850f3f3da0099b76f09ed64d23e0a43ba4a5c76jessewilson@google.com } 707850f3f3da0099b76f09ed64d23e0a43ba4a5c76jessewilson@google.com} 71