001 package com.thaiopensource.relaxng.impl; 002 003 import org.xml.sax.SAXException; 004 005 abstract class BinaryPattern extends Pattern { 006 final Pattern p1; 007 final Pattern p2; 008 009 BinaryPattern(boolean nullable, int hc, Pattern p1, Pattern p2) { 010 super(nullable, Math.max(p1.getContentType(), p2.getContentType()), hc); 011 this.p1 = p1; 012 this.p2 = p2; 013 } 014 015 void checkRecursion(int depth) throws SAXException { 016 p1.checkRecursion(depth); 017 p2.checkRecursion(depth); 018 } 019 020 void checkRestrictions(int context, DuplicateAttributeDetector dad, Alphabet alpha) 021 throws RestrictionViolationException { 022 p1.checkRestrictions(context, dad, alpha); 023 p2.checkRestrictions(context, dad, alpha); 024 } 025 026 boolean samePattern(Pattern other) { 027 if (getClass() != other.getClass()) 028 return false; 029 BinaryPattern b = (BinaryPattern)other; 030 return p1 == b.p1 && p2 == b.p2; 031 } 032 033 Pattern getOperand1() { 034 return p1; 035 } 036 037 Pattern getOperand2() { 038 return p2; 039 } 040 }