Example usage for org.eclipse.jdt.core IJavaElement PACKAGE_DECLARATION

List of usage examples for org.eclipse.jdt.core IJavaElement PACKAGE_DECLARATION

Introduction

In this page you can find the example usage for org.eclipse.jdt.core IJavaElement PACKAGE_DECLARATION.

Prototype

int PACKAGE_DECLARATION

To view the source code for org.eclipse.jdt.core IJavaElement PACKAGE_DECLARATION.

Click Source Link

Document

Constant representing a package declaration within a compilation unit.

Usage

From source file:rabbit.tracking.internal.trackers.JavaTrackerTest.java

License:Apache License

/**
 * This test is for the same purpose as//from  w ww .j av a2  s . c  o m
 * {@link #testFilter_deletedElement_typeMembers()}, but with a little
 * difference, that is, if the whole Java file is deleted, all the data about
 * the Java elements in the file will be stored under the Java file, even
 * though it's deleted.
 * 
 * @see #testFilter_deletedElement_typeMembers()
 */
@Test
public void testFilter_deletedElement_mainType() throws Exception {
    // Create a new class:
    String newClassName = unit.getTypes()[0].getElementName() + "abc";
    StringBuilder builder = new StringBuilder();
    builder.append(format("package %s;%n", pkg.getElementName()));
    builder.append(format("public class %s {", newClassName));
    builder.append(format("}%n"));
    ICompilationUnit myUnit = pkg.createCompilationUnit(newClassName + ".java", builder.toString(), true, null);

    JavaEditor editor = closeAndOpenEditor(myUnit);

    // Set the editor to select the package declaration:
    int offset = getDocument(editor).get().indexOf(pkg.getElementName());
    int len = pkg.getElementName().length();
    editor.getSelectionProvider().setSelection(new TextSelection(offset, len));
    // Make sure we got the selection right:
    assertEquals(IJavaElement.PACKAGE_DECLARATION, getElementAtOffset(editor).getElementType());

    // Run the tracker to capture the event:
    long preStart = System.currentTimeMillis();
    tracker.setEnabled(true);
    long postStart = System.currentTimeMillis();

    Thread.sleep(35);

    long preEnd = System.currentTimeMillis();
    tracker.setEnabled(false);
    long postEnd = System.currentTimeMillis();

    // Delete the file:
    myUnit.getResource().delete(true, null);

    // Ask the tracker to save the data, the data should be appropriately
    // filtered
    tracker.saveData();

    // One data should be in the collection (the parent of the previously
    // selected package declaration):
    assertEquals(1, tracker.getData().size());
    JavaEvent event = tracker.getData().iterator().next();
    long start = event.getInterval().getStartMillis();
    long end = event.getInterval().getEndMillis();
    checkTime(preStart, start, postStart, preEnd, end, postEnd);

    // Test the data is placed under the root element:
    assertEquals(myUnit, event.getElement());
}

From source file:rabbit.tracking.internal.trackers.JavaTrackerTest.java

License:Apache License

/**
 * Test an event on an package declaration. This event should be filtered on
 * save, so that instead of showing a user spent x amount of time on the
 * package declaration , we show that a user spent x amount of time on the
 * main type element./*w  w w . j  a va  2 s . c  om*/
 */
@Test
public void testFilter_existingElement_packageDeclaration() throws Exception {
    JavaEditor editor = closeAndOpenEditor();
    IDocument document = getDocument(editor);
    int offset = document.get().indexOf(pkg.getElementName());
    int len = pkg.getElementName().length();
    editor.getSelectionProvider().setSelection(new TextSelection(offset, len));

    IJavaElement element = getElementAtOffset(editor);
    // Make sure we got the selection right:
    assertEquals(IJavaElement.PACKAGE_DECLARATION, element.getElementType());

    long preStart = System.currentTimeMillis();
    tracker.setEnabled(true);
    long postStart = System.currentTimeMillis();

    Thread.sleep(30);

    long preEnd = System.currentTimeMillis();
    tracker.setEnabled(false);
    long postEnd = System.currentTimeMillis();

    // Ask the tracker to save the data, the data should be appropriately
    // filtered
    tracker.saveData();

    assertEquals(1, tracker.getData().size());

    JavaEvent event = tracker.getData().iterator().next();
    long start = event.getInterval().getStartMillis();
    long end = event.getInterval().getEndMillis();
    checkTime(preStart, start, postStart, preEnd, end, postEnd);
    assertEquals(element.getParent(), event.getElement());
}