public RecoveredElement add(FieldDeclaration addedfieldDeclaration, int bracketBalanceValue) { /* default behavior is to delegate recording to parent if any */ resetPendingModifiers(); if (this.parent == null) return this; // ignore if (this.fieldDeclaration.declarationSourceStart == addedfieldDeclaration.declarationSourceStart) { if (this.fieldDeclaration.initialization != null) { this.updateSourceEndIfNecessary(this.fieldDeclaration.initialization.sourceEnd); } else { this.updateSourceEndIfNecessary(this.fieldDeclaration.sourceEnd); } } else { this.updateSourceEndIfNecessary(previousAvailableLineEnd(addedfieldDeclaration.declarationSourceStart - 1)); } return this.parent.add(addedfieldDeclaration, bracketBalanceValue); } /*
public RecoveredElement add(FieldDeclaration addedfieldDeclaration, int bracketBalanceValue) { /* default behavior is to delegate recording to parent if any */ resetPendingModifiers(); if (this.parent == null) return this; // ignore if (this.fieldDeclaration.declarationSourceStart == addedfieldDeclaration.declarationSourceStart) { if (this.fieldDeclaration.initialization != null) { this.updateSourceEndIfNecessary(this.fieldDeclaration.initialization.sourceEnd); } else { this.updateSourceEndIfNecessary(this.fieldDeclaration.sourceEnd); } } else { this.updateSourceEndIfNecessary(previousAvailableLineEnd(addedfieldDeclaration.declarationSourceStart - 1)); } return this.parent.add(addedfieldDeclaration, bracketBalanceValue); } /*
public RecoveredElement add(FieldDeclaration addedfieldDeclaration, int bracketBalanceValue) { /* default behavior is to delegate recording to parent if any */ resetPendingModifiers(); if (this.parent == null) return this; // ignore if (this.fieldDeclaration.declarationSourceStart == addedfieldDeclaration.declarationSourceStart) { if (this.fieldDeclaration.initialization != null) { this.updateSourceEndIfNecessary(this.fieldDeclaration.initialization.sourceEnd); } else { this.updateSourceEndIfNecessary(this.fieldDeclaration.sourceEnd); } } else { this.updateSourceEndIfNecessary(previousAvailableLineEnd(addedfieldDeclaration.declarationSourceStart - 1)); } return this.parent.add(addedfieldDeclaration, bracketBalanceValue); } /*
public RecoveredElement add(FieldDeclaration addedfieldDeclaration, int bracketBalanceValue) { /* default behavior is to delegate recording to parent if any */ resetPendingModifiers(); if (this.parent == null) return this; // ignore if (this.fieldDeclaration.declarationSourceStart == addedfieldDeclaration.declarationSourceStart) { if (this.fieldDeclaration.initialization != null) { this.updateSourceEndIfNecessary(this.fieldDeclaration.initialization.sourceEnd); } else { this.updateSourceEndIfNecessary(this.fieldDeclaration.sourceEnd); } } else { this.updateSourceEndIfNecessary(previousAvailableLineEnd(addedfieldDeclaration.declarationSourceStart - 1)); } return this.parent.add(addedfieldDeclaration, bracketBalanceValue); } /*
public RecoveredElement add(FieldDeclaration addedfieldDeclaration, int bracketBalanceValue) { /* default behavior is to delegate recording to parent if any */ resetPendingModifiers(); if (this.parent == null) return this; // ignore if (this.fieldDeclaration.declarationSourceStart == addedfieldDeclaration.declarationSourceStart) { if (this.fieldDeclaration.initialization != null) { this.updateSourceEndIfNecessary(this.fieldDeclaration.initialization.sourceEnd); } else { this.updateSourceEndIfNecessary(this.fieldDeclaration.sourceEnd); } } else { this.updateSourceEndIfNecessary(previousAvailableLineEnd(addedfieldDeclaration.declarationSourceStart - 1)); } return this.parent.add(addedfieldDeclaration, bracketBalanceValue); } /*
public RecoveredElement add(FieldDeclaration addedfieldDeclaration, int bracketBalanceValue) { /* default behavior is to delegate recording to parent if any */ resetPendingModifiers(); if (this.parent == null) return this; // ignore if (this.fieldDeclaration.declarationSourceStart == addedfieldDeclaration.declarationSourceStart) { if (this.fieldDeclaration.initialization != null) { this.updateSourceEndIfNecessary(this.fieldDeclaration.initialization.sourceEnd); } else { this.updateSourceEndIfNecessary(this.fieldDeclaration.sourceEnd); } } else { this.updateSourceEndIfNecessary(previousAvailableLineEnd(addedfieldDeclaration.declarationSourceStart - 1)); } return this.parent.add(addedfieldDeclaration, bracketBalanceValue); } /*
public RecoveredElement add(FieldDeclaration addedfieldDeclaration, int bracketBalanceValue) { /* default behavior is to delegate recording to parent if any */ resetPendingModifiers(); if (this.parent == null) return this; // ignore if (this.fieldDeclaration.declarationSourceStart == addedfieldDeclaration.declarationSourceStart) { if (this.fieldDeclaration.initialization != null) { this.updateSourceEndIfNecessary(this.fieldDeclaration.initialization.sourceEnd); } else { this.updateSourceEndIfNecessary(this.fieldDeclaration.sourceEnd); } } else { this.updateSourceEndIfNecessary(previousAvailableLineEnd(addedfieldDeclaration.declarationSourceStart - 1)); } return this.parent.add(addedfieldDeclaration, bracketBalanceValue); } /*
public RecoveredElement updateOnClosingBrace(int braceStart, int braceEnd){ if (this.bracketBalance > 0){ // was an array initializer this.bracketBalance--; if (this.bracketBalance == 0) { if(this.fieldDeclaration.getKind() == AbstractVariableDeclaration.ENUM_CONSTANT) { updateSourceEndIfNecessary(braceEnd); return this.parent; } else { if (this.fieldDeclaration.declarationSourceEnd > 0) this.alreadyCompletedFieldInitialization = true; } } return this; } else if (this.bracketBalance == 0) { this.alreadyCompletedFieldInitialization = true; updateSourceEndIfNecessary(braceEnd - 1); } if (this.parent != null){ return this.parent.updateOnClosingBrace(braceStart, braceEnd); } return this; } /*
public RecoveredElement add(FieldDeclaration addedfieldDeclaration, int bracketBalanceValue) { /* default behavior is to delegate recording to parent if any */ resetPendingModifiers(); if (this.parent == null) return this; // ignore if (this.fieldDeclaration.declarationSourceStart == addedfieldDeclaration.declarationSourceStart) { if (this.fieldDeclaration.initialization != null) { this.updateSourceEndIfNecessary(this.fieldDeclaration.initialization.sourceEnd); } else { this.updateSourceEndIfNecessary(this.fieldDeclaration.sourceEnd); } } else { this.updateSourceEndIfNecessary(previousAvailableLineEnd(addedfieldDeclaration.declarationSourceStart - 1)); } return this.parent.add(addedfieldDeclaration, bracketBalanceValue); } /*
public RecoveredElement add(FieldDeclaration addedfieldDeclaration, int bracketBalanceValue) { /* default behavior is to delegate recording to parent if any */ resetPendingModifiers(); if (this.parent == null) return this; // ignore if (this.fieldDeclaration.declarationSourceStart == addedfieldDeclaration.declarationSourceStart) { if (this.fieldDeclaration.initialization != null) { this.updateSourceEndIfNecessary(this.fieldDeclaration.initialization.sourceEnd); } else { this.updateSourceEndIfNecessary(this.fieldDeclaration.sourceEnd); } } else { this.updateSourceEndIfNecessary(previousAvailableLineEnd(addedfieldDeclaration.declarationSourceStart - 1)); } return this.parent.add(addedfieldDeclaration, bracketBalanceValue); } /*
public RecoveredElement add(FieldDeclaration addedfieldDeclaration, int bracketBalanceValue) { /* default behavior is to delegate recording to parent if any */ resetPendingModifiers(); if (this.parent == null) return this; // ignore if (this.fieldDeclaration.declarationSourceStart == addedfieldDeclaration.declarationSourceStart) { if (this.fieldDeclaration.initialization != null) { this.updateSourceEndIfNecessary(this.fieldDeclaration.initialization.sourceEnd); } else { this.updateSourceEndIfNecessary(this.fieldDeclaration.sourceEnd); } } else { this.updateSourceEndIfNecessary(previousAvailableLineEnd(addedfieldDeclaration.declarationSourceStart - 1)); } return this.parent.add(addedfieldDeclaration, bracketBalanceValue); } /*
@Override public RecoveredElement add(FieldDeclaration addedfieldDeclaration, int bracketBalanceValue) { /* default behavior is to delegate recording to parent if any */ resetPendingModifiers(); if (this.parent == null) return this; // ignore if (this.fieldDeclaration.declarationSourceStart == addedfieldDeclaration.declarationSourceStart) { if (this.fieldDeclaration.initialization != null) { this.updateSourceEndIfNecessary(this.fieldDeclaration.initialization.sourceEnd); } else { this.updateSourceEndIfNecessary(this.fieldDeclaration.sourceEnd); } } else { this.updateSourceEndIfNecessary(previousAvailableLineEnd(addedfieldDeclaration.declarationSourceStart - 1)); } return this.parent.add(addedfieldDeclaration, bracketBalanceValue); } /*
@Override public RecoveredElement updateOnClosingBrace(int braceStart, int braceEnd){ if (this.bracketBalance > 0){ // was an array initializer this.bracketBalance--; if (this.bracketBalance == 0) { if(this.fieldDeclaration.getKind() == AbstractVariableDeclaration.ENUM_CONSTANT) { updateSourceEndIfNecessary(braceEnd); return this.parent; } else { if (this.fieldDeclaration.declarationSourceEnd > 0) this.alreadyCompletedFieldInitialization = true; } } return this; } else if (this.bracketBalance == 0) { this.alreadyCompletedFieldInitialization = true; updateSourceEndIfNecessary(braceEnd - 1); } if (this.parent != null){ return this.parent.updateOnClosingBrace(braceStart, braceEnd); } return this; } /*
public RecoveredElement updateOnClosingBrace(int braceStart, int braceEnd){ if (this.bracketBalance > 0){ // was an array initializer this.bracketBalance--; if (this.bracketBalance == 0) { if(this.fieldDeclaration.getKind() == AbstractVariableDeclaration.ENUM_CONSTANT) { updateSourceEndIfNecessary(braceEnd - 1); return this.parent; } else { if (this.fieldDeclaration.declarationSourceEnd > 0) this.alreadyCompletedFieldInitialization = true; } } return this; } else if (this.bracketBalance == 0) { this.alreadyCompletedFieldInitialization = true; updateSourceEndIfNecessary(braceEnd - 1); } if (this.parent != null){ return this.parent.updateOnClosingBrace(braceStart, braceEnd); } return this; } /*
public RecoveredElement updateOnClosingBrace(int braceStart, int braceEnd){ if (this.bracketBalance > 0){ // was an array initializer this.bracketBalance--; if (this.bracketBalance == 0) { if(this.fieldDeclaration.getKind() == AbstractVariableDeclaration.ENUM_CONSTANT) { updateSourceEndIfNecessary(braceEnd); return this.parent; } else { if (this.fieldDeclaration.declarationSourceEnd > 0) this.alreadyCompletedFieldInitialization = true; } } return this; } else if (this.bracketBalance == 0) { this.alreadyCompletedFieldInitialization = true; updateSourceEndIfNecessary(braceEnd - 1); } if (this.parent != null){ return this.parent.updateOnClosingBrace(braceStart, braceEnd); } return this; } /*
public RecoveredElement updateOnClosingBrace(int braceStart, int braceEnd){ if (this.bracketBalance > 0){ // was an array initializer this.bracketBalance--; if (this.bracketBalance == 0) { if(this.fieldDeclaration.getKind() == AbstractVariableDeclaration.ENUM_CONSTANT) { updateSourceEndIfNecessary(braceEnd - 1); return this.parent; } else { this.alreadyCompletedFieldInitialization = true; } } return this; } else if (this.bracketBalance == 0) { this.alreadyCompletedFieldInitialization = true; updateSourceEndIfNecessary(braceEnd - 1); } if (this.parent != null){ return this.parent.updateOnClosingBrace(braceStart, braceEnd); } return this; } /*
public RecoveredElement updateOnClosingBrace(int braceStart, int braceEnd){ if (this.bracketBalance > 0){ // was an array initializer this.bracketBalance--; if (this.bracketBalance == 0) { if(this.fieldDeclaration.getKind() == AbstractVariableDeclaration.ENUM_CONSTANT) { updateSourceEndIfNecessary(braceEnd); return this.parent; } else { if (this.fieldDeclaration.declarationSourceEnd > 0) this.alreadyCompletedFieldInitialization = true; } } return this; } else if (this.bracketBalance == 0) { this.alreadyCompletedFieldInitialization = true; updateSourceEndIfNecessary(braceEnd - 1); } if (this.parent != null){ return this.parent.updateOnClosingBrace(braceStart, braceEnd); } return this; } /*
public RecoveredElement updateOnOpeningBrace(int braceStart, int braceEnd){ if (this.fieldDeclaration.declarationSourceEnd == 0 && (this.fieldDeclaration.type instanceof ArrayTypeReference || this.fieldDeclaration.type instanceof ArrayQualifiedTypeReference) && !this.alreadyCompletedFieldInitialization){ this.bracketBalance++; return null; // no update is necessary (array initializer) } if (this.fieldDeclaration.declarationSourceEnd == 0 && this.fieldDeclaration.getKind() == AbstractVariableDeclaration.ENUM_CONSTANT){ this.bracketBalance++; return null; // no update is necessary (enum constant) } // might be an array initializer this.updateSourceEndIfNecessary(braceStart - 1, braceEnd - 1); return this.parent.updateOnOpeningBrace(braceStart, braceEnd); } public void updateParseTree(){
public RecoveredElement updateOnOpeningBrace(int braceStart, int braceEnd){ if (this.fieldDeclaration.declarationSourceEnd == 0) { if (this.fieldDeclaration.type instanceof ArrayTypeReference || this.fieldDeclaration.type instanceof ArrayQualifiedTypeReference) { if (!this.alreadyCompletedFieldInitialization) { this.bracketBalance++; return null; // no update is necessary (array initializer) } } else { // https://bugs.eclipse.org/bugs/show_bug.cgi?id=308980 // in case an initializer bracket is opened in a non-array field // e.g. int field = {.. this.bracketBalance++; return null; // no update is necessary (array initializer) } } if (this.fieldDeclaration.declarationSourceEnd == 0 && this.fieldDeclaration.getKind() == AbstractVariableDeclaration.ENUM_CONSTANT){ this.bracketBalance++; return null; // no update is necessary (enum constant) } // might be an array initializer this.updateSourceEndIfNecessary(braceStart - 1, braceEnd - 1); return this.parent.updateOnOpeningBrace(braceStart, braceEnd); } public void updateParseTree(){
public RecoveredElement updateOnOpeningBrace(int braceStart, int braceEnd){ if (this.fieldDeclaration.declarationSourceEnd == 0) { if (this.fieldDeclaration.type instanceof ArrayTypeReference || this.fieldDeclaration.type instanceof ArrayQualifiedTypeReference) { if (!this.alreadyCompletedFieldInitialization) { this.bracketBalance++; return null; // no update is necessary (array initializer) } } else { // https://bugs.eclipse.org/bugs/show_bug.cgi?id=308980 // in case an initializer bracket is opened in a non-array field // e.g. int field = {.. this.bracketBalance++; return null; // no update is necessary (array initializer) } } if (this.fieldDeclaration.declarationSourceEnd == 0 && this.fieldDeclaration.getKind() == AbstractVariableDeclaration.ENUM_CONSTANT){ this.bracketBalance++; return null; // no update is necessary (enum constant) } // might be an array initializer this.updateSourceEndIfNecessary(braceStart - 1, braceEnd - 1); return this.parent.updateOnOpeningBrace(braceStart, braceEnd); } public void updateParseTree(){