Skip to content

Commit fc3fe55

Browse files
committed
[lst-change] Revert "Revert "Implement Cs.CompilationUnit#getWeight()""
This reverts commit 1770ea6.
1 parent 1770ea6 commit fc3fe55

File tree

1 file changed

+36
-0
lines changed
  • rewrite-csharp/src/main/java/org/openrewrite/csharp/tree

1 file changed

+36
-0
lines changed

rewrite-csharp/src/main/java/org/openrewrite/csharp/tree/Cs.java

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@
2323
import org.openrewrite.csharp.CSharpPrinter;
2424
import org.openrewrite.csharp.CSharpVisitor;
2525
import org.openrewrite.java.JavaPrinter;
26+
import org.openrewrite.java.JavaTypeVisitor;
27+
import org.openrewrite.java.JavaVisitor;
28+
import org.openrewrite.java.JavadocVisitor;
2629
import org.openrewrite.java.internal.TypesInUse;
2730
import org.openrewrite.java.tree.*;
2831
import org.openrewrite.marker.Markers;
@@ -37,6 +40,8 @@
3740
import java.util.Collections;
3841
import java.util.List;
3942
import java.util.UUID;
43+
import java.util.concurrent.atomic.AtomicInteger;
44+
import java.util.function.Predicate;
4045
import java.util.stream.Collectors;
4146

4247
import static java.util.Collections.singletonList;
@@ -216,6 +221,37 @@ public TypesInUse getTypesInUse() {
216221
return cache;
217222
}
218223

224+
@Transient
225+
@Override
226+
public long getWeight(Predicate<Object> uniqueIdentity) {
227+
AtomicInteger n = new AtomicInteger();
228+
new CSharpVisitor<AtomicInteger>() {
229+
final JavaTypeVisitor<AtomicInteger> typeVisitor = new JavaTypeVisitor<AtomicInteger>() {
230+
@Override
231+
public JavaType visit(@Nullable JavaType javaType, AtomicInteger n) {
232+
if (javaType != null && uniqueIdentity.test(javaType)) {
233+
n.incrementAndGet();
234+
return super.visit(javaType, n);
235+
}
236+
//noinspection ConstantConditions
237+
return javaType;
238+
}
239+
};
240+
241+
@Override
242+
public J preVisit(J tree, AtomicInteger n) {
243+
n.incrementAndGet();
244+
return tree;
245+
}
246+
247+
@Override
248+
public JavaType visitType(@Nullable JavaType javaType, AtomicInteger n) {
249+
return typeVisitor.visit(javaType, n);
250+
}
251+
}.visit(this, n);
252+
return n.get();
253+
}
254+
219255
@Override
220256
public Padding getPadding() {
221257
Padding p;

0 commit comments

Comments
 (0)