@SuppressWarnings("unchecked") @Override protected void doPut(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { traceRequest(req); IEclipsePreferences node = getNode(req, resp, true); if (node == null) return; String key = req.getParameter("key"); try { if (key != null) { node.put(key, req.getParameter("value")); } else { JSONObject newNode = new JSONObject(new JSONTokener(req.getReader())); node.clear(); for (Iterator<String> it = newNode.keys(); it.hasNext(); ) { key = it.next(); node.put(key, newNode.getString(key)); } } prefRoot.flush(); resp.setStatus(HttpServletResponse.SC_NO_CONTENT); } catch (Exception e) { handleException( resp, NLS.bind("Failed to store preferences for {0}", req.getRequestURL()), e); return; } }
/** * Set all the processor options in one call. This will delete any options that are not passed in, * so callers who do not wish to destroy pre-existing options should use addProcessorOption() * instead. * * @param options a map of keys to values. The keys should not include any automatic options (@see * #isAutomaticProcessorOption(String)), and the "-A" should not be included. That is, to * perform the equivalent of the apt command line "-Afoo=bar", use the key "foo" and the value * "bar". Keys cannot contain spaces; values can contain anything at all. Keys cannot be null, * but values can be. */ public static void setProcessorOptions(Map<String, String> options, IJavaProject jproj) { IScopeContext context = (null != jproj) ? new ProjectScope(jproj.getProject()) : InstanceScope.INSTANCE; // TODO: this call is needed only for backwards compatibility with // settings files previous to 2005.11.13. At some point it should be // removed. removeOldStyleSettings(context); IEclipsePreferences node = context.getNode( AptPlugin.PLUGIN_ID + "/" + //$NON-NLS-1$ AptPreferenceConstants.APT_PROCESSOROPTIONS); try { node.clear(); for (Entry<String, String> option : options.entrySet()) { String nonNullVal = option.getValue() == null ? AptPreferenceConstants.APT_NULLVALUE : option.getValue(); node.put(option.getKey(), nonNullVal); } node.flush(); } catch (BackingStoreException e) { AptPlugin.log(e, "Unable to save annotation processor options"); // $NON-NLS-1$ } }