[HepData-svn] r1788 - trunk/hepdata-webapp/src/main/java/cedar/hepdata/webapp/query

blackhole at projects.hepforge.org blackhole at projects.hepforge.org
Mon Apr 28 15:59:36 BST 2014


Author: whalley
Date: Mon Apr 28 15:59:36 2014
New Revision: 1788

Log:
adding AuthorDate search and removing automatic truncation on all reaction searched

Modified:
   trunk/hepdata-webapp/src/main/java/cedar/hepdata/webapp/query/ConstructQueryPaper.java

Modified: trunk/hepdata-webapp/src/main/java/cedar/hepdata/webapp/query/ConstructQueryPaper.java
==============================================================================
--- trunk/hepdata-webapp/src/main/java/cedar/hepdata/webapp/query/ConstructQueryPaper.java	Thu Apr 17 17:11:01 2014	(r1787)
+++ trunk/hepdata-webapp/src/main/java/cedar/hepdata/webapp/query/ConstructQueryPaper.java	Mon Apr 28 15:59:36 2014	(r1788)
@@ -158,7 +158,14 @@
        else if(inspireid != null) { return InspireId(inspireid,flag,_session);}
        else if(doi != null) { return Doi(doi,flag,_session);}
        else if(redid != null) { return RedId(redid,flag,_session);}
-       else if(author != null) { return Author(author,flag,_session);}
+       else if(author != null) { 
+           if(date != null){
+               return AuthorDate(author,date,flag,_session);
+           }
+           else{
+               return Author(author,flag,_session);
+           }
+       }
        else if(dsreaction!= null) { return DsReaction(dsreaction,dsobservable,flag,_session);}
        else if(experiment != null) {
            if(date  != null){
@@ -722,6 +729,34 @@
        }
        return q;
     }
+////// query constructor for Author only///
+    public static Query AuthorDate(String author,String date, String flag,  org.hibernate.Session _session){
+       String theAuth=author;
+       String theDate=date;
+       Query q=null;         
+       StringBuffer b = new StringBuffer();
+           
+       if (flag.equals("count")){
+     	   b.append("select count(p.HepdataId) from Papers p, PaperAuthors pa, PaperRefs pr");
+       }
+       else{
+     	   b.append("select * from Papers p, PaperAuthors pa, PaperRefs pr");
+      }
+       b.append(" where p.PAPER_ID=pa.PAPER_ID");
+       b.append(" and p.PAPER_ID=pr.PAPER_ID");
+       b.append(" and pa.element like '");
+       b.append(author);
+       b.append("' and pr.date like '");
+       b.append(date);
+       b.append("' order by p.InspireId desc");
+       if(flag.equals("count")){
+           q = _session.createSQLQuery(b.toString());
+       }
+       else{
+           q = _session.createSQLQuery(b.toString()).addEntity("p",Paper.class);
+       }
+       return q;
+    }
 /////////////// now the query constructer for Papers /////////////////
 
 
@@ -783,7 +818,7 @@
             b.append(" where p.PAPER_ID=ds._paper_PAPER_ID");
             b.append(" and (dr.DsReactions like '");
             b.append(reaction);
-            b.append("%'");
+            b.append("'");
             
             if(!reaction.endsWith("%")){
                 List<String> fsp = new ArrayList();
@@ -797,14 +832,14 @@
                             if(fsp.size()==2
                                              &&n2!=n1){
                                  if(n1!=0&&n2!=1)
-                                 {b.append(" or dr.DsReactions like '"+is+" --> "+fsp.get(n1)+" "+fsp.get(n2)+"%'");}
+                                 {b.append(" or dr.DsReactions like '"+is+" --> "+fsp.get(n1)+" "+fsp.get(n2)+"'");}
                              } 
                              else{
                                 for(int n3=0; n3<fsp.size(); n3++){
                                     if(fsp.size()==3
                                                     &&n3!=n2&&n3!=n1
                                                     &&n2!=n1){
-                                    b.append(" or dr.DsReactions like '"+is+" --> "+fsp.get(n1)+" "+fsp.get(n2)+" "+fsp.get(n3)+"%'");
+                                    b.append(" or dr.DsReactions like '"+is+" --> "+fsp.get(n1)+" "+fsp.get(n2)+" "+fsp.get(n3)+"'");
                                     }
                                     else{
                                         for(int n4=0; n4<fsp.size(); n4++){
@@ -812,7 +847,7 @@
                                                                  &&n4!=n3&&n4!=n2&&n4!=n1
                                                                  &&n3!=n2&&n3!=n1
                                                                  &&n2!=n1){
-                                            b.append(" or dr.DsReactions like '"+is+" --> "+fsp.get(n1)+" "+fsp.get(n2)+" "+fsp.get(n3)+" "+fsp.get(n4)+"%'");
+                                            b.append(" or dr.DsReactions like '"+is+" --> "+fsp.get(n1)+" "+fsp.get(n2)+" "+fsp.get(n3)+" "+fsp.get(n4)+"'");
                                             }
                                             else{
                                                 for(int n5=0; n5<fsp.size(); n5++){
@@ -821,7 +856,7 @@
                                                                  &&n4!=n3&&n4!=n2&&n4!=n1
                                                                  &&n3!=n2&&n3!=n1
                                                                  &&n2!=n1){
-                                                    b.append(" or dr.DsReactions like '"+is+" --> "+fsp.get(n1)+" "+fsp.get(n2)+" "+fsp.get(n3)+" "+fsp.get(n4)+" "+fsp.get(n5)+"%'");
+                                                    b.append(" or dr.DsReactions like '"+is+" --> "+fsp.get(n1)+" "+fsp.get(n2)+" "+fsp.get(n3)+" "+fsp.get(n4)+" "+fsp.get(n5)+"'");
                                                     }
                                                     else{
                                                         for(int n6=0; n6<fsp.size(); n6++){
@@ -831,7 +866,7 @@
                                                                  &&n4!=n3&&n4!=n2&&n4!=n1
                                                                  &&n3!=n2&&n3!=n1
                                                                  &&n2!=n1){
-                                                            b.append(" or dr.DsReactions like '"+is+" --> "+fsp.get(n1)+" "+fsp.get(n2)+" "+fsp.get(n3)+" "+fsp.get(n4)+" "+fsp.get(n5)+" "+fsp.get(n6)+"%'");
+                                                            b.append(" or dr.DsReactions like '"+is+" --> "+fsp.get(n1)+" "+fsp.get(n2)+" "+fsp.get(n3)+" "+fsp.get(n4)+" "+fsp.get(n5)+" "+fsp.get(n6)+"'");
                                                             }
                                                         }
                                                     }


More information about the HepData-svn mailing list