/*
 * Copyright 2012-2018 MarkLogic Corporation
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.marklogic.hub.collector;

import com.marklogic.client.DatabaseClient;
import com.marklogic.hub.HubConfig;
import com.marklogic.hub.flow.CodeFormat;

import java.util.Map;

public interface Collector {

    CodeFormat getCodeFormat();
    String getModule();

    void setHubConfig(HubConfig config);
    HubConfig getHubConfig();

    void setClient(DatabaseClient client);
    DatabaseClient getClient();

    DiskQueue<String> run(String jobId, String entity, String flow, int threadCount, Map<String, Object> options);
}

@@ -824,208 +824,1389 @@
     
-CodeFormat getCodeFormat();%0A    String getModule();%0A%0A    void setHubConfig(HubConfig config);%0A    HubConfig getHubConfig();%0A%0A    void setClient(DatabaseClient client);%0A    DatabaseClient getClient();%0A
+/**%0A     * Obtains the code format for the collector in use%0A     * @return xqy or sjs (xquery or javascript)%0A     */%0A    CodeFormat getCodeFormat();%0A%0A    /**%0A     * Returns the module for the collect%0A     * @return the code in string form%0A     */%0A    String getModule();%0A%0A    /**%0A     * Set's the hub config for the collector%0A     * @param config takes in a HubConfig object%0A     */%0A    void setHubConfig(HubConfig config);%0A%0A    /**%0A     * Returns the current hubConfig ont he collector object%0A     * @return current hub config in use by collector%0A     */%0A    HubConfig getHubConfig();%0A%0A    /**%0A     * Sets the client to be used to communicate with the database%0A     * @param client - a databaseclient to use%0A     */%0A    void setClient(DatabaseClient client);%0A%0A    /**%0A     * Gets the client in use currently by the collector object%0A     * @return a database client object%0A     */%0A    DatabaseClient getClient();%0A%0A    /**%0A     * Obtains and grabs a list of uris that match the collector code%0A     * @param jobId - id of the job this is to have%0A     * @param entity - name of which entity is this being run against%0A     * @param flow - name of which flow%0A     * @param threadCount - how many threads to use for the operation%0A     * @param options - string/object map of options you want to pass to the collector%0A     * @return a list of uris as strings in a diskqueue object%0A     */
 %0A   

Add javdocs for collector interface