001 package com.thaiopensource.datatype.xsd; 002 003 import org.relaxng.datatype.ValidationContext; 004 005 abstract class ValueRestrictDatatype extends RestrictDatatype { 006 ValueRestrictDatatype(DatatypeBase base) { 007 super(base); 008 } 009 010 boolean allowsValue(String str, ValidationContext vc) { 011 return getValue(str, vc) != null; 012 } 013 014 Object getValue(String str, ValidationContext vc) { 015 Object obj = base.getValue(str, vc); 016 if (obj == null || !satisfiesRestriction(obj)) 017 return null; 018 return obj; 019 } 020 021 abstract boolean satisfiesRestriction(Object value); 022 }