001    /**
002     * Copyright (c) 2000-2013 Liferay, Inc. All rights reserved.
003     *
004     * This library is free software; you can redistribute it and/or modify it under
005     * the terms of the GNU Lesser General Public License as published by the Free
006     * Software Foundation; either version 2.1 of the License, or (at your option)
007     * any later version.
008     *
009     * This library is distributed in the hope that it will be useful, but WITHOUT
010     * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
011     * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
012     * details.
013     */
014    
015    package com.liferay.portal.kernel.search;
016    
017    import com.liferay.portal.kernel.json.JSON;
018    
019    import java.util.ArrayList;
020    import java.util.List;
021    
022    /**
023     * @author Brian Wing Shun Chan
024     * @author Bruno Farache
025     */
026    public class HitsImpl implements Hits {
027    
028            public HitsImpl() {
029            }
030    
031            @Override
032            public Document doc(int n) {
033                    return _docs[n];
034            }
035    
036            @JSON
037            @Override
038            public Document[] getDocs() {
039                    return _docs;
040            }
041    
042            @Override
043            public int getLength() {
044                    return _length;
045            }
046    
047            @JSON(include = false)
048            @Override
049            public Query getQuery() {
050                    return _query;
051            }
052    
053            @JSON
054            @Override
055            public String[] getQueryTerms() {
056                    return _queryTerms;
057            }
058    
059            @JSON
060            @Override
061            public float[] getScores() {
062                    return _scores;
063            }
064    
065            @Override
066            public float getSearchTime() {
067                    return _searchTime;
068            }
069    
070            @JSON
071            @Override
072            public String[] getSnippets() {
073                    return _snippets;
074            }
075    
076            @Override
077            public long getStart() {
078                    return _start;
079            }
080    
081            @Override
082            public float score(int n) {
083                    return _scores[n];
084            }
085    
086            @Override
087            public void setDocs(Document[] docs) {
088                    _docs = docs;
089            }
090    
091            @Override
092            public void setLength(int length) {
093                    _length = length;
094            }
095    
096            @Override
097            public void setQuery(Query query) {
098                    _query = query;
099            }
100    
101            @Override
102            public void setQueryTerms(String[] queryTerms) {
103                    _queryTerms = queryTerms;
104            }
105    
106            @Override
107            public void setScores(float[] scores) {
108                    _scores = scores;
109            }
110    
111            @Override
112            public void setScores(Float[] scores) {
113                    float[] primScores = new float[scores.length];
114    
115                    for (int i = 0; i < scores.length; i++) {
116                            primScores[i] = scores[i].floatValue();
117                    }
118    
119                    setScores(primScores);
120            }
121    
122            @Override
123            public void setSearchTime(float time) {
124                    _searchTime = time;
125            }
126    
127            @Override
128            public void setSnippets(String[] snippets) {
129                    _snippets = snippets;
130            }
131    
132            @Override
133            public void setStart(long start) {
134                    _start = start;
135            }
136    
137            @Override
138            public String snippet(int n) {
139                    return _snippets[n];
140            }
141    
142            @Override
143            public List<Document> toList() {
144                    List<Document> subset = new ArrayList<Document>(_docs.length);
145    
146                    for (Document _doc : _docs) {
147                            subset.add(_doc);
148                    }
149    
150                    return subset;
151            }
152    
153            private Document[] _docs;
154            private int _length;
155            private Query _query;
156            private String[] _queryTerms;
157            private float[] _scores = new float[0];
158            private float _searchTime;
159            private String[] _snippets = {};
160            private long _start;
161    
162    }