196b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Projectpackage jdiff; 296b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project 396b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Projectimport java.io.*; 496b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Projectimport java.util.*; 596b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project 696b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project/** 796b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project * Class to represent a class, analogous to ClassDoc in the 896b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project * Javadoc doclet API. 996b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project * 1096b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project * The method used for Collection comparison (compareTo) must make its 1196b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project * comparison based upon everything that is known about this class. 1296b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project * 1396b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project * See the file LICENSE.txt for copyright details. 1496b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project * @author Matthew Doar, mdoar@pobox.com 1596b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project */ 1696b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Projectclass ClassAPI implements Comparable { 1796b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project 1896b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project /** Name of the class, not fully qualified. */ 1996b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project public String name_; 2096b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project 2196b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project /** Set if this class is an interface. */ 2296b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project public boolean isInterface_; 2396b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project 2496b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project /** Set if this class is abstract. */ 2596b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project boolean isAbstract_ = false; 2696b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project 2796b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project /** Modifiers for this class. */ 2896b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project public Modifiers modifiers_; 2996b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project 3096b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project /** Name of the parent class, or null if there is no parent. */ 3196b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project public String extends_; // Can only extend zero or one class or interface 3296b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project 3396b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project /** Interfaces implemented by this class. */ 3496b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project public List implements_; // String[] 3596b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project 3696b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project /** Constructors in this class. */ 3796b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project public List ctors_; // ConstructorAPI[] 3896b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project 3996b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project /** Methods in this class. */ 4096b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project public List methods_; // MethodAPI[] 4196b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project 4296b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project /** Fields in this class. */ 4396b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project public List fields_; //FieldAPI[] 4496b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project 4596b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project /** The doc block, default is null. */ 4696b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project public String doc_ = null; 4796b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project 4896b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project /** Constructor. */ 4996b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project public ClassAPI(String name, String parent, boolean isInterface, 5096b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project boolean isAbstract, Modifiers modifiers) { 5196b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project name_ = name; 5296b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project extends_ = parent; 5396b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project isInterface_ = isInterface; 5496b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project isAbstract_ = isAbstract; 5596b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project modifiers_ = modifiers; 5696b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project 5796b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project implements_ = new ArrayList(); // String[] 5896b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project ctors_ = new ArrayList(); // ConstructorAPI[] 5996b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project methods_ = new ArrayList(); // MethodAPI[] 6096b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project fields_ = new ArrayList(); // FieldAPI[] 6196b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } 6296b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project 6396b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project /** Compare two ClassAPI objects by all the known information. */ 6496b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project public int compareTo(Object o) { 6596b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project ClassAPI oClassAPI = (ClassAPI)o; 6696b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project int comp = name_.compareTo(oClassAPI.name_); 6796b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (comp != 0) 6896b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project return comp; 6996b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (isInterface_ != oClassAPI.isInterface_) 7096b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project return -1; 7196b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (isAbstract_ != oClassAPI.isAbstract_) 7296b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project return -1; 7396b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project comp = modifiers_.compareTo(oClassAPI.modifiers_); 7496b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (comp != 0) 7596b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project return comp; 7696b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (APIComparator.docChanged(doc_, oClassAPI.doc_)) 7796b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project return -1; 7896b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project return 0; 7996b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } 8096b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project 8196b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project /** 8296b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project * Tests two methods for equality using just the class name, 8396b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project * used by indexOf(). 8496b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project */ 8596b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project public boolean equals(Object o) { 8696b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project if (name_.compareTo(((ClassAPI)o).name_) == 0) 8796b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project return true; 8896b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project return false; 8996b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project } 9096b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project 9196b00fec6cd6068c1c5ae09de0358340c0ec499eThe Android Open Source Project} 92