diff --git a/src/main/java/sirius/pasta/noodle/Invocation.java b/src/main/java/sirius/pasta/noodle/Invocation.java index 0e1bdb7a3..f631cc0c8 100644 --- a/src/main/java/sirius/pasta/noodle/Invocation.java +++ b/src/main/java/sirius/pasta/noodle/Invocation.java @@ -594,6 +594,6 @@ private Object pop() { if (stack.isEmpty()) { throw createVmError("Stack underflow"); } - return stack.remove(stack.size() - 1); + return stack.removeLast(); } } diff --git a/src/main/java/sirius/pasta/noodle/compiler/CompilationContext.java b/src/main/java/sirius/pasta/noodle/compiler/CompilationContext.java index 8bad13654..c5c07d7d7 100644 --- a/src/main/java/sirius/pasta/noodle/compiler/CompilationContext.java +++ b/src/main/java/sirius/pasta/noodle/compiler/CompilationContext.java @@ -104,7 +104,7 @@ public VariableScoper getVariableScoper() { public void error(Position pos, String message, Object... params) { if (!Sirius.isStartedAsTest() && !errors.isEmpty() - && errors.get(errors.size() - 1).getPosition().getLine() == pos.getLine()) { + && errors.getLast().getPosition().getLine() == pos.getLine()) { return; } if (skipErrors) { diff --git a/src/main/java/sirius/pasta/noodle/compiler/Parser.java b/src/main/java/sirius/pasta/noodle/compiler/Parser.java index 444c637ca..40237ed06 100644 --- a/src/main/java/sirius/pasta/noodle/compiler/Parser.java +++ b/src/main/java/sirius/pasta/noodle/compiler/Parser.java @@ -1005,9 +1005,9 @@ private Method findSAM(Position position, Class calleeType) { private Node handleSpecialMethods(Char position, Node self, String methodName, List parameters) { if (KEYWORD_METHOD_AS.equals(methodName) && parameters.size() == 1 - && parameters.get(0).isConstant() - && (Class.class.isAssignableFrom(parameters.get(0).getType()))) { - Class type = (Class) parameters.get(0).getConstantValue(); + && parameters.getFirst().isConstant() + && (Class.class.isAssignableFrom(parameters.getFirst().getType()))) { + Class type = (Class) parameters.getFirst().getConstantValue(); if (!Transformable.class.isAssignableFrom(self.getType())) { return new NativeCast(position, self, type); } @@ -1015,9 +1015,9 @@ private Node handleSpecialMethods(Char position, Node self, String methodName, L if (KEYWORD_METHOD_IS.equals(methodName) && parameters.size() == 1 - && parameters.get(0).isConstant() - && (Class.class.isAssignableFrom(parameters.get(0).getType()))) { - Class type = (Class) parameters.get(0).getConstantValue(); + && parameters.getFirst().isConstant() + && (Class.class.isAssignableFrom(parameters.getFirst().getType()))) { + Class type = (Class) parameters.getFirst().getConstantValue(); if (!Transformable.class.isAssignableFrom(self.getType())) { return new InstanceOfCheck(position, self, type); } diff --git a/src/main/java/sirius/pasta/noodle/compiler/VariableScoper.java b/src/main/java/sirius/pasta/noodle/compiler/VariableScoper.java index d2caed419..9466b6770 100644 --- a/src/main/java/sirius/pasta/noodle/compiler/VariableScoper.java +++ b/src/main/java/sirius/pasta/noodle/compiler/VariableScoper.java @@ -81,7 +81,7 @@ protected Scope() { */ public void pop() { while (variables.size() > maxIndex) { - variables.remove(variables.size() - 1); + variables.removeLast(); } } diff --git a/src/main/java/sirius/pasta/noodle/compiler/ir/BlockStatement.java b/src/main/java/sirius/pasta/noodle/compiler/ir/BlockStatement.java index f255100ec..13e4f5033 100644 --- a/src/main/java/sirius/pasta/noodle/compiler/ir/BlockStatement.java +++ b/src/main/java/sirius/pasta/noodle/compiler/ir/BlockStatement.java @@ -45,7 +45,7 @@ public BlockStatement(Position position) { public void addStatement(Node statement, CompilationContext compilationContext) { if (returnType != null) { // Only report the first statement as dead code and skip all others... - if (statements.get(statements.size() - 1) instanceof ReturnStatement) { + if (statements.getLast() instanceof ReturnStatement) { compilationContext.error(position, "Dead code: Nothing after a return statement will be executed."); } @@ -68,7 +68,7 @@ public Node reduce(CompilationContext compilationContext) { statements.stream().map(statement -> statement.reduce(compilationContext)).collect(Collectors.toList()); if (statements.size() == 1) { - return statements.get(0); + return statements.getFirst(); } return this; diff --git a/src/main/java/sirius/pasta/noodle/macros/ApplyMacro.java b/src/main/java/sirius/pasta/noodle/macros/ApplyMacro.java index 991da5f1b..6049d8785 100644 --- a/src/main/java/sirius/pasta/noodle/macros/ApplyMacro.java +++ b/src/main/java/sirius/pasta/noodle/macros/ApplyMacro.java @@ -34,7 +34,7 @@ public Class getType() { @Override public void verifyArguments(CompilationContext context, Position position, List> args) { - if (args.isEmpty() || !CompilationContext.isAssignableTo(args.get(0), String.class)) { + if (args.isEmpty() || !CompilationContext.isAssignableTo(args.getFirst(), String.class)) { throw new IllegalArgumentException("Expected at least a String as first argument."); } } diff --git a/src/main/java/sirius/pasta/noodle/macros/Base64ResourceMacro.java b/src/main/java/sirius/pasta/noodle/macros/Base64ResourceMacro.java index 51cd2c73d..4b0559fc2 100644 --- a/src/main/java/sirius/pasta/noodle/macros/Base64ResourceMacro.java +++ b/src/main/java/sirius/pasta/noodle/macros/Base64ResourceMacro.java @@ -43,7 +43,7 @@ protected Class getType() { @Override protected void verifyArguments(CompilationContext compilationContext, Position position, List> args) { - if (args.size() != 1 || !CompilationContext.isAssignableTo(args.get(0), String.class)) { + if (args.size() != 1 || !CompilationContext.isAssignableTo(args.getFirst(), String.class)) { throw new IllegalArgumentException("Expected a single String as argument."); } } @@ -52,8 +52,8 @@ protected void verifyArguments(CompilationContext compilationContext, Position p public void verify(CompilationContext context, Position position, List args) { super.verify(context, position, args); - if (args.get(0).isConstant()) { - String resourceName = String.valueOf(args.get(0).getConstantValue()); + if (args.getFirst().isConstant()) { + String resourceName = String.valueOf(args.getFirst().getConstantValue()); if (resources.resolve(resourceName).isEmpty()) { context.warning(position, "Unknown resource: %s", resourceName); } @@ -62,7 +62,7 @@ public void verify(CompilationContext context, Position position, List arg @Override public boolean isConstant(CompilationContext context, List args) { - return args.get(0).isConstant(); + return args.getFirst().isConstant(); } @Override diff --git a/src/main/java/sirius/pasta/noodle/macros/ConfigMacro.java b/src/main/java/sirius/pasta/noodle/macros/ConfigMacro.java index fac7c52e1..64dd3dfea 100644 --- a/src/main/java/sirius/pasta/noodle/macros/ConfigMacro.java +++ b/src/main/java/sirius/pasta/noodle/macros/ConfigMacro.java @@ -36,12 +36,12 @@ protected Class getType() { @Override public void verify(CompilationContext context, Position position, List args) { - if (args.size() != 1 || !CompilationContext.isAssignableTo(args.get(0).getType(), String.class)) { + if (args.size() != 1 || !CompilationContext.isAssignableTo(args.getFirst().getType(), String.class)) { throw new IllegalArgumentException("Expects a single string as argument."); } - if (args.get(0).isConstant()) { - String configKey = (String) args.get(0).getConstantValue(); + if (args.getFirst().isConstant()) { + String configKey = (String) args.getFirst().getConstantValue(); if (!Sirius.getSettings().has(configKey)) { context.warning(position, "Unknown config value: '%s'", configKey); } diff --git a/src/main/java/sirius/pasta/noodle/macros/EnumValuesMacro.java b/src/main/java/sirius/pasta/noodle/macros/EnumValuesMacro.java index 42da07795..77452c9ba 100644 --- a/src/main/java/sirius/pasta/noodle/macros/EnumValuesMacro.java +++ b/src/main/java/sirius/pasta/noodle/macros/EnumValuesMacro.java @@ -34,10 +34,10 @@ public Class getType() { @Override public void verify(CompilationContext context, Position position, List args) { if (args.size() != 1 - || !CompilationContext.isAssignableTo(args.get(0).getType(), Class.class) - || !args.get(0) + || !CompilationContext.isAssignableTo(args.getFirst().getType(), Class.class) + || !args.getFirst() .isConstant() - || !((Class) args.get(0).getConstantValue()).isEnum()) { + || !((Class) args.getFirst().getConstantValue()).isEnum()) { throw new IllegalArgumentException("Expected an enum class as parameter."); } } diff --git a/src/main/java/sirius/pasta/noodle/macros/ExpandMessagesMacro.java b/src/main/java/sirius/pasta/noodle/macros/ExpandMessagesMacro.java index 47f40987b..2df8c9d0a 100644 --- a/src/main/java/sirius/pasta/noodle/macros/ExpandMessagesMacro.java +++ b/src/main/java/sirius/pasta/noodle/macros/ExpandMessagesMacro.java @@ -37,7 +37,7 @@ protected Class getType() { @Override protected void verifyArguments(CompilationContext compilationContext, Position position, List> args) { - if (args.size() != 1 || !CompilationContext.isAssignableTo(args.get(0), String.class)) { + if (args.size() != 1 || !CompilationContext.isAssignableTo(args.getFirst(), String.class)) { throw new IllegalArgumentException("Expected a single String as argument."); } } diff --git a/src/main/java/sirius/pasta/noodle/macros/FormatDateMacro.java b/src/main/java/sirius/pasta/noodle/macros/FormatDateMacro.java index 70b261d47..aa1845de4 100644 --- a/src/main/java/sirius/pasta/noodle/macros/FormatDateMacro.java +++ b/src/main/java/sirius/pasta/noodle/macros/FormatDateMacro.java @@ -45,9 +45,9 @@ public void verifyArguments(CompilationContext context, Position position, List< throw new IllegalArgumentException("One parameter is expected"); } - if (!CompilationContext.isAssignableTo(args.get(0), Long.class) - && !CompilationContext.isAssignableTo(args.get(0), Date.class) - && !CompilationContext.isAssignableTo(args.get(0), TemporalAccessor.class)) { + if (!CompilationContext.isAssignableTo(args.getFirst(), Long.class) + && !CompilationContext.isAssignableTo(args.getFirst(), Date.class) + && !CompilationContext.isAssignableTo(args.getFirst(), TemporalAccessor.class)) { throw new IllegalArgumentException("Illegal parameter type"); } } diff --git a/src/main/java/sirius/pasta/noodle/macros/FormatIsoMacro.java b/src/main/java/sirius/pasta/noodle/macros/FormatIsoMacro.java index 9923c0f7a..3747ab6fc 100644 --- a/src/main/java/sirius/pasta/noodle/macros/FormatIsoMacro.java +++ b/src/main/java/sirius/pasta/noodle/macros/FormatIsoMacro.java @@ -57,7 +57,7 @@ public Class getType() { @Override public void verifyArguments(CompilationContext context, Position position, List> args) { - if (args.size() != 1 || !CompilationContext.isAssignableTo(args.get(0), Temporal.class)) { + if (args.size() != 1 || !CompilationContext.isAssignableTo(args.getFirst(), Temporal.class)) { throw new IllegalArgumentException("One parameter of type Temporal is expected."); } } diff --git a/src/main/java/sirius/pasta/noodle/macros/FormatMacro.java b/src/main/java/sirius/pasta/noodle/macros/FormatMacro.java index 6adb37e87..6df297567 100644 --- a/src/main/java/sirius/pasta/noodle/macros/FormatMacro.java +++ b/src/main/java/sirius/pasta/noodle/macros/FormatMacro.java @@ -33,7 +33,7 @@ public Class getType() { @Override public void verifyArguments(CompilationContext context, Position position, List> args) { - if (args.size() != 1 || !CompilationContext.isAssignableTo(args.get(0), String.class)) { + if (args.size() != 1 || !CompilationContext.isAssignableTo(args.getFirst(), String.class)) { throw new IllegalArgumentException("Expected a single String as argument."); } } diff --git a/src/main/java/sirius/pasta/noodle/macros/FormatSizeMacro.java b/src/main/java/sirius/pasta/noodle/macros/FormatSizeMacro.java index 0d2847f73..035438e48 100644 --- a/src/main/java/sirius/pasta/noodle/macros/FormatSizeMacro.java +++ b/src/main/java/sirius/pasta/noodle/macros/FormatSizeMacro.java @@ -32,7 +32,7 @@ public Class getType() { @Override public void verifyArguments(CompilationContext context, Position position, List> args) { - if (args.size() != 1 && !CompilationContext.isAssignableTo(args.get(0), Long.class)) { + if (args.size() != 1 && !CompilationContext.isAssignableTo(args.getFirst(), Long.class)) { throw new IllegalArgumentException("One parameter is expected"); } } diff --git a/src/main/java/sirius/pasta/noodle/macros/HelperMacro.java b/src/main/java/sirius/pasta/noodle/macros/HelperMacro.java index c5da4eff1..662bf05b4 100644 --- a/src/main/java/sirius/pasta/noodle/macros/HelperMacro.java +++ b/src/main/java/sirius/pasta/noodle/macros/HelperMacro.java @@ -33,8 +33,8 @@ public class HelperMacro extends BasicMacro { @Override public Class getType(List args) { - if (!args.isEmpty() && args.get(0).isConstant() && Class.class.isAssignableFrom(args.get(0).getType())) { - return (Class) args.get(0).getConstantValue(); + if (!args.isEmpty() && args.getFirst().isConstant() && Class.class.isAssignableFrom(args.getFirst().getType())) { + return (Class) args.getFirst().getConstantValue(); } return super.getType(args); @@ -47,7 +47,7 @@ protected Class getType() { @Override public void verify(CompilationContext context, Position position, List args) { - if (args.size() != 1 || !args.get(0).isConstant() || !Class.class.isAssignableFrom(args.get(0).getType())) { + if (args.size() != 1 || !args.getFirst().isConstant() || !Class.class.isAssignableFrom(args.getFirst().getType())) { throw new IllegalArgumentException("Expected a single constant class as argument."); } } diff --git a/src/main/java/sirius/pasta/noodle/macros/I18nMacro.java b/src/main/java/sirius/pasta/noodle/macros/I18nMacro.java index 6e07dc4fc..887821280 100644 --- a/src/main/java/sirius/pasta/noodle/macros/I18nMacro.java +++ b/src/main/java/sirius/pasta/noodle/macros/I18nMacro.java @@ -86,8 +86,8 @@ public Object invoke(Environment environment, Object[] args) { @Override public boolean isConstant(CompilationContext context, List args) { // An i18n macro is inherently not constant unless it is invoked for an empty string - return (args.size() == 1 || args.size() == 2) && args.get(0).isConstant() && Strings.isEmpty(args.get(0) - .getConstantValue()); + return (args.size() == 1 || args.size() == 2) && args.getFirst().isConstant() && Strings.isEmpty(args.getFirst() + .getConstantValue()); } @Nonnull diff --git a/src/main/java/sirius/pasta/noodle/macros/InlineResourceMacro.java b/src/main/java/sirius/pasta/noodle/macros/InlineResourceMacro.java index 565be9f41..af6a5f738 100644 --- a/src/main/java/sirius/pasta/noodle/macros/InlineResourceMacro.java +++ b/src/main/java/sirius/pasta/noodle/macros/InlineResourceMacro.java @@ -58,7 +58,7 @@ public Class getType() { @Override public void verifyArguments(CompilationContext context, Position position, List> args) { - if (args.size() != 1 || !CompilationContext.isAssignableTo(args.get(0), String.class)) { + if (args.size() != 1 || !CompilationContext.isAssignableTo(args.getFirst(), String.class)) { throw new IllegalArgumentException("Expected a single String as argument."); } } @@ -67,19 +67,19 @@ public void verifyArguments(CompilationContext context, Position position, List< public void verify(CompilationContext context, Position position, List args) { super.verify(context, position, args); - if (args.get(0).isConstant()) { - String resourceName = String.valueOf(args.get(0).getConstantValue()); + if (args.getFirst().isConstant()) { + String resourceName = String.valueOf(args.getFirst().getConstantValue()); if (resources.resolve(resourceName).isEmpty()) { context.warning(position, "Unknown resource: %s", resourceName); } } if (context.getSandboxMode() != SandboxMode.DISABLED) { - if (!args.get(0).isConstant()) { + if (!args.getFirst().isConstant()) { raiseSandboxRestriction(context, position, "Only constant resource paths are supported due to sandbox restrictions."); - } else if (String.valueOf(args.get(0).getConstantValue()).endsWith(PASTA_SUFFIX)) { + } else if (String.valueOf(args.getFirst().getConstantValue()).endsWith(PASTA_SUFFIX)) { raiseSandboxRestriction(context, position, "Only constant resources are supported due to sandbox restrictions."); @@ -134,10 +134,10 @@ public String getDescription() { @Override public boolean isConstant(CompilationContext context, List args) { - if (!args.get(0).isConstant()) { + if (!args.getFirst().isConstant()) { return false; } - return !String.valueOf(args.get(0).getConstantValue()).endsWith(PASTA_SUFFIX); + return !String.valueOf(args.getFirst().getConstantValue()).endsWith(PASTA_SUFFIX); } } diff --git a/src/main/java/sirius/pasta/noodle/macros/InlineSvgMacro.java b/src/main/java/sirius/pasta/noodle/macros/InlineSvgMacro.java index 285c093eb..e489a9304 100644 --- a/src/main/java/sirius/pasta/noodle/macros/InlineSvgMacro.java +++ b/src/main/java/sirius/pasta/noodle/macros/InlineSvgMacro.java @@ -38,7 +38,7 @@ protected Class getType() { @Override protected void verifyArguments(CompilationContext compilationContext, Position position, List> args) { - if (args.size() != 1 || !CompilationContext.isAssignableTo(args.get(0), String.class)) { + if (args.size() != 1 || !CompilationContext.isAssignableTo(args.getFirst(), String.class)) { throw new IllegalArgumentException("Expected a single String as argument."); } } @@ -47,8 +47,8 @@ protected void verifyArguments(CompilationContext compilationContext, Position p public void verify(CompilationContext context, Position position, List args) { super.verify(context, position, args); - if (args.get(0).isConstant()) { - String resourceName = String.valueOf(args.get(0).getConstantValue()); + if (args.getFirst().isConstant()) { + String resourceName = String.valueOf(args.getFirst().getConstantValue()); if (resources.resolve(resourceName).isEmpty()) { context.warning(position, "Unknown resource: %s", resourceName); } @@ -57,7 +57,7 @@ public void verify(CompilationContext context, Position position, List arg @Override public boolean isConstant(CompilationContext context, List args) { - return args.get(0).isConstant(); + return args.getFirst().isConstant(); } @Override diff --git a/src/main/java/sirius/pasta/noodle/macros/JsonMacro.java b/src/main/java/sirius/pasta/noodle/macros/JsonMacro.java index 50cb07d63..cfcf964c3 100644 --- a/src/main/java/sirius/pasta/noodle/macros/JsonMacro.java +++ b/src/main/java/sirius/pasta/noodle/macros/JsonMacro.java @@ -34,7 +34,7 @@ public Class getType() { @Override public void verifyArguments(CompilationContext context, Position position, List> args) { - if (args.size() != 1 || !CompilationContext.isAssignableTo(args.get(0), String.class)) { + if (args.size() != 1 || !CompilationContext.isAssignableTo(args.getFirst(), String.class)) { throw new IllegalArgumentException("Expected a single String as argument."); } } diff --git a/src/main/java/sirius/pasta/noodle/macros/LinkBuilderMacro.java b/src/main/java/sirius/pasta/noodle/macros/LinkBuilderMacro.java index 7a166e4ad..dbcd813a7 100644 --- a/src/main/java/sirius/pasta/noodle/macros/LinkBuilderMacro.java +++ b/src/main/java/sirius/pasta/noodle/macros/LinkBuilderMacro.java @@ -32,7 +32,7 @@ public Class getType() { @Override public void verifyArguments(CompilationContext context, Position position, List> args) { - if (args.size() != 1 || !CompilationContext.isAssignableTo(args.get(0), String.class)) { + if (args.size() != 1 || !CompilationContext.isAssignableTo(args.getFirst(), String.class)) { throw new IllegalArgumentException("Expected a single String as argument."); } } diff --git a/src/main/java/sirius/pasta/noodle/macros/MonthNameMacro.java b/src/main/java/sirius/pasta/noodle/macros/MonthNameMacro.java index 88a1f1a01..791e007cf 100644 --- a/src/main/java/sirius/pasta/noodle/macros/MonthNameMacro.java +++ b/src/main/java/sirius/pasta/noodle/macros/MonthNameMacro.java @@ -32,7 +32,7 @@ public Class getType() { @Override public void verifyArguments(CompilationContext context, Position position, List> args) { - if (args.size() != 1 || !CompilationContext.isAssignableTo(args.get(0), int.class)) { + if (args.size() != 1 || !CompilationContext.isAssignableTo(args.getFirst(), int.class)) { throw new IllegalArgumentException("Expected exactly one argument as an int."); } } diff --git a/src/main/java/sirius/pasta/noodle/macros/PartMacro.java b/src/main/java/sirius/pasta/noodle/macros/PartMacro.java index 8ce226c5c..8b1826520 100644 --- a/src/main/java/sirius/pasta/noodle/macros/PartMacro.java +++ b/src/main/java/sirius/pasta/noodle/macros/PartMacro.java @@ -32,8 +32,8 @@ public class PartMacro extends BasicMacro { @Override public Class getType(List args) { - if (!args.isEmpty() && args.get(0).isConstant() && Class.class.isAssignableFrom(args.get(0).getType())) { - return (Class) args.get(0).getConstantValue(); + if (!args.isEmpty() && args.getFirst().isConstant() && Class.class.isAssignableFrom(args.getFirst().getType())) { + return (Class) args.getFirst().getConstantValue(); } return super.getType(args); @@ -46,14 +46,14 @@ protected Class getType() { @Override public void verify(CompilationContext context, Position position, List args) { - if (args.size() != 1 || !args.get(0).isConstant() || !Class.class.isAssignableFrom(args.get(0).getType())) { + if (args.size() != 1 || !args.getFirst().isConstant() || !Class.class.isAssignableFrom(args.getFirst().getType())) { throw new IllegalArgumentException("Expected a single constant class as argument."); } - if (Injector.context().getPart((Class) args.get(0).getConstantValue()) == null) { + if (Injector.context().getPart((Class) args.getFirst().getConstantValue()) == null) { throw new IllegalArgumentException(Strings.apply( "Unknown part requested: '%s'. Use 'Injector.context().getPart(Class) to fetch an optional part.", - args.get(0).getConstantValue())); + args.getFirst().getConstantValue())); } } diff --git a/src/main/java/sirius/pasta/noodle/macros/SmartTranslateMacro.java b/src/main/java/sirius/pasta/noodle/macros/SmartTranslateMacro.java index 48221f821..e1e331b7c 100644 --- a/src/main/java/sirius/pasta/noodle/macros/SmartTranslateMacro.java +++ b/src/main/java/sirius/pasta/noodle/macros/SmartTranslateMacro.java @@ -33,11 +33,11 @@ public Class getType() { @Override public void verify(CompilationContext context, Position position, List args) { - if (args.size() != 1 || !CompilationContext.isAssignableTo(args.get(0).getType(), String.class)) { + if (args.size() != 1 || !CompilationContext.isAssignableTo(args.getFirst().getType(), String.class)) { throw new IllegalArgumentException("Expected a single String as argument."); } - Node expression = args.get(0); + Node expression = args.getFirst(); if (expression.isConstant()) { String key = (String) expression.getConstantValue(); if (key == null || !key.startsWith("$")) { @@ -71,11 +71,11 @@ public Object invoke(Environment environment, Object[] args) { public boolean isConstant(CompilationContext context, List args) { // This macro is inherently not constant unless it is invoked for an empty string // or for a literal (which doesn't start with a $) - if (args.size() != 1 || !args.get(0).isConstant()) { + if (args.size() != 1 || !args.getFirst().isConstant()) { return false; } - Object value = args.get(0).getConstantValue(); + Object value = args.getFirst().getConstantValue(); return Strings.isEmpty(value) || !value.toString().startsWith("$"); } diff --git a/src/main/java/sirius/pasta/noodle/macros/SvgResourceMacro.java b/src/main/java/sirius/pasta/noodle/macros/SvgResourceMacro.java index eb9e97e51..9fb260fb6 100644 --- a/src/main/java/sirius/pasta/noodle/macros/SvgResourceMacro.java +++ b/src/main/java/sirius/pasta/noodle/macros/SvgResourceMacro.java @@ -69,7 +69,7 @@ public void verify(CompilationContext context, Position position, List arg super.verify(context, position, args); if (args.get(0).isConstant()) { - String resourceName = String.valueOf(args.get(0).getConstantValue()); + String resourceName = String.valueOf(args.getFirst().getConstantValue()); if (resources.resolve(resourceName).isEmpty()) { context.warning(position, "Unknown resource: %s", resourceName); } diff --git a/src/main/java/sirius/pasta/noodle/macros/ToSpokenDateMacro.java b/src/main/java/sirius/pasta/noodle/macros/ToSpokenDateMacro.java index 359ea3e15..6ef23f518 100644 --- a/src/main/java/sirius/pasta/noodle/macros/ToSpokenDateMacro.java +++ b/src/main/java/sirius/pasta/noodle/macros/ToSpokenDateMacro.java @@ -33,7 +33,7 @@ public Class getType() { @Override public void verifyArguments(CompilationContext context, Position position, List> args) { - if (args.size() != 1 || !CompilationContext.isAssignableTo(args.get(0), Temporal.class)) { + if (args.size() != 1 || !CompilationContext.isAssignableTo(args.getFirst(), Temporal.class)) { throw new IllegalArgumentException("Expected a single Temporal argument"); } } diff --git a/src/main/java/sirius/pasta/noodle/macros/UrlEncodeMacro.java b/src/main/java/sirius/pasta/noodle/macros/UrlEncodeMacro.java index 5bc8628ec..fe2b16301 100644 --- a/src/main/java/sirius/pasta/noodle/macros/UrlEncodeMacro.java +++ b/src/main/java/sirius/pasta/noodle/macros/UrlEncodeMacro.java @@ -32,7 +32,7 @@ public Class getType() { @Override public void verifyArguments(CompilationContext context, Position position, List> args) { - if (args.size() != 1 || !CompilationContext.isAssignableTo(args.get(0), String.class)) { + if (args.size() != 1 || !CompilationContext.isAssignableTo(args.getFirst(), String.class)) { throw new IllegalArgumentException("One parameter of type String is expected"); } } diff --git a/src/main/java/sirius/pasta/noodle/macros/XmlMacro.java b/src/main/java/sirius/pasta/noodle/macros/XmlMacro.java index fc75383b6..22caf0e69 100644 --- a/src/main/java/sirius/pasta/noodle/macros/XmlMacro.java +++ b/src/main/java/sirius/pasta/noodle/macros/XmlMacro.java @@ -34,7 +34,7 @@ public Class getType() { @Override public void verifyArguments(CompilationContext context, Position position, List> args) { - if (args.size() != 1 || !CompilationContext.isAssignableTo(args.get(0), String.class)) { + if (args.size() != 1 || !CompilationContext.isAssignableTo(args.getFirst(), String.class)) { throw new IllegalArgumentException("Expected a single String as argument."); } } diff --git a/src/main/java/sirius/pasta/tagliatelle/emitter/CompositeEmitter.java b/src/main/java/sirius/pasta/tagliatelle/emitter/CompositeEmitter.java index 30956d17e..bc5b2a9e8 100644 --- a/src/main/java/sirius/pasta/tagliatelle/emitter/CompositeEmitter.java +++ b/src/main/java/sirius/pasta/tagliatelle/emitter/CompositeEmitter.java @@ -80,7 +80,7 @@ public Emitter reduce() { } if (result.children.size() == 1) { - return result.children.get(0); + return result.children.getFirst(); } return result; @@ -157,12 +157,12 @@ public CompositeEmitter stripLeadingAndTrailingLineBreaks() { } // trim the first child from the front - if (children.get(0) instanceof ConstantEmitter firstConstantEmitter) { + if (children.getFirst() instanceof ConstantEmitter firstConstantEmitter) { firstConstantEmitter.stripLeadingLineBreak(); } // trim the last child from the back - if (children.get(children.size() - 1) instanceof ConstantEmitter lastConstantEmitter) { + if (children.getLast() instanceof ConstantEmitter lastConstantEmitter) { lastConstantEmitter.stripTrailingLineBreak(); } diff --git a/src/main/java/sirius/pasta/tagliatelle/macros/GenerateIdMacro.java b/src/main/java/sirius/pasta/tagliatelle/macros/GenerateIdMacro.java index 7c964955f..7e0e210f0 100644 --- a/src/main/java/sirius/pasta/tagliatelle/macros/GenerateIdMacro.java +++ b/src/main/java/sirius/pasta/tagliatelle/macros/GenerateIdMacro.java @@ -39,7 +39,7 @@ protected void verifyArguments(CompilationContext compilationContext, Position p if (args.size() > 1) { throw new IllegalArgumentException("At most one argument is expected."); } - if (args.size() == 1 && !CompilationContext.isAssignableTo(args.get(0), String.class)) { + if (args.size() == 1 && !CompilationContext.isAssignableTo(args.getFirst(), String.class)) { throw new IllegalArgumentException("Expects a format string as parameter"); } } diff --git a/src/main/java/sirius/pasta/tagliatelle/macros/RenderBlockMacro.java b/src/main/java/sirius/pasta/tagliatelle/macros/RenderBlockMacro.java index bcfa3bb25..bee6eba73 100644 --- a/src/main/java/sirius/pasta/tagliatelle/macros/RenderBlockMacro.java +++ b/src/main/java/sirius/pasta/tagliatelle/macros/RenderBlockMacro.java @@ -34,7 +34,7 @@ public Class getType() { @Override public void verifyArguments(CompilationContext context, Position pos, List> args) { - if (args.size() != 1 || !CompilationContext.isAssignableTo(args.get(0), String.class)) { + if (args.size() != 1 || !CompilationContext.isAssignableTo(args.getFirst(), String.class)) { throw new IllegalArgumentException("Expected a single String as argument."); } } diff --git a/src/main/java/sirius/web/controller/ControllerDispatcher.java b/src/main/java/sirius/web/controller/ControllerDispatcher.java index ce2672fed..a68220658 100644 --- a/src/main/java/sirius/web/controller/ControllerDispatcher.java +++ b/src/main/java/sirius/web/controller/ControllerDispatcher.java @@ -161,7 +161,7 @@ private void preparePerformRoute(WebContext webContext, } // Inject WebContext as first parameter... - params.add(0, webContext); + params.addFirst(webContext); // If a route is pre-dispatchable we inject an InputStream as last parameter of the // call. This is also checked by the route-compiler diff --git a/src/main/java/sirius/web/controller/Facet.java b/src/main/java/sirius/web/controller/Facet.java index 02e52aff0..a41fe829e 100644 --- a/src/main/java/sirius/web/controller/Facet.java +++ b/src/main/java/sirius/web/controller/Facet.java @@ -164,7 +164,7 @@ public String getTitle() { */ @NoodleSandbox(NoodleSandbox.Accessibility.GRANTED) public String getValue() { - return !values.isEmpty() ? values.get(0) : null; + return !values.isEmpty() ? values.getFirst() : null; } /** diff --git a/src/main/java/sirius/web/controller/Route.java b/src/main/java/sirius/web/controller/Route.java index f7949dc9c..8c11c8a2b 100644 --- a/src/main/java/sirius/web/controller/Route.java +++ b/src/main/java/sirius/web/controller/Route.java @@ -108,22 +108,22 @@ protected static Route compile(Controller controller, Method method, Routed rout @Nonnull private static List> determineParameterTypes(Method method, Route result) { List> parameterTypes = new ArrayList<>(Arrays.asList(method.getParameterTypes())); - if (parameterTypes.isEmpty() || !WebContext.class.equals(parameterTypes.get(0))) { + if (parameterTypes.isEmpty() || !WebContext.class.equals(parameterTypes.getFirst())) { throw new IllegalArgumentException(Strings.apply("Method needs '%s' as first parameter", WebContext.class.getName())); } - parameterTypes.remove(0); + parameterTypes.removeFirst(); if (result.format == Format.JSON) { failForInvalidJSONMethod(parameterTypes); - parameterTypes.remove(0); + parameterTypes.removeFirst(); } if (result.format == Format.XML) { failForInvalidXMLMethod(parameterTypes); - parameterTypes.remove(0); + parameterTypes.removeFirst(); } if (result.preDispatchable) { failForInvalidPredispatchableMethod(parameterTypes); - parameterTypes.remove(parameterTypes.size() - 1); + parameterTypes.removeLast(); } return parameterTypes; } @@ -203,22 +203,21 @@ private static void failForInvalidParameterCount(Routed routed, List> p } private static void failForInvalidJSONMethod(List> parameterTypes) { - if (parameterTypes.isEmpty() || !JSONStructuredOutput.class.equals(parameterTypes.get(0))) { + if (parameterTypes.isEmpty() || !JSONStructuredOutput.class.equals(parameterTypes.getFirst())) { throw new IllegalArgumentException(Strings.apply("JSON API method needs '%s' as second parameter", JSONStructuredOutput.class.getName())); } } private static void failForInvalidXMLMethod(List> parameterTypes) { - if (parameterTypes.isEmpty() || !XMLStructuredOutput.class.equals(parameterTypes.get(0))) { + if (parameterTypes.isEmpty() || !XMLStructuredOutput.class.equals(parameterTypes.getFirst())) { throw new IllegalArgumentException(Strings.apply("XML API method needs '%s' as second parameter", XMLStructuredOutput.class.getName())); } } private static void failForInvalidPredispatchableMethod(List> parameterTypes) { - if (parameterTypes.isEmpty() || !InputStreamHandler.class.equals(parameterTypes.get(parameterTypes.size() - - 1))) { + if (parameterTypes.isEmpty() || !InputStreamHandler.class.equals(parameterTypes.getLast())) { throw new IllegalArgumentException(Strings.apply("Pre-Dispatchable method needs '%s' as last parameter", InputStreamHandler.class.getName())); } @@ -453,7 +452,7 @@ public Object invoke(List params) throws Exception { if (params.isEmpty()) { return methodHandle.invoke(controller); } else if (params.size() == 1) { - return methodHandle.invoke(controller, params.get(0)); + return methodHandle.invoke(controller, params.getFirst()); } else if (params.size() == 2) { return methodHandle.invoke(controller, params.get(0), params.get(1)); } else if (params.size() == 3) { diff --git a/src/main/java/sirius/web/data/MultimapSmartRow.java b/src/main/java/sirius/web/data/MultimapSmartRow.java index 0eab2ead8..9b8dbc6f6 100644 --- a/src/main/java/sirius/web/data/MultimapSmartRow.java +++ b/src/main/java/sirius/web/data/MultimapSmartRow.java @@ -59,7 +59,7 @@ public Value getFirstOrDefault(@Nonnull String name, @Nullable Object defaultVal if (values.isEmpty()) { return Value.of(defaultValue); } else { - return values.get(0); + return values.getFirst(); } } @@ -81,7 +81,7 @@ public Value getLastOrDefault(@Nonnull String name, @Nullable Object defaultValu if (values.isEmpty()) { return Value.of(defaultValue); } else { - return values.get(values.size() - 1); + return values.getLast(); } } diff --git a/src/main/java/sirius/web/http/HttpPipeliningHandler.java b/src/main/java/sirius/web/http/HttpPipeliningHandler.java index f80994f32..67442604c 100644 --- a/src/main/java/sirius/web/http/HttpPipeliningHandler.java +++ b/src/main/java/sirius/web/http/HttpPipeliningHandler.java @@ -84,7 +84,7 @@ public void write(ChannelHandlerContext ctx, Object msg, ChannelPromise promise) currentRequest = null; if (!bufferedRequests.isEmpty()) { - currentRequest = bufferedRequests.remove(0); + currentRequest = bufferedRequests.removeFirst(); ctx.fireChannelRead(currentRequest); ctx.fireChannelRead(LastHttpContent.EMPTY_LAST_CONTENT); } diff --git a/src/main/java/sirius/web/http/WebContext.java b/src/main/java/sirius/web/http/WebContext.java index 066e36f7b..dcd492477 100644 --- a/src/main/java/sirius/web/http/WebContext.java +++ b/src/main/java/sirius/web/http/WebContext.java @@ -576,7 +576,7 @@ public Value get(String key) { if (queryString.containsKey(key)) { List val = getParameters(key); if (val.size() == 1) { - return Value.of(val.get(0)); + return Value.of(val.getFirst()); } else if (val.isEmpty()) { return Value.EMPTY; } else { @@ -599,7 +599,7 @@ private Value fetchPostAttributes(String key) { if (dataList == null || dataList.isEmpty()) { return Value.EMPTY; } else if (dataList.size() == 1) { - return Value.of(transformHttpData(dataList.get(0))); + return Value.of(transformHttpData(dataList.getFirst())); } else { List attributes = dataList.stream() .map(this::transformHttpData) diff --git a/src/main/java/sirius/web/sass/Generator.java b/src/main/java/sirius/web/sass/Generator.java index 52c518f9c..f39be2784 100644 --- a/src/main/java/sirius/web/sass/Generator.java +++ b/src/main/java/sirius/web/sass/Generator.java @@ -257,12 +257,12 @@ private String expandMediaQuery(String mediaQueryPath, Section section, List stack) { Section copy = new Section(); if (!stack.isEmpty()) { - Section parent = stack.get(stack.size() - 1); + Section parent = stack.getLast(); if (copy.getSelectors().isEmpty()) { copy.getSelectors().addAll(parent.getSelectors()); } else if (!parent.getSelectors().isEmpty()) { for (List selector : copy.getSelectors()) { - selector.addAll(0, parent.getSelectors().get(0)); + selector.addAll(0, parent.getSelectors().getFirst()); } } } @@ -301,7 +301,7 @@ private void expandSection(String mediaQueryPath, Section section, List
newSelectors.add(expandSelector(section, selector, null)); } else { // create the cross product of the parent selector set and the current selector set - for (List parentSelector : stack.get(stack.size() - 1).getSelectors()) { + for (List parentSelector : stack.getLast().getSelectors()) { // clone selector, so that each expansion starts with the initial child selector newSelectors.add(expandSelector(section, new ArrayList<>(selector), parentSelector)); } @@ -318,10 +318,10 @@ private void expandSection(String mediaQueryPath, Section section, List
private List expandSelector(Section section, List selector, List parentSelector) { if (parentSelector != null) { - if (selector.size() > 1 && !parentSelector.isEmpty() && "&".equals(selector.get(0))) { + if (selector.size() > 1 && !parentSelector.isEmpty() && "&".equals(selector.getFirst())) { combineSelectors(selector, parentSelector); - } else if ("&".equals(selector.get(selector.size() - 1))) { - selector.remove(selector.size() - 1); + } else if ("&".equals(selector.getLast())) { + selector.removeLast(); selector.addAll(parentSelector); } else { selector.addAll(0, parentSelector); @@ -330,7 +330,7 @@ private List expandSelector(Section section, List selector, List // Selectors with only one element can be referenced by @extend if (selector.size() == 1) { - extensibleSections.put(selector.get(0), section); + extensibleSections.put(selector.getFirst(), section); } return selector; @@ -344,12 +344,12 @@ private List expandSelector(Section section, List selector, List */ private void combineSelectors(List selector, List parentSelectors) { String firstChild = selector.get(1); - selector.remove(0); - selector.remove(0); + selector.removeFirst(); + selector.removeFirst(); List selectorsToAdd = new ArrayList<>(parentSelectors); - String lastParent = selectorsToAdd.get(selectorsToAdd.size() - 1); - selectorsToAdd.remove(selectorsToAdd.size() - 1); - selector.add(0, lastParent + firstChild); + String lastParent = selectorsToAdd.getLast(); + selectorsToAdd.removeLast(); + selector.addFirst(lastParent + firstChild); selector.addAll(0, selectorsToAdd); } @@ -453,10 +453,10 @@ private void processSubSection(Section section, sirius.web.sass.Scope subScope, for (List outer : child.getSelectors()) { for (List inner : section.getSelectors()) { List fullSelector = new ArrayList<>(outer); - if ("&".equals(outer.get(outer.size() - 1))) { - fullSelector.remove(fullSelector.size() - 1); + if ("&".equals(outer.getLast())) { + fullSelector.removeLast(); fullSelector.addAll(inner); - } else if ("&".equals(outer.get(0))) { + } else if ("&".equals(outer.getFirst())) { combineSelectors(fullSelector, inner); } else { fullSelector.addAll(0, inner); diff --git a/src/main/java/sirius/web/security/SAMLHelper.java b/src/main/java/sirius/web/security/SAMLHelper.java index 9caf72a2f..70da8a37d 100644 --- a/src/main/java/sirius/web/security/SAMLHelper.java +++ b/src/main/java/sirius/web/security/SAMLHelper.java @@ -336,7 +336,7 @@ public KeySelectorResult select(KeyInfo keyInfo, for (XMLStructure xmlStructure : keyInfo.getContent()) { if (xmlStructure instanceof X509Data x509Data && !x509Data.getContent().isEmpty()) { - X509Certificate x509Certificate = (X509Certificate) x509Data.getContent().get(0); + X509Certificate x509Certificate = (X509Certificate) x509Data.getContent().getFirst(); return new X509CertificateResult(x509Certificate); } } @@ -369,4 +369,3 @@ public X509Certificate getCert() { } } } - diff --git a/src/main/java/sirius/web/security/ScopeDefaultConfigController.java b/src/main/java/sirius/web/security/ScopeDefaultConfigController.java index 69a3e349a..6997b07a1 100644 --- a/src/main/java/sirius/web/security/ScopeDefaultConfigController.java +++ b/src/main/java/sirius/web/security/ScopeDefaultConfigController.java @@ -43,7 +43,7 @@ public void defaultConfig(WebContext ctx) { ctx.respondWith().template("/templates/system/scope-config.html.pasta", "", files, ""); return; } - config(ctx, files.get(0)); + config(ctx, files.getFirst()); } /** diff --git a/src/test/java/sirius/web/mails/MailsMock.java b/src/test/java/sirius/web/mails/MailsMock.java index c43389bbc..fb0a766fa 100644 --- a/src/test/java/sirius/web/mails/MailsMock.java +++ b/src/test/java/sirius/web/mails/MailsMock.java @@ -89,6 +89,6 @@ public List getSentMails() { } public MailSenderMock getLastMail() { - return sentMails.get(sentMails.size() - 1); + return sentMails.getLast(); } }