package com.thaiopensource.datatype.xsd;
import com.thaiopensource.util.Utf16;
import org.relaxng.datatype.DatatypeException;
import org.relaxng.datatype.ValidationContext;
class TokenDatatype extends DatatypeBase implements Measure {
TokenDatatype() { }
TokenDatatype(int whiteSpace) {
super(whiteSpace);
}
public boolean lexicallyAllows(String str) {
return true;
}
String getLexicalSpaceKey() {
return "string";
}
public boolean alwaysValid() {
return true;
}
Object getValue(String str, ValidationContext vc) throws DatatypeException {
return str;
}
Measure getMeasure() {
return this;
}
public int getLength(Object obj) {
String str = (String)obj;
int len = str.length();
int nSurrogatePairs = 0;
for (int i = 0; i < len; i++)
if (Utf16.isSurrogate1(str.charAt(i)))
nSurrogatePairs++;
return len - nSurrogatePairs;
}
}