All Downloads are FREE. Search and download functionalities are using the official Maven repository.

edu.stanford.protege.webprotege.msg.OWLMessageFormatter Maven / Gradle / Ivy

The newest version!
package edu.stanford.protege.webprotege.msg;

import edu.stanford.protege.webprotege.renderer.RenderingManager;
import org.semanticweb.owlapi.model.OWLObject;

import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Comparator;
import java.util.List;

import static java.util.stream.Collectors.joining;

/**
 * Author: Matthew Horridge
Stanford University
Bio-Medical Informatics Research Group
Date: 25/02/2013 */ public class OWLMessageFormatter { public static String formatMessage(String message, RenderingManager renderingManager, Object... objects) { Object[] primitiveFormattedObjects = formatToPrimitives(renderingManager, objects); return MessageFormat.format(message, primitiveFormattedObjects); } private static Object[] formatToPrimitives(RenderingManager renderingManager, Object... objects) { List result = new ArrayList<>(objects.length); for (Object obj : objects) { Object formattedObj = formatToPrimitive(obj, renderingManager); result.add(formattedObj); } return result.toArray(); } private static Object formatToPrimitive(Object o, RenderingManager renderingManager) { if (o instanceof OWLObject) { return renderingManager.getBrowserText((OWLObject) o); } else if (o instanceof Collection) { return formatCollection((Collection) o, renderingManager); } else { return o; } } private static String formatCollection(Collection collection, RenderingManager renderingManager) { return collection.stream() .map(e -> formatToPrimitive(e, renderingManager)) .sorted(Comparator.comparing(e -> e.toString().toLowerCase())) .map(Object::toString) .collect(joining(", ")); } }