
Untitled
By: a guest on
Aug 6th, 2012 | syntax:
None | size: 1.34 KB | hits: 7 | expires: Never
public class GrayScaleConvertWorkflowImpl implements GrayScaleConvertWorkflow {
private S3ActivitiesClient s3ActivitiesClient = new S3ActivitiesClientImpl();
private ImageActivitiesClient imageActivitiesClient = new ImageActivitiesClientImpl();
private SNSActivitiesClient snsActivitiesClient = new SNSActivitiesClientImpl();
@Override
public void execute(File imageFile) {
// 1.S3にアップロード
Promise<S3Result> s3Result = s3ActivitiesClient.upload(imageFile);
// 2.S3からダウンロード
Promise<File> downloadTo = downloadFromS3(s3Result);
// 3.画像コンバート
Promise<ImageOperationResult> imageOpResult = convertToGrayScale(downloadTo);
// 4.SNSで通知
notifyOperationComplete(s3Result, imageOpResult);
}
@Asynchronous
private Promise<File> downloadFromS3(Promise<S3Result> s3Result) {
return s3ActivitiesClient.download(s3Result);
}
@Asynchronous
private Promise<ImageOperationResult> convertToGrayScale(Promise<File> downloadTo) {
return imageActivitiesClient.convertToGrayScale(downloadTo);
}
@Asynchronous
private void notifyOperationComplete(Promise<S3Result> s3Result, Promise<ImageOperationResult> imageOpResult) {
snsActivitiesClient.notifyOperationComplete(s3Result, imageOpResult);
}
}