update pipeline

master
yihua.huang 2013-08-04 09:53:01 +08:00
parent 21cae2ff2e
commit 04a7fa037a
2 changed files with 8 additions and 7 deletions

View File

@ -28,13 +28,15 @@ public class OOSpider extends Spider {
this(ObjectPageProcessor.create(site, pageModels)); this(ObjectPageProcessor.create(site, pageModels));
this.objectPipeline = new ObjectPipeline(); this.objectPipeline = new ObjectPipeline();
super.pipeline(objectPipeline); super.pipeline(objectPipeline);
if (pageModelPipeline!=null){
for (Class pageModel : pageModels) { for (Class pageModel : pageModels) {
this.objectPipeline.put(pageModel, pageModelPipeline); this.objectPipeline.put(pageModel, pageModelPipeline);
} }
} }
}
public static OOSpider create(Site site, Class... pageModels) { public static OOSpider create(Site site, Class... pageModels) {
return new OOSpider(site, new ConsolePageModelPipeline(), pageModels); return new OOSpider(site, null, pageModels);
} }
public static OOSpider create(Site site, PageModelPipeline pageModelPipeline, Class... pageModels) { public static OOSpider create(Site site, PageModelPipeline pageModelPipeline, Class... pageModels) {

View File

@ -35,14 +35,13 @@ public class ObjectPipeline implements Pipeline {
Object o = resultItems.get(classPageModelPipelineEntry.getKey().getCanonicalName()); Object o = resultItems.get(classPageModelPipelineEntry.getKey().getCanonicalName());
if (o != null) { if (o != null) {
Annotation annotation = classPageModelPipelineEntry.getKey().getAnnotation(ExtractBy.class); Annotation annotation = classPageModelPipelineEntry.getKey().getAnnotation(ExtractBy.class);
ExtractBy extractBy = (ExtractBy) annotation; if (annotation == null || !((ExtractBy) annotation).multi()) {
if (extractBy.multi()) { classPageModelPipelineEntry.getValue().process(o, task);
} else {
List<Object> list = (List<Object>) o; List<Object> list = (List<Object>) o;
for (Object o1 : list) { for (Object o1 : list) {
classPageModelPipelineEntry.getValue().process(o1, task); classPageModelPipelineEntry.getValue().process(o1, task);
} }
} else {
classPageModelPipelineEntry.getValue().process(o, task);
} }
} }
} }