001 package com.thaiopensource.relaxng.impl; 002 003 class Alphabet { 004 private NameClass nameClass; 005 006 boolean isEmpty() { 007 return nameClass == null; 008 } 009 010 void addElement(NameClass nc) { 011 if (nameClass == null) 012 nameClass = nc; 013 else if (nc != null) 014 nameClass = new ChoiceNameClass(nameClass, nc); 015 } 016 017 void addAlphabet(Alphabet a) { 018 addElement(a.nameClass); 019 } 020 021 void checkOverlap(Alphabet a) throws RestrictionViolationException { 022 if (nameClass != null 023 && a.nameClass != null 024 && OverlapDetector.overlap(nameClass, a.nameClass)) 025 throw new RestrictionViolationException("interleave_element_overlap"); 026 } 027 }