blob: 6894d5d457a580819a0e0a8c6ae38496bb2631cc [file] [log] [blame]
package jnr.posix;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
public class SimpleFunctionMapper implements jnr.ffi.mapper.FunctionMapper {
private final Map<String, String> functionNameMap;
private SimpleFunctionMapper(Map<String, String> map) {
functionNameMap = Collections.unmodifiableMap(new HashMap<String, String>(map));
}
public String mapFunctionName(String functionName, Context context) {
String nativeFunction = functionNameMap.get(functionName);
return nativeFunction != null ? nativeFunction : functionName;
}
public static class Builder {
private final Map<String, String> functionNameMap = Collections.synchronizedMap(new HashMap<String, String>());
public Builder map(String posixName, String nativeFunction) {
functionNameMap.put(posixName, nativeFunction);
return this;
}
public SimpleFunctionMapper build() {
return new SimpleFunctionMapper(functionNameMap);
}
}
}