public Instance(MethodBodyTransformation parent, AspectWeaverInstance aspectWeaverInstance) : base(parent, aspectWeaverInstance) { }
/// <summary> /// Transforms the <paramref name="method" />. /// </summary> private static Ssm.Method Transform(MethodMetadata method) { var transformation = new MethodBodyTransformation(method.DeclaringObject); var methodBody = method.MethodBody; var locals = methodBody == null ? Enumerable.Empty<Ssm.Var>() : methodBody.LocalVariables.Select(Transform); var body = methodBody == null ? Ssm.Stm.NopStm : transformation.TransformMethodBody(methodBody.Body); Ssm.MethodKind kind; if (method is RequiredPortMetadata) kind = Ssm.MethodKind.ReqPort; else if (method is ProvidedPortMetadata || method is GuardMetadata || method is ActionMetadata) kind = Ssm.MethodKind.ProvPort; else if (method is FaultEffectMetadata) // TODO: Fault effects for non-provided ports kind = Ssm.MethodKind.ProvPort; else kind = Ssm.MethodKind.Step; return Ssm.CreateMethod(method.Name, method.MethodInfo.GetParameters().Select(Transform), body, Transform(method.MethodInfo.ReturnType), locals, kind); }
public Instance(EnhanceSetterTransformationContext transformationContext, MethodBodyTransformation parent, AspectWeaverInstance aspectWeaverInstance) : base(parent, aspectWeaverInstance) { if (transformationContext == null) throw new ArgumentNullException("transformationContext"); _transformationContext = transformationContext; }
public TransformationInstance(PropertyDeclaration property, MethodBodyTransformation parent, AspectWeaverInstance aspectWeaverInstance) : base(parent, aspectWeaverInstance) { _transformation = (GuardPropertyEqualityTransformation)parent; Property = property; }