Examples of SimpleLookupTable


Examples of org.aspectj.org.eclipse.jdt.internal.compiler.util.SimpleLookupTable

      case INTERNAL_JAR :
        newState.binaryLocations[i] = ClasspathLocation.forLibrary(root.getFile(new Path(in.readUTF())), readRestriction(in));
    }
  }

  newState.structuralBuildTimes = new SimpleLookupTable(length = in.readInt());
  for (int i = 0; i < length; i++)
    newState.structuralBuildTimes.put(in.readUTF(), new Long(in.readLong()));

  String[] internedTypeLocators = new String[length = in.readInt()];
  for (int i = 0; i < length; i++)
    internedTypeLocators[i] = in.readUTF();

  newState.typeLocators = new SimpleLookupTable(length = in.readInt());
  for (int i = 0; i < length; i++)
    newState.recordLocatorForType(in.readUTF(), internedTypeLocators[in.readInt()]);

  char[][] internedSimpleNames = ReferenceCollection.internSimpleNames(readNames(in), false);
  char[][][] internedQualifiedNames = new char[length = in.readInt()][][];
  for (int i = 0; i < length; i++) {
    int qLength = in.readInt();
    char[][] qName = new char[qLength][];
    for (int j = 0; j < qLength; j++)
      qName[j] = internedSimpleNames[in.readInt()];
    internedQualifiedNames[i] = qName;
  }
  internedQualifiedNames = ReferenceCollection.internQualifiedNames(internedQualifiedNames);

  newState.references = new SimpleLookupTable(length = in.readInt());
  for (int i = 0; i < length; i++) {
    String typeLocator = internedTypeLocators[in.readInt()];
    ReferenceCollection collection = null;
    switch (in.readByte()) {
      case 1 :
View Full Code Here

Examples of org.aspectj.org.eclipse.jdt.internal.compiler.util.SimpleLookupTable

/*
* String[]  Interned type locators
*/
  out.writeInt(length = references.elementSize);
  SimpleLookupTable internedTypeLocators = new SimpleLookupTable(length);
  if (length > 0) {
    keyTable = references.keyTable;
    for (int i = 0, l = keyTable.length; i < l; i++) {
      if (keyTable[i] != null) {
        length--;
        String key = (String) keyTable[i];
        out.writeUTF(key);
        internedTypeLocators.put(key, new Integer(internedTypeLocators.elementSize));
      }
    }
    if (JavaBuilder.DEBUG && length != 0)
      System.out.println("references table is inconsistent"); //$NON-NLS-1$
  }

/*
* Type locators table
* String    type name
* int      interned locator id
*/
  out.writeInt(length = typeLocators.elementSize);
  if (length > 0) {
    keyTable = typeLocators.keyTable;
    valueTable = typeLocators.valueTable;
    for (int i = 0, l = keyTable.length; i < l; i++) {
      if (keyTable[i] != null) {
        length--;
        out.writeUTF((String) keyTable[i]);
        Integer index = (Integer) internedTypeLocators.get(valueTable[i]);
        out.writeInt(index.intValue());
      }
    }
    if (JavaBuilder.DEBUG && length != 0)
      System.out.println("typeLocators table is inconsistent"); //$NON-NLS-1$
  }

/*
* char[][][]  Interned qualified names
* char[][]  Interned simple names
*/
  SimpleLookupTable internedQualifiedNames = new SimpleLookupTable(31);
  SimpleLookupTable internedSimpleNames = new SimpleLookupTable(31);
  valueTable = references.valueTable;
  for (int i = 0, l = valueTable.length; i < l; i++) {
    if (valueTable[i] != null) {
      ReferenceCollection collection = (ReferenceCollection) valueTable[i];
      char[][][] qNames = collection.qualifiedNameReferences;
      for (int j = 0, m = qNames.length; j < m; j++) {
        char[][] qName = qNames[j];
        if (!internedQualifiedNames.containsKey(qName)) { // remember the names have been interned
          internedQualifiedNames.put(qName, new Integer(internedQualifiedNames.elementSize));
          for (int k = 0, n = qName.length; k < n; k++) {
            char[] sName = qName[k];
            if (!internedSimpleNames.containsKey(sName)) // remember the names have been interned
              internedSimpleNames.put(sName, new Integer(internedSimpleNames.elementSize));
          }
        }
      }
      char[][] sNames = collection.simpleNameReferences;
      for (int j = 0, m = sNames.length; j < m; j++) {
        char[] sName = sNames[j];
        if (!internedSimpleNames.containsKey(sName)) // remember the names have been interned
          internedSimpleNames.put(sName, new Integer(internedSimpleNames.elementSize));
      }
    }
  }
  char[][] internedArray = new char[internedSimpleNames.elementSize][];
  Object[] simpleNames = internedSimpleNames.keyTable;
  Object[] positions = internedSimpleNames.valueTable;
  for (int i = positions.length; --i >= 0; ) {
    if (positions[i] != null) {
      int index = ((Integer) positions[i]).intValue();
      internedArray[index] = (char[]) simpleNames[i];
    }
  }
  writeNames(internedArray, out);
  // now write the interned qualified names as arrays of interned simple names
  char[][][] internedQArray = new char[internedQualifiedNames.elementSize][][];
  Object[] qualifiedNames = internedQualifiedNames.keyTable;
  positions = internedQualifiedNames.valueTable;
  for (int i = positions.length; --i >= 0; ) {
    if (positions[i] != null) {
      int index = ((Integer) positions[i]).intValue();
      internedQArray[index] = (char[][]) qualifiedNames[i];
    }
  }
  out.writeInt(length = internedQArray.length);
  for (int i = 0; i < length; i++) {
    char[][] qName = internedQArray[i];
    int qLength = qName.length;
    out.writeInt(qLength);
    for (int j = 0; j < qLength; j++) {
      Integer index = (Integer) internedSimpleNames.get(qName[j]);
      out.writeInt(index.intValue());
    }
  }

/*
* References table
* int    interned locator id
* ReferenceCollection
*/
  out.writeInt(length = references.elementSize);
  if (length > 0) {
    keyTable = references.keyTable;
    for (int i = 0, l = keyTable.length; i < l; i++) {
      if (keyTable[i] != null) {
        length--;
        Integer index = (Integer) internedTypeLocators.get(keyTable[i]);
        out.writeInt(index.intValue());
        ReferenceCollection collection = (ReferenceCollection) valueTable[i];
        if (collection instanceof AdditionalTypeCollection) {
          out.writeByte(1);
          AdditionalTypeCollection atc = (AdditionalTypeCollection) collection;
          writeNames(atc.definedTypeNames, out);
        } else {
          out.writeByte(2);
        }
        char[][][] qNames = collection.qualifiedNameReferences;
        int qLength = qNames.length;
        out.writeInt(qLength);
        for (int j = 0; j < qLength; j++) {
          index = (Integer) internedQualifiedNames.get(qNames[j]);
          out.writeInt(index.intValue());
        }
        char[][] sNames = collection.simpleNameReferences;
        int sLength = sNames.length;
        out.writeInt(sLength);
        for (int j = 0; j < sLength; j++) {
          index = (Integer) internedSimpleNames.get(sNames[j]);
          out.writeInt(index.intValue());
        }
      }
    }
    if (JavaBuilder.DEBUG && length != 0)
View Full Code Here

Examples of org.aspectj.org.eclipse.jdt.internal.compiler.util.SimpleLookupTable

  if (substring == null) {
    if (memoryIndex == null) {
      for (int i = 0, l = docNames.length; i < l; i++)
        results.add(docNames[i]);
    } else {
      SimpleLookupTable docsToRefs = memoryIndex.docsToReferences;
      for (int i = 0, l = docNames.length; i < l; i++) {
        String docName = docNames[i];
        if (!docsToRefs.containsKey(docName))
          results.add(docName);
      }
    }
  } else {
    if (memoryIndex == null) {
      for (int i = 0, l = docNames.length; i < l; i++)
        if (docNames[i].startsWith(substring, 0))
          results.add(docNames[i]);
    } else {
      SimpleLookupTable docsToRefs = memoryIndex.docsToReferences;
      for (int i = 0, l = docNames.length; i < l; i++) {
        String docName = docNames[i];
        if (docName.startsWith(substring, 0) && !docsToRefs.containsKey(docName))
          results.add(docName);
      }
    }
  }
  return results;
View Full Code Here

Examples of org.aspectj.org.eclipse.jdt.internal.compiler.util.SimpleLookupTable

    if (result == null)
      results.put(word, new EntryResult(word, wordsToDocNumbers));
    else
      result.addDocumentTable(wordsToDocNumbers);
  } else {
    SimpleLookupTable docsToRefs = memoryIndex.docsToReferences;
    if (result == null) result = new EntryResult(word, null);
    int[] docNumbers = readDocumentNumbers(wordsToDocNumbers.get(word));
    for (int i = 0, l = docNumbers.length; i < l; i++) {
      String docName = readDocumentName(docNumbers[i]);
      if (!docsToRefs.containsKey(docName))
        result.addDocumentName(docName);
    }
    if (!result.isEmpty())
      results.put(word, result);
  }
View Full Code Here

Examples of org.aspectj.org.eclipse.jdt.internal.compiler.util.SimpleLookupTable

   // assume write lock is held
  // compute & write out new docNames
  String[] docNames = readAllDocumentNames();
  int previousLength = docNames.length;
  int[] positions = new int[previousLength]; // keeps track of the position of each document in the new sorted docNames
  SimpleLookupTable indexedDocuments = new SimpleLookupTable(3); // for each new/changed document in the memoryIndex
  docNames = computeDocumentNames(docNames, positions, indexedDocuments, memoryIndex);
  if (docNames.length == 0) {
    if (previousLength == 0) return this; // nothing to do... memory index contained deleted documents that had never been saved

    // index is now empty since all the saved documents were removed
View Full Code Here

Examples of org.aspectj.org.eclipse.jdt.internal.compiler.util.SimpleLookupTable

SimpleWordSet allWords; // save space by locally interning the referenced words, since an indexer can generate numerous duplicates
String lastDocumentName;
HashtableOfObject lastReferenceTable;

MemoryIndex() {
  this.docsToReferences = new SimpleLookupTable(7);
  this.allWords = new SimpleWordSet(7);
}
View Full Code Here

Examples of org.aspectj.org.eclipse.jdt.internal.compiler.util.SimpleLookupTable

          if (DEBUG)
            System.out.println("Performing full build since classpath has changed"); //$NON-NLS-1$
          buildAll();
        } else if (nameEnvironment.sourceLocations.length > 0) {
          // if there is no source to compile & no classpath changes then we are done
          SimpleLookupTable deltas = findDeltas();
          if (deltas == null) {
            if (DEBUG)
              System.out.println("Performing full build since deltas are missing after incremental request"); //$NON-NLS-1$
            buildAll();
          } else if (deltas.elementSize > 0) {
View Full Code Here

Examples of org.aspectj.org.eclipse.jdt.internal.compiler.util.SimpleLookupTable

}

private SimpleLookupTable findDeltas() {
  notifier.subTask(Messages.bind(Messages.build_readingDelta, currentProject.getName()));
  IResourceDelta delta = getDelta(currentProject);
  SimpleLookupTable deltas = new SimpleLookupTable(3);
  if (delta != null) {
    if (delta.getKind() != IResourceDelta.NO_CHANGE) {
      if (DEBUG)
        System.out.println("Found source delta for: " + currentProject.getName()); //$NON-NLS-1$
      deltas.put(currentProject, delta);
    }
  } else {
    if (DEBUG)
      System.out.println("Missing delta for: " + currentProject.getName()); //$NON-NLS-1$
    notifier.subTask(""); //$NON-NLS-1$
    return null;
  }

  Object[] keyTable = binaryLocationsPerProject.keyTable;
  Object[] valueTable = binaryLocationsPerProject.valueTable;
  nextProject : for (int i = 0, l = keyTable.length; i < l; i++) {
    IProject p = (IProject) keyTable[i];
    if (p != null && p != currentProject) {
      State s = getLastState(p);
      if (!lastState.wasStructurallyChanged(p, s)) { // see if we can skip its delta
        if (s.wasNoopBuild())
          continue nextProject; // project has no source folders and can be skipped
        ClasspathLocation[] classFoldersAndJars = (ClasspathLocation[]) valueTable[i];
        boolean canSkip = true;
        for (int j = 0, m = classFoldersAndJars.length; j < m; j++) {
          if (classFoldersAndJars[j].isOutputFolder())
            classFoldersAndJars[j] = null; // can ignore output folder since project was not structurally changed
          else
            canSkip = false;
        }
        if (canSkip) continue nextProject; // project has no structural changes in its output folders
      }

      notifier.subTask(Messages.bind(Messages.build_readingDelta, p.getName()));
      delta = getDelta(p);
      if (delta != null) {
        if (delta.getKind() != IResourceDelta.NO_CHANGE) {
          if (DEBUG)
            System.out.println("Found binary delta for: " + p.getName()); //$NON-NLS-1$
          deltas.put(p, delta);
        }
      } else {
        if (DEBUG)
          System.out.println("Missing delta for: " + p.getName());   //$NON-NLS-1$
        notifier.subTask(""); //$NON-NLS-1$
View Full Code Here

Examples of org.aspectj.org.eclipse.jdt.internal.compiler.util.SimpleLookupTable

      builtProjects = new ArrayList();
    }
    builtProjects.add(projectName);
  }

  this.binaryLocationsPerProject = new SimpleLookupTable(3);
  this.nameEnvironment = new NameEnvironment(workspaceRoot, javaProject, binaryLocationsPerProject, notifier);

  if (forBuild) {
    String filterSequence = javaProject.getOption(JavaCore.CORE_JAVA_BUILD_RESOURCE_COPY_FILTER, true);
    char[][] filters = filterSequence != null && filterSequence.length() > 0
View Full Code Here

Examples of org.aspectj.org.eclipse.jdt.internal.compiler.util.SimpleLookupTable

    if (packagePath == null) {
      int count = sourceFile.sourceLocation.sourceFolder.getFullPath().segmentCount();
      packagePath = sourceFile.resource.getFullPath().removeFirstSegments(count).removeLastSegments(1);
    }
    if (secondaryTypesToRemove == null)
      this.secondaryTypesToRemove = new SimpleLookupTable();
    ArrayList types = (ArrayList) secondaryTypesToRemove.get(sourceFile.sourceLocation.binaryFolder);
    if (types == null)
      types = new ArrayList(definedTypeNames.size());
    types.add(packagePath.append(new String(previous)));
    secondaryTypesToRemove.put(sourceFile.sourceLocation.binaryFolder, types);
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.