series = getConvertedSeries( series );
series = getConvertedSeries( series, j );
	private Chart getConvertedChart( Chart currentChart, String sNewSubType,			Orientation newOrientation, String sNewDimension )	{		Chart helperModel = (Chart) EcoreUtil.copy( currentChart );		if ( ( currentChart instanceof ChartWithAxes ) )		{			// Original chart is of this type (StockChart)			if ( currentChart.getType( ).equals( TYPE_LITERAL ) )			{				// Original chart is of the required subtype				if ( !currentChart.getSubType( ).equals( sNewSubType ) )				{					currentChart.setSubType( sNewSubType );					EList axes = ( (Axis) ( (ChartWithAxes) currentChart ).getAxes( )							.get( 0 ) ).getAssociatedAxes( );					for ( int i = 0; i < axes.size( ); i++ )					{						( (Axis) axes.get( i ) ).setPercent( false );						EList seriesdefinitions = ( (Axis) axes.get( i ) ).getSeriesDefinitions( );						for ( int j = 0; j < seriesdefinitions.size( ); j++ )						{							Series series = ( (SeriesDefinition) seriesdefinitions.get( j ) ).getDesignTimeSeries( );							series.setStacked( false );							( (StockSeries) series ).setShowAsBarStick( BAR_STICK_SUBTYPE_LITERAL.equals( currentChart.getSubType( ) ) );						}					}				}			}			else if ( currentChart.getType( ).equals( LineChart.TYPE_LITERAL )					|| currentChart.getType( ).equals( AreaChart.TYPE_LITERAL )					|| currentChart.getType( ).equals( BarChart.TYPE_LITERAL )					|| currentChart.getType( )							.equals( ScatterChart.TYPE_LITERAL ) )			{				if ( !currentChart.getType( ).equals( TYPE_LITERAL ) )				{					currentChart.setSampleData( getConvertedSampleData( currentChart.getSampleData( ),							false ) );				}				currentChart.setType( TYPE_LITERAL );				currentChart.getTitle( )						.getLabel( )						.getCaption( )						.setValue( CHART_TITLE );				// !Keep the original axis type now.				// ( (Axis) ( (ChartWithAxes) currentChart ).getAxes( ).get( 0 )				// ).setType( AxisType.DATE_TIME_LITERAL );				( (Axis) ( (ChartWithAxes) currentChart ).getAxes( ).get( 0 ) ).setCategoryAxis( true );				currentChart.setSubType( sNewSubType );				EList axes = ( (Axis) ( (ChartWithAxes) currentChart ).getAxes( )						.get( 0 ) ).getAssociatedAxes( );				for ( int i = 0; i < axes.size( ); i++ )				{					( (Axis) axes.get( i ) ).setType( AxisType.LINEAR_LITERAL );					( (Axis) axes.get( i ) ).setPercent( false );					EList seriesdefinitions = ( (Axis) axes.get( i ) ).getSeriesDefinitions( );					for ( int j = 0; j < seriesdefinitions.size( ); j++ )					{						Series series = ( (SeriesDefinition) seriesdefinitions.get( j ) ).getDesignTimeSeries( );						series = getConvertedSeries( series );						series.setStacked( false );						( (SeriesDefinition) seriesdefinitions.get( j ) ).getSeries( )								.clear( );						( (SeriesDefinition) seriesdefinitions.get( j ) ).getSeries( )								.add( series );					}				}			}			else			{				return null;			}			( (Axis) ( (ChartWithAxes) currentChart ).getAxes( ).get( 0 ) ).setCategoryAxis( true );		}		else		{			// Create a new instance of the correct type and set initial			// properties			currentChart = ChartWithAxesImpl.create( );			currentChart.setType( TYPE_LITERAL );			currentChart.setSubType( sNewSubType );			( (ChartWithAxes) currentChart ).setOrientation( newOrientation );			currentChart.setDimension( getDimensionFor( sNewDimension ) );			( (Axis) ( (ChartWithAxes) currentChart ).getAxes( ).get( 0 ) ).setOrientation( Orientation.HORIZONTAL_LITERAL );			( (Axis) ( (ChartWithAxes) currentChart ).getAxes( ).get( 0 ) ).setType( AxisType.DATE_TIME_LITERAL );			( (Axis) ( (ChartWithAxes) currentChart ).getAxes( ).get( 0 ) ).setCategoryAxis( true );			( (Axis) ( (Axis) ( (ChartWithAxes) currentChart ).getAxes( )					.get( 0 ) ).getAssociatedAxes( ).get( 0 ) ).setOrientation( Orientation.VERTICAL_LITERAL );			( (Axis) ( (Axis) ( (ChartWithAxes) currentChart ).getAxes( )					.get( 0 ) ).getAssociatedAxes( ).get( 0 ) ).setType( AxisType.LINEAR_LITERAL );			// Copy generic chart properties from the old chart			currentChart.setBlock( helperModel.getBlock( ) );			currentChart.setDescription( helperModel.getDescription( ) );			currentChart.setGridColumnCount( helperModel.getGridColumnCount( ) );			currentChart.setSampleData( getConvertedSampleData( helperModel.getSampleData( ),					true ) );			currentChart.setScript( helperModel.getScript( ) );			currentChart.setSeriesThickness( helperModel.getSeriesThickness( ) );			currentChart.setUnits( helperModel.getUnits( ) );			if ( helperModel.getInteractivity( ) != null )			{				currentChart.getInteractivity( )						.setEnable( helperModel.getInteractivity( ).isEnable( ) );				currentChart.getInteractivity( )						.setLegendBehavior( helperModel.getInteractivity( )								.getLegendBehavior( ) );			}			if ( helperModel.getType( ).equals( PieChart.TYPE_LITERAL )					|| helperModel.getType( ).equals( MeterChart.TYPE_LITERAL ) )			{				// Clear existing series definitions				( (Axis) ( (ChartWithAxes) currentChart ).getAxes( ).get( 0 ) ).getSeriesDefinitions( )						.clear( );				// Copy base series definitions				( (Axis) ( (ChartWithAxes) currentChart ).getAxes( ).get( 0 ) ).getSeriesDefinitions( )						.add( ( (ChartWithoutAxes) helperModel ).getSeriesDefinitions( )								.get( 0 ) );				// Clear existing series definitions				( (Axis) ( (Axis) ( (ChartWithAxes) currentChart ).getAxes( )						.get( 0 ) ).getAssociatedAxes( ).get( 0 ) ).getSeriesDefinitions( )						.clear( );				// Copy orthogonal series definitions				( (Axis) ( (Axis) ( (ChartWithAxes) currentChart ).getAxes( )						.get( 0 ) ).getAssociatedAxes( ).get( 0 ) ).getSeriesDefinitions( )						.addAll( ( (SeriesDefinition) ( (Axis) ( (ChartWithAxes) currentChart ).getAxes( )								.get( 0 ) ).getSeriesDefinitions( ).get( 0 ) ).getSeriesDefinitions( ) );				// Update the base series				Series series = ( (SeriesDefinition) ( (Axis) ( (ChartWithAxes) currentChart ).getAxes( )						.get( 0 ) ).getSeriesDefinitions( ).get( 0 ) ).getDesignTimeSeries( );				series = getConvertedSeries( series );				// Clear existing series				( (SeriesDefinition) ( (Axis) ( (ChartWithAxes) currentChart ).getAxes( )						.get( 0 ) ).getSeriesDefinitions( ).get( 0 ) ).getSeries( )						.clear( );				// Add converted series				( (SeriesDefinition) ( (Axis) ( (ChartWithAxes) currentChart ).getAxes( )						.get( 0 ) ).getSeriesDefinitions( ).get( 0 ) ).getSeries( )						.add( series );				// Update the orthogonal series				EList seriesdefinitions = ( (Axis) ( (Axis) ( (ChartWithAxes) currentChart ).getAxes( )						.get( 0 ) ).getAssociatedAxes( ).get( 0 ) ).getSeriesDefinitions( );				for ( int j = 0; j < seriesdefinitions.size( ); j++ )				{					series = ( (SeriesDefinition) seriesdefinitions.get( j ) ).getDesignTimeSeries( );					series = getConvertedSeries( series );					series.setStacked( false );					// Clear any existing series					( (SeriesDefinition) seriesdefinitions.get( j ) ).getSeries( )							.clear( );					// Add the new series					( (SeriesDefinition) seriesdefinitions.get( j ) ).getSeries( )							.add( series );				}			}			else			{				return null;			}			currentChart.getLegend( )					.setItemType( LegendItemType.SERIES_LITERAL );			currentChart.getTitle( )					.getLabel( )					.getCaption( )					.setValue( CHART_TITLE );		}		if ( currentChart instanceof ChartWithAxes				&& !( (ChartWithAxes) currentChart ).getOrientation( )						.equals( newOrientation ) )		{			( (ChartWithAxes) currentChart ).setOrientation( newOrientation );		}		if ( !currentChart.getDimension( )				.equals( getDimensionFor( sNewDimension ) ) )		{			currentChart.setDimension( getDimensionFor( sNewDimension ) );		}		return currentChart;	}