001 package com.thaiopensource.relaxng.impl; 002 003 class RecoverAfterFunction extends AbstractPatternFunction { 004 private final ValidatorPatternBuilder builder; 005 006 RecoverAfterFunction(ValidatorPatternBuilder builder) { 007 this.builder = builder; 008 } 009 010 public Object caseOther(Pattern p) { 011 throw new RuntimeException("recover after botch"); 012 } 013 014 public Object caseChoice(ChoicePattern p) { 015 return builder.makeChoice(p.getOperand1().applyForPattern(this), 016 p.getOperand2().applyForPattern(this)); 017 } 018 019 public Object caseAfter(AfterPattern p) { 020 return p.getOperand2(); 021 } 022 }