@Override public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { Project project = getProject(request); List<String> localExpressions = toExpressionList(project.getMetadata().getPreferenceStore().get("scripting.expressions")); localExpressions = localExpressions.size() > 20 ? localExpressions.subList(0, 20) : localExpressions; List<String> globalExpressions = toExpressionList( ProjectManager.getSingleton().getPreferenceStore().get("scripting.expressions")); Set<String> starredExpressions = new HashSet<String>( ((TopList) ProjectManager.getSingleton() .getPreferenceStore() .get("scripting.starred-expressions")) .getList()); Set<String> done = new HashSet<String>(); response.setCharacterEncoding("UTF-8"); response.setHeader("Content-Type", "application/json"); JSONWriter writer = new JSONWriter(response.getWriter()); writer.object(); writer.key("expressions"); writer.array(); for (String s : localExpressions) { writer.object(); writer.key("code"); writer.value(s); writer.key("global"); writer.value(false); writer.key("starred"); writer.value(starredExpressions.contains(s)); writer.endObject(); done.add(s); } for (String s : globalExpressions) { if (!done.contains(s)) { writer.object(); writer.key("code"); writer.value(s); writer.key("global"); writer.value(true); writer.key("starred"); writer.value(starredExpressions.contains(s)); writer.endObject(); } } writer.endArray(); writer.endObject(); } catch (Exception e) { respondException(response, e); } }