in batik-parser/src/main/java/org/apache/batik/parser/FragmentIdentifierParser.java [258:758]
protected void parseViewAttributes() throws ParseException, IOException {
boolean first = true;
loop: for (;;) {
switch (current) {
case -1:
case ')':
if (first) {
reportUnexpectedCharacterError( current );
break loop;
}
// fallthrough
default:
break loop;
case ';':
if (first) {
reportUnexpectedCharacterError( current );
break loop;
}
current = reader.read();
break;
case 'v':
first = false;
current = reader.read();
if (current != 'i') {
reportCharacterExpectedError( 'i', current );
break loop;
}
current = reader.read();
if (current != 'e') {
reportCharacterExpectedError( 'e', current );
break loop;
}
current = reader.read();
if (current != 'w') {
reportCharacterExpectedError( 'w', current );
break loop;
}
current = reader.read();
switch (current) {
case 'B':
current = reader.read();
if (current != 'o') {
reportCharacterExpectedError( 'o', current );
break loop;
}
current = reader.read();
if (current != 'x') {
reportCharacterExpectedError( 'x', current );
break loop;
}
current = reader.read();
if (current != '(') {
reportCharacterExpectedError( '(', current );
break loop;
}
current = reader.read();
float x = parseFloat();
if (current != ',') {
reportCharacterExpectedError( ',', current );
break loop;
}
current = reader.read();
float y = parseFloat();
if (current != ',') {
reportCharacterExpectedError( ',', current );
break loop;
}
current = reader.read();
float w = parseFloat();
if (current != ',') {
reportCharacterExpectedError( ',', current );
break loop;
}
current = reader.read();
float h = parseFloat();
if (current != ')') {
reportCharacterExpectedError( ')', current );
break loop;
}
current = reader.read();
fragmentIdentifierHandler.viewBox(x, y, w, h);
if (current != ')' && current != ';') {
reportCharacterExpectedError( ')', current );
break loop;
}
break;
case 'T':
current = reader.read();
if (current != 'a') {
reportCharacterExpectedError( 'a', current );
break loop;
}
current = reader.read();
if (current != 'r') {
reportCharacterExpectedError( 'r', current );
break loop;
}
current = reader.read();
if (current != 'g') {
reportCharacterExpectedError( 'g', current );
break loop;
}
current = reader.read();
if (current != 'e') {
reportCharacterExpectedError( 'e', current );
break loop;
}
current = reader.read();
if (current != 't') {
reportCharacterExpectedError( 't', current );
break loop;
}
current = reader.read();
if (current != '(') {
reportCharacterExpectedError( '(', current );
break loop;
}
current = reader.read();
fragmentIdentifierHandler.startViewTarget();
id: for (;;) {
bufferSize = 0;
if (current == -1 ||
!XMLUtilities.isXMLNameFirstCharacter((char)current)) {
reportUnexpectedCharacterError( current );
break loop;
}
bufferize();
current = reader.read();
parseIdentifier();
String s = getBufferContent();
fragmentIdentifierHandler.viewTarget(s);
bufferSize = 0;
switch (current) {
case ')':
current = reader.read();
break id;
case ',':
case ';':
current = reader.read();
break;
default:
reportUnexpectedCharacterError( current );
break loop;
}
}
fragmentIdentifierHandler.endViewTarget();
break;
default:
reportUnexpectedCharacterError( current );
break loop;
}
break;
case 'p':
first = false;
current = reader.read();
if (current != 'r') {
reportCharacterExpectedError( 'r', current );
break loop;
}
current = reader.read();
if (current != 'e') {
reportCharacterExpectedError( 'e', current );
break loop;
}
current = reader.read();
if (current != 's') {
reportCharacterExpectedError( 's', current );
break loop;
}
current = reader.read();
if (current != 'e') {
reportCharacterExpectedError( 'e', current );
break loop;
}
current = reader.read();
if (current != 'r') {
reportCharacterExpectedError( 'r', current );
break loop;
}
current = reader.read();
if (current != 'v') {
reportCharacterExpectedError( 'v', current );
break loop;
}
current = reader.read();
if (current != 'e') {
reportCharacterExpectedError( 'e', current );
break loop;
}
current = reader.read();
if (current != 'A') {
reportCharacterExpectedError( 'A', current );
break loop;
}
current = reader.read();
if (current != 's') {
reportCharacterExpectedError( 's', current );
break loop;
}
current = reader.read();
if (current != 'p') {
reportCharacterExpectedError( 'p', current );
break loop;
}
current = reader.read();
if (current != 'e') {
reportCharacterExpectedError( 'e', current );
break loop;
}
current = reader.read();
if (current != 'c') {
reportCharacterExpectedError( 'c', current );
break loop;
}
current = reader.read();
if (current != 't') {
reportCharacterExpectedError( 't', current );
break loop;
}
current = reader.read();
if (current != 'R') {
reportCharacterExpectedError( 'R', current );
break loop;
}
current = reader.read();
if (current != 'a') {
reportCharacterExpectedError( 'a', current );
break loop;
}
current = reader.read();
if (current != 't') {
reportCharacterExpectedError( 't', current );
break loop;
}
current = reader.read();
if (current != 'i') {
reportCharacterExpectedError( 'i', current );
break loop;
}
current = reader.read();
if (current != 'o') {
reportCharacterExpectedError( 'o', current );
break loop;
}
current = reader.read();
if (current != '(') {
reportCharacterExpectedError( '(', current );
break loop;
}
current = reader.read();
parsePreserveAspectRatio();
if (current != ')') {
reportCharacterExpectedError( ')', current );
break loop;
}
current = reader.read();
break;
case 't':
first = false;
current = reader.read();
if (current != 'r') {
reportCharacterExpectedError( 'r', current );
break loop;
}
current = reader.read();
if (current != 'a') {
reportCharacterExpectedError( 'a', current );
break loop;
}
current = reader.read();
if (current != 'n') {
reportCharacterExpectedError( 'n', current );
break loop;
}
current = reader.read();
if (current != 's') {
reportCharacterExpectedError( 's', current );
break loop;
}
current = reader.read();
if (current != 'f') {
reportCharacterExpectedError( 'f', current );
break loop;
}
current = reader.read();
if (current != 'o') {
reportCharacterExpectedError( 'o', current );
break loop;
}
current = reader.read();
if (current != 'r') {
reportCharacterExpectedError( 'r', current );
break loop;
}
current = reader.read();
if (current != 'm') {
reportCharacterExpectedError( 'm', current );
break loop;
}
current = reader.read();
if (current != '(') {
reportCharacterExpectedError( '(', current );
break loop;
}
fragmentIdentifierHandler.startTransformList();
tloop: for (;;) {
try {
current = reader.read();
switch (current) {
case ',':
break;
case 'm':
parseMatrix();
break;
case 'r':
parseRotate();
break;
case 't':
parseTranslate();
break;
case 's':
current = reader.read();
switch (current) {
case 'c':
parseScale();
break;
case 'k':
parseSkew();
break;
default:
reportUnexpectedCharacterError( current );
skipTransform();
}
break;
default:
break tloop;
}
} catch (ParseException e) {
errorHandler.error(e);
skipTransform();
}
}
fragmentIdentifierHandler.endTransformList();
break;
case 'z':
first = false;
current = reader.read();
if (current != 'o') {
reportCharacterExpectedError( 'o', current );
break loop;
}
current = reader.read();
if (current != 'o') {
reportCharacterExpectedError( 'o', current );
break loop;
}
current = reader.read();
if (current != 'm') {
reportCharacterExpectedError( 'm', current );
break loop;
}
current = reader.read();
if (current != 'A') {
reportCharacterExpectedError( 'A', current );
break loop;
}
current = reader.read();
if (current != 'n') {
reportCharacterExpectedError( 'n', current );
break loop;
}
current = reader.read();
if (current != 'd') {
reportCharacterExpectedError( 'd', current );
break loop;
}
current = reader.read();
if (current != 'P') {
reportCharacterExpectedError( 'P', current );
break loop;
}
current = reader.read();
if (current != 'a') {
reportCharacterExpectedError( 'a', current );
break loop;
}
current = reader.read();
if (current != 'n') {
reportCharacterExpectedError( 'n', current );
break loop;
}
current = reader.read();
if (current != '(') {
reportCharacterExpectedError( '(', current );
break loop;
}
current = reader.read();
switch (current) {
case 'm':
current = reader.read();
if (current != 'a') {
reportCharacterExpectedError( 'a', current );
break loop;
}
current = reader.read();
if (current != 'g') {
reportCharacterExpectedError( 'g', current );
break loop;
}
current = reader.read();
if (current != 'n') {
reportCharacterExpectedError( 'n', current );
break loop;
}
current = reader.read();
if (current != 'i') {
reportCharacterExpectedError( 'i', current );
break loop;
}
current = reader.read();
if (current != 'f') {
reportCharacterExpectedError( 'f', current );
break loop;
}
current = reader.read();
if (current != 'y') {
reportCharacterExpectedError( 'y', current );
break loop;
}
current = reader.read();
fragmentIdentifierHandler.zoomAndPan(true);
break;
case 'd':
current = reader.read();
if (current != 'i') {
reportCharacterExpectedError( 'i', current );
break loop;
}
current = reader.read();
if (current != 's') {
reportCharacterExpectedError( 's', current );
break loop;
}
current = reader.read();
if (current != 'a') {
reportCharacterExpectedError( 'a', current );
break loop;
}
current = reader.read();
if (current != 'b') {
reportCharacterExpectedError( 'b', current );
break loop;
}
current = reader.read();
if (current != 'l') {
reportCharacterExpectedError( 'l', current );
break loop;
}
current = reader.read();
if (current != 'e') {
reportCharacterExpectedError( 'e', current );
break loop;
}
current = reader.read();
fragmentIdentifierHandler.zoomAndPan(false);
break;
default:
reportUnexpectedCharacterError( current );
break loop;
}
if (current != ')') {
reportCharacterExpectedError( ')', current );
break loop;
}
current = reader.read();
}
}
}