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/extension/ModelExtensibilityProvider.java
return null;
		if ( cachedExtDefn == null )
		{
			MetaDataDictionary dd = MetaDataDictionary.getInstance( );
			cachedExtDefn = (ExtensionElementDefn) dd
					.getExtension( extensionName );
		}
		return cachedExtDefn;
	}
	/**
	 * Checks whether the extendable element this provider supports can extends
	 * from the given parent element.
	 * 
	 * @param parent
	 *            the parent element to check
	 * @throws ExtendsException
	 *             if the extendable element this provide supports can not
	 *             extends from the given parent element.
	 */
	public void checkExtends( DesignElement parent ) throws ExtendsException
	{
		String parentExt = (String) parent.getProperty( null,
				IExtendedItemModel.EXTENSION_NAME_PROP );
		assert extensionName != null;
		if ( !extensionName.equalsIgnoreCase( parentExt ) )
			throw new ExtendsException( element, parent,
					ExtendsException.DESIGN_EXCEPTION_WRONG_EXTENSION_TYPE );
	}
}