![JAR search and dependency download from the Maven repository](/logo.png)
info.kwarc.sally4.mhw.base.impl.MathHubWorkerAssigner Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of mhw-base Show documentation
Show all versions of mhw-base Show documentation
Implements the interaction of assigning a MathHub document to a Worker.
The newest version!
package info.kwarc.sally4.mhw.base.impl;
import info.kwarc.sally4.lmh.impl.LMHImpl;
import info.kwarc.sally4.lmh.impl.LMHMultiUserStore;
import info.kwarc.sally4.mhw.base.IMathHubUser;
import info.kwarc.sally4.mhw.base.IMathHubWorker;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import org.apache.felix.ipojo.annotations.Bind;
public class MathHubWorkerAssigner {
HashSet lmhStores;
HashMap workerAssignments;
public MathHubWorkerAssigner() {
lmhStores = new HashSet();
workerAssignments = new HashMap();
}
@Bind(aggregate=true, optional=true)
public void addLMHStore(LMHMultiUserStore multiUserStore) {
lmhStores.add(multiUserStore);
}
// TODO: MathHubWorkers depending on the LMHMultiUserStore should be released
@Bind(aggregate=true, optional=true)
public void removeLMHStore(LMHMultiUserStore multiUserStore) {
lmhStores.remove(multiUserStore);
}
public List getWorkerSuggestions(final IMathHubUser user) {
List suggestions = new ArrayList();
for (final LMHMultiUserStore store : lmhStores) {
suggestions.add(new MathHubWorkerSuggestion() {
@Override
public IMathHubWorker doAssignWorker() {
LMHImpl inst = store.initUser(user.getUserId(), user.getPrivateKey());
MathHubWorker worker = new MathHubWorker(user, inst);
workerAssignments.put(user.getUserId(), worker);
return worker;
}
@Override
public String getDescription() {
return "Worker for user "+user.getUserName();
}
});
}
return suggestions;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy