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");
			}
		}
	}

}

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

Add Apache license header