@@ -82,13 +82,13 @@ public class ProjectionDocument extends AbstractDocument {
8282
8383
8484 /** The master document */
85- private IDocument fMasterDocument ;
85+ private final IDocument fMasterDocument ;
8686 /** The master document as document extension */
8787 private IDocumentExtension fMasterDocumentExtension ;
8888 /** The fragments' position category */
89- private String fFragmentsCategory ;
89+ private final String fFragmentsCategory ;
9090 /** The segment's position category */
91- private String fSegmentsCategory ;
91+ private final String fSegmentsCategory ;
9292 /** The document event issued by the master document */
9393 private DocumentEvent fMasterEvent ;
9494 /** The document event to be issued by the projection document */
@@ -102,9 +102,9 @@ public class ProjectionDocument extends AbstractDocument {
102102 /** The position updater for the segments */
103103 private SegmentUpdater fSegmentUpdater ;
104104 /** The position updater for the fragments */
105- private FragmentUpdater fFragmentsUpdater ;
105+ private final FragmentUpdater fFragmentsUpdater ;
106106 /** The projection mapping */
107- private ProjectionMapping fMapping ;
107+ private final ProjectionMapping fMapping ;
108108
109109 /**
110110 * Creates a projection document for the given master document.
@@ -115,8 +115,9 @@ public ProjectionDocument(IDocument masterDocument) {
115115 super ();
116116
117117 fMasterDocument = masterDocument ;
118- if (fMasterDocument instanceof IDocumentExtension )
118+ if (fMasterDocument instanceof IDocumentExtension ) {
119119 fMasterDocumentExtension = (IDocumentExtension ) fMasterDocument ;
120+ }
120121
121122 fSegmentsCategory = SEGMENTS_CATEGORY ;
122123 fFragmentsCategory = FRAGMENTS_CATEGORY_PREFIX + hashCode ();
@@ -284,8 +285,9 @@ private Segment createSegmentFor(Fragment fragment, int index) throws BadLocatio
284285 * document
285286 */
286287 private void internalAddMasterDocumentRange (int offsetInMaster , int lengthInMaster , DocumentEvent masterDocumentEvent ) throws BadLocationException {
287- if (lengthInMaster == 0 )
288+ if (lengthInMaster == 0 ) {
288289 return ;
290+ }
289291
290292 try {
291293
@@ -297,21 +299,26 @@ private void internalAddMasterDocumentRange(int offsetInMaster, int lengthInMast
297299
298300 if (index < fragments .length ) {
299301 Fragment fragment = (Fragment ) fragments [index ];
300- if (offsetInMaster == fragment .offset )
301- if (fragment .length == 0 ) // the fragment does not overlap - it is a zero-length fragment at the same offset
302+ if (offsetInMaster == fragment .offset ) {
303+ if (fragment .length == 0 ) { // the fragment does not overlap - it is a zero-length fragment at the same offset
302304 left = fragment ;
303- else
305+ } else {
304306 throw new IllegalArgumentException ("overlaps with existing fragment" ); //$NON-NLS-1$
305- if (offsetInMaster + lengthInMaster == fragment .offset )
307+ }
308+ }
309+ if (offsetInMaster + lengthInMaster == fragment .offset ) {
306310 right = fragment ;
311+ }
307312 }
308313
309314 if (0 < index && index <= fragments .length ) {
310315 Fragment fragment = (Fragment ) fragments [index - 1 ];
311- if (fragment .includes (offsetInMaster ))
316+ if (fragment .includes (offsetInMaster )) {
312317 throw new IllegalArgumentException ("overlaps with existing fragment" ); //$NON-NLS-1$
313- if (fragment .getOffset () + fragment .getLength () == offsetInMaster )
318+ }
319+ if (fragment .getOffset () + fragment .getLength () == offsetInMaster ) {
314320 left = fragment ;
321+ }
315322 }
316323
317324 int offsetInSlave = 0 ;
@@ -371,8 +378,9 @@ private Fragment findFragment(int offsetInMaster, int lengthInMaster) {
371378 Position [] fragments = getFragments ();
372379 for (Position fragment : fragments ) {
373380 Fragment f = (Fragment ) fragment ;
374- if (f .getOffset () <= offsetInMaster && offsetInMaster + lengthInMaster <= f .getOffset () + f .getLength ())
381+ if (f .getOffset () <= offsetInMaster && offsetInMaster + lengthInMaster <= f .getOffset () + f .getLength ()) {
375382 return f ;
383+ }
376384 }
377385 return null ;
378386 }
@@ -394,12 +402,14 @@ private void internalRemoveMasterDocumentRange(int offsetInMaster, int lengthInM
394402 try {
395403
396404 IRegion imageRegion = fMapping .toExactImageRegion (new Region (offsetInMaster , lengthInMaster ));
397- if (imageRegion == null )
405+ if (imageRegion == null ) {
398406 throw new IllegalArgumentException ();
407+ }
399408
400409 Fragment fragment = findFragment (offsetInMaster , lengthInMaster );
401- if (fragment == null )
410+ if (fragment == null ) {
402411 throw new IllegalArgumentException ();
412+ }
403413
404414 ProjectionDocumentEvent event = new ProjectionDocumentEvent (this , imageRegion .getOffset (), imageRegion .getLength (), "" , offsetInMaster , lengthInMaster ); //$NON-NLS-1$
405415 super .fireDocumentAboutToBeChanged (event );
@@ -457,31 +467,36 @@ public final IRegion[] computeUnprojectedMasterRegions(int offsetInMaster, int l
457467
458468 IRegion [] fragments = null ;
459469 IRegion imageRegion = fMapping .toImageRegion (new Region (offsetInMaster , lengthInMaster ));
460- if (imageRegion != null )
470+ if (imageRegion != null ) {
461471 fragments = fMapping .toExactOriginRegions (imageRegion );
472+ }
462473
463- if (fragments == null || fragments .length == 0 )
474+ if (fragments == null || fragments .length == 0 ) {
464475 return new IRegion [] { new Region (offsetInMaster , lengthInMaster ) };
476+ }
465477
466478 List <Region > gaps = new ArrayList <>();
467479
468480 IRegion region = fragments [0 ];
469- if (offsetInMaster < region .getOffset ())
481+ if (offsetInMaster < region .getOffset ()) {
470482 gaps .add (new Region (offsetInMaster , region .getOffset () - offsetInMaster ));
483+ }
471484
472485 for (int i = 0 ; i < fragments .length - 1 ; i ++) {
473486 IRegion left = fragments [i ];
474487 IRegion right = fragments [i + 1 ];
475488 int leftEnd = left .getOffset () + left .getLength ();
476- if (leftEnd < right .getOffset ())
489+ if (leftEnd < right .getOffset ()) {
477490 gaps .add (new Region (leftEnd , right .getOffset () - leftEnd ));
491+ }
478492 }
479493
480494 region = fragments [fragments .length - 1 ];
481495 int leftEnd = region .getOffset () + region .getLength ();
482496 int rightEnd = offsetInMaster + lengthInMaster ;
483- if (leftEnd < rightEnd )
497+ if (leftEnd < rightEnd ) {
484498 gaps .add (new Region (leftEnd , rightEnd - leftEnd ));
499+ }
485500
486501 IRegion [] result = new IRegion [gaps .size ()];
487502 gaps .toArray (result );
@@ -504,29 +519,34 @@ private IRegion computeFirstUnprojectedMasterRegion(int offsetInMaster, int leng
504519
505520 IRegion [] fragments = null ;
506521 IRegion imageRegion = fMapping .toImageRegion (new Region (offsetInMaster , lengthInMaster ));
507- if (imageRegion != null )
522+ if (imageRegion != null ) {
508523 fragments = fMapping .toExactOriginRegions (imageRegion );
524+ }
509525
510- if (fragments == null || fragments .length == 0 )
526+ if (fragments == null || fragments .length == 0 ) {
511527 return new Region (offsetInMaster , lengthInMaster );
528+ }
512529
513530 IRegion region = fragments [0 ];
514- if (offsetInMaster < region .getOffset ())
531+ if (offsetInMaster < region .getOffset ()) {
515532 return new Region (offsetInMaster , region .getOffset () - offsetInMaster );
533+ }
516534
517535 for (int i = 0 ; i < fragments .length - 1 ; i ++) {
518536 IRegion left = fragments [i ];
519537 IRegion right = fragments [i + 1 ];
520538 int leftEnd = left .getOffset () + left .getLength ();
521- if (leftEnd < right .getOffset ())
539+ if (leftEnd < right .getOffset ()) {
522540 return new Region (leftEnd , right .getOffset () - leftEnd );
541+ }
523542 }
524543
525544 region = fragments [fragments .length - 1 ];
526545 int leftEnd = region .getOffset () + region .getLength ();
527546 int rightEnd = offsetInMaster + lengthInMaster ;
528- if (leftEnd < rightEnd )
547+ if (leftEnd < rightEnd ) {
529548 return new Region (leftEnd , rightEnd - leftEnd );
549+ }
530550
531551 return null ;
532552 }
@@ -565,12 +585,14 @@ private void addMasterDocumentRange(int offsetInMaster, int lengthInMaster, Docu
565585 */
566586 int limit = Math .max (getFragments ().length * 2 , 20 );
567587 while (true ) {
568- if (limit -- < 0 )
588+ if (limit -- < 0 ) {
569589 throw new IllegalArgumentException ("safety loop termination" ); //$NON-NLS-1$
590+ }
570591
571592 IRegion gap = computeFirstUnprojectedMasterRegion (offsetInMaster , lengthInMaster );
572- if (gap == null )
593+ if (gap == null ) {
573594 return ;
595+ }
574596
575597 internalAddMasterDocumentRange (gap .getOffset (), gap .getLength (), masterDocumentEvent );
576598 }
@@ -586,8 +608,9 @@ private void addMasterDocumentRange(int offsetInMaster, int lengthInMaster, Docu
586608 */
587609 public void removeMasterDocumentRange (int offsetInMaster , int lengthInMaster ) throws BadLocationException {
588610 IRegion [] fragments = computeProjectedMasterRegions (offsetInMaster , lengthInMaster );
589- if (fragments == null || fragments .length == 0 )
611+ if (fragments == null || fragments .length == 0 ) {
590612 return ;
613+ }
591614
592615 for (IRegion fragment : fragments ) {
593616 internalRemoveMasterDocumentRange (fragment .getOffset (), fragment .getLength ());
@@ -622,29 +645,33 @@ protected boolean isUpdating() {
622645 public void replace (int offset , int length , String text ) throws BadLocationException {
623646 try {
624647 fIsUpdating = true ;
625- if (fMasterDocumentExtension != null )
648+ if (fMasterDocumentExtension != null ) {
626649 fMasterDocumentExtension .stopPostNotificationProcessing ();
650+ }
627651 super .replace (offset , length , text );
628652 } finally {
629653 fIsUpdating = false ;
630- if (fMasterDocumentExtension != null )
654+ if (fMasterDocumentExtension != null ) {
631655 fMasterDocumentExtension .resumePostNotificationProcessing ();
656+ }
632657 }
633658 }
634659
635660 @ Override
636661 public void set (String text ) {
637662 try {
638663 fIsUpdating = true ;
639- if (fMasterDocumentExtension != null )
664+ if (fMasterDocumentExtension != null ) {
640665 fMasterDocumentExtension .stopPostNotificationProcessing ();
666+ }
641667
642668 super .set (text );
643669
644670 } finally {
645671 fIsUpdating = false ;
646- if (fMasterDocumentExtension != null )
672+ if (fMasterDocumentExtension != null ) {
647673 fMasterDocumentExtension .resumePostNotificationProcessing ();
674+ }
648675 }
649676 }
650677
@@ -659,8 +686,9 @@ public void set(String text) {
659686 private ProjectionDocumentEvent normalize (DocumentEvent masterEvent ) throws BadLocationException {
660687 if (!isUpdating ()) {
661688 IRegion imageRegion = fMapping .toExactImageRegion (new Region (masterEvent .getOffset (), masterEvent .getLength ()));
662- if (imageRegion != null )
689+ if (imageRegion != null ) {
663690 return new ProjectionDocumentEvent (this , imageRegion .getOffset (), imageRegion .getLength (), masterEvent .getText (), masterEvent );
691+ }
664692 return null ;
665693 }
666694
@@ -715,12 +743,14 @@ public void masterDocumentAboutToBeChanged(DocumentEvent masterEvent) {
715743
716744 boolean assertNotNull = adaptProjectionToMasterChange (masterEvent );
717745 fSlaveEvent = normalize (masterEvent );
718- if (assertNotNull && fSlaveEvent == null )
746+ if (assertNotNull && fSlaveEvent == null ) {
719747 internalError ();
748+ }
720749
721750 fMasterEvent = masterEvent ;
722- if (fSlaveEvent != null )
751+ if (fSlaveEvent != null ) {
723752 delayedFireDocumentAboutToBeChanged ();
753+ }
724754
725755 } catch (BadLocationException e ) {
726756 internalError ();
@@ -743,8 +773,9 @@ public void masterDocumentChanged(DocumentEvent masterEvent) {
743773 } catch (BadLocationException e ) {
744774 internalError ();
745775 }
746- } else if (ensureWellFormedSegmentation (masterEvent .getOffset ()))
776+ } else if (ensureWellFormedSegmentation (masterEvent .getOffset ())) {
747777 fMapping .projectionChanged ();
778+ }
748779 }
749780 }
750781
@@ -780,13 +811,13 @@ protected void updateDocumentStructures(DocumentEvent event) {
780811 }
781812
782813 private int computeAnchor (DocumentEvent event ) {
783- if (event instanceof ProjectionDocumentEvent ) {
784- ProjectionDocumentEvent slave = (ProjectionDocumentEvent ) event ;
814+ if (event instanceof ProjectionDocumentEvent slave ) {
785815 Object changeType = slave .getChangeType ();
786816 if (ProjectionDocumentEvent .CONTENT_CHANGE == changeType ) {
787817 DocumentEvent master = slave .getMasterEvent ();
788- if (master != null )
818+ if (master != null ) {
789819 return master .getOffset ();
820+ }
790821 } else if (ProjectionDocumentEvent .PROJECTION_CHANGE == changeType ) {
791822 return slave .getMasterOffset ();
792823 }
@@ -809,8 +840,9 @@ private boolean ensureWellFormedSegmentation(int anchorOffset) {
809840 }
810841 } else if (i < segments .length - 1 ) {
811842 Segment next = (Segment ) segments [i + 1 ];
812- if (next .isDeleted () || next .getLength () == 0 )
843+ if (next .isDeleted () || next .getLength () == 0 ) {
813844 continue ;
845+ }
814846 Fragment fragment = segment .fragment ;
815847 if (fragment .getOffset () + fragment .getLength () == next .fragment .getOffset ()) {
816848 // join fragments and their corresponding segments
@@ -841,8 +873,9 @@ private boolean ensureWellFormedSegmentation(int anchorOffset) {
841873
842874 @ Override
843875 public void registerPostNotificationReplace (IDocumentListener owner , IDocumentExtension .IReplace replace ) {
844- if (!isUpdating ())
876+ if (!isUpdating ()) {
845877 throw new UnsupportedOperationException ();
878+ }
846879 super .registerPostNotificationReplace (owner , replace );
847880 }
848881
0 commit comments