001 package com.thaiopensource.validate.rng; 002 003 import com.thaiopensource.util.PropertyId; 004 import com.thaiopensource.util.PropertyMap; 005 import com.thaiopensource.util.PropertyMapBuilder; 006 import com.thaiopensource.validate.FlagPropertyId; 007 import com.thaiopensource.validate.Option; 008 import com.thaiopensource.validate.FlagOption; 009 import com.thaiopensource.validate.SchemaReader; 010 import org.relaxng.datatype.DatatypeLibraryFactory; 011 012 public class RngProperty { 013 014 private RngProperty() { } 015 016 public static class DatatypeLibraryFactoryPropertyId extends PropertyId { 017 public DatatypeLibraryFactoryPropertyId(String name) { 018 super(name, DatatypeLibraryFactory.class); 019 } 020 021 public DatatypeLibraryFactory get(PropertyMap properties) { 022 return (DatatypeLibraryFactory)properties.get(this); 023 } 024 025 public DatatypeLibraryFactory put(PropertyMapBuilder builder, DatatypeLibraryFactory value) { 026 return (DatatypeLibraryFactory)builder.put(this, value); 027 } 028 } 029 030 public static final DatatypeLibraryFactoryPropertyId DATATYPE_LIBRARY_FACTORY 031 = new DatatypeLibraryFactoryPropertyId("DATATYPE_LIBRARY_FACTORY"); 032 public static final FlagPropertyId CHECK_ID_IDREF = new FlagPropertyId("CHECK_ID_IDREF"); 033 public static final FlagPropertyId FEASIBLE = new FlagPropertyId("FEASIBLE"); 034 035 public static Option getOption(String uri) { 036 if (!uri.startsWith(SchemaReader.BASE_URI)) 037 return null; 038 uri = uri.substring(SchemaReader.BASE_URI.length()); 039 if (uri.equals("feasible")) 040 return new FlagOption(FEASIBLE); 041 if (uri.equals("check-id-idref")) 042 return new FlagOption(CHECK_ID_IDREF); 043 return null; 044 } 045 }