package gsingh.learnkirtan.shabad; import gsingh.learnkirtan.note.Note; import gsingh.learnkirtan.note.Note.Length; import java.io.Serializable; import java.util.Iterator; import java.util.LinkedList; import java.util.Map; public class ShabadNotes implements Iterable<Note>, Serializable { private static final long serialVersionUID = 906123591409453595L; private LinkedList<Note> notes = new LinkedList<Note>(); private Map<String, Integer> labelPos; public void addLongNote() { Note note = notes.get(notes.size() - 1); note.setLength(Length.LONG); } public void addNote(Note note) { notes.add(note); } public Note get(int index) { return notes.get(index); } // TODO Return a ShabadNotes object public LinkedList<Note> getNotes(String start, String end) { return notes; } public int size() { return notes.size(); } public void addLabel(String label, int pos) { labelPos.put(label, pos); } @Override public Iterator<Note> iterator() { return new Iterator<Note>() { private int index = 0; @Override public boolean hasNext() { if (index < notes.size()) { return true; } else { return false; } } @Override public Note next() { return notes.get(index++); } @Override public void remove() { // Not implemented } }; } public boolean empty() { return size() == 0; } }