package org.hibernate.eclipse.utils; import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.QualifiedName; import org.eclipse.jpt.jpa.core.JpaPreferences; import org.eclipse.jpt.jpa.core.JpaProject; import org.eclipse.wst.common.project.facet.core.FacetedProjectFramework; import org.hibernate.eclipse.console.HibernateConsolePlugin; public class HibernateEclipseUtils { public static final String JPT_JPA_CORE = "org.eclipse.jpt.jpa.core"; //$NON-NLS-1$ public static boolean isJpaFacetInstalled(IProject project) { try { return FacetedProjectFramework.hasProjectFacet(project, JpaProject.FACET_ID); } catch (CoreException e) { HibernateConsolePlugin.getDefault().log(e); return false; } } private static final QualifiedName DATA_SOURCE_CONNECTION_PROFILE_NAME = new QualifiedName( JPT_JPA_CORE, "dataSource.connectionProfileName"); //$NON-NLS-1$ private static boolean stringIsEmpty(String string) { if (string == null) { return true; } int len = string.length(); if (len == 0) { return true; } return stringIsEmpty_(string.toCharArray(), len); } private static boolean stringIsEmpty_(char[] s, int len) { for (int i = len; i-- > 0; ) { if ( ! Character.isWhitespace(s[i])) { return false; } } return true; } public static String getConnectionProfileName(IProject project) { try { String connectionProfileName = project.getPersistentProperty( DATA_SOURCE_CONNECTION_PROFILE_NAME); // some old connection profile names were stored as empty strings instead of nulls :-( // convert them here return (stringIsEmpty(connectionProfileName)) ? null : connectionProfileName; } catch (CoreException ex) { HibernateConsolePlugin.getDefault().log(ex); return null; } } public static String getJpaPlatformID(IProject project) { return JpaPreferences.getJpaPlatformID(project); } private static final QualifiedName USER_OVERRIDE_DEFAULT_CATALOG = new QualifiedName( JPT_JPA_CORE, "userOverrideDefaultCatalogName"); //$NON-NLS-1$ public static String getUserOverrideDefaultCatalog(IProject project) { try { return project.getPersistentProperty(USER_OVERRIDE_DEFAULT_CATALOG); } catch (CoreException ex) { HibernateConsolePlugin.getDefault().log(ex); return null; } } private static final QualifiedName USER_OVERRIDE_DEFAULT_SCHEMA = new QualifiedName( JPT_JPA_CORE, "userOverrideDefaultSchemaName"); //$NON-NLS-1$ public static String getUserOverrideDefaultSchema(IProject project) { try { return project.getPersistentProperty(USER_OVERRIDE_DEFAULT_SCHEMA); } catch (CoreException ex) { HibernateConsolePlugin.getDefault().log(ex); return null; } } }