[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [dali-dev] API changes for derived id work
|
Hello again all,
I've made a few more changes due to the fact that we have to scan java
source types for basic type mapping annotations (@Entity, @Embeddable,
etc.) before they ever get put into the context model, and so cannot
count on the context model to answer all our "mapping" questions.
org.eclipse.jpt.core.JpaAnnotationDefinitionProvider
org.eclipse.jpt.core.JpaAnnotationProvider
added back: typeMappingAnnotationDefinitions(), which is now used
only when determining whether resource java types should be added to the
context model (and validating resource java types which have
specifically *not* been added to the context model)
org.eclipse.jpt.core.JpaProject
annotatedClassNames() -> annotatedJavaSourceClassNames() (java
source classes with any recognized annotation) and
mappedJavaSourceClassNames() (java source classes with recognized
*mapping* annotations)
org.eclipse.jpt.core.resource.java.JavaResourcePersistentType
added: isMapped(), which determines whether the resource type has
one of the type mapping annotations contributed by the annotation
providers for that platform
Thanks,
Paul
Paul Fullbright wrote:
Hello all,
With respect to the changes I'm making to core functionality to
support the new JPA 2.0 derived id functionality, I have made some API
changes to core code.
I have removed the distinction between "mapping" and "supporting"
annotations in the resource model. All context model type/attribute
mappings still know what annotations are "supporting" the main mapping
annotation, but the resource model is blissfully ignorant.
API changed:
org.eclipse.jpt.core.JpaAnnotationDefinitionProvider
typeMapping/SupportingAnnotationDefinitions() ->
typeAnnotationDefinitions()
attributeMapping/SupportingAnnotationDefinitions() ->
attributeAnnotationDefinitions()
org.eclipse.jpt.core.JpaAnnotationProvider
typeMapping/SupportingAnnotationNames() -> typeAnnotationNames()
buildTypeMapping/SupportingAnnotation(..) -> buildTypeAnnotation(..)
buildNullTypeSupportingAnnotation(..) -> buildNullTypeAnnotation(..)
attributeMapping/SupportingAnnotationNames() ->
attributeAnnotationNames()
buildAttributeMapping/SupportingAnnotation(..) ->
buildAttributeAnnotation(..)
buildNullAttributeMapping/SupportingAnnotation(..) ->
buildNullAttributeAnnotation(..)
org.eclipse.jpt.core.JpaPlatform
In JpaPlatform, I changed the API to return type (and attribute,
previously) mapping providers rather than having the platform build
them itself.
buildJavaTypeMappingFromAnnotation/MappingKey(..) ->
getJavaTypeMappingProvider(JavaPersistentType persistentType -or-
String mappingKey)
org.eclipse.jpt.core.context.java.JavaAttributeMappingProvider
defaultApplies(..) -> testDefault(..)
specifiedApplies(..) -> testSpecified(..)
org.eclipse.jpt.core.context.java.JavaTypeMappingProvider
added boolean test(..) for determining if a type mapping provider
applies to a JavaPersistentType
org.eclipse.jpt.core.context.java.JavaPersistentType
hasAnyAttributePersistenceAnnotations() -> hasAnyAnnotatedAttributes()
org.eclipse.jpt.core.context.java.JavaTypeMapping
correspondingAnnotationNames() -> supportingAnnotationNames()
org.eclipse.jpt.core.resource.java.JavaResourcePersistentMember
Most of the changes are here, collapsing "mapping" annotations and
"supporting" annotations into just annotations.
MAPPING/SUPPORTING_ANNOTATIONS_COLLECTION -> ANNOTATIONS_COLLECTION
mapping/supportingAnnotations() -> annotations()
mapping/supportingAnnotatinsSize() -> annotationsSize()
addMapping/SupportingAnnotation(..) -> addAnnotation(..)
getMapping/SupportingAnnotation(..) -> getAnnotation(..)
moveSupportingAnnotation(..) -> moveAnnotation(..)
removeMapping/SupportingAnnotation(..) -> removeAnnotation(..)
removed getMappingAnnotation() as determining what annotation
takes precedence is now done by the mapping providers
isPersisted() -> isAnnotated() (as there is no "mapping" annotation
at this level, we can just determine whether or not a member is
annotated with something we recognize)
setMappingAnnotation(String annotationName) ->
setPrimaryAnnotation(String primaryAnnotation, String[]
supportingAnnotations) This new method is used when changing mapping
types (or something similar). The supporting annotations, if any, are
retained on the member, and all other recognized annotations are removed.
org.eclipse.jpt.core.resource.java.JavaResourcePersistentAttribute
getNullMappingAnnotation(..) -> getNullAnnotation(..)
removed boolean hasAnyPersistenceAnnotations() (use
JavaResourcePersistentMember.isAnnotated() instead)
org.eclipse.jpt.core.resource.java.JavaResourcePersistentType
hasAnyAttributePersistenceAnnotations() -> hasAnyAnnotatedAttributes()
The rest of the associated changes are to implementations/extensions
of these interfaces/classes or to internal classes. If there are any
questions or problems, please feel free to let me know.
Thanks,
Paul
--
Paul Fullbright
Eclipse Java Persistence Tools (Dali) Development
Oracle