001    package org.kuali.common.jdbc.suppliers;
002    
003    import org.apache.commons.lang3.StringUtils;
004    import org.kuali.common.util.Assert;
005    
006    public class SqlSupplierFactory implements LocationSupplierFactory {
007    
008            public static final String DEFAULT_EXTENSION = "sql";
009    
010            public SqlSupplierFactory(SqlLocationContext context) {
011                    this(DEFAULT_EXTENSION, context);
012            }
013    
014            public SqlSupplierFactory(String extension, SqlLocationContext context) {
015                    Assert.noBlanks(extension);
016                    Assert.noNulls(context);
017                    this.extension = extension;
018                    this.context = context;
019                    this.suffix = "." + extension;
020            }
021    
022            private final SqlLocationContext context;
023            private final String extension;
024            private final String suffix;
025    
026            @Override
027            public SqlSupplier getSupplier(String location) {
028                    Assert.noBlanks(location);
029                    Assert.isTrue(isMatch(location));
030                    return new SqlLocationSupplier(location, context);
031            }
032    
033            @Override
034            public boolean isMatch(String location) {
035                    return StringUtils.endsWith(location, suffix);
036            }
037    
038            public String getExtension() {
039                    return extension;
040            }
041    
042            public SqlLocationContext getContext() {
043                    return context;
044            }
045    
046    }