001    package org.kuali.common.jdbc.vendor.service;
002    
003    import java.util.ArrayList;
004    import java.util.Collections;
005    import java.util.List;
006    import java.util.Properties;
007    
008    import org.kuali.common.jdbc.sql.model.AdminSql;
009    import org.kuali.common.jdbc.vendor.model.VendorDefault;
010    import org.kuali.common.jdbc.vendor.model.keys.Admin;
011    import org.kuali.common.jdbc.vendor.model.keys.Liquibase;
012    import org.kuali.common.jdbc.vendor.model.keys.Oracle;
013    import org.kuali.common.util.Assert;
014    import org.kuali.common.util.spring.env.EnvironmentService;
015    import org.kuali.common.util.spring.env.model.EnvironmentKeySuffix;
016    
017    public class OracleDatabaseVendorService extends DefaultDatabaseVendorService {
018    
019            public OracleDatabaseVendorService(EnvironmentService env, VendorDefault vendor) {
020                    super(env, vendor);
021            }
022    
023            @Override
024            protected String getDbaAfter(String key, AdminSql adminSql, Properties sql) {
025                    String defaultValueKey = getVendorDefault().getCode() + "." + Oracle.SCHEMA_STATS.getValue();
026                    String defaultValue = sql.getProperty(defaultValueKey);
027                    Assert.noBlanks(defaultValue);
028                    return getEnv().getString(key, defaultValue);
029            }
030    
031            @Override
032            protected List<EnvironmentKeySuffix> getSqlKeySuffixes() {
033                    List<EnvironmentKeySuffix> keys = new ArrayList<EnvironmentKeySuffix>();
034                    keys.addAll(Admin.asList());
035                    keys.addAll(Liquibase.asList());
036                    keys.addAll(Oracle.asList());
037                    return Collections.unmodifiableList(keys);
038            }
039    
040    }