package seedu.oneline.logic.commands;

import seedu.oneline.commons.core.Messages;
import seedu.oneline.commons.core.UnmodifiableObservableList;
import seedu.oneline.commons.exceptions.IllegalCmdArgsException;
import seedu.oneline.commons.exceptions.IllegalValueException;
import seedu.oneline.logic.parser.Parser;
import seedu.oneline.model.task.ReadOnlyTask;
import seedu.oneline.model.task.UniqueTaskList.TaskNotFoundException;

public class DeleteTagCommand extends DeleteCommand {

    public DeleteTagCommand(int targetIndex) {
        super(targetIndex);
    }
    
    public static DeleteTagCommand createFromArgs(String args) throws IllegalValueException {

        return null; //stub
    }
    
    @Override
    public CommandResult execute() {
        return null; //stub
    }
    
}

@@ -70,143 +70,34 @@
 ore.
-Messages;%0Aimport seedu.oneline.commons.core.UnmodifiableObservableList;%0Aimport seedu.oneline.commons.exceptions.IllegalCmdArgsException
+UnmodifiableObservableList
 ;%0Aim
@@ -182,27 +182,21 @@
 ine.
-logic.parser.Parser
+model.tag.Tag
 ;%0Aim
@@ -242,78 +242,8 @@
 ask;
-%0Aimport seedu.oneline.model.task.UniqueTaskList.TaskNotFoundException;
 %0A%0Apu
@@ -291,24 +291,63 @@
 eCommand %7B%0A%0A
+    private final String tagName;%0A    %0A
     public D
@@ -366,23 +366,22 @@
 and(
+Str
 in
-t targetIndex
+g tagName
 ) %7B%0A
@@ -392,26 +392,30 @@
     
-super(targetIndex)
+this.tagName = tagName
 ;%0A  
@@ -517,25 +517,24 @@
 ption %7B%0A
-%0A
         
 return n
@@ -525,35 +525,261 @@
         
-return null; //stub
+String tagName = args.substring(1);%0A        if (!Tag.isValidTagName(tagName)) %7B%0A            throw new IllegalValueException(Tag.MESSAGE_TAG_CONSTRAINTS + %22 : %22 + args);%0A        %7D else %7B%0A            return new DeleteTagCommand(tagName);%0A        %7D
 %0A    %7D%0A 
@@ -872,10 +872,87 @@
  %7D%0A    %0A
+    @Override%0A    public boolean canUndo() %7B%0A        return true;%0A    %7D%0A    %0A
 %7D%0A

Implement createfromargs