Search in sources :

Example 6 with JvmGenericArrayTypeReference

use of org.eclipse.xtext.common.types.JvmGenericArrayTypeReference in project xtext-xtend by eclipse.

the class XtendJvmModelInferrer method computeFieldName.

/* @Nullable */
protected String computeFieldName(XtendField field) {
    if (field.getName() != null)
        return field.getName();
    JvmTypeReference type = field.getType();
    String name = null;
    if (type != null) {
        while (type instanceof JvmGenericArrayTypeReference) {
            type = ((JvmGenericArrayTypeReference) type).getComponentType();
        }
        if (type instanceof JvmParameterizedTypeReference) {
            List<INode> nodes = NodeModelUtils.findNodesForFeature(type, TypesPackage.Literals.JVM_PARAMETERIZED_TYPE_REFERENCE__TYPE);
            if (!nodes.isEmpty()) {
                String typeName = nodes.get(0).getText().trim();
                int lastDot = typeName.lastIndexOf('.');
                if (lastDot != -1) {
                    typeName = typeName.substring(lastDot + 1);
                }
                name = "_" + Strings.toFirstLower(typeName);
            }
        }
    }
    return name;
}
Also used : JvmGenericArrayTypeReference(org.eclipse.xtext.common.types.JvmGenericArrayTypeReference) INode(org.eclipse.xtext.nodemodel.INode) JvmTypeReference(org.eclipse.xtext.common.types.JvmTypeReference) JvmParameterizedTypeReference(org.eclipse.xtext.common.types.JvmParameterizedTypeReference) JvmTypeConstraint(org.eclipse.xtext.common.types.JvmTypeConstraint)

Aggregations

JvmGenericArrayTypeReference (org.eclipse.xtext.common.types.JvmGenericArrayTypeReference)6 JvmTypeReference (org.eclipse.xtext.common.types.JvmTypeReference)4 JvmParameterizedTypeReference (org.eclipse.xtext.common.types.JvmParameterizedTypeReference)3 JvmType (org.eclipse.xtext.common.types.JvmType)2 IFile (org.eclipse.core.resources.IFile)1 EObject (org.eclipse.emf.ecore.EObject)1 EPackage (org.eclipse.emf.ecore.EPackage)1 InternalEObject (org.eclipse.emf.ecore.InternalEObject)1 Resource (org.eclipse.emf.ecore.resource.Resource)1 ResourceSet (org.eclipse.emf.ecore.resource.ResourceSet)1 RichString (org.eclipse.xtend.core.xtend.RichString)1 RichStringLiteral (org.eclipse.xtend.core.xtend.RichStringLiteral)1 XtendAnnotationType (org.eclipse.xtend.core.xtend.XtendAnnotationType)1 XtendClass (org.eclipse.xtend.core.xtend.XtendClass)1 XtendEnum (org.eclipse.xtend.core.xtend.XtendEnum)1 XtendField (org.eclipse.xtend.core.xtend.XtendField)1 XtendFormalParameter (org.eclipse.xtend.core.xtend.XtendFormalParameter)1 XtendInterface (org.eclipse.xtend.core.xtend.XtendInterface)1 XtendMember (org.eclipse.xtend.core.xtend.XtendMember)1 XtendParameter (org.eclipse.xtend.core.xtend.XtendParameter)1