4949import org .eclipse .jdt .core .ISourceRange ;
5050import org .eclipse .jdt .core .IType ;
5151import org .eclipse .jdt .core .JavaModelException ;
52+ import org .eclipse .jdt .internal .ui .javaeditor .CompilationUnitEditor ;
5253import org .eclipse .jface .dialogs .MessageDialog ;
5354import org .eclipse .jface .text .BadLocationException ;
5455import org .eclipse .jface .text .Document ;
8081import eu .modelwriter .marker .xml .EventMemento ;
8182import eu .modelwriter .traceability .core .persistence .DocumentRoot ;
8283
84+ @ SuppressWarnings ("restriction" )
8385public class MarkerFactory {
8486
8587 public static final String TARGETVIEW_REF = "eu.modelwriter.marker.command.targetviewrefresh" ;
@@ -495,7 +497,7 @@ public static IMarker createMarker(final IResource resource, final ITextSelectio
495497 /**
496498 * Creates a Marker from TreeSelection
497499 */
498- @ SuppressWarnings ({"restriction" , " resource" })
500+ @ SuppressWarnings ({"resource" })
499501 public static IMarker createMarker (final IResource res , final ITreeSelection selection ) {
500502 if (selection == null ) {
501503 final MessageDialog dialog = new MessageDialog (MarkerActivator .getShell (), "Mark Information" ,
@@ -528,7 +530,7 @@ public static IMarker createMarker(final IResource res, final ITreeSelection sel
528530
529531 } else if (editor instanceof EcoreEditor && selection .getFirstElement () != null ) {
530532 marker = MarkerFactory .createInstanceMarker (selection , file , res , editor );
531- } else if (editor instanceof org . eclipse . jdt . internal . ui . javaeditor . CompilationUnitEditor ) {
533+ } else if (editor instanceof CompilationUnitEditor ) {
532534 final Object element = selection .getFirstElement ();
533535
534536 String content = null ;
@@ -548,12 +550,12 @@ public static IMarker createMarker(final IResource res, final ITreeSelection sel
548550 final int nameEndOffset = nameStartOffset + nameRange .getLength ();
549551
550552 final ISourceRange sourceRange = field .getSourceRange ();
553+ startOffset =
554+ field .getJavadocRange ().getOffset () + field .getJavadocRange ().getLength () + 1 ;
551555 if (nameEndOffset + 1 == sourceRange .getOffset () + sourceRange .getLength ()) {
552- startOffset = sourceRange .getOffset ();
553- length = sourceRange .getLength ();
556+ length = sourceRange .getOffset () + sourceRange .getLength () - startOffset ;
554557 } else {
555558 final int indexOfAssignment = content .indexOf ("=" , nameEndOffset );
556- startOffset = sourceRange .getOffset ();
557559 length = indexOfAssignment - startOffset ;
558560 }
559561
@@ -564,7 +566,8 @@ public static IMarker createMarker(final IResource res, final ITreeSelection sel
564566 final IInitializer initializer = (IInitializer ) element ;
565567 try {
566568 final ISourceRange sourceRange = initializer .getSourceRange ();
567- startOffset = sourceRange .getOffset ();
569+ startOffset = initializer .getJavadocRange ().getOffset ()
570+ + initializer .getJavadocRange ().getLength () + 1 ;
568571 length = sourceRange .getLength ();
569572 } catch (final JavaModelException e ) {
570573 e .printStackTrace ();
@@ -577,13 +580,13 @@ public static IMarker createMarker(final IResource res, final ITreeSelection sel
577580 final int nameEndOffset = nameStartOffset + nameRange .getLength ();
578581
579582 final ISourceRange sourceRange = method .getSourceRange ();
583+ startOffset =
584+ method .getJavadocRange ().getOffset () + method .getJavadocRange ().getLength () + 1 ;
580585 if (content .toCharArray ()[sourceRange .getOffset () + sourceRange .getLength () - 1 ] == '}' ) {
581586 final int indexOfParanthesis = content .indexOf ("{" , nameEndOffset );
582- startOffset = sourceRange .getOffset ();
583587 length = indexOfParanthesis - startOffset ;
584588 } else if (content .toCharArray ()[sourceRange .getOffset () + sourceRange .getLength ()
585589 - 1 ] == ';' ) {
586- startOffset = sourceRange .getOffset ();
587590 length = sourceRange .getLength ();
588591 }
589592
@@ -599,8 +602,7 @@ public static IMarker createMarker(final IResource res, final ITreeSelection sel
599602
600603 final int indexOfParanthesis = content .indexOf ("{" , nameEndOffset );
601604
602- final ISourceRange sourceRange = type .getSourceRange ();
603- startOffset = sourceRange .getOffset ();
605+ startOffset = type .getJavadocRange ().getOffset () + type .getJavadocRange ().getLength () + 1 ;
604606 length = indexOfParanthesis - startOffset ;
605607 } catch (final JavaModelException e ) {
606608 e .printStackTrace ();
0 commit comments