| /** |
| * Copyright (c) 2011, 2015 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License 2.0 |
| * which accompanies this distribution, and is available at |
| * https://www.eclipse.org/legal/epl-2.0/ |
| * |
| * SPDX-License-Identifier: EPL-2.0 |
| * |
| * Contributors: |
| * Florian Pirchner - Initial implementation |
| */ |
| package org.eclipse.osbp.xtext.oxtype.resource; |
| |
| import java.util.Set; |
| |
| import org.eclipse.emf.ecore.EObject; |
| import org.eclipse.xtext.Constants; |
| import org.eclipse.xtext.common.types.JvmGenericType; |
| import org.eclipse.xtext.xbase.jvmmodel.JvmModelAssociator; |
| import org.slf4j.Logger; |
| import org.slf4j.LoggerFactory; |
| |
| import com.google.inject.Inject; |
| import com.google.inject.Singleton; |
| import com.google.inject.name.Named; |
| |
| @Singleton |
| public class ExtendedJvmModelAssociator extends JvmModelAssociator implements IExtendedModelAssociator { |
| |
| private final static Logger LOGGER = LoggerFactory.getLogger(ExtendedJvmModelAssociator.class); |
| |
| @Inject |
| @Named(Constants.LANGUAGE_NAME) |
| private String languageName; |
| |
| public JvmGenericType getByPostfix(EObject sourceElement, String selector) { |
| Set<EObject> elements = getJvmElements(sourceElement); |
| for (EObject element : elements) { |
| if (element instanceof JvmGenericType) { |
| if (((JvmGenericType) element).getQualifiedName().endsWith(selector)) { |
| return (JvmGenericType) element; |
| } |
| } |
| } |
| LOGGER.error("No registration found for " + selector + " : " + sourceElement); |
| return null; |
| } |
| |
| } |