Package org.objectstyle.wolips.eomodeler.core.sql

Source Code of org.objectstyle.wolips.eomodeler.core.sql.IEOSQLReverseEngineerFactory

package org.objectstyle.wolips.eomodeler.core.sql;

import java.lang.reflect.InvocationTargetException;
import java.util.LinkedList;
import java.util.List;

import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IConfigurationElement;
import org.eclipse.core.runtime.IExtension;
import org.eclipse.core.runtime.IExtensionPoint;
import org.eclipse.core.runtime.Platform;
import org.objectstyle.wolips.eomodeler.core.Activator;
import org.objectstyle.wolips.eomodeler.core.model.EODatabaseConfig;
import org.objectstyle.wolips.eomodeler.core.model.EOModelException;

public interface IEOSQLReverseEngineerFactory {
  public IEOSQLReverseEngineer reverseEngineer(EODatabaseConfig databaseConfig, ClassLoader eomodelClassLoader) throws SecurityException, NoSuchMethodException, ClassNotFoundException, IllegalArgumentException, InstantiationException, IllegalAccessException, InvocationTargetException;
 
  public class Utility {
    public static IEOSQLReverseEngineerFactory reverseEngineerFactory() throws EOModelException {
      IExtensionPoint extensionPoint = Platform.getExtensionRegistry().getExtensionPoint("org.objectstyle.wolips.eomodeler.sqlReverseEngineerFactory");
      IExtension[] extensions = extensionPoint.getExtensions();
      List<IEOSQLReverseEngineerFactory> sqlReverseEngineerFactories = new LinkedList<IEOSQLReverseEngineerFactory>();
      for (IExtension extension : extensions) {
        IConfigurationElement[] configurationElements = extension.getConfigurationElements();
        for (IConfigurationElement configurationElement : configurationElements) {
          try {
            IEOSQLReverseEngineerFactory sqlReverseEngineerFactory = (IEOSQLReverseEngineerFactory) configurationElement.createExecutableExtension("class");
            sqlReverseEngineerFactories.add(sqlReverseEngineerFactory);
          } catch (CoreException e) {
            e.printStackTrace();
            Activator.getDefault().log("Could not create SQL generator factory from configuration element: " + configurationElement, e);
          }
        }
      }
      IEOSQLReverseEngineerFactory sqlReverseEngineerFactory = null;
      if (sqlReverseEngineerFactories.size() > 1) {
        throw new EOModelException("There was more than one SQL reverse engineer factory defined.");
      } else if (sqlReverseEngineerFactories.size() == 0) {
        throw new EOModelException("There was no SQL reverse engineer factory defined.");
      } else {
        sqlReverseEngineerFactory = sqlReverseEngineerFactories.get(0);
      }
      return sqlReverseEngineerFactory;
    }
  }
}
TOP

Related Classes of org.objectstyle.wolips.eomodeler.core.sql.IEOSQLReverseEngineerFactory

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.