protected boolean isSameSignature(JvmConstructor constructor, JvmConstructor superConstructor) { if(constructor.getParameters().size() != superConstructor.getParameters().size()) return false; for(int i=0; i<constructor.getParameters().size(); ++i) { JvmTypeReference paramType = constructor.getParameters().get(i).getParameterType(); JvmTypeReference superParamType = superConstructor.getParameters().get(i).getParameterType(); if(!paramType.getIdentifier().equals(superParamType.getIdentifier())) return false; } return true; } }
@Override public Boolean apply(final JvmConstructor it) { return Boolean.valueOf(((it.getParameters().size() == 1) && EmfParsleyDslGuiceModuleHelper.this._emfParsleyDslTypeSystem.isConformant(context, AbstractUIPlugin.class, IterableExtensions.<JvmFormalParameter>head(it.getParameters()).getParameterType()))); } };
public ConstructorBodyComputationState(ResolvedTypes resolvedTypes, IFeatureScopeSession featureScopeSession, JvmConstructor constructor) { super(resolvedTypes.pushExpectedExceptions(constructor), featureScopeSession, constructor); for(JvmFormalParameter parameter: constructor.getParameters()) { addLocalToCurrentScope(parameter); } }
private Collection<ActionParameterTypes> doGetConstructorParameterTypes(Class<?> type, Notifier context) { final Collection<ActionParameterTypes> parameters = new ArrayList<>(); final JvmTypeReference typeReference = this.typeReferences.getTypeForName(type, context); final JvmType jvmType = typeReference.getType(); if (jvmType instanceof JvmDeclaredType) { final JvmDeclaredType declaredType = (JvmDeclaredType) jvmType; for (final JvmConstructor constructor : declaredType.getDeclaredConstructors()) { final ActionParameterTypes types = this.sarlActionSignatures.createParameterTypesFromJvmModel( constructor.isVarArgs(), constructor.getParameters()); if (types != null) { parameters.add(types); } } } if (parameters.isEmpty()) { parameters.add(this.sarlActionSignatures.createParameterTypesForVoid()); } return parameters; }
public boolean isSingleSyntheticDefaultConstructor(final JvmConstructor it) { return ((((it.getParameters().isEmpty() && (this._iLogicalContainerProvider.getAssociatedExpression(it) == null)) && (this.getCompilationStrategy(it) == null)) && (this.getCompilationTemplate(it) == null)) && (IterableExtensions.size(Iterables.<JvmConstructor>filter(it.getDeclaringType().getMembers(), JvmConstructor.class)) == 1)); }
protected ArrayList<JvmMember> getAddedDeclarations(final JvmGenericType it, final AnonymousClass anonymousClass) { final ArrayList<JvmMember> result = CollectionLiterals.<JvmMember>newArrayList(); final JvmConstructor constructor = anonymousClass.getConstructorCall().getConstructor(); int _size = constructor.getParameters().size(); boolean _greaterEqualsThan = (_size >= 1); if (_greaterEqualsThan) { result.add(0, constructor); } Iterable<JvmField> _declaredFields = it.getDeclaredFields(); Iterables.<JvmMember>addAll(result, _declaredFields); final Function1<JvmOperation, Boolean> _function = (JvmOperation it_1) -> { EObject _head = IterableExtensions.<EObject>head(this.getSourceElements(it_1)); final XtendFunction function = ((XtendFunction) _head); boolean _isOverride = function.isOverride(); return Boolean.valueOf((!_isOverride)); }; Iterable<JvmOperation> _filter = IterableExtensions.<JvmOperation>filter(it.getDeclaredOperations(), _function); Iterables.<JvmMember>addAll(result, _filter); Iterable<JvmDeclaredType> _filter_1 = Iterables.<JvmDeclaredType>filter(it.getMembers(), JvmDeclaredType.class); Iterables.<JvmMember>addAll(result, _filter_1); return result; }
@SuppressWarnings("unused") protected void _computeTypes(Map<JvmIdentifiableElement, ResolvedTypes> preparedResolvedTypes, ResolvedTypes resolvedTypes, IFeatureScopeSession featureScopeSession, JvmConstructor constructor) { ResolvedTypes childResolvedTypes = preparedResolvedTypes.get(constructor); if (childResolvedTypes == null) { if (preparedResolvedTypes.containsKey(constructor)) return; throw new IllegalStateException("No resolved type found. Constructor was: " + constructor.getIdentifier()); } else { preparedResolvedTypes.put(constructor, null); } ConstructorBodyComputationState state = new ConstructorBodyComputationState(childResolvedTypes, featureScopeSession.toInstanceContext().toConstructorContext(), constructor); addExtensionProviders(state, constructor.getParameters()); state.computeTypes(); computeAnnotationTypes(childResolvedTypes, featureScopeSession, constructor); computeLocalTypes(preparedResolvedTypes, childResolvedTypes, featureScopeSession, constructor); mergeChildTypes(childResolvedTypes); }
Iterable<JvmConstructor> superConstructors = ((JvmGenericType) superType).getDeclaredConstructors(); for(JvmConstructor superConstructor: superConstructors) { if(superConstructor.getParameters().isEmpty()) for(JvmConstructor superConstructor:superConstructors) { issueData.add(EcoreUtil.getURI(superConstructor).toString()); issueData.add(doGetReadableSignature(xtendClass.getName(), superConstructor.getParameters()));
constructor.setSimpleName(inferredLocalClass.getSimpleName()); constructor.setVarArgs(superConstructor.isVarArgs()); final List<JvmFormalParameter> parameters = superConstructor.getParameters(); for(JvmFormalParameter parameter: parameters) { constructor.getParameters().add(typesBuilder.cloneWithProxies(parameter));
for (final JvmConstructor superConstructor : jvmSuperElement.getDeclaredConstructors()) { final ActionParameterTypes sig = this.sarlActionSignatures.createParameterTypesFromJvmModel( superConstructor.isVarArgs(), superConstructor.getParameters()); superConstructors.put(sig, superConstructor);
@Override public void apply(final JvmConstructor it) { EList<JvmFormalParameter> _parameters = it.getParameters(); JvmFormalParameter _parameter = EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.toParameter(e, "adapterFactory", EmfParsleyDslJvmModelInferrer.this._typeReferenceBuilder.typeRef(AdapterFactory.class)); EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter); final Procedure1<ITreeAppendable> _function = new Procedure1<ITreeAppendable>() { @Override public void apply(final ITreeAppendable it) { it.append("super(adapterFactory);"); } }; EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.setBody(it, _function); EList<JvmAnnotationReference> _annotations = it.getAnnotations(); JvmAnnotationReference _annotationRef = EmfParsleyDslJvmModelInferrer.this._annotationTypesBuilder.annotationRef(Inject.class); EmfParsleyDslJvmModelInferrer.this._jvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef); } };
@Check public void checkInstantiable(Component component) { if (component.getModule() != null) return; JvmType actualType = component.getActualType(); if (actualType == null || actualType.eIsProxy()) return; JvmDeclaredType declaredType = (JvmDeclaredType) actualType; if (!declaredType.isAbstract() && !(declaredType instanceof JvmGenericType && ((JvmGenericType) declaredType).isInterface())) { for(JvmMember member: declaredType.getMembers()) { if (member instanceof JvmConstructor) { if (((JvmConstructor) member).getParameters().isEmpty() && member.getVisibility().equals(JvmVisibility.PUBLIC)) return; } } error( "'" + declaredType.getQualifiedName('.') + "' does not have a public default constructor.", component, Mwe2Package.Literals.REFERRABLE__TYPE, ValidationMessageAcceptor.INSIGNIFICANT_INDEX, MISSING_DEFAULT_CONSTRUCTOR); } }
protected SignatureHashBuilder appendSignature(JvmConstructor operation) { appendVisibility(operation.getVisibility()).appendTypeParameters(operation).append("("); for (JvmFormalParameter p : operation.getParameters()) { appendType(p.getParameterType()).append(" "); } append(") "); for (JvmTypeReference ex : operation.getExceptions()) { appendType(ex).append(" "); } return this; }
parameter1.setName("capacity"); //$NON-NLS-1$ parameter1.setParameterType(this._typeReferenceBuilder.typeRef(typeParameter)); constructor.getParameters().add(parameter1); final JvmFormalParameter parameter2 = this.typesFactory.createJvmFormalParameter(); parameter2.setName("caller"); //$NON-NLS-1$ parameter2.setParameterType(this._typeReferenceBuilder.typeRef(AgentTrait.class)); constructor.getParameters().add(parameter2); setBody(constructor, it -> { it.append("super(capacity, caller);"); //$NON-NLS-1$
@Override public void apply(final JvmConstructor it) { String _matcherClassName = PatternMatcherClassInferrer.this._eMFPatternLanguageJvmModelInferrerUtil.matcherClassName(pattern); it.setSimpleName(_matcherClassName); EList<JvmAnnotationReference> _annotations = it.getAnnotations(); JvmAnnotationReference _annotationRef = PatternMatcherClassInferrer.this.annBuilder.annotationRef(Deprecated.class); PatternMatcherClassInferrer.this._eMFJvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef); it.setVisibility(JvmVisibility.PUBLIC); CharSequence _javadocMatcherConstructorEngine = PatternMatcherClassInferrer.this._javadocInferrer.javadocMatcherConstructorEngine(pattern); String _string = _javadocMatcherConstructorEngine.toString(); PatternMatcherClassInferrer.this._eMFJvmTypesBuilder.setDocumentation(it, _string); EList<JvmFormalParameter> _parameters = it.getParameters(); JvmTypeReference _typeRef = PatternMatcherClassInferrer.this.builder.typeRef(IncQueryEngine.class); JvmFormalParameter _parameter = PatternMatcherClassInferrer.this._eMFJvmTypesBuilder.toParameter(pattern, "engine", _typeRef); PatternMatcherClassInferrer.this._eMFJvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter); EList<JvmTypeReference> _exceptions = it.getExceptions(); JvmTypeReference _typeRef_1 = PatternMatcherClassInferrer.this.builder.typeRef(IncQueryException.class); PatternMatcherClassInferrer.this._eMFJvmTypesBuilder.<JvmTypeReference>operator_add(_exceptions, _typeRef_1); StringConcatenationClient _client = new StringConcatenationClient() { @Override protected void appendTo(StringConcatenationClient.TargetStringConcatenation _builder) { _builder.append("super(engine, querySpecification());"); } }; PatternMatcherClassInferrer.this._eMFJvmTypesBuilder.setBody(it, _client); } };
EList<JvmFormalParameter> _parameters_1 = it.getParameters(); String _parameterName = PatternMatchClassInferrer.this._eMFPatternLanguageJvmModelInferrerUtil.parameterName(variable); JvmFormalParameter _parameter = PatternMatchClassInferrer.this._eMFJvmTypesBuilder.toParameter(variable, _parameterName, javaType);
@Override public void apply(final JvmConstructor it) { String _matcherClassName = PatternMatcherClassInferrer.this._eMFPatternLanguageJvmModelInferrerUtil.matcherClassName(pattern); it.setSimpleName(_matcherClassName); EList<JvmAnnotationReference> _annotations = it.getAnnotations(); JvmAnnotationReference _annotationRef = PatternMatcherClassInferrer.this.annBuilder.annotationRef(Deprecated.class); PatternMatcherClassInferrer.this._eMFJvmTypesBuilder.<JvmAnnotationReference>operator_add(_annotations, _annotationRef); it.setVisibility(JvmVisibility.PUBLIC); CharSequence _javadocMatcherConstructorNotifier = PatternMatcherClassInferrer.this._javadocInferrer.javadocMatcherConstructorNotifier(pattern); String _string = _javadocMatcherConstructorNotifier.toString(); PatternMatcherClassInferrer.this._eMFJvmTypesBuilder.setDocumentation(it, _string); EList<JvmFormalParameter> _parameters = it.getParameters(); JvmTypeReference _typeRef = PatternMatcherClassInferrer.this.builder.typeRef(Notifier.class); JvmFormalParameter _parameter = PatternMatcherClassInferrer.this._eMFJvmTypesBuilder.toParameter(pattern, "emfRoot", _typeRef); PatternMatcherClassInferrer.this._eMFJvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters, _parameter); EList<JvmTypeReference> _exceptions = it.getExceptions(); JvmTypeReference _typeRef_1 = PatternMatcherClassInferrer.this.builder.typeRef(IncQueryException.class); PatternMatcherClassInferrer.this._eMFJvmTypesBuilder.<JvmTypeReference>operator_add(_exceptions, _typeRef_1); StringConcatenationClient _client = new StringConcatenationClient() { @Override protected void appendTo(StringConcatenationClient.TargetStringConcatenation _builder) { _builder.append("this("); _builder.append(IncQueryEngine.class, ""); _builder.append(".on(emfRoot));"); } }; PatternMatcherClassInferrer.this._eMFJvmTypesBuilder.setBody(it, _client); } };
EList<JvmFormalParameter> _parameters_1 = it.getParameters(); JvmFormalParameter _parameter = this._eMFJvmTypesBuilder.toParameter(variable, this._eMFPatternLanguageJvmModelInferrerUtil.parameterName(variable), javaType); this._eMFJvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters_1, _parameter);
/** Create the JvmConstructor for the given JDT constructor. * * @param constructor the JDT constructor. * @param context the context of the constructor. * @return the JvmConstructor * @throws JavaModelException if the Java model is invalid. */ public JvmConstructor getJvmConstructor(IMethod constructor, XtendTypeDeclaration context) throws JavaModelException { if (constructor.isConstructor()) { final JvmType type = this.typeReferences.findDeclaredType( constructor.getDeclaringType().getFullyQualifiedName(), context); if (type instanceof JvmDeclaredType) { final JvmDeclaredType declaredType = (JvmDeclaredType) type; final ActionParameterTypes jdtSignature = this.actionPrototypeProvider.createParameterTypes( Flags.isVarargs(constructor.getFlags()), getFormalParameterProvider(constructor)); for (final JvmConstructor jvmConstructor : declaredType.getDeclaredConstructors()) { final ActionParameterTypes jvmSignature = this.actionPrototypeProvider.createParameterTypesFromJvmModel( jvmConstructor.isVarArgs(), jvmConstructor.getParameters()); if (jvmSignature.equals(jdtSignature)) { return jvmConstructor; } } } } return null; }
EList<JvmFormalParameter> _parameters_1 = it_1.getParameters(); JvmFormalParameter _parameter = this._eMFJvmTypesBuilder.toParameter(variable, this._eMFPatternLanguageJvmModelInferrerUtil.parameterName(variable), javaType); this._eMFJvmTypesBuilder.<JvmFormalParameter>operator_add(_parameters_1, _parameter);