/** * Check if label with given name exists. Case insensitive. * * @param labelName * @return */ public boolean containsName(String labelName) { for (Label label : labels.values()) { if (label.getName().equalsIgnoreCase(labelName)) { return true; } } return false; }
/** * Returns map of label (ID, name) pairs. * * @return */ public Map<Integer, String> getNameMap() { Map<Integer, String> nameMap = new HashMap<Integer, String>(labels.size()); for (Label label : labels.values()) { nameMap.put(label.getId(), label.getName()); } return nameMap; }
if (labelName.startsWith(l.getName() + LabelConstants.NESTED_LABEL_SEPARATOR.toString())) throw new IllegalLabelException("Netsted labels are not allowed under reserved labels");
metadata.get(labelId).put(JSON_NAME, label.getName());
if (label.getName() == null && labelName == null) { throw new BadRequestException("Label name must be specified");
if (label.getName() == null && labelName != null) { label.setName(labelName);
Label label = new Label(l.getId(), l.getName()); labels.put(label);
@Override public void update(Mailbox mailbox, Label label) throws IOException { // get all existing labels LabelMap existingLabels = AccountPersistence.getLabels(mailbox.getId()); // validate only if name is changed (skips letter case changes) if (label.getName() != null && !existingLabels.containsName(label.getName())) { LabelUtils.validateLabelName(label.getName(), existingLabels); } // check if label id reserved if (ReservedLabels.contains(label.getId())) { throw new ExistingLabelException("This is reserved label and can't be modified"); } // check if label id exists if (!existingLabels.containsId(label.getId())) { throw new IllegalLabelException("Label does not exist"); } // begin batch operation Mutator<String> mutator = createMutator(keyspace, strSe); // set new name AccountPersistence.putLabel(mutator, mailbox.getId(), label); // commit batch operation mutator.execute(); }
@Override public int add(Mailbox mailbox, Label label) { // get all existing labels LabelMap existingLabels = AccountPersistence.getLabels(mailbox.getId()); LabelUtils.validateLabelName(label.getName(), existingLabels); try { // generate new label id int labelId = LabelUtils.getNewLabelId(existingLabels.getIds()); label.setId(labelId); } catch (IllegalLabelException ile) { // log and rethrow logger.warn("{} reached max random label id attempts with {} labels", mailbox, existingLabels.size()); throw ile; } // begin batch operation Mutator<String> mutator = createMutator(keyspace, strSe); // add new label AccountPersistence.putLabel(mutator, mailbox.getId(), label); // commit batch operation mutator.execute(); return label.getId(); }