IChange[] changes(EObject element,IXtextDocument doc) throws BadLocationException {
  ArrayList<IChange> changes=new ArrayList<>();
  if (element instanceof TypeDefiningElement) {
    changes.add(semanticChangeProvider.setAccessModifier(doc,(TypeDefiningElement)element,this.modifier,this.export));
  }
 else   if (element instanceof ExportedVariableStatement) {
    changes.add(semanticChangeProvider.setAccessModifiers(doc,(ModifiableElement)element,this.modifier));
  }
 else {
    return changes.toArray(new IChange[changes.size()]);
  }
  if (element instanceof AnnotableElement) {
    if (this.internal) {
      changes.add(semanticChangeProvider.addAnnotation(doc,(AnnotableElement)element,INTERNAL_ANNOTATION));
    }
 else {
      changes.add(semanticChangeProvider.removeAnnotation(doc,(AnnotableElement)element,INTERNAL_ANNOTATION));
    }
    return changes.toArray(new IChange[changes.size()]);
  }
  return new IChange[]{};
}

IChange [ ] changes ( EObject element , IXtextDocument doc ) throws BadLocationException { ArrayList < IChange > changes = new ArrayList < > ( ) ; if ( element instanceof TypeDefiningElement ) { changes . add ( semanticChangeProvider . setAccessModifier ( doc , ( TypeDefiningElement ) element , this . modifier , this . export ) ) ; } else if ( element instanceof ExportedVariableStatement ) { changes . add ( semanticChangeProvider . setAccessModifiers ( doc , ( ModifiableElement ) element , this . modifier ) ) ; } else { return changes . toArray ( new IChange [ changes . size ( ) ] ) ; } if ( element instanceof AnnotableElement ) { if ( this . internal ) { changes . add ( semanticChangeProvider . addAnnotation ( doc , ( AnnotableElement ) element , INTERNAL_ANNOTATION ) ) ; } else { changes . add ( semanticChangeProvider . removeAnnotation ( doc , ( AnnotableElement ) element , INTERNAL_ANNOTATION ) ) ; } return changes . toArray ( new IChange [ changes . size ( ) ] ) ; } return new IChange [ ] { } ; }
returns the ichanges necessary to follow the suggestion .
