// Path: src/main/java/jp/gr/java_conf/daisy/ajax_mutator/mutatable/TimerEventAttachment.java
// public class TimerEventAttachment extends Mutatable {
//     private final TimerEventType timerEventType;
//     private AstNode callback;
//     private AstNode duration;
// 
//     public TimerEventAttachment(AstNode node, AstNode callback,
//             AstNode duration, TimerEventType timerEventType) {
//         super(node);
//         this.timerEventType = timerEventType;
//         this.callback = callback;
//         this.duration = duration;
//     }
// 
//     public TimerEventType getTimerEventType() {
//         return timerEventType;
//     }
// 
//     public AstNode getCallback() {
//         return callback;
//     }
// 
//     public AstNode getDuration() {
//         return duration;
//     }
// 
//     @Override
//     public String toString() {
//         StringBuilder builder = new StringBuilder();
//         builder.append(super.toString()).append('\n');
//         builder.append("  ").append("Timer event attachment: [callback:");
//         builder.append(Util.oneLineStringOf(callback));
//         builder.append(", duration:").append(duration.toSource());
//         builder.append("]");
//         return builder.toString();
//     }
// 
//     public enum TimerEventType {
//         SET_TIMEOUT, SET_INTERVAL
//     }
// }


import jp.gr.java_conf.daisy.ajax_mutator.mutatable.TimerEventAttachment;
import org.mozilla.javascript.ast.AstNode;
import java.util.Collection;
package jp.gr.java_conf.daisy.ajax_mutator.mutator.replacing_among;



/**
 * @author Kazuki Nishiura
 */
public class TimerEventDurationRAMutator
        extends AbstractReplacingAmongMutator<TimerEventAttachment> {
    public TimerEventDurationRAMutator(Collection<TimerEventAttachment> mutationTargets) {
        super(TimerEventAttachment.class, mutationTargets);
    }

    @Override
    protected AstNode getFocusedNode(TimerEventAttachment node) {
// Path: src/main/java/jp/gr/java_conf/daisy/ajax_mutator/mutatable/TimerEventAttachment.java
// public class TimerEventAttachment extends Mutatable {
//     private final TimerEventType timerEventType;
//     private AstNode callback;
//     private AstNode duration;
// 
//     public TimerEventAttachment(AstNode node, AstNode callback,
//             AstNode duration, TimerEventType timerEventType) {
//         super(node);
//         this.timerEventType = timerEventType;
//         this.callback = callback;
//         this.duration = duration;
//     }
// 
//     public TimerEventType getTimerEventType() {
//         return timerEventType;
//     }
// 
//     public AstNode getCallback() {
//         return callback;
//     }
// 
//     public AstNode getDuration() {
//         return duration;
//     }
// 
//     @Override
//     public String toString() {
//         StringBuilder builder = new StringBuilder();
//         builder.append(super.toString()).append('\n');
//         builder.append("  ").append("Timer event attachment: [callback:");
//         builder.append(Util.oneLineStringOf(callback));
//         builder.append(", duration:").append(duration.toSource());
//         builder.append("]");
//         return builder.toString();
//     }
// 
//     public enum TimerEventType {
//         SET_TIMEOUT, SET_INTERVAL
//     }
// }


// Path: src/main/java/jp/gr/java_conf/daisy/ajax_mutator/mutator/replacing_among/TimerEventDurationRAMutator.java
import jp.gr.java_conf.daisy.ajax_mutator.mutatable.TimerEventAttachment;
import org.mozilla.javascript.ast.AstNode;
import java.util.Collection;

package jp.gr.java_conf.daisy.ajax_mutator.mutator.replacing_among;



/**
 * @author Kazuki Nishiura
 */
public class TimerEventDurationRAMutator
        extends AbstractReplacingAmongMutator<TimerEventAttachment> {
    public TimerEventDurationRAMutator(Collection<TimerEventAttachment> mutationTargets) {
        super(TimerEventAttachment.class, mutationTargets);
    }

    @Override
    protected AstNode getFocusedNode(TimerEventAttachment node) {
        return node.getDuration();