Changeset 1908 for trunk/src


Ignore:
Timestamp:
Jun 1, 2011, 4:05:21 PM (9 years ago)
Author:
robert@…
Message:

Improvements in querying in order to be able to refine searches in a module.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/groovy/dbnp/query/Search.groovy

    r1904 r1908  
    5252         */
    5353        public int id;
     54       
     55        /**
     56         * Description of this search. Defaults to 'Search <id>'
     57         */
     58        public String description;
     59       
     60        /**
     61         * URL to view the results of this search
     62         */
     63        public String url;
    5464
    5565        /**
     
    948958       
    949959        public String toString() {
    950                 return ( this.entity ? this.entity + " search" : "Search" ) + " " + this.id
     960                if( this.description ) {
     961                        return this.description
     962                } else if( this.entity ) {
     963                        return this.entity + " search " + this.id;
     964                } else {
     965                        return "Search " + this.id
     966                }
    951967        }
    952968       
     
    960976                Search s = (Search) o;
    961977               
     978                // Determine criteria equality
     979                def criteriaEqual = false;
     980                if( !criteria && !s.criteria ) {
     981                        criteriaEqual = true;
     982                } else if( criteria && s.criteria ) {
     983                        criteriaEqual = criteria.size()== s.criteria.size() &&
     984                                                        s.criteria.containsAll( criteria ) &&
     985                                                        criteria.containsAll( s.criteria )
     986                }
     987                       
    962988                return (        searchMode              == s.searchMode &&
    963                                         entity                  == s.entity &&
    964                                         criteria.size() == s.criteria.size() &&
    965                                         s.criteria.containsAll( criteria ) &&
    966                                         criteria.containsAll( s.criteria ) );
     989                                        entity                  == s.entity &&
     990                                        criteriaEqual
     991                );
    967992        }
    968993       
     
    9821007        }
    9831008       
     1009        /**
     1010         * Registers a query that has been performed somewhere else, but used in GSCF (e.g. refined)
     1011         *
     1012         * @param description   Description of the search       
     1013         * @param url                   Url to view the search results
     1014         * @param entity                Entity that has been sought
     1015         * @param results               List of
     1016         * @return
     1017         */
     1018        public static Search register( String description, String url, String entity, def results ) {
     1019                Search s;
     1020               
     1021                // Determine entity
     1022                switch( entity ) {
     1023                        case "Study":
     1024                                s = new StudySearch();
     1025                                break;
     1026                        case "Assay":
     1027                                s = new AssaySearch();
     1028                                break;
     1029                        case "Sample":
     1030                                s = new SampleSearch();
     1031                                break;
     1032                        default:
     1033                                return null;
     1034                }
     1035               
     1036                // Set properties
     1037                s.description = description;
     1038                s.url = url
     1039                s.results = results
     1040               
     1041                return s;
     1042        }
    9841043}
Note: See TracChangeset for help on using the changeset viewer.