![JAR search and dependency download from the Maven repository](/logo.png)
net.intelie.live.plugins.messenger.data.UserDataResolver Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of plugin-messenger Show documentation
Show all versions of plugin-messenger Show documentation
Intelie Live Messenger Plugin
The newest version!
package net.intelie.live.plugins.messenger.data;
import com.google.common.cache.CacheBuilder;
import com.google.common.cache.CacheLoader;
import com.google.common.cache.LoadingCache;
import net.intelie.live.EntityContext;
import net.intelie.live.model.User;
import net.intelie.live.queries.AllUsers;
import org.jetbrains.annotations.NotNull;
import java.util.Collections;
import java.util.concurrent.TimeUnit;
public class UserDataResolver {
private final LoadingCache cache;
public UserDataResolver(EntityContext context) {
this.cache = CacheBuilder.newBuilder().maximumSize(1024).expireAfterWrite(1, TimeUnit.MINUTES).build(new CacheLoader() {
@Override
public User load(@NotNull Integer key) {
User user = context.inTransaction(() -> context.findOneOf(new AllUsers().byIds(Collections.singleton(key))));
if (user == null){
user = new User();
}
return user;
}
});
}
public UserData resolve(Integer id) {
if (id == null) return null;
User user = cache.getUnchecked(id);
if (user == null || user.getId() == null) return null;
return new UserData(id, user.getDisplayName());
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy