| /******************************************************************************* |
| * Copyright (c) 2009 Freescale Semiconductor, Inc. and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * Freescale Semiconductor - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.cdt.internal.core; |
| |
| /** |
| * Some general purpose functions that can be useful for logging/tracing activities. |
| */ |
| public class LoggingUtils { |
| /** |
| * Return a string that uniquely identifies a Java object reference, in the |
| * form "classname@id", where 'classname' is the simple or package qualified |
| * name of the object's class, and 'id' is the hash code. |
| * |
| * Why not just use obj.toString()? That method is often overriden, and so |
| * cannot be relied on for a representation that uniquely identifies the |
| * object in the VM space. |
| * |
| * @param obj |
| * the object reference to stringify |
| * @param simpleClassName |
| * if true, use the class's simple name, otherwise the package |
| * qualified one |
| * |
| * @return the stringified representation of the object reference |
| */ |
| public static String toString(Object obj, boolean simpleClassName) { |
| if (obj == null) { |
| return "null"; //$NON-NLS-1$ |
| } |
| String className = obj.getClass().getName(); |
| if (simpleClassName) { |
| int lastDot = className.lastIndexOf('.'); |
| if ((lastDot >= 0) && ((lastDot + 1) < className.length())) { |
| className = className.substring(lastDot + 1); |
| } |
| } |
| |
| String id = Integer.toHexString(System.identityHashCode(obj)); |
| |
| return className + "@" + id; //$NON-NLS-1$ |
| } |
| |
| /** |
| * Equivalent to toString(obj, false) |
| */ |
| public static String toString(Object obj) { |
| return toString(obj, true); |
| } |
| } |