Merge pull request #13175 from kesslerj
* pr/13175: Polish "Respect lombok.AccessLevel attributes" Respect lombok.AccessLevel attributes
This commit is contained in:
commit
38051d98fd
|
|
@ -56,6 +56,7 @@ import org.springframework.boot.configurationprocessor.metadata.ItemMetadata;
|
||||||
* @author Stephane Nicoll
|
* @author Stephane Nicoll
|
||||||
* @author Phillip Webb
|
* @author Phillip Webb
|
||||||
* @author Kris De Volder
|
* @author Kris De Volder
|
||||||
|
* @author Jonas Keßler
|
||||||
* @since 1.2.0
|
* @since 1.2.0
|
||||||
*/
|
*/
|
||||||
@SupportedAnnotationTypes({ "*" })
|
@SupportedAnnotationTypes({ "*" })
|
||||||
|
|
@ -76,6 +77,8 @@ public class ConfigurationMetadataAnnotationProcessor extends AbstractProcessor
|
||||||
|
|
||||||
static final String LOMBOK_SETTER_ANNOTATION = "lombok.Setter";
|
static final String LOMBOK_SETTER_ANNOTATION = "lombok.Setter";
|
||||||
|
|
||||||
|
static final String LOMBOK_ACCESS_LEVEL_PUBLIC = "PUBLIC";
|
||||||
|
|
||||||
private MetadataStore metadataStore;
|
private MetadataStore metadataStore;
|
||||||
|
|
||||||
private MetadataCollector metadataCollector;
|
private MetadataCollector metadataCollector;
|
||||||
|
|
@ -302,16 +305,44 @@ public class ConfigurationMetadataAnnotationProcessor extends AbstractProcessor
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean isLombokField(VariableElement field, TypeElement element) {
|
private boolean isLombokField(VariableElement field, TypeElement element) {
|
||||||
return hasAnnotation(field, LOMBOK_GETTER_ANNOTATION)
|
return hasLombokPublicAccessor(field, element, true);
|
||||||
|| hasAnnotation(element, LOMBOK_GETTER_ANNOTATION)
|
|
||||||
|| hasAnnotation(element, LOMBOK_DATA_ANNOTATION);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean hasLombokSetter(VariableElement field, TypeElement element) {
|
private boolean hasLombokSetter(VariableElement field, TypeElement element) {
|
||||||
return !field.getModifiers().contains(Modifier.FINAL)
|
return !field.getModifiers().contains(Modifier.FINAL)
|
||||||
&& (hasAnnotation(field, LOMBOK_SETTER_ANNOTATION)
|
&& hasLombokPublicAccessor(field, element, false);
|
||||||
|| hasAnnotation(element, LOMBOK_SETTER_ANNOTATION)
|
}
|
||||||
|| hasAnnotation(element, LOMBOK_DATA_ANNOTATION));
|
|
||||||
|
/**
|
||||||
|
* Determine if the specified {@link VariableElement field} defines a public accessor
|
||||||
|
* using lombok annotations.
|
||||||
|
* @param field the field to inspect
|
||||||
|
* @param element the parent element of the field (i.e. its holding class)
|
||||||
|
* @param getter {@code true} to look for the read accessor, {@code false} for the
|
||||||
|
* write accessor
|
||||||
|
* @return {@code true} if this field is a public accessor of the specified type
|
||||||
|
*/
|
||||||
|
private boolean hasLombokPublicAccessor(VariableElement field, TypeElement element,
|
||||||
|
boolean getter) {
|
||||||
|
String annotation = (getter ? LOMBOK_GETTER_ANNOTATION
|
||||||
|
: LOMBOK_SETTER_ANNOTATION);
|
||||||
|
AnnotationMirror lombokMethodAnnotationOnField = getAnnotation(field, annotation);
|
||||||
|
if (lombokMethodAnnotationOnField != null) {
|
||||||
|
return isAccessLevelPublic(lombokMethodAnnotationOnField);
|
||||||
|
}
|
||||||
|
AnnotationMirror lombokMethodAnnotationOnElement = getAnnotation(element,
|
||||||
|
annotation);
|
||||||
|
if (lombokMethodAnnotationOnElement != null) {
|
||||||
|
return isAccessLevelPublic(lombokMethodAnnotationOnElement);
|
||||||
|
}
|
||||||
|
return hasAnnotation(element, LOMBOK_DATA_ANNOTATION);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private boolean isAccessLevelPublic(AnnotationMirror lombokAnnotation) {
|
||||||
|
Map<String, Object> values = getAnnotationElementValues(lombokAnnotation);
|
||||||
|
Object value = values.get("value");
|
||||||
|
return (value == null || value.toString().equals(LOMBOK_ACCESS_LEVEL_PUBLIC));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void processNestedType(String prefix, TypeElement element,
|
private void processNestedType(String prefix, TypeElement element,
|
||||||
|
|
|
||||||
|
|
@ -38,6 +38,10 @@ import org.springframework.boot.configurationprocessor.metadata.TestJsonConverte
|
||||||
import org.springframework.boot.configurationsample.incremental.BarProperties;
|
import org.springframework.boot.configurationsample.incremental.BarProperties;
|
||||||
import org.springframework.boot.configurationsample.incremental.FooProperties;
|
import org.springframework.boot.configurationsample.incremental.FooProperties;
|
||||||
import org.springframework.boot.configurationsample.incremental.RenamedBarProperties;
|
import org.springframework.boot.configurationsample.incremental.RenamedBarProperties;
|
||||||
|
import org.springframework.boot.configurationsample.lombok.LombokAccessLevelOverwriteDataProperties;
|
||||||
|
import org.springframework.boot.configurationsample.lombok.LombokAccessLevelOverwriteDefaultProperties;
|
||||||
|
import org.springframework.boot.configurationsample.lombok.LombokAccessLevelOverwriteExplicitProperties;
|
||||||
|
import org.springframework.boot.configurationsample.lombok.LombokAccessLevelProperties;
|
||||||
import org.springframework.boot.configurationsample.lombok.LombokExplicitProperties;
|
import org.springframework.boot.configurationsample.lombok.LombokExplicitProperties;
|
||||||
import org.springframework.boot.configurationsample.lombok.LombokInnerClassProperties;
|
import org.springframework.boot.configurationsample.lombok.LombokInnerClassProperties;
|
||||||
import org.springframework.boot.configurationsample.lombok.LombokInnerClassWithGetterProperties;
|
import org.springframework.boot.configurationsample.lombok.LombokInnerClassWithGetterProperties;
|
||||||
|
|
@ -83,6 +87,7 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||||
* @author Phillip Webb
|
* @author Phillip Webb
|
||||||
* @author Andy Wilkinson
|
* @author Andy Wilkinson
|
||||||
* @author Kris De Volder
|
* @author Kris De Volder
|
||||||
|
* @author Jonas Keßler
|
||||||
*/
|
*/
|
||||||
public class ConfigurationMetadataAnnotationProcessorTests {
|
public class ConfigurationMetadataAnnotationProcessorTests {
|
||||||
|
|
||||||
|
|
@ -488,6 +493,41 @@ public class ConfigurationMetadataAnnotationProcessorTests {
|
||||||
ConfigurationMetadata metadata = compile(LombokExplicitProperties.class);
|
ConfigurationMetadata metadata = compile(LombokExplicitProperties.class);
|
||||||
assertSimpleLombokProperties(metadata, LombokExplicitProperties.class,
|
assertSimpleLombokProperties(metadata, LombokExplicitProperties.class,
|
||||||
"explicit");
|
"explicit");
|
||||||
|
assertThat(metadata.getItems()).hasSize(6);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void lombokAccessLevelProperties() {
|
||||||
|
ConfigurationMetadata metadata = compile(LombokAccessLevelProperties.class);
|
||||||
|
assertAccessLevelLombokProperties(metadata, LombokAccessLevelProperties.class,
|
||||||
|
"accesslevel", 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void lombokAccessLevelOverwriteDataProperties() {
|
||||||
|
ConfigurationMetadata metadata = compile(
|
||||||
|
LombokAccessLevelOverwriteDataProperties.class);
|
||||||
|
assertAccessLevelOverwriteLombokProperties(metadata,
|
||||||
|
LombokAccessLevelOverwriteDataProperties.class,
|
||||||
|
"accesslevel.overwrite.data");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void lombokAccessLevelOverwriteExplicitProperties() {
|
||||||
|
ConfigurationMetadata metadata = compile(
|
||||||
|
LombokAccessLevelOverwriteExplicitProperties.class);
|
||||||
|
assertAccessLevelOverwriteLombokProperties(metadata,
|
||||||
|
LombokAccessLevelOverwriteExplicitProperties.class,
|
||||||
|
"accesslevel.overwrite.explicit");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void lombokAccessLevelOverwriteDefaultProperties() {
|
||||||
|
ConfigurationMetadata metadata = compile(
|
||||||
|
LombokAccessLevelOverwriteDefaultProperties.class);
|
||||||
|
assertAccessLevelOverwriteLombokProperties(metadata,
|
||||||
|
LombokAccessLevelOverwriteDefaultProperties.class,
|
||||||
|
"accesslevel.overwrite.default");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -789,7 +829,22 @@ public class ConfigurationMetadataAnnotationProcessorTests {
|
||||||
assertThat(metadata).doesNotHave(Metadata.withProperty(prefix + ".ignored"));
|
assertThat(metadata).doesNotHave(Metadata.withProperty(prefix + ".ignored"));
|
||||||
}
|
}
|
||||||
|
|
||||||
private ConfigurationMetadata compile(Class<?>... types) throws IOException {
|
private void assertAccessLevelOverwriteLombokProperties(
|
||||||
|
ConfigurationMetadata metadata, Class<?> source, String prefix) {
|
||||||
|
assertAccessLevelLombokProperties(metadata, source, prefix, 7);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void assertAccessLevelLombokProperties(ConfigurationMetadata metadata,
|
||||||
|
Class<?> source, String prefix, int countNameFields) {
|
||||||
|
assertThat(metadata).has(Metadata.withGroup(prefix).fromSource(source));
|
||||||
|
for (int i = 0; i < countNameFields; i++) {
|
||||||
|
assertThat(metadata)
|
||||||
|
.has(Metadata.withProperty(prefix + ".name" + i, String.class));
|
||||||
|
}
|
||||||
|
assertThat(metadata.getItems()).hasSize(1 + countNameFields);
|
||||||
|
}
|
||||||
|
|
||||||
|
private ConfigurationMetadata compile(Class<?>... types) {
|
||||||
TestConfigurationMetadataAnnotationProcessor processor = new TestConfigurationMetadataAnnotationProcessor(
|
TestConfigurationMetadataAnnotationProcessor processor = new TestConfigurationMetadataAnnotationProcessor(
|
||||||
this.compiler.getOutputLocation());
|
this.compiler.getOutputLocation());
|
||||||
this.compiler.getTask(types).call(processor);
|
this.compiler.getTask(types).call(processor);
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,123 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2012-2017 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 org.springframework.boot.configurationsample.lombok;
|
||||||
|
|
||||||
|
import lombok.AccessLevel;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
import org.springframework.boot.configurationsample.ConfigurationProperties;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Configuration properties using lombok @Data on element level and overwriting behaviour
|
||||||
|
* with @Getter und @Setter at field level.
|
||||||
|
*
|
||||||
|
* @author Jonas Keßler
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@ConfigurationProperties(prefix = "accesslevel.overwrite.data")
|
||||||
|
public class LombokAccessLevelOverwriteDataProperties {
|
||||||
|
|
||||||
|
private String name0;
|
||||||
|
|
||||||
|
@Getter(AccessLevel.PUBLIC)
|
||||||
|
@Setter(AccessLevel.PUBLIC)
|
||||||
|
private String name1;
|
||||||
|
|
||||||
|
@Getter(AccessLevel.PUBLIC)
|
||||||
|
private String name2;
|
||||||
|
|
||||||
|
@Setter(AccessLevel.PUBLIC)
|
||||||
|
private String name3;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
private String name4;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
private String name5;
|
||||||
|
|
||||||
|
@Setter
|
||||||
|
private String name6;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* AccessLevel.NONE
|
||||||
|
*/
|
||||||
|
@Getter(AccessLevel.NONE)
|
||||||
|
@Setter(AccessLevel.NONE)
|
||||||
|
private String ignoredAccessLevelNone;
|
||||||
|
|
||||||
|
@Getter(AccessLevel.NONE)
|
||||||
|
private String ignoredGetterAccessLevelNone;
|
||||||
|
|
||||||
|
@Setter(AccessLevel.NONE)
|
||||||
|
private String ignoredSetterAccessLevelNone;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* AccessLevel.PRIVATE
|
||||||
|
*/
|
||||||
|
@Getter(AccessLevel.PRIVATE)
|
||||||
|
@Setter(AccessLevel.PRIVATE)
|
||||||
|
private String ignoredAccessLevelPrivate;
|
||||||
|
|
||||||
|
@Getter(AccessLevel.PRIVATE)
|
||||||
|
private String ignoredGetterAccessLevelPrivate;
|
||||||
|
|
||||||
|
@Setter(AccessLevel.PRIVATE)
|
||||||
|
private String ignoredSetterAccessLevelPrivate;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* AccessLevel.PACKAGE
|
||||||
|
*/
|
||||||
|
@Getter(AccessLevel.PACKAGE)
|
||||||
|
@Setter(AccessLevel.PACKAGE)
|
||||||
|
private String ignoredAccessLevelPackage;
|
||||||
|
|
||||||
|
@Getter(AccessLevel.PACKAGE)
|
||||||
|
private String ignoredGetterAccessLevelPackage;
|
||||||
|
|
||||||
|
@Setter(AccessLevel.PACKAGE)
|
||||||
|
private String ignoredSetterAccessLevelPackage;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* AccessLevel.PROTECTED
|
||||||
|
*/
|
||||||
|
@Getter(AccessLevel.PROTECTED)
|
||||||
|
@Setter(AccessLevel.PROTECTED)
|
||||||
|
private String ignoredAccessLevelProtected;
|
||||||
|
|
||||||
|
@Getter(AccessLevel.PROTECTED)
|
||||||
|
private String ignoredGetterAccessLevelProtected;
|
||||||
|
|
||||||
|
@Setter(AccessLevel.PROTECTED)
|
||||||
|
private String ignoredSetterAccessLevelProtected;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* AccessLevel.MODULE
|
||||||
|
*/
|
||||||
|
@Getter(AccessLevel.MODULE)
|
||||||
|
@Setter(AccessLevel.MODULE)
|
||||||
|
private String ignoredAccessLevelModule;
|
||||||
|
|
||||||
|
@Getter(AccessLevel.MODULE)
|
||||||
|
private String ignoredGetterAccessLevelModule;
|
||||||
|
|
||||||
|
@Setter(AccessLevel.MODULE)
|
||||||
|
private String ignoredSetterAccessLevelModule;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,93 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2012-2018 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 org.springframework.boot.configurationsample.lombok;
|
||||||
|
|
||||||
|
import lombok.AccessLevel;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
import org.springframework.boot.configurationsample.ConfigurationProperties;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Configuration properties using lombok @Getter and @Setter without explicitly defining
|
||||||
|
* AccessLevel on element level and overwriting behaviour at field level.
|
||||||
|
*
|
||||||
|
* @author Jonas Keßler
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@ConfigurationProperties(prefix = "accesslevel.overwrite.default")
|
||||||
|
public class LombokAccessLevelOverwriteDefaultProperties {
|
||||||
|
|
||||||
|
private String name0;
|
||||||
|
|
||||||
|
@Getter(AccessLevel.PUBLIC)
|
||||||
|
@Setter(AccessLevel.PUBLIC)
|
||||||
|
private String name1;
|
||||||
|
|
||||||
|
@Getter(AccessLevel.PUBLIC)
|
||||||
|
private String name2;
|
||||||
|
|
||||||
|
@Setter(AccessLevel.PUBLIC)
|
||||||
|
private String name3;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
private String name4;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
private String name5;
|
||||||
|
|
||||||
|
@Setter
|
||||||
|
private String name6;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* AccessLevel.NONE
|
||||||
|
*/
|
||||||
|
@Getter(AccessLevel.NONE)
|
||||||
|
@Setter(AccessLevel.NONE)
|
||||||
|
private String ignoredAccessLevelNone;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* AccessLevel.PRIVATE
|
||||||
|
*/
|
||||||
|
@Getter(AccessLevel.PRIVATE)
|
||||||
|
@Setter(AccessLevel.PRIVATE)
|
||||||
|
private String ignoredAccessLevelPrivate;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* AccessLevel.PACKAGE
|
||||||
|
*/
|
||||||
|
@Getter(AccessLevel.PACKAGE)
|
||||||
|
@Setter(AccessLevel.PACKAGE)
|
||||||
|
private String ignoredAccessLevelPackage;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* AccessLevel.PROTECTED
|
||||||
|
*/
|
||||||
|
@Getter(AccessLevel.PROTECTED)
|
||||||
|
@Setter(AccessLevel.PROTECTED)
|
||||||
|
private String ignoredAccessLevelProtected;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* AccessLevel.MODULE
|
||||||
|
*/
|
||||||
|
@Getter(AccessLevel.MODULE)
|
||||||
|
@Setter(AccessLevel.MODULE)
|
||||||
|
private String ignoredAccessLevelModule;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,93 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2012-2018 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 org.springframework.boot.configurationsample.lombok;
|
||||||
|
|
||||||
|
import lombok.AccessLevel;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
import org.springframework.boot.configurationsample.ConfigurationProperties;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Configuration properties using lombok @Getter and @Setter with explicitly defining
|
||||||
|
* AccessLevel.PUBLIC on element level and overwriting behaviour at field level.
|
||||||
|
*
|
||||||
|
* @author Jonas Keßler
|
||||||
|
*/
|
||||||
|
@Getter(AccessLevel.PUBLIC)
|
||||||
|
@Setter(AccessLevel.PUBLIC)
|
||||||
|
@ConfigurationProperties(prefix = "accesslevel.overwrite.explicit")
|
||||||
|
public class LombokAccessLevelOverwriteExplicitProperties {
|
||||||
|
|
||||||
|
private String name0;
|
||||||
|
|
||||||
|
@Getter(AccessLevel.PUBLIC)
|
||||||
|
@Setter(AccessLevel.PUBLIC)
|
||||||
|
private String name1;
|
||||||
|
|
||||||
|
@Getter(AccessLevel.PUBLIC)
|
||||||
|
private String name2;
|
||||||
|
|
||||||
|
@Setter(AccessLevel.PUBLIC)
|
||||||
|
private String name3;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
private String name4;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
private String name5;
|
||||||
|
|
||||||
|
@Setter
|
||||||
|
private String name6;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* AccessLevel.NONE
|
||||||
|
*/
|
||||||
|
@Getter(AccessLevel.NONE)
|
||||||
|
@Setter(AccessLevel.NONE)
|
||||||
|
private String ignoredAccessLevelNone;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* AccessLevel.PRIVATE
|
||||||
|
*/
|
||||||
|
@Getter(AccessLevel.PRIVATE)
|
||||||
|
@Setter(AccessLevel.PRIVATE)
|
||||||
|
private String ignoredAccessLevelPrivate;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* AccessLevel.PACKAGE
|
||||||
|
*/
|
||||||
|
@Getter(AccessLevel.PACKAGE)
|
||||||
|
@Setter(AccessLevel.PACKAGE)
|
||||||
|
private String ignoredAccessLevelPackage;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* AccessLevel.PROTECTED
|
||||||
|
*/
|
||||||
|
@Getter(AccessLevel.PROTECTED)
|
||||||
|
@Setter(AccessLevel.PROTECTED)
|
||||||
|
private String ignoredAccessLevelProtected;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* AccessLevel.MODULE
|
||||||
|
*/
|
||||||
|
@Getter(AccessLevel.MODULE)
|
||||||
|
@Setter(AccessLevel.MODULE)
|
||||||
|
private String ignoredAccessLevelModule;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,85 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2012-2018 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 org.springframework.boot.configurationsample.lombok;
|
||||||
|
|
||||||
|
import lombok.AccessLevel;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
import org.springframework.boot.configurationsample.ConfigurationProperties;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Configuration properties without lombok annotations at element level.
|
||||||
|
*
|
||||||
|
* @author Jonas Keßler
|
||||||
|
*/
|
||||||
|
@ConfigurationProperties(prefix = "accesslevel")
|
||||||
|
public class LombokAccessLevelProperties {
|
||||||
|
|
||||||
|
@Getter(AccessLevel.PUBLIC)
|
||||||
|
@Setter(AccessLevel.PUBLIC)
|
||||||
|
private String name0;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
private String name1;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* AccessLevel.NONE
|
||||||
|
*/
|
||||||
|
@Getter(AccessLevel.NONE)
|
||||||
|
@Setter(AccessLevel.NONE)
|
||||||
|
private String ignoredAccessLevelNone;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* AccessLevel.PRIVATE
|
||||||
|
*/
|
||||||
|
@Getter(AccessLevel.PRIVATE)
|
||||||
|
@Setter(AccessLevel.PRIVATE)
|
||||||
|
private String ignoredAccessLevelPrivate;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* AccessLevel.PACKAGE
|
||||||
|
*/
|
||||||
|
@Getter(AccessLevel.PACKAGE)
|
||||||
|
@Setter(AccessLevel.PACKAGE)
|
||||||
|
private String ignoredAccessLevelPackage;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* AccessLevel.PROTECTED
|
||||||
|
*/
|
||||||
|
@Getter(AccessLevel.PROTECTED)
|
||||||
|
@Setter(AccessLevel.PROTECTED)
|
||||||
|
private String ignoredAccessLevelProtected;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* AccessLevel.MODULE
|
||||||
|
*/
|
||||||
|
@Getter(AccessLevel.MODULE)
|
||||||
|
@Setter(AccessLevel.MODULE)
|
||||||
|
private String ignoredAccessLevelModule;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Either PUBLIC getter or setter explicitly defined
|
||||||
|
*/
|
||||||
|
@Getter(AccessLevel.PUBLIC)
|
||||||
|
private String ignoredOnlyPublicGetter;
|
||||||
|
|
||||||
|
@Setter(AccessLevel.PUBLIC)
|
||||||
|
private String ignoredOnlyPublicSetter;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -62,4 +62,10 @@ public class LombokExplicitProperties {
|
||||||
@SuppressWarnings("unused")
|
@SuppressWarnings("unused")
|
||||||
private String ignored;
|
private String ignored;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
private String ignoredOnlyGetter;
|
||||||
|
|
||||||
|
@Setter
|
||||||
|
private String ignoredOnlySetter;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue