public static class Processor1 implements Processor {
@Override
public Email handleEmail(Email email, int nextpos, ArrayList<Processor> processors) {
//当前处理器可以继续将email交给下一个环扣 等待下一个环扣的反馈,也可以选择拦截处理结果
// 在这个处理器中,处理器选择优先处理,处理完成后再交接给下一个链条结
email.result = email.result + " 添加重要性标签" ;
EmailChain next = new EmailChain(nextpos, email, processors);
email = next.proceed(email);
return email;
}
}
public static class Processor2 implements Processor {
@Override
public Email handleEmail(Email email, int nextpos, ArrayList<Processor> processors) {
//当前处理器可以继续将email交给下一个环扣 等待下一个环扣的反馈,也可以选择拦截处理结果
// 在这个处理器中,处理器选择将处理权限优先交给下一个链条结处理,等待返回后自己再处理
EmailChain next = new EmailChain(nextpos, email, processors);
email = next.proceed(email);
email.result = email.result + " 移入指定文件夹" ;
return email;
}
}
public static class Processor3 implements Processor {
@Override
public Email handleEmail(Email email, int nextpos, ArrayList<Processor> processors) {
//当前处理器可以继续将email交给下一个环扣 等待下一个环扣的反馈,也可以选择拦截处理结果
// 在这个处理器中,处理器选择优先处理,处理完成后再交接给下一个链条结
email.result = email.result + " 添加提醒" ;
EmailChain next = new EmailChain(nextpos, email, processors);
email = next.proceed(email);
return email;
}
}
|