001 package org.mycore.services.imaging.JAI.imgOperation;
002
003 import java.util.Collections;
004 import java.util.Comparator;
005 import java.util.LinkedList;
006 import java.util.List;
007
008 import javax.media.jai.PlanarImage;
009 import javax.media.jai.RenderedOp;
010
011
012 public class MCRJAIOperationList implements MCRJAIImageOp {
013 private List<MCRJAIImageOp> opList = new LinkedList<MCRJAIImageOp>();
014
015 public void addOp(MCRJAIImageOp op){
016 opList.add(op);
017 }
018
019 public RenderedOp executeOp(PlanarImage image) {
020 Comparator<? super MCRJAIImageOp> compare = new Comparator<MCRJAIImageOp>(){
021
022 public int compare(MCRJAIImageOp o1, MCRJAIImageOp o2) {
023 return o1.getOrder() - o2.getOrder();
024 }
025 };
026
027 Collections.sort(opList, compare);
028 for (MCRJAIImageOp op : opList) {
029 image = op.executeOp(image);
030 }
031
032 return (RenderedOp) image;
033 }
034
035 public int getOrder() {
036 return 0;
037 }
038
039 }