[jbosstools-commits] JBoss Tools SVN: r30350 - in trunk/hibernatetools/plugins: org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/java and 1 other directories.

jbosstools-commits at lists.jboss.org jbosstools-commits at lists.jboss.org
Wed Apr 6 04:21:12 EDT 2011


Author: dgeraskov
Date: 2011-04-06 04:21:11 -0400 (Wed, 06 Apr 2011)
New Revision: 30350

Modified:
   trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/HibernateAbstractJpaFactory.java
   trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/java/HibernateJavaEntityImpl.java
   trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/java/JavaDiscriminatorFormulaImpl.java
   trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.ui/src/org/jboss/tools/hibernate/jpt/ui/internal/mapping/details/HibernateDiscriminatorColumnComposite.java
Log:
https://issues.jboss.org/browse/JBIDE-8666
@ForeignKey and @DiscriminatorFormula update

Modified: trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/HibernateAbstractJpaFactory.java
===================================================================
--- trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/HibernateAbstractJpaFactory.java	2011-04-06 00:00:36 UTC (rev 30349)
+++ trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/HibernateAbstractJpaFactory.java	2011-04-06 08:21:11 UTC (rev 30350)
@@ -72,6 +72,8 @@
 import org.jboss.tools.hibernate.jpt.core.internal.resource.java.GenericGeneratorAnnotation;
 import org.jboss.tools.hibernate.jpt.core.internal.resource.java.HibernateNamedNativeQueryAnnotation;
 import org.jboss.tools.hibernate.jpt.core.internal.resource.java.HibernateNamedQueryAnnotation;
+import org.jboss.tools.hibernate.jpt.core.internal.resource.java.IndexAnnotation;
+import org.jboss.tools.hibernate.jpt.core.internal.resource.java.TypeAnnotation;
 
 /**
  * @author Dmitry Geraskov
@@ -190,16 +192,16 @@
 		return new HibernateJavaTypeDefContainerImpl(parent);
 	}
 
-	public JavaIndex buildIndex(JavaJpaContextNode parent) {
-		return new IndexImpl(parent);
+	public JavaIndex buildIndex(JavaJpaContextNode parent, IndexAnnotation annotation) {
+		return new IndexImpl(parent, annotation);
 	}
 
 	public ForeignKey buildForeignKey(JavaJpaContextNode parent, ForeignKeyAnnotation annotation) {
 		return new ForeignKeyImpl(parent, annotation);
 	}
 
-	public JavaType buildType(JavaJpaContextNode parent) {
-		return new TypeImpl(parent);
+	public JavaType buildType(JavaJpaContextNode parent, TypeAnnotation annotation) {
+		return new TypeImpl(parent, annotation);
 	}
 
 }

Modified: trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/java/HibernateJavaEntityImpl.java
===================================================================
--- trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/java/HibernateJavaEntityImpl.java	2011-04-06 00:00:36 UTC (rev 30349)
+++ trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/java/HibernateJavaEntityImpl.java	2011-04-06 08:21:11 UTC (rev 30350)
@@ -63,7 +63,7 @@
 		this.discriminatorFormula = this.buildDiscriminatorFormula();
 		this.typeDefContainer = getJpaFactory().buildJavaTypeDefContainer(parent);
 		this.foreignKey = this.buildForeignKey();
-		this.cacheable = buildJavaCachable();
+		this.cacheable = this.buildJavaCachable();
 	}
 
 	protected JavaCacheable2_0 buildJavaCachable() {
@@ -144,22 +144,6 @@
 		return this.discriminatorFormula;
 	}
 
-
-	protected JavaDiscriminatorFormula buildDiscriminatorFormula() {
-		DiscriminatorFormulaAnnotation annotation = this.getDiscriminatorFormulaAnnotation();
-		return (annotation == null) ? null : this.buildDiscriminatorFormula(annotation);
-	}
-
-	protected DiscriminatorFormulaAnnotation buildDiscriminatorFormulaAnnotation() {
-		return (DiscriminatorFormulaAnnotation) this.getResourcePersistentType().addAnnotation(DiscriminatorFormulaAnnotation.ANNOTATION_NAME);
-	}
-
-	protected void setDiscriminatorFormula(JavaDiscriminatorFormula newDiscriminatorFormula) {
-		JavaDiscriminatorFormula oldDiscriminatorFormula = this.discriminatorFormula;
-		this.discriminatorFormula = newDiscriminatorFormula;
-		firePropertyChanged(DISCRIMINATOR_FORMULA_PROPERTY, oldDiscriminatorFormula, newDiscriminatorFormula);
-	}
-
 	@Override
 	public JavaDiscriminatorFormula addDiscriminatorFormula() {
 		if (getDiscriminatorFormula() != null) {
@@ -170,7 +154,11 @@
 		this.setDiscriminatorFormula(discriminatorFormula);
 		return discriminatorFormula;
 	}
-
+	
+	protected DiscriminatorFormulaAnnotation buildDiscriminatorFormulaAnnotation() {
+		return (DiscriminatorFormulaAnnotation) this.getResourcePersistentType().addAnnotation(DiscriminatorFormulaAnnotation.ANNOTATION_NAME);
+	}
+	
 	@Override
 	public void removeDiscriminatorFormula() {
 		if (getDiscriminatorFormula() == null) {
@@ -180,6 +168,19 @@
 		this.setDiscriminatorFormula(null);
 	}
 
+	protected JavaDiscriminatorFormula buildDiscriminatorFormula() {
+		DiscriminatorFormulaAnnotation annotation = this.getDiscriminatorFormulaAnnotation();
+		return (annotation == null) ? null : this.buildDiscriminatorFormula(annotation);
+	}
+
+	public DiscriminatorFormulaAnnotation getDiscriminatorFormulaAnnotation() {
+		return (DiscriminatorFormulaAnnotation) this.getResourcePersistentType().getAnnotation(DiscriminatorFormulaAnnotation.ANNOTATION_NAME);
+	}
+
+	protected JavaDiscriminatorFormula buildDiscriminatorFormula(DiscriminatorFormulaAnnotation annotation) {
+		return getJpaFactory().buildJavaDiscriminatorFormula(this, annotation);
+	}
+
 	protected void syncDiscriminatorFormula() {
 		DiscriminatorFormulaAnnotation annotation = getDiscriminatorFormulaAnnotation();
 		if (annotation == null) {
@@ -188,26 +189,21 @@
 			}
 		}
 		else {
-			if (getDiscriminatorFormula() == null) {
-				setDiscriminatorFormula(buildDiscriminatorFormula(annotation));
+			if ((getDiscriminatorFormula() != null)
+					&& (getDiscriminatorFormula().getDiscriminatorFormulaAnnotation() == annotation)) {
+				this.discriminatorFormula.synchronizeWithResourceModel();
+			} else {
+				this.setDiscriminatorFormula(this.buildDiscriminatorFormula(annotation));
 			}
-			else {
-				if ((this.discriminatorFormula != null) && (this.discriminatorFormula.getDiscriminatorFormulaAnnotation() == annotation)) {
-					this.discriminatorFormula.synchronizeWithResourceModel();
-				} else {
-					this.setDiscriminatorFormula(this.buildDiscriminatorFormula(annotation));
-				}
-			}
 		}
 	}
 
-	public DiscriminatorFormulaAnnotation getDiscriminatorFormulaAnnotation() {
-		return (DiscriminatorFormulaAnnotation) this.getResourcePersistentType().getAnnotation(DiscriminatorFormulaAnnotation.ANNOTATION_NAME);
+	protected void setDiscriminatorFormula(JavaDiscriminatorFormula newDiscriminatorFormula) {
+		JavaDiscriminatorFormula oldDiscriminatorFormula = this.discriminatorFormula;
+		this.discriminatorFormula = newDiscriminatorFormula;
+		firePropertyChanged(DISCRIMINATOR_FORMULA_PROPERTY, oldDiscriminatorFormula, newDiscriminatorFormula);
 	}
 
-	protected JavaDiscriminatorFormula buildDiscriminatorFormula(DiscriminatorFormulaAnnotation annotation) {
-		return getJpaFactory().buildJavaDiscriminatorFormula(this, annotation);
-	}
 	// ********************* foreignKey **************
 
 	protected void syncForeignKey() {

Modified: trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/java/JavaDiscriminatorFormulaImpl.java
===================================================================
--- trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/java/JavaDiscriminatorFormulaImpl.java	2011-04-06 00:00:36 UTC (rev 30349)
+++ trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.core/src/org/jboss/tools/hibernate/jpt/core/internal/context/java/JavaDiscriminatorFormulaImpl.java	2011-04-06 08:21:11 UTC (rev 30350)
@@ -30,6 +30,7 @@
 	public JavaDiscriminatorFormulaImpl(JpaContextNode parent, DiscriminatorFormulaAnnotation annotation) {
 		super(parent);
 		this.annotation = annotation;
+		this.value = annotation.getValue();
 	}
 
 	@Override

Modified: trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.ui/src/org/jboss/tools/hibernate/jpt/ui/internal/mapping/details/HibernateDiscriminatorColumnComposite.java
===================================================================
--- trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.ui/src/org/jboss/tools/hibernate/jpt/ui/internal/mapping/details/HibernateDiscriminatorColumnComposite.java	2011-04-06 00:00:36 UTC (rev 30349)
+++ trunk/hibernatetools/plugins/org.jboss.tools.hibernate.jpt.ui/src/org/jboss/tools/hibernate/jpt/ui/internal/mapping/details/HibernateDiscriminatorColumnComposite.java	2011-04-06 08:21:11 UTC (rev 30350)
@@ -32,6 +32,7 @@
 import org.eclipse.jpt.jpa.ui.internal.details.JptUiDetailsMessages;
 import org.eclipse.swt.widgets.Composite;
 import org.jboss.tools.hibernate.jpt.core.internal.context.DiscriminatorFormula;
+import org.jboss.tools.hibernate.jpt.core.internal.context.HibernateEntity;
 import org.jboss.tools.hibernate.jpt.core.internal.context.java.HibernateJavaEntity;
 import org.jboss.tools.hibernate.jpt.ui.internal.mappings.db.xpl.ColumnCombo;
 
@@ -87,7 +88,7 @@
 	@Override
 	protected void initialize() {
 		super.initialize();
-		this.discriminatorFormulaHolder = new SimplePropertyValueModel<DiscriminatorFormula>(getSubject().getDiscriminatorFormula());
+		this.discriminatorFormulaHolder = buildDiscriminatorFormulaHolder();
 	}
 
 	@Override
@@ -114,7 +115,7 @@
 		addLabeledText(
 			discriminatorColumnContainer,
 			HibernateUIMappingMessages.HibernateDiscriminatorColumnComposite_formula,
-			buildDiscriminatorFormulaHolder(),
+			buildDiscriminatorFormulaValueHolder(),
 			null//TODO help
 		);
 
@@ -190,7 +191,7 @@
 		};
 	}
 
-	private WritablePropertyValueModel<String> buildDiscriminatorFormulaHolder() {
+	private WritablePropertyValueModel<String> buildDiscriminatorFormulaValueHolder() {
 		return new PropertyAspectAdapter<DiscriminatorFormula, String>(this.discriminatorFormulaHolder, DiscriminatorFormula.VALUE_PROPERTY) {
 			@Override
 			protected String buildValue_() {
@@ -199,24 +200,27 @@
 
 			@Override
 			public void setValue(String value) {
-				if (value != null && !"".equals(value)) { //$NON-NLS-1$
+				if (subject != null) {
+					setValue_(value);
+					return;
+				}
+				
+				if ("".equals(value)){ //$NON-NLS-1$
+					return;
+				}
 					DiscriminatorFormula discriminatorFormula = (getSubject().getDiscriminatorFormula() != null
 							? getSubject().getDiscriminatorFormula()
 							: getSubject().addDiscriminatorFormula());
 					discriminatorFormula.setValue(value);
-					HibernateDiscriminatorColumnComposite.this.discriminatorFormulaHolder.setValue(discriminatorFormula);
-				}
-				setValue_(value);
+					//HibernateDiscriminatorColumnComposite.this.discriminatorFormulaHolder.setValue(discriminatorFormula);
+				//}
+				//setValue_(value);
 			}
 
 			@Override
 			protected void setValue_(String value) {
 				if ("".equals(value)) {//$NON-NLS-1$
 					value = null;
-				}
-				if (value == null && this.subject != null){
-					getSubject().removeDiscriminatorFormula();
-					return;
 				} else {
 					this.subject.setValue(value);
 				}
@@ -364,4 +368,13 @@
 			};
 		}
 	}
+	
+	private WritablePropertyValueModel<DiscriminatorFormula> buildDiscriminatorFormulaHolder() {
+		return new PropertyAspectAdapter<HibernateJavaEntity, DiscriminatorFormula>(getSubjectHolder(), HibernateEntity.DISCRIMINATOR_FORMULA_PROPERTY) {
+			@Override
+			protected DiscriminatorFormula buildValue_() {
+				return this.subject.getDiscriminatorFormula();
+			}
+		};
+	}
 }



More information about the jbosstools-commits mailing list