@Override public long update(Printer printer) throws IOException { authorizationManager.throwIfNotInternal(); Printer original = printerStore.get(printer.getId()); original.setBackend(printer.getBackend()); original.setConfiguration(printer.getConfiguration()); original.setDriver(printer.getDriver()); original.setEnabled(printer.isEnabled()); original.setName(printer.getName()); return printerStore.save(original); }
@Override public String getDeleteDescription() { return getName() + " (" + getDriver().name() + "/" + getBackend().name() + ")"; }
public static PrinterDto asDto(@Nonnull Printer from) { PrinterDto dto = new PrinterDto(); dto.setId(from.getId()); dto.setAvailable(from.isEnabled()); dto.setBackend(from.getBackend().name()); // We intentionally do not pass configuration to the front end since it has passwords in it. dto.setDriver(from.getDriver().name()); dto.setLayout(from.getLayout().name()); dto.setName(from.getName()); return dto; }
public static Printer to(@Nonnull PrinterDto dto) throws JsonProcessingException { Printer to = new Printer(); to.setId(dto.getId()); to.setBackend(Backend.valueOf(dto.getBackend())); to.setConfiguration(new ObjectMapper().writeValueAsString(dto.getConfiguration())); to.setDriver(Driver.valueOf(dto.getDriver())); to.setLayout(Layout.valueOf(dto.getLayout())); to.setEnabled(dto.isAvailable()); to.setName(dto.getName()); return to; }
@Override public List<Printer> getEnabled() throws IOException { List<Printer> enabled = new ArrayList<>(); for (Printer printer : list(0, 0, true, "id")) { if (printer.isEnabled()) { enabled.add(printer); } } return enabled; }
@Override public long create(Printer printer) throws IOException { authorizationManager.throwIfNonAdmin(); printer.setId(Printer.UNSAVED_ID); return printerStore.save(printer); }