Skip to content

Commit

Permalink
remove duplicate nested
Browse files Browse the repository at this point in the history
  • Loading branch information
bsorrentino committed Mar 4, 2018
1 parent 3be6be0 commit a9dbd14
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 10 deletions.
18 changes: 9 additions & 9 deletions processor/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21,19 +21,19 @@
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>edu.washington.cs.types.jsr308</groupId>
<artifactId>jsr308-compiler</artifactId>
</dependency>
<dependency>
<groupId>org.kohsuke.metainf-services</groupId>
<artifactId>metainf-services</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.json</artifactId>
</dependency>

<dependency>
<groupId>edu.washington.cs.types.jsr308</groupId>
<artifactId>jsr308-compiler</artifactId>
</dependency>
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.json</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
</project>
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,11 @@
import java.nio.file.Paths;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.RandomAccess;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.function.BiConsumer;
import java.util.function.BiFunction;
import java.util.function.BiPredicate;
Expand Down Expand Up @@ -355,6 +357,11 @@ private Set<Method> getMethods( final TSType type) {

}

public static <T> Predicate<T> distinctByKey(Function<? super T,Object> keyExtractor) {
Map<Object,Boolean> seen = new ConcurrentHashMap<>();
return t -> seen.putIfAbsent(keyExtractor.apply(t), Boolean.TRUE) == null;
}

/**
*
* @param sb
Expand All @@ -372,7 +379,8 @@ private void processNestedClasses( StringBuilder sb, TSType tstype, java.util.Ma
.append(" {\n\n")
;

Arrays.stream(nestedClasses)
Stream.of(nestedClasses)
.filter( distinctByKey( c -> c.getSimpleName() ) )
.map( cl -> TSType.from(cl) )
.map( t -> processClass(t, declaredTypeMap) )
.forEach( decl -> sb.append(decl) );
Expand Down

0 comments on commit a9dbd14

Please sign in to comment.