// Path: webimageloader/src/main/java/com/webimageloader/transformation/Transformation.java
// public interface Transformation {
//     /**
//      * Get the identified for this transformation. It should be unique and include any
//      * Parameters passed to this transformation.
//      *
//      * @return the identifier
//      */
//     String getIdentifier();
// 
//     /**
//      * Get the format used when saving the result of this transformation. This
//      * can be useful for example when relying on alpha.
//      *
//      * @return the bitmap compress format, null for default
//      */
//     Bitmap.CompressFormat getCompressFormat();
// 
//     /**
//      * Transform this {@link InputSupplier} to a {@link Bitmap}.
//      *
//      * @param input original {@link InputSupplier}
//      * @return transformed {@link Bitmap}
//      * @throws IOException if the conversion failed
//      */
//     Bitmap transform(InputSupplier input) throws IOException;
// 
//     /**
//      * Transform this {@link Bitmap} to a new {@link Bitmap}.
//      *
//      * @param b original {@link Bitmap}
//      * @return transformed {@link Bitmap}
//      */
//     Bitmap transform(Bitmap b);
// }


import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import com.webimageloader.transformation.Transformation;
import android.graphics.Bitmap;
        // over in multiple threads
        standardChain = Collections.unmodifiableList(standardChain);
        transformationChain = Collections.unmodifiableList(transformationChain);

        pendingRequests = new PendingRequests(memoryCache);
    }

    public MemoryCache getMemoryCache() {
        return memoryCache;
    }

    public Bitmap load(Object tag, LoaderRequest request, Listener listener) {
        Bitmap b = pendingRequests.getBitmap(tag, request);
        if (b != null) {
            return b;
        }

        // Send an empty listener instead of null
        if (listener == null) {
            listener = EMPTY_LISTENER;
        }

        LoaderWork work = pendingRequests.addRequest(tag, request, listener);

        // A request is already pending, don't load anything
        if (work == null) {
            return null;
        }

        // Use different chains depending if we have a transformation or not
// Path: webimageloader/src/main/java/com/webimageloader/transformation/Transformation.java
// public interface Transformation {
//     /**
//      * Get the identified for this transformation. It should be unique and include any
//      * Parameters passed to this transformation.
//      *
//      * @return the identifier
//      */
//     String getIdentifier();
// 
//     /**
//      * Get the format used when saving the result of this transformation. This
//      * can be useful for example when relying on alpha.
//      *
//      * @return the bitmap compress format, null for default
//      */
//     Bitmap.CompressFormat getCompressFormat();
// 
//     /**
//      * Transform this {@link InputSupplier} to a {@link Bitmap}.
//      *
//      * @param input original {@link InputSupplier}
//      * @return transformed {@link Bitmap}
//      * @throws IOException if the conversion failed
//      */
//     Bitmap transform(InputSupplier input) throws IOException;
// 
//     /**
//      * Transform this {@link Bitmap} to a new {@link Bitmap}.
//      *
//      * @param b original {@link Bitmap}
//      * @return transformed {@link Bitmap}
//      */
//     Bitmap transform(Bitmap b);
// }


// Path: webimageloader/src/main/java/com/webimageloader/loader/LoaderManager.java
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import com.webimageloader.transformation.Transformation;
import android.graphics.Bitmap;

        // over in multiple threads
        standardChain = Collections.unmodifiableList(standardChain);
        transformationChain = Collections.unmodifiableList(transformationChain);

        pendingRequests = new PendingRequests(memoryCache);
    }

    public MemoryCache getMemoryCache() {
        return memoryCache;
    }

    public Bitmap load(Object tag, LoaderRequest request, Listener listener) {
        Bitmap b = pendingRequests.getBitmap(tag, request);
        if (b != null) {
            return b;
        }

        // Send an empty listener instead of null
        if (listener == null) {
            listener = EMPTY_LISTENER;
        }

        LoaderWork work = pendingRequests.addRequest(tag, request, listener);

        // A request is already pending, don't load anything
        if (work == null) {
            return null;
        }

        // Use different chains depending if we have a transformation or not
        Transformation t = request.getTransformation();