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 }