if(log.isDebugEnabled()) {
if(log.isInfoEnabled()) {
  public ULPlanNode(PropertyTree p, String communityName) {    createLogger();    this.properties = p;    UID = (String)properties.get(PropertyNames.UID_ATTR);    tooltip = UID; // default tooltip if none other is set    objectType = (String)properties.get(PropertyNames.OBJECT_TYPE);    setNodeShapeParameters();    // set color, special case assets    color = (String)properties.get(PropertyNames.AGENT_ATTR);    if (objectType.equals(PropertyNames.ASSET_OBJECT)) {      String s = (String)properties.get(PropertyNames.ASSET_CLUSTER);      if (s != null)	color = s;    }    // add community name to properties    properties.put(PropertyNames.PLAN_OBJECT_COMMUNITY_NAME, communityName);    // set Attribute Table Title from properties    // set task type for single or multi-parent    String taskType = null;    if (objectType.equals(PropertyNames.TASK_OBJECT)) {      taskType = (String)properties.get(PropertyNames.TASK_TYPE);      if (taskType == null)        if(log.isDebugEnabled()) {          log.info("TASK WITH NO TASK TYPE");        }      if (taskType.equals(PropertyNames.MPTASK))	properties.put(PropertyNames.TABLE_TITLE, 		       PropertyNames.MPTASK + " " + UID);      else	properties.put(PropertyNames.TABLE_TITLE, objectType + " " + UID);    } else if (objectType.equals(PropertyNames.PLAN_ELEMENT_OBJECT))      properties.put(PropertyNames.TABLE_TITLE, 		     (String)properties.get(PropertyNames.PLAN_ELEMENT_TYPE) +		     " " + UID);    else      properties.put(PropertyNames.TABLE_TITLE, objectType + " " + UID);    // set remaining node attributes from properties    if (objectType.equals(PropertyNames.ASSET_OBJECT)) {      label = (String)properties.get(PropertyNames.ASSET_NAME);      if (label != null) {	if (label.length() > maxLabelLength)	  label = makeMultiLineLabel(label);      } else {	label = (String)properties.get(PropertyNames.ASSET_GROUP_NAME);	if (label != null) {	  if (label.length() > maxLabelLength)	    label = makeMultiLineLabel(label);	}      }    } else if (objectType.equals(PropertyNames.PLAN_ELEMENT_OBJECT)) {      label = (String)properties.get(PropertyNames.PLAN_ELEMENT_TYPE);      String taskUID = 	(String)properties.get(PropertyNames.PLAN_ELEMENT_TASK_UID);      //      bidirectionalLinks = new Vector(1);      //      bidirectionalLinks.addElement(taskUID);      outgoingLinks = new Vector();      String peType = (String)properties.get(PropertyNames.PLAN_ELEMENT_TYPE);      if (peType.equals(PropertyNames.PLAN_ELEMENT_ALLOCATION)) {	String assetUID = 	  (String)properties.get(PropertyNames.ALLOCATION_ASSET_UID);	// allocation points to asset	if (assetUID != null) 	  outgoingLinks.addElement(assetUID);      } else if (peType.equals(PropertyNames.PLAN_ELEMENT_EXPANSION)) {	String workflowUID =	  (String)properties.get(PropertyNames.EXPANSION_WORKFLOW_UID);	// expansion points to workflow	if (workflowUID != null)	  outgoingLinks.addElement(workflowUID);      } else if (peType.equals(PropertyNames.PLAN_ELEMENT_AGGREGATION)) {	// aggregation points to its MPTask	outgoingLinks.addElement(properties.get(PropertyNames.AGGREGATION_MPTASK_UID));	// these links duplicate the task-to-plan element links	// and its parent UIDs point to it	//	String s = (String)properties.get(PropertyNames.AGGREGATION_PARENT_UIDS);	//	if (s != null) {	//	  StringTokenizer st = new StringTokenizer(s, ",");	//	  incomingLinks = new Vector(st.countTokens());	//	  while (st.hasMoreTokens()) {	//	    incomingLinks.addElement(st.nextToken());	//	  }	//	}      }    } else if (objectType.equals(PropertyNames.TASK_OBJECT)) {      label = (String)properties.get(PropertyNames.TASK_VERB);      if (taskType.equals(PropertyNames.SINGLE_TASK)) {	String parent = (String)properties.get(PropertyNames.TASK_PARENT_UID);	if (parent != null) {	  incomingLinks = new Vector(1);	  incomingLinks.addElement(parent);	}      } else if (taskType.equals(PropertyNames.MPTASK)) {	Object o = properties.get(PropertyNames.TASK_PARENT_UID);	ArrayList parentUIDs = 	  (ArrayList)properties.get(PropertyNames.TASK_PARENT_UID);	incomingLinks = new Vector(parentUIDs);      }      String pe = (String)properties.get(PropertyNames.TASK_PLAN_ELEMENT_UID);      if (pe != null) {	//	bidirectionalLinks = new Vector(1);	//	bidirectionalLinks.addElement(pe);	outgoingLinks = new Vector(1);	outgoingLinks.addElement(pe);      }    } else if (objectType.equals(PropertyNames.WORKFLOW_OBJECT)) {      label = "workflow";      // workflow points to its tasks      String s = (String)properties.get(PropertyNames.WORKFLOW_TASK_UIDS);      if (s == null) {	s = "";      }      StringTokenizer st = new StringTokenizer(s, ",");      outgoingLinks = new Vector(st.countTokens());      while (st.hasMoreTokens()) {	outgoingLinks.addElement(st.nextToken());      }    } else if (objectType.equals(PropertyNames.EVENT_HAPPINESS_CHANGE)) {      NumberFormat nf = NumberFormat.getInstance();      nf.setMaximumFractionDigits(0);      String s = (String)properties.get(PropertyNames.EVENT_CUMULATIVE);      double happiness = 1;      try {	happiness = Double.parseDouble(s);      } catch (Exception e) {        if(log.isDebugEnabled()) {          log.error("ULPlanNode: " + e);        }      }      label = nf.format(happiness * 100) + "%";      tooltip = (String)properties.get(PropertyNames.EVENT_DESCRIPTION);      outgoingLinks = new Vector(1);      outgoingLinks.addElement((String)properties.get(PropertyNames.EVENT_REGARDING));    }  }