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.objectPipeline = new ObjectPipeline();
super.pipeline(objectPipeline);
for (Class pageModel : pageModels) {
this.objectPipeline.put(pageModel, pageModelPipeline);
if (pageModelPipeline!=null){
for (Class pageModel : pageModels) {
this.objectPipeline.put(pageModel, pageModelPipeline);
}
}
}
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) {

View File

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