package cz.incad.kramerius.editor.server;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.ResourceBundle;
import java.util.logging.Level;
import java.util.logging.Logger;
import net.customware.gwt.dispatch.server.ActionHandler;
import net.customware.gwt.dispatch.server.ExecutionContext;
import net.customware.gwt.dispatch.shared.DispatchException;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import com.google.inject.Inject;
import com.google.inject.name.Named;
import cz.incad.kramerius.FedoraAccess;
import cz.incad.kramerius.editor.server.utils.ApiUtilsHelp;
import cz.incad.kramerius.editor.share.rpc.GetTabstitleQuery;
import cz.incad.kramerius.editor.share.rpc.GetTabstitleResult;
import cz.incad.kramerius.relation.RelationService;
import cz.incad.kramerius.utils.StringUtils;
public class GetTabtitlesQueryHandler implements ActionHandler<GetTabstitleQuery, GetTabstitleResult> {
public static final Logger LOGGER = Logger.getLogger(GetTabtitlesQueryHandler.class.getName());
private RelationService relationsDAO;
private FedoraAccess fedoraAccess;
private RemoteServices remotes;
@Inject
public GetTabtitlesQueryHandler(
RelationService dao,
RemoteServices remotes,
@Named("rawFedoraAccess") FedoraAccess fedoraAccess) {
this.relationsDAO = dao;
this.fedoraAccess = fedoraAccess;
this.remotes = remotes;
}
@Override
public GetTabstitleResult execute(GetTabstitleQuery query, ExecutionContext ctx) throws DispatchException {
String pid = query.getPID();
String title = ApiUtilsHelp.constructTitle(pid);
GetTabstitleResult res = new GetTabstitleResult(title);
return res;
}
private JSONArray select(JSONArray ctxArray) throws JSONException {
if (ctxArray.length() > 0) {
return ctxArray.getJSONArray(0);
} else return null;
}
@Override
public Class<GetTabstitleQuery> getActionType() {
return GetTabstitleQuery.class;
}
@Override
public void rollback(GetTabstitleQuery query, GetTabstitleResult result, ExecutionContext ctx) throws DispatchException {
// read only
}
}