From 51d302a059240ab169c2f602f53c5cdd895745a5 Mon Sep 17 00:00:00 2001 From: Andries Smit Date: Mon, 5 Jan 2026 13:00:50 +0000 Subject: [PATCH] Feature OQL show result count --- .gitignore | 8 ++++ OQLModule.mpr | Bin 27656192 -> 27656192 bytes javasource/oql/actions/CountLines.java | 53 +++++++++++++++++++++++++ 3 files changed, 61 insertions(+) create mode 100644 javasource/oql/actions/CountLines.java diff --git a/.gitignore b/.gitignore index 38ef286..e7f46e3 100644 --- a/.gitignore +++ b/.gitignore @@ -34,3 +34,11 @@ #Other /releases/ +/packages/ +/oqlmodule.mpr.bak +/oqlmodule.mpr.lock +/modeler-merge-marker +/nativemobile/builds/ +/vendorlib/temp/ +.DS_Store +/.svn/ diff --git a/OQLModule.mpr b/OQLModule.mpr index 0bae99f16fe7356163aa93ad933c485230213b02..44a66d1958d47b1b1cfedc5292723757b9dfcad0 100644 GIT binary patch delta 7246 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 diff --git a/javasource/oql/actions/CountLines.java b/javasource/oql/actions/CountLines.java new file mode 100644 index 0000000..84f8657 --- /dev/null +++ b/javasource/oql/actions/CountLines.java @@ -0,0 +1,53 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. +// Special characters, e.g., é, ö, à, etc. are supported in comments. + +package oql.actions; + +import com.mendix.systemwideinterfaces.core.IContext; +import com.mendix.systemwideinterfaces.core.UserAction; + +public class CountLines extends UserAction +{ + private final java.lang.String InputString; + + public CountLines( + IContext context, + java.lang.String _inputString + ) + { + super(context); + this.InputString = _inputString; + } + + @java.lang.Override + public java.lang.Long executeAction() throws Exception + { + // BEGIN USER CODE + if (InputString == null) { + return 0L; + } + return InputString.lines() + .filter(line -> !line.trim().isEmpty()) + .count(); + // END USER CODE + } + + /** + * Returns a string representation of this action + * @return a string representation of this action + */ + @java.lang.Override + public java.lang.String toString() + { + return "CountLines"; + } + + // BEGIN EXTRA CODE + // END EXTRA CODE +}