package com.sleazyweasel.applescriptifier; import java.util.LinkedList; public class LineBuffer { private final int size; private final LinkedList<Character> data; public LineBuffer(int size) { this.size = size; data = new LinkedList<Character>(); } public synchronized void add(Character character) { if (data.size() == size) { data.remove(); } data.add(character); } public synchronized String getContents() { StringBuilder stringBuilder = new StringBuilder(data.size()); for (Character character : data) { stringBuilder.append(character); } return stringBuilder.toString(); } public synchronized boolean lastCharacterWasNewLine() { if (data.isEmpty()) { return false; } Character lastCharacter = data.get(data.size() - 1); return lastCharacter == 13 || lastCharacter == 10; } }