// Path: obridge-main/src/main/java/org/obridge/context/OBridgeConfiguration.java
// public class OBridgeConfiguration {
// 
//     public static final boolean GENERATE_SOURCE_FOR_PLSQL_TYPES = false;
//     public static final boolean ADD_ASSERT = false;
// 
//     private String jdbcUrl;
//     private String sourceRoot;
//     private String rootPackageName;
//     private Packages packages;
//     private Logging logging;
//     private String packagesLike;
//     private String sourceOwner;
//     private String projectName;
//     private String sourcesTableProc;
//     private String sourcesTable;
// 
//     public String getPackagesLike() {
//         if (packagesLike == null) {
//             return "%";
//         }
//         return packagesLike;
//     }
// 
//     public void setPackagesLike(String packagesLike) {
//         this.packagesLike = packagesLike;
//     }
// 
//     public String getSourceOwner() {
//         return sourceOwner;
//     }
// 
//     public void setSourceOwner(String sourceOwner) {
//         this.sourceOwner = sourceOwner;
//     }
// 
//     public String getJdbcUrl() {
//         return jdbcUrl;
//     }
// 
//     public void setJdbcUrl(String jdbcUrl) {
//         this.jdbcUrl = jdbcUrl;
//     }
// 
//     public String getSourceRoot() {
//         return sourceRoot;
//     }
// 
//     public void setSourceRoot(String sourceRoot) {
//         this.sourceRoot = sourceRoot;
//     }
// 
//     public String getRootPackageName() {
//         return rootPackageName;
//     }
// 
//     public void setRootPackageName(String rootPackageName) {
//         this.rootPackageName = rootPackageName;
//     }
// 
//     public Packages getPackages() {
//         return packages;
//     }
// 
//     public void setPackages(Packages packages) {
//         this.packages = packages;
//     }
// 
//     public Logging getLogging() {
//         return logging;
//     }
// 
//     public void setLogging(Logging logging) {
//         this.logging = logging;
//     }
// 
//     public String getSourcesTable() {
//         return sourcesTable;
//     }
// 
//     public void setSourcesTable(String sourcesTable) {
//         this.sourcesTable = sourcesTable;
//     }
// 
//     public String getSourcesTableProc() {
//         return sourcesTableProc;
//     }
// 
//     public String getProjectName() { return projectName == null ? "default": projectName; }
// 
//     public void setProjectName(String projectName) { this.projectName = projectName; }
// }
// 
// Path: obridge-main/src/main/java/org/obridge/util/DataSourceProvider.java
// public final class DataSourceProvider {
// 
//     private static Map<String, ComboPooledDataSource> dataSourcePool = null;
// 
//     private DataSourceProvider() {
//     }
// 
//     public static DataSource getDataSource(String jdbcURL) throws PropertyVetoException {
// 
//         if (dataSourcePool == null) {
//             dataSourcePool = new HashMap<>();
//         }
// 
//         if (!dataSourcePool.containsKey(jdbcURL)) {
// 
//             ComboPooledDataSource dataSource = new ComboPooledDataSource();
//             dataSource.setDriverClass("oracle.jdbc.OracleDriver");
//             dataSource.setJdbcUrl(jdbcURL);
// 
//             dataSourcePool.put(jdbcURL, dataSource);
//         }
// 
//         return dataSourcePool.get(jdbcURL);
//     }
// 
// }
// 
// Path: obridge-main/src/main/java/org/obridge/util/OBridgeException.java
// public class OBridgeException extends RuntimeException {
// 
//     public OBridgeException(String message, Throwable cause) {
//         super(message, cause);
//     }
// 
//     public OBridgeException(Throwable cause) {
//         super(cause);
//     }
// 
//     public OBridgeException(String message) {
//         super(message);
//     }
// }


import org.obridge.context.OBridgeConfiguration;
import org.obridge.util.DataSourceProvider;
import org.obridge.util.OBridgeException;
import javax.sql.DataSource;
import java.beans.PropertyVetoException;
import java.io.IOException;
import java.sql.CallableStatement;
package org.obridge.generators;



public class PopulateObjectsTable {

    public static void run(OBridgeConfiguration c) {
        String sourcesTableProc = c.getSourcesTableProc();
        String projectName = c.getProjectName();
        if (sourcesTableProc == null) {
            return;
        }
        sourcesTableProc = "begin " + sourcesTableProc + "(?); end;";
        try {
            DataSource datasource = DataSourceProvider.getDataSource(c.getJdbcUrl());
            CallableStatement statement = datasource.getConnection().prepareCall(sourcesTableProc);
            statement.setString(1, projectName);
            statement.execute();
        } catch (Exception e) {
// Path: obridge-main/src/main/java/org/obridge/context/OBridgeConfiguration.java
// public class OBridgeConfiguration {
// 
//     public static final boolean GENERATE_SOURCE_FOR_PLSQL_TYPES = false;
//     public static final boolean ADD_ASSERT = false;
// 
//     private String jdbcUrl;
//     private String sourceRoot;
//     private String rootPackageName;
//     private Packages packages;
//     private Logging logging;
//     private String packagesLike;
//     private String sourceOwner;
//     private String projectName;
//     private String sourcesTableProc;
//     private String sourcesTable;
// 
//     public String getPackagesLike() {
//         if (packagesLike == null) {
//             return "%";
//         }
//         return packagesLike;
//     }
// 
//     public void setPackagesLike(String packagesLike) {
//         this.packagesLike = packagesLike;
//     }
// 
//     public String getSourceOwner() {
//         return sourceOwner;
//     }
// 
//     public void setSourceOwner(String sourceOwner) {
//         this.sourceOwner = sourceOwner;
//     }
// 
//     public String getJdbcUrl() {
//         return jdbcUrl;
//     }
// 
//     public void setJdbcUrl(String jdbcUrl) {
//         this.jdbcUrl = jdbcUrl;
//     }
// 
//     public String getSourceRoot() {
//         return sourceRoot;
//     }
// 
//     public void setSourceRoot(String sourceRoot) {
//         this.sourceRoot = sourceRoot;
//     }
// 
//     public String getRootPackageName() {
//         return rootPackageName;
//     }
// 
//     public void setRootPackageName(String rootPackageName) {
//         this.rootPackageName = rootPackageName;
//     }
// 
//     public Packages getPackages() {
//         return packages;
//     }
// 
//     public void setPackages(Packages packages) {
//         this.packages = packages;
//     }
// 
//     public Logging getLogging() {
//         return logging;
//     }
// 
//     public void setLogging(Logging logging) {
//         this.logging = logging;
//     }
// 
//     public String getSourcesTable() {
//         return sourcesTable;
//     }
// 
//     public void setSourcesTable(String sourcesTable) {
//         this.sourcesTable = sourcesTable;
//     }
// 
//     public String getSourcesTableProc() {
//         return sourcesTableProc;
//     }
// 
//     public String getProjectName() { return projectName == null ? "default": projectName; }
// 
//     public void setProjectName(String projectName) { this.projectName = projectName; }
// }
// 
// Path: obridge-main/src/main/java/org/obridge/util/DataSourceProvider.java
// public final class DataSourceProvider {
// 
//     private static Map<String, ComboPooledDataSource> dataSourcePool = null;
// 
//     private DataSourceProvider() {
//     }
// 
//     public static DataSource getDataSource(String jdbcURL) throws PropertyVetoException {
// 
//         if (dataSourcePool == null) {
//             dataSourcePool = new HashMap<>();
//         }
// 
//         if (!dataSourcePool.containsKey(jdbcURL)) {
// 
//             ComboPooledDataSource dataSource = new ComboPooledDataSource();
//             dataSource.setDriverClass("oracle.jdbc.OracleDriver");
//             dataSource.setJdbcUrl(jdbcURL);
// 
//             dataSourcePool.put(jdbcURL, dataSource);
//         }
// 
//         return dataSourcePool.get(jdbcURL);
//     }
// 
// }
// 
// Path: obridge-main/src/main/java/org/obridge/util/OBridgeException.java
// public class OBridgeException extends RuntimeException {
// 
//     public OBridgeException(String message, Throwable cause) {
//         super(message, cause);
//     }
// 
//     public OBridgeException(Throwable cause) {
//         super(cause);
//     }
// 
//     public OBridgeException(String message) {
//         super(message);
//     }
// }


// Path: obridge-main/src/main/java/org/obridge/generators/PopulateObjectsTable.java
import org.obridge.context.OBridgeConfiguration;
import org.obridge.util.DataSourceProvider;
import org.obridge.util.OBridgeException;
import javax.sql.DataSource;
import java.beans.PropertyVetoException;
import java.io.IOException;
import java.sql.CallableStatement;

package org.obridge.generators;



public class PopulateObjectsTable {

    public static void run(OBridgeConfiguration c) {
        String sourcesTableProc = c.getSourcesTableProc();
        String projectName = c.getProjectName();
        if (sourcesTableProc == null) {
            return;
        }
        sourcesTableProc = "begin " + sourcesTableProc + "(?); end;";
        try {
            DataSource datasource = DataSourceProvider.getDataSource(c.getJdbcUrl());
            CallableStatement statement = datasource.getConnection().prepareCall(sourcesTableProc);
            statement.setString(1, projectName);
            statement.execute();
        } catch (Exception e) {
            throw new OBridgeException(e);