private String getEdgeString(FeatureTree tree, TreeNode parentNode) { StringBuilder sb = new StringBuilder(); for (TreeNode child : parentNode.getChildren()) { if (child.getCost() != 0) { sb.append(getNodeTypeAndDatabaseIdString(tree, parentNode)); sb.append(getNodeTypeAndDatabaseIdString(tree, child)); String value = String.valueOf(child.getValueOfCandidateFeature()); value = fixPlusAndMinusSigns(value); EdgeLabels.FEATURE_VALUE.setAttributeValue(value); sb.append(EdgeLabels.FEATURE_VALUE.getDefaultValueString()); sb.append(EdgeLabels.FEATURE_VALUE.toString()); value = String.valueOf(parentNode.getAppliedCandidate()); value = fixPlusAndMinusSigns(value); EdgeLabels.CANDIDATE_USED.setAttributeValue(value); sb.append(EdgeLabels.CANDIDATE_USED.toString()); sb.append("\n"); } } return sb.toString(); }