001 package com.thaiopensource.relaxng.impl;
002
003 import com.thaiopensource.xml.util.Name;
004
005 class StartTagOpenRecoverDerivFunction extends StartTagOpenDerivFunction {
006 StartTagOpenRecoverDerivFunction(Name name, ValidatorPatternBuilder builder) {
007 super(name, builder);
008 }
009
010 public Object caseGroup(GroupPattern p) {
011 Pattern tem = (Pattern)super.caseGroup(p);
012 if (p.getOperand1().isNullable())
013 return tem;
014 return getPatternBuilder().makeChoice(tem, memoApply(p.getOperand2()));
015 }
016
017 PatternMemo apply(PatternMemo memo) {
018 return memo.startTagOpenRecoverDeriv(this);
019 }
020 }