Skip to content

Commit

Permalink
gplazma: grid drops the MapPredicate interface
Browse files Browse the repository at this point in the history
Motivation:

The MapPredicate interface provides no benefit against the Java standard
Predicate class.

Modification:

Remove MapPredicate class.  Update remaining code to use the Predicate
interface.

Result:

No user- or admin observable changes.  Code is easier to maintain.

Target: master
Requires-notes: no
Requires-book: no
Patch: https://rb.dcache.org/r/13664/
Acked-by: Tigran Mkrtchyan
  • Loading branch information
paulmillar committed Sep 22, 2022
1 parent c5de48f commit 1b4c549
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 50 deletions.
Expand Up @@ -7,6 +7,7 @@
import com.google.common.base.Objects;
import java.util.AbstractMap.SimpleImmutableEntry;
import java.util.Arrays;
import java.util.function.Predicate;
import java.util.Map;
import java.util.OptionalLong;
import java.util.regex.Matcher;
Expand All @@ -19,7 +20,7 @@
* @author karsten
*/
class AuthzMapLineParser implements
LineParser<AuthzMapLineParser.StringPredicate, AuthzMapLineParser.UserAuthzInformation> {
LineParser<Predicate<String>, AuthzMapLineParser.UserAuthzInformation> {

private static final Logger _log = LoggerFactory.getLogger(AuthzMapLineParser.class);

Expand Down Expand Up @@ -67,7 +68,7 @@ private static String stripQuotes(String s) {
}

@Override
public Map.Entry<StringPredicate, UserAuthzInformation> accept(String line) {
public Map.Entry<Predicate<String>, UserAuthzInformation> accept(String line) {
line = line.trim();
if (line.isEmpty() || line.startsWith("#") || line.startsWith("version 2.")) {
return null;
Expand All @@ -89,7 +90,7 @@ public Map.Entry<StringPredicate, UserAuthzInformation> accept(String line) {
: OptionalLong.of(SIZE_PARSER.parse(maxUploadValue));
UserAuthzInformation info = new UserAuthzInformation(key, access,
Long.parseLong(uid), gids, home, root, fsroot, maxUpload);
return new SimpleImmutableEntry<>(new StringPredicate(key), info);
return new SimpleImmutableEntry<>(key::equals, info);
}
_log.warn("Ignored malformed line in AuthzDB-File: '{}'", line);
} catch (NumberFormatException e) {
Expand All @@ -98,20 +99,6 @@ public Map.Entry<StringPredicate, UserAuthzInformation> accept(String line) {
return null;
}

public static class StringPredicate implements MapPredicate<String> {

private final String _string;

public StringPredicate(String string) {
_string = string;
}

@Override
public boolean matches(String object) {
return _string.equals(object);
}
}

public static class UserAuthzInformation {

private final String _username;
Expand Down

This file was deleted.

Expand Up @@ -7,6 +7,7 @@
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.function.Predicate;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

Expand All @@ -22,12 +23,12 @@ class SourceBackedPredicateMap<TKey, TValue> implements PredicateMap<TKey, TValu

private static final Logger _log = LoggerFactory.getLogger(SourceBackedPredicateMap.class);

private final Map<MapPredicate<TKey>, TValue> _predicateValueMap = new LinkedHashMap<>();
private final Map<Predicate<TKey>, TValue> _predicateValueMap = new LinkedHashMap<>();
private final LineSource _source;
private final LineParser<? extends MapPredicate<TKey>, TValue> _parser;
private final LineParser<? extends Predicate<TKey>, TValue> _parser;

protected SourceBackedPredicateMap(LineSource source,
LineParser<? extends MapPredicate<TKey>, TValue> parser) {
LineParser<? extends Predicate<TKey>, TValue> parser) {
_source = source;
_parser = parser;
}
Expand All @@ -52,8 +53,8 @@ public synchronized List<TValue> getValuesForPredicatesMatching(TKey key) {
}

List<TValue> result = new LinkedList<>();
for (Entry<MapPredicate<TKey>, TValue> predicateEntry : _predicateValueMap.entrySet()) {
if (predicateEntry.getKey().matches(key)) {
for (Entry<Predicate<TKey>, TValue> predicateEntry : _predicateValueMap.entrySet()) {
if (predicateEntry.getKey().test(key)) {
result.add(predicateEntry.getValue());
}
}
Expand All @@ -65,7 +66,7 @@ private synchronized void createMapFromData(List<String> data) {
_predicateValueMap.clear();

for (String line : data) {
Map.Entry<? extends MapPredicate<TKey>, TValue> entry = _parser.accept(line);
Map.Entry<? extends Predicate<TKey>, TValue> entry = _parser.accept(line);
if (entry != null) {
_predicateValueMap.put(entry.getKey(), entry.getValue());
}
Expand Down
Expand Up @@ -2,6 +2,7 @@

import com.google.common.base.Strings;
import java.util.Map;
import java.util.function.Predicate;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.dcache.auth.FQAN;
Expand All @@ -15,8 +16,7 @@
*
* @author karsten
*/
class VOMapLineParser
implements LineParser<VOMapLineParser.DNFQANPredicate, String> {
class VOMapLineParser implements LineParser<Predicate<NameRolePair>, String> {

private static final Logger _log = LoggerFactory.getLogger(VOMapLineParser.class);

Expand All @@ -41,7 +41,7 @@ class VOMapLineParser
private static final int RM_KEY_GROUP = 3;

@Override
public Map.Entry<DNFQANPredicate, String> accept(String line) {
public Map.Entry<Predicate<NameRolePair>, String> accept(String line) {
if (Strings.isNullOrEmpty(line.trim()) || line.startsWith("#")) {
return null;
}
Expand All @@ -59,7 +59,7 @@ public Map.Entry<DNFQANPredicate, String> accept(String line) {
return null;
}

static class DNFQANPredicate implements MapPredicate<NameRolePair> {
static class DNFQANPredicate implements Predicate<NameRolePair> {

private final Pattern _dnPattern;
private final FQAN _fqan;
Expand All @@ -70,7 +70,7 @@ public DNFQANPredicate(String dnGlob, FQAN fqan) {
}

@Override
public boolean matches(NameRolePair dnfqan) {
public boolean test(NameRolePair dnfqan) {
String dn = Strings.nullToEmpty(dnfqan.getName());
FQAN fqan = new FQAN(Strings.nullToEmpty(dnfqan.getRole()));
return _dnPattern.matcher(dn).matches() &&
Expand All @@ -79,18 +79,18 @@ public boolean matches(NameRolePair dnfqan) {
}

private static final class DNFQANStringEntry
implements Map.Entry<DNFQANPredicate, String> {
implements Map.Entry<Predicate<NameRolePair>, String> {

private final DNFQANPredicate _key;
private final Predicate<NameRolePair> _key;
private String _value;

public DNFQANStringEntry(DNFQANPredicate key, String value) {
public DNFQANStringEntry(Predicate<NameRolePair> key, String value) {
_key = key;
_value = value;
}

@Override
public DNFQANPredicate getKey() {
public Predicate<NameRolePair> getKey() {
return _key;
}

Expand Down

0 comments on commit 1b4c549

Please sign in to comment.