finalKeywords = new ArrayList(); this.__Keywords.addAll((Collection) this.Keywords); finalKeywords.addAll(__Keywords); return finalKeywords; //throw new com.mendix.systemwideinterfaces.MendixRuntimeException("Java action was not implemented"); // END USER CODE } /** * Returns a string representation of this action */ @java.lang.Override public java.lang.String toString() { return "ExtractKeywords"; } // BEGIN EXTRA CODE // END EXTRA CODE }   Task to be performed in the Java Action.   String Split as List (List1) Merge another List (List2) with List Created in step 1 Remove Duplicates list items Remove List (List3) from List1 Return Final List Please suggest.   Edited Example: List1 = {Vijay,Manoj,Vivek} (List Created After String Split ) List2={Pradip,Rahul,Manoj}                 After Merge                List2 = {Vijay,Manoj,Vivek,Pradip,Rahul,Manoj} Remove Duplicates               List2 = {Vijay,Manoj,Vivek,Pradip,Rahul} (Notice Manoj is removed, It was duplicate) Remove List3 from List2               List3 = {Pradip,is,are}               List2 = {Vijay,Manoj,Vivek,Rahul} (Notice Pradip is also removed) Return the final List               List2  = {Vijay,Manoj,Vivek,Rahul}"> finalKeywords = new ArrayList(); this.__Keywords.addAll((Collection) this.Keywords); finalKeywords.addAll(__Keywords); return finalKeywords; //throw new com.mendix.systemwideinterfaces.MendixRuntimeException("Java action was not implemented"); // END USER CODE } /** * Returns a string representation of this action */ @java.lang.Override public java.lang.String toString() { return "ExtractKeywords"; } // BEGIN EXTRA CODE // END EXTRA CODE }   Task to be performed in the Java Action.   String Split as List (List1) Merge another List (List2) with List Created in step 1 Remove Duplicates list items Remove List (List3) from List1 Return Final List Please suggest.   Edited Example: List1 = {Vijay,Manoj,Vivek} (List Created After String Split ) List2={Pradip,Rahul,Manoj}                 After Merge                List2 = {Vijay,Manoj,Vivek,Pradip,Rahul,Manoj} Remove Duplicates               List2 = {Vijay,Manoj,Vivek,Pradip,Rahul} (Notice Manoj is removed, It was duplicate) Remove List3 from List2               List3 = {Pradip,is,are}               List2 = {Vijay,Manoj,Vivek,Rahul} (Notice Pradip is also removed) Return the final List               List2  = {Vijay,Manoj,Vivek,Rahul}"> finalKeywords = new ArrayList(); this.__Keywords.addAll((Collection) this.Keywords); finalKeywords.addAll(__Keywords); return finalKeywords; //throw new com.mendix.systemwideinterfaces.MendixRuntimeException("Java action was not implemented"); // END USER CODE } /** * Returns a string representation of this action */ @java.lang.Override public java.lang.String toString() { return "ExtractKeywords"; } // BEGIN EXTRA CODE // END EXTRA CODE }   Task to be performed in the Java Action.   String Split as List (List1) Merge another List (List2) with List Created in step 1 Remove Duplicates list items Remove List (List3) from List1 Return Final List Please suggest.   Edited Example: List1 = {Vijay,Manoj,Vivek} (List Created After String Split ) List2={Pradip,Rahul,Manoj}                 After Merge                List2 = {Vijay,Manoj,Vivek,Pradip,Rahul,Manoj} Remove Duplicates               List2 = {Vijay,Manoj,Vivek,Pradip,Rahul} (Notice Manoj is removed, It was duplicate) Remove List3 from List2               List3 = {Pradip,is,are}               List2 = {Vijay,Manoj,Vivek,Rahul} (Notice Pradip is also removed) Return the final List               List2  = {Vijay,Manoj,Vivek,Rahul}">
passing string to java action and retriving List output - Mendix Forum

passing string to java action and retriving List output

0
// This file was generated by Mendix Modeler.
//
// 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 aerisk.actions;

import com.mendix.systemwideinterfaces.core.IContext;
import com.mendix.webui.CustomJavaAction;
import com.mendix.systemwideinterfaces.core.IMendixObject;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.LinkedHashSet;

public class ExtractKeywords extends CustomJavaAction<java.util.List<IMendixObject>>
{
	private java.util.List<IMendixObject> __Keywords;
	private java.util.List<aerisk.proxies.Keyword> Keywords;
	private java.util.List<IMendixObject> __NonKeywordParameter1;
	private java.util.List<aerisk.proxies.NonKeyword> NonKeywordParameter1;
	private IMendixObject __ExtractString;
	private aerisk.proxies.ExtractfromArticle ExtractString;

	public ExtractKeywords(IContext context, java.util.List<IMendixObject> Keywords, java.util.List<IMendixObject> NonKeywordParameter1, IMendixObject ExtractString)
	{
		super(context);
		this.__Keywords = Keywords;
		this.__NonKeywordParameter1 = NonKeywordParameter1;
		this.__ExtractString = ExtractString;
	}

	@java.lang.Override
	public java.util.List<IMendixObject> executeAction() throws Exception
	{
		this.Keywords = new java.util.ArrayList<aerisk.proxies.Keyword>();
		if (__Keywords != null)
			for (IMendixObject __KeywordsElement : __Keywords)
				this.Keywords.add(aerisk.proxies.Keyword.initialize(getContext(), __KeywordsElement));

		this.NonKeywordParameter1 = new java.util.ArrayList<aerisk.proxies.NonKeyword>();
		if (__NonKeywordParameter1 != null)
			for (IMendixObject __NonKeywordParameter1Element : __NonKeywordParameter1)
				this.NonKeywordParameter1.add(aerisk.proxies.NonKeyword.initialize(getContext(), __NonKeywordParameter1Element));

		this.ExtractString = __ExtractString == null ? null : aerisk.proxies.ExtractfromArticle.initialize(getContext(), __ExtractString);

		// BEGIN USER CODE
		String article = this.ExtractString.toString();
		IMendixObject[] arrSplit = Arrays.stream(article.split(" ")).distinct().toArray(IMendixObject[]::new);
		if (arrSplit != null)
			for (IMendixObject __KeywordListElements : arrSplit)
				this.Keywords.add(aerisk.proxies.Keyword.initialize(getContext(), __KeywordListElements));
		
		java.util.List<IMendixObject> finalKeywords = new ArrayList<IMendixObject>();
		this.__Keywords.addAll((Collection<? extends IMendixObject>) this.Keywords);
		finalKeywords.addAll(__Keywords);
		return finalKeywords;
		//throw new com.mendix.systemwideinterfaces.MendixRuntimeException("Java action was not implemented");
		// END USER CODE
	}

	/**
	 * Returns a string representation of this action
	 */
	@java.lang.Override
	public java.lang.String toString()
	{
		return "ExtractKeywords";
	}

	// BEGIN EXTRA CODE
	// END EXTRA CODE
}

 

Task to be performed in the Java Action.

 

  1. String Split as List (List1)
  2. Merge another List (List2) with List Created in step 1
  3. Remove Duplicates list items
  4. Remove List (List3) from List1
  5. Return Final List Please suggest.

 

Edited

Example:

<Step1> List1 = {Vijay,Manoj,Vivek} (List Created After String Split )

<Step1> List2={Pradip,Rahul,Manoj}

                After Merge

               List2 = {Vijay,Manoj,Vivek,Pradip,Rahul,Manoj}

<Step3> Remove Duplicates

              List2 = {Vijay,Manoj,Vivek,Pradip,Rahul} (Notice Manoj is removed, It was duplicate)

<Step4> Remove List3 from List2

              List3 = {Pradip,is,are}

              List2 = {Vijay,Manoj,Vivek,Rahul} (Notice Pradip is also removed)

<Step5> Return the final List

              List2  = {Vijay,Manoj,Vivek,Rahul}

asked
3 answers
0

Do you really have to do this in Java? Can you not define a Entity lets say ‘ASTRING’ with a fields ‘astring’.
Then use the mendix list operations to do your tasks?

FYI: I am presuming you got into java via a microflow in which you converted a domain object into a comma separated string!? 

answered
0

Trying to figure out what the functional goal is of your 5 steps. Seems to me you will end up with a list containing the List1-items that also exist in List2.

answered
0

Have a look at the code in this module from the appstore that returns a list:

https://appstore.home.mendix.com/link/app/106771/NC-State-University/Split-String-Utility

answered