StandardConfigDataResource Class — spring-boot Architecture
Architecture documentation for the StandardConfigDataResource class in StandardConfigDataResource.java from the spring-boot codebase.
Entity Profile
Source Code
core/spring-boot/src/main/java/org/springframework/boot/context/config/StandardConfigDataResource.java lines 37–146
public class StandardConfigDataResource extends ConfigDataResource {
private final StandardConfigDataReference reference;
private final Resource resource;
private final boolean emptyDirectory;
/**
* Create a new {@link StandardConfigDataResource} instance.
* @param reference the resource reference
* @param resource the underlying resource
*/
StandardConfigDataResource(StandardConfigDataReference reference, Resource resource) {
this(reference, resource, false);
}
/**
* Create a new {@link StandardConfigDataResource} instance.
* @param reference the resource reference
* @param resource the underlying resource
* @param emptyDirectory if the resource is an empty directory that we know exists
*/
StandardConfigDataResource(StandardConfigDataReference reference, Resource resource, boolean emptyDirectory) {
Assert.notNull(reference, "'reference' must not be null");
Assert.notNull(resource, "'resource' must not be null");
this.reference = reference;
this.resource = resource;
this.emptyDirectory = emptyDirectory;
}
StandardConfigDataReference getReference() {
return this.reference;
}
/**
* Return the underlying Spring {@link Resource} being loaded.
* @return the underlying resource
* @since 2.4.2
*/
public Resource getResource() {
return this.resource;
}
/**
* Return the profile or {@code null} if the resource is not profile specific.
* @return the profile or {@code null}
* @since 2.4.6
*/
public @Nullable String getProfile() {
return this.reference.getProfile();
}
boolean isEmptyDirectory() {
return this.emptyDirectory;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null || getClass() != obj.getClass()) {
return false;
}
StandardConfigDataResource other = (StandardConfigDataResource) obj;
return (this.emptyDirectory == other.emptyDirectory) && isSameUnderlyingResource(this.resource, other.resource);
}
private boolean isSameUnderlyingResource(Resource ours, Resource other) {
return ours.equals(other) || isSameFile(getUnderlyingFile(ours), getUnderlyingFile(other));
}
private boolean isSameFile(@Nullable File ours, @Nullable File other) {
return (ours != null) && ours.equals(other);
}
@Override
public int hashCode() {
File underlyingFile = getUnderlyingFile(this.resource);
return (underlyingFile != null) ? underlyingFile.hashCode() : this.resource.hashCode();
}
@Override
public String toString() {
if (this.resource instanceof FileSystemResource || this.resource instanceof FileUrlResource) {
try {
return "file [" + this.resource.getFile() + "]";
}
catch (IOException ex) {
// Ignore
}
}
return this.resource.toString();
}
private @Nullable File getUnderlyingFile(Resource resource) {
try {
if (resource instanceof ClassPathResource || resource instanceof FileSystemResource
|| resource instanceof FileUrlResource) {
return resource.getFile().getAbsoluteFile();
}
}
catch (IOException ex) {
// Ignore
}
return null;
}
}
Source
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free