package net.bitpot.railways.parser.route;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
import java.util.List;
/**
* Simple route action parser.
*
* @author Basil Gren
* on 21.02.14.
*/
public class RouteActionParser extends TextChunkHighlighter {
private static RouteActionParser instance = null;
public static RouteActionParser getInstance() {
if (instance == null)
instance = new RouteActionParser();
return instance;
}
@NotNull
public List<TextChunk> parse(String subject) {
List<TextChunk> chunks = new ArrayList<TextChunk>();
if (subject.trim().equals(""))
return chunks;
String[] parts = subject.split("#", 2);
if (parts.length > 1) {
chunks.add(new RouteActionChunk(parts[0] + "#",
RouteActionChunk.CONTAINER, 0));
chunks.add(new RouteActionChunk(parts[1],
RouteActionChunk.ACTION, parts[0].length() + 1));
} else
chunks.add(new RouteActionChunk(subject,
RouteActionChunk.CONTAINER, 0));
return chunks;
}
@NotNull
@Override
protected TextChunk createChunk(@NotNull String text, int chunkType, int offsetAbs) {
return new RouteActionChunk(text, chunkType, offsetAbs);
}
}