Account for !--- doc splitter for properties validation
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2016 Pivotal, Inc.
|
||||
* Copyright (c) 2016, 2024 Pivotal, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
@@ -11,8 +11,6 @@
|
||||
package org.springframework.ide.vscode.java.properties.parser;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.function.Predicate;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* Very basic AST for Java Properties to keep comments and key value pairs
|
||||
@@ -36,21 +34,12 @@ public final class PropertiesAst {
|
||||
return nodes;
|
||||
}
|
||||
|
||||
public List<Node> getNodes(Predicate<Node> test) {
|
||||
return nodes.stream().filter(test).collect(Collectors.toList());
|
||||
public List<KeyValuePair> getPropertyValuePairs() {
|
||||
return nodes.stream().filter(KeyValuePair.class::isInstance).map(KeyValuePair.class::cast).toList();
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves AST nodes of specific type
|
||||
* @param clazz Type of AST nodes
|
||||
* @return List of AST nodes of specific type sorted by line number
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public <T> List<T> getNodes(Class<T> clazz) {
|
||||
List<Node> l = nodes.stream().filter(line -> {
|
||||
return clazz.isAssignableFrom(line.getClass());
|
||||
}).collect(Collectors.toList());
|
||||
return (List<T>) l;
|
||||
|
||||
public List<Comment> getComments() {
|
||||
return nodes.stream().filter(Comment.class::isInstance).map(Comment.class::cast).toList();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2016 Pivotal, Inc.
|
||||
* Copyright (c) 2016, 2024 Pivotal, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
@@ -35,7 +35,7 @@ public class PropertiesAntlrParserTest {
|
||||
assertTrue(results.problems.isEmpty());
|
||||
assertEquals(1, results.ast.getAllNodes().size());
|
||||
|
||||
List<Comment> commentLines = results.ast.getNodes(Comment.class);
|
||||
List<Comment> commentLines = results.ast.getComments();
|
||||
assertEquals(1, commentLines.size());
|
||||
|
||||
Comment comment = commentLines.get(0);
|
||||
@@ -52,7 +52,7 @@ public class PropertiesAntlrParserTest {
|
||||
assertTrue(results.problems.isEmpty());
|
||||
assertEquals(1, results.ast.getAllNodes().size());
|
||||
|
||||
List<KeyValuePair> propertyLines = results.ast.getNodes(KeyValuePair.class);
|
||||
List<KeyValuePair> propertyLines = results.ast.getPropertyValuePairs();
|
||||
assertEquals(1, propertyLines.size());
|
||||
|
||||
KeyValuePair line = propertyLines.get(0);
|
||||
@@ -197,7 +197,7 @@ public class PropertiesAntlrParserTest {
|
||||
assertTrue(results.problems.isEmpty());
|
||||
// One property line recorded. With key and empty value
|
||||
assertEquals(3, results.ast.getAllNodes().size());
|
||||
List<KeyValuePair> lines = results.ast.getNodes(KeyValuePair.class);
|
||||
List<KeyValuePair> lines = results.ast.getPropertyValuePairs();
|
||||
assertEquals(3, lines.size());
|
||||
|
||||
// Test valid part
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2016-2017 Pivotal, Inc.
|
||||
* Copyright (c) 2016, 2024 Pivotal, Inc.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
@@ -36,8 +36,8 @@ public class PropertiesAstTest {
|
||||
assertTrue(results.syntaxErrors.isEmpty());
|
||||
assertTrue(results.problems.isEmpty());
|
||||
assertEquals(4, results.ast.getAllNodes().size());
|
||||
assertEquals(1, results.ast.getNodes(Comment.class).size());
|
||||
assertEquals(3, results.ast.getNodes(EmptyLine.class).size());
|
||||
assertEquals(1, results.ast.getComments().size());
|
||||
// assertEquals(3, results.ast.getNodes(EmptyLine.class).size());
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -46,8 +46,8 @@ public class PropertiesAstTest {
|
||||
assertTrue(results.syntaxErrors.isEmpty());
|
||||
assertTrue(results.problems.isEmpty());
|
||||
assertEquals(5, results.ast.getAllNodes().size());
|
||||
assertEquals(1, results.ast.getNodes(Comment.class).size());
|
||||
assertEquals(4, results.ast.getNodes(EmptyLine.class).size());
|
||||
assertEquals(1, results.ast.getComments().size());
|
||||
// assertEquals(4, results.ast.getNodes(EmptyLine.class).size());
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -56,26 +56,26 @@ public class PropertiesAstTest {
|
||||
assertTrue(results.syntaxErrors.isEmpty());
|
||||
assertTrue(results.problems.isEmpty());
|
||||
assertEquals(5, results.ast.getAllNodes().size());
|
||||
assertEquals(1, results.ast.getNodes(Comment.class).size());
|
||||
assertEquals(1, results.ast.getNodes(KeyValuePair.class).size());
|
||||
assertEquals(3, results.ast.getNodes(EmptyLine.class).size());
|
||||
assertEquals(1, results.ast.getComments().size());
|
||||
assertEquals(1, results.ast.getPropertyValuePairs().size());
|
||||
// assertEquals(3, results.ast.getNodes(EmptyLine.class).size());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testLines4() throws Exception {
|
||||
ParseResults results = parser.parse("# Comment-1\n\nkey = value 1 \n# Comment-2");
|
||||
assertEquals(4, results.ast.getAllNodes().size());
|
||||
assertEquals(2, results.ast.getNodes(Comment.class).size());
|
||||
assertEquals(1, results.ast.getNodes(KeyValuePair.class).size());
|
||||
assertEquals(1, results.ast.getNodes(EmptyLine.class).size());
|
||||
assertEquals(2, results.ast.getComments().size());
|
||||
assertEquals(1, results.ast.getPropertyValuePairs().size());
|
||||
// assertEquals(1, results.ast.getNodes(EmptyLine.class).size());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testLines5() throws Exception {
|
||||
ParseResults results = parser.parse("#comment\nliquibase.enabled=\n#comment");
|
||||
assertEquals(3, results.ast.getAllNodes().size());
|
||||
assertEquals(2, results.ast.getNodes(Comment.class).size());
|
||||
assertEquals(1, results.ast.getNodes(KeyValuePair.class).size());
|
||||
assertEquals(2, results.ast.getComments().size());
|
||||
assertEquals(1, results.ast.getPropertyValuePairs().size());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user