001package org.biopax.paxtools.command; 002 003import org.biopax.paxtools.model.BioPAXElement; 004import org.biopax.paxtools.model.Model; 005 006import java.util.Set; 007 008 009public abstract class AbstractAddRemoveCommand implements Command 010{ 011 Model model; 012 Set<BioPAXElement> bpes; 013 014 public AbstractAddRemoveCommand(Model model, Set<BioPAXElement> bpes) 015 { 016 this.model = model; 017 this.bpes = bpes; 018 } 019 020 public boolean undo() 021 { 022 try 023 { 024 for (BioPAXElement bpe : bpes) 025 { 026 undoAction(bpe); 027 } 028 return true; 029 } 030 catch (Exception e) 031 { 032 return false; 033 } 034 } 035 036 protected abstract void undoAction(BioPAXElement bpe); 037 038 public boolean canUndo() 039 { 040 return true; 041 } 042 043 public boolean redo() 044 { 045 try 046 { 047 for (BioPAXElement bpe : bpes) 048 { 049 redoAction(bpe); 050 } 051 return true; 052 } 053 catch (Exception e) 054 { 055 return false; 056 } 057 } 058 059 protected abstract void redoAction(BioPAXElement bpe); 060}