act.installer.bing.UsageTermUrlSet.java Source code

Java tutorial

Introduction

Here is the source code for act.installer.bing.UsageTermUrlSet.java

Source

/*************************************************************************
*                                                                        *
*  This file is part of the 20n/act project.                             *
*  20n/act enables DNA prediction for synthetic biology/bioengineering.  *
*  Copyright (C) 2017 20n Labs, Inc.                                     *
*                                                                        *
*  Please direct all queries to act@20n.com.                             *
*                                                                        *
*  This program is free software: you can redistribute it and/or modify  *
*  it under the terms of the GNU General Public License as published by  *
*  the Free Software Foundation, either version 3 of the License, or     *
*  (at your option) any later version.                                   *
*                                                                        *
*  This program is distributed in the hope that it will be useful,       *
*  but WITHOUT ANY WARRANTY; without even the implied warranty of        *
*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
*  GNU General Public License for more details.                          *
*                                                                        *
*  You should have received a copy of the GNU General Public License     *
*  along with this program.  If not, see <http://www.gnu.org/licenses/>. *
*                                                                        *
*************************************************************************/

package act.installer.bing;

import com.mongodb.BasicDBList;
import com.mongodb.BasicDBObject;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import java.util.HashSet;
import java.util.Set;

/**
 * This class represents a single usage term with the set of URLs it was found in
 * (more exactly in the associated description).
 * Provides methods for populating the object and translating it to BasicDBObject
 */

public class UsageTermUrlSet {
    private static final Logger LOGGER = LogManager.getFormatterLogger(UsageTermUrlSet.class);

    private String usageTerm;
    private Set<String> urlSet = new HashSet<>();

    public Set<String> getUrlSet() {
        return urlSet;
    }

    public UsageTermUrlSet(String usageTerm) {
        this.usageTerm = usageTerm;
    }

    public void populateUrlsFromNameSearchResults(NameSearchResults nameSearchResults) {
        Set<SearchResult> topSearchResults = nameSearchResults.getTopSearchResults();
        if (topSearchResults == null) {
            LOGGER.debug("Top search results have not been initialized for %s", nameSearchResults.getName());
            return;
        }
        for (SearchResult searchResult : topSearchResults) {
            String description = searchResult.getDescription();
            if (description.toLowerCase().contains(usageTerm)) {
                urlSet.add(searchResult.getUrl());
            }
        }
    }

    public BasicDBObject getBasicDBObject() {
        BasicDBObject usageTermUrlSetBasicDBObject = new BasicDBObject("usage_term", usageTerm);
        BasicDBList urlsBasicDBList = new BasicDBList();
        for (String url : urlSet) {
            urlsBasicDBList.add(url);
        }
        usageTermUrlSetBasicDBObject.put("urls", urlsBasicDBList);
        return usageTermUrlSetBasicDBObject;
    }

}