package org.openntf.domino.graph2.impl; import java.util.Collection; import javolution.lang.Immutable; import javolution.util.FastTable; import javolution.util.internal.table.AtomicTableImpl; import javolution.util.internal.table.UnmodifiableTableImpl; import javolution.util.service.TableService; public class DVertexList extends FastTable<DVertex> { private static final long serialVersionUID = 1L; protected final DVertex sourceVertex_; public DVertexList(final DVertex source) { sourceVertex_ = source; } public DVertexList(final DVertex source, final TableService<DVertex> service) { super(service); sourceVertex_ = source; } @Override public DVertexList atomic() { return new DVertexList(sourceVertex_, new AtomicTableImpl<DVertex>(service())); } @Override public DVertexList unmodifiable() { return new DVertexList(sourceVertex_, new UnmodifiableTableImpl<DVertex>(service())); } @Override public <T extends Collection<DVertex>> Immutable<T> immutable() { return super.immutable(); } public DVertexList applyFilter(final String key, final Object value) { DVertexList result = new DVertexList(sourceVertex_); if (this.size() > 0) { for (DVertex vertex : this) { if (value.equals(vertex.getProperty(key))) { result.add(vertex); } } } return result; } }