mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-03 12:05:52 +01:00
wrap lookup command result in java.util.Optional to clarify api
This commit is contained in:
@@ -29,6 +29,7 @@ import org.tmatesoft.svn.core.SVNException;
|
||||
import org.tmatesoft.svn.core.io.SVNRepository;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Optional;
|
||||
|
||||
@Slf4j
|
||||
public class SvnLookupCommand extends AbstractSvnCommand implements LookupCommand {
|
||||
@@ -38,18 +39,28 @@ public class SvnLookupCommand extends AbstractSvnCommand implements LookupComman
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> T lookup(LookupCommandRequest request) {
|
||||
public <T> Optional<T> lookup(LookupCommandRequest request) {
|
||||
try {
|
||||
SVNRepository repository = context.open();
|
||||
if (request.getArgs()[0].equalsIgnoreCase("props")) {
|
||||
if (Arrays.stream(request.getArgs()).anyMatch(a -> a.equalsIgnoreCase("uuid"))) {
|
||||
return (T) repository.getRepositoryUUID(false);
|
||||
}
|
||||
if (requestContainsArg(request, "props")) {
|
||||
return lookupProps(request);
|
||||
}
|
||||
} catch (SVNException | ClassCastException e) {
|
||||
log.error("Invalid lookup request", e);
|
||||
} catch (SVNException e) {
|
||||
log.error("Lookup failed: ", e);
|
||||
}
|
||||
|
||||
return null;
|
||||
return Optional.empty();
|
||||
}
|
||||
|
||||
private <T> Optional<T> lookupProps(LookupCommandRequest request) throws SVNException {
|
||||
if (requestContainsArg(request, "uuid")) {
|
||||
SVNRepository repository = context.open();
|
||||
return Optional.of((T) repository.getRepositoryUUID(true));
|
||||
}
|
||||
log.debug("No result found on lookup");
|
||||
return Optional.empty();
|
||||
}
|
||||
|
||||
private boolean requestContainsArg(LookupCommandRequest request, String props) {
|
||||
return Arrays.stream(request.getArgs()).anyMatch(a -> a.equalsIgnoreCase(props));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user