if ( extensionID != null ) { String newExtensionID = ( (OdaExtensibilityProvider) provider )
String newExtensionID = provider
	private void parseODADataSourceExtensionID( Attributes attrs,			boolean extensionNameRequired )	{		String extensionID = getAttrib( attrs,				DesignSchemaConstants.EXTENSION_ID_ATTRIB );		if ( StringUtil.isBlank( extensionID ) )		{			if ( !extensionNameRequired )				return;			SemanticError e = new SemanticError( element,					SemanticError.DESIGN_EXCEPTION_MISSING_EXTENSION );			RecoverableError.dealMissingInvalidExtension( handler, e );			return;		}		if ( handler.versionNumber < VersionUtil.VERSION_3_0_0 )		{			if ( OBSOLETE_FLAT_FILE_ID.equalsIgnoreCase( extensionID ) )				extensionID = NEW_FLAT_FILE_ID;		}		setProperty( IOdaExtendableElementModel.EXTENSION_ID_PROP, extensionID );		// get the provider to check whether this is a valid oda extension		provider = ( (OdaDataSource) element ).getProvider( );		if ( provider == null )			return;		if ( provider instanceof OdaDummyProvider )		{			SemanticError e = new SemanticError( element,					new String[]{extensionID},					SemanticError.DESIGN_EXCEPTION_EXTENSION_NOT_FOUND );			RecoverableError.dealMissingInvalidExtension( handler, e );			isValidExtensionId = false;		}		else if ( provider instanceof OdaExtensibilityProvider )		{			// After version 3.2.7 , add convert fuction.			if ( extensionID != null )			{				String newExtensionID = ( (OdaExtensibilityProvider) provider )						.convertDataSourceExtensionID( extensionID );				if ( !extensionID.equals( newExtensionID ) )				{					setProperty( IOdaExtendableElementModel.EXTENSION_ID_PROP,							newExtensionID );				}			}		}	}