@Override public boolean apply(OptionValue option) { return option.getType() == SYSTEM; } };
public TypeValidator(final String name, final Kind kind, final OptionValue defValue) { super(name); checkArgument(defValue.getType() == OptionType.SYSTEM, "Default value must be SYSTEM type."); this.kind = kind; this.defaultValue = defValue; }
@Override boolean setLocalOption(final OptionValue value) { if (supportsOptionType(value.getType())) { options.put(value.getName(), value); return true; } else { return false; } }
@DELETE @Path("{id}") public Response resetSetting(@PathParam("id") String id) { if(!options.isValid(id)){ return Response.status(Status.NOT_FOUND).build(); } OptionValue option = options.getOption(id); options.deleteOption(id, option.getType()); return Response.ok().build(); }
@Override public void setOption(final OptionValue value) { checkArgument(value.getType() == OptionType.SYSTEM, "OptionType must be SYSTEM."); final String name = value.getName().toLowerCase(); final OptionValidator validator = getValidator(name); validator.validate(value); // validate the option if (options.get(name) == null && value.equals(validator.getDefault())) { return; // if the option is not overridden, ignore setting option to default } options.put(name, value); }
@Override public void validate(final OptionValue v) { if (v.getType() != OptionType.SESSION) { throw UserException.validationError() .message("Controls can be set only at SESSION level.") .build(logger); } final String jsonString = v.getStringVal(); try { validateControlsString(jsonString); } catch (final IOException e) { throw UserException.validationError() .message(String.format("Invalid controls option string (%s) due to %s.", jsonString, e.getMessage())) .build(logger); } } }
@Override public OptionValueWrapper next() { final OptionValue value = mergedOptions.next(); final Status status; if (value.getType() == OptionType.BOOT) { status = Status.BOOT; } else { final OptionValue def = fragmentOptions.getValidator(value.getName()).getDefault(); if (value.equalsIgnoreType(def)) { status = Status.DEFAULT; } else { status = Status.CHANGED; } } return new OptionValueWrapper(value.getName(), value.getKind(), value.getType(), value.getNumVal(), value.getStringVal(), value.getBoolVal(), value.getFloatVal(), status); }