/* * Copyright 2015 Nokia Solutions and Networks * Licensed under the Apache License, Version 2.0, * see license.txt file for details. */ package org.rf.ide.core.testdata.text.read.separators; import java.util.regex.Matcher; import java.util.regex.Pattern; import org.rf.ide.core.testdata.text.read.separators.Separator.SeparatorType; public class WhitespaceSeparator extends ALineSeparator { private static final SeparatorType TYPE = SeparatorType.TABULATOR_OR_DOUBLE_SPACE; public static final Pattern WHITESPACE_SEPARATOR = Pattern .compile("([ ]?\\t|[ ]{2,})+"); private final Matcher matcher; public WhitespaceSeparator(final int lineNumber, final String line) { super(lineNumber, line); this.matcher = WHITESPACE_SEPARATOR.matcher(line); } @Override protected Separator nextSeparator() { final int start = matcher.start(); final int end = matcher.end(); final Separator s = new Separator(); s.setType(SeparatorType.TABULATOR_OR_DOUBLE_SPACE); s.setStartColumn(start); s.setText(line.substring(start, end)); s.setRaw(s.getText()); s.setLineNumber(getLineNumber()); return s; } @Override protected boolean hasNextSeparator() { return matcher.find(); } @Override public SeparatorType getProducedType() { return TYPE; } }