}
protected IValue getLogicalValue(IValue value, List<String> previousStructureIds) {
ILogicalStructureType[] types = DebugPlugin.getLogicalStructureTypes(value);
if (types.length > 0) {
ILogicalStructureType type = DebugPlugin.getDefaultStructureType(types);
if (type != null && !previousStructureIds.contains(type.getId())) {
try {
value = type.getLogicalStructure(value);
previousStructureIds.add(type.getId());
return getLogicalValue(value, previousStructureIds);
} catch (CoreException e) {
// unable to display logical structure
}
}