Code Search for Developers
 
 
  

OdaDataSetAdapter.java from BIRT at Krugle


Show OdaDataSetAdapter.java syntax highlighted

/*
 *************************************************************************
 * Copyright (c) 2006 Actuate Corporation.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *  Actuate Corporation  - initial API and implementation
 *  
 *************************************************************************
 */ 
package org.eclipse.birt.report.data.adapter.internal.adapter;

import java.util.Iterator;
import java.util.Map;

import org.eclipse.birt.core.exception.BirtException;
import org.eclipse.birt.core.script.JavascriptEvalUtil;
import org.eclipse.birt.data.engine.api.querydefn.OdaDataSetDesign;
import org.eclipse.birt.report.model.api.ExtendedPropertyHandle;
import org.eclipse.birt.report.model.api.OdaDataSetHandle;
import org.eclipse.birt.report.model.elements.OdaDataSet;
import org.mozilla.javascript.Scriptable;

/**
 * Adapts a Model Oda Data Set definition handle
 */
public class OdaDataSetAdapter extends OdaDataSetDesign
{

	/**
	 * Adapts a model oda data set handle
	 * @param modelDataSet model handle
	 * @param propBindingScope Javascript scope in which to evaluate property binding expressions.
	 *    If null, property binding is not resolved
	 * @throws BirtException
	 */
	public OdaDataSetAdapter( OdaDataSetHandle modelDataSet, Scriptable propBindingScope ) 
		throws BirtException
	{
		super( modelDataSet.getQualifiedName( ) );

		// TODO: event handler
		
		// Adapt base class properties
		DataAdapterUtil.adaptBaseDataSet( modelDataSet, this );

		// Adapt extended data set elements

		// Set query text; if binding exists, use its result; otherwise
		// use static design
		String queryTextBinding = modelDataSet
				.getPropertyBinding( OdaDataSet.QUERY_TEXT_PROP );
		if ( propBindingScope != null && queryTextBinding != null
				&& queryTextBinding.length( ) > 0 )
		{
			String queryText = JavascriptEvalUtil.evaluateScript( null, propBindingScope, 
					queryTextBinding, "queryText binding", 0 ).toString();
			setQueryText( queryText );
		} else
		{
			setQueryText( modelDataSet.getQueryText( ) );
		}

		// type of extended data set
		setExtensionID( modelDataSet.getExtensionID( ) );

		// result set name
		setPrimaryResultSetName( modelDataSet.getResultSetName( ) );

		// static ROM properties defined by the ODA driver extension
		Map staticProps = DataAdapterUtil.getExtensionProperties( modelDataSet, 
				modelDataSet.getExtensionPropertyDefinitionList( ) );
		if ( staticProps != null && !staticProps.isEmpty( ) )
		{
			Iterator propNamesItr = staticProps.keySet( ).iterator( );
			while ( propNamesItr.hasNext( ) )
			{
				String propName = ( String ) propNamesItr.next( );
				assert ( propName != null );
				String propValue;
				String bindingExpr = modelDataSet.getPropertyBinding( propName );
				if ( propBindingScope != null && bindingExpr != null
						&& bindingExpr.length( ) > 0 )
				{
					propValue =  JavascriptEvalUtil.evaluateScript( null, propBindingScope, 
							bindingExpr, "property binding", 0 ).toString();
				} else
				{
					propValue = ( String ) staticProps.get( propName );
				}
				addPublicProperty( ( String ) propName, propValue );
			}
		}

		// private driver properties / private runtime data
		Iterator elmtIter = modelDataSet.privateDriverPropertiesIterator( );
		if ( elmtIter != null )
		{
			while ( elmtIter.hasNext( ) )
			{
				ExtendedPropertyHandle modelProp = ( ExtendedPropertyHandle ) elmtIter
						.next( );
				addPrivateProperty( modelProp.getName( ), modelProp
						.getValue( ) );
			}
		}
	}

}




See more files for this project here

BIRT

BIRT is an open source, Eclipse-based reporting system that integrates with your application to produce compelling reports for both web and PDF.

Project homepage: http://www.eclipse.org/birt/phoenix/
Programming language(s): Java,XML
License: gpl2

  ColumnAdapter.java
  ComputedColumnAdapter.java
  ConditionAdapter.java
  DataAdapterUtil.java
  ExpressionAdapter.java
  FilterAdapter.java
  GroupAdapter.java
  InputParamBindingAdapter.java
  JointDataSetAdapter.java
  OdaDataSetAdapter.java
  OdaDataSourceAdapter.java
  ParameterAdapter.java
  ScriptDataSetAdapter.java
  ScriptDataSourceAdapter.java
  SortAdapter.java