blob: 48bf64227507a7b4327b24cd97172af15d3cbc3d [file] [log] [blame]
package org.eclipse.emf.henshin.adapters.xtext
import javax.inject.Provider
import org.eclipse.emf.ecore.EObject
import org.eclipse.emf.henshin.model.Attribute
import org.eclipse.emf.henshin.model.Edge
import org.eclipse.emf.henshin.model.NamedElement
class NamingHelper {
static dispatch def name(EObject eo) { null }
static dispatch def name(NamedElement ne) { ne.name }
static dispatch def name(Edge e) { '''[«safe([e.source.name])»->«safe([e.target.name])»:«safe([e.type.name])»]'''.toString }
static dispatch def name(Attribute a) { if (a.type !== null) { a.type.name } else "" }
private static def safe(Provider<String> expression) {
try {
expression.get
} catch (NullPointerException npe) {
""
}
}
}