/** * @return an array type of the given type reference. Add one dimension if the given {@link JvmTypeReference} is * already an array. */ /* @Nullable */ public JvmTypeReference addArrayTypeDimension(/* @Nullable */ JvmTypeReference componentType) { return references.createArrayType(componentType); }
@Override public JvmTypeReference getFormalParameterTypeReference(int position, boolean isVarargs) { final XtendParameter param = this.parameters.get(position); assert param != null; JvmTypeReference type = param.getParameterType(); if (type != null && isVarargs) { type = this.references.createArrayType(type); } return type; }
@Override public TypeReference newArrayTypeReference(final TypeReference componentType) { TypeReference _xblockexpression = null; { this.compilationUnit.checkCanceled(); _xblockexpression = this.compilationUnit.toTypeReference(this.compilationUnit.getTypeReferences().createArrayType(this.compilationUnit.toJvmTypeReference(componentType))); } return _xblockexpression; }
@Override public ActionParameterTypes createParameterTypesFromSarlModel(boolean isVarargs, List<? extends SarlFormalParameter> parameters) { final ActionParameterTypes sig = new ActionParameterTypes(isVarargs, parameters.size()); if (!parameters.isEmpty()) { final int lastIndex = parameters.size() - 1; for (int i = 0; i < lastIndex; ++i) { final SarlFormalParameter param = parameters.get(i); if (param != null && param.getParameterType() != null) { sig.add(param.getParameterType().getIdentifier()); } } final SarlFormalParameter param = parameters.get(lastIndex); if (param != null && param.getParameterType() != null) { JvmTypeReference type = param.getParameterType(); if (isVarargs) { type = this.references.createArrayType(type); } sig.add(type.getIdentifier()); } } return sig; }
public boolean accept(JvmTypeReference superType, int distance) { JvmTypeReference arraySuperType = references.createArrayType(superType); boolean result = !outerCollecting[0]; if (!outerCollecting[0] || (result = original.accept(arraySuperType, distance))) { outerCollecting[0] = true; } if (references.is(superType, Object.class)) { outerCollecting[0] = true; result = original.accept(superType, distance + 1) || result; result = original.accept(references.getTypeForName(Serializable.class, superType.getType()), distance + 1) || result; result = original.accept(references.getTypeForName(Cloneable.class, superType.getType()), distance + 1) || result; } return result; } };
protected void translateParameter(JvmExecutable executable, XtendParameter parameter) { JvmFormalParameter jvmParam = typesFactory.createJvmFormalParameter(); jvmParam.setName(parameter.getName()); if (parameter.isVarArg()) { executable.setVarArgs(true); JvmGenericArrayTypeReference arrayType = typeReferences.createArrayType(jvmTypesBuilder .cloneWithProxies(parameter.getParameterType())); jvmParam.setParameterType(arrayType); } else { jvmParam.setParameterType(jvmTypesBuilder.cloneWithProxies(parameter.getParameterType())); } associator.associate(parameter, jvmParam); translateAnnotationsTo(parameter.getAnnotations(), jvmParam); if (parameter.isExtension() && typeReferences.findDeclaredType(Extension.class, parameter) != null) { jvmParam.getAnnotations().add(_annotationTypesBuilder.annotationRef(Extension.class)); } executable.getParameters().add(jvmParam); }
values.setStatic(true); values.setSimpleName("values"); values.setReturnType(references.createArrayType(references.createTypeRef(element))); typeExtensions.setSynthetic(values, true); if (primarySourceElement != null) {