Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Aug 6th, 2012  |  syntax: None  |  size: 1.34 KB  |  hits: 7  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. public class GrayScaleConvertWorkflowImpl implements GrayScaleConvertWorkflow {
  2.  
  3.     private S3ActivitiesClient s3ActivitiesClient = new S3ActivitiesClientImpl();
  4.     private ImageActivitiesClient imageActivitiesClient = new ImageActivitiesClientImpl();
  5.     private SNSActivitiesClient snsActivitiesClient = new SNSActivitiesClientImpl();
  6.  
  7.     @Override
  8.     public void execute(File imageFile) {
  9.         // 1.S3にアップロード
  10.         Promise<S3Result> s3Result = s3ActivitiesClient.upload(imageFile);
  11.  
  12.         // 2.S3からダウンロード
  13.         Promise<File> downloadTo = downloadFromS3(s3Result);
  14.  
  15.         // 3.画像コンバート
  16.         Promise<ImageOperationResult> imageOpResult = convertToGrayScale(downloadTo);
  17.  
  18.         // 4.SNSで通知
  19.         notifyOperationComplete(s3Result, imageOpResult);
  20.     }
  21.  
  22.     @Asynchronous
  23.     private Promise<File> downloadFromS3(Promise<S3Result> s3Result) {
  24.         return s3ActivitiesClient.download(s3Result);
  25.     }
  26.  
  27.     @Asynchronous
  28.     private Promise<ImageOperationResult> convertToGrayScale(Promise<File> downloadTo) {
  29.         return imageActivitiesClient.convertToGrayScale(downloadTo);
  30.     }
  31.  
  32.     @Asynchronous
  33.     private void notifyOperationComplete(Promise<S3Result> s3Result, Promise<ImageOperationResult> imageOpResult) {
  34.         snsActivitiesClient.notifyOperationComplete(s3Result, imageOpResult);
  35.     }
  36. }