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/command/ExtendsCommand.java
if ( parent == null && resolvedParent != null )
			{
				parent = resolvedParent;
				newExtendsValue.resolve( parent );
			}
			element.checkExtends( parent );
			if ( metaData.getNameSpaceID( ) == Module.ELEMENT_NAME_SPACE )
			{
				IElementDefn moduleDefn = MetaDataDictionary.getInstance( )
						.getElement( ReportDesignConstants.MODULE_ELEMENT );
				if ( parent.getContainer( ).getDefn( ).isKindOf( moduleDefn )
						|| parent.getContainerSlot( ) != Module.COMPONENT_SLOT )
				{
					throw new ExtendsException(
							element,
							newExtendsValue.getName( ),
							ExtendsException.DESIGN_EXCEPTION_PARENT_NOT_IN_COMPONENT );
				}
			}
		}
		if ( newExtendsValue != null && newExtendsValue.isResolved( )
				&& newExtendsValue.getElement( ) == element.getExtendsElement( ) )
			return;
		
		ActivityStack stack = getActivityStack( );
		ExtendsRecord record = new ExtendsRecord( element, newExtendsValue );
		stack.startTrans( record.getLabel( ) );
		adjustUserProperties( element, newExtendsValue == null
				? null
				: newExtendsValue.getElement( ) );