Changeset 7ac6484


Ignore:
Timestamp:
Aug 3, 2010, 3:46:07 PM (8 years ago)
Author:
Michael Seifert <mseifert@…>
Branches:
master
Children:
7d4a5e6
Parents:
c4faca2
Message:

Searching indexed properties with wildcard works properly;
Added unit test for the normalize function of FullTextindex?;
Added license headers

Files:
1 added
2 edited

Legend:

Unmodified
Added
Removed
  • core/src/main/java/de/erichseifert/warp/core/io/search/indices/FullTextIndex.java

    rc4faca2 r7ac6484  
    6868         * @return Normalized string.
    6969         */
    70         private List<String> normalize(String str, boolean keepWildcard) {
     70        protected List<String> normalize(String str, boolean keepWildcard) {
    7171                LinkedList<String> results = new LinkedList<String>();
    7272                str = str.toLowerCase();
    7373                String[] splitQuery = splitPattern.split(str);
    74                 String wildcard = "";
     74                boolean appendWildcardPrevious = false;
     75                boolean appendWildcardNext = false;
     76                boolean mergeParts = false;
    7577                for (String queryPart : splitQuery) {
    7678                        Matcher matcher = wordPattern.matcher(queryPart);
    7779                        if (matcher.matches()) {
    78                                 results.add(wildcard+queryPart);
    79                                 wildcard = "";
     80                                if (appendWildcardPrevious) {
     81                                        if (!results.isEmpty()) {
     82                                                results.add(results.pollLast()+WILDCARD);
     83                                        }
     84                                        else {
     85                                                results.add(WILDCARD);
     86                                        }
     87                                        appendWildcardPrevious = false;
     88                                }
     89
     90                                if (appendWildcardNext) {
     91                                        results.add(WILDCARD);
     92                                        appendWildcardNext = false;
     93                                        mergeParts = true;
     94                                }
     95
     96                                if (mergeParts) {
     97                                        results.add(results.pollLast()+queryPart);
     98                                        mergeParts = false;
     99                                }
     100                                else {
     101                                        results.add(queryPart);
     102                                }
    80103                        }
    81104                        else if (keepWildcard) {
    82                                 if (queryPart.endsWith(WILDCARD)) {
    83                                         wildcard = WILDCARD;
     105                                if (WILDCARD.equals(queryPart)) {
     106                                        appendWildcardPrevious = true;
     107                                        mergeParts = true;
    84108                                }
    85                                 else if (queryPart.startsWith(WILDCARD)) {
    86                                          results.add(results.pop()+WILDCARD);
     109                                else {
     110                                        if (queryPart.startsWith(WILDCARD)) {
     111                                                appendWildcardPrevious = true;
     112                                        }
     113                                        if (queryPart.endsWith(WILDCARD)) {
     114                                                appendWildcardNext = true;
     115                                        }
    87116                                }
    88117                        }
     118                }
     119                // If the last wildcard has not been added yet
     120                if (appendWildcardPrevious) {
     121                        results.add(results.pollLast()+WILDCARD);
    89122                }
    90123                return results;
  • gui.swing/src/main/java/de/erichseifert/warp/gui/swing/renderers/ReplayRendererFactory.java

    rc4faca2 r7ac6484  
     1/**
     2 * WARP: WARP is a Replay Manager for Java(R)
     3 *
     4 * (C) Copyright 2010-2010 Michael Seifert <michael.seifert[at]gmx.net>
     5 *
     6 * This file is part of WARP.
     7 *
     8 * WARP is free software: you can redistribute it and/or modify
     9 * it under the terms of the GNU General Public License as published by
     10 * the Free Software Foundation, either version 3 of the License, or
     11 * (at your option) any later version.
     12 *
     13 * WARP is distributed in the hope that it will be useful,
     14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
     15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     16 * GNU General Public License for more details.
     17 *
     18 * You should have received a copy of the GNU General Public License
     19 * along with WARP.  If not, see <http://www.gnu.org/licenses/>.
     20 */
     21
    122package de.erichseifert.warp.gui.swing.renderers;
    223
Note: See TracChangeset for help on using the changeset viewer.