import java.io.File;
import java.lang.reflect.Type;
+import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
valueElement.addContent(child.clone());
}
renameElement(getChildWithName(valueElement, TASK_TEXT), PLACEHOLDER_TEXT);
+ List<Element> additionalHints = ContainerUtil.map(getChildList(valueElement, ADDITIONAL_HINTS), Element::clone);
+ Element hint = getChildWithName(valueElement, HINT);
+ Element firstHint = new Element(OPTION).setAttribute(VALUE, hint.getAttributeValue(VALUE));
+ List<Element> newHints = new ArrayList<>();
+ newHints.add(firstHint);
+ newHints.addAll(additionalHints);
+ addChildList(valueElement, "hints", newHints);
}
}
}
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
import com.intellij.openapi.diagnostic.Logger;
-import com.intellij.util.xmlb.annotations.Transient;
import org.jetbrains.annotations.NotNull;
-import org.jetbrains.annotations.Nullable;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.List;
public class AnswerPlaceholderSubtaskInfo {
private static final Logger LOG = Logger.getInstance(AnswerPlaceholderSubtaskInfo.class);
- @SerializedName("hint")
- @Expose private String myHint = "";
- @SerializedName("additional_hints")
- @Expose private List<String> myAdditionalHints = new ArrayList<>();
+ @SerializedName("hints")
+ @Expose private List<String> myHints = new ArrayList<>();
@SerializedName("possible_answer")
@Expose private String possibleAnswer = "";
myStatus = status;
}
- @Transient
- public List<String> getHints() {
- if (myHint.isEmpty() && myAdditionalHints.isEmpty()) return Collections.emptyList();
- final ArrayList<String> result = new ArrayList<>();
- result.add(myHint);
- result.addAll(myAdditionalHints);
- return result;
- }
-
- @Transient
- public void setHints(@NotNull final List<String> hints) {
- if (hints.isEmpty()) {
- myHint = "";
- myAdditionalHints.clear();
- }
- else {
- myHint = hints.get(0);
- myAdditionalHints = hints.subList(1, hints.size());
- }
- }
-
public void addHint(@NotNull final String text) {
- if (myHint.isEmpty() && myAdditionalHints.isEmpty()) {
- myHint = text;
- }
- else {
- myAdditionalHints.add(text);
- }
+ myHints.add(text);
}
public void removeHint(int i) {
- if (i == 0) {
- myHint = "";
+ if (i < myHints.size()) {
+ myHints.remove(i);
}
else {
- if (i - 1 <myAdditionalHints.size()) {
- myAdditionalHints.remove(i - 1);
- }
- else {
- LOG.warn("Trying to remove nonexistent hint. Hint to remove number: " + (i - 1) + "number of hints: " + getHints().size());
- }
+ LOG.warn("Trying to remove nonexistent hint. Hint to remove number: " + i + " number of hints: " + myHints.size());
}
}
- @NotNull
- public List<String> getAdditionalHints() {
- return myAdditionalHints;
+ public List<String> getHints() {
+ return myHints;
}
- public void setAdditionalHints(@Nullable final List<String> additionalHints) {
- myAdditionalHints = additionalHints;
+ public void setHints(List<String> hints) {
+ myHints = hints;
}
public String getPossibleAnswer() {
myPlaceholderText = placeholderText;
}
- public String getHint() {
- return myHint;
- }
-
- public void setHint(String hint) {
- myHint = hint;
- }
-
public boolean getSelected() {
return mySelected;
}