// IMonolingualClusteringAlgorithm implementation below. This is safe because
// processing components are not thread-safe by definition and
// IMonolingualClusteringAlgorithm forbids concurrent execution by contract.
final List<Document> originalDocuments = documents;
clusters = multilingualClustering.process(documents,
new IMonolingualClusteringAlgorithm()
{
public List<Cluster> process(List<Document> documents, LanguageCode language)
{
BisectingKMeansClusteringAlgorithm.this.documents = documents;
BisectingKMeansClusteringAlgorithm.this.cluster(language);