diff options
Diffstat (limited to 'jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/persistence/customization/EclipseLinkCustomization.java')
-rw-r--r-- | jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/persistence/customization/EclipseLinkCustomization.java | 874 |
1 files changed, 0 insertions, 874 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/persistence/customization/EclipseLinkCustomization.java b/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/persistence/customization/EclipseLinkCustomization.java deleted file mode 100644 index 1878ff7080..0000000000 --- a/jpa/plugins/org.eclipse.jpt.jpa.eclipselink.core/src/org/eclipse/jpt/jpa/eclipselink/core/internal/context/persistence/customization/EclipseLinkCustomization.java +++ /dev/null @@ -1,874 +0,0 @@ -/******************************************************************************* -* Copyright (c) 2008, 2011 Oracle. All rights reserved. -* This program and the accompanying materials are 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. -* -* Contributors: -* Oracle - initial API and implementation -*******************************************************************************/ -package org.eclipse.jpt.jpa.eclipselink.core.internal.context.persistence.customization; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.ListIterator; -import java.util.Map; -import java.util.Set; - -import org.eclipse.jdt.core.IPackageFragment; -import org.eclipse.jdt.core.IType; -import org.eclipse.jpt.common.utility.internal.CollectionTools; -import org.eclipse.jpt.common.utility.internal.StringTools; -import org.eclipse.jpt.common.utility.internal.iterables.CompositeIterable; -import org.eclipse.jpt.common.utility.internal.iterables.EmptyIterable; -import org.eclipse.jpt.common.utility.internal.iterables.TransformationIterable; -import org.eclipse.jpt.common.utility.internal.iterators.CloneListIterator; -import org.eclipse.jpt.common.utility.internal.iterators.TransformationIterator; -import org.eclipse.jpt.jpa.core.context.persistence.PersistenceUnit; -import org.eclipse.jpt.jpa.eclipselink.core.context.persistence.customization.Customization; -import org.eclipse.jpt.jpa.eclipselink.core.context.persistence.customization.Entity; -import org.eclipse.jpt.jpa.eclipselink.core.context.persistence.customization.Profiler; -import org.eclipse.jpt.jpa.eclipselink.core.context.persistence.customization.Weaving; -import org.eclipse.jpt.jpa.eclipselink.core.internal.context.persistence.EclipseLinkPersistenceUnitProperties; -import org.eclipse.text.edits.ReplaceEdit; - -/** - * EclipseLinkCustomization - */ -public class EclipseLinkCustomization extends EclipseLinkPersistenceUnitProperties - implements Customization -{ - // ********** EclipseLink properties ********** - private Boolean throwExceptions; - private Weaving weaving; - private Boolean weavingLazy; - private Boolean weavingChangeTracking; - private Boolean weavingFetchGroups; - private Boolean weavingInternal; - private Boolean weavingEager; - private Boolean validationOnly; - private Boolean validateSchema; - private List<String> sessionCustomizers; - private String profiler; // storing EclipseLinkStringValue since value can be Profiler or custom class - private String exceptionHandler; - - private List<Entity> entities; - - // ********** constructors ********** - public EclipseLinkCustomization(PersistenceUnit parent) { - super(parent); - } - - // ********** initialization ********** - /** - * Initializes properties with values from the persistence unit. - */ - @Override - protected void initializeProperties() { - this.entities = new ArrayList<Entity>(); - - this.throwExceptions = - this.getBooleanValue(ECLIPSELINK_THROW_EXCEPTIONS); - this.weaving = - this.getEnumValue(ECLIPSELINK_WEAVING, Weaving.values()); - this.weavingLazy = - this.getBooleanValue(ECLIPSELINK_WEAVING_LAZY); - this.weavingChangeTracking = - this.getBooleanValue(ECLIPSELINK_WEAVING_CHANGE_TRACKING); - this.weavingFetchGroups = - this.getBooleanValue(ECLIPSELINK_WEAVING_FETCH_GROUPS); - this.weavingInternal = - this.getBooleanValue(ECLIPSELINK_WEAVING_INTERNAL); - this.weavingEager = - this.getBooleanValue(ECLIPSELINK_WEAVING_EAGER); - this.validationOnly = - this.getBooleanValue(ECLIPSELINK_VALIDATION_ONLY); - this.validateSchema = - this.getBooleanValue(ECLIPSELINK_VALIDATE_SCHEMA); - this.initializeSessionCustomizersFromPersistenceUnit(); - - Set<PersistenceUnit.Property> properties = - this.getPropertiesSetWithPrefix(ECLIPSELINK_DESCRIPTOR_CUSTOMIZER); - this.initializeEntitiesCustomizerClass(properties); - - this.profiler = this.getProfilerPropertyValue(); - this.exceptionHandler = - this.getStringValue(ECLIPSELINK_EXCEPTION_HANDLER); - } - - private void initializeSessionCustomizersFromPersistenceUnit() { - this.sessionCustomizers = this.buildSessionCustomizers(); - } - - private List<String> buildSessionCustomizers() { - return CollectionTools.list(this.convertToValues(this.getPropertiesSetWithPrefix(ECLIPSELINK_SESSION_CUSTOMIZER))); - } - - private Iterable<String> convertToValues(Iterable<PersistenceUnit.Property> properties) { - return new TransformationIterable<PersistenceUnit.Property, String>(properties) { - @Override - protected String transform(PersistenceUnit.Property property) { - return property.getValue(); - } - }; - } - - private void initializeEntitiesCustomizerClass(Set<PersistenceUnit.Property> descriptorCustomizerProperties) { - for (PersistenceUnit.Property descriptorCustomizerProperty : descriptorCustomizerProperties) { - this.setEntityDescriptorCustomizerOf(descriptorCustomizerProperty); - } - } - - /** - * Gets the Profiler property from the persistence unit. - */ - private String getProfilerPropertyValue() { - - String value = this.getStringValue(ECLIPSELINK_PROFILER); - if (value == null) { - return null; // no property found - } - Profiler standardProfiler = this.getEnumValue(ECLIPSELINK_PROFILER, Profiler.values()); - return (standardProfiler == null) ? value : getPropertyStringValueOf(standardProfiler); - } - - // ********** behavior ********** - - public void propertyValueChanged(String propertyName, String newValue) { - if (propertyName.equals(ECLIPSELINK_THROW_EXCEPTIONS)) { - this.throwExceptionsChanged(newValue); - } - else if (propertyName.equals(ECLIPSELINK_WEAVING)) { - this.weavingChanged(newValue); - } - else if (propertyName.equals(ECLIPSELINK_WEAVING_LAZY)) { - this.weavingLazyChanged(newValue); - } - else if (propertyName.equals(ECLIPSELINK_WEAVING_CHANGE_TRACKING)) { - this.weavingChangeTrackingChanged(newValue); - } - else if (propertyName.equals(ECLIPSELINK_WEAVING_FETCH_GROUPS)) { - this.weavingFetchGroupsChanged(newValue); - } - else if (propertyName.equals(ECLIPSELINK_WEAVING_INTERNAL)) { - this.weavingInternalChanged(newValue); - } - else if (propertyName.equals(ECLIPSELINK_WEAVING_EAGER)) { - this.weavingEagerChanged(newValue); - } - else if (propertyName.equals(ECLIPSELINK_VALIDATION_ONLY)) { - this.validationOnlyChanged(newValue); - } - else if (propertyName.equals(ECLIPSELINK_VALIDATE_SCHEMA)) { - this.validateSchemaChanged(newValue); - } - else if (propertyName.equals(ECLIPSELINK_SESSION_CUSTOMIZER)) { - this.sessionCustomizersChanged(); - } - else if (propertyName.startsWith(ECLIPSELINK_DESCRIPTOR_CUSTOMIZER)) { - this.descriptorCustomizerChanged(propertyName, newValue); - } - else if (propertyName.equals(ECLIPSELINK_PROFILER)) { - this.profilerChanged(newValue); - } - else if (propertyName.equals(ECLIPSELINK_EXCEPTION_HANDLER)) { - this.exceptionHandlerChanged(newValue); - } - } - - public void propertyRemoved(String propertyName) { - if (propertyName.equals(ECLIPSELINK_THROW_EXCEPTIONS)) { - this.throwExceptionsChanged(null); - } - else if (propertyName.equals(ECLIPSELINK_WEAVING)) { - this.weavingChanged(null); - } - else if (propertyName.equals(ECLIPSELINK_WEAVING_LAZY)) { - this.weavingLazyChanged(null); - } - else if (propertyName.equals(ECLIPSELINK_WEAVING_CHANGE_TRACKING)) { - this.weavingChangeTrackingChanged(null); - } - else if (propertyName.equals(ECLIPSELINK_WEAVING_FETCH_GROUPS)) { - this.weavingFetchGroupsChanged(null); - } - else if (propertyName.equals(ECLIPSELINK_WEAVING_INTERNAL)) { - this.weavingInternalChanged(null); - } - else if (propertyName.equals(ECLIPSELINK_WEAVING_EAGER)) { - this.weavingEagerChanged(null); - } - else if (propertyName.equals(ECLIPSELINK_VALIDATION_ONLY)) { - this.validationOnlyChanged(null); - } - else if (propertyName.equals(ECLIPSELINK_VALIDATE_SCHEMA)) { - this.validateSchemaChanged(null); - } - else if (propertyName.equals(ECLIPSELINK_SESSION_CUSTOMIZER)) { - this.sessionCustomizersChanged(); - } - else if (propertyName.startsWith(ECLIPSELINK_DESCRIPTOR_CUSTOMIZER)) { - this.descriptorCustomizerChanged(propertyName, null); - } - else if (propertyName.equals(ECLIPSELINK_PROFILER)) { - this.profilerChanged(null); - } - else if (propertyName.equals(ECLIPSELINK_EXCEPTION_HANDLER)) { - this.exceptionHandlerChanged(null); - } - - } - - /** - * Adds property names key/value pairs, where: - * key = EclipseLink property key - * value = property id - */ - @Override - protected void addPropertyNames(Map<String, String> propertyNames) { - propertyNames.put( - ECLIPSELINK_THROW_EXCEPTIONS, - THROW_EXCEPTIONS_PROPERTY); - propertyNames.put( - ECLIPSELINK_WEAVING, - WEAVING_PROPERTY); - propertyNames.put( - ECLIPSELINK_WEAVING_LAZY, - WEAVING_LAZY_PROPERTY); - propertyNames.put( - ECLIPSELINK_WEAVING_CHANGE_TRACKING, - WEAVING_CHANGE_TRACKING_PROPERTY); - propertyNames.put( - ECLIPSELINK_WEAVING_FETCH_GROUPS, - WEAVING_FETCH_GROUPS_PROPERTY); - propertyNames.put( - ECLIPSELINK_WEAVING_INTERNAL, - WEAVING_INTERNAL_PROPERTY); - propertyNames.put( - ECLIPSELINK_WEAVING_EAGER, - WEAVING_EAGER_PROPERTY); - propertyNames.put( - ECLIPSELINK_VALIDATION_ONLY, - VALIDATION_ONLY_PROPERTY); - propertyNames.put( - ECLIPSELINK_VALIDATE_SCHEMA, - VALIDATE_SCHEMA_PROPERTY); - propertyNames.put( - ECLIPSELINK_SESSION_CUSTOMIZER, - SESSION_CUSTOMIZER_PROPERTY); - propertyNames.put( - ECLIPSELINK_PROFILER, - PROFILER_PROPERTY); - propertyNames.put( - ECLIPSELINK_EXCEPTION_HANDLER, - EXCEPTION_HANDLER_PROPERTY); - - // Don't need to initialize propertyNames for: - // descriptorCustomizerProperty - } - - /** - * Method used for identifying the given property. - */ - @Override - public boolean itemIsProperty(PersistenceUnit.Property item) { - boolean isProperty = super.itemIsProperty(item); - - if ( ! isProperty && item.getName() != null) { - if (item.getName().startsWith(ECLIPSELINK_DESCRIPTOR_CUSTOMIZER)) { - return true; - } - } - return isProperty; - } - - /** - * Returns the property name used for change notification of the given - * property. - */ - @Override - public String propertyIdOf(PersistenceUnit.Property property) { - try { - return super.propertyIdOf(property); - } - catch (IllegalArgumentException e) { - if (property.getName().startsWith(ECLIPSELINK_DESCRIPTOR_CUSTOMIZER)) { - return DESCRIPTOR_CUSTOMIZER_PROPERTY; - } - } - throw new IllegalArgumentException("Illegal property: " + property); //$NON-NLS-1$ - } - - public Entity addEntity(String entityName) { - if (this.entityExists(entityName)) { - throw new IllegalStateException("Duplicate entity: " + entityName); //$NON-NLS-1$ - } - Entity newEntity = this.buildEntity(entityName); - this.addItemToList(newEntity, this.entities, ENTITIES_LIST); - return newEntity; - } - - public void removeEntity(String entityName) { - if ( ! this.entityExists(entityName)) { - return; - } - Entity entity = this.getEntityNamed(entityName); - this.clearEntity(entity); - this.removeEntity(entity); - } - - - // ********** ThrowExceptions ********** - public Boolean getThrowExceptions() { - return this.throwExceptions; - } - - public void setThrowExceptions(Boolean newThrowExceptions) { - Boolean old = this.throwExceptions; - this.throwExceptions = newThrowExceptions; - this.putProperty(THROW_EXCEPTIONS_PROPERTY, newThrowExceptions); - this.firePropertyChanged(THROW_EXCEPTIONS_PROPERTY, old, newThrowExceptions); - } - - private void throwExceptionsChanged(String stringValue) { - Boolean newValue = getBooleanValueOf(stringValue); - - Boolean old = this.throwExceptions; - this.throwExceptions = newValue; - this.firePropertyChanged(THROW_EXCEPTIONS_PROPERTY, old, newValue); - } - - public Boolean getDefaultThrowExceptions() { - return DEFAULT_THROW_EXCEPTIONS; - } - - // ********** WeavingLazy ********** - public Boolean getWeavingLazy() { - return this.weavingLazy; - } - - public void setWeavingLazy(Boolean newWeavingLazy) { - Boolean old = this.weavingLazy; - this.weavingLazy = newWeavingLazy; - this.putProperty(WEAVING_LAZY_PROPERTY, newWeavingLazy); - this.firePropertyChanged(WEAVING_LAZY_PROPERTY, old, newWeavingLazy); - } - - private void weavingLazyChanged(String stringValue) { - Boolean newValue = getBooleanValueOf(stringValue); - - Boolean old = this.weavingLazy; - this.weavingLazy = newValue; - this.firePropertyChanged(WEAVING_LAZY_PROPERTY, old, newValue); - } - - public Boolean getDefaultWeavingLazy() { - return DEFAULT_WEAVING_LAZY; - } - - // ********** WeavingChangeTracking ********** - public Boolean getWeavingChangeTracking() { - return this.weavingChangeTracking; - } - - public void setWeavingChangeTracking(Boolean newWeavingChangeTracking) { - Boolean old = this.weavingChangeTracking; - this.weavingChangeTracking = newWeavingChangeTracking; - this.putProperty(WEAVING_CHANGE_TRACKING_PROPERTY, newWeavingChangeTracking); - this.firePropertyChanged(WEAVING_CHANGE_TRACKING_PROPERTY, old, newWeavingChangeTracking); - } - - private void weavingChangeTrackingChanged(String stringValue) { - Boolean newValue = getBooleanValueOf(stringValue); - - Boolean old = this.weavingChangeTracking; - this.weavingChangeTracking = newValue; - this.firePropertyChanged(WEAVING_CHANGE_TRACKING_PROPERTY, old, newValue); - } - - public Boolean getDefaultWeavingChangeTracking() { - return DEFAULT_WEAVING_CHANGE_TRACKING; - } - - // ********** WeavingFetchGroups ********** - public Boolean getWeavingFetchGroups() { - return this.weavingFetchGroups; - } - - public void setWeavingFetchGroups(Boolean newWeavingFetchGroups) { - Boolean old = this.weavingFetchGroups; - this.weavingFetchGroups = newWeavingFetchGroups; - this.putProperty(WEAVING_FETCH_GROUPS_PROPERTY, newWeavingFetchGroups); - this.firePropertyChanged(WEAVING_FETCH_GROUPS_PROPERTY, old, newWeavingFetchGroups); - } - - private void weavingFetchGroupsChanged(String stringValue) { - Boolean newValue = getBooleanValueOf(stringValue); - - Boolean old = this.weavingFetchGroups; - this.weavingFetchGroups = newValue; - this.firePropertyChanged(WEAVING_FETCH_GROUPS_PROPERTY, old, newValue); - } - - public Boolean getDefaultWeavingFetchGroups() { - return DEFAULT_WEAVING_FETCH_GROUPS; - } - - // ********** WeavingInternal ********** - public Boolean getWeavingInternal() { - return this.weavingInternal; - } - - public void setWeavingInternal(Boolean newWeavingInternal) { - Boolean old = this.weavingInternal; - this.weavingInternal = newWeavingInternal; - this.putProperty(WEAVING_INTERNAL_PROPERTY, newWeavingInternal); - this.firePropertyChanged(WEAVING_INTERNAL_PROPERTY, old, newWeavingInternal); - } - - private void weavingInternalChanged(String stringValue) { - Boolean newValue = getBooleanValueOf(stringValue); - - Boolean old = this.weavingInternal; - this.weavingInternal = newValue; - this.firePropertyChanged(WEAVING_INTERNAL_PROPERTY, old, newValue); - } - - public Boolean getDefaultWeavingInternal() { - return DEFAULT_WEAVING_INTERNAL; - } - - // ********** WeavingEager ********** - public Boolean getWeavingEager() { - return this.weavingEager; - } - - public void setWeavingEager(Boolean newWeavingEager) { - Boolean old = this.weavingEager; - this.weavingEager = newWeavingEager; - this.putProperty(WEAVING_EAGER_PROPERTY, newWeavingEager); - this.firePropertyChanged(WEAVING_EAGER_PROPERTY, old, newWeavingEager); - } - - private void weavingEagerChanged(String stringValue) { - Boolean newValue = getBooleanValueOf(stringValue); - - Boolean old = this.weavingEager; - this.weavingEager = newValue; - this.firePropertyChanged(WEAVING_EAGER_PROPERTY, old, newValue); - } - - public Boolean getDefaultWeavingEager() { - return DEFAULT_WEAVING_EAGER; - } - - // ********** ValidationOnly ********** - public Boolean getValidationOnly() { - return this.validationOnly; - } - - public void setValidationOnly(Boolean newValidationOnly) { - Boolean old = this.validationOnly; - this.validationOnly = newValidationOnly; - this.putProperty(VALIDATION_ONLY_PROPERTY, newValidationOnly); - this.firePropertyChanged(VALIDATION_ONLY_PROPERTY, old, newValidationOnly); - } - - private void validationOnlyChanged(String stringValue) { - Boolean newValue = getBooleanValueOf(stringValue); - - Boolean old = this.validationOnly; - this.validationOnly = newValue; - this.firePropertyChanged(VALIDATION_ONLY_PROPERTY, old, newValue); - } - - public Boolean getDefaultValidationOnly() { - return DEFAULT_VALIDATION_ONLY; - } - - // ********** ValidateSchema ********** - public Boolean getValidateSchema() { - return this.validateSchema; - } - - public void setValidateSchema(Boolean newValidateSchema) { - Boolean old = this.validateSchema; - this.validateSchema = newValidateSchema; - this.putProperty(VALIDATE_SCHEMA_PROPERTY, newValidateSchema); - this.firePropertyChanged(VALIDATE_SCHEMA_PROPERTY, old, newValidateSchema); - } - - private void validateSchemaChanged(String stringValue) { - Boolean newValue = getBooleanValueOf(stringValue); - - Boolean old = this.validateSchema; - this.validateSchema = newValue; - this.firePropertyChanged(VALIDATE_SCHEMA_PROPERTY, old, newValue); - } - - public Boolean getDefaultValidateSchema() { - return DEFAULT_VALIDATE_SCHEMA; - } - - // ********** SessionCustomizers ********** - public ListIterator<String> sessionCustomizers(){ - return new CloneListIterator<String>(this.sessionCustomizers); - } - - public int sessionCustomizersSize(){ - return this.sessionCustomizers.size(); - } - - public boolean sessionCustomizerExists(String sessionCustomizerClassName) { - - for (String sessionCustomizer : this.sessionCustomizers) { - if(sessionCustomizer.equals(sessionCustomizerClassName)) { - return true; - } - } - return false; - } - - public String addSessionCustomizer(String newSessionCustomizerClassName){ - - if( ! this.sessionCustomizerExists(newSessionCustomizerClassName)) { - this.addItemToList(newSessionCustomizerClassName, this.sessionCustomizers, SESSION_CUSTOMIZER_LIST); - this.putProperty(SESSION_CUSTOMIZER_PROPERTY, newSessionCustomizerClassName, true); - return newSessionCustomizerClassName; - } - return null; - } - - public void removeSessionCustomizer(String className){ - if (this.removeItemFromList(className, this.sessionCustomizers, SESSION_CUSTOMIZER_LIST)) { - this.removeProperty(SESSION_CUSTOMIZER_PROPERTY, className); - } - } - - private void sessionCustomizersChanged() { - this.synchronizeList(this.buildSessionCustomizers(), this.sessionCustomizers, SESSION_CUSTOMIZER_LIST); - } - - // ********** Weaving ********** - - public Weaving getWeaving() { - return this.weaving; - } - - public void setWeaving(Weaving newWeaving) { - Weaving old = this.weaving; - this.weaving = newWeaving; - this.putProperty(WEAVING_PROPERTY, newWeaving); - this.firePropertyChanged(WEAVING_PROPERTY, old, newWeaving); - } - - private void weavingChanged(String stringValue) { - Weaving newValue = getEnumValueOf(stringValue, Weaving.values()); - Weaving old = this.weaving; - this.weaving = newValue; - this.firePropertyChanged(WEAVING_PROPERTY, old, newValue); - } - - public Weaving getDefaultWeaving() { - return DEFAULT_WEAVING; - } - - // ********** ExceptionHandler ********** - public String getExceptionHandler() { - return this.exceptionHandler; - } - - public void setExceptionHandler(String newExceptionHandler) { - String old = this.exceptionHandler; - this.exceptionHandler = newExceptionHandler; - this.putProperty(EXCEPTION_HANDLER_PROPERTY, newExceptionHandler); - this.firePropertyChanged(EXCEPTION_HANDLER_PROPERTY, old, newExceptionHandler); - } - - private void exceptionHandlerChanged(String newValue) { - String old = this.exceptionHandler; - this.exceptionHandler = newValue; - this.firePropertyChanged(EXCEPTION_HANDLER_PROPERTY, old, newValue); - } - - public String getDefaultExceptionHandler() { - return DEFAULT_EXCEPTION_HANDLER; - } - - // ********** DescriptorCustomizer ********** - - public String getDescriptorCustomizerOf(String entityName) { - Entity entity = this.getEntityNamed(entityName); - return (entity == null) ? null : entity.getDescriptorCustomizer(); - } - - public void setDescriptorCustomizerOf(String entityName, String newDescriptorCustomizer) { - Entity old = this.setEntityDescriptorCustomizerOf(entityName, newDescriptorCustomizer); - this.putStringValue(ECLIPSELINK_DESCRIPTOR_CUSTOMIZER, entityName, newDescriptorCustomizer, false); - this.firePropertyChanged(DESCRIPTOR_CUSTOMIZER_PROPERTY, old, this.getEntityNamed(entityName)); - } - - private void descriptorCustomizerChanged(String propertyName, String stringValue) { - String entityName = this.extractEntityNameOf(propertyName); - if( ! StringTools.stringIsEmpty(entityName)) { - Entity old = this.setEntityDescriptorCustomizerOf(entityName, stringValue); - this.firePropertyChanged(DESCRIPTOR_CUSTOMIZER_PROPERTY, old, this.getEntityNamed(entityName)); - } - } - - public String getDefaultDescriptorCustomizer() { - return DEFAULT_DESCRIPTOR_CUSTOMIZER; - } - - /** - * Returns the old Entity - */ - private Entity setEntityDescriptorCustomizerOf(String entityName, String descriptorCustomizerClassName) { - if(( ! this.entityExists(entityName)) && StringTools.stringIsEmpty(descriptorCustomizerClassName)) { - //this is a property that is currently being added, we don't need to deal with it until the value is set - return null; - } - Entity entity = (this.entityExists(entityName)) ? - this.getEntityNamed(entityName) : - this.addEntity(entityName); - return this.setEntityDescriptorCustomizerOf(entity, descriptorCustomizerClassName); - } - - /** - * Returns the old Entity - */ - private Entity setEntityDescriptorCustomizerOf(Entity entity, String descriptorCustomizerClassName) { - if(entity == null) { - throw new IllegalArgumentException(); - } - Entity old = entity.clone(); - entity.setDescriptorCustomizer(descriptorCustomizerClassName); - return old; - } - - /** - * Convenience method to update the descriptorCustomizerClassName in entities. - * Returns the old Entity - */ - private Entity setEntityDescriptorCustomizerOf(PersistenceUnit.Property descriptorCustomizerProperty) { - String entityName = this.extractEntityNameOf(descriptorCustomizerProperty); - if(StringTools.stringIsEmpty(entityName)) { - return null; - } - return this.setEntityDescriptorCustomizerOf(entityName, descriptorCustomizerProperty.getValue()); - } - - // ********** Profiler ********** - /** - * Returns Profiler or custom profiler class. - * - * @return EclipseLink string value for Profiler enum or custom profiler class - */ - public String getProfiler() { - return this.profiler; - } - - /** - * Sets EclipseLink profiler. - * - * @param newProfiler - Profiler - */ - public void setProfiler(Profiler newProfiler) { - if( newProfiler == null) { - this.setProfiler_((String) null); - return; - } - this.setProfiler_(getPropertyStringValueOf(newProfiler)); - } - - /** - * Sets EclipseLink profiler or custom profiler. - * - * @param newProfiler - - * Can be a EclipseLink profiler literal or - * a fully qualified class name of a custom profiler. - */ - public void setProfiler(String newProfiler) { - if( newProfiler == null) { - this.setProfiler_((String) null); - return; - } - Profiler p = Profiler.getProfilerFor(newProfiler); - if(p == null) { // custom profiler class - this.setProfiler_(newProfiler); - } - else { - this.setProfiler(p); - } - } - - private void setProfiler_(String newProfiler) { - String old = this.profiler; - this.profiler = newProfiler; - this.putProperty(PROFILER_PROPERTY, newProfiler); - this.firePropertyChanged(PROFILER_PROPERTY, old, newProfiler); - } - - private void profilerChanged(String newValue) { - String old = this.profiler; - this.profiler = newValue; - this.firePropertyChanged(PROFILER_PROPERTY, old, newValue); - } - - public String getDefaultProfiler() { - return DEFAULT_PROFILER; - } - - - // ****** convenience methods ******* - - /** - * Set all Entity properties to default. - */ - private void clearEntity(Entity entity) { - if(entity.isEmpty()) { - return; - } - String entityName = entity.getName(); - this.setDescriptorCustomizerOf(entityName, null); - } - - /** - * Returns the Entity with the given name. - */ - private Entity getEntityNamed(String name) { - for(Entity entity: this.entities) { - if(entity.getName().equals(name)) { - return entity; - } - } - return null; - } - - private Entity buildEntity(String name) { - return new Entity(this, name); - } - - private void removeEntity(Entity entity) { - if(entity == null) { - throw new NullPointerException(); - } - this.removeItemFromList(entity, this.entities, ENTITIES_LIST); - } - - /** - * Return whether the Entity exist. - */ - public boolean entityExists(String name) { - for(Entity entity: this.entities) { - if(entity.getName().equals(name)) { - return true; - } - } - return false; - } - - // ****** entities list ******* - - public ListIterator<Entity> entities() { - return new CloneListIterator<Entity>(this.entities); - } - - public Iterator<String> entityNames() { - return new TransformationIterator<Entity, String>(this.entities()) { - @Override - protected String transform(Entity entity) { - return entity.getName(); - } - }; - } - - public int entitiesSize() { - return this.entities.size(); - } - - - // ********** refactoring ************ - - @Override - @SuppressWarnings("unchecked") - public Iterable<ReplaceEdit> createRenameTypeEdits(IType originalType, String newName) { - return new CompositeIterable<ReplaceEdit>( - this.createSessionCustomizerRenameTypeEdits(originalType, newName), - this.createExceptionHandlerRenameTypeEdits(originalType, newName) - ); - } - - protected Iterable<ReplaceEdit> createSessionCustomizerRenameTypeEdits(final IType originalType, final String newName) { - return new CompositeIterable<ReplaceEdit>( - new TransformationIterable<PersistenceUnit.Property, Iterable<ReplaceEdit>>(getPersistenceUnit().getPropertiesNamed(ECLIPSELINK_SESSION_CUSTOMIZER)) { - @Override - protected Iterable<ReplaceEdit> transform(PersistenceUnit.Property property) { - return property.createRenameTypeEdits(originalType, newName); - } - } - ); - } - - protected Iterable<ReplaceEdit> createExceptionHandlerRenameTypeEdits(IType originalType, String newName) { - PersistenceUnit.Property property = getPersistenceUnit().getProperty(ECLIPSELINK_EXCEPTION_HANDLER); - return (property != null) ? - property.createRenameTypeEdits(originalType, newName) : - EmptyIterable.<ReplaceEdit>instance(); - } - - @Override - @SuppressWarnings("unchecked") - public Iterable<ReplaceEdit> createMoveTypeEdits(IType originalType, IPackageFragment newPackage) { - return new CompositeIterable<ReplaceEdit>( - this.createSessionCustomizerMoveTypeEdits(originalType, newPackage), - this.createExceptionHandlerMoveTypeEdits(originalType, newPackage) - ); - } - - protected Iterable<ReplaceEdit> createSessionCustomizerMoveTypeEdits(final IType originalType, final IPackageFragment newPackage) { - return new CompositeIterable<ReplaceEdit>( - new TransformationIterable<PersistenceUnit.Property, Iterable<ReplaceEdit>>(getPersistenceUnit().getPropertiesNamed(ECLIPSELINK_SESSION_CUSTOMIZER)) { - @Override - protected Iterable<ReplaceEdit> transform(PersistenceUnit.Property property) { - return property.createMoveTypeEdits(originalType, newPackage); - } - } - ); - } - - protected Iterable<ReplaceEdit> createExceptionHandlerMoveTypeEdits(IType originalType, IPackageFragment newPackage) { - PersistenceUnit.Property property = getPersistenceUnit().getProperty(ECLIPSELINK_EXCEPTION_HANDLER); - return (property != null) ? - property.createMoveTypeEdits(originalType, newPackage) : - EmptyIterable.<ReplaceEdit>instance(); - } - - @Override - @SuppressWarnings("unchecked") - public Iterable<ReplaceEdit> createRenamePackageEdits(IPackageFragment originalPackage, String newName) { - return new CompositeIterable<ReplaceEdit>( - this.createSessionCustomizerRenamePackageEdits(originalPackage, newName), - this.createExceptionHandlerRenamePackageEdits(originalPackage, newName) - ); - } - - protected Iterable<ReplaceEdit> createSessionCustomizerRenamePackageEdits(final IPackageFragment originalPackage, final String newName) { - return new CompositeIterable<ReplaceEdit>( - new TransformationIterable<PersistenceUnit.Property, Iterable<ReplaceEdit>>(getPersistenceUnit().getPropertiesNamed(ECLIPSELINK_SESSION_CUSTOMIZER)) { - @Override - protected Iterable<ReplaceEdit> transform(PersistenceUnit.Property property) { - return property.createRenamePackageEdits(originalPackage, newName); - } - } - ); - } - - protected Iterable<ReplaceEdit> createExceptionHandlerRenamePackageEdits(IPackageFragment originalPackage, String newName) { - PersistenceUnit.Property property = getPersistenceUnit().getProperty(ECLIPSELINK_EXCEPTION_HANDLER); - return (property != null) ? - property.createRenamePackageEdits(originalPackage, newName) : - EmptyIterable.<ReplaceEdit>instance(); - } -} |