public void matchAndRecalculateMe() {
    String variablesWithNoValue = "[";
    Long sum = Long.valueOf(0);
    if (targetList == null) return;

    for (Variable v : allMatchingVariables) {
      String val = v.getValue();
      if (val != null && !val.isEmpty()) {
        // Log.d("nils","VALUE: "+v.getValue());
        if (myType == Type.count) {
          sum++;
        } else {
          try {
            sum += Long.parseLong(val);
          } catch (NumberFormatException e) {
            Log.e("vortex", "Numberformatexception for " + val);
          }
        }

      } else variablesWithNoValue += v.getId() + ",";
    }
    /*
    for (Listable l:targetList.getList()) {
    	Set<Variable> vars = l.getAssociatedVariables();
    	//Log.d("nils","now in matchandrecalculate with list size "+vars.size()+" my label: "+this.getLabel());
    	if (vars!=null && !vars.isEmpty()) {
    		for (Variable v:vars) {
    			if (v.getId().matches(myPattern)) {
    				Log.d("nils","Match for "+v.getId());
    				if (v.getValue()!=null) {
    					//Log.d("nils","VALUE: "+v.getValue());
    					if (myType == Type.count) {
    						sum++;
    					}

    					else {
    						String val=v.getValue();
    						if (val!=null && !val.isEmpty()) {
    							try {
    							sum+=Long.parseLong(v.getValue());
    							} catch (NumberFormatException e) {
    								sum+=0;
    							}
    						}
    					}
    				} else {
    					variablesWithNoValue += v.getId()+",";
    				}
    			}


    		}

    	} else {
    		Log.d("nils ","Vars for "+l.getLabel()+" empty");
    	}
    }*/
    if (sum == 0) {
      variablesWithNoValue += "]";
      o.addRow("");
      o.addYellowText(
          "Sum zero in Count/Add Block. with pattern [" + myPattern + "] No value found for:");
      o.addRow(variablesWithNoValue);
    } else {
      o.addRow("");
      o.addGreenText("Found match(es) in Count/Add Block with pattern [" + myPattern + "]");
    }

    if (myVar != null) myVar.setValue(sum.toString());
  }