001    package com.thaiopensource.relaxng.impl;
002    
003    class TextPattern extends Pattern {
004      TextPattern() {
005        super(true, MIXED_CONTENT_TYPE, TEXT_HASH_CODE);
006      }
007    
008      boolean samePattern(Pattern other) {
009        return other instanceof TextPattern;
010      }
011    
012      void accept(PatternVisitor visitor) {
013        visitor.visitText();
014      }
015    
016      Object apply(PatternFunction f) {
017        return f.caseText(this);
018      }
019    
020      void checkRestrictions(int context, DuplicateAttributeDetector dad, Alphabet alpha)
021        throws RestrictionViolationException {
022        switch (context) {
023        case DATA_EXCEPT_CONTEXT:
024          throw new RestrictionViolationException("data_except_contains_text");
025        case START_CONTEXT:
026          throw new RestrictionViolationException("start_contains_text");
027        case LIST_CONTEXT:
028          throw new RestrictionViolationException("list_contains_text");
029        }
030      }
031    
032    }