public void associarProdutos(List<Produto> produtos) {
   ProdutoComparator comparator = new ProdutoComparator();
   List<Produto> conflic = new LinkedList<Produto>();
   for (Produto produto : produtos) {
     if (categoriaColaborador.equals(produto.getCategoria())) {
       Collections.sort(this.produtos, comparator);
       if (Collections.binarySearch(this.produtos, produto, comparator) < 0) {
         this.produtos.add(produto);
       }
     } else {
       conflic.add(produto);
     }
   }
   if (conflic.size() > 0) {
     showTypeConflictMessage(
         "Somente " + getCategoriaColaborador() + "s serão associados.", conflic);
   }
 }
 public void resyncByCategoria() {
   List<Produto> remove = new LinkedList<Produto>();
   for (Produto produto : produtos) {
     if (!categoriaColaborador.equals(produto.getCategoria())) {
       remove.add(produto);
     }
   }
   this.produtos.removeAll(remove);
   if (remove.size() > 0) {
     showTypeConflictMessage(
         "Os não "
             + getCategoriaColaborador()
             + "s deste "
             + getCategoriaColaborador().getColaborador()
             + " foram desassociados.",
         remove);
   }
 }