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