mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-22 23:20:57 +07:00
73 lines
1.3 KiB
Java
73 lines
1.3 KiB
Java
import java.util.HashSet;
|
|
import java.util.Set;
|
|
import java.util.stream.Collectors;
|
|
|
|
class Test
|
|
{
|
|
public static class WrapperBase<T, E>
|
|
{
|
|
public T unwrap(E edge)
|
|
{
|
|
//noinspection unchecked
|
|
return (T)((DefaultEdge)edge).getSource();
|
|
}
|
|
}
|
|
|
|
public static class Wrapper<T, E> extends WrapperBase<T, E>
|
|
{
|
|
}
|
|
|
|
public static class DefaultEdge
|
|
{
|
|
private final TaskId taskId;
|
|
|
|
public DefaultEdge(TaskId taskId)
|
|
{
|
|
this.taskId = taskId;
|
|
}
|
|
|
|
public Object getSource()
|
|
{
|
|
return taskId;
|
|
}
|
|
}
|
|
|
|
public static class TaskId
|
|
{
|
|
private final String id;
|
|
|
|
public TaskId(String id)
|
|
{
|
|
this.id = id;
|
|
}
|
|
|
|
public String getId()
|
|
{
|
|
return id;
|
|
}
|
|
|
|
@Override
|
|
public String toString()
|
|
{
|
|
return getId();
|
|
}
|
|
}
|
|
|
|
public static void main(String[] args)
|
|
{
|
|
Wrapper<TaskId, DefaultEdge> w = new Wrapper<>();
|
|
Set<DefaultEdge> s = new HashSet<>();
|
|
s.add(new DefaultEdge(new TaskId("1")));
|
|
s.add(new DefaultEdge(new TaskId("2")));
|
|
s.add(new DefaultEdge(new TaskId("3")));
|
|
|
|
Set<TaskId> processed = s
|
|
.stream()
|
|
.map(w::unwrap)
|
|
.filter(edge -> !edge.getId().equals(""))
|
|
.collect(Collectors.toSet());
|
|
|
|
System.out.println(processed);
|
|
}
|
|
}
|