AliasedConfigurationPropertySource Class — spring-boot Architecture
Architecture documentation for the AliasedConfigurationPropertySource class in AliasedConfigurationPropertySource.java from the spring-boot codebase.
Entity Profile
Source Code
core/spring-boot/src/main/java/org/springframework/boot/context/properties/source/AliasedConfigurationPropertySource.java lines 29–91
class AliasedConfigurationPropertySource implements ConfigurationPropertySource {
private final ConfigurationPropertySource source;
private final ConfigurationPropertyNameAliases aliases;
AliasedConfigurationPropertySource(ConfigurationPropertySource source, ConfigurationPropertyNameAliases aliases) {
Assert.notNull(source, "'source' must not be null");
Assert.notNull(aliases, "'aliases' must not be null");
this.source = source;
this.aliases = aliases;
}
@Override
public @Nullable ConfigurationProperty getConfigurationProperty(ConfigurationPropertyName name) {
Assert.notNull(name, "'name' must not be null");
ConfigurationProperty result = getSource().getConfigurationProperty(name);
if (result == null) {
ConfigurationPropertyName aliasedName = getAliases().getNameForAlias(name);
result = (aliasedName != null) ? getSource().getConfigurationProperty(aliasedName) : null;
}
return result;
}
@Override
public ConfigurationPropertyState containsDescendantOf(ConfigurationPropertyName name) {
Assert.notNull(name, "'name' must not be null");
ConfigurationPropertyState result = this.source.containsDescendantOf(name);
if (result != ConfigurationPropertyState.ABSENT) {
return result;
}
for (ConfigurationPropertyName alias : getAliases().getAliases(name)) {
ConfigurationPropertyState aliasResult = this.source.containsDescendantOf(alias);
if (aliasResult != ConfigurationPropertyState.ABSENT) {
return aliasResult;
}
}
for (ConfigurationPropertyName from : getAliases()) {
for (ConfigurationPropertyName alias : getAliases().getAliases(from)) {
if (name.isAncestorOf(alias)) {
if (this.source.getConfigurationProperty(from) != null) {
return ConfigurationPropertyState.PRESENT;
}
}
}
}
return ConfigurationPropertyState.ABSENT;
}
@Override
public @Nullable Object getUnderlyingSource() {
return this.source.getUnderlyingSource();
}
protected ConfigurationPropertySource getSource() {
return this.source;
}
protected ConfigurationPropertyNameAliases getAliases() {
return this.aliases;
}
}
Source
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free