com.softicar.platform.common.core.java.classes.name.JavaClassNameDeterminer Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of platform-common Show documentation
Show all versions of platform-common Show documentation
The SoftiCAR Platform is a lightweight, Java-based library to create interactive business web applications.
package com.softicar.platform.common.core.java.classes.name;
import java.util.Objects;
import java.util.Optional;
/**
* Determines {@link JavaClassName} instances.
*
* @author Alexander Schmidt
*/
public class JavaClassNameDeterminer {
/**
* Determines a {@link JavaClassName} from a given field descriptor.
*
* If the given field descriptor does not designate a class, or if it is an
* empty {@link String}, {@link Optional#empty()} is returned.
*
* @param fieldDescriptor
* the field descriptor (never null)
* @return the {@link JavaClassName}
*/
public Optional fromFieldDescriptor(String fieldDescriptor) {
Objects.requireNonNull(fieldDescriptor);
String output = fieldDescriptor;
if (output.endsWith(";")) {
output = output.substring(0, output.length() - 1);
if (output.startsWith("[")) {
output = output.substring(1);
}
if (output.startsWith("L")) {
output = output.substring(1);
return Optional.of(new JavaClassName(output));
}
}
return Optional.empty();
}
}