org.eclipse.pde.api.tools_1.0.301.v20111129-2053

 {
            Position pos = getSourceRange(type, document, reference);
            if (pos != null)
            {
              charStart = pos.getOffset();
              if (charStart != -1)
              {
                charEnd = charStart + pos.getLength();
                lineNumber = document.getLineOfOffset(charStart);
              }
            }
          }
          catch (CoreException e)
          {
            ApiPlugin.log(e);
            return null;
          }
          catch (BadLocationException e)
          {
            ApiPlugin.log(e);
            return null;
          }
        }
        if (charStart > -1) {
          element = compilationUnit.getElementAt(charStart);
        }
      }
      return ApiProblemFactory.newApiUsageProblem(resource.getProjectRelativePath().toPortableString(), 
        type.getFullyQualifiedName(), 
        getMessageArgs(reference), 
        new String[] { "org.eclipse.jdt.internal.core.JavaModelManager.handleId", "apiMarkerID" }, 
        new Object[] { element == null ? compilationUnit.getHandleIdentifier() : element.getHandleIdentifier(), 
        new Integer(3) }, 
        lineNumber, 
        charStart, 
        charEnd, 
        getElementType(reference), 
        getProblemKind(), 
        getProblemFlags(reference));
    }
    catch (CoreException e)
    {
      ApiPlugin.log(e);
    }
    return null;
  }
  
  protected abstract Position getSourceRange(IType paramIType, IDocument paramIDocument, IReference paramIReference)
    throws CoreException, BadLocationException;
  
  protected abstract int getElementType(IReference paramIReference);
  
  protected abstract int getProblemFlags(IReference paramIReference);
  
  protected abstract String[] getMessageArgs(IReference paramIReference)
    throws CoreException;
  
  protected abstract String[] getQualifiedMessageArgs(IReference paramIReference)
    throws CoreException;
  
  protected abstract int getProblemKind();
  
  protected abstract String getSeverityKey();
  
  protected String getTypeName(IApiMember member)
    throws CoreException
  {
    switch (member.getType())
    {
    case 2: 
      IApiType type = (IApiType)member;
      if (type.isAnonymous()) {
        return getTypeName(member.getEnclosingType());
      }
      if (type.isLocal()) {
        return getTypeName(member.getEnclosingType());
      }
      return member.getName();
    }
    return getTypeName(member.getEnclosingType());
  }
  
  protected String getQualifiedTypeName(IApiMember member)
    throws CoreException
  {
    switch (member.getType())
    {
    case 2: 
      IApiType type = (IApiType)member;
      if (type.isAnonymous()) {
        return getQualifiedTypeName(member.getEnclosingType());
      }
      if (type.isLocal())
      {
        String name = getTypeName(member.getEnclosingType());
        int idx = name.indexOf('$');
        if (idx > -1) {
          return name.substring(0, idx);
        }
        return name;
      }
      return Signatures.getQualifiedTypeSignature((IApiType)member);
    }
    return getQualifiedTypeName(member.getEnclosingType());
  }
  
  protected String getSimpleTypeName(IApiMember member)
    throws CoreException
  {
    switch (member.getType())
    {
    case 2: 
      IApiType type = (IApiType)member;
      if (type.isAnonymous()) {
        return getSimpleTypeName(type.getEnclosingType());
      }
      if (type.isLocal())
      {
        String name = getSimpleTypeName(member.getEnclosingType());
        int idx = name.indexOf('$');
        if (idx > -1) {
          return name.substring(0, idx);
        }
        return name;
      }
      return Signatures.getTypeName(Signatures.getTypeSignature(type));
    }
    return getSimpleTypeName(member.getEnclosingType());
  }
  
  protected Position defaultSourcePosition(IType type, IReference reference)
    throws CoreException
  {
    if (type != null)
    {
      ISourceRange range = type.getNameRange();
      if (range != null) {
        return new Position(range.getOffset(), range.getLength());
      }
    }
    return null;
  }
  
  protected int findMethodNameStart(String namepart, String line, int index)
  {
    int start = line.indexOf(namepart, index);
    if (start < 0) {
      return -1;
    }
    int offset = start + namepart.length();
    while (line.charAt(offset) == ' ') {
      offset++;
    }
    if ((line.charAt(offset) == '(') || 
      (line.charAt(offset) == '<')) {
      return start;
    }
    return findMethodNameStart(namepart, line, offset);
  }
  
  public List createProblems()
  {
    List references = getRetainedReferences();
    List problems = new LinkedList();
    Iterator iterator = references.iterator();
    while (iterator.hasNext())
    {
      IReference reference = (IReference)iterator.next();
      if (reference.getResolvedReference() != null) {
        if (isProblem(reference)) {
          try
          {
            IApiProblem problem = null;
            IApiComponent component = reference.getMember().getApiComponent();
            if ((component instanceof ProjectComponent))
            {
              ProjectComponent ppac = (ProjectComponent)component;
              IJavaProject project = ppac.getJavaProject();
              problem = createProblem(reference, project);
            }
            else
            {
              problem = createProblem(reference);
            }
            if (problem != null) {
              problems.add(problem);
            }
          }
          catch (CoreException e)
          {
            ApiPlugin.log(e.getStatus());
          }
        }
      }
    }
    return problems;
  }
  
  protected boolean isProblem(IReference reference)
  {
    IApiMember member = reference.getResolvedReference();
    if (member != null)
    {
      IApiMember local = reference.getMember();
      try
      {
        IApiComponent lcomp = local.getApiComponent();
        if ((lcomp != null) && (lcomp.isFragment())) {
          return !lcomp.getHost().equals(member.getApiComponent());
        }
      }
      catch (CoreException ce)
      {
        ApiPlugin.log(ce);
      }
    }
    return true;
  }
  
  protected boolean isReferenceFromComponent(IReference reference, Object componentId)
  {
    if (componentId != null)
    {
      IApiComponent apiComponent = reference.getResolvedReference().getApiComponent();
      if (apiComponent.getSymbolicName().equals(componentId)) {
        return true;
      }
      try
      {
        IApiComponent host = apiComponent.getHost();
        return (host != null) && (host.getSymbolicName().equals(componentId));
      }
      catch (CoreException e)
      {
        ApiPlugin.log(e);
      }
    }
    return false;
  }
  
  protected IMethod findMethodInType(IType type, IApiMethod method)
    throws JavaModelException, CoreException
  {
    String[] parameterTypes = Signature.getParameterTypes(method.getSignature());
    for (int i = 0; i < parameterTypes.length; i++) {
      parameterTypes[i] = parameterTypes[i].replace('/', '.');
    }
    String methodname = method.getName();
    if (method.isConstructor())
    {
      IApiType enclosingType = method.getEnclosingType();
      if ((enclosingType.isMemberType()) && (!Flags.isStatic(enclosingType.getModifiers())))
      {
        int length = parameterTypes.length - 1;
        System.arraycopy(parameterTypes, 1, parameterTypes = new String[length], 0, length);
      }
      methodname = enclosingType.getSimpleName();
    }
    IMethod Qmethod = type.getMethod(methodname, parameterTypes);
    IMethod[] methods = type.getMethods();
    IMethod match = null;
    for (int i = 0; i < methods.length; i++)
    {
      IMethod m = methods[i];
      if (m.isSimilar(Qmethod))
      {
        match = m;
        break;
      }
    }
    return match;
  }
  
  protected Position getSourceRangeForMethod(IType type, IReference reference, IApiMethod method)
    throws CoreException, JavaModelException
  {
    IMethod match = findMethodInType(type, method);
    Position pos = null;
    if (match != null)
    {
      ISourceRange range = match.getNameRange();
      if (range != null) {
        pos = new Position(range.getOffset(), range.getLength());
      }
    }
    if (pos == null) {
      return defaultSourcePosition(type, reference);
    }
    return pos;
  }
  
  protected Position getSourceRangeForField(IType type, IReference reference, IApiField field)
    throws JavaModelException, CoreException
  {
    IField javaField = type.getField(field.getName());
    Position pos = null;
    if (javaField.exists())
    {
      ISourceRange range = javaField.getNameRange();
      if (range != null) {
        pos = new Position(range.getOffset(), range.getLength());
      }
    }
    if (pos == null) {
      return defaultSourcePosition(type, reference);
    }
    return pos;
  }
  
  protected Position getFieldNameRange(IApiField field, IDocument document, IReference reference)
    throws BadLocationException, CoreException
  {
    return getFieldNameRange(field.getEnclosingType().getName(), field.getName(), document, reference);
  }
  
  protected Position getFieldNameRange(String typeName, String fieldName, IDocument document, IReference reference)
    throws BadLocationException, CoreException
  {
    int linenumber = reference.getLineNumber();
    if (linenumber > 0) {
      linenumber--;
    }
    if (linenumber > 0)
    {
      int offset = document.getLineOffset(linenumber);
      String line = document.get(offset, document.getLineLength(linenumber));
      String qname = typeName + "." + fieldName;
      int first = line.indexOf(qname);
      if (first < 0)
      {
        qname = "super." + fieldName;
        first = line.indexOf(qname);
      }
      if (first < 0)
      {
        qname = "this." + fieldName;
        first = line.indexOf(qname);
      }
      if (first < 0)
      {
        int idx = line.indexOf(fieldName);
        while (idx > -1)
        {
          if (line.charAt(idx - 1) == '.')
          {
            first = idx;
            qname = fieldName;
            break;
          }
          idx = line.indexOf(fieldName, idx + 1);
        }
      }
      Position pos = null;
      if (first > -1) {
        pos = new Position(offset + first, qname.length());
      } else {
        pos = new Position(offset, line.length());
      }
      return pos;
    }
    return null;
  }
  
  protected Position getMethodNameRange(boolean isContructor, String name, IDocument document, IReference reference)
    throws CoreException, BadLocationException
  {
    int linenumber = reference.getLineNumber();
    if (linenumber > 0) {
      linenumber--;
    }
    String methodname = name;
    int idx = methodname.indexOf('$');
    if (idx > -1) {
      methodname = methodname.substring(0, idx);
    }
    idx = methodname.indexOf(Signatures.getLT());
    if (idx > -1) {
      methodname = methodname.substring(0, idx);
    }
    int offset = document.getLineOffset(linenumber);
    String line = document.get(offset, document.getLineLength(linenumber));
    int start = line.indexOf('=');
    if (start < 0)
    {
      if (isContructor)
      {
        start = line.indexOf("new");
        if (start < 0) {
          start = 0;
        }
      }
      else
      {
        start = 0;
      }
    }
    else
    {
      char charat = line.charAt(start - 1);
      if ((line.charAt(start + 1) == '=') || 
        (charat == '!') || (charat == '<') || (charat == '>')) {
        start = 0;
      }
    }
    int first = findMethodNameStart(methodname, line, start);
    if (first < 0)
    {
      methodname = "super";
      first = findMethodNameStart(methodname, line, start);
    }
    if (first > -1) {
      return new Position(offset + first, methodname.length());
    }
    return null;
  }
  
  public IApiProblem createProblem(IReference reference)
    throws CoreException
  {
    int lineNumber = reference.getLineNumber();
    if (lineNumber > 0) {
      lineNumber--;
    }
    String ltypename = getTypeName(reference.getMember());
    return ApiProblemFactory.newApiUsageProblem(
      null, 
      ltypename, 
      getQualifiedMessageArgs(reference), 
      new String[] { "apiMarkerID" }, 
      new Object[] { new Integer(3) }, 
      lineNumber, 
      -1, 
      -1, 
      getElementType(reference), 
      getProblemKind(), 
      getProblemFlags(reference));
  }
}

/* Location:
 * Qualified Name:     org.eclipse.pde.api.tools.internal.builder.AbstractProblemDetector
 * Java Class Version: 1.2 (46.0)
 * JD-Core Version:    0.7.1
 */
package org.eclipse.pde.api.tools.internal.builder;

import com.ibm.icu.text.MessageFormat;
import java.util.Set;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.Status;
import org.eclipse.jdt.core.ISourceRange;
import org.eclipse.jdt.core.IType;
import org.eclipse.jface.text.BadLocationException;
import org.eclipse.jface.text.IDocument;
import org.eclipse.jface.text.Position;
import org.eclipse.pde.api.tools.internal.provisional.ApiPlugin;
import org.eclipse.pde.api.tools.internal.provisional.IApiAnnotations;
import org.eclipse.pde.api.tools.internal.provisional.IApiDescription;
import org.eclipse.pde.api.tools.internal.provisional.VisibilityModifiers;
import org.eclipse.pde.api.tools.internal.provisional.builder.IReference;
import org.eclipse.pde.api.tools.internal.provisional.model.IApiComponent;
import org.eclipse.pde.api.tools.internal.provisional.model.IApiMember;

public abstract class AbstractTypeLeakDetector
  extends AbstractLeakProblemDetector
{
  public AbstractTypeLeakDetector(Set nonApiPackageNames)
  {
    super(nonApiPackageNames);
  }
  
  public boolean considerReference(IReference reference)
  {
    if ((super.considerReference(reference)) && (isNonAPIReference(reference)))
    {
      IApiMember member = reference.getMember();
      int modifiers = member.getModifiers();
      if ((0x5 & modifiers) > 0) {
        try
        {
          IApiAnnotations annotations = member.getApiComponent().getApiDescription().resolveAnnotations(member.getHandle());
          if ((annotations != null) && 
            (isApplicable(annotations)) && (isEnclosingTypeVisible(member)))
          {
            retainReference(reference);
            return true;
          }
        }
        catch (CoreException e)
        {
          ApiPlugin.log(e.getStatus());
        }
      }
    }
    return false;
  }
  
  protected boolean isProblem(IReference reference)
  {
    IApiMember member = reference.getResolvedReference();
    try
    {
      IApiAnnotations annotations = member.getApiComponent().getApiDescription().resolveAnnotations(member.getHandle());
      if (annotations != null) {
        return VisibilityModifiers.isPrivate(annotations.getVisibility());
      }
      if (isEnclosingTypeVisible(member)) {
        ApiPlugin.log(
          new Status(
          1, "org.eclipse.pde.api.tools", 
          MessageFormat.format(BuilderMessages.AbstractTypeLeakDetector_vis_type_has_no_api_description, new String[] { member.getName() })));
      } else {
        return true;
      }
    }
    catch (CoreException e)
    {
      ApiPlugin.log(e);
    }
    return false;
  }
  
  protected boolean isApplicable(IApiAnnotations annotations)
  {
    return VisibilityModifiers.isAPI(annotations.getVisibility());
  }
  
  protected String[] getQualifiedMessageArgs(IReference reference)
    throws CoreException
  {
    return new String[] { getQualifiedTypeName(reference.getResolvedReference()), getQualifiedTypeName(reference.getMember()) };
  }
  
  protected String[] getMessageArgs(IReference reference)
    throws CoreException
  {
    return new String[] { getSimpleTypeName(reference.getResolvedReference()), getSimpleTypeName(reference.getMember()) };
  }
  
  protected Position getSourceRange(IType type, IDocument doc, IReference reference)
    throws CoreException, BadLocationException
  {
    ISourceRange range = type.getNameRange();
    Position pos = null;
    if (range != null) {
      pos = new Position(range.getOffset(), range.getLength());
    }
    if (pos == null) {
      return defaultSourcePosition(type, reference);
    }
    return pos;
  }
  
  protected int getElementType(IReference reference)
  {
    return 2;
  }
  
  protected int getProblemKind()
  {
    return 6;
  }
}

/* Location:
 * Qualified Name:     org.eclipse.pde.api.tools.internal.builder.AbstractTypeLeakDetector
 * Java Class Version: 1.2 (46.0)
 * JD-Core Version:    0.7.1
 */
package org.eclipse.pde.api.tools.internal.builder;

import java.util.Comparator;
import org.eclipse.osgi.util.ManifestElement;

class ApiAnalysisBuilder$1
  implements Comparator
{
  public int compare(Object o1, Object o2)
  {
    if (((o1 instanceof ManifestElement)) && ((o2 instanceof ManifestElement))) {
      return ((ManifestElement)o1).getValue().compareTo(((ManifestElement)o2).getValue());
    }
    return 0;
  }
}

/* Location:
 * Qualified Name:     org.eclipse.pde.api.tools.internal.builder.ApiAnalysisBuilder.1
 * Java Class Version: 1.2 (46.0)
 * JD-Core Version:    0.7.1
 */
package org.eclipse.pde.api.tools.internal.builder;

import java.io.PrintStream;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IMarker;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.IResourceDelta;
import org.eclipse.core.resources.IWorkspace;
import org.eclipse.core.resources.IWorkspaceRoot;
import org.eclipse.core.resources.IncrementalProjectBuilder;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
import org.eclipse.jdt.core.IClasspathAttribute;
import org.eclipse.jdt.core.IClasspathEntry;
import org.eclipse.jdt.core.ICompilationUnit;
import org.eclipse.jdt.core.IJavaElement;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.IPackageFragmentRoot;
import org.eclipse.jdt.core.IType;
import org.eclipse.jdt.core.JavaCore;
import org.eclipse.jdt.core.JavaModelException;
import org.eclipse.osgi.service.resolver.BundleDescription;
import org.eclipse.osgi.util.ManifestElement;
import org.eclipse.osgi.util.NLS;
import org.eclipse.pde.api.tools.internal.ApiDescriptionManager;
import org.eclipse.pde.api.tools.internal.problems.ApiProblemFactory;
import org.eclipse.pde.api.tools.internal.provisional.ApiPlugin;
import org.eclipse.pde.api.tools.internal.provisional.builder.IApiAnalyzer;
import org.eclipse.pde.api.tools.internal.provisional.problems.IApiProblem;
import org.eclipse.pde.api.tools.internal.util.Util;
import org.eclipse.pde.core.build.IBuild;
import org.eclipse.pde.core.build.IBuildEntry;
import org.eclipse.pde.core.build.IBuildModel;
import org.eclipse.pde.core.plugin.IPluginModelBase;
import org.eclipse.pde.core.plugin.PluginRegistry;

public class ApiAnalysisBuilder
  extends IncrementalProjectBuilder
{
  static boolean DEBUG = Util.DEBUG;
  static final IPath SETTINGS_PATH = new Path(".settings");
  public static final IPath BUILD_PROPERTIES_PATH = new Path("build.properties");
  public static final IPath MANIFEST_PATH = new Path("META-INF/MANIFEST.MF");
  static final Comparator fgManifestElementComparator = new Comparator()
  {
    public int compare(Object o1, Object o2)
    {
      if (((o1 instanceof ManifestElement)) && ((o2 instanceof ManifestElement))) {
        return ((ManifestElement)o1).getValue().compareTo(((ManifestElement)o2).getValue());
      }
      return 0;
    }
  };
  public static final HashSet IMPORTANT_HEADERS = new HashSet(7);
  
  static
  {
    IMPORTANT_HEADERS.add("system.bundle");
    IMPORTANT_HEADERS.add("Bundle-Version");
    IMPORTANT_HEADERS.add("Require-Bundle");
    IMPORTANT_HEADERS.add("Bundle-RequiredExecutionEnvironment");
    IMPORTANT_HEADERS.add("Export-Package");
    IMPORTANT_HEADERS.add("Import-Package");
    IMPORTANT_HEADERS.add("Bundle-ClassPath");
  }
  
  static final IPath FILTER_PATH = SETTINGS_PATH.append(".api_filters");
  static final IProject[] NO_PROJECTS = new IProject[0];
  static final String SOURCE = "API Tools";
  
  public static void setDebug(boolean debugValue)
  {
    DEBUG = (debugValue) || (Util.DEBUG);
  }
  
  private IProject currentproject = null;
  private IApiAnalyzer analyzer = null;
  HashMap output_locs = new HashMap();
  HashMap src_locs = new HashMap();
  private BuildState buildstate = null;
  
  void cleanupMarkers(IResource resource)
  {
    cleanUnusedFilterMarkers(resource);
    cleanupUsageMarkers(resource);
    cleanupCompatibilityMarkers(resource);
    cleanupUnsupportedTagMarkers(resource);
    cleanApiUseScanMarkers(resource);
    cleanupFatalMarkers(resource);
  }
  
  void cleanApiUseScanMarkers(IResource resource)
  {
    try
    {
      if ((resource != null) && (resource.isAccessible()))
      {
        if (DEBUG) {
          System.out.println("cleaning api use problems");
        }
        resource.deleteMarkers("org.eclipse.pde.api.tools.marker.apiusescan", true, 2);
        
        IProject project = resource.getProject();
        IMarker[] markers = project.findMarkers("org.eclipse.pde.api.tools.marker.apiusescan", false, 0);
        for (int i = 0; i < markers.length; i++)
        {
          String typeName = markers[i].getAttribute("apiUseScanType", null);
          IJavaElement adaptor = (IJavaElement)resource.getAdapter(IJavaElement.class);
          if ((adaptor != null) && ((adaptor instanceof ICompilationUnit)))
          {
            IType typeroot = ((ICompilationUnit)adaptor).findPrimaryType();
            if ((typeroot != null) && (typeName != null) && (typeName.startsWith(typeroot.getFullyQualifiedName()))) {
              markers[i].delete();
            }
          }
        }
      }
    }
    catch (CoreException e)
    {
      ApiPlugin.log(e.getStatus());
    }
  }
  
  void cleanupUnsupportedTagMarkers(IResource resource)
  {
    try
    {
      if ((resource != null) && (resource.isAccessible()))
      {
        if (DEBUG) {
          System.out.println("cleaning unsupported tag problems");
        }
        resource.deleteMarkers("org.eclipse.pde.api.tools.unsupported_tags", false, 2);
      }
    }
    catch (CoreException e)
    {
      ApiPlugin.log(e.getStatus());
    }
  }
  
  void cleanupCompatibilityMarkers(IResource resource)
  {
    try
    {
      if ((resource != null) && (resource.isAccessible()))
      {
        resource.deleteMarkers("org.eclipse.pde.api.tools.compatibility", false, 2);
        resource.deleteMarkers("org.eclipse.pde.api.tools.marker.sincetags", false, 2);
        if (resource.getType() == 4)
        {
          resource.deleteMarkers("org.eclipse.pde.api.tools.version_numbering", false, 2);
          resource.deleteMarkers("org.eclipse.pde.api.tools.api_profile", true, 0);
          resource.deleteMarkers("org.eclipse.pde.api.tools.api_component_resolution", true, 0);
        }
      }
    }
    catch (CoreException e)
    {
      ApiPlugin.log(e.getStatus());
    }
  }
  
  void cleanupUsageMarkers(IResource resource)
  {
    try
    {
      if ((resource != null) && (resource.isAccessible())) {
        resource.deleteMarkers("org.eclipse.pde.api.tools.api_usage", false, 2);
      }
    }
    catch (CoreException e)
    {
      ApiPlugin.log(e.getStatus());
    }
  }
  
  void cleanupFatalMarkers(IResource resource)
  {
    try
    {
      if ((resource != null) && (resource.isAccessible())) {
        resource.deleteMarkers("org.eclipse.pde.api.tools.fatal_problem", false, 2);
      }
    }
    catch (CoreException e)
    {
      ApiPlugin.log(e.getStatus());
    }
  }
  
  void cleanUnusedFilterMarkers(IResource resource)
  {
    try
    {
      if ((resource != null) && (resource.isAccessible())) {
        resource.deleteMarkers("org.eclipse.pde.api.tools.unused_filters", false, 2);
      }
    }
    catch (CoreException ce)
    {
      ApiPlugin.log(ce.getStatus());
    }
  }
  
  /* Error */
  protected IProject[] build(int kind, Map args, org.eclipse.core.runtime.IProgressMonitor monitor)
    throws CoreException
  {
    // Byte code:
    //   0: aload_0
    //   1: aload_0
    //   2: invokevirtual 973	org/eclipse/pde/api/tools/internal/builder/ApiAnalysisBuilder:getProject	()Lorg/eclipse/core/resources/IProject;
    //   5: putfield 901	org/eclipse/pde/api/tools/internal/builder/ApiAnalysisBuilder:currentproject	Lorg/eclipse/core/resources/IProject;
    //   8: aload_0
    //   9: aload_0
    //   10: getfield 901	org/eclipse/pde/api/tools/internal/builder/ApiAnalysisBuilder:currentproject	Lorg/eclipse/core/resources/IProject;
    //   13: invokevirtual 977	org/eclipse/pde/api/tools/internal/builder/ApiAnalysisBuilder:shouldAbort	(Lorg/eclipse/core/resources/IProject;)Z
    //   16: ifeq +7 -> 23
    //   19: getstatic 902	org/eclipse/pde/api/tools/internal/builder/ApiAnalysisBuilder:NO_PROJECTS	[Lorg/eclipse/core/resources/IProject;
    //   22: areturn
    //   23: aload_0
    //   24: getfield 901	org/eclipse/pde/api/tools/internal/builder/ApiAnalysisBuilder:currentproject	Lorg/eclipse/core/resources/IProject;
    //   27: invokestatic 1002	org/eclipse/pde/api/tools/internal/builder/BuildStamps:incBuildStamp	(Lorg/eclipse/core/resources/IProject;)V
    //   30: getstatic 895	org/eclipse/pde/api/tools/internal/builder/ApiAnalysisBuilder:DEBUG	Z
    //   33: ifeq +53 -> 86
    //   36: getstatic 893	java/lang/System:out	Ljava/io/PrintStream;
    //   39: new 474	java/lang/StringBuffer
    //   42: dup
    //   43: ldc_w 427
    //   46: invokespecial 928	java/lang/StringBuffer:<init>	(Ljava/lang/String;)V
    //   49: aload_0
    //   50: getfield 901	org/eclipse/pde/api/tools/internal/builder/ApiAnalysisBuilder:currentproject	Lorg/eclipse/core/resources/IProject;
    //   53: invokeinterface 1055 1 0
    //   58: invokevirtual 931	java/lang/StringBuffer:append	(Ljava/lang/String;)Ljava/lang/StringBuffer;
    //   61: ldc_w 429
    //   64: invokevirtual 931	java/lang/StringBuffer:append	(Ljava/lang/String;)Ljava/lang/StringBuffer;
    //   67: new 479	java/util/Date
    //   70: dup
    //   71: invokestatic 932	java/lang/System:currentTimeMillis	()J
    //   74: invokespecial 941	java/util/Date:<init>	(J)V
    //   77: invokevirtual 930	java/lang/StringBuffer:append	(Ljava/lang/Object;)Ljava/lang/StringBuffer;
    //   80: invokevirtual 927	java/lang/StringBuffer:toString	()Ljava/lang/String;
    //   83: invokevirtual 917	java/io/PrintStream:println	(Ljava/lang/String;)V
    //   86: aload_3
    //   87: getstatic 912	org/eclipse/pde/api/tools/internal/builder/BuilderMessages:api_analysis_builder	Ljava/lang/String;
    //   90: bipush 8
    //   92: invokestatic 957	org/eclipse/core/runtime/SubMonitor:convert	(Lorg/eclipse/core/runtime/IProgressMonitor;Ljava/lang/String;I)Lorg/eclipse/core/runtime/SubMonitor;
    //   95: astore 4
    //   97: invokestatic 1021	org/eclipse/pde/api/tools/internal/provisional/ApiPlugin:getDefault	()Lorg/eclipse/pde/api/tools/internal/provisional/ApiPlugin;
    //   100: invokevirtual 1022	org/eclipse/pde/api/tools/internal/provisional/ApiPlugin:getApiBaselineManager	()Lorg/eclipse/pde/api/tools/internal/provisional/IApiBaselineManager;
    //   103: invokeinterface 1100 1 0
    //   108: astore 5
    //   110: aload 5
    //   112: ifnonnull +22 -> 134
    //   115: getstatic 895	org/eclipse/pde/api/tools/internal/builder/ApiAnalysisBuilder:DEBUG	Z
    //   118: ifeq +12 -> 130
    //   121: getstatic 892	java/lang/System:err	Ljava/io/PrintStream;
    //   124: ldc_w 431
    //   127: invokevirtual 917	java/io/PrintStream:println	(Ljava/lang/String;)V
    //   130: getstatic 902	org/eclipse/pde/api/tools/internal/builder/ApiAnalysisBuilder:NO_PROJECTS	[Lorg/eclipse/core/resources/IProject;
    //   133: areturn
    //   134: aload_0
    //   135: iconst_1
    //   136: invokevirtual 978	org/eclipse/pde/api/tools/internal/builder/ApiAnalysisBuilder:getRequiredProjects	(Z)[Lorg/eclipse/core/resources/IProject;
    //   139: astore 6
    //   141: invokestatic 1021	org/eclipse/pde/api/tools/internal/provisional/ApiPlugin:getDefault	()Lorg/eclipse/pde/api/tools/internal/provisional/ApiPlugin;
    //   144: invokevirtual 1022	org/eclipse/pde/api/tools/internal/provisional/ApiPlugin:getApiBaselineManager	()Lorg/eclipse/pde/api/tools/internal/provisional/IApiBaselineManager;
    //   147: invokeinterface 1099 1 0
    //   152: astore 7
    //   154: iload_1
    //   155: tableswitch	default:+412->567, 6:+33->188, 7:+412->567, 8:+412->567, 9:+65->220, 10:+65->220
    //   188: getstatic 895	org/eclipse/pde/api/tools/internal/builder/ApiAnalysisBuilder:DEBUG	Z
    //   191: ifeq +12 -> 203
    //   194: getstatic 893	java/lang/System:out	Ljava/io/PrintStream;
    //   197: ldc_w 435
    //   200: invokevirtual 917	java/io/PrintStream:println	(Ljava/lang/String;)V
    //   203: aload_0
    //   204: aload 7
    //   206: aload 5
    //   208: aload 4
    //   210: iconst_1
    //   211: invokevirtual 956	org/eclipse/core/runtime/SubMonitor:newChild	(I)Lorg/eclipse/core/runtime/SubMonitor;
    //   214: invokevirtual 998	org/eclipse/pde/api/tools/internal/builder/ApiAnalysisBuilder:buildAll	(Lorg/eclipse/pde/api/tools/internal/provisional/model/IApiBaseline;Lorg/eclipse/pde/api/tools/internal/provisional/model/IApiBaseline;Lorg/eclipse/core/runtime/IProgressMonitor;)V
    //   217: goto +350 -> 567
    //   220: aload_0
    //   221: aload_0
    //   222: getfield 901	org/eclipse/pde/api/tools/internal/builder/ApiAnalysisBuilder:currentproject	Lorg/eclipse/core/resources/IProject;
    //   225: invokestatic 1012	org/eclipse/pde/api/tools/internal/builder/BuildState:getLastBuiltState	(Lorg/eclipse/core/resources/IProject;)Lorg/eclipse/pde/api/tools/internal/builder/BuildState;
    //   228: putfield 907	org/eclipse/pde/api/tools/internal/builder/ApiAnalysisBuilder:buildstate	Lorg/eclipse/pde/api/tools/internal/builder/BuildState;
    //   231: aload_0
    //   232: getfield 907	org/eclipse/pde/api/tools/internal/builder/ApiAnalysisBuilder:buildstate	Lorg/eclipse/pde/api/tools/internal/builder/BuildState;
    //   235: ifnonnull +20 -> 255
    //   238: aload_0
    //   239: aload 7
    //   241: aload 5
    //   243: aload 4
    //   245: iconst_1
    //   246: invokevirtual 956	org/eclipse/core/runtime/SubMonitor:newChild	(I)Lorg/eclipse/core/runtime/SubMonitor;
    //   249: invokevirtual 998	org/eclipse/pde/api/tools/internal/builder/ApiAnalysisBuilder:buildAll	(Lorg/eclipse/pde/api/tools/internal/provisional/model/IApiBaseline;Lorg/eclipse/pde/api/tools/internal/provisional/model/IApiBaseline;Lorg/eclipse/core/runtime/IProgressMonitor;)V
    //   252: goto +315 -> 567
    //   255: aload_0
    //   256: aload 6
    //   258: invokevirtual 979	org/eclipse/pde/api/tools/internal/builder/ApiAnalysisBuilder:worthDoingFullBuild	([Lorg/eclipse/core/resources/IProject;)Z
    //   261: ifeq +20 -> 281
    //   264: aload_0
    //   265: aload 7
    //   267: aload 5
    //   269: aload 4
    //   271: iconst_1
    //   272: invokevirtual 956	org/eclipse/core/runtime/SubMonitor:newChild	(I)Lorg/eclipse/core/runtime/SubMonitor;
    //   275: invokevirtual 998	org/eclipse/pde/api/tools/internal/builder/ApiAnalysisBuilder:buildAll	(Lorg/eclipse/pde/api/tools/internal/provisional/model/IApiBaseline;Lorg/eclipse/pde/api/tools/internal/provisional/model/IApiBaseline;Lorg/eclipse/core/runtime/IProgressMonitor;)V
    //   278: goto +289 -> 567
    //   281: aload_0
    //   282: aload 6
    //   284: invokevirtual 995	org/eclipse/pde/api/tools/internal/builder/ApiAnalysisBuilder:getDeltas	([Lorg/eclipse/core/resources/IProject;)[Lorg/eclipse/core/resources/IResourceDelta;
    //   287: astore 8
    //   289: aload 8
    //   291: arraylength
    //   292: iconst_1
    //   293: if_icmpge +20 -> 313
    //   296: aload_0
    //   297: aload 7
    //   299: aload 5
    //   301: aload 4
    //   303: iconst_1
    //   304: invokevirtual 956	org/eclipse/core/runtime/SubMonitor:newChild	(I)Lorg/eclipse/core/runtime/SubMonitor;
    //   307: invokevirtual 998	org/eclipse/pde/api/tools/internal/builder/ApiAnalysisBuilder:buildAll	(Lorg/eclipse/pde/api/tools/internal/provisional/model/IApiBaseline;Lorg/eclipse/pde/api/tools/internal/provisional/model/IApiBaseline;Lorg/eclipse/core/runtime/IProgressMonitor;)V
    //   310: goto +257 -> 567
    //   313: aconst_null
    //   314: astore 9
    //   316: iconst_0
    //   317: istore 10
    //   319: iconst_0
    //   320: istore 11
    //   322: goto +116 -> 438
    //   325: aload_0
    //   326: aload 8
    //   328: iload 11
    //   330: aaload
    //   331: invokevirtual 987	org/eclipse/pde/api/tools/internal/builder/ApiAnalysisBuilder:shouldFullBuild	(Lorg/eclipse/core/resources/IResourceDelta;)Z
    //   334: istore 10
    //   336: iload 10
    //   338: ifeq +6 -> 344
    //   341: goto +105 -> 446
    //   344: aload 8
    //   346: iload 11
    //   348: aaload
    //   349: getstatic 904	org/eclipse/pde/api/tools/internal/builder/ApiAnalysisBuilder:FILTER_PATH	Lorg/eclipse/core/runtime/IPath;
    //   352: invokeinterface 1071 2 0
    //   357: astore 9
    //   359: aload 9
    //   361: ifnull +74 -> 435
    //   364: aload 9
    //   366: invokeinterface 1069 1 0
    //   371: tableswitch	default:+56->427, 1:+29->400, 2:+29->400, 3:+56->427, 4:+35->406
    //   400: iconst_1
    //   401: istore 10
    //   403: goto +24 -> 427
    //   406: aload 9
    //   408: invokeinterface 1068 1 0
    //   413: ldc_w 425
    //   416: iand
    //   417: ifle +7 -> 424
    //   420: iconst_1
    //   421: goto +4 -> 425
    //   424: iconst_0
    //   425: istore 10
    //   427: iload 10
    //   429: ifeq +6 -> 435
    //   432: goto +14 -> 446
    //   435: iinc 11 1
    //   438: iload 11
    //   440: aload 8
    //   442: arraylength
    //   443: if_icmplt -118 -> 325
    //   446: iload 10
    //   448: ifeq +35 -> 483
    //   451: getstatic 895	org/eclipse/pde/api/tools/internal/builder/ApiAnalysisBuilder:DEBUG	Z
    //   454: ifeq +12 -> 466
    //   457: getstatic 893	java/lang/System:out	Ljava/io/PrintStream;
    //   460: ldc_w 436
    //   463: invokevirtual 917	java/io/PrintStream:println	(Ljava/lang/String;)V
    //   466: aload_0
    //   467: aload 7
    //   469: aload 5
    //   471: aload 4
    //   473: iconst_1
    //   474: invokevirtual 956	org/eclipse/core/runtime/SubMonitor:newChild	(I)Lorg/eclipse/core/runtime/SubMonitor;
    //   477: invokevirtual 998	org/eclipse/pde/api/tools/internal/builder/ApiAnalysisBuilder:buildAll	(Lorg/eclipse/pde/api/tools/internal/provisional/model/IApiBaseline;Lorg/eclipse/pde/api/tools/internal/provisional/model/IApiBaseline;Lorg/eclipse/core/runtime/IProgressMonitor;)V
    //   480: goto +87 -> 567
    //   483: invokestatic 959	org/eclipse/jdt/internal/core/JavaModelManager:getJavaModelManager	()Lorg/eclipse/jdt/internal/core/JavaModelManager;
    //   486: aload_0
    //   487: getfield 901	org/eclipse/pde/api/tools/internal/builder/ApiAnalysisBuilder:currentproject	Lorg/eclipse/core/resources/IProject;
    //   490: aload 4
    //   492: iconst_1
    //   493: invokevirtual 956	org/eclipse/core/runtime/SubMonitor:newChild	(I)Lorg/eclipse/core/runtime/SubMonitor;
    //   496: invokevirtual 960	org/eclipse/jdt/internal/core/JavaModelManager:getLastBuiltState	(Lorg/eclipse/core/resources/IProject;Lorg/eclipse/core/runtime/IProgressMonitor;)Ljava/lang/Object;
    //   499: checkcast 512	org/eclipse/jdt/internal/core/builder/State
    //   502: astore 11
    //   504: aload 11
    //   506: ifnonnull +20 -> 526
    //   509: aload_0
    //   510: aload 7
    //   512: aload 5
    //   514: aload 4
    //   516: iconst_1
    //   517: invokevirtual 956	org/eclipse/core/runtime/SubMonitor:newChild	(I)Lorg/eclipse/core/runtime/SubMonitor;
    //   520: invokevirtual 998	org/eclipse/pde/api/tools/internal/builder/ApiAnalysisBuilder:buildAll	(Lorg/eclipse/pde/api/tools/internal/provisional/model/IApiBaseline;Lorg/eclipse/pde/api/tools/internal/provisional/model/IApiBaseline;Lorg/eclipse/core/runtime/IProgressMonitor;)V
    //   523: goto +44 -> 567
    //   526: aload_0
    //   527: getfield 901	org/eclipse/pde/api/tools/internal/builder/ApiAnalysisBuilder:currentproject	Lorg/eclipse/core/resources/IProject;
    //   530: aconst_null
    //   531: invokestatic 1014	org/eclipse/pde/api/tools/internal/builder/BuildState:setLastBuiltState	(Lorg/eclipse/core/resources/IProject;Lorg/eclipse/pde/api/tools/internal/builder/BuildState;)V
    //   534: new 524	org/eclipse/pde/api/tools/internal/builder/IncrementalApiBuilder
    //   537: dup
    //   538: aload_0
    //   539: invokespecial 1015	org/eclipse/pde/api/tools/internal/builder/IncrementalApiBuilder:<init>	(Lorg/eclipse/pde/api/tools/internal/builder/ApiAnalysisBuilder;)V
    //   542: astore 12
    //   544: aload 12
    //   546: aload 7
    //   548: aload 5
    //   550: aload 8
    //   552: aload 11
    //   554: aload_0
    //   555: getfield 907	org/eclipse/pde/api/tools/internal/builder/ApiAnalysisBuilder:buildstate	Lorg/eclipse/pde/api/tools/internal/builder/BuildState;
    //   558: aload 4
    //   560: iconst_1
    //   561: invokevirtual 956	org/eclipse/core/runtime/SubMonitor:newChild	(I)Lorg/eclipse/core/runtime/SubMonitor;
    //   564: invokevirtual 1016	org/eclipse/pde/api/tools/internal/builder/IncrementalApiBuilder:build	(Lorg/eclipse/pde/api/tools/internal/provisional/model/IApiBaseline;Lorg/eclipse/pde/api/tools/internal/provisional/model/IApiBaseline;[Lorg/eclipse/core/resources/IResourceDelta;Lorg/eclipse/jdt/internal/core/builder/State;Lorg/eclipse/pde/api/tools/internal/builder/BuildState;Lorg/eclipse/core/runtime/IProgressMonitor;)V
    //   567: aload 4
    //   569: iconst_0
    //   570: invokestatic 1025	org/eclipse/pde/api/tools/internal/util/Util:updateMonitor	(Lorg/eclipse/core/runtime/IProgressMonitor;I)V
    //   573: goto +898 -> 1471
    //   576: pop
    //   577: getstatic 895	org/eclipse/pde/api/tools/internal/builder/ApiAnalysisBuilder:DEBUG	Z
    //   580: ifeq +12 -> 592
    //   583: getstatic 893	java/lang/System:out	Ljava/io/PrintStream;
    //   586: ldc_w 438
    //   589: invokevirtual 917	java/io/PrintStream:println	(Ljava/lang/String;)V
    //   592: aload 4
    //   594: iconst_0
    //   595: invokestatic 1025	org/eclipse/pde/api/tools/internal/util/Util:updateMonitor	(Lorg/eclipse/core/runtime/IProgressMonitor;I)V
    //   598: aload_0
    //   599: getfield 908	org/eclipse/pde/api/tools/internal/builder/ApiAnalysisBuilder:analyzer	Lorg/eclipse/pde/api/tools/internal/provisional/builder/IApiAnalyzer;
    //   602: ifnull +17 -> 619
    //   605: aload_0
    //   606: getfield 908	org/eclipse/pde/api/tools/internal/builder/ApiAnalysisBuilder:analyzer	Lorg/eclipse/pde/api/tools/internal/provisional/builder/IApiAnalyzer;
    //   609: invokeinterface 1101 1 0
    //   614: aload_0
    //   615: aconst_null
    //   616: putfield 908	org/eclipse/pde/api/tools/internal/builder/ApiAnalysisBuilder:analyzer	Lorg/eclipse/pde/api/tools/internal/provisional/builder/IApiAnalyzer;
    //   619: aload 6
    //   621: arraylength
    //   622: iconst_1
    //   623: if_icmpge +15 -> 638
    //   626: aload 7
    //   628: ifnull +10 -> 638
    //   631: aload 7
    //   633: invokeinterface 1104 1 0
    //   638: aload 4
    //   640: iconst_0
    //   641: invokestatic 1025	org/eclipse/pde/api/tools/internal/util/Util:updateMonitor	(Lorg/eclipse/core/runtime/IProgressMonitor;I)V
    //   644: aload_0
    //   645: getfield 907	org/eclipse
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55

Further reading...

For more information on Java 1.5 Tiger, you may find Java 1.5 Tiger, A developer's Notebook by D. Flanagan and B. McLaughlin from O'Reilly of interest.

New!JAR listings


Copyright 2006-2017. Infinite Loop Ltd