package net.redwarp.tool.resizer;

import java.io.File;

import net.redwarp.tool.resizer.table.Operation;
import net.redwarp.tool.resizer.table.OperationStatus;
import net.redwarp.tool.resizer.worker.ImageScaler;
import net.redwarp.tool.resizer.worker.ScreenDensity;

public class FileProcessor {

	public interface FileProcessorStatusListener {
		void onSuccess();

		void onFailure(String msg);
	}

	private ImageScaler scaler;
	FileProcessorStatusListener listener;
	String fileName;

	public FileProcessor(String name, FileProcessorStatusListener l) {
		fileName = name;
		listener = l;
		if (name.endsWith(".png") || name.endsWith(".jpg")) {
			Operation operation = new Operation(new File(name));

			scaler = new ImageScaler(operation,
					ScreenDensity.getDefaultInputDensity()) {
				@Override
				protected void process(java.util.List<Operation> chunks) {
					for (Operation operation : chunks) {
						OperationStatus status = operation.getStatus();
						if (status == OperationStatus.FINISH) {
							if (listener != null) {
								listener.onSuccess();
							}
						} else if (status == OperationStatus.ERROR) {
							listener.onFailure(operation.getMessage());
						}
					}
				}
			};
		}
	}

	public void process() {
		if (scaler != null) {
			scaler.post();
		} else {
			if (listener != null) {
				listener.onFailure("processor for argument:" + fileName
						+ " is null");
			}
		}
	}

}

/*
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 * Copyright 2014 Jean-Baptiste Lab
 */
package net.redwarp.tool.resizer;

import java.io.File;

import net.redwarp.tool.resizer.table.Operation;
import net.redwarp.tool.resizer.table.OperationStatus;
import net.redwarp.tool.resizer.worker.ImageScaler;
import net.redwarp.tool.resizer.worker.ScreenDensity;

public class FileProcessor {

	public interface FileProcessorStatusListener {
		void onSuccess();

		void onFailure(String msg);
	}

	private ImageScaler scaler;
	FileProcessorStatusListener listener;
	String fileName;

	public FileProcessor(String name, FileProcessorStatusListener l) {
		fileName = name;
		listener = l;
		if (name.endsWith(".png") || name.endsWith(".jpg")) {
			Operation operation = new Operation(new File(name));

			scaler = new ImageScaler(operation,
					ScreenDensity.getDefaultInputDensity()) {
				@Override
				protected void process(java.util.List<Operation> chunks) {
					for (Operation operation : chunks) {
						OperationStatus status = operation.getStatus();
						if (status == OperationStatus.FINISH) {
							if (listener != null) {
								listener.onSuccess();
							}
						} else if (status == OperationStatus.ERROR) {
							listener.onFailure(operation.getMessage());
						}
					}
				}
			};
		}
	}

	public void process() {
		if (scaler != null) {
			scaler.post();
		} else {
			if (listener != null) {
				listener.onFailure("processor for argument:" + fileName
						+ " is null");
			}
		}
	}

}

Add Apache license header