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 }