[Ds-java-dev] svn commit r14412 - trunk/solutions/data-services/java/modules/core/src/main/java/org/wso2/ws/dataservice/beans

svn at wso2.org svn at wso2.org
Sun Mar 2 06:16:36 PST 2008


Author: sumedha
Date: Sun Mar  2 06:16:30 2008
New Revision: 14412

Log:

Populating query,operation objects using configuration file

Modified:
   trunk/solutions/data-services/java/modules/core/src/main/java/org/wso2/ws/dataservice/beans/Data.java
   trunk/solutions/data-services/java/modules/core/src/main/java/org/wso2/ws/dataservice/beans/Operation.java
   trunk/solutions/data-services/java/modules/core/src/main/java/org/wso2/ws/dataservice/beans/Query.java

Modified: trunk/solutions/data-services/java/modules/core/src/main/java/org/wso2/ws/dataservice/beans/Data.java
==============================================================================
--- trunk/solutions/data-services/java/modules/core/src/main/java/org/wso2/ws/dataservice/beans/Data.java	(original)
+++ trunk/solutions/data-services/java/modules/core/src/main/java/org/wso2/ws/dataservice/beans/Data.java	Sun Mar  2 06:16:30 2008
@@ -17,7 +17,9 @@
 
 import java.util.ArrayList;
 import java.util.Iterator;
+
 import javax.xml.namespace.QName;
+
 import org.apache.axiom.om.OMElement;
 
 /**
@@ -73,10 +75,45 @@
 		//TODO
 		
 		//populate query objects
-		//TODO
+		Iterator queryElements = dsXml.getChildrenWithName(new QName("query"));
+		queries = new ArrayList();
+		Query query;
+		while(queryElements.hasNext()){
+			OMElement queryEle = (OMElement)queryElements.next();
+			OMElement sqlEle = queryEle.getFirstChildWithName(new QName("sql"));
+			
+			query = new Query();
+			query.setId(queryEle.getAttributeValue(new QName("id")));
+			query.setConfigToUse(queryEle.getAttributeValue(new QName("useConfig")));
+			
+			if(sqlEle != null){
+				query.setSql(sqlEle.getText());
+			}
+			Param[] params = getParams(queryEle.getChildrenWithName(new QName("param")));
+			query.setParams(params);
+			
+			//Add to object model
+			queries.add(query);
+		}
+
+		
 		
 		//populate operation objects
-		//TODO
+		Iterator operationElements = dsXml.getChildrenWithName(new QName("operation"));
+		operations = new ArrayList();
+		Operation operation;
+		while(operationElements.hasNext()){
+			OMElement operationEle = (OMElement)operationElements.next();
+			OMElement callQueryEle = operationEle.getFirstChildWithName(new QName("call-query"));
+			
+			operation = new Operation();
+			operation.setName(operationEle.getAttributeValue(new QName("name")));
+			CallQuery callQuery = getCallQuery(callQueryEle);
+			operation.setCallQuery(callQuery);
+			
+			//Add to object model
+			operations.add(operation);
+		} 
 		
 		//populate resource objects
 		Iterator resourcesElements = dsXml.getChildrenWithName(new QName("resource"));
@@ -128,4 +165,67 @@
 		callQuery.setWithParams(withParams);
 		return callQuery;
 	}
+	
+	/**
+	 * Returns operation object containing passed operation name
+	 * @param operationName
+	 * @return
+	 */
+	public Operation getOperation(String operationName){
+		Iterator itrOperations = operations.iterator();
+		while(itrOperations.hasNext()){
+			Operation operation = (Operation)itrOperations.next();
+			if(operation.getName().equals(operationName)){
+				return operation;
+			}
+		}
+		return null;
+	}
+	
+	/**
+	 * Returns an array of Param objects, when an iterator of param elements is passed in
+	 * @param paramItr
+	 * @return
+	 */
+	public Param[] getParams(Iterator paramItr){
+		Param param;
+		ArrayList paramList = new ArrayList();		
+		int ordinal = 0; 
+		while (paramItr.hasNext()) {
+			ordinal++;
+			OMElement paramElement = (OMElement) paramItr.next();
+
+			//start: work-a-round to maintain backward compatibility
+			String userSetOrdinalValue = paramElement.getAttributeValue(new QName("ordinal"));
+			if(userSetOrdinalValue == null || userSetOrdinalValue.trim().length() == 0){
+				userSetOrdinalValue = String.valueOf(ordinal);
+			}
+			//end: work-a-round to maintain backward compatibility
+			
+			param = new Param(paramElement.getAttributeValue(new QName("name")),
+						paramElement.getAttributeValue(new QName("sqlType")),
+						paramElement.getAttributeValue(new QName("type")),
+						userSetOrdinalValue);
+			paramList.add(param);
+		}
+		Param[] params = new Param[paramList.size()];
+		paramList.toArray(params);
+		return params;
+	}
+	
+	/**
+	 * Returns query object containing passed query id
+	 * @param queryId
+	 * @return
+	 */
+	public Query getQuery(String queryId){
+		Iterator itrQueries = queries.iterator();
+		while(itrQueries.hasNext()){
+			Query query = (Query)itrQueries.next();
+			if(query.getId().equals(queryId)){
+				return query;
+			}
+		}
+		return null;
+	}	
 }

Modified: trunk/solutions/data-services/java/modules/core/src/main/java/org/wso2/ws/dataservice/beans/Operation.java
==============================================================================
--- trunk/solutions/data-services/java/modules/core/src/main/java/org/wso2/ws/dataservice/beans/Operation.java	(original)
+++ trunk/solutions/data-services/java/modules/core/src/main/java/org/wso2/ws/dataservice/beans/Operation.java	Sun Mar  2 06:16:30 2008
@@ -24,7 +24,7 @@
 public class Operation {
 	
 	private String name;
-	private String callQuery;
+	private CallQuery callQuery;
 	
 	public String getName() {
 		return name;
@@ -32,10 +32,10 @@
 	public void setName(String name) {
 		this.name = name;
 	}
-	public String getCallQuery() {
+	public CallQuery getCallQuery() {
 		return callQuery;
 	}
-	public void setCallQuery(String callQuery) {
+	public void setCallQuery(CallQuery callQuery) {
 		this.callQuery = callQuery;
-	}
+	}	
 }

Modified: trunk/solutions/data-services/java/modules/core/src/main/java/org/wso2/ws/dataservice/beans/Query.java
==============================================================================
--- trunk/solutions/data-services/java/modules/core/src/main/java/org/wso2/ws/dataservice/beans/Query.java	(original)
+++ trunk/solutions/data-services/java/modules/core/src/main/java/org/wso2/ws/dataservice/beans/Query.java	Sun Mar  2 06:16:30 2008
@@ -9,6 +9,8 @@
 public class Query {
 	private String id;
 	private Param[] params;
+	private String sql;
+	private String configToUse = "";
 	
 	public String getId() {
 		return id;
@@ -35,6 +37,9 @@
 		return null;
 	}
 	
+	public Query(){
+	}
+	
 	public Query(Iterator paramItr){
 		Param param;
 		ArrayList paramList = new ArrayList();		
@@ -66,6 +71,16 @@
 		}
 		
 	}
-	
-
+	public String getSql() {
+		return sql;
+	}
+	public void setSql(String sql) {
+		this.sql = sql;
+	}
+	public String getConfigToUse() {
+		return configToUse;
+	}
+	public void setConfigToUse(String configToUse) {
+		this.configToUse = configToUse;
+	}	
 }



More information about the Ds-java-dev mailing list