This is an automated email from the ASF dual-hosted git repository. juanpablo pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/jspwiki.git
commit d94e958d666b6cd91e5dc67b8dc20e5d74e8a0e0 Author: juanpablo <[email protected]> AuthorDate: Tue Jan 28 21:17:05 2020 +0100 apply format and fixes suggested by intellij to classes under the org.apache.wiki.search package --- .../apache/wiki/search/BasicSearchProvider.java | 143 +++++++++------------ .../java/org/apache/wiki/search/QueryItem.java | 3 +- .../java/org/apache/wiki/search/SearchMatcher.java | 49 +++---- .../org/apache/wiki/search/SearchProvider.java | 17 +-- .../java/org/apache/wiki/search/SearchResult.java | 3 +- .../apache/wiki/search/SearchResultComparator.java | 7 +- 6 files changed, 93 insertions(+), 129 deletions(-) diff --git a/jspwiki-main/src/main/java/org/apache/wiki/search/BasicSearchProvider.java b/jspwiki-main/src/main/java/org/apache/wiki/search/BasicSearchProvider.java index 3f2d58b..12e2887 100644 --- a/jspwiki-main/src/main/java/org/apache/wiki/search/BasicSearchProvider.java +++ b/jspwiki-main/src/main/java/org/apache/wiki/search/BasicSearchProvider.java @@ -42,30 +42,28 @@ import java.util.TreeSet; * * @since 2.2.21. */ -public class BasicSearchProvider implements SearchProvider -{ - private static final Logger log = Logger.getLogger(BasicSearchProvider.class); +public class BasicSearchProvider implements SearchProvider { + + private static final Logger log = Logger.getLogger( BasicSearchProvider.class ); private WikiEngine m_engine; /** * {@inheritDoc} */ - public void initialize(WikiEngine engine, Properties props) - throws NoRequiredPropertyException, IOException - { + public void initialize( final WikiEngine engine, final Properties props ) throws NoRequiredPropertyException, IOException { m_engine = engine; } /** * {@inheritDoc} */ - public void pageRemoved(WikiPage page) {} + public void pageRemoved( final WikiPage page ) {} /** * {@inheritDoc} */ - public void reindexPage(WikiPage page) {} + public void reindexPage( final WikiPage page ) {} /** * Parses a query into something that we can use. @@ -73,74 +71,61 @@ public class BasicSearchProvider implements SearchProvider * @param query A query string. * @return A parsed array. */ - public QueryItem[] parseQuery(String query) - { - StringTokenizer st = new StringTokenizer( query, " \t," ); - - QueryItem[] items = new QueryItem[st.countTokens()]; + public QueryItem[] parseQuery( final String query) { + final StringTokenizer st = new StringTokenizer( query, " \t," ); + final QueryItem[] items = new QueryItem[st.countTokens()]; int word = 0; log.debug("Expecting "+items.length+" items"); - // // Parse incoming search string - // - - while( st.hasMoreTokens() ) - { - log.debug("Item "+word); + while( st.hasMoreTokens() ) { + log.debug( "Item " + word ); String token = st.nextToken().toLowerCase(); - items[word] = new QueryItem(); + items[ word ] = new QueryItem(); - switch( token.charAt(0) ) - { - case '+': - items[word].type = QueryItem.REQUIRED; - token = token.substring(1); - log.debug("Required word: "+token); + switch( token.charAt( 0 ) ) { + case '+': + items[ word ].type = QueryItem.REQUIRED; + token = token.substring( 1 ); + log.debug( "Required word: " + token ); break; - case '-': - items[word].type = QueryItem.FORBIDDEN; - token = token.substring(1); - log.debug("Forbidden word: "+token); + case '-': + items[ word ].type = QueryItem.FORBIDDEN; + token = token.substring( 1 ); + log.debug( "Forbidden word: " + token ); break; - default: - items[word].type = QueryItem.REQUESTED; - log.debug("Requested word: "+token); + default: + items[ word ].type = QueryItem.REQUESTED; + log.debug( "Requested word: " + token ); break; } - items[word++].word = token; + items[ word++ ].word = token; } return items; } - private String attachmentNames(WikiPage page, String separator) - { - if(m_engine.getAttachmentManager().hasAttachments(page)) - { - List< Attachment > attachments; - try - { - attachments = m_engine.getAttachmentManager().listAttachments(page); - } - catch (ProviderException e) - { - log.error("Unable to get attachments for page", e); + private String attachmentNames( final WikiPage page ) { + if( m_engine.getAttachmentManager().hasAttachments( page ) ) { + final List< Attachment > attachments; + try { + attachments = m_engine.getAttachmentManager().listAttachments( page ); + } catch( final ProviderException e ) { + log.error( "Unable to get attachments for page", e ); return ""; } - StringBuilder attachmentNames = new StringBuilder(); - for( Iterator< Attachment > it = attachments.iterator(); it.hasNext(); ) - { - Attachment att = it.next(); - attachmentNames.append(att.getName()); - if(it.hasNext()) { - attachmentNames.append(separator); + final StringBuilder attachmentNames = new StringBuilder(); + for( final Iterator< Attachment > it = attachments.iterator(); it.hasNext(); ) { + final Attachment att = it.next(); + attachmentNames.append( att.getName() ); + if( it.hasNext() ) { + attachmentNames.append( " " ); } } return attachmentNames.toString(); @@ -149,42 +134,36 @@ public class BasicSearchProvider implements SearchProvider return ""; } - private Collection< SearchResult > findPages( QueryItem[] query, WikiContext wikiContext ) - { - TreeSet<SearchResult> res = new TreeSet<>( new SearchResultComparator() ); - SearchMatcher matcher = new SearchMatcher( m_engine, query ); - - Collection< WikiPage > allPages = null; + private Collection< SearchResult > findPages( final QueryItem[] query, final WikiContext wikiContext ) { + final TreeSet< SearchResult > res = new TreeSet<>( new SearchResultComparator() ); + final SearchMatcher matcher = new SearchMatcher( m_engine, query ); + final Collection< WikiPage > allPages; try { allPages = m_engine.getPageManager().getAllPages(); - } catch( ProviderException pe ) { + } catch( final ProviderException pe ) { log.error( "Unable to retrieve page list", pe ); return null; } - AuthorizationManager mgr = m_engine.getAuthorizationManager(); + final AuthorizationManager mgr = m_engine.getAuthorizationManager(); - Iterator< WikiPage > it = allPages.iterator(); - while( it.hasNext() ) { + for( final WikiPage page : allPages ) { try { - WikiPage page = it.next(); - if (page != null) { - - PagePermission pp = new PagePermission( page, PagePermission.VIEW_ACTION ); - if( wikiContext==null || mgr.checkPermission( wikiContext.getWikiSession(), pp ) ) { - String pageName = page.getName(); - String pageContent = m_engine.getPageManager().getPageText(pageName, WikiPageProvider.LATEST_VERSION) + - attachmentNames(page, " "); - SearchResult comparison = matcher.matchPageContent( pageName, pageContent ); - - if( comparison != null ) { - res.add( comparison ); - } - } - } - } catch( ProviderException pe ) { + if( page != null ) { + final PagePermission pp = new PagePermission( page, PagePermission.VIEW_ACTION ); + if( wikiContext == null || mgr.checkPermission( wikiContext.getWikiSession(), pp ) ) { + final String pageName = page.getName(); + final String pageContent = + m_engine.getPageManager().getPageText( pageName, WikiPageProvider.LATEST_VERSION ) + attachmentNames( page ); + final SearchResult comparison = matcher.matchPageContent( pageName, pageContent ); + if( comparison != null ) { + res.add( comparison ); + } + } + } + } catch( final ProviderException pe ) { log.error( "Unable to retrieve page from cache", pe ); - } catch( IOException ioe ) { + } catch( final IOException ioe ) { log.error( "Failed to search page", ioe ); } } @@ -195,8 +174,8 @@ public class BasicSearchProvider implements SearchProvider /** * {@inheritDoc} */ - public Collection< SearchResult > findPages(String query, WikiContext wikiContext) { - return findPages(parseQuery(query), wikiContext); + public Collection< SearchResult > findPages( final String query, final WikiContext wikiContext ) { + return findPages( parseQuery( query ), wikiContext ); } /** diff --git a/jspwiki-main/src/main/java/org/apache/wiki/search/QueryItem.java b/jspwiki-main/src/main/java/org/apache/wiki/search/QueryItem.java index ad18b27..acbb74a 100644 --- a/jspwiki-main/src/main/java/org/apache/wiki/search/QueryItem.java +++ b/jspwiki-main/src/main/java/org/apache/wiki/search/QueryItem.java @@ -20,8 +20,7 @@ package org.apache.wiki.search; /** - * This simple class just fulfils the role of a container for searches. It tells the word and whether it is - * requested or not. + * This simple class just fulfils the role of a container for searches. It tells the word and whether it is requested or not. */ public class QueryItem { diff --git a/jspwiki-main/src/main/java/org/apache/wiki/search/SearchMatcher.java b/jspwiki-main/src/main/java/org/apache/wiki/search/SearchMatcher.java index 71c67ca..c741ac7 100644 --- a/jspwiki-main/src/main/java/org/apache/wiki/search/SearchMatcher.java +++ b/jspwiki-main/src/main/java/org/apache/wiki/search/SearchMatcher.java @@ -18,19 +18,18 @@ */ package org.apache.wiki.search; -import java.io.IOException; -import java.io.BufferedReader; -import java.io.StringReader; - import org.apache.wiki.WikiEngine; import org.apache.wiki.WikiPage; +import java.io.BufferedReader; +import java.io.IOException; +import java.io.StringReader; + /** - * SearchMatcher performs the task of matching a search query to a page's - * contents. This utility class is isolated to simplify WikiPageProvider - * implementations and to offer an easy target for upgrades. The upcoming(?) - * TranslatorReader rewrite will presumably invalidate this, among other things. + * SearchMatcher performs the task of matching a search query to a page's contents. This utility class is isolated to simplify + * WikiPageProvider implementations and to offer an easy target for upgrades. The upcoming(?) TranslatorReader rewrite will + * presumably invalidate this, among other things. * * @since 2.1.5 */ @@ -45,15 +44,14 @@ public class SearchMatcher { * @param engine The WikiEngine * @param queries A list of queries */ - public SearchMatcher( WikiEngine engine, QueryItem[] queries ) { + public SearchMatcher( final WikiEngine engine, final QueryItem[] queries ) { m_engine = engine; m_queries = queries != null ? queries.clone() : null; } /** - * Compares the page content, available through the given stream, to the - * query items of this matcher. Returns a search result object describing - * the quality of the match. + * Compares the page content, available through the given stream, to the query items of this matcher. Returns a search result + * object describing the quality of the match. * * <p>This method would benefit of regexps (1.4) and streaming. FIXME! * @@ -62,14 +60,14 @@ public class SearchMatcher { * @return A SearchResult item, or null, there are no queries * @throws IOException If reading page content fails */ - public SearchResult matchPageContent( String wikiname, String pageText ) throws IOException { + public SearchResult matchPageContent( final String wikiname, final String pageText ) throws IOException { if( m_queries == null ) { return null; } - int[] scores = new int[ m_queries.length ]; - BufferedReader in = new BufferedReader( new StringReader( pageText ) ); - String line = null; + final int[] scores = new int[ m_queries.length ]; + final BufferedReader in = new BufferedReader( new StringReader( pageText ) ); + String line; while( (line = in.readLine() ) != null ) { line = line.toLowerCase(); @@ -88,29 +86,21 @@ public class SearchMatcher { } } - // // Check that we have all required words. - // int totalscore = 0; for( int j = 0; j < scores.length; j++ ) { - // Give five points for each occurrence - // of the word in the wiki name. - - if( wikiname.toLowerCase().indexOf( m_queries[j].word ) != -1 && m_queries[j].type != QueryItem.FORBIDDEN ) { + // Give five points for each occurrence of the word in the wiki name. + if( wikiname.toLowerCase().contains( m_queries[ j ].word ) && m_queries[j].type != QueryItem.FORBIDDEN ) { scores[j] += 5; } - // Filter out pages if the search word is marked 'required' - // but they have no score. - + // Filter out pages if the search word is marked 'required' but they have no score. if( m_queries[j].type == QueryItem.REQUIRED && scores[j] == 0 ) { return null; } - // // Count the total score for this page. - // totalscore += scores[j]; } @@ -135,7 +125,7 @@ public class SearchMatcher { * @param name Page Name * @param score A score from 0+ */ - public SearchResultImpl( String name, int score ) { + public SearchResultImpl( final String name, final int score ) { m_page = new WikiPage( m_engine, name ); m_score = score; } @@ -158,8 +148,7 @@ public class SearchMatcher { } /** - * Returns an empty array, since BasicSearchProvider does not support - * context matching. + * Returns an empty array, since BasicSearchProvider does not support context matching. * * @return an empty array */ diff --git a/jspwiki-main/src/main/java/org/apache/wiki/search/SearchProvider.java b/jspwiki-main/src/main/java/org/apache/wiki/search/SearchProvider.java index c72c488..1c2fc3c 100644 --- a/jspwiki-main/src/main/java/org/apache/wiki/search/SearchProvider.java +++ b/jspwiki-main/src/main/java/org/apache/wiki/search/SearchProvider.java @@ -18,26 +18,26 @@ */ package org.apache.wiki.search; -import java.io.IOException; -import java.util.Collection; - import org.apache.wiki.WikiContext; import org.apache.wiki.WikiPage; import org.apache.wiki.WikiProvider; import org.apache.wiki.api.exceptions.ProviderException; +import java.io.IOException; +import java.util.Collection; + /** * Interface for the search providers that handle searching the Wiki * * @since 2.2.21. */ -public interface SearchProvider extends WikiProvider -{ +public interface SearchProvider extends WikiProvider { + /** * Delete a page from the search index * @param page Page to remove from search index */ - void pageRemoved(WikiPage page); + void pageRemoved( WikiPage page ); /** * Adds a WikiPage for indexing queue. This is called a queue, since @@ -46,7 +46,7 @@ public interface SearchProvider extends WikiProvider * * @param page The WikiPage to be indexed. */ - void reindexPage(WikiPage page); + void reindexPage( WikiPage page ); /** * Search for pages matching a search query @@ -56,5 +56,6 @@ public interface SearchProvider extends WikiProvider * @throws ProviderException if the search provider failed. * @throws IOException if for some reason the query could not be executed. */ - Collection< SearchResult > findPages(String query, WikiContext wikiContext) throws ProviderException, IOException; + Collection< SearchResult > findPages( String query, WikiContext wikiContext ) throws ProviderException, IOException; + } diff --git a/jspwiki-main/src/main/java/org/apache/wiki/search/SearchResult.java b/jspwiki-main/src/main/java/org/apache/wiki/search/SearchResult.java index 161c6bf..34b0d88 100644 --- a/jspwiki-main/src/main/java/org/apache/wiki/search/SearchResult.java +++ b/jspwiki-main/src/main/java/org/apache/wiki/search/SearchResult.java @@ -39,8 +39,7 @@ public interface SearchResult { * @return A positive score value. Note that there is no upper limit for the score. */ int getScore(); - - + /** * Collection of XHTML fragments representing some contexts in which the match was made (a.k.a., "snippets"). * diff --git a/jspwiki-main/src/main/java/org/apache/wiki/search/SearchResultComparator.java b/jspwiki-main/src/main/java/org/apache/wiki/search/SearchResultComparator.java index dd3a180..e727c06 100644 --- a/jspwiki-main/src/main/java/org/apache/wiki/search/SearchResultComparator.java +++ b/jspwiki-main/src/main/java/org/apache/wiki/search/SearchResultComparator.java @@ -30,16 +30,13 @@ public class SearchResultComparator implements Comparator< SearchResult >, Seria private static final long serialVersionUID = 1L; /** - * Compares two SearchResult objects, returning - * the one that scored higher. + * Compares two SearchResult objects, returning the one that scored higher. * * {@inheritDoc} */ - public int compare( SearchResult s1, SearchResult s2 ) { + public int compare( final SearchResult s1, final SearchResult s2 ) { // Bigger scores are first. - int res = s2.getScore() - s1.getScore(); - if( res == 0 ) { res = s1.getPage().getName().compareTo( s2.getPage().getName() ); }
