Bug 138562 Splite extendsexcpetion to seperate sub class
The suggestion is Parent invalid Cycle extends Different type extends Not top level extends
model/org.eclipse.birt.report.model/src/org/eclipse/birt/report/model/core/DesignElement.java
target = newRef.getTargetElement( );
			if ( target != null )
				target.addClient( this, prop.getName( ) );
		}
	}
	/**
	 * Implements to cache a back-pointer from a referenced structure. This
	 * element has a structure reference property that can point to another
	 * "referencable" structure. To maintain semantic consistency, the
	 * referenced structure maintains a list of "clients" that identifies the
	 * elements that refer to it. The client list is used when the target
	 * structure changes names or is deleted. In these cases, the change
	 * automatically updates the clients as well.
	 * <p>
	 * References can be in two states: resovled and unresolved. An unresolved
	 * reference is just a name, but the system has not yet identified the
	 * target structure, or if a target even exists. A resolved reference caches
	 * a pointer to the target structure itself.
	 * 
	 * @param oldRef
	 *            the old reference, if any
	 * @param newRef
	 *            the new reference, if any
	 * @param prop
	 *            definition of the property
	 */
	protected void updateReference( StructRefValue oldRef,
			StructRefValue newRef, ElementPropertyDefn prop )
	{
		ReferencableStructure target;