/** extracts the subArrayType for a given declaration for AST levels less * @param arrayType parent type * @param remainingDimensions * @param dimensionsToRemove * @return an ArrayType */ private ArrayType extractSubArrayType(ArrayType arrayType, int remainingDimensions, int dimensionsToRemove) { ArrayType subArrayType = arrayType; int start = subArrayType.getStartPosition(); if (this.ast.apiLevel() < AST.JLS8_INTERNAL) { while (dimensionsToRemove > 0 ) { subArrayType = (ArrayType) componentType(subArrayType); dimensionsToRemove--; } updateInnerPositions(subArrayType, remainingDimensions); } else { List dimensions = subArrayType.dimensions(); while (dimensionsToRemove > 0 ) { dimensions.remove(dimensions.size() - 1); dimensionsToRemove--; } } int end = retrieveProperRightBracketPosition(remainingDimensions, start); subArrayType.setSourceRange(start, end - start + 1); // cut the child loose from its parent (without creating garbage) subArrayType.setParent(null, null); return subArrayType; }
ASTNode clone0(AST target) { ArrayType result = new ArrayType(target); result.setSourceRange(getStartPosition(), getLength()); result.setComponentType((Type) getComponentType().clone(target)); return result; }
/** extracts the subArrayType for a given declaration for AST levels less * @param arrayType parent type * @param remainingDimensions * @param dimensionsToRemove * @return an ArrayType */ private ArrayType extractSubArrayType(ArrayType arrayType, int remainingDimensions, int dimensionsToRemove) { ArrayType subArrayType = arrayType; int start = subArrayType.getStartPosition(); if (this.ast.apiLevel() < AST.JLS8_INTERNAL) { while (dimensionsToRemove > 0 ) { subArrayType = (ArrayType) componentType(subArrayType); dimensionsToRemove--; } updateInnerPositions(subArrayType, remainingDimensions); } else { List dimensions = subArrayType.dimensions(); while (dimensionsToRemove > 0 ) { dimensions.remove(dimensions.size() - 1); dimensionsToRemove--; } } int end = retrieveProperRightBracketPosition(remainingDimensions, start); subArrayType.setSourceRange(start, end - start + 1); // cut the child loose from its parent (without creating garbage) subArrayType.setParent(null, null); return subArrayType; }
/** extracts the subArrayType for a given declaration for AST levels less * @param arrayType parent type * @param remainingDimensions * @param dimensionsToRemove * @return an ArrayType */ private ArrayType extractSubArrayType(ArrayType arrayType, int remainingDimensions, int dimensionsToRemove) { ArrayType subArrayType = arrayType; int start = subArrayType.getStartPosition(); if (this.ast.apiLevel() < AST.JLS8) { while (dimensionsToRemove > 0 ) { subArrayType = (ArrayType) componentType(subArrayType); dimensionsToRemove--; } updateInnerPositions(subArrayType, remainingDimensions); } else { List dimensions = subArrayType.dimensions(); while (dimensionsToRemove > 0 ) { dimensions.remove(dimensions.size() - 1); dimensionsToRemove--; } } int end = retrieveProperRightBracketPosition(remainingDimensions, start); subArrayType.setSourceRange(start, end - start + 1); // cut the child loose from its parent (without creating garbage) subArrayType.setParent(null, null); return subArrayType; }
/** extracts the subArrayType for a given declaration for AST levels less * @param arrayType parent type * @param remainingDimensions * @param dimensionsToRemove * @return an ArrayType */ private ArrayType extractSubArrayType(ArrayType arrayType, int remainingDimensions, int dimensionsToRemove) { ArrayType subArrayType = arrayType; int start = subArrayType.getStartPosition(); if (this.ast.apiLevel() < AST.JLS8) { while (dimensionsToRemove > 0 ) { subArrayType = (ArrayType) componentType(subArrayType); dimensionsToRemove--; } updateInnerPositions(subArrayType, remainingDimensions); } else { List dimensions = subArrayType.dimensions(); while (dimensionsToRemove > 0 ) { dimensions.remove(dimensions.size() - 1); dimensionsToRemove--; } } int end = retrieveProperRightBracketPosition(remainingDimensions, start); subArrayType.setSourceRange(start, end - start + 1); // cut the child loose from its parent (without creating garbage) subArrayType.setParent(null, null); return subArrayType; }
/** extracts the subArrayType for a given declaration for AST levels less * @param arrayType parent type * @param remainingDimensions * @param dimensionsToRemove * @return an ArrayType */ private ArrayType extractSubArrayType(ArrayType arrayType, int remainingDimensions, int dimensionsToRemove) { ArrayType subArrayType = arrayType; int start = subArrayType.getStartPosition(); if (this.ast.apiLevel() < AST.JLS8) { while (dimensionsToRemove > 0 ) { subArrayType = (ArrayType) componentType(subArrayType); dimensionsToRemove--; } updateInnerPositions(subArrayType, remainingDimensions); } else { List dimensions = subArrayType.dimensions(); while (dimensionsToRemove > 0 ) { dimensions.remove(dimensions.size() - 1); dimensionsToRemove--; } } int end = retrieveProperRightBracketPosition(remainingDimensions, start); subArrayType.setSourceRange(start, end - start + 1); // cut the child loose from its parent (without creating garbage) subArrayType.setParent(null, null); return subArrayType; }
ASTNode clone0(AST target) { ArrayType result; if (this.ast.apiLevel < AST.JLS8) { result = new ArrayType(target); result.setComponentType((Type) getComponentType().clone(target)); } else { result = new ArrayType(target, 0); result.setElementType((Type) getElementType().clone(target)); result.dimensions().addAll( ASTNode.copySubtrees(target, dimensions())); } result.setSourceRange(getStartPosition(), getLength()); return result; }
@Override ASTNode clone0(AST target) { ArrayType result; if (this.ast.apiLevel < AST.JLS8_INTERNAL) { result = new ArrayType(target); result.setComponentType((Type) getComponentType().clone(target)); } else { result = new ArrayType(target, 0); result.setElementType((Type) getElementType().clone(target)); result.dimensions().addAll( ASTNode.copySubtrees(target, dimensions())); } result.setSourceRange(getStartPosition(), getLength()); return result; }
ASTNode clone0(AST target) { ArrayType result; if (this.ast.apiLevel < AST.JLS8_INTERNAL) { result = new ArrayType(target); result.setComponentType((Type) getComponentType().clone(target)); } else { result = new ArrayType(target, 0); result.setElementType((Type) getElementType().clone(target)); result.dimensions().addAll( ASTNode.copySubtrees(target, dimensions())); } result.setSourceRange(getStartPosition(), getLength()); return result; }
ASTNode clone0(AST target) { ArrayType result; if (this.ast.apiLevel < AST.JLS8) { result = new ArrayType(target); result.setComponentType((Type) getComponentType().clone(target)); } else { result = new ArrayType(target, 0); result.setElementType((Type) getElementType().clone(target)); result.dimensions().addAll( ASTNode.copySubtrees(target, dimensions())); } result.setSourceRange(getStartPosition(), getLength()); return result; }
ASTNode clone0(AST target) { ArrayType result; if (this.ast.apiLevel < AST.JLS8) { result = new ArrayType(target); result.setComponentType((Type) getComponentType().clone(target)); } else { result = new ArrayType(target, 0); result.setElementType((Type) getElementType().clone(target)); result.dimensions().addAll( ASTNode.copySubtrees(target, dimensions())); } result.setSourceRange(getStartPosition(), getLength()); return result; }
int offset= getScanner().getTokenStartOffset(TerminalTokens.TokenNameLBRACKET, arrayType.getStartPosition());