001/*
002 * To change this template, choose Tools | Templates
003 * and open the template in the editor.
004 */
005package org.anarres.qemu.exec;
006
007import java.io.File;
008import java.util.List;
009import javax.annotation.Nonnull;
010
011/**
012 *
013 * @author shevek
014 */
015public class QEmuKernelOption extends AbstractQEmuOption {
016
017    private final File kernel;
018    private File initrd;
019    private String append;
020
021    public QEmuKernelOption(@Nonnull File kernel) {
022        this.kernel = kernel;
023    }
024
025    public QEmuKernelOption(@Nonnull String kernel) {
026        this(new File(kernel));
027    }
028
029    @Nonnull
030    public QEmuKernelOption withInitrd(@Nonnull File initrd) {
031        this.initrd = initrd;
032        return this;
033    }
034
035    @Nonnull
036    public QEmuKernelOption withInitrd(@Nonnull String initrd) {
037        return withInitrd(new File(initrd));
038    }
039
040    @Nonnull
041    public QEmuKernelOption withAppend(@Nonnull String append) {
042        this.append = append;
043        return this;
044    }
045
046    @Override
047    public void appendTo(List<? super String> line) {
048        add(line, "-kernel", kernel.getAbsolutePath());
049        if (initrd != null)
050            add(line, "-initrd", initrd.getAbsolutePath());
051        if (append != null)
052            add(line, "-append", append);
053    }
054}