public override SequenceFilterCallBase CreateSequenceMatchClassFilterCall(String matchClassName, String matchClassPackage, String packagePrefix, String filterBase, List <String> entities, SequenceVariable initArrayAccess, SequenceExpression initExpr, SequenceVariable arrayAccess, SequenceVariable previousAccumulationAccess, SequenceVariable index, SequenceVariable element, SequenceExpression lambdaExpr) { String packagePrefixedMatchClassName = matchClassPackage != null ? matchClassPackage + "::" + matchClassName : matchClassName; // no (further) resolving of match classes in interpreted sequences cause there is no package context existing MatchClassFilterer matchClass = actions.GetMatchClass(packagePrefixedMatchClassName); // may be null, match class is part of filter call, was not checked before if (matchClass == null) { throw new SequenceParserException(packagePrefixedMatchClassName, packagePrefixedMatchClassName + "." + filterBase, SequenceParserError.MatchClassError); } String filterName = GetFilterName(filterBase, entities); String packagePrefixedName = filterName; if (entities.Count == 1 && filterBase == "assignStartWithAccumulateBy") { return(new SequenceFilterCallLambdaExpressionInterpreted(matchClass, filterBase, entities[0], initArrayAccess, initExpr, arrayAccess, previousAccumulationAccess, index, element, lambdaExpr)); } else { throw new SequenceParserException(packagePrefixedMatchClassName, packagePrefixedName, SequenceParserError.FilterError); } }
public override SequenceFilterCallBase CreateSequenceMatchClassFilterCall(String matchClassName, String matchClassPackage, String packagePrefix, String filterBase, List <String> entities, List <SequenceExpression> argExprs) { String packagePrefixedMatchClassName = matchClassPackage != null ? matchClassPackage + "::" + matchClassName : matchClassName; // no (further) resolving of match classes in interpreted sequences cause there is no package context existing MatchClassFilterer matchClass = actions.GetMatchClass(packagePrefixedMatchClassName); // may be null, match class is part of filter call, was not checked before if (matchClass == null) { throw new SequenceParserException(packagePrefixedMatchClassName, packagePrefixedMatchClassName + "." + filterBase, SequenceParserError.MatchClassError); } String filterName = GetFilterName(filterBase, entities); String packagePrefixedName; if (IsAutoSuppliedFilterName(filterBase)) { packagePrefixedName = filterBase; } else if (IsAutoGeneratedFilter(filterBase, entities)) { packagePrefixedName = filterName; } else { if (packagePrefix != null) { if (packagePrefix != "global") { packagePrefixedName = packagePrefix + "::" + filterName; } else { packagePrefixedName = filterName; } } else if (matchClassPackage != null && matchClass.info.GetFilter(matchClassPackage + "::" + filterName) != null) { packagePrefixedName = matchClassPackage + "::" + filterName; } else { packagePrefixedName = filterName; } } IFilter filter = matchClass.info.GetFilter(packagePrefixedName); if (filter == null) { throw new SequenceParserException(packagePrefixedMatchClassName, packagePrefixedName, SequenceParserError.FilterError); } return(new SequenceFilterCallInterpreted(matchClass, filter, argExprs.ToArray())); }
public override string GetPackagePrefixedMatchClassName(String matchClassName, String matchClassPackage) { String packagePrefixedMatchClassName = !PackageIsNullOrGlobal(matchClassPackage) ? matchClassPackage + "::" + matchClassName : matchClassName; // no (further) resolving of match classes in interpreted sequences cause there is no package context existing MatchClassFilterer matchClass = actions.GetMatchClass(packagePrefixedMatchClassName); // may be null, match class is part of filter call, was not checked before if (matchClass == null) { throw new SequenceParserException(packagePrefixedMatchClassName, "\\<class " + packagePrefixedMatchClassName + ">", SequenceParserError.MatchClassError); } return(matchClass.info.PackagePrefixedName); }