package org.nodeclipse.ui.contentassist;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.TreeSet;
/** Read-only model of Node.js Context
*
* DONE sorted results (idea: sort when populating)
*
* @author pverest
*/
public class Model implements IRepo {
List<Module> modules = new ArrayList<Module>();
//List<Entry> entries = new ArrayList<Entry>();
TreeSet<Entry> entries = new TreeSet<Entry>();
public Model(){
//entries
}
@Override
public void addModule(Module module) {
modules.add(module);
}
@Override
public void addEntry(Entry entry) {
entries.add(entry);
}
@Override
public List<Entry> findMatchingEntries(String input) {
List<Entry> matches = new LinkedList<Entry>();
if ( ( input == null) || ("".equals(input)) ){
return matches;
}
for(Entry entry: entries){
if (entry.trigger.startsWith(input)){
matches.add(entry);
}
}
return matches;
}
public void processWith(EntryProcessor proc){
for(Entry entry: entries){
proc.process(entry);
}
}
}