org.jnario.scoping.JnarioResourceDescriptionStrategy Maven / Gradle / Ivy
package org.jnario.scoping;
import org.apache.log4j.Logger;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtend.core.resource.XtendResourceDescriptionStrategy;
import org.eclipse.xtend.core.xtend.XtendFile;
import org.eclipse.xtext.common.types.JvmType;
import org.eclipse.xtext.naming.QualifiedName;
import org.eclipse.xtext.resource.EObjectDescription;
import org.eclipse.xtext.resource.IEObjectDescription;
import org.eclipse.xtext.resource.IReferenceDescription;
import org.eclipse.xtext.util.IAcceptor;
import org.jnario.Executable;
import org.jnario.Specification;
public class JnarioResourceDescriptionStrategy extends XtendResourceDescriptionStrategy {
private static final Logger LOG = Logger.getLogger(JnarioResourceDescriptionStrategy.class);
@Override
public boolean createEObjectDescriptions(EObject eObject, IAcceptor acceptor) {
boolean isJvmType = (eObject instanceof JvmType) || isJnarioElement(eObject);
if (!isJvmType){
return false;
}
if (getQualifiedNameProvider() == null)
return false;
try {
QualifiedName qualifiedName = getQualifiedNameProvider().getFullyQualifiedName(eObject);
if (qualifiedName != null) {
acceptor.accept(EObjectDescription.create(qualifiedName, eObject, createLazyUserData(eObject)));
}
} catch (Exception exc) {
LOG.error(exc.getMessage());
}
return true;
}
protected boolean isJnarioElement(EObject eObject) {
return (eObject instanceof Executable) ||
(eObject instanceof XtendFile) ||
(eObject instanceof Specification);
}
// @Override
// public boolean createReferenceDescriptions(EObject from, URI exportedContainerURI,
// IAcceptor acceptor) {
// if(isJnarioElement(from)){
// System.out.println(from.eResource().getURI());
// return true;
// }
// return false;
// }
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy