/******************************************************************************* * Copyright (c) 2005, 2006 IBM Corporation 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: * IBM Corporation - initial API and implementation *******************************************************************************/ package org.eclipse.core.internal.registry; import java.util.ResourceBundle; import org.eclipse.core.runtime.IStatus; /** * Simple implementation if the registry support functionality. * The logging output is done onto System.out (for both specific and generic logs) * in the following format: * * [Error|Warning|Log]: Main error message * [Error|Warning|Log]: Child error message 1 * ... * [Error|Warning|Log]: Child error message N * * The translation routine assumes that keys are prefixed with '%'. If no resource * bundle is present, the key itself (without leading '%') is returned. There is * no decoding for the leading '%%'. */ public class RegistrySupport { static public String translate(String key, ResourceBundle resources) { if (key == null) return null; if (resources == null) return key; String trimmedKey = key.trim(); if (trimmedKey.length() == 0) return key; if (trimmedKey.charAt(0) != '%') return key; return resources.getString(trimmedKey.substring(1)); } static public void log(IStatus status, String prefix) { String message = status.getMessage(); int severity = status.getSeverity(); String statusMsg; switch (severity) { case IStatus.ERROR : statusMsg = RegistryMessages.log_error; break; case IStatus.WARNING : statusMsg = RegistryMessages.log_warning; break; default : statusMsg = RegistryMessages.log_log; break; } statusMsg += message; if (prefix != null) statusMsg = prefix + statusMsg; System.out.println(statusMsg); // print out children as well IStatus[] children = status.getChildren(); if (children.length != 0) { String newPrefix; if (prefix == null) newPrefix = "\t"; //$NON-NLS-1$ else newPrefix = prefix + "\t"; //$NON-NLS-1$ for (int i = 0; i < children.length; i++) { log(children[i], newPrefix); } } } }