@Override
 public String toString() {
   StringBuffer sb = new StringBuffer();
   ToStringStyle style = ToStringStyle.SHORT_PREFIX_STYLE;
   style.appendStart(sb, this);
   if (hasException()) {
     style.append(sb, "exception", getExceptionClass(), null);
   }
   if (!_logLevels.isEmpty()) {
     style.append(sb, "logLevels", _logLevels, null);
   }
   style.appendEnd(sb, this);
   return sb.toString();
 }
 @Override
 public String toString() {
   // carefully select useful fields for toString
   ToStringStyle style = ToStringStyle.SHORT_PREFIX_STYLE;
   StringBuffer sb = new StringBuffer();
   style.appendStart(sb, this);
   style.append(sb, "result", getInvocationResult(), null);
   ValueSpecification spec = getSpecification();
   if (spec != null) {
     style.append(sb, "name", spec.getValueName(), null);
     ComputationTargetSpecification targetSpec = spec.getTargetSpecification();
     style.append(sb, "targetId", targetSpec.getIdentifier(), null);
     style.append(sb, "targetType", targetSpec.getType(), null);
     style.append(sb, "properties", spec.getProperties(), null);
   }
   style.append(sb, "value", getValue(), null);
   style.appendEnd(sb, this);
   return sb.toString();
 }