Examples of LabelMap


Examples of com.dtrules.automapping.LabelMap

        return ref;               
    }
   
    @Override
    public LabelMap getLabelMap(AutoDataMap autoDataMap, MapNodeObject node){
        LabelMap labelMap = autoDataMapDef.findLabelMap(node.getLabel());
        while(labelMap != null && labelMap.getTargetGroup() != autoDataMap.getCurrentGroup()){
            labelMap = labelMap.getNext();
        }
        if(labelMap == null){
            Label sourceLabel = node.getSourceLabel();
            String targetLabelname = node.getLabel();
            Label.newLabel(
                    autoDataMap.getCurrentGroup(),
                    targetLabelname,
                    targetLabelname,
                    sourceLabel.getKey(),
                    false);
            labelMap = new LabelMap(autoDataMapDef, node.getLabel(), targetLabelname);
            labelMap.setSourceGroup(node.getGroup());
            labelMap.setTargetGroup(autoDataMap.getCurrentGroup());
           
            autoDataMapDef.addLabelMap(labelMap);
        }
        return labelMap;
    }
View Full Code Here

Examples of com.dtrules.automapping.LabelMap

        return ref;               
    }
   
    @Override
    public LabelMap getLabelMap(AutoDataMap autoDataMap, MapNodeObject node){
        LabelMap labelMap = autoDataMapDef.findLabelMap(node.getLabel());
        while(labelMap != null && labelMap.getTargetGroup() != autoDataMap.getCurrentGroup()){
            labelMap = labelMap.getNext();
        }
        if(labelMap == null){
            Label sourceLabel = node.getSourceLabel();
            String targetLabelname = node.getLabel();
            Label.newLabel(
                    autoDataMap.getCurrentGroup(),
                    targetLabelname,
                    targetLabelname,
                    sourceLabel.getKey(),
                    false);
            labelMap = new LabelMap(autoDataMapDef, node.getLabel(), targetLabelname);
            labelMap.setSourceGroup(node.getGroup());
            labelMap.setTargetGroup(autoDataMap.getCurrentGroup());
           
            autoDataMapDef.addLabelMap(labelMap);
        }
        return labelMap;
    }
View Full Code Here

Examples of com.dtrules.automapping.LabelMap

        return ref;               
    }
   
    @Override
    public LabelMap getLabelMap(AutoDataMap autoDataMap, MapNodeObject node){
        LabelMap labelMap = autoDataMapDef.findLabelMap(node.getLabel());
        while(labelMap != null && labelMap.getTargetGroup() != autoDataMap.getCurrentGroup()){
            labelMap = labelMap.getNext();
        }
        if(labelMap == null){
            Label sourceLabel = node.getSourceLabel();
            String targetLabelname = node.getLabel();
            Label.newLabel(
                    autoDataMap.getCurrentGroup(),
                    targetLabelname,
                    targetLabelname,
                    sourceLabel.getKey(),
                    false);
            labelMap = new LabelMap(autoDataMapDef, node.getLabel(), targetLabelname);
            labelMap.setSourceGroup(node.getGroup());
            labelMap.setTargetGroup(autoDataMap.getCurrentGroup());
           
            autoDataMapDef.addLabelMap(labelMap);
        }
        return labelMap;
    }
View Full Code Here

Examples of com.elasticinbox.core.model.LabelMap

  @Override
  public LabelMap getAllWithMetadata(final Mailbox mailbox)
      throws IOException
  {
    // get labels
    LabelMap labels = AccountPersistence.getLabels(mailbox.getId());

    // set labels' counters
    Map<Integer, LabelCounters> counters = LabelCounterPersistence.getAll(mailbox.getId());

    for (int labelId : counters.keySet())
    {
      if (labels.containsId(labelId) && counters.containsKey(labelId)) {
        labels.get(labelId).setCounters(counters.get(labelId));
      } else if (labels.containsId(labelId) && !counters.containsKey(labelId)) {
        // assume zeros for all counters if not yet initialised
        labels.get(labelId).setCounters(new LabelCounters());
      } else if (!labels.containsId(labelId) && counters.containsKey(labelId)) {
        logger.warn("Found counters for label {}/{}, but label does not exist.", mailbox.getId(), labelId);
      }
    }

    return labels;
View Full Code Here

Examples of com.elasticinbox.core.model.LabelMap

  @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);
View Full Code Here

Examples of com.elasticinbox.core.model.LabelMap

 
  @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);
View Full Code Here

Examples of com.elasticinbox.core.model.LabelMap

    for (List<UUID> idSubList : Lists.partition(messageIds, readBatchSize))
    {
      // get label stats
      MessageAggregator ma = new MessageAggregator(mailbox, idSubList);
      LabelMap labels = ma.aggregateCountersByLabel();

      // validate message ids
      List<UUID> validMessageIds = new ArrayList<UUID>(ma.getValidMessageIds());
      List<UUID> invalidMessageIds = new ArrayList<UUID>(ma.getInvalidMessageIds());

      // add only valid messages to purge index
      PurgeIndexPersistence.add(mutator, mailbox.getId(), validMessageIds);

      // remove valid message ids from label indexes, including "all"
      LabelIndexPersistence.remove(mutator, mailbox.getId(), validMessageIds, labels.getIds());

      // decrement label counters (add negative value)
      for (Integer labelId : labels.getIds()) {
        LabelCounterPersistence.subtract(mutator, mailbox.getId(), labelId, labels.get(labelId).getCounters());
      }

      // remove invalid message ids from all known labels
      LabelMap allLabels = AccountPersistence.getLabels(mailbox.getId());
      LabelIndexPersistence.remove(mutator, mailbox.getId(), invalidMessageIds, allLabels.getIds());

      // signal end of batch
      mutator.executeIfFull();
    }
View Full Code Here

Examples of com.elasticinbox.core.model.LabelMap

  }

  @Override
  public LabelMap scrub(final Mailbox mailbox, final boolean rebuildIndex)
  {
    LabelMap labels = new LabelMap();
    Map<UUID, Message> messages;
    Set<UUID> purgePendingMessages = new HashSet<UUID>();
   
    // initiate throttling mutator
    ThrottlingMutator<String> mutator = new ThrottlingMutator<String>(keyspace, strSe,
        BatchConstants.BATCH_WRITES, BatchConstants.BATCH_WRITE_INTERVAL);
   
    logger.debug("Recalculating counters for {}", mailbox);

    // Get message IDs pending purge. Such messages should be excluded during calculation.
    purgePendingMessages = PurgeIndexPersistence.getAll(mailbox.getId());

    logger.debug("Found {} messages pending purge. Will exclude them from calculations.", purgePendingMessages.size());

    UUID start = TimeUUIDUtils.getUniqueTimeUUIDinMillis();
    do {
      // reset start, read messages and calculate label counters
      messages = MessagePersistence.getRange(
          mailbox.getId(), start, BatchConstants.BATCH_READS);

      for (UUID messageId : messages.keySet())
      {
        start = messageId; // shift next query start

        // skip messages from purge queue
        if (purgePendingMessages.contains(messageId)) continue;

        Message message = messages.get(messageId);

        // add counters for each of the labels
        for (int labelId : message.getLabels())
        {
          if (!labels.containsId(labelId)) {
            Label label = new Label(labelId).setCounters(message.getLabelCounters());
            labels.put(label);
          } else {
            labels.get(labelId).incrementCounters(message.getLabelCounters());
          }

          if (rebuildIndex)
          {
            // add message ID to the label index
            LabelIndexPersistence.add(mutator, mailbox.getId(), messageId, labelId);
            mutator.executeIfFull();
          }
        }

        logger.debug("Counters state after message {} is {}", messageId, labels.toString());
      }
     
    }
    while (messages.size() >= BatchConstants.BATCH_READS);
View Full Code Here

Examples of com.elasticinbox.core.model.LabelMap

     *
     * @return
     */
    public LabelMap aggregateCountersByLabel()
    {
      LabelMap labels = new LabelMap();

      // get all labels of all messages, including label "all"
      for (UUID messageId : this.messages.keySet())
      {
        Set<Integer> messageLabels = this.messages.get(messageId).getLabels();
 
        for (int labelId : messageLabels)
        {
          if (!labels.containsId(labelId)) {
            Label label = new Label(labelId).
                setCounters(this.messages.get(messageId).getLabelCounters());
            labels.put(label);
          } else {
            labels.get(labelId).getCounters().add(
                this.messages.get(messageId).getLabelCounters());
          }
        }
      }

View Full Code Here

Examples of com.elasticinbox.core.model.LabelMap

  public void mailboxScrubTest() throws IOException
  {
    initAccount();
   
    Pair<LabelMap, Map<Integer, List<UUID>>> pair = populateMailbox();
    LabelMap labels = pair.getLeft();
    Map<Integer, List<UUID>> messages = pair.getRight();
   
    // TODO: wipe off counters and indexes here. need to communicate with metadata store directly

    // check label counters before scrub
    expect().
      statusCode(200).and().
      body("'" + ReservedLabels.INBOX.getId() + "'.total",
          equalTo(labels.get(ReservedLabels.INBOX.getId()).getCounters().getTotalMessages().intValue())).
      body("'" + ReservedLabels.INBOX.getId() + "'.unread",
          equalTo(labels.get(ReservedLabels.INBOX.getId()).getCounters().getUnreadMessages().intValue())).
      body("'" + ReservedLabels.NOTIFICATIONS.getId() + "'.total",
          equalTo(labels.get(ReservedLabels.NOTIFICATIONS.getId()).getCounters().getTotalMessages().intValue())).
      body("'" + ReservedLabels.NOTIFICATIONS.getId() + "'.unread",
          equalTo(labels.get(ReservedLabels.NOTIFICATIONS.getId()).getCounters().getUnreadMessages().intValue())).
      body("'" + ReservedLabels.SPAM.getId() + "'.total",
          equalTo(labels.get(ReservedLabels.SPAM.getId()).getCounters().getTotalMessages().intValue())).
      body("'" + ReservedLabels.SPAM.getId() + "'.unread",
          equalTo(labels.get(ReservedLabels.SPAM.getId()).getCounters().getUnreadMessages().intValue())).
      body("'" + ReservedLabels.TRASH.getId() + "'.total",
          equalTo(labels.get(ReservedLabels.TRASH.getId()).getCounters().getTotalMessages().intValue())).
      body("'" + ReservedLabels.TRASH.getId() + "'.unread",
          equalTo(labels.get(ReservedLabels.TRASH.getId()).getCounters().getUnreadMessages().intValue())).
    when().
      get(REST_PATH + "/mailbox?metadata=true").asString();

    // scrub label counters
    expect().
      statusCode(204).
    when().
      post(REST_PATH + "/mailbox/scrub/counters");

    // check label counters after scrub
    expect().
      statusCode(200).and().
      body("'" + ReservedLabels.INBOX.getId() + "'.total",
          equalTo(labels.get(ReservedLabels.INBOX.getId()).getCounters().getTotalMessages().intValue())).
      body("'" + ReservedLabels.INBOX.getId() + "'.unread",
          equalTo(labels.get(ReservedLabels.INBOX.getId()).getCounters().getUnreadMessages().intValue())).
      body("'" + ReservedLabels.NOTIFICATIONS.getId() + "'.total",
          equalTo(labels.get(ReservedLabels.NOTIFICATIONS.getId()).getCounters().getTotalMessages().intValue())).
      body("'" + ReservedLabels.NOTIFICATIONS.getId() + "'.unread",
          equalTo(labels.get(ReservedLabels.NOTIFICATIONS.getId()).getCounters().getUnreadMessages().intValue())).
      body("'" + ReservedLabels.SPAM.getId() + "'.total",
          equalTo(labels.get(ReservedLabels.SPAM.getId()).getCounters().getTotalMessages().intValue())).
      body("'" + ReservedLabels.SPAM.getId() + "'.unread",
          equalTo(labels.get(ReservedLabels.SPAM.getId()).getCounters().getUnreadMessages().intValue())).
      body("'" + ReservedLabels.TRASH.getId() + "'.total",
          equalTo(labels.get(ReservedLabels.TRASH.getId()).getCounters().getTotalMessages().intValue())).
      body("'" + ReservedLabels.TRASH.getId() + "'.unread",
          equalTo(labels.get(ReservedLabels.TRASH.getId()).getCounters().getUnreadMessages().intValue())).
    when().
      get(REST_PATH + "/mailbox?metadata=true").asString();
   
    // scrub label indexes
    expect().
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.