Home | History | Annotate | Download | only in proguard
      1 /*
      2  * ProGuard -- shrinking, optimization, obfuscation, and preverification
      3  *             of Java bytecode.
      4  *
      5  * Copyright (c) 2002-2014 Eric Lafortune (eric (at) graphics.cornell.edu)
      6  *
      7  * This program is free software; you can redistribute it and/or modify it
      8  * under the terms of the GNU General Public License as published by the Free
      9  * Software Foundation; either version 2 of the License, or (at your option)
     10  * any later version.
     11  *
     12  * This program is distributed in the hope that it will be useful, but WITHOUT
     13  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
     14  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
     15  * more details.
     16  *
     17  * You should have received a copy of the GNU General Public License along
     18  * with this program; if not, write to the Free Software Foundation, Inc.,
     19  * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
     20  */
     21 package proguard;
     22 
     23 import java.util.*;
     24 
     25 
     26 /**
     27  * This class represents a class path, as a list of ClassPathEntry objects.
     28  *
     29  * @author Eric Lafortune
     30  */
     31 public class ClassPath
     32 {
     33     private final List classPathEntries = new ArrayList();
     34 
     35 
     36     /**
     37      * Returns whether the class path contains any output entries.
     38      */
     39     public boolean hasOutput()
     40     {
     41         for (int index = 0; index < classPathEntries.size(); index++)
     42         {
     43             if (((ClassPathEntry)classPathEntries.get(index)).isOutput())
     44             {
     45                 return true;
     46             }
     47         }
     48 
     49         return false;
     50     }
     51 
     52 
     53     // Delegates to List.
     54 
     55     public void clear()
     56     {
     57         classPathEntries.clear();
     58     }
     59 
     60     public void add(int index, ClassPathEntry classPathEntry)
     61     {
     62         classPathEntries.add(index, classPathEntry);
     63     }
     64 
     65     public boolean add(ClassPathEntry classPathEntry)
     66     {
     67         return classPathEntries.add(classPathEntry);
     68     }
     69 
     70     public boolean addAll(ClassPath classPath)
     71     {
     72         return classPathEntries.addAll(classPath.classPathEntries);
     73     }
     74 
     75     public ClassPathEntry get(int index)
     76     {
     77         return (ClassPathEntry)classPathEntries.get(index);
     78     }
     79 
     80     public ClassPathEntry remove(int index)
     81     {
     82         return (ClassPathEntry)classPathEntries.remove(index);
     83     }
     84 
     85     public boolean isEmpty()
     86     {
     87         return classPathEntries.isEmpty();
     88     }
     89 
     90     public int size()
     91     {
     92         return classPathEntries.size();
     93     }
     94 }
     95