001    package com.thaiopensource.validate.auto;
002    
003    import com.thaiopensource.util.PropertyMap;
004    import com.thaiopensource.util.Service;
005    import com.thaiopensource.validate.auto.SchemaReceiver;
006    import com.thaiopensource.validate.auto.SchemaReceiverFactory;
007    import com.thaiopensource.validate.Option;
008    
009    import java.util.Enumeration;
010    
011    public class SchemaReceiverLoader implements SchemaReceiverFactory {
012      private final Service service = new Service(SchemaReceiverFactory.class);
013      public SchemaReceiver createSchemaReceiver(String namespaceUri,
014                                                 PropertyMap properties) {
015        for (Enumeration en = service.getProviders(); en.hasMoreElements();) {
016          SchemaReceiverFactory srf = (SchemaReceiverFactory)en.nextElement();
017          SchemaReceiver sr = srf.createSchemaReceiver(namespaceUri, properties);
018          if (sr != null)
019            return sr;
020        }
021        return null;
022      }
023    
024      public Option getOption(String uri) {
025        for (Enumeration en = service.getProviders(); en.hasMoreElements();) {
026          SchemaReceiverFactory srf = (SchemaReceiverFactory)en.nextElement();
027          Option option = srf.getOption(uri);
028          if (option != null)
029            return option;
030        }
031        return null;
032      }
033    
034    }