001/*
002 * Bnd Nexus Search Plugin
003 * Copyright (C) 2017  Michael N. Lipp
004 * 
005 * This program is free software; you can redistribute it and/or modify it 
006 * under the terms of the GNU Affero General Public License as published by 
007 * the Free Software Foundation; either version 3 of the License, or 
008 * (at your option) any later version.
009 * 
010 * This program is distributed in the hope that it will be useful, but 
011 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
012 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License 
013 * for more details.
014 * 
015 * You should have received a copy of the GNU Affero General Public License along 
016 * with this program; if not, see <http://www.gnu.org/licenses/>.
017 */
018
019package de.mnl.osgi.bnd.repository.maven.nexussearch;
020
021public interface NexusSearchConfiguration {
022
023        /**
024         * The path to the local repository.
025         *
026         * @param deflt the default value
027         * @return the string
028         */
029        // default "~/.m2/repository"
030        String local(String deflt);
031
032        /**
033         * Points to a file that is used as the cache. It will be in OSGi format.
034         *
035         * @param deflt the default value
036         * @return the result
037         */
038        String location(String deflt);
039
040        /**
041         * The name of the repo. Required.
042         * 
043         * @param deflt the default value
044         * @return the result
045         */
046        String name(String deflt);
047
048        /**
049         * The URL of the server.
050         * 
051         * @return the result
052         */
053        String server();
054
055        /**
056         * The query used to search the Nexus server.
057         * 
058         * @return the result
059         */
060        String query();
061
062        /**
063         * Allow transitive dependencies
064         * 
065         * @param deflt the default value
066         * @return the result
067         */
068        boolean transitive(boolean deflt);
069
070        /** 
071         * Number of search results to consider for each artifact.
072         * 
073         * @param dflt the default value
074         * @return the result
075         */
076        int searchBreadth(int dflt);
077
078        /** 
079         * Number of artfacts to return in one query.
080         * 
081         * @param dflt the default value
082         * @return the result
083         */
084        int chunkSize(int dflt);
085}