diff options
Diffstat (limited to 'jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/customization/EclipseLinkCustomization.java')
-rw-r--r-- | jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/customization/EclipseLinkCustomization.java | 475 |
1 files changed, 0 insertions, 475 deletions
diff --git a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/customization/EclipseLinkCustomization.java b/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/customization/EclipseLinkCustomization.java deleted file mode 100644 index 9d7899a5a6..0000000000 --- a/jpa/plugins/org.eclipse.jpt.eclipselink.core/src/org/eclipse/jpt/eclipselink/core/internal/context/customization/EclipseLinkCustomization.java +++ /dev/null @@ -1,475 +0,0 @@ -/******************************************************************************* -* Copyright (c) 2008 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.eclipselink.core.internal.context.customization; - -import java.util.HashMap; -import java.util.ListIterator; -import java.util.Map; -import java.util.Set; - -import org.eclipse.jpt.core.context.persistence.PersistenceUnit; -import org.eclipse.jpt.core.context.persistence.Property; -import org.eclipse.jpt.eclipselink.core.internal.context.EclipseLinkPersistenceUnitProperties; -import org.eclipse.jpt.utility.internal.CollectionTools; -import org.eclipse.jpt.utility.model.event.PropertyChangeEvent; -import org.eclipse.jpt.utility.model.value.ListValueModel; - -/** - * 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 String sessionCustomizer; - - // key = Entity name ; value = Customizer properties - private Map<String, CustomizerProperties> entitiesCustomizerProperties; - - private static final long serialVersionUID = 1L; - - // ********** constructors ********** - public EclipseLinkCustomization(PersistenceUnit parent, ListValueModel<Property> propertyListAdapter) { - super(parent, propertyListAdapter); - } - - // ********** initialization ********** - /** - * Initializes properties with values from the persistence unit. - */ - @Override - protected void initializeProperties() { - // TOREVIEW - handle incorrect String in persistence.xml - this.entitiesCustomizerProperties = - new HashMap<String, CustomizerProperties>(); - - 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.sessionCustomizer = - this.getStringValue(ECLIPSELINK_SESSION_CUSTOMIZER); - - Set<Property> properties = - this.getPropertiesSetWithPrefix(ECLIPSELINK_DESCRIPTOR_CUSTOMIZER); - - this.initializeEntitiesCustomizerClass(properties); - } - - private void initializeEntitiesCustomizerClass(Set<Property> properties) { - for (Property property : properties) { - String entityName = this.getEntityName(property); - this.setCustomizerClass_(property, entityName); - } - } - - // ********** behavior ********** - /** - * 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_SESSION_CUSTOMIZER, - SESSION_CUSTOMIZER_PROPERTY); - - // Don't need to initialize propertyNames for: - // descriptorCustomizerProperty - } - - /** - * Method used for identifying the given property. - */ - @Override - public boolean itemIsProperty(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 propertyIdFor(Property property) { - try { - return super.propertyIdFor(property); - } - catch (IllegalArgumentException e) { - if (property.getName().startsWith(ECLIPSELINK_DESCRIPTOR_CUSTOMIZER)) { - return DESCRIPTOR_CUSTOMIZER_PROPERTY; - } - } - throw new IllegalArgumentException("Illegal property: " + property.toString()); - } - - public void propertyChanged(PropertyChangeEvent event) { - String aspectName = event.getAspectName(); - if (aspectName.equals(THROW_EXCEPTIONS_PROPERTY)) { - this.throwExceptionsChanged(event); - } - else if (aspectName.equals(WEAVING_PROPERTY)) { - this.weavingChanged(event); - } - else if (aspectName.equals(WEAVING_LAZY_PROPERTY)) { - this.weavingLazyChanged(event); - } - else if (aspectName.equals(WEAVING_CHANGE_TRACKING_PROPERTY)) { - this.weavingChangeTrackingChanged(event); - } - else if (aspectName.equals(WEAVING_FETCH_GROUPS_PROPERTY)) { - this.weavingFetchGroupsChanged(event); - } - else if (aspectName.equals(SESSION_CUSTOMIZER_PROPERTY)) { - this.sessionCustomizerChanged(event); - } - else if (aspectName.equals(DESCRIPTOR_CUSTOMIZER_PROPERTY)) { - this.descriptorCustomizerChanged(event); - } - else { - throw new IllegalArgumentException("Illegal event received - property not applicable: " + aspectName); - } - return; - } - - - // ********** 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(PropertyChangeEvent event) { - String stringValue = (event.getNewValue() == null) ? null : ((Property) event.getNewValue()).getValue(); - Boolean newValue = getBooleanValueOf(stringValue); - - Boolean old = this.throwExceptions; - this.throwExceptions = newValue; - this.firePropertyChanged(event.getAspectName(), 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(PropertyChangeEvent event) { - String stringValue = (event.getNewValue() == null) ? null : ((Property) event.getNewValue()).getValue(); - Boolean newValue = getBooleanValueOf(stringValue); - - Boolean old = this.weavingLazy; - this.weavingLazy = newValue; - this.firePropertyChanged(event.getAspectName(), 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(PropertyChangeEvent event) { - String stringValue = (event.getNewValue() == null) ? null : ((Property) event.getNewValue()).getValue(); - Boolean newValue = getBooleanValueOf(stringValue); - - Boolean old = this.weavingChangeTracking; - this.weavingChangeTracking = newValue; - this.firePropertyChanged(event.getAspectName(), 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(PropertyChangeEvent event) { - String stringValue = (event.getNewValue() == null) ? null : ((Property) event.getNewValue()).getValue(); - Boolean newValue = getBooleanValueOf(stringValue); - - Boolean old = this.weavingFetchGroups; - this.weavingFetchGroups = newValue; - this.firePropertyChanged(event.getAspectName(), old, newValue); - } - - public Boolean getDefaultWeavingFetchGroups() { - return DEFAULT_WEAVING_FETCH_GROUPS; - } - - // ********** SessionCustomizer ********** - public String getSessionCustomizer() { - return this.sessionCustomizer; - } - - public void setSessionCustomizer(String newSessionCustomizer) { - String old = this.sessionCustomizer; - this.sessionCustomizer = newSessionCustomizer; - this.putProperty(SESSION_CUSTOMIZER_PROPERTY, newSessionCustomizer); - this.firePropertyChanged(SESSION_CUSTOMIZER_PROPERTY, old, newSessionCustomizer); - } - - private void sessionCustomizerChanged(PropertyChangeEvent event) { - String newValue = (event.getNewValue() == null) ? null : ((Property) event.getNewValue()).getValue(); - String old = this.sessionCustomizer; - this.sessionCustomizer = newValue; - this.firePropertyChanged(event.getAspectName(), old, newValue); - } - - public String getDefaultSessionCustomizer() { - return DEFAULT_SESSION_CUSTOMIZER; - } - - // ********** 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(PropertyChangeEvent event) { - String stringValue = (event.getNewValue() == null) ? null : ((Property) event.getNewValue()).getValue(); - Weaving newValue = getEnumValueOf(stringValue, Weaving.values()); - Weaving old = this.weaving; - this.weaving = newValue; - this.firePropertyChanged(event.getAspectName(), old, newValue); - } - - public Weaving getDefaultWeaving() { - return DEFAULT_WEAVING; - } - - // ********** DescriptorCustomizer ********** - - public String getDescriptorCustomizer(String entityName) { - CustomizerProperties customizer = this.customizerPropertiesOf(entityName); - return (customizer == null) ? null : customizer.getClassName(); - } - - public void setDescriptorCustomizer(String newDescriptorCustomizer, String entityName) { - CustomizerProperties old = this.setCustomizerClass_(newDescriptorCustomizer, entityName); - this.putStringValue(ECLIPSELINK_DESCRIPTOR_CUSTOMIZER, entityName, newDescriptorCustomizer, false); - this.firePropertyChanged(DESCRIPTOR_CUSTOMIZER_PROPERTY, old, this.customizerPropertiesOf(entityName)); - } - - private void descriptorCustomizerChanged(PropertyChangeEvent event) { - String entityName; - Property newProperty = (Property) event.getNewValue(); - // property == null when removed - entityName = (newProperty == null) ? - this.getEntityName((Property) event.getOldValue()) : this.getEntityName(newProperty); - CustomizerProperties old = this.setCustomizerClass_(newProperty, entityName); - this.firePropertyChanged(event.getAspectName(), old, this.customizerPropertiesOf(entityName)); - } - - public String getDefaultDescriptorCustomizer() { - return DEFAULT_DESCRIPTOR_CUSTOMIZER; - } - - - // ****** CustomizerProperties ******* - - /** - * Convenience method to update the CustomizerClass in entitiesCustomizerProperties map. - * Returns the old value of CustomizerProperties - */ - private CustomizerProperties setCustomizerClass_(Property newProperty, String entityName) { - String newValue = (newProperty == null) ? null : newProperty.getValue(); - return this.setCustomizerClass_(newValue, entityName); - } - - private CustomizerProperties setCustomizerClass_(String newValue, String entityName) { - CustomizerProperties properties = this.customizerPropertiesOf(entityName); - CustomizerProperties old = properties.clone(); - properties.setClassName(newValue); - this.putEntityCustomizerProperties(entityName, properties); - return old; - } - - /** - * Returns the CustomizerProperties of the Entity with the given name. - */ - private CustomizerProperties customizerPropertiesOf(String entityName) { - CustomizerProperties properties = this.entitiesCustomizerProperties.get(entityName); - if (properties == null) { - properties = new CustomizerProperties(entityName); - } - return properties; - } - - /** - * Set all CustomizerProperties to default. - */ - private void clearCustomizerProperties(String entityName) { - this.setDescriptorCustomizer(null, entityName); - } - - // ****** convenience methods ******* - /** - * Put the given Entity CustomizerProperties in this entitiesCustomizerProperties map. - * @param entityName - Entity name. The entity may be a new or an existing entity. - * @param properties - Entity CustomizerProperties - */ - private void putEntityCustomizerProperties(String entityName, CustomizerProperties properties) { - this.addOrReplacePropertiesForEntity(entityName, properties); - } - - - - // ****** entities list ******* - - public ListIterator<String> entities() { - return CollectionTools.list(this.entitiesCustomizerProperties.keySet()).listIterator(); - } - - public int entitiesSize() { - return this.entitiesCustomizerProperties.size(); - } - - /* - * Verifies if this entitiesCacheProperties map contains the given Entity. - */ - public boolean entityExists(String entity) { - return this.entitiesCustomizerProperties.containsKey(entity); - } - - public String addEntity(String entity) { - if (entityExists(entity)) { - throw new IllegalStateException("Entity " + entity + " already exist."); - } - return this.addOrReplacePropertiesForEntity(entity, new CustomizerProperties(entity)); - } - - /** - * Adds or Replaces the given Entity CustomizerProperties in - * this entitiesCustomizerProperties map. - * If the specified Entity exists and the given CustomizerProperties is empty - * (i.e. all properties are null) the mapping will be removed from the map. - * @param entity - Entity name - * @param properties - Entity CustomizerProperties - * @return - */ - private String addOrReplacePropertiesForEntity(String entity, CustomizerProperties properties) { - if (entityExists(entity)) { - this.replaceEntity_(entity, properties); - return null; - } - this.entitiesCustomizerProperties.put(entity, properties); - this.fireListChanged(ENTITIES_LIST_PROPERTY); - return entity; - } - - /** - * Replaces the given Entity CustomizerProperties in this - * entitiesCustomizerProperties map. - * If the Entity CustomizerProperties is empty (i.e. all properties is null) the - * mapping will be removed from the map. - * @param entity - Entity name - * @param properties - Entity CustomizerProperties - * @return - */ - private CustomizerProperties replaceEntity_(String entity, CustomizerProperties properties) { - CustomizerProperties old = this.entitiesCustomizerProperties.get(entity); - if (properties.isEmpty()) { - this.entitiesCustomizerProperties.remove(entity); - this.fireListChanged(ENTITIES_LIST_PROPERTY); - } - else { - this.entitiesCustomizerProperties.put(entity, properties); - } - return old; - } - - public void removeEntity(String entity) { - if ( ! entityExists(entity)) { - return; - } - this.clearCustomizerProperties(entity); - this.entitiesCustomizerProperties.remove(entity); - this.fireListChanged(ENTITIES_LIST_PROPERTY); - } - -}
\ No newline at end of file |