001    /**
002     * 
003     */
004    package org.wdssii.core;
005    
006    import org.apache.commons.logging.Log;
007    import org.apache.commons.logging.LogFactory;
008    
009    /**
010     * @author lakshman
011     * 
012     */
013    public abstract class BuilderFactory {
014            private static Log log = LogFactory.getLog(BuilderFactory.class);
015    
016            /** name to Builder */
017            private static PrototypeFactory<Builder> factory = new PrototypeFactory<Builder>(
018                            "java/Builder");
019    
020            public static DataType createDataType(IndexRecord rec)
021                            throws DataUnavailableException {
022                    String builderName = rec.getParams()[0];
023                    Builder builder = factory.getPrototypeMaster(builderName);
024                    if (builder == null) {
025                            log.error("ERROR: no such builder: " + builderName);
026                            return null;
027                    }
028                    return builder.createObject(rec);
029            }
030    }