mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-29 19:45:01 +02:00
Code streamlining.
This commit is contained in:
parent
9b8d4451dd
commit
3e5942e142
1 changed files with 11 additions and 24 deletions
|
@ -48,10 +48,6 @@ import org.eclipse.cdt.internal.ui.refactoring.utils.VisibilityEnum;
|
||||||
* @author Mirko Stocker
|
* @author Mirko Stocker
|
||||||
*/
|
*/
|
||||||
public class ClassMemberInserter {
|
public class ClassMemberInserter {
|
||||||
private final ICPPASTCompositeTypeSpecifier classNode;
|
|
||||||
private final VisibilityEnum visibility;
|
|
||||||
private final List<IASTNode> nodesToAdd;
|
|
||||||
private final ModificationCollector collector;
|
|
||||||
|
|
||||||
public static void createChange(ICPPASTCompositeTypeSpecifier classNode,
|
public static void createChange(ICPPASTCompositeTypeSpecifier classNode,
|
||||||
VisibilityEnum visibility, IASTNode nodeToAdd, boolean isField,
|
VisibilityEnum visibility, IASTNode nodeToAdd, boolean isField,
|
||||||
|
@ -62,25 +58,12 @@ public class ClassMemberInserter {
|
||||||
public static void createChange(ICPPASTCompositeTypeSpecifier classNode,
|
public static void createChange(ICPPASTCompositeTypeSpecifier classNode,
|
||||||
VisibilityEnum visibility, List<IASTNode> nodesToAdd, boolean isField,
|
VisibilityEnum visibility, List<IASTNode> nodesToAdd, boolean isField,
|
||||||
ModificationCollector collector) {
|
ModificationCollector collector) {
|
||||||
new ClassMemberInserter(classNode, visibility, nodesToAdd, collector, isField);
|
nodesToAdd = new ArrayList<IASTNode>(nodesToAdd);
|
||||||
}
|
|
||||||
|
|
||||||
private ClassMemberInserter(ICPPASTCompositeTypeSpecifier classNode,
|
|
||||||
VisibilityEnum visibility, List<IASTNode> nodesToAdd, ModificationCollector collector,
|
|
||||||
boolean isField) {
|
|
||||||
this.nodesToAdd = new ArrayList<IASTNode>(nodesToAdd);
|
|
||||||
this.classNode = classNode;
|
|
||||||
this.visibility = visibility;
|
|
||||||
this.collector = collector;
|
|
||||||
createRewrites(isField);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void createRewrites(boolean isField) {
|
|
||||||
VisibilityEnum defaultVisibility = classNode.getKey() == IASTCompositeTypeSpecifier.k_struct ?
|
VisibilityEnum defaultVisibility = classNode.getKey() == IASTCompositeTypeSpecifier.k_struct ?
|
||||||
VisibilityEnum.v_public : VisibilityEnum.v_private;
|
VisibilityEnum.v_public : VisibilityEnum.v_private;
|
||||||
VisibilityEnum currentVisibility = defaultVisibility;
|
VisibilityEnum currentVisibility = defaultVisibility;
|
||||||
|
|
||||||
boolean ascendingVisibilityOrder = isAscendingVisibilityOrder();
|
boolean ascendingVisibilityOrder = isAscendingVisibilityOrder(classNode);
|
||||||
int lastFunctionIndex = -1;
|
int lastFunctionIndex = -1;
|
||||||
int lastFieldIndex = -1;
|
int lastFieldIndex = -1;
|
||||||
int lastMatchingVisibilityIndex = -1;
|
int lastMatchingVisibilityIndex = -1;
|
||||||
|
@ -134,16 +117,20 @@ public class ClassMemberInserter {
|
||||||
|
|
||||||
ASTRewrite rewrite = collector.rewriterForTranslationUnit(classNode.getTranslationUnit());
|
ASTRewrite rewrite = collector.rewriterForTranslationUnit(classNode.getTranslationUnit());
|
||||||
for (IASTNode node : nodesToAdd) {
|
for (IASTNode node : nodesToAdd) {
|
||||||
rewrite.insertBefore(classNode, nextNode, node, createEditDescription());
|
rewrite.insertBefore(classNode, nextNode, node, createEditDescription(classNode));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private TextEditGroup createEditDescription() {
|
// Not instantiatable. All methods are static.
|
||||||
|
private ClassMemberInserter() {
|
||||||
|
}
|
||||||
|
|
||||||
|
private static TextEditGroup createEditDescription(ICPPASTCompositeTypeSpecifier classNode) {
|
||||||
return new TextEditGroup(NLS.bind(Messages.AddDeclarationNodeToClassChange_AddDeclaration,
|
return new TextEditGroup(NLS.bind(Messages.AddDeclarationNodeToClassChange_AddDeclaration,
|
||||||
classNode.getName()));
|
classNode.getName()));
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean isAscendingVisibilityOrder() {
|
private static boolean isAscendingVisibilityOrder(ICPPASTCompositeTypeSpecifier classNode) {
|
||||||
IPreferencesService preferences = Platform.getPreferencesService();
|
IPreferencesService preferences = Platform.getPreferencesService();
|
||||||
IASTTranslationUnit ast = classNode.getTranslationUnit();
|
IASTTranslationUnit ast = classNode.getTranslationUnit();
|
||||||
ITranslationUnit tu = ast.getOriginatingTranslationUnit();
|
ITranslationUnit tu = ast.getOriginatingTranslationUnit();
|
||||||
|
|
Loading…
Add table
Reference in a new issue