Author: dgeraskov
Date: 2009-08-20 04:27:30 -0400 (Thu, 20 Aug 2009)
New Revision: 17180
Added:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/orm/
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/orm/HibernateOrmBasicMapping.java
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/orm/HibernateOrmEntity.java
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/orm/HibernateOrmIdMapping.java
Modified:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/HibernateJpaFactory.java
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/HibernateJptPlugin.java
Log:
https://jira.jboss.org/jira/browse/JBIDE-4761
Modified:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/HibernateJpaFactory.java
===================================================================
---
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/HibernateJpaFactory.java 2009-08-20
07:59:29 UTC (rev 17179)
+++
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/HibernateJpaFactory.java 2009-08-20
08:27:30 UTC (rev 17180)
@@ -25,9 +25,17 @@
import org.eclipse.jpt.core.context.java.JavaPersistentAttribute;
import org.eclipse.jpt.core.context.java.JavaPersistentType;
import org.eclipse.jpt.core.context.java.JavaColumn.Owner;
+import org.eclipse.jpt.core.context.orm.OrmBasicMapping;
+import org.eclipse.jpt.core.context.orm.OrmEntity;
+import org.eclipse.jpt.core.context.orm.OrmIdMapping;
+import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
+import org.eclipse.jpt.core.context.orm.OrmPersistentType;
import org.eclipse.jpt.core.context.persistence.Persistence;
import org.eclipse.jpt.core.context.persistence.PersistenceUnit;
import org.eclipse.jpt.core.internal.platform.GenericJpaFactory;
+import org.eclipse.jpt.core.resource.orm.XmlBasic;
+import org.eclipse.jpt.core.resource.orm.XmlEntity;
+import org.eclipse.jpt.core.resource.orm.XmlId;
import org.eclipse.jpt.core.resource.persistence.XmlPersistenceUnit;
import org.jboss.tools.hibernate.jpt.core.internal.context.HibernateNamedNativeQuery;
import org.jboss.tools.hibernate.jpt.core.internal.context.HibernateNamedQuery;
@@ -50,6 +58,9 @@
import org.jboss.tools.hibernate.jpt.core.internal.context.java.JavaGenericGenerator;
import
org.jboss.tools.hibernate.jpt.core.internal.context.java.JavaGenericGeneratorImpl;
import org.jboss.tools.hibernate.jpt.core.internal.context.java.JavaParameter;
+import org.jboss.tools.hibernate.jpt.core.internal.context.orm.HibernateOrmBasicMapping;
+import org.jboss.tools.hibernate.jpt.core.internal.context.orm.HibernateOrmEntity;
+import org.jboss.tools.hibernate.jpt.core.internal.context.orm.HibernateOrmIdMapping;
/**
@@ -140,5 +151,23 @@
org.eclipse.jpt.core.context.java.JavaJoinColumn.Owner owner) {
return new HibernateJavaJoinColumn(parent, owner);
}
+
+ @Override
+ public OrmEntity buildOrmEntity(OrmPersistentType parent,
+ XmlEntity resourceMapping) {
+ return new HibernateOrmEntity(parent, resourceMapping);
+ }
+
+ @Override
+ public OrmBasicMapping buildOrmBasicMapping(OrmPersistentAttribute parent,
+ XmlBasic resourceMapping) {
+ return new HibernateOrmBasicMapping(parent, resourceMapping);
+ }
+
+ @Override
+ public OrmIdMapping buildOrmIdMapping(OrmPersistentAttribute parent,
+ XmlId resourceMapping) {
+ return new HibernateOrmIdMapping(parent, resourceMapping);
+ }
}
Modified:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/HibernateJptPlugin.java
===================================================================
---
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/HibernateJptPlugin.java 2009-08-20
07:59:29 UTC (rev 17179)
+++
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/HibernateJptPlugin.java 2009-08-20
08:27:30 UTC (rev 17180)
@@ -105,10 +105,8 @@
String ccName =
((HibernateJpaProject)jpaProject).getDefaultConsoleConfigurationName();
if (ccfg.getName().equals(ccName)){
jpaProject.getJavaProject().getProject().build(IncrementalProjectBuilder.FULL_BUILD,
null);
- }
+ }
}
-
-
}
} catch (CoreException e) {
logException(e);
@@ -133,7 +131,6 @@
}
revalidateProjects(root);
}
-
});
}
Added:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/orm/HibernateOrmBasicMapping.java
===================================================================
---
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/orm/HibernateOrmBasicMapping.java
(rev 0)
+++
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/orm/HibernateOrmBasicMapping.java 2009-08-20
08:27:30 UTC (rev 17180)
@@ -0,0 +1,46 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at
http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributor:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+
+package org.jboss.tools.hibernate.jpt.core.internal.context.orm;
+
+import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
+import org.eclipse.jpt.core.internal.context.orm.GenericOrmBasicMapping;
+import org.eclipse.jpt.core.resource.orm.XmlBasic;
+import org.hibernate.cfg.NamingStrategy;
+import org.jboss.tools.hibernate.jpt.core.internal.HibernateJpaProject;
+
+/**
+ * @author Dmitry Geraskov
+ *
+ */
+@SuppressWarnings("restriction")
+public class HibernateOrmBasicMapping extends GenericOrmBasicMapping<XmlBasic> {
+
+ public HibernateOrmBasicMapping(OrmPersistentAttribute parent,
+ XmlBasic resourceMapping) {
+ super(parent, resourceMapping);
+ }
+
+ @Override
+ public HibernateJpaProject getJpaProject() {
+ return (HibernateJpaProject) super.getJpaProject();
+ }
+
+ @Override
+ public String getDefaultColumnName() {
+ NamingStrategy ns = getJpaProject().getNamingStrategy();
+ if (ns != null) {
+ return ns.propertyToColumnName(getName());
+ }
+ return super.getDefaultColumnName();
+ }
+
+}
Property changes on:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/orm/HibernateOrmBasicMapping.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Name: svn:keywords
+ Author Id Revision Date
Name: svn:eol-style
+ native
Added:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/orm/HibernateOrmEntity.java
===================================================================
---
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/orm/HibernateOrmEntity.java
(rev 0)
+++
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/orm/HibernateOrmEntity.java 2009-08-20
08:27:30 UTC (rev 17180)
@@ -0,0 +1,109 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at
http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributor:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+
+package org.jboss.tools.hibernate.jpt.core.internal.context.orm;
+
+import org.eclipse.jpt.core.context.BaseJoinColumn;
+import org.eclipse.jpt.core.context.Entity;
+import org.eclipse.jpt.core.context.TypeMapping;
+import org.eclipse.jpt.core.context.java.JavaEntity;
+import org.eclipse.jpt.core.context.orm.OrmBaseJoinColumn;
+import org.eclipse.jpt.core.context.orm.OrmPersistentType;
+import org.eclipse.jpt.core.internal.context.orm.AbstractOrmEntity;
+import org.eclipse.jpt.core.resource.orm.XmlEntity;
+import org.eclipse.jpt.core.utility.TextRange;
+import org.eclipse.jpt.utility.internal.ClassTools;
+import org.hibernate.cfg.NamingStrategy;
+import org.jboss.tools.hibernate.jpt.core.internal.HibernateJpaProject;
+
+/**
+ * @author Dmitry Geraskov
+ *
+ */
+@SuppressWarnings("restriction")
+public class HibernateOrmEntity extends AbstractOrmEntity {
+
+ public HibernateOrmEntity(OrmPersistentType parent,
+ XmlEntity resourceMapping) {
+ super(parent, resourceMapping);
+ }
+
+ @Override
+ public HibernateJpaProject getJpaProject() {
+ return (HibernateJpaProject) super.getJpaProject();
+ }
+
+ @Override
+ protected String buildDefaultName() {
+ NamingStrategy ns = getJpaProject().getNamingStrategy();
+ if (!isMetadataComplete()) {
+ JavaEntity javaEntity = getJavaEntity();
+ if (javaEntity != null) {
+ return javaEntity.getName();
+ }
+ }
+ String className = getClass_();
+ if (className != null) {
+ return ns == null ? ClassTools.shortNameForClassNamed(className)
+ : ns.classToTableName(className);
+ }
+ return null;
+ }
+
+ @Override
+ protected OrmBaseJoinColumn.Owner createPrimaryKeyJoinColumnOwner() {
+ return new HibernatePrimaryKeyJoinColumnOwner();
+ }
+
+ // ********** pk join column owner **********
+
+ class HibernatePrimaryKeyJoinColumnOwner implements OrmBaseJoinColumn.Owner
+ {
+ public TypeMapping getTypeMapping() {
+ return HibernateOrmEntity.this;
+ }
+
+ public org.eclipse.jpt.db.Table getDbTable(String tableName) {
+ return HibernateOrmEntity.this.getDbTable(tableName);
+ }
+
+ public org.eclipse.jpt.db.Table getReferencedColumnDbTable() {
+ Entity parentEntity = HibernateOrmEntity.this.getParentEntity();
+ return (parentEntity == null) ? null : parentEntity.getPrimaryDbTable();
+ }
+
+ public int joinColumnsSize() {
+ return HibernateOrmEntity.this.primaryKeyJoinColumnsSize();
+ }
+
+ public boolean isVirtual(BaseJoinColumn joinColumn) {
+ return HibernateOrmEntity.this.defaultPrimaryKeyJoinColumns.contains(joinColumn);
+ }
+
+ public String getDefaultColumnName() {
+ if (joinColumnsSize() != 1) {
+ return null;
+ }
+ Entity parentEntity = HibernateOrmEntity.this.getParentEntity();
+ NamingStrategy ns = HibernateOrmEntity.this.getJpaProject().getNamingStrategy();
+ if (ns == null)
+ return parentEntity.getPrimaryKeyColumnName();
+
+ String name = ns.joinKeyColumnName(parentEntity.getPrimaryKeyColumnName(),
+ parentEntity.getPrimaryTableName());
+ return name;
+ }
+
+ public TextRange getValidationTextRange() {
+ return null;
+ }
+ }
+}
Property changes on:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/orm/HibernateOrmEntity.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Name: svn:keywords
+ Author Id Revision Date
Name: svn:eol-style
+ native
Added:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/orm/HibernateOrmIdMapping.java
===================================================================
---
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/orm/HibernateOrmIdMapping.java
(rev 0)
+++
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/orm/HibernateOrmIdMapping.java 2009-08-20
08:27:30 UTC (rev 17180)
@@ -0,0 +1,45 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at
http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributor:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+
+package org.jboss.tools.hibernate.jpt.core.internal.context.orm;
+
+import org.eclipse.jpt.core.context.orm.OrmPersistentAttribute;
+import org.eclipse.jpt.core.internal.context.orm.GenericOrmIdMapping;
+import org.eclipse.jpt.core.resource.orm.XmlId;
+import org.hibernate.cfg.NamingStrategy;
+import org.jboss.tools.hibernate.jpt.core.internal.HibernateJpaProject;
+
+/**
+ * @author Dmitry Geraskov
+ *
+ */
+public class HibernateOrmIdMapping extends GenericOrmIdMapping {
+
+ public HibernateOrmIdMapping(OrmPersistentAttribute parent,
+ XmlId resourceMapping) {
+ super(parent, resourceMapping);
+ }
+
+ @Override
+ public HibernateJpaProject getJpaProject() {
+ return (HibernateJpaProject) super.getJpaProject();
+ }
+
+ @Override
+ public String getDefaultColumnName() {
+ NamingStrategy namingStrategy = getJpaProject().getNamingStrategy();
+ if (namingStrategy != null && getName() != null){
+ return namingStrategy.propertyToColumnName(getName());
+ }
+ return super.getDefaultColumnName();
+ }
+
+}
Property changes on:
trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/orm/HibernateOrmIdMapping.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Name: svn:keywords
+ Author Id Revision Date
Name: svn:eol-style
+ native