[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