Ejemplo n.º 1
0
  public void generateItemsCluster() {
    if (getItemsCluster().size() > 0) {
      throw new RuntimeException("Erro!");
    }

    for (Cell cell : getCells().values()) {

      Item item = cell.getObjectsItem();
      if (item != null) {
        FieldOfView fieldOfView = new FieldOfView(cell);
        Item keyItensCluster = null;
        Item keyItensClusterFOV = null;
        for (Cell cellOfFOV : fieldOfView.getCells().values()) {
          Item itemFOV = cellOfFOV.getObjectsItem();
          if (itemFOV != null) {
            keyItensCluster = item.getkeyItensCluster();
            keyItensClusterFOV = itemFOV.getkeyItensCluster();

            if (keyItensClusterFOV != null) {

              if (keyItensCluster != null) {
                if (keyItensCluster != keyItensClusterFOV) {

                  Collection<Item> itemsClusterFOVColl = itemsCluster.get(keyItensClusterFOV);
                  for (Item itemsClusterFOV : itemsClusterFOVColl) {
                    itemsClusterFOV.setKeyItensCluster(keyItensCluster);
                  }
                  itemsCluster.get(keyItensCluster).addAll(itemsClusterFOVColl);
                  itemsCluster.remove(keyItensClusterFOV);
                }
              } else {
                item.setKeyItensCluster(keyItensClusterFOV);
                Collection<Item> coll = itemsCluster.get(keyItensClusterFOV);
                coll.add(item);
              }
            }
          }
        }
        if (keyItensCluster == null && keyItensClusterFOV == null) {
          item.setKeyItensCluster(item);
          Set<Item> ItemsClusterCollection = new HashSet<Item>();
          ItemsClusterCollection.add(item);
          itemsCluster.put(item, ItemsClusterCollection);
        }
      }
    }
  }