Index: src/org/jboss/tools/hibernate/jpt/core/internal/context/HibernatePersistenceUnit.java =================================================================== --- src/org/jboss/tools/hibernate/jpt/core/internal/context/HibernatePersistenceUnit.java (revision 31724) +++ src/org/jboss/tools/hibernate/jpt/core/internal/context/HibernatePersistenceUnit.java (working copy) @@ -11,6 +11,7 @@ package org.jboss.tools.hibernate.jpt.core.internal.context; import java.io.File; +import java.util.ArrayList; import java.util.HashSet; import java.util.Iterator; import java.util.List; @@ -26,7 +27,12 @@ import org.eclipse.jdt.core.IJavaProject; import org.eclipse.jdt.core.IPackageFragmentRoot; import org.eclipse.jdt.core.JavaModelException; +import org.eclipse.jpt.common.utility.internal.CollectionTools; import org.eclipse.jpt.common.utility.internal.iterators.CloneListIterator; +import org.eclipse.jpt.jpa.core.context.Generator; +import org.eclipse.jpt.jpa.core.context.GeneratorContainer; +import org.eclipse.jpt.jpa.core.context.Query; +import org.eclipse.jpt.jpa.core.context.QueryContainer; import org.eclipse.jpt.jpa.core.context.persistence.Persistence; import org.eclipse.jpt.jpa.core.internal.context.persistence.AbstractPersistenceUnit; import org.eclipse.jpt.jpa.core.resource.persistence.XmlPersistenceUnit; @@ -37,6 +43,7 @@ import org.jboss.tools.hibernate.jpt.core.internal.context.basic.BasicHibernateProperties; import org.jboss.tools.hibernate.jpt.core.internal.context.basic.Hibernate; import org.jboss.tools.hibernate.jpt.core.internal.context.basic.HibernatePersistenceUnitProperties; +import org.jboss.tools.hibernate.jpt.core.internal.context.java.HibernateJavaQueryContainer; import org.jboss.tools.hibernate.jpt.core.internal.context.java.JavaTypeDef; import org.jboss.tools.hibernate.jpt.core.internal.context.persistence.HibernatePersistenceUnitPropertiesBuilder; @@ -138,6 +145,28 @@ } } } + + @Override + protected void addQueriesTo(QueryContainer queryContainer, + ArrayList queryList) { + super.addQueriesTo(queryContainer, queryList); + if (queryContainer instanceof HibernateJavaQueryContainer) { + CollectionTools.addAll(queryList, ((HibernateJavaQueryContainer)queryContainer).hibernateNamedQueries()); + CollectionTools.addAll(queryList, ((HibernateJavaQueryContainer)queryContainer).hibernateNamedNativeQueries()); + } + + } + + @Override + protected void addGeneratorsTo(GeneratorContainer generatorContainer, + ArrayList generatorList) { + super.addGeneratorsTo(generatorContainer, generatorList); + //it could be orm generators container + //which is not implemented for hibernate platform + if (generatorContainer instanceof HibernateGeneratorContainer) { + CollectionTools.addAll(generatorList, ((HibernateGeneratorContainer)generatorContainer).genericGenerators()); + } + } // ********** Validation *********************************************** @Override Index: src/org/jboss/tools/hibernate/jpt/core/internal/context/java/HibernateJavaGeneratorContainerImpl.java =================================================================== --- src/org/jboss/tools/hibernate/jpt/core/internal/context/java/HibernateJavaGeneratorContainerImpl.java (revision 31724) +++ src/org/jboss/tools/hibernate/jpt/core/internal/context/java/HibernateJavaGeneratorContainerImpl.java (working copy) @@ -57,7 +57,7 @@ @Override public void synchronizeWithResourceModel() { super.synchronizeWithResourceModel(); - this.initializeGenericGenerators(); + this.syncGenericGenerators(); } @Override @@ -196,24 +196,6 @@ } /* (non-Javadoc) - * @see org.eclipse.jpt.jpa.core.internal.jpa1.context.java.GenericJavaGeneratorContainer#validate(java.util.List, org.eclipse.wst.validation.internal.provisional.core.IReporter, org.eclipse.jdt.core.dom.CompilationUnit) - */ - @Override - public void validate(List messages, IReporter reporter, - CompilationUnit astRoot) { - super.validate(messages, reporter, astRoot); - this.validateGenericGenerators(messages, reporter, astRoot); - } - - - protected void validateGenericGenerators(List messages, IReporter reporter, CompilationUnit astRoot) { - ListIterator genericGenerators = genericGenerators(); - while (genericGenerators.hasNext()) { - genericGenerators.next().validate(messages, reporter, astRoot); - } - } - - /* (non-Javadoc) * @see org.eclipse.jpt.jpa.core.internal.jpa1.context.java.GenericJavaGeneratorContainer#javaCompletionProposals(int, org.eclipse.jpt.common.utility.Filter, org.eclipse.jdt.core.dom.CompilationUnit) */ @Override Index: src/org/jboss/tools/hibernate/jpt/core/internal/context/java/JavaGenericGeneratorImpl.java =================================================================== --- src/org/jboss/tools/hibernate/jpt/core/internal/context/java/JavaGenericGeneratorImpl.java (revision 31724) +++ src/org/jboss/tools/hibernate/jpt/core/internal/context/java/JavaGenericGeneratorImpl.java (working copy) @@ -14,6 +14,7 @@ import java.util.Iterator; import java.util.List; import java.util.ListIterator; +import java.util.Vector; import org.eclipse.jdt.core.IType; import org.eclipse.jdt.core.JavaModelException; @@ -23,6 +24,8 @@ import org.eclipse.jpt.common.utility.internal.CollectionTools; import org.eclipse.jpt.common.utility.internal.StringTools; import org.eclipse.jpt.common.utility.internal.iterables.FilteringIterable; +import org.eclipse.jpt.common.utility.internal.iterables.ListIterable; +import org.eclipse.jpt.common.utility.internal.iterables.LiveCloneListIterable; import org.eclipse.jpt.common.utility.internal.iterators.CloneListIterator; import org.eclipse.jpt.jpa.core.context.Generator; import org.eclipse.jpt.jpa.core.context.java.JavaJpaContextNode; @@ -46,7 +49,7 @@ private String strategy; - protected final List parameters; + protected final Vector parameters = new Vector(); public static List generatorClasses = new ArrayList(); @@ -73,23 +76,22 @@ */ public JavaGenericGeneratorImpl(JavaJpaContextNode parent, GenericGeneratorAnnotation generatorAnnotation) { super(parent, generatorAnnotation); - this.parameters = new ArrayList(); + this.initializeParameters(); } @Override public void synchronizeWithResourceModel() { super.synchronizeWithResourceModel(); - this.name = this.generatorAnnotation.getName(); - this.strategy = this.generatorAnnotation.getStrategy(); - this.initializeParameters(); + this.setStrategy_(this.generatorAnnotation.getStrategy()); + this.updateParameters(); } @Override public void update() { + super.update(); this.setName_(this.generatorAnnotation.getName()); - this.setSpecifiedStrategy_(this.generatorAnnotation.getStrategy()); - this.updateParameters(); - this.getPersistenceUnit().addGenerator(this); + this.setStrategy_(this.generatorAnnotation.getStrategy()); + this.updateNodes(this.getParameters()); } @Override @@ -110,13 +112,11 @@ } public void setStrategy(String strategy) { - String oldStrategy = this.strategy; - this.strategy = strategy; getGeneratorAnnotation().setStrategy(strategy); - firePropertyChanged(GENERIC_STRATEGY_PROPERTY, oldStrategy, strategy); + setStrategy_(strategy); } - protected void setSpecifiedStrategy_(String strategy) { + protected void setStrategy_(String strategy) { String oldStrategy = this.strategy; this.strategy = strategy; firePropertyChanged(GENERIC_STRATEGY_PROPERTY, oldStrategy, strategy); @@ -192,7 +192,8 @@ public JavaParameter addParameter(int index) { JavaParameter parameter = getJpaFactory().buildJavaParameter(this); this.parameters.add(index, parameter); - this.getGeneratorAnnotation().addParameter(index); + ParameterAnnotation parameterAnnotation = this.getGeneratorAnnotation().addParameter(index); + parameter.initialize(parameterAnnotation); this.fireItemAdded(GenericGenerator.PARAMETERS_LIST, index, parameter); return parameter; } @@ -224,6 +225,10 @@ this.getGeneratorAnnotation().moveParameter(targetIndex, sourceIndex); fireItemMoved(GenericGenerator.PARAMETERS_LIST, targetIndex, sourceIndex); } + + public ListIterable getParameters() { + return new LiveCloneListIterable(this.parameters); + } public ListIterator parameters() { return new CloneListIterator(this.parameters);