[Tex] Change TexCommand.parameters to immutable
Change-Id: I48198596b6b152a04f46735359ff2eeafcba351e
diff --git a/docmlet/org.eclipse.statet.docmlet.tex.core/src/org/eclipse/statet/docmlet/tex/core/ast/LtxParser.java b/docmlet/org.eclipse.statet.docmlet.tex.core/src/org/eclipse/statet/docmlet/tex/core/ast/LtxParser.java
index 91865b2..e7a888d 100644
--- a/docmlet/org.eclipse.statet.docmlet.tex.core/src/org/eclipse/statet/docmlet/tex/core/ast/LtxParser.java
+++ b/docmlet/org.eclipse.statet.docmlet.tex.core/src/org/eclipse/statet/docmlet/tex/core/ast/LtxParser.java
@@ -784,7 +784,7 @@
}
this.lexer.setReportAsterisk(false);
}
- List<Parameter> parameters;
+ List<? extends Parameter> parameters;
if (!(parameters= command.getParameters()).isEmpty()) {
int nextArg= 0;
final List<TexAstNode> children= new ArrayList<>();
diff --git a/docmlet/org.eclipse.statet.docmlet.tex.core/src/org/eclipse/statet/docmlet/tex/core/ast/TexAsts.java b/docmlet/org.eclipse.statet.docmlet.tex.core/src/org/eclipse/statet/docmlet/tex/core/ast/TexAsts.java
index a9a7ec2..b108d7d 100644
--- a/docmlet/org.eclipse.statet.docmlet.tex.core/src/org/eclipse/statet/docmlet/tex/core/ast/TexAsts.java
+++ b/docmlet/org.eclipse.statet.docmlet.tex.core/src/org/eclipse/statet/docmlet/tex/core/ast/TexAsts.java
@@ -18,8 +18,6 @@
import static org.eclipse.statet.docmlet.tex.core.ast.TexAstStatusConstants.TYPE123_GROUP_NOT_CLOSED;
-import java.util.List;
-
import org.eclipse.statet.jcommons.lang.NonNullByDefault;
import org.eclipse.statet.jcommons.lang.Nullable;
import org.eclipse.statet.jcommons.text.core.BasicTextRegion;
@@ -43,7 +41,7 @@
* @return array with the resolved arguments (items can be <code>null</code>)
*/
public static @Nullable TexAstNode[] resolveArguments(final ControlNode node) {
- final List<Parameter> parameters= nonNullAssert(node.getCommand()).getParameters();
+ final var parameters= nonNullAssert(node.getCommand()).getParameters();
final @Nullable TexAstNode[] resolved= new @Nullable TexAstNode[parameters.size()];
int idxArgs= 0, idxValues= 0;
while (idxArgs < resolved.length && idxValues < node.getChildCount()) {
diff --git a/docmlet/org.eclipse.statet.docmlet.tex.core/src/org/eclipse/statet/docmlet/tex/core/commands/LtxFontCommand.java b/docmlet/org.eclipse.statet.docmlet.tex.core/src/org/eclipse/statet/docmlet/tex/core/commands/LtxFontCommand.java
index 609331e..97bd09f 100644
--- a/docmlet/org.eclipse.statet.docmlet.tex.core/src/org/eclipse/statet/docmlet/tex/core/commands/LtxFontCommand.java
+++ b/docmlet/org.eclipse.statet.docmlet.tex.core/src/org/eclipse/statet/docmlet/tex/core/commands/LtxFontCommand.java
@@ -14,8 +14,7 @@
package org.eclipse.statet.docmlet.tex.core.commands;
-import java.util.List;
-
+import org.eclipse.statet.jcommons.collections.ImList;
import org.eclipse.statet.jcommons.lang.NonNullByDefault;
@@ -23,13 +22,16 @@
public class LtxFontCommand extends TexCommand {
- public LtxFontCommand(final int type, final String word, final String description) {
- super(type, word, description);
- }
-
- public LtxFontCommand(final int type, final String word, final List<Parameter> parameters,
+ public LtxFontCommand(final int type,
+ final String word, final ImList<? extends Parameter> parameters,
final String description) {
super(type, word, false, parameters, description);
}
+ public LtxFontCommand(final int type,
+ final String word,
+ final String description) {
+ super(type, word, description);
+ }
+
}
diff --git a/docmlet/org.eclipse.statet.docmlet.tex.core/src/org/eclipse/statet/docmlet/tex/core/commands/LtxPrintCommand.java b/docmlet/org.eclipse.statet.docmlet.tex.core/src/org/eclipse/statet/docmlet/tex/core/commands/LtxPrintCommand.java
index 1a858ab..c0df853 100644
--- a/docmlet/org.eclipse.statet.docmlet.tex.core/src/org/eclipse/statet/docmlet/tex/core/commands/LtxPrintCommand.java
+++ b/docmlet/org.eclipse.statet.docmlet.tex.core/src/org/eclipse/statet/docmlet/tex/core/commands/LtxPrintCommand.java
@@ -14,8 +14,7 @@
package org.eclipse.statet.docmlet.tex.core.commands;
-import java.util.List;
-
+import org.eclipse.statet.jcommons.collections.ImList;
import org.eclipse.statet.jcommons.lang.NonNullByDefault;
@@ -26,13 +25,16 @@
private final String unicode;
- public LtxPrintCommand(final int type, final String word, final String description,
+ public LtxPrintCommand(final int type,
+ final String word,
+ final String description,
final String unicode) {
super(type, word, description);
this.unicode= unicode;
}
- public LtxPrintCommand(final int type, final String word, final List<Parameter> parameters,
+ public LtxPrintCommand(final int type,
+ final String word, final ImList<? extends Parameter> parameters,
final String description,
final String unicode) {
super(type, word, false, parameters, description);
diff --git a/docmlet/org.eclipse.statet.docmlet.tex.core/src/org/eclipse/statet/docmlet/tex/core/commands/TexCommand.java b/docmlet/org.eclipse.statet.docmlet.tex.core/src/org/eclipse/statet/docmlet/tex/core/commands/TexCommand.java
index b286ffb..447f2ef 100644
--- a/docmlet/org.eclipse.statet.docmlet.tex.core/src/org/eclipse/statet/docmlet/tex/core/commands/TexCommand.java
+++ b/docmlet/org.eclipse.statet.docmlet.tex.core/src/org/eclipse/statet/docmlet/tex/core/commands/TexCommand.java
@@ -14,13 +14,13 @@
package org.eclipse.statet.docmlet.tex.core.commands;
-import java.util.Collections;
-import java.util.List;
import java.util.Locale;
import com.ibm.icu.text.Collator;
import com.ibm.icu.text.RuleBasedCollator;
+import org.eclipse.statet.jcommons.collections.ImCollections;
+import org.eclipse.statet.jcommons.collections.ImList;
import org.eclipse.statet.jcommons.lang.NonNullByDefault;
import org.eclipse.statet.jcommons.lang.Nullable;
@@ -226,7 +226,7 @@
}
- private static final List<Parameter> NO_PARAMS= Collections.emptyList();
+ private static final ImList<? extends Parameter> NO_PARAMS= ImCollections.emptyList();
/*package*/ static final Collator COLLATOR= Collator.getInstance(Locale.ENGLISH);
static {
@@ -237,7 +237,7 @@
private final int type;
private final String word;
private final boolean supportAserisk;
- private final List<Parameter> parameters;
+ private final ImList<? extends Parameter> parameters;
private final String description;
@@ -245,8 +245,9 @@
public TexCommand(final int type,
- final String word, final boolean asterisk, final List<Parameter> parameters,
- final @Nullable TexPackage texPackage, final String description) {
+ final String word, final boolean asterisk, final ImList<? extends Parameter> parameters,
+ final @Nullable TexPackage texPackage,
+ final String description) {
this.type= type;
this.word= word;
this.supportAserisk= asterisk;
@@ -256,12 +257,14 @@
}
public TexCommand(final int type,
- final String word, final boolean asterisk, final List<Parameter> parameters,
+ final String word, final boolean asterisk, final ImList<? extends Parameter> parameters,
final String description) {
this(type, word, asterisk, parameters, null, description);
}
- public TexCommand(final int type, final String word, final String description) {
+ public TexCommand(final int type,
+ final String word,
+ final String description) {
this(type, word, false, NO_PARAMS, null, description);
}
@@ -278,7 +281,7 @@
return this.supportAserisk;
}
- public List<Parameter> getParameters() {
+ public ImList<? extends Parameter> getParameters() {
return this.parameters;
}
diff --git a/docmlet/org.eclipse.statet.docmlet.tex.core/src/org/eclipse/statet/docmlet/tex/core/commands/TexEmbedCommand.java b/docmlet/org.eclipse.statet.docmlet.tex.core/src/org/eclipse/statet/docmlet/tex/core/commands/TexEmbedCommand.java
index 776763e..fe89521 100644
--- a/docmlet/org.eclipse.statet.docmlet.tex.core/src/org/eclipse/statet/docmlet/tex/core/commands/TexEmbedCommand.java
+++ b/docmlet/org.eclipse.statet.docmlet.tex.core/src/org/eclipse/statet/docmlet/tex/core/commands/TexEmbedCommand.java
@@ -14,8 +14,7 @@
package org.eclipse.statet.docmlet.tex.core.commands;
-import java.util.List;
-
+import org.eclipse.statet.jcommons.collections.ImList;
import org.eclipse.statet.jcommons.lang.NonNullByDefault;
import org.eclipse.statet.jcommons.lang.Nullable;
@@ -30,7 +29,7 @@
public TexEmbedCommand(final int type, final String embeddedType,
- final String word, final boolean asterisk, final List<Parameter> parameters,
+ final String word, final boolean asterisk, final ImList<? extends Parameter> parameters,
final String description) {
super(type, word, asterisk, parameters, description);
this.embeddedType= embeddedType;
diff --git a/docmlet/org.eclipse.statet.docmlet.tex.ui/src/org/eclipse/statet/internal/docmlet/tex/ui/editors/LtxCommandCompletionProposal.java b/docmlet/org.eclipse.statet.docmlet.tex.ui/src/org/eclipse/statet/internal/docmlet/tex/ui/editors/LtxCommandCompletionProposal.java
index f9597cd..a5bf41b 100644
--- a/docmlet/org.eclipse.statet.docmlet.tex.ui/src/org/eclipse/statet/internal/docmlet/tex/ui/editors/LtxCommandCompletionProposal.java
+++ b/docmlet/org.eclipse.statet.docmlet.tex.ui/src/org/eclipse/statet/internal/docmlet/tex/ui/editors/LtxCommandCompletionProposal.java
@@ -405,7 +405,7 @@
mode= 201;
}
else if ((this.command.getType() & TexCommand.MASK_MAIN) != TexCommand.ENV) {
- final List<Parameter> parameters= this.command.getParameters();
+ final var parameters= this.command.getParameters();
if (parameters != null && !parameters.isEmpty()) {
final boolean isFirstOptional= parameters.get(0).isOptional();
int idxFirstRequired= -1;