blob: 2b3cac4b3894c889978073de7825ecf493d043d9 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2018 Agence spatiale canadienne / Canadian Space Agency
* 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:
* Pierre Allard,
* Regent L'Archeveque,
* Sebastien Gemme - initial API and implementation
* SPDX-License-Identifier: EPL-1.0
*
*******************************************************************************/
package org.eclipse.apogy.addons.ros.utilities;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.osgi.framework.log.FrameworkLogEntry;
import org.ros.node.ConnectedNode;
public class FrameworkLogUtils {
public static org.eclipse.apogy.addons.ros.messages.ROSFrameworkLogEntry convertToROSFrameworkLogEntry(
IStatus status, final ConnectedNode connectedNode) {
org.eclipse.apogy.addons.ros.messages.ROSFrameworkLogEntry entry = connectedNode.getTopicMessageFactory()
.newFromType(org.eclipse.apogy.addons.ros.messages.ROSFrameworkLogEntry._TYPE);
entry.setBundleName(status.getPlugin());
entry.setMessage(status.getMessage());
byte severity = (byte) status.getSeverity();
entry.setSeverity(severity);
if (status.getException() != null) {
entry.setThrowableMessage(status.getException().getMessage());
}
return entry;
}
public static org.eclipse.apogy.addons.ros.messages.ROSFrameworkLogEntry convertToROSFrameworkLogEntry(
FrameworkLogEntry frameworkLogEntry, final ConnectedNode connectedNode) {
org.eclipse.apogy.addons.ros.messages.ROSFrameworkLogEntry entry = connectedNode.getTopicMessageFactory()
.newFromType(org.eclipse.apogy.addons.ros.messages.ROSFrameworkLogEntry._TYPE);
entry.setBundleName(frameworkLogEntry.getEntry());
entry.setMessage(frameworkLogEntry.getMessage());
byte severity = (byte) frameworkLogEntry.getSeverity();
entry.setSeverity(severity);
if (frameworkLogEntry.getThrowable() != null) {
entry.setThrowableMessage(frameworkLogEntry.getThrowable().getMessage());
}
return entry;
}
public static FrameworkLogEntry convertToFrameworkLogEntry(String messagePrefix,
org.eclipse.apogy.addons.ros.messages.ROSFrameworkLogEntry rosFrameworkLogEntry) {
String bundleName = rosFrameworkLogEntry.getBundleName();
int severity = rosFrameworkLogEntry.getSeverity();
String fullMessage = rosFrameworkLogEntry.getMessage();
if (messagePrefix != null) {
fullMessage = messagePrefix + fullMessage;
}
Throwable throwable = null;
if (rosFrameworkLogEntry.getThrowableMessage() != null
&& rosFrameworkLogEntry.getThrowableMessage().length() > 0) {
throwable = new Throwable(rosFrameworkLogEntry.getThrowableMessage());
}
FrameworkLogEntry frameworkLogEntry = new FrameworkLogEntry(bundleName, severity, 0, fullMessage, 0, throwable,
null);
return frameworkLogEntry;
}
}