<?xml version="1.0" encoding="UTF-8"?>
<!--
  ~
  ~                         _ _        ____  ____
  ~               _____   _(_) |_ __ _|  _ \| __ )
  ~              / _ \ \ / / | __/ _` | | | |  _ \
  ~             |  __/\ V /| | || (_| | |_| | |_) |
  ~              \___| \_/ |_|\__\__,_|____/|____/
  ~
  ~   Copyright (c) 2023-2025
  ~
  ~   Licensed under the Business Source License, Version 1.1 (the "License");
  ~   you may not use this file except in compliance with the License.
  ~   You may obtain a copy of the License at
  ~
  ~   https://github.com/FgForrest/evitaDB/blob/master/LICENSE
  ~
  ~   Unless required by applicable law or agreed to in writing, software
  ~   distributed under the License is distributed on an "AS IS" BASIS,
  ~   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  ~   See the License for the specific language governing permissions and
  ~   limitations under the License.
  -->

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<artifactId>evita_query</artifactId>
	<packaging>jar</packaging>
	<name>evitaDB - Query Language</name>
	<description>Module contains evitaDB query language and functionality related to it.</description>
	<parent>
		<groupId>io.evitadb</groupId>
		<artifactId>evita_root</artifactId>
		<version>2025.7.4</version>
	</parent>
	<properties>
		<antlr4.version>4.13.2</antlr4.version>
		<sonar.exclusions>src/main/java/io/evitadb/api/query/parser/grammar/**</sonar.exclusions>
	</properties>
	<dependencies>
		<dependency>
			<groupId>${project.parent.groupId}</groupId>
			<artifactId>evita_common</artifactId>
			<version>${project.parent.version}</version>
		</dependency>
		<dependency>
			<groupId>org.antlr</groupId>
			<artifactId>antlr4-runtime</artifactId>
			<version>${antlr4.version}</version>
		</dependency>
	</dependencies>
	<build>
		<plugins>
			<!-- this replacement solves the problem described in https://github.com/grpc/grpc-java/issues/6833 -->
			<plugin>
				<groupId>com.google.code.maven-replacer-plugin</groupId>
				<artifactId>replacer</artifactId>
				<version>1.5.3</version>
				<configuration>
					<filesToInclude>${basedir}/src/main/java/io/evitadb/api/query/parser/grammar/*.java</filesToInclude>
					<regexFlags>MULTILINE,DOTALL</regexFlags>
					<replacements>
						<replacement>
							<token>(// Generated from*[\S\s]*?)package io.evitadb.api.query.parser.grammar;</token>
							<value>
/*
 *
 *                         _ _        ____  ____
 *               _____   _(_) |_ __ _|  _ \\| __ )
 *              / _ \\ \\ / / | __/ _` | | | |  _ \\
 *             |  __/\\ V /| | || (_| | |_| | |_) |
 *              \\___| \\_/ |_|\\__\\__,_|____/|____/
 *
 *   Copyright (c) 2023
 *
 *   Licensed under the Business Source License, Version 1.1 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *   https://github.com/FgForrest/evitaDB/blob/master/LICENSE
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 */

$1package io.evitadb.api.query.parser.grammar;
							</value>
						</replacement>
					</replacements>
				</configuration>
			</plugin>
		</plugins>
	</build>

	<profiles>
		<profile>
			<id>evitaql-grammar</id>
			<build>
				<plugins>
					<plugin>
						<groupId>org.antlr</groupId>
						<artifactId>antlr4-maven-plugin</artifactId>
						<version>${antlr4.version}</version>
						<executions>
							<execution>
								<goals>
									<goal>antlr4</goal>
								</goals>
							</execution>
						</executions>
						<configuration>
							<sourceDirectory>${basedir}/src/main/resources/META-INF/io/evitadb/api/query/parser/evitaQL/</sourceDirectory>
							<outputDirectory>${basedir}/src/main/java/io/evitadb/api/query/parser/grammar/</outputDirectory>
							<visitor>true</visitor>
						</configuration>
					</plugin>
				</plugins>
			</build>
		</profile>
		<profile>
			<id>expression-grammar</id>
			<build>
				<plugins>
					<plugin>
						<groupId>org.antlr</groupId>
						<artifactId>antlr4-maven-plugin</artifactId>
						<version>${antlr4.version}</version>
						<executions>
							<execution>
								<goals>
									<goal>antlr4</goal>
								</goals>
							</execution>
						</executions>
						<configuration>
							<sourceDirectory>${basedir}/src/main/resources/META-INF/io/evitadb/api/query/parser/expression/</sourceDirectory>
							<outputDirectory>${basedir}/src/main/java/io/evitadb/api/query/expression/parser/grammar/</outputDirectory>
							<visitor>true</visitor>
						</configuration>
					</plugin>
				</plugins>
			</build>
		</profile>
	</profiles>
</project>
