FileDocCategorySizeDatePackage
MappingMemberElementImpl.javaAPI DocGlassfish v2 API6668Fri May 04 22:34:44 BST 2007com.sun.jdo.api.persistence.model.mapping.impl

MappingMemberElementImpl

public abstract class MappingMemberElementImpl extends MappingElementImpl implements MappingMemberElement
author
Mark Munro
author
Rochelle Raccah
version
%I%

Fields Summary
MappingClassElement
_declaringClass
the class to which this element belongs
Constructors Summary
public MappingMemberElementImpl()
Create new MappingMemberElementImpl with no corresponding name or declaring class. This constructor should only be used for cloning and archiving.

		this(null, null);
	
public MappingMemberElementImpl(String name, MappingClassElement declaringClass)
Create new MappingMemberElementImpl with the corresponding name and declaring class.

param
name the name of the element
param
declaringClass the class to attach to

		super(name);
		_declaringClass = declaringClass;
	
Methods Summary
public booleanequals(java.lang.Object obj)
Overrides MappingElementImpl's equals method to add comparison of the name of the declaring class this mapping element. The method returns false if obj does not have a declaring class with the same name as this mapping element.

return
true if this object is the same as the obj argument; false otherwise.
param
obj the reference object with which to compare.

		if (super.equals(obj) && (obj instanceof MappingMemberElement))
		{
			MappingClassElement declaringClass = getDeclaringClass();
			MappingClassElement objDeclaringClass = 
				((MappingMemberElement)obj).getDeclaringClass();

			return ((declaringClass == null) ? (objDeclaringClass == null) :
				declaringClass.equals(objDeclaringClass));
		}

		return false;
	
protected final voidfirePropertyChange(java.lang.String name, java.lang.Object o, java.lang.Object n)
Fires property change event. This method overrides that of MappingElementImpl to update the MappingClassElementImpl's modified status.

param
name property name
param
o old value
param
n new value

		// even though o == null and n == null will signify a change, that 
		// is consistent with PropertyChangeSupport's behavior and is 
		// necessary for this to work
		boolean noChange = ((o != null) && (n != null) && o.equals(n));
		MappingClassElement classElement = getDeclaringClass();

		super.firePropertyChange(name, o, n);

		if ((classElement != null) && !noChange)
			classElement.setModified(true);
	
protected final voidfireVetoableChange(java.lang.String name, java.lang.Object o, java.lang.Object n)
Fires vetoable change event. This method overrides that of MappingElementImpl to give listeners a chance to block changes on the mapping class element modified status.

param
name property name
param
o old value
param
n new value
exception
PropertyVetoException when the change is vetoed by a listener

		// even though o == null and n == null will signify a change, that 
		// is consistent with PropertyChangeSupport's behavior and is 
		// necessary for this to work
		boolean noChange = ((o != null) && (n != null) && o.equals(n));
		MappingClassElement classElement = getDeclaringClass();

		super.fireVetoableChange(name, o, n);

		if ((classElement != null) && !noChange)
		{
			((MappingClassElementImpl)classElement).fireVetoableChange(
				PROP_MODIFIED, Boolean.FALSE, Boolean.TRUE);
		}
	
public MappingClassElementgetDeclaringClass()
Get the declaring class.

return
the class that owns this member element, or null if the element is not attached to any class

 return _declaringClass; 
public inthashCode()
Overrides MappingElementImpl's hashCode method to add the hashCode of this mapping element's declaring class.

return
a hash code value for this object.

		MappingClassElement declaringClass = getDeclaringClass();

		return (super.hashCode() + 
			((declaringClass == null) ? 0 : declaringClass.hashCode()));
	
public voidsetDeclaringClass(MappingClassElement declaringClass)
Set the declaring class of this mapping member. This method should only be used internally and for cloning and archiving.

param
declaringClass the declaring class of this mapping member

		_declaringClass = declaringClass;