PropertyListState(final char listStart, char propSeparator, final PropertyState propState, final char... listEnd) {
super(ID);
for(int i = 0; i < listEnd.length; ++i) {
putHandler(listEnd[i], GlobalCharacterHandlers.LEAVE_STATE_HANDLER);
}
setEnterHandler(new CharacterHandler(){
@Override
public void handle(ParsingContext ctx) throws CommandFormatException {
if(ctx.getCharacter() != listStart) {
ctx.enterState(propState);
}
}});
setDefaultHandler(new LineBreakHandler(false, false){
@Override
protected void doHandle(ParsingContext ctx) throws CommandFormatException {
ctx.enterState(propState);
}
});
putHandler(propSeparator, GlobalCharacterHandlers.NOOP_CHARACTER_HANDLER);
setReturnHandler(new CharacterHandler(){
@Override
public void handle(ParsingContext ctx) throws CommandFormatException {
if(ctx.isEndOfContent()) {
return;
}