![JAR search and dependency download from the Maven repository](/logo.png)
io.legaldocml.xpath.cerebro.CerebroDirectLink Maven / Gradle / Ivy
package io.legaldocml.xpath.cerebro;
import io.legaldocml.akn.AknObject;
import io.legaldocml.util.ToStringBuilder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.List;
import java.util.function.Function;
import java.util.stream.Collectors;
final class CerebroDirectLink implements CerebroLink {
/**
* SLF4J Logger.
*/
private static final Logger LOGGER = LoggerFactory.getLogger(CerebroDirectLink.class);
private final Class aknClass;
private final Function link;
public CerebroDirectLink(Class aknClass, Function link) {
this.aknClass = aknClass;
this.link = link;
}
public Class getAknClass() {
return aknClass;
}
@Override
public Object apply(T e) {
if (e instanceof List) {
return ((List)e).stream().map(this.link).collect(Collectors.toList());
}
try {
return this.link.apply(e);
} catch (ClassCastException cause) {
if (LOGGER.isDebugEnabled()) {
LOGGER.debug("ClassCast => return null", cause);
}
return null;
}
}
@Override
public String toString() {
return new ToStringBuilder(true)
.append("type", "directLink")
.append("aknClass", aknClass.getSimpleName())
.toString();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy