Exemplo n.º 1
0
  /*
   * Record a statement - regular method should have been created a block body
   */
  public RecoveredElement add(Statement statement, int bracketBalanceValue) {
    this.resetPendingModifiers();

    /* do not consider a type starting passed the type end (if set)
    it must be belonging to an enclosing type */
    if (methodDeclaration.declarationSourceEnd != 0
        && statement.sourceStart > methodDeclaration.declarationSourceEnd) {

      if (this.parent == null) {
        return this; // ignore
      } else {
        return this.parent.add(statement, bracketBalanceValue);
      }
    }
    if (methodBody == null) {
      Block block = new Block(0);
      block.sourceStart = methodDeclaration.bodyStart;
      RecoveredElement currentBlock = this.add(block, 1);
      if (this.bracketBalance > 0) {
        for (int i = 0; i < this.bracketBalance - 1; i++) {
          currentBlock = currentBlock.add(new Block(0), 1);
        }
        this.bracketBalance = 1;
      }
      return currentBlock.add(statement, bracketBalanceValue);
    }
    return methodBody.add(statement, bracketBalanceValue, true);
  }
Exemplo n.º 2
0
  /*
   * Record a local declaration - regular method should have been created a block body
   */
  public RecoveredElement add(LocalDeclaration localDeclaration, int bracketBalanceValue) {
    this.resetPendingModifiers();

    /* local variables inside method can only be final and non void */
    /*
    	char[][] localTypeName;
    	if ((localDeclaration.modifiers & ~AccFinal) != 0 // local var can only be final
    		|| (localDeclaration.type == null) // initializer
    		|| ((localTypeName = localDeclaration.type.getTypeName()).length == 1 // non void
    			&& CharOperation.equals(localTypeName[0], VoidBinding.sourceName()))){

    		if (this.parent == null){
    			return this; // ignore
    		} else {
    			this.updateSourceEndIfNecessary(this.previousAvailableLineEnd(localDeclaration.declarationSourceStart - 1));
    			return this.parent.add(localDeclaration, bracketBalance);
    		}
    	}
    */
    /* do not consider a type starting passed the type end (if set)
    it must be belonging to an enclosing type */
    if (methodDeclaration.declarationSourceEnd != 0
        && localDeclaration.declarationSourceStart > methodDeclaration.declarationSourceEnd) {

      if (this.parent == null) {
        return this; // ignore
      } else {
        return this.parent.add(localDeclaration, bracketBalanceValue);
      }
    }
    if (methodBody == null) {
      Block block = new Block(0);
      block.sourceStart = methodDeclaration.bodyStart;
      RecoveredElement currentBlock = this.add(block, 1);
      if (this.bracketBalance > 0) {
        for (int i = 0; i < this.bracketBalance - 1; i++) {
          currentBlock = currentBlock.add(new Block(0), 1);
        }
        this.bracketBalance = 1;
      }
      return currentBlock.add(localDeclaration, bracketBalanceValue);
    }
    return methodBody.add(localDeclaration, bracketBalanceValue, true);
  }