// Path: webcrawler-downloader/src/main/java/com/zongtui/webcrawler/sourceer/ResultItems.java
// public class ResultItems {
// 
//     private Map<String, Object> fields = new LinkedHashMap<String, Object>();
// 
//     private Request request;
// 
//     private boolean skip;
// 
//     public <T> T get(String key) {
//         Object o = fields.get(key);
//         if (o == null) {
//             return null;
//         }
//         return (T) fields.get(key);
//     }
// 
//     public Map<String, Object> getAll() {
//         return fields;
//     }
// 
//     public <T> ResultItems put(String key, T value) {
//         fields.put(key, value);
//         return this;
//     }
// 
//     public Request getRequest() {
//         return request;
//     }
// 
//     public ResultItems setRequest(Request request) {
//         this.request = request;
//         return this;
//     }
// 
//     /**
//      * Whether to skip the result.<br>
//      * Result which is skipped will not be processed by Pipeline.
//      *
//      * @return whether to skip the result
//      */
//     public boolean isSkip() {
//         return skip;
//     }
// 
// 
//     /**
//      * Set whether to skip the result.<br>
//      * Result which is skipped will not be processed by Pipeline.
//      *
//      * @param skip whether to skip the result
//      * @return this
//      */
//     public ResultItems setSkip(boolean skip) {
//         this.skip = skip;
//         return this;
//     }
// 
//     @Override
//     public String toString() {
//         return "ResultItems{" +
//                 "fields=" + fields +
//                 ", request=" + request +
//                 ", skip=" + skip +
//                 '}';
//     }
// }
// 
// Path: webcrawler-downloader/src/main/java/com/zongtui/webcrawler/sourceer/Task.java
// public interface Task {
// 
//     /**
//      * unique id for a task.
//      *
//      * @return uuid
//      */
//     public String getUUID();
// 
//     /**
//      * site of a task
//      *
//      * @return site
//      */
//     public Site getSite();
// 
// }


import java.util.Map;
import com.zongtui.webcrawler.sourceer.ResultItems;
import com.zongtui.webcrawler.sourceer.Task;

package com.zongtui.webcrawler.sourceer.pipeline;



/**
 * Write results in console.<br>
 * Usually used in test.
 *
 * @author code4crafter@gmail.com <br>
 * @since 0.1.0
 */
public class ConsolePipeline implements Pipeline {

    @Override
    public void process(ResultItems resultItems, Task task) {
        System.out.println("get page: " + resultItems.getRequest().getUrl());

// Path: webcrawler-downloader/src/main/java/com/zongtui/webcrawler/sourceer/ResultItems.java
// public class ResultItems {
// 
//     private Map<String, Object> fields = new LinkedHashMap<String, Object>();
// 
//     private Request request;
// 
//     private boolean skip;
// 
//     public <T> T get(String key) {
//         Object o = fields.get(key);
//         if (o == null) {
//             return null;
//         }
//         return (T) fields.get(key);
//     }
// 
//     public Map<String, Object> getAll() {
//         return fields;
//     }
// 
//     public <T> ResultItems put(String key, T value) {
//         fields.put(key, value);
//         return this;
//     }
// 
//     public Request getRequest() {
//         return request;
//     }
// 
//     public ResultItems setRequest(Request request) {
//         this.request = request;
//         return this;
//     }
// 
//     /**
//      * Whether to skip the result.<br>
//      * Result which is skipped will not be processed by Pipeline.
//      *
//      * @return whether to skip the result
//      */
//     public boolean isSkip() {
//         return skip;
//     }
// 
// 
//     /**
//      * Set whether to skip the result.<br>
//      * Result which is skipped will not be processed by Pipeline.
//      *
//      * @param skip whether to skip the result
//      * @return this
//      */
//     public ResultItems setSkip(boolean skip) {
//         this.skip = skip;
//         return this;
//     }
// 
//     @Override
//     public String toString() {
//         return "ResultItems{" +
//                 "fields=" + fields +
//                 ", request=" + request +
//                 ", skip=" + skip +
//                 '}';
//     }
// }
// 
// Path: webcrawler-downloader/src/main/java/com/zongtui/webcrawler/sourceer/Task.java
// public interface Task {
// 
//     /**
//      * unique id for a task.
//      *
//      * @return uuid
//      */
//     public String getUUID();
// 
//     /**
//      * site of a task
//      *
//      * @return site
//      */
//     public Site getSite();
// 
// }


// Path: webcrawler-downloader/src/main/java/com/zongtui/webcrawler/sourceer/pipeline/ConsolePipeline.java
import java.util.Map;
import com.zongtui.webcrawler.sourceer.ResultItems;
import com.zongtui.webcrawler.sourceer.Task;

package com.zongtui.webcrawler.sourceer.pipeline;



/**
 * Write results in console.<br>
 * Usually used in test.
 *
 * @author code4crafter@gmail.com <br>
 * @since 0.1.0
 */
public class ConsolePipeline implements Pipeline {

    @Override
    public void process(ResultItems resultItems, Task task) {
        System.out.println("get page: " + resultItems.getRequest().getUrl());

        for (Map.Entry<String, Object> entry : resultItems.getAll().entrySet()) {
