protected void addAdditionalDetails(AbstractResolvedOperation overriding, AbstractResolvedOperation overridden, EnumSet<OverrideCheckDetails> result) { addReturnTypeDetails(overriding, overridden, result); addExceptionDetails(overriding, overridden, result); JvmOperation overridingDecl = overriding.getDeclaration(); JvmOperation overriddenDecl = overridden.getDeclaration(); if (isMorePrivateThan(overridingDecl.getVisibility(), overriddenDecl.getVisibility())) { result.add(OverrideCheckDetails.REDUCED_VISIBILITY); } if (overriddenDecl.isFinal()) { result.add(OverrideCheckDetails.IS_FINAL); } if (overridingDecl.isVarArgs() != overriddenDecl.isVarArgs()) { result.add(OverrideCheckDetails.VAR_ARG_MISMATCH); } if (isConflictingDefaultImplementation(overriding, overridden)) { result.add(OverrideCheckDetails.DEFAULT_IMPL_CONFLICT); } if (!overridingDecl.isSynchronized() && overriddenDecl.isSynchronized()) { result.add(OverrideCheckDetails.SYNCHRONIZED_MISMATCH); } }
protected Object _doEvaluate(XAssignment assignment, IEvaluationContext context, CancelIndicator indicator) { JvmIdentifiableElement feature = assignment.getFeature(); if (feature instanceof JvmOperation && ((JvmOperation) feature).isVarArgs()) { return _doEvaluate((XAbstractFeatureCall) assignment, context, indicator); } Object value = internalEvaluate(assignment.getValue(), context, indicator); Object assign = assignValueTo(feature, assignment, value, context, indicator); return assign; }
/** Analyzing the type hierarchy of the given interface and * extract hierarchy information. * * @param jvmElement - the element to analyze * @param operations - filled with the operations inside and inherited by the element. * @param fields - filled with the fields inside and inherited by the element. * @param sarlSignatureProvider - provider of tools related to action signatures. * @see OverrideHelper */ public static void populateInterfaceElements( JvmDeclaredType jvmElement, Map<ActionPrototype, JvmOperation> operations, Map<String, JvmField> fields, IActionPrototypeProvider sarlSignatureProvider) { for (final JvmFeature feature : jvmElement.getAllFeatures()) { if (!"java.lang.Object".equals(feature.getDeclaringType().getQualifiedName())) { //$NON-NLS-1$ if (operations != null && feature instanceof JvmOperation) { final JvmOperation operation = (JvmOperation) feature; final ActionParameterTypes sig = sarlSignatureProvider.createParameterTypesFromJvmModel( operation.isVarArgs(), operation.getParameters()); final ActionPrototype actionKey = sarlSignatureProvider.createActionPrototype( operation.getSimpleName(), sig); operations.put(actionKey, operation); } else if (fields != null && feature instanceof JvmField) { fields.put(feature.getSimpleName(), (JvmField) feature); } } } }
private InferredPrototype getInferredPrototype(JvmOperation operation) { final XtendFunction fct = this.associations.getXtendFunction(operation); if (fct != null) { return getInferredPrototype(fct); } final QualifiedActionName actionKey = this.actionPrototypes.createQualifiedActionName( operation.getDeclaringType(), operation.getSimpleName()); // Compute the different action prototypes associated to the action to create. return this.actionPrototypes.createPrototypeFromJvmModel( actionKey, operation.isVarArgs(), operation.getParameters()); }
bitset.set(9); if (operation.isVarArgs()) { bitset.set(10);
if (redefinedOperation != null) { final ActionParameterTypes parameterTypes = this.sarlSignatureProvider.createParameterTypesFromJvmModel( redefinedOperation.isVarArgs(), redefinedOperation.getParameters()); final QualifiedActionName qualifiedActionName = this.sarlSignatureProvider.createQualifiedActionName( missedOperation.getValue().getDeclaringType(), qualifiedActionName, redefinedOperation.isVarArgs(), redefinedOperation.getParameters()); missedOperation.getValue().getReturnType(), null); op.setVarArgs(missedOperation.getValue().isVarArgs()); op.setFinal(true);
/** Create the JvmOperation for the given JDT method. * * @param method the JDT method. * @param context the context of the constructor. * @return the JvmOperation * @throws JavaModelException if the Java model is invalid. */ private JvmOperation getJvmOperation(IMethod method, JvmType context) throws JavaModelException { if (context instanceof JvmDeclaredType) { final JvmDeclaredType declaredType = (JvmDeclaredType) context; final ActionParameterTypes jdtSignature = this.actionPrototypeProvider.createParameterTypes( Flags.isVarargs(method.getFlags()), getFormalParameterProvider(method)); for (final JvmOperation jvmOperation : declaredType.getDeclaredOperations()) { final ActionParameterTypes jvmSignature = this.actionPrototypeProvider.createParameterTypesFromJvmModel( jvmOperation.isVarArgs(), jvmOperation.getParameters()); if (jvmSignature.equals(jdtSignature)) { return jvmOperation; } } } return null; }
final JvmOperation operation = (JvmOperation) feature; final ActionParameterTypes sig = sarlSignatureProvider.createParameterTypesFromJvmModel( operation.isVarArgs(), operation.getParameters()); final ActionPrototype actionKey = sarlSignatureProvider.createActionPrototype( operation.getSimpleName(), sig); final JvmOperation operation = (JvmOperation) feature; final ActionParameterTypes sig = sarlSignatureProvider.createParameterTypesFromJvmModel( operation.isVarArgs(), operation.getParameters()); final ActionPrototype actionKey = sarlSignatureProvider.createActionPrototype( feature.getSimpleName(), sig);
b.append("("); List<JvmFormalParameter> closureParams = closure.getFormalParameters(); boolean isVarArgs = operation.isVarArgs(); for (int i = 0; i < closureParams.size(); i++) { JvmFormalParameter closureParam = closureParams.get(i);
for (final JvmOperation operation : operations) { final ActionParameterTypes types = this.sarlSignatureProvider.createParameterTypesFromJvmModel( operation.isVarArgs(), operation.getParameters()); final ActionPrototype actSigKey = this.sarlSignatureProvider.createActionPrototype( operation.getSimpleName(), types); newOp.setVarArgs(operation.isVarArgs());
parameters = getParamTypeReferences(operation, false, true); hasSideEffects = getExpressionHelper().hasSideEffects(call); isVariadic = operation.isVarArgs(); } else { arguments = null;
b.append("("); List<JvmFormalParameter> closureParams = closure.getFormalParameters(); boolean isVarArgs = operation.isVarArgs(); for (int i = 0; i < closureParams.size(); i++) { JvmFormalParameter closureParam = closureParams.get(i);
operation2.setSimpleName(operation.getSimpleName()); operation2.setVisibility(operation.getVisibility()); operation2.setVarArgs(operation.isVarArgs()); operation2.setAbstract(operation.isAbstract()); operation2.setDeprecated(operation.isDeprecated());
appendable.append(" ").append(operation.getSimpleName()); //$NON-NLS-1$ appendable.append("("); //$NON-NLS-1$ final boolean isVarArgs = operation.isVarArgs(); for (int i = 0; i < closureParams.size(); i++) { final JvmFormalParameter closureParam = closureParams.get(i);
appendable.append(" ").append(operation.getSimpleName()); //$NON-NLS-1$ appendable.append("("); //$NON-NLS-1$ final boolean isVarArgs = operation.isVarArgs(); for (int i = 0; i < closureParams.size(); i++) { final JvmFormalParameter closureParam = closureParams.get(i);