/*
* Copyright (c) 2011-2012 ICM Uniwersytet Warszawski All rights reserved.
* See LICENCE.txt file for licensing information.
*/
package eu.emi.security.authn.x509.helpers.ns;
import java.io.IOException;
/**
* Common helpers for namespace file parsers.
* @author K. Benedyczak
*/
public class ParserUtils
{
public static int checkToken(String token, char[] chars, int offset,
boolean caseSensitive) throws IOException
{
int ret = checkTokenSoft(token, chars, offset, caseSensitive);
if (ret < 0)
throw new IOException("Syntax problem, expected token '" + token + "' but got: '" +
new String(chars, offset, chars.length-offset));
return ret;
}
public static int checkTokenSoft(String token, char[] chars, int offset,
boolean caseSensitive)
{
char []tokenChars = token.toCharArray();
if (chars.length < offset + tokenChars.length)
return -1;
int i=0;
for (; i<tokenChars.length; i++)
{
char a = caseSensitive ? tokenChars[i] : Character.toLowerCase(tokenChars[i]);
char b = caseSensitive ? chars[i+offset] : Character.toLowerCase(chars[i+offset]);
if (a != b)
return -1;
}
return i;
}
public static void checkEndOfLine(char []chars, int j) throws IOException
{
if (j < chars.length)
throw new IOException("Syntax problem, garbage at the end of line: " +
new String(chars, j, chars.length-j));
}
}