blob: ff86e053807c79876ce9cbf7a65c6fc18d9ec9fc [file] [log] [blame]
package org.eclipse.epf.library.edit.util;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.eclipse.epf.common.utils.FileUtil;
import org.eclipse.epf.uma.MethodElement;
/**
* Utility class for logging debug info
* @author Weiping Lu
*
*/
public class DebugLog {
private String indent; //$NON-NLS-1$
private static String prompt;
public DebugLog(String prompt) {
this.prompt = prompt;
int n = 5 + (prompt == null ? 0 : prompt.length());
StringBuffer sb = new StringBuffer();
for (int i = 0; i < n; i++) {
sb.append(" "); //$NON-NLS-1$
}
indent = sb.toString();
}
public void log(String msg) {
FileUtil.log(prompt + msg);
}
public void logElements(String label, Collection<? extends MethodElement> elements, boolean showEmpty) {
logElements(label, elements, showEmpty, true);
}
public void logElements(String label, Collection<? extends MethodElement> elements, boolean showEmpty, boolean showTags) {
boolean empty = elements == null || elements.isEmpty();
if (!showEmpty && empty) {
return;
}
String str = prompt + label; //$NON-NLS-1$
if (!empty) {
str += " size = " + elements.size();//$NON-NLS-1$
List<MethodElement> sortedElements = new ArrayList<MethodElement>(elements);
Collections.sort(sortedElements, Comparators.NAME_GUID_COMPARATOR);
for (MethodElement element : sortedElements) {
String line = "\n" + indent + toString(element, 2, showTags, indent + indent);//$NON-NLS-1$
str += line;
}
} else {
str += "\n" + indent + "Empty list"; //$NON-NLS-1$ //$NON-NLS-2$
}
FileUtil.log(str + "\n");//$NON-NLS-1$
}
public String toString(MethodElement element, int ix, boolean showTags, String tagLineInden) {
return DebugUtil.toString(element, ix);
}
}