handle RecordBuilder.Options on packages (#149)

Thanks for the PR
This commit is contained in:
Stefan Bischof
2023-03-29 09:53:06 +02:00
committed by GitHub
parent 685a31b56b
commit 183ab67c1a
3 changed files with 39 additions and 2 deletions

View File

@@ -15,8 +15,13 @@
*/
package io.soabase.recordbuilder.core;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import javax.lang.model.element.Modifier;
import java.lang.annotation.*;
@Retention(RetentionPolicy.SOURCE)
@Target(ElementType.TYPE)
@@ -58,7 +63,7 @@ public @interface RecordBuilder {
}
@Retention(RetentionPolicy.SOURCE)
@Target(ElementType.TYPE)
@Target({ElementType.TYPE, ElementType.PACKAGE})
@Inherited
@interface Options {
/**

View File

@@ -14,6 +14,7 @@
* limitations under the License.
*/
@RecordBuilder.Include(value = { Point.class, Pair.class }, packagePattern = "*.foo")
@RecordBuilder.Options(fileComment = "MyLicense - Auto generated")
@RecordInterface.Include(value = Customer.class, addRecordBuilder = false, packagePattern = "*.bar")
package io.soabase.recordbuilder.test;

View File

@@ -0,0 +1,31 @@
/*
* Copyright 2019 The original author or authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* 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.
*/
package io.soabase.recordbuilder.test;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
class TestOptionsOnPackage {
@Test
void testOptionsOnInclude() throws IOException {
String text= Files.readString(Path.of("target/generated-sources/annotations/io/soabase/recordbuilder/test/foo/PairBuilder.java"));
Assertions.assertTrue(text.contains("// MyLicense - Auto generated"));
}
}