|
Lines 1266-1272
Link Here
|
| 1266 |
} |
1266 |
} |
| 1267 |
|
1267 |
|
| 1268 |
protected int rewriteExtraDimensionsInfo(ASTNode node, int pos, ChildListPropertyDescriptor property) { |
1268 |
protected int rewriteExtraDimensionsInfo(ASTNode node, int pos, ChildListPropertyDescriptor property) { |
| 1269 |
return rewriteNodeList(node, property, pos, " ", " "); //$NON-NLS-1$ //$NON-NLS-2$ |
1269 |
return rewriteNodeList(node, property, pos, " ", ""); //$NON-NLS-1$ //$NON-NLS-2$ |
| 1270 |
} |
1270 |
} |
| 1271 |
|
1271 |
|
| 1272 |
private int rewriteExtraDimensions(ASTNode parent, StructuralPropertyDescriptor property, int pos) { |
1272 |
private int rewriteExtraDimensions(ASTNode parent, StructuralPropertyDescriptor property, int pos) { |
|
Lines 1917-1923
Link Here
|
| 1917 |
if (!hasChildrenChanges(node)) { |
1917 |
if (!hasChildrenChanges(node)) { |
| 1918 |
return doVisitUnchangedChildren(node); |
1918 |
return doVisitUnchangedChildren(node); |
| 1919 |
} |
1919 |
} |
| 1920 |
rewriteNodeList(node, Dimension.ANNOTATIONS_PROPERTY, node.getStartPosition(), Util.EMPTY_STRING, " "); //$NON-NLS-1$ |
1920 |
rewriteNodeList(node, Dimension.ANNOTATIONS_PROPERTY, node.getStartPosition(), String.valueOf(' '), String.valueOf(' '), String.valueOf(' ')); |
| 1921 |
return false; |
1921 |
return false; |
| 1922 |
} |
1922 |
} |
| 1923 |
|
1923 |
|
|
Lines 2058-2067
Link Here
|
| 2058 |
ArrayType arrayType= (ArrayType) getOriginalValue(node, ArrayCreation.TYPE_PROPERTY); |
2058 |
ArrayType arrayType= (ArrayType) getOriginalValue(node, ArrayCreation.TYPE_PROPERTY); |
| 2059 |
ArrayType replacingType= arrayType; |
2059 |
ArrayType replacingType= arrayType; |
| 2060 |
int nOldBrackets= getDimensions(arrayType); // number of total brackets |
2060 |
int nOldBrackets= getDimensions(arrayType); // number of total brackets |
|
|
2061 |
boolean astLevelGTE8 = node.getAST().apiLevel() >= AST.JLS8; |
| 2062 |
boolean typeReplaced = false; |
| 2061 |
|
2063 |
|
| 2062 |
TextEditGroup editGroup= null; |
2064 |
TextEditGroup editGroup= null; |
| 2063 |
RewriteEvent typeEvent= getEvent(node, ArrayCreation.TYPE_PROPERTY); |
2065 |
RewriteEvent typeEvent= getEvent(node, ArrayCreation.TYPE_PROPERTY); |
| 2064 |
if (typeEvent != null && typeEvent.getChangeKind() == RewriteEvent.REPLACED) { // changed arraytype can have different dimension or type name |
2066 |
if (typeEvent != null && typeEvent.getChangeKind() == RewriteEvent.REPLACED) { // changed arraytype can have different dimension or type name |
|
|
2067 |
typeReplaced = true; |
| 2065 |
replacingType= (ArrayType) typeEvent.getNewValue(); |
2068 |
replacingType= (ArrayType) typeEvent.getNewValue(); |
| 2066 |
editGroup= getEditGroup(typeEvent); |
2069 |
editGroup= getEditGroup(typeEvent); |
| 2067 |
Type newType= replacingType.getElementType(); |
2070 |
Type newType= replacingType.getElementType(); |
|
Lines 2080-2094
Link Here
|
| 2080 |
RewriteEvent dimEvent= getEvent(node, ArrayCreation.DIMENSIONS_PROPERTY); |
2083 |
RewriteEvent dimEvent= getEvent(node, ArrayCreation.DIMENSIONS_PROPERTY); |
| 2081 |
boolean hasDimensionChanges= (dimEvent != null && dimEvent.getChangeKind() != RewriteEvent.UNCHANGED); |
2084 |
boolean hasDimensionChanges= (dimEvent != null && dimEvent.getChangeKind() != RewriteEvent.UNCHANGED); |
| 2082 |
RewriteEvent[] events= hasDimensionChanges ? dimEvent.getChildren() : null; |
2085 |
RewriteEvent[] events= hasDimensionChanges ? dimEvent.getChildren() : null; |
| 2083 |
boolean astLevelGTE8 = node.getAST().apiLevel() >= AST.JLS8; |
|
|
| 2084 |
ArrayType currentLevel = astLevelGTE8 ? null : (ArrayType) replacingType.getElementType().getParent(); |
2086 |
ArrayType currentLevel = astLevelGTE8 ? null : (ArrayType) replacingType.getElementType().getParent(); |
| 2085 |
int replacingTypeDimensions = replacingType.getDimensions(); |
2087 |
int replacingTypeDimensions = replacingType.getDimensions(); |
| 2086 |
int i=0, dimSize= (events == null) ? 0 : events.length; |
2088 |
int i=0, dimSize= (events == null) ? 0 : events.length; |
| 2087 |
Type elementType= arrayType.getElementType(); |
2089 |
Type elementType= arrayType.getElementType(); |
| 2088 |
int offset= elementType.getStartPosition() + elementType.getLength(); |
2090 |
int offset= elementType.getStartPosition() + elementType.getLength(); |
|
|
2091 |
editGroup = null; |
| 2089 |
while(currentLevel != null || astLevelGTE8) { |
2092 |
while(currentLevel != null || astLevelGTE8) { |
| 2090 |
if (i < dimSize) { |
2093 |
if (i < dimSize) { |
| 2091 |
if (astLevelGTE8) rewriteAnnotationsOnDimension(replacingType, i, offset); |
2094 |
if (astLevelGTE8) |
|
|
2095 |
rewriteAnnotationsOnDimension(arrayType, replacingType, i, offset, typeReplaced, editGroup); |
| 2092 |
offset= getScanner().getTokenEndOffset(TerminalTokens.TokenNameLBRACKET, offset); |
2096 |
offset= getScanner().getTokenEndOffset(TerminalTokens.TokenNameLBRACKET, offset); |
| 2093 |
if (hasDimensionChanges) { |
2097 |
if (hasDimensionChanges) { |
| 2094 |
RewriteEvent event= events[i]; |
2098 |
RewriteEvent event= events[i]; |
|
Lines 2123-2129
Link Here
|
| 2123 |
offset= retrieveRightBracketEndPosition(offset, 1, true); |
2127 |
offset= retrieveRightBracketEndPosition(offset, 1, true); |
| 2124 |
} |
2128 |
} |
| 2125 |
} else if (i < nOldBrackets) { |
2129 |
} else if (i < nOldBrackets) { |
| 2126 |
if (astLevelGTE8) rewriteAnnotationsOnDimension(replacingType, i, offset); |
2130 |
if (astLevelGTE8) |
|
|
2131 |
rewriteAnnotationsOnDimension(arrayType, replacingType, i, offset, typeReplaced, editGroup); |
| 2127 |
offset= retrieveRightBracketEndPosition(offset, 1, false); |
2132 |
offset= retrieveRightBracketEndPosition(offset, 1, false); |
| 2128 |
} else { |
2133 |
} else { |
| 2129 |
insertAnnotationsOnDimension(replacingType, i, offset, editGroup, astLevelGTE8); |
2134 |
insertAnnotationsOnDimension(replacingType, i, offset, editGroup, astLevelGTE8); |
|
Lines 2162-2179
Link Here
|
| 2162 |
List annotations = dim.annotations(); |
2167 |
List annotations = dim.annotations(); |
| 2163 |
if (annotations != null) { |
2168 |
if (annotations != null) { |
| 2164 |
int size = annotations.size(); |
2169 |
int size = annotations.size(); |
| 2165 |
for (int j = 0; j < size; j++) { |
2170 |
if (size > 0) { |
| 2166 |
Annotation annotation = (Annotation) annotations.get(j); |
2171 |
doTextInsert(pos, " ", editGroup); //$NON-NLS-1$ |
| 2167 |
doTextInsert(pos, annotation.toString() + " ", editGroup); //$NON-NLS-1$ |
2172 |
for (int j = 0; j < size; j++) { |
|
|
2173 |
Annotation annotation = (Annotation) annotations.get(j); |
| 2174 |
doTextInsert(pos, annotation.toString() + " ", editGroup); //$NON-NLS-1$ |
| 2175 |
} |
| 2168 |
} |
2176 |
} |
| 2169 |
|
|
|
| 2170 |
} |
2177 |
} |
| 2171 |
} |
2178 |
} |
| 2172 |
} |
2179 |
} |
| 2173 |
|
2180 |
|
| 2174 |
private void rewriteAnnotationsOnDimension(ArrayType replacingType, int index, int pos) { |
2181 |
private void rewriteAnnotationsOnDimension(ArrayType oldArrayType, ArrayType replacingType, int index, int pos, boolean typeReplaced, TextEditGroup editGroup) throws CoreException { |
| 2175 |
Dimension dim = (Dimension) replacingType.dimensions().get(index); |
2182 |
if (typeReplaced) { |
| 2176 |
rewriteTypeAnnotations(dim, Dimension.ANNOTATIONS_PROPERTY, pos); |
2183 |
List dimensions = oldArrayType.dimensions(); |
|
|
2184 |
Dimension oldDim = index < dimensions.size() ? (Dimension) dimensions.get(index) : null; |
| 2185 |
if (oldDim != null) { |
| 2186 |
List annotations = oldDim.annotations(); |
| 2187 |
int size = annotations.size(); |
| 2188 |
if (size > 0) { |
| 2189 |
Annotation annotation = (Annotation) annotations.get(size - 1); |
| 2190 |
int end = annotation.getStartPosition() + annotation.getLength(); |
| 2191 |
end = getScanner().getTokenEndOffset(TerminalTokens.TokenNameLBRACKET, end) - 1; |
| 2192 |
doTextRemove(pos, end - oldDim.getStartPosition() + 1, editGroup); |
| 2193 |
} |
| 2194 |
} |
| 2195 |
insertAnnotationsOnDimension(replacingType, index, pos, editGroup, true); |
| 2196 |
} else { |
| 2197 |
Dimension dim = (Dimension) replacingType.dimensions().get(index); |
| 2198 |
rewriteNodeList(dim, Dimension.ANNOTATIONS_PROPERTY, pos, String.valueOf(' '), String.valueOf(' '), String.valueOf(' ')); |
| 2199 |
} |
| 2177 |
} |
2200 |
} |
| 2178 |
|
2201 |
|
| 2179 |
/** |
2202 |
/** |
|
Lines 2254-2260
Link Here
|
| 2254 |
rewriteRequiredNode(node, INTERNAL_ARRAY_COMPONENT_TYPE_PROPERTY); |
2277 |
rewriteRequiredNode(node, INTERNAL_ARRAY_COMPONENT_TYPE_PROPERTY); |
| 2255 |
} else { |
2278 |
} else { |
| 2256 |
int pos = rewriteRequiredNode(node, ArrayType.ELEMENT_TYPE_PROPERTY); |
2279 |
int pos = rewriteRequiredNode(node, ArrayType.ELEMENT_TYPE_PROPERTY); |
| 2257 |
rewriteNodeList(node, ArrayType.DIMENSIONS_PROPERTY, pos, Util.EMPTY_STRING, " "); //$NON-NLS-1$ |
2280 |
rewriteNodeList(node, ArrayType.DIMENSIONS_PROPERTY, pos, Util.EMPTY_STRING, ""); //$NON-NLS-1$ |
| 2258 |
} |
2281 |
} |
| 2259 |
return false; |
2282 |
return false; |
| 2260 |
} |
2283 |
} |