-
Notifications
You must be signed in to change notification settings - Fork 388
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by: xinzhao-acutate <xzhao@actuate.com>
- Loading branch information
1 parent
c709c5b
commit 49ecb02
Showing
11 changed files
with
483 additions
and
75 deletions.
There are no files selected for viewing
16 changes: 16 additions & 0 deletions
16
...org.eclipse.birt.data/src/org/eclipse/birt/data/engine/api/ICombinedOdaDataSetDesign.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
package org.eclipse.birt.data.engine.api; | ||
|
||
import java.util.Set; | ||
|
||
|
||
/** | ||
* Special Oda data set, containing multiple oda data set design | ||
* @author xzhao | ||
* | ||
*/ | ||
public interface ICombinedOdaDataSetDesign extends IOdaDataSetDesign | ||
{ | ||
public void addDataSetDesign( IOdaDataSetDesign dataSetDesign ); | ||
|
||
public Set<IOdaDataSetDesign> getDataSetDesigns( ); | ||
} |
195 changes: 195 additions & 0 deletions
195
...se.birt.data/src/org/eclipse/birt/data/engine/api/querydefn/CombinedOdaDataSetDesign.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,195 @@ | ||
package org.eclipse.birt.data.engine.api.querydefn; | ||
|
||
import java.util.Collection; | ||
import java.util.HashSet; | ||
import java.util.List; | ||
import java.util.Map; | ||
import java.util.Set; | ||
|
||
import org.eclipse.birt.data.engine.api.ICombinedOdaDataSetDesign; | ||
import org.eclipse.birt.data.engine.api.IOdaDataSetDesign; | ||
import org.eclipse.birt.data.engine.api.ISortDefinition; | ||
import org.eclipse.birt.data.engine.api.script.IBaseDataSetEventHandler; | ||
|
||
import com.ibm.icu.util.ULocale; | ||
|
||
|
||
public class CombinedOdaDataSetDesign extends OdaDataSetDesign implements ICombinedOdaDataSetDesign | ||
{ | ||
private IOdaDataSetDesign masterDesign; | ||
private Set<IOdaDataSetDesign> dataSetDesigns = new HashSet<IOdaDataSetDesign>( ); | ||
|
||
public CombinedOdaDataSetDesign( IOdaDataSetDesign masterDesign ) | ||
{ | ||
super( masterDesign.getName( ), masterDesign.getDataSourceName( ) ); | ||
this.masterDesign = masterDesign; | ||
addDataSetDesign( masterDesign ); | ||
} | ||
|
||
|
||
public void addDataSetDesign( IOdaDataSetDesign dataSetDesign ) | ||
{ | ||
dataSetDesigns.add( dataSetDesign ); | ||
} | ||
|
||
public Set<IOdaDataSetDesign> getDataSetDesigns( ) | ||
{ | ||
return dataSetDesigns; | ||
} | ||
|
||
@Override | ||
public String getQueryText( ) | ||
{ | ||
return masterDesign.getQueryText( ); | ||
} | ||
|
||
@Override | ||
public String getExtensionID( ) | ||
{ | ||
return masterDesign.getExtensionID( ); | ||
} | ||
|
||
@Override | ||
public String getPrimaryResultSetName( ) | ||
{ | ||
return masterDesign.getPrimaryResultSetName( ); | ||
} | ||
|
||
@Override | ||
public Map getPublicProperties( ) | ||
{ | ||
return masterDesign.getPublicProperties( ); | ||
} | ||
|
||
@Override | ||
public Map getPrivateProperties( ) | ||
{ | ||
return masterDesign.getPublicProperties( ); | ||
} | ||
|
||
@Override | ||
public int getPrimaryResultSetNumber( ) | ||
{ | ||
return masterDesign.getPrimaryResultSetNumber( ); | ||
} | ||
|
||
@Override | ||
public String getName( ) | ||
{ | ||
return masterDesign.getName( ); | ||
} | ||
|
||
@Override | ||
public int getCacheRowCount( ) | ||
{ | ||
return masterDesign.getCacheRowCount( ); | ||
} | ||
|
||
@Override | ||
public boolean needDistinctValue( ) | ||
{ | ||
return masterDesign.needDistinctValue( ); | ||
} | ||
|
||
@Override | ||
public String getDataSourceName( ) | ||
{ | ||
return masterDesign.getDataSourceName( ); | ||
} | ||
|
||
@Override | ||
public List getComputedColumns( ) | ||
{ | ||
return masterDesign.getComputedColumns( ); | ||
} | ||
|
||
@Override | ||
public List getFilters( ) | ||
{ | ||
return masterDesign.getFilters( ); | ||
} | ||
|
||
@Override | ||
public List<ISortDefinition> getSortHints( ) | ||
{ | ||
return masterDesign.getSortHints( ); | ||
} | ||
|
||
@Override | ||
public List getParameters( ) | ||
{ | ||
return masterDesign.getParameters( ); | ||
} | ||
|
||
@Override | ||
public List getResultSetHints( ) | ||
{ | ||
return masterDesign.getResultSetHints( ); | ||
} | ||
|
||
@Override | ||
public Collection getInputParamBindings( ) | ||
{ | ||
return masterDesign.getInputParamBindings( ); | ||
} | ||
|
||
@Override | ||
public String getBeforeOpenScript( ) | ||
{ | ||
return masterDesign.getBeforeOpenScript( ); | ||
} | ||
|
||
@Override | ||
public String getAfterOpenScript( ) | ||
{ | ||
return masterDesign.getAfterOpenScript( ); | ||
} | ||
|
||
@Override | ||
public String getOnFetchScript( ) | ||
{ | ||
return masterDesign.getOnFetchScript( ); | ||
} | ||
|
||
@Override | ||
public String getBeforeCloseScript( ) | ||
{ | ||
return masterDesign.getBeforeCloseScript( ); | ||
} | ||
|
||
@Override | ||
public String getAfterCloseScript( ) | ||
{ | ||
return masterDesign.getAfterCloseScript( ); | ||
} | ||
|
||
@Override | ||
public IBaseDataSetEventHandler getEventHandler( ) | ||
{ | ||
return masterDesign.getEventHandler( ); | ||
} | ||
|
||
@Override | ||
public void setRowFetchLimit( int max ) | ||
{ | ||
masterDesign.setRowFetchLimit( max ); | ||
} | ||
|
||
@Override | ||
public int getRowFetchLimit( ) | ||
{ | ||
return masterDesign.getRowFetchLimit( ); | ||
} | ||
|
||
@Override | ||
public ULocale getCompareLocale( ) | ||
{ | ||
return masterDesign.getCompareLocale( ); | ||
} | ||
|
||
@Override | ||
public String getNullsOrdering( ) | ||
{ | ||
return masterDesign.getNullsOrdering( ); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
65 changes: 65 additions & 0 deletions
65
...rg.eclipse.birt.data/src/org/eclipse/birt/data/engine/impl/CombinedOdaDataSetRuntime.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,65 @@ | ||
package org.eclipse.birt.data.engine.impl; | ||
|
||
import java.util.Set; | ||
|
||
import org.eclipse.birt.data.engine.api.IBaseDataSetDesign; | ||
import org.eclipse.birt.data.engine.api.ICombinedOdaDataSetDesign; | ||
import org.eclipse.birt.data.engine.api.IOdaDataSetDesign; | ||
import org.eclipse.birt.data.engine.core.DataException; | ||
|
||
|
||
public class CombinedOdaDataSetRuntime extends OdaDataSetRuntime | ||
{ | ||
private DataSetRuntime[] dataSetRuntimes; | ||
|
||
public CombinedOdaDataSetRuntime( ICombinedOdaDataSetDesign dataSet, | ||
IQueryExecutor executor, DataEngineSession session ) throws DataException | ||
{ | ||
this( ( IOdaDataSetDesign ) dataSet, executor, session ); | ||
} | ||
|
||
private CombinedOdaDataSetRuntime( IOdaDataSetDesign dataSet, | ||
IQueryExecutor executor, DataEngineSession session ) throws DataException | ||
{ | ||
super( dataSet, executor, session ); | ||
ICombinedOdaDataSetDesign design = ( ICombinedOdaDataSetDesign ) dataSet; | ||
Set<IOdaDataSetDesign> childDesigns = design.getDataSetDesigns( ); | ||
dataSetRuntimes = new DataSetRuntime[ childDesigns.size( ) ]; | ||
int i = 0; | ||
for ( IBaseDataSetDesign childDesign : childDesigns ) | ||
{ | ||
dataSetRuntimes[i++] = DataSetRuntime.newInstance( childDesign, queryExecutor, session ); | ||
} | ||
} | ||
|
||
public String getQueryText( String dataSetName ) | ||
{ | ||
for ( DataSetRuntime dataSetRuntime : dataSetRuntimes ) | ||
{ | ||
if ( dataSetRuntime.getName( ).equals( dataSetName ) ) | ||
{ | ||
return dataSetRuntime.getQueryText( ); | ||
} | ||
} | ||
return null; | ||
} | ||
|
||
@Override | ||
public void beforeOpen() throws DataException | ||
{ | ||
for ( DataSetRuntime dataSetRuntime : dataSetRuntimes ) | ||
{ | ||
dataSetRuntime.beforeOpen( ); | ||
} | ||
} | ||
|
||
@Override | ||
public void beforeClose() throws DataException | ||
{ | ||
for ( DataSetRuntime dataSetRuntime : dataSetRuntimes ) | ||
{ | ||
dataSetRuntime.beforeClose( ); | ||
} | ||
} | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.