You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sa...@apache.org on 2012/09/08 22:43:18 UTC
svn commit: r1382361 - in
/incubator/airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa:
resources/ProjectResource.java utils/ utils/QueryGenerator.java
Author: samindaw
Date: Sat Sep 8 20:43:18 2012
New Revision: 1382361
URL: http://svn.apache.org/viewvc?rev=1382361&view=rev
Log:
new reg api integration
Added:
incubator/airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/utils/
incubator/airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/utils/QueryGenerator.java (with props)
Modified:
incubator/airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ProjectResource.java
Modified: incubator/airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ProjectResource.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ProjectResource.java?rev=1382361&r1=1382360&r2=1382361&view=diff
==============================================================================
--- incubator/airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ProjectResource.java (original)
+++ incubator/airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/resources/ProjectResource.java Sat Sep 8 20:43:18 2012
@@ -30,6 +30,7 @@ import org.apache.airavata.persistance.r
import org.apache.airavata.persistance.registry.jpa.model.Experiment;
import org.apache.airavata.persistance.registry.jpa.model.Gateway;
import org.apache.airavata.persistance.registry.jpa.model.Project;
+import org.apache.airavata.persistance.registry.jpa.utils.QueryGenerator;
public class ProjectResource extends AbstractResource {
@@ -66,11 +67,17 @@ public class ProjectResource extends Abs
public void remove(ResourceType type, Object name) {
begin();
if (type == ResourceType.EXPERIMENT) {
- Query q = em.createQuery("Delete p FROM Experiment p WHERE p.project_ID = :proj_id and p.user_name = :usr_name and p.experiment_ID = :ex_name");
- q.setParameter("proj_id", id);
- q.setParameter("usr_name", getWorker().getUser());
- q.setParameter("ex_name", name);
- q.executeUpdate();
+ QueryGenerator generator = new QueryGenerator("Experiment");
+ generator.setParameter("project_ID", id);
+ generator.setParameter("user_name", getWorker().getUser());
+ generator.setParameter("experiment_ID", name);
+ Query q = generator.deleteQuery(em);
+ q.executeUpdate();
+// Query q = em.createQuery("Delete p FROM Experiment p WHERE p.project_ID = :proj_id and p.user_name = :usr_name and p.experiment_ID = :ex_name");
+// q.setParameter("proj_id", id);
+// q.setParameter("usr_name", getWorker().getUser());
+// q.setParameter("ex_name", name);
+// q.executeUpdate();
}
end();
}
@@ -82,10 +89,15 @@ public class ProjectResource extends Abs
public Resource get(ResourceType type, Object name) {
begin();
if (type == ResourceType.EXPERIMENT) {
- Query q = em.createQuery("SELECT p FROM Experiment p WHERE p.project_ID = :proj_id and p.user_name = :usr_name and p.experiment_ID = :ex_name");
- q.setParameter("proj_id", id);
- q.setParameter("usr_name", getWorker().getUser());
- q.setParameter("ex_name", name);
+ QueryGenerator generator = new QueryGenerator("Experiment");
+ generator.setParameter("project_ID", id);
+ generator.setParameter("user_name", getWorker().getUser());
+ generator.setParameter("experiment_ID", name);
+ Query q = generator.selectQuery(em);
+// Query q = em.createQuery("SELECT p FROM Experiment p WHERE p.project_ID = :proj_id and p.user_name = :usr_name and p.experiment_ID = :ex_name");
+// q.setParameter("proj_id", id);
+// q.setParameter("usr_name", getWorker().getUser());
+// q.setParameter("ex_name", name);
Experiment experiment = (Experiment) q.getSingleResult();
ExperimentResource experimentResource = new ExperimentResource(experiment.getExperiment_ID());
experimentResource.setProject(this);
@@ -121,8 +133,9 @@ public class ProjectResource extends Abs
List<Resource> resourceList = new ArrayList<Resource>();
begin();
if (type == ResourceType.EXPERIMENT) {
- Query q = em.createQuery("SELECT p FROM Experiment p WHERE p.project_ID =:proj_ID");
- q.setParameter("proj_ID", id);
+ QueryGenerator generator = new QueryGenerator("Experiment");
+ generator.setParameter("project_ID", id);
+ Query q = generator.selectQuery(em);
List<?> results = q.getResultList();
if (results.size() != 0) {
for (Object result : results) {
Added: incubator/airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/utils/QueryGenerator.java
URL: http://svn.apache.org/viewvc/incubator/airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/utils/QueryGenerator.java?rev=1382361&view=auto
==============================================================================
--- incubator/airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/utils/QueryGenerator.java (added)
+++ incubator/airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/utils/QueryGenerator.java Sat Sep 8 20:43:18 2012
@@ -0,0 +1,88 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.apache.airavata.persistance.registry.jpa.utils;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.persistence.EntityManager;
+import javax.persistence.Query;
+
+public class QueryGenerator {
+ private String tableName;
+ private Map<String,Object> matches=new HashMap<String, Object>();
+ private static final String SELECT_OBJ="p";
+ private static final String DELETE_OBJ="p";
+ private static final String TABLE_OBJ="p";
+
+ public QueryGenerator(String tableName) {
+ setTableName(tableName);
+ }
+
+ public String getTableName() {
+ return tableName;
+ }
+ public void setTableName(String tableName) {
+ this.tableName = tableName;
+ }
+ public void addMatch(String colName, Object matchValue){
+ matches.put(colName, matchValue);
+ }
+
+ public void setParameter(String colName, Object matchValue){
+ addMatch(colName, matchValue);
+ }
+
+ public Query selectQuery(EntityManager entityManager){
+ String queryString="SELECT "+SELECT_OBJ+" FROM "+getTableName()+" "+TABLE_OBJ;
+ return generateQueryWithParameters(entityManager, queryString);
+ }
+
+ public Query deleteQuery(EntityManager entityManager){
+ String queryString="Delete "+DELETE_OBJ+" FROM "+getTableName()+" "+TABLE_OBJ;
+ return generateQueryWithParameters(entityManager, queryString);
+ }
+
+ private Query generateQueryWithParameters(EntityManager entityManager,
+ String queryString) {
+ Map<String,Object> queryParameters=new HashMap<String, Object>();
+ if (matches.size()>0){
+ String matchString = "";
+ int paramCount=0;
+ for (String colName : matches.keySet()) {
+ String paramName="param"+paramCount;
+ queryParameters.put(paramName, matches.get(colName));
+ if (!matchString.equals("")){
+ matchString+=" AND ";
+ }
+ matchString+=TABLE_OBJ+"."+colName+" =:"+paramName;
+ paramCount++;
+ }
+ queryString+=" WHERE "+matchString;
+ }
+ Query query = entityManager.createQuery(queryString);
+ for (String paramName : queryParameters.keySet()) {
+ query.setParameter(paramName, queryParameters.get(paramName));
+ }
+ return query;
+ }
+}
Propchange: incubator/airavata/trunk/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/utils/QueryGenerator.java
------------------------------------------------------------------------------
svn:mime-type = text/plain