public override bool Equals(object obj) { if (this == obj) { return true; } if (!(obj is FilterSpecCompiled)) { return false; } var other = (FilterSpecCompiled) obj; if (!EqualsTypeAndFilter(other)) { return false; } if (OptionalPropertyEvaluator == null && other.OptionalPropertyEvaluator == null) { return true; } if (OptionalPropertyEvaluator != null && other.OptionalPropertyEvaluator == null) { return false; } if (OptionalPropertyEvaluator == null && other.OptionalPropertyEvaluator != null) { return false; } return OptionalPropertyEvaluator.CompareTo(other.OptionalPropertyEvaluator); }
public CodegenMethod MakeCodegen( CodegenMethodScope parent, SAIFFInitializeSymbol symbols, CodegenClassScope classScope) { var method = parent.MakeChild(typeof(FilterSpecActivatable), typeof(FilterSpecCompiled), classScope); if (filterCallbackId == -1) { throw new IllegalStateException("Unassigned filter callback id"); } var propertyEval = OptionalPropertyEvaluator == null ? ConstantNull() : OptionalPropertyEvaluator.Make(method, symbols, classScope); method.Block .DeclareVar<EventType>( "eventType", EventTypeUtility.ResolveTypeCodegen(FilterForEventType, EPStatementInitServicesConstants.REF)) .DeclareVar<FilterSpecParam[][]>( "parameters", LocalMethod( FilterSpecParamForge.MakeParamArrayArrayCodegen(Parameters, classScope, method), Ref("eventType"), symbols.GetAddInitSvc(method))) .DeclareVar<FilterSpecActivatable>( "activatable", NewInstance<FilterSpecActivatable>( SAIFFInitializeSymbolWEventType.REF_EVENTTYPE, Constant(FilterForEventType.Name), Ref("parameters"), propertyEval, Constant(filterCallbackId))) .Expression( ExprDotMethodChain(symbols.GetAddInitSvc(method)) .Get(EPStatementInitServicesConstants.FILTERSPECACTIVATABLEREGISTRY) .Add("Register", Ref("activatable"))) .MethodReturn(Ref("activatable")); return method; }