ModifierKind modifierKind = extendedModifier.getKind(); if (modifierKind == ModifierKind.PUBLIC || modifierKind == ModifierKind.PRIVATE || modifierKind == ModifierKind.PROTECTED) { firstPosition.add(modifierKind.toString()); } else if (modifierKind == ModifierKind.ABSTRACT || modifierKind == ModifierKind.STATIC) { secondPosition.add(modifierKind.toString()); } else { thirdPosition.add(modifierKind.toString());
/** verifies that the explicit modifier should be present in the original source code */ public void checkModifiers() { for (CtModifiable modifiable : _rootPackage.getElements(new TypeFilter<>(CtModifiable.class))) { for (CtExtendedModifier modifier : modifiable.getExtendedModifiers()) { if (modifier.isImplicit()) { continue; } SourcePosition position = modifier.getPosition(); CompilationUnit compilationUnit = position.getCompilationUnit(); String originalSourceCode = compilationUnit.getOriginalSourceCode(); assertEquals(modifier.getKind().toString(), originalSourceCode.substring(position.getSourceStart(), position.getSourceEnd() + 1)); } } }
public DefaultJavaPrettyPrinter writeModifiers(CtModifiable m) { for (ModifierKind mod : m.getModifiers()) { write(mod.toString() + " "); } return this; }
@Override public void scanCtModifiable(CtModifiable m) { ITree modifiers = builder.createNode("Modifiers", ""); modifiers.setMetadata(SpoonGumTreeBuilder.SPOON_OBJECT, m); // ensuring an order (instead of hashset) // otherwise some flaky tests in CI Set<ModifierKind> modifiers1 = new TreeSet<>(new Comparator<ModifierKind>() { @Override public int compare(ModifierKind o1, ModifierKind o2) { return o1.name().compareTo(o2.name()); } }); modifiers1.addAll(m.getModifiers()); for (ModifierKind kind : modifiers1) { ITree modifier = builder.createNode("Modifier", kind.toString()); modifier.setMetadata(SpoonGumTreeBuilder.SPOON_OBJECT, m); modifiers.addChild(modifier); } builder.addSiblingNode(modifiers); }
@Override public void scanCtModifiable(CtModifiable m) { ITree modifiers = builder.createNode("Modifiers", ""); modifiers.setMetadata(SpoonGumTreeBuilder.SPOON_OBJECT, m); // ensuring an order (instead of hashset) // otherwise some flaky tests in CI Set<ModifierKind> modifiers1 = new TreeSet<>(new Comparator<ModifierKind>() { @Override public int compare(ModifierKind o1, ModifierKind o2) { return o1.name().compareTo(o2.name()); } }); modifiers1.addAll(m.getModifiers()); for (ModifierKind kind : modifiers1) { ITree modifier = builder.createNode("Modifier", kind.toString()); modifier.setMetadata(SpoonGumTreeBuilder.SPOON_OBJECT, m); modifiers.addChild(modifier); } builder.addSiblingNode(modifiers); }