Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in / Register
Toggle navigation
S
spring-boot
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
DEMO
spring-boot
Commits
75c248dc
Commit
75c248dc
authored
Feb 26, 2019
by
Stephane Nicoll
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Move setter attribute in PropertyDescriptor proper
parent
a90c8d01
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
29 additions
and
31 deletions
+29
-31
JavaBeanPropertyDescriptor.java
...ot/configurationprocessor/JavaBeanPropertyDescriptor.java
+1
-19
LombokPropertyDescriptor.java
...boot/configurationprocessor/LombokPropertyDescriptor.java
+7
-6
PropertyDescriptor.java
...ework/boot/configurationprocessor/PropertyDescriptor.java
+15
-3
PropertyDescriptorResolver.java
...ot/configurationprocessor/PropertyDescriptorResolver.java
+2
-1
LombokPropertyDescriptorTests.java
...configurationprocessor/LombokPropertyDescriptorTests.java
+4
-2
No files found.
spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/main/java/org/springframework/boot/configurationprocessor/JavaBeanPropertyDescriptor.java
View file @
75c248dc
...
@@ -21,8 +21,6 @@ import javax.lang.model.element.TypeElement;
...
@@ -21,8 +21,6 @@ import javax.lang.model.element.TypeElement;
import
javax.lang.model.element.VariableElement
;
import
javax.lang.model.element.VariableElement
;
import
javax.lang.model.type.TypeMirror
;
import
javax.lang.model.type.TypeMirror
;
import
org.springframework.boot.configurationprocessor.metadata.ItemDeprecation
;
/**
/**
* A {@link PropertyDescriptor} for a standard JavaBean property.
* A {@link PropertyDescriptor} for a standard JavaBean property.
*
*
...
@@ -30,17 +28,10 @@ import org.springframework.boot.configurationprocessor.metadata.ItemDeprecation;
...
@@ -30,17 +28,10 @@ import org.springframework.boot.configurationprocessor.metadata.ItemDeprecation;
*/
*/
class
JavaBeanPropertyDescriptor
extends
PropertyDescriptor
<
ExecutableElement
>
{
class
JavaBeanPropertyDescriptor
extends
PropertyDescriptor
<
ExecutableElement
>
{
private
final
ExecutableElement
setter
;
JavaBeanPropertyDescriptor
(
TypeElement
ownerElement
,
ExecutableElement
factoryMethod
,
JavaBeanPropertyDescriptor
(
TypeElement
ownerElement
,
ExecutableElement
factoryMethod
,
ExecutableElement
getter
,
String
name
,
TypeMirror
type
,
VariableElement
field
,
ExecutableElement
getter
,
String
name
,
TypeMirror
type
,
VariableElement
field
,
ExecutableElement
setter
)
{
ExecutableElement
setter
)
{
super
(
ownerElement
,
factoryMethod
,
getter
,
name
,
type
,
field
,
getter
);
super
(
ownerElement
,
factoryMethod
,
getter
,
name
,
type
,
field
,
getter
,
setter
);
this
.
setter
=
setter
;
}
public
ExecutableElement
getSetter
()
{
return
this
.
setter
;
}
}
@Override
@Override
...
@@ -50,13 +41,4 @@ class JavaBeanPropertyDescriptor extends PropertyDescriptor<ExecutableElement> {
...
@@ -50,13 +41,4 @@ class JavaBeanPropertyDescriptor extends PropertyDescriptor<ExecutableElement> {
&&
(
getSetter
()
!=
null
||
isCollection
);
&&
(
getSetter
()
!=
null
||
isCollection
);
}
}
@Override
protected
ItemDeprecation
resolveItemDeprecation
(
MetadataGenerationEnvironment
environment
)
{
boolean
deprecated
=
environment
.
isDeprecated
(
getGetter
())
||
environment
.
isDeprecated
(
getSetter
())
||
environment
.
isDeprecated
(
getFactoryMethod
());
return
deprecated
?
environment
.
resolveItemDeprecation
(
getGetter
())
:
null
;
}
}
}
spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/main/java/org/springframework/boot/configurationprocessor/LombokPropertyDescriptor.java
View file @
75c248dc
...
@@ -43,9 +43,9 @@ class LombokPropertyDescriptor extends PropertyDescriptor<VariableElement> {
...
@@ -43,9 +43,9 @@ class LombokPropertyDescriptor extends PropertyDescriptor<VariableElement> {
private
static
final
String
LOMBOK_ACCESS_LEVEL_PUBLIC
=
"PUBLIC"
;
private
static
final
String
LOMBOK_ACCESS_LEVEL_PUBLIC
=
"PUBLIC"
;
LombokPropertyDescriptor
(
TypeElement
typeElement
,
ExecutableElement
factoryMethod
,
LombokPropertyDescriptor
(
TypeElement
typeElement
,
ExecutableElement
factoryMethod
,
VariableElement
field
,
String
name
,
TypeMirror
type
,
VariableElement
field
,
String
name
,
TypeMirror
type
,
ExecutableElement
getter
,
ExecutableElement
g
etter
)
{
ExecutableElement
s
etter
)
{
super
(
typeElement
,
factoryMethod
,
field
,
name
,
type
,
field
,
getter
);
super
(
typeElement
,
factoryMethod
,
field
,
name
,
type
,
field
,
getter
,
setter
);
}
}
@Override
@Override
...
@@ -69,14 +69,15 @@ class LombokPropertyDescriptor extends PropertyDescriptor<VariableElement> {
...
@@ -69,14 +69,15 @@ class LombokPropertyDescriptor extends PropertyDescriptor<VariableElement> {
protected
ItemDeprecation
resolveItemDeprecation
(
protected
ItemDeprecation
resolveItemDeprecation
(
MetadataGenerationEnvironment
environment
)
{
MetadataGenerationEnvironment
environment
)
{
boolean
deprecated
=
environment
.
isDeprecated
(
getField
())
boolean
deprecated
=
environment
.
isDeprecated
(
getField
())
||
environment
.
isDeprecated
(
getGetter
())
||
environment
.
isDeprecated
(
getFactoryMethod
());
||
environment
.
isDeprecated
(
getFactoryMethod
());
return
deprecated
?
new
ItemDeprecation
()
:
null
;
return
deprecated
?
environment
.
resolveItemDeprecation
(
getGetter
())
:
null
;
}
}
private
boolean
hasSetter
(
MetadataGenerationEnvironment
env
)
{
private
boolean
hasSetter
(
MetadataGenerationEnvironment
env
)
{
return
!
getField
().
getModifiers
().
contains
(
Modifier
.
FINAL
)
boolean
nonFinalPublicField
=
!
getField
().
getModifiers
().
contains
(
Modifier
.
FINAL
)
&&
hasLombokPublicAccessor
(
env
,
false
);
&&
hasLombokPublicAccessor
(
env
,
false
);
return
getSetter
()
!=
null
||
nonFinalPublicField
;
}
}
/**
/**
...
...
spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/main/java/org/springframework/boot/configurationprocessor/PropertyDescriptor.java
View file @
75c248dc
...
@@ -49,9 +49,11 @@ abstract class PropertyDescriptor<S> {
...
@@ -49,9 +49,11 @@ abstract class PropertyDescriptor<S> {
private
final
ExecutableElement
getter
;
private
final
ExecutableElement
getter
;
private
final
ExecutableElement
setter
;
protected
PropertyDescriptor
(
TypeElement
ownerElement
,
protected
PropertyDescriptor
(
TypeElement
ownerElement
,
ExecutableElement
factoryMethod
,
S
source
,
String
name
,
TypeMirror
type
,
ExecutableElement
factoryMethod
,
S
source
,
String
name
,
TypeMirror
type
,
VariableElement
field
,
ExecutableElement
getter
)
{
VariableElement
field
,
ExecutableElement
getter
,
ExecutableElement
setter
)
{
this
.
ownerElement
=
ownerElement
;
this
.
ownerElement
=
ownerElement
;
this
.
factoryMethod
=
factoryMethod
;
this
.
factoryMethod
=
factoryMethod
;
this
.
source
=
source
;
this
.
source
=
source
;
...
@@ -59,6 +61,7 @@ abstract class PropertyDescriptor<S> {
...
@@ -59,6 +61,7 @@ abstract class PropertyDescriptor<S> {
this
.
type
=
type
;
this
.
type
=
type
;
this
.
field
=
field
;
this
.
field
=
field
;
this
.
getter
=
getter
;
this
.
getter
=
getter
;
this
.
setter
=
setter
;
}
}
public
TypeElement
getOwnerElement
()
{
public
TypeElement
getOwnerElement
()
{
...
@@ -89,11 +92,20 @@ abstract class PropertyDescriptor<S> {
...
@@ -89,11 +92,20 @@ abstract class PropertyDescriptor<S> {
return
this
.
getter
;
return
this
.
getter
;
}
}
protected
abstract
ItemDeprecation
resolveItemDeprecation
(
public
ExecutableElement
getSetter
()
{
MetadataGenerationEnvironment
environment
);
return
this
.
setter
;
}
protected
abstract
boolean
isProperty
(
MetadataGenerationEnvironment
environment
);
protected
abstract
boolean
isProperty
(
MetadataGenerationEnvironment
environment
);
protected
ItemDeprecation
resolveItemDeprecation
(
MetadataGenerationEnvironment
environment
)
{
boolean
deprecated
=
environment
.
isDeprecated
(
getGetter
())
||
environment
.
isDeprecated
(
getSetter
())
||
environment
.
isDeprecated
(
getFactoryMethod
());
return
deprecated
?
environment
.
resolveItemDeprecation
(
getGetter
())
:
null
;
}
protected
boolean
isNested
(
MetadataGenerationEnvironment
environment
)
{
protected
boolean
isNested
(
MetadataGenerationEnvironment
environment
)
{
Element
typeElement
=
environment
.
getTypeUtils
().
asElement
(
getType
());
Element
typeElement
=
environment
.
getTypeUtils
().
asElement
(
getType
());
if
(!(
typeElement
instanceof
TypeElement
)
if
(!(
typeElement
instanceof
TypeElement
)
...
...
spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/main/java/org/springframework/boot/configurationprocessor/PropertyDescriptorResolver.java
View file @
75c248dc
...
@@ -61,8 +61,9 @@ class PropertyDescriptorResolver {
...
@@ -61,8 +61,9 @@ class PropertyDescriptorResolver {
members
.
getFields
().
forEach
((
name
,
field
)
->
{
members
.
getFields
().
forEach
((
name
,
field
)
->
{
TypeMirror
returnType
=
field
.
asType
();
TypeMirror
returnType
=
field
.
asType
();
ExecutableElement
getter
=
members
.
getPublicGetter
(
name
,
returnType
);
ExecutableElement
getter
=
members
.
getPublicGetter
(
name
,
returnType
);
ExecutableElement
setter
=
members
.
getPublicSetter
(
name
,
returnType
);
candidates
.
add
(
new
LombokPropertyDescriptor
(
type
,
factoryMethod
,
field
,
name
,
candidates
.
add
(
new
LombokPropertyDescriptor
(
type
,
factoryMethod
,
field
,
name
,
returnType
,
getter
));
returnType
,
getter
,
setter
));
});
});
return
candidates
.
stream
().
filter
(
this
::
isCandidate
);
return
candidates
.
stream
().
filter
(
this
::
isCandidate
);
}
}
...
...
spring-boot-project/spring-boot-tools/spring-boot-configuration-processor/src/test/java/org/springframework/boot/configurationprocessor/LombokPropertyDescriptorTests.java
View file @
75c248dc
...
@@ -191,7 +191,7 @@ public class LombokPropertyDescriptorTests extends PropertyDescriptorTests {
...
@@ -191,7 +191,7 @@ public class LombokPropertyDescriptorTests extends PropertyDescriptorTests {
VariableElement
field
=
getField
(
ownerElement
,
"third"
);
VariableElement
field
=
getField
(
ownerElement
,
"third"
);
ExecutableElement
getter
=
getMethod
(
ownerElement
,
"getThird"
);
ExecutableElement
getter
=
getMethod
(
ownerElement
,
"getThird"
);
LombokPropertyDescriptor
property
=
new
LombokPropertyDescriptor
(
ownerElement
,
LombokPropertyDescriptor
property
=
new
LombokPropertyDescriptor
(
ownerElement
,
null
,
field
,
"third"
,
field
.
asType
(),
getter
);
null
,
field
,
"third"
,
field
.
asType
(),
getter
,
null
);
assertItemMetadata
(
metadataEnv
,
property
).
isGroup
().
hasName
(
"test.third"
)
assertItemMetadata
(
metadataEnv
,
property
).
isGroup
().
hasName
(
"test.third"
)
.
hasType
(
.
hasType
(
"org.springframework.boot.configurationsample.lombok.SimpleLombokPojo"
)
"org.springframework.boot.configurationsample.lombok.SimpleLombokPojo"
)
...
@@ -303,8 +303,10 @@ public class LombokPropertyDescriptorTests extends PropertyDescriptorTests {
...
@@ -303,8 +303,10 @@ public class LombokPropertyDescriptorTests extends PropertyDescriptorTests {
VariableElement
field
=
getField
(
ownerElement
,
name
);
VariableElement
field
=
getField
(
ownerElement
,
name
);
ExecutableElement
getter
=
getMethod
(
ownerElement
,
ExecutableElement
getter
=
getMethod
(
ownerElement
,
createAccessorMethodName
(
"get"
,
name
));
createAccessorMethodName
(
"get"
,
name
));
ExecutableElement
setter
=
getMethod
(
ownerElement
,
createAccessorMethodName
(
"set"
,
name
));
return
new
LombokPropertyDescriptor
(
ownerElement
,
null
,
field
,
name
,
return
new
LombokPropertyDescriptor
(
ownerElement
,
null
,
field
,
name
,
field
.
asType
(),
getter
);
field
.
asType
(),
getter
,
setter
);
}
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment