/**
* Copyright (c) 2013-2016 Angelo ZERR.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Angelo Zerr <angelo.zerr@gmail.com> - initial API and implementation
*/
package tern.server.protocol.html;
public class Region {
private final char[] pattern;
private final RegionType type;
private final String spaces;
Region(String pattern, RegionType type) {
this.pattern = pattern.toCharArray();
this.type = type;
this.spaces = createSpaces();
}
private String createSpaces() {
StringBuilder spaces = new StringBuilder();
int length = getLength();
for (int i = 0; i < length; i++) {
spaces.append(' ');
}
return spaces.toString();
}
public MatchResult match(char c, int index) {
if (index < pattern.length) {
if (c == pattern[index]) {
return index == pattern.length - 1 ? MatchResult.MATCHED
: MatchResult.MATCHING;
}
}
return MatchResult.NO_MATCHING;
}
public RegionType getType() {
return type;
}
public int getLength() {
return pattern.length - 1;
}
public String getSpaces() {
return spaces;
}
}