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 }