xref: /OpenGrok/opengrok-indexer/src/main/java/org/opengrok/indexer/index/NumLinesLOCUtil.java (revision fb4fc4bcc2970158c11a79b4070ebcd0797d96d6)
1*41351de3SChris Fraire /*
2*41351de3SChris Fraire  * CDDL HEADER START
3*41351de3SChris Fraire  *
4*41351de3SChris Fraire  * The contents of this file are subject to the terms of the
5*41351de3SChris Fraire  * Common Development and Distribution License (the "License").
6*41351de3SChris Fraire  * You may not use this file except in compliance with the License.
7*41351de3SChris Fraire  *
8*41351de3SChris Fraire  * See LICENSE.txt included in this distribution for the specific
9*41351de3SChris Fraire  * language governing permissions and limitations under the License.
10*41351de3SChris Fraire  *
11*41351de3SChris Fraire  * When distributing Covered Code, include this CDDL HEADER in each
12*41351de3SChris Fraire  * file and include the License file at LICENSE.txt.
13*41351de3SChris Fraire  * If applicable, add the following below this CDDL HEADER, with the
14*41351de3SChris Fraire  * fields enclosed by brackets "[]" replaced with your own identifying
15*41351de3SChris Fraire  * information: Portions Copyright [yyyy] [name of copyright owner]
16*41351de3SChris Fraire  *
17*41351de3SChris Fraire  * CDDL HEADER END
18*41351de3SChris Fraire  */
19*41351de3SChris Fraire 
20*41351de3SChris Fraire /*
21*41351de3SChris Fraire  * Copyright (c) 2020, Chris Fraire <cfraire@me.com>.
22*41351de3SChris Fraire  */
23*41351de3SChris Fraire package org.opengrok.indexer.index;
24*41351de3SChris Fraire 
25*41351de3SChris Fraire import org.apache.lucene.document.Document;
26*41351de3SChris Fraire import org.opengrok.indexer.analysis.NullableNumLinesLOC;
27*41351de3SChris Fraire import org.opengrok.indexer.analysis.NumLinesLOC;
28*41351de3SChris Fraire import org.opengrok.indexer.search.QueryBuilder;
29*41351de3SChris Fraire import org.opengrok.indexer.util.NumberUtil;
30*41351de3SChris Fraire 
31*41351de3SChris Fraire /**
32*41351de3SChris Fraire  * Represents a utility class for handling related to {@link NumLinesLOC}.
33*41351de3SChris Fraire  */
34*41351de3SChris Fraire public class NumLinesLOCUtil {
35*41351de3SChris Fraire 
36*41351de3SChris Fraire     /**
37*41351de3SChris Fraire      * Reads data, if they exist, from the specified document.
38*41351de3SChris Fraire      * @return a defined instance
39*41351de3SChris Fraire      */
read(Document doc)40*41351de3SChris Fraire     public static NullableNumLinesLOC read(Document doc) {
41*41351de3SChris Fraire         String path = doc.get(QueryBuilder.D);
42*41351de3SChris Fraire         if (path == null) {
43*41351de3SChris Fraire             path = doc.get(QueryBuilder.PATH);
44*41351de3SChris Fraire         }
45*41351de3SChris Fraire         Long numLines = NumberUtil.tryParseLong(doc.get(QueryBuilder.NUML));
46*41351de3SChris Fraire         Long loc = NumberUtil.tryParseLong(doc.get(QueryBuilder.LOC));
47*41351de3SChris Fraire         return new NullableNumLinesLOC(path, numLines, loc);
48*41351de3SChris Fraire     }
49*41351de3SChris Fraire 
50*41351de3SChris Fraire     /* private to enforce static */
NumLinesLOCUtil()51*41351de3SChris Fraire     private NumLinesLOCUtil() {
52*41351de3SChris Fraire     }
53*41351de3SChris Fraire }
54