Giter Club home page Giter Club logo

underscore-java's Introduction

underscore-java

Maven Central MIT License Java CI CodeQL Semgrep Scorecard supply-chain security OSSAR OpenSSF Best Practices Coverage Status codecov CircleCI Build status Build Status Known Vulnerabilities javadoc Quality Gate Status Maintainability Rating Build Status Hits-of-Code codebeat badge Java Version

Join the chat at https://gitter.im/javadev/underscore-java

Requirements

Java 11 and later, Java 17 or Kotlin

Installation

To configure your Maven project, add the following code to your pom.xml file:

<dependencies>
  <dependency>
    <groupId>com.github.javadev</groupId>
    <artifactId>underscore</artifactId>
    <version>1.99</version>
  </dependency>
  ...
</dependencies>

Gradle configuration:

implementation 'com.github.javadev:underscore:1.99'

Usage

U.of(/* array | list | set | map | anything based on Iterable interface */)
    .filter(..)
    .map(..)
    ...
    .sortWith()
    .forEach(..);
U.of(value1, value2, value3)...
U.range(0, 10)...

U.of(1, 2, 3) // or java.util.Arrays.asList(1, 2, 3) or new Integer[] {1, 2, 3}
    .filter(v -> v > 1)
    // 2, 3
    .map(v -> v + 1)
    // 3, 4
    .sortWith((a, b) -> b.compareTo(a))
    .forEach(System.out::println);
    // 4, 3
    
U.of(1, 2, 3) // or java.util.Arrays.asList(1, 2, 3) or new Integer[] {1, 2, 3}
    .mapMulti((num, consumer) -> {
        for (int i = 0; i < num; i++) {
            consumer.accept("a" + num);
        }
    })
    .forEach(System.out::println);
    // "a1", "a2", "a2", "a3", "a3", "a3"

U.formatXml("<a><b>data</b></a>", Xml.XmlStringBuilder.Step.TWO_SPACES);
    // <a>
    //   <b>data</b>
    // </a>

U.formatJson("{\"a\":{\"b\":\"data\"}}", Json.JsonStringBuilder.Step.TWO_SPACES);
    // {
    //   "a": {
    //     "b": "data"
    //   }
    // }

U.xmlToJson(
    "<mydocument has=\"an attribute\">\n"
        + "   <and>\n"
        + "   <many>elements</many>\n"
        + "    <many>more elements</many>\n"
        + "   </and>\n"
        + "   <plus a=\"complex\">\n"
        + "     element as well\n"
        + "   </plus>\n"
        + "</mydocument>",
    Json.JsonStringBuilder.Step.TWO_SPACES);
    // {
    //   "mydocument": {
    //     "-has": "an attribute",
    //     "and": {
    //       "many": [
    //         "elements",
    //         "more elements"
    //       ]
    //     },
    //     "plus": {
    //       "-a": "complex",
    //       "#text": "\n     element as well\n   "
    //     }
    //   },
    //   "#omit-xml-declaration": "yes"
    // }

U.jsonToXml(
    "{\n"
        + "  \"mydocument\": {\n"
        + "    \"-has\": \"an attribute\",\n"
        + "    \"and\": {\n"
        + "      \"many\": [\n"
        + "        \"elements\",\n"
        + "        \"more elements\"\n"
        + "      ]\n"
        + "    },\n"
        + "    \"plus\": {\n"
        + "      \"-a\": \"complex\",\n"
        + "      \"#text\": \"\\n     element as well\\n   \"\n"
        + "    }\n"
        + "  },\n"
        + "  \"#omit-xml-declaration\": \"yes\"\n"
        + "}",
    Xml.XmlStringBuilder.Step.TWO_SPACES);
    // <mydocument has="an attribute">
    //   <and>
    //     <many>elements</many>
    //     <many>more elements</many>
    //   </and>
    //   <plus a="complex">
    //      element as well
    //    </plus>
    // </mydocument>

U.Builder builder = U.objectBuilder()
    .add("firstName", "John")
    .add("lastName", "Smith")
    .add("age", 25)
    .add("address", U.arrayBuilder()
        .add(U.objectBuilder()
            .add("streetAddress", "21 2nd Street")
            .add("city", "New York")
            .addNull("cityId")
            .add("state", "NY")
            .add("postalCode", "10021")))
    .add("phoneNumber", U.arrayBuilder()
        .add(U.objectBuilder()
            .add("type", "home")
            .add("number", "212 555-1234"))
        .add(U.objectBuilder()
            .add("type", "fax")
            .add("number", "646 555-4567")));
System.out.println(builder.toJson());
System.out.println(builder.toXml());
{
  "firstName": "John",
  "lastName": "Smith",
  "age": 25,
  "address": [
    {
      "streetAddress": "21 2nd Street",
      "city": "New York",
      "cityId": null,
      "state": "NY",
      "postalCode": "10021"
    }
  ],
  "phoneNumber": [
    {
      "type": "home",
      "number": "212 555-1234"
    },
    {
      "type": "fax",
      "number": "646 555-4567"
    }
  ]
}
<?xml version="1.0" encoding="UTF-8"?>
<root>
  <firstName>John</firstName>
  <lastName>Smith</lastName>
  <age number="true">25</age>
  <address array="true">
    <streetAddress>21 2nd Street</streetAddress>
    <city>New York</city>
    <cityId null="true"/>
    <state>NY</state>
    <postalCode>10021</postalCode>
  </address>
  <phoneNumber>
    <type>home</type>
    <number>212 555-1234</number>
  </phoneNumber>
  <phoneNumber>
    <type>fax</type>
    <number>646 555-4567</number>
  </phoneNumber>
</root>
String inventory =
    "{\n"
        + "  \"inventory\": {\n"
        + "    \"#comment\": \"Test is test comment\",\n"
        + "    \"book\": [\n"
        + "      {\n"
        + "        \"-year\": \"2000\",\n"
        + "        \"title\": \"Snow Crash\",\n"
        + "        \"author\": \"Neal Stephenson\",\n"
        + "        \"publisher\": \"Spectra\",\n"
        + "        \"isbn\": \"0553380958\",\n"
        + "        \"price\": \"14.95\"\n"
        + "      },\n"
        + "      {\n"
        + "        \"-year\": \"2005\",\n"
        + "        \"title\": \"Burning Tower\",\n"
        + "        \"author\": [\n"
        + "          \"Larry Niven\",\n"
        + "          \"Jerry Pournelle\"\n"
        + "        ],\n"
        + "        \"publisher\": \"Pocket\",\n"
        + "        \"isbn\": \"0743416910\",\n"
        + "        \"price\": \"5.99\"\n"
        + "      },\n"
        + "      {\n"
        + "        \"-year\": \"1995\",\n"
        + "        \"title\": \"Zodiac\",\n"
        + "        \"author\": \"Neal Stephenson\",\n"
        + "        \"publisher\": \"Spectra\",\n"
        + "        \"isbn\": \"0553573862\",\n"
        + "        \"price\": \"7.50\"\n"
        + "      }\n"
        + "    ]\n"
        + "  }\n"
        + "}";
String title = U.selectToken(U.fromJsonMap(inventory), "//book[@year>2001]/title/text()");
// "Burning Tower"

String json =
    "{\n"
        + "  \"Stores\": [\n"
        + "    \"Lambton Quay\",\n"
        + "    \"Willis Street\"\n"
        + "  ],\n"
        + "  \"Manufacturers\": [\n"
        + "    {\n"
        + "      \"Name\": \"Acme Co\",\n"
        + "      \"Products\": [\n"
        + "        {\n"
        + "          \"Name\": \"Anvil\",\n"
        + "          \"Price\": 50\n"
        + "        }\n"
        + "      ]\n"
        + "    },\n"
        + "    {\n"
        + "      \"Name\": \"Contoso\",\n"
        + "      \"Products\": [\n"
        + "        {\n"
        + "          \"Name\": \"Elbow Grease\",\n"
        + "          \"Price\": 99.95\n"
        + "        },\n"
        + "        {\n"
        + "          \"Name\": \"Headlight Fluid\",\n"
        + "          \"Price\": 4\n"
        + "        }\n"
        + "      ]\n"
        + "    }\n"
        + "  ]\n"
        + "}";
List<String> names = U.selectTokens(U.fromJsonMap(json), "//Products[Price>=50]/Name/text()");
// [Anvil, Elbow Grease]

Simplify XML document creation by structuring your code like the final document.

This code:

XmlBuilder builder = XmlBuilder.create("Projects")
    .e("underscore-java").a("language", "Java").a("scm", "SVN")
        .e("Location").a("type", "URL")
            .t("https://github.com/javadev/underscore-java/")
        .up()
    .up()
    .e("JetS3t").a("language", "Java").a("scm", "CVS")
        .e("Location").a("type", "URL")
            .t("https://jets3t.s3.amazonaws.com/index.html");

Generates the following XML document:

<?xml version="1.0" encoding="UTF-8"?>
<Projects>
    <underscore-java language="Java" scm="SVN">
        <Location type="URL">https://github.com/javadev/underscore-java/</Location>
    </underscore-java>
    <JetS3t language="Java" scm="CVS">
        <Location type="URL">https://jets3t.s3.amazonaws.com/index.html</Location>
    </JetS3t>
</Projects>

Underscore-java is a java port of Underscore.js.

In addition to porting Underscore's functionality, Underscore-java includes matching unit tests.

For docs, license, tests, and downloads, see: https://javadev.github.io/underscore-java

Thanks to Jeremy Ashkenas and all contributors to Underscore.js.

underscore-java's People

Contributors

borosh avatar dependabot[bot] avatar happyfacade avatar javadev avatar lalayang avatar psobot avatar sidharthkuruvila avatar skezzowski avatar szkocsovszki avatar terhesb avatar xhaggi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

underscore-java's Issues

Compatitable with Java 1.7?

It is stated that the library reqirements is "Java 1.6 and later, Java 1.8 or Java 11".
When I use the library in my project built with Java 1.7, there are errors with some of the functions.
So I want to know is this library compatitable with Java 1.7 ?
Could you please suggest a version of the library to be used with Java 1.7 ?
Thank you.

java.util.regex.PatternSyntaxException

java.util.regex.PatternSyntaxException: Syntax error in regexp pattern near index 14
    \{\s*(\d*)\s*}
                  ^
        at java.util.regex.Pattern.compileImpl(Native Method)
        at java.util.regex.Pattern.compile(Pattern.java:1340)
        at java.util.regex.Pattern.<init>(Pattern.java:1324)
        at java.util.regex.Pattern.compile(Pattern.java:946)
        at com.github.underscore.U.<clinit>(U.java:51)

e7504ba#diff-2bab2dc5b627b10f541b9cd9dc9c4504R51

Probably only occurs on Android

converting xml to json: self-closing tag

Hi,
I'm working with this nice lib to convert xml/json data and run into some problem with the "-self-closing" : "true" result, if the source xml node is like <nodename />.

to be honest: I didnt studied the code now and I'm not a java expert. But it seems, that there is no way to deactive the value "self-closing" with e.g. an argument?! Is such a feature planned?

May I ask you, why you add these self-closing feature? IMO I dont understand why to set an object with this value. I run into trouble with my frontend webapp with the resulting json I get with this lib. Dont you agree that something like { "nodename" : null } is more the result to expect?
Also I dont think that the current integration is 100% json correct. your self-closing : "true" is set as string instead of boolean.
Would be great to hear about what you think, if there are any easy workarounds or sth similar. Thx in advance!
BR

Template with JSON parameter

Hi,

Thanks for the awesome library. I had been looking for underscore.js functionality in java when I found this! However, I have been trying to use underscore-java to get a functionality similar to following:

.template(_.each(items, function(item) { <Tag> ${item.name} <\Tag> }),
where items is a JSON, for example: "{name: 'ABC', name: 'PQR'}"

The output should be "<Tag> ABC </Tag> <Tag> PQR </Tag>"

Is it possible to achieve this?

Regards
Payas

Caused by: org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 14; The prefix "ns5" for element "ns5:Type" is not bound.

I am getting below error -

Exception in thread "main" java.lang.IllegalArgumentException: org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 14; The prefix "ns5" for element "ns5:Type" is not bound.
	at com.github.underscore.lodash.Xml.fromXml(Xml.java:1322)
	at com.github.underscore.lodash.Xml.fromXml(Xml.java:1293)
	at com.github.underscore.lodash.U.fromXml(U.java:1995)
	at com.example.MyDemo.main(MyDemo.java:16)
Caused by: org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 14; The prefix "ns5" for element "ns5:Type" is not bound.
	at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:203)
	at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:177)
	at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:400)
	at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:327)
	at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:284)
	at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:284)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2784)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:602)
	at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:112)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:505)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:842)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:771)
	at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
	at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:243)
	at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:339)
	at com.github.underscore.lodash.Xml$Document.createDocument(Xml.java:1402)
	at com.github.underscore.lodash.Xml$Document.access$400(Xml.java:1388)
	at com.github.underscore.lodash.Xml.fromXml(Xml.java:1306)
	... 3 more

Code

String response = "<FinalResponse>\r\n" + 
				"   <ns5:Type>SUCCESS</ns5:Type>\r\n" + 
				"   <ns5:Code>0</ns5:Code>\r\n" + 
				"</FinalResponse>";
		
		Map<String, Object> map = (Map<String, Object>) U.fromXml(response);
		
	    String json = "[{\"id\":\"1\",\"name\":\"Bratislava\",\"population\":\"432000\"},{\"id\":\"2\",\"name\":\"Budapest\",\"population\":\"1759000\"},{\"id\":\"3\",\"name\":\"Prague\",\"population\":\"1280000\"},{\"id\":\"4\",\"name\":\"Warsaw\",\"population\":\"1748000\"},{\"id\":\"5\",\"name\":\"Los Angeles\",\"population\":\"3971000\"},{\"id\":\"6\",\"name\":\"New York\",\"population\":\"8550000\"},{\"id\":\"7\",\"name\":\"Edinburgh\",\"population\":\"464000\"},{\"id\":\"8\",\"name\":\"Berlin\",\"population\":\"3671000\"}]";
	    List<Object> list = (List<Object>) U.fromJson(json);
	    U.set(map, "soapenv:Envelope.soapenv:Body.getMyData.Visit.item", list);
	    System.out.println(U.toXml(map));

Keeps calling throttled functions after initial throttling works

Hello, I am using the throttling function like so:

  Supplier<Void> supplier = new Supplier<Void>() {
    public Void get() {
      LOGGER.info("Called expensive save operation!");
      return null;
    }
  };

  private Supplier<Void> throttledSave = U.throttle(supplier, 5000);

then, later in my application I call a few times in quick succession:

throttledSave.get();

In my console, the throttling appears to work (it takes 5 seconds for the first log message to appear).

But then I get the other operation logged as well a few seconds afterwards.

[15:30:49] [pool-7-thread-1/INFO] [ne.mv.se.ev.ServerModEventHandler/]: Called expensive save operation!
[15:30:52] [pool-8-thread-1/INFO] [ne.mv.se.ev.ServerModEventHandler/]: Called expensive save operation!
[15:30:52] [pool-9-thread-1/INFO] [ne.mv.se.ev.ServerModEventHandler/]: Called expensive save operation!

You can see at 15:30:49 that I get the first message, which is 5000ms after my call. This is good. But then 3 seconds later at 15:30:52 the throttled function gets called again twice. I would expect the throttled function only be called once, using the most recent call.

Inconsistent list parsing in $.fromXml()

If there is a list in xml it is parsed differently if it contains more than one item and if it contains just one item.
So if I expect list and try to iterate it I will get error, because in the first case I iterate through items and in the second case I iterate through map entries of one item.

@Grab('com.github.javadev:underscore:1.31')
import com.github.underscore.lodash.$
import static groovy.json.JsonOutput.*

def xml = '''
<root>
    <list>
        <item>
            <key1>value</key1>
            <key2>value</key2>
            <key3>value</key3>
        </item>
        <item>
            <key1>value</key1>
            <key2>value</key2>
            <key3>value</key3>
        </item>
    </list>
    <list>
        <item>
            <key1>value</key1>
            <key2>value</key2>
            <key3>value</key3>
        </item>
    </list>
</root>
'''

println prettyPrint(toJson($.fromXml(xml)))

This groovy code outputs:

{
    "root": {
        "list": [
            {
                "item": [
                    {
                        "key1": "value",
                        "key2": "value",
                        "key3": "value"
                    },
                    {
                        "key1": "value",
                        "key2": "value",
                        "key3": "value"
                    }
                ]
            },
            {
                "item": {
                    "key1": "value",
                    "key2": "value",
                    "key3": "value"
                }
            }
        ]
    }
}

findWhere returns error

Hi I am new in using this dependency.

I am using U.findWhere function but I seem to have an error.

This is the error message.

Handler dispatch failed; nested exception is java.lang.Error: Unresolved compilation problem: \n\tThe method findWhere(Iterable<E>, List<Tuple<String,T>>) in the type U is not applicable for the arguments (List<Dog>, Tuple<String,Object>)\n

I would really appreciate if you can show an example how to use it. Thank you

The random() method is not inclusive.

The doc said this method is inclusive, however, the following code prints '0' 20 times.

for (int i = 0; i < 20; i++) {
      System.out.println($.random(0,1));
}

How Can I modify an xml that contains an array like structure?

Hi, how can I modify the startdate from my second LocalData?

public class MyClass {
    public static void main(String args[]) {

String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>"
        + "<data>"
        +         "<localData>"
        + "           <username>admin</username>"
        + "           <password>12345</password>"
        + "           <interval>1</interval>"
        + "           <timeout>90</timeout>"
        + "           <startdate>01/01/2013</startdate>"
        + "           <enddate>06/01/2013</enddate>"
        + "           <ttime>1110</ttime>"
        +"        </localData>"
        +         "<localData>"
        + "           <username>admin</username>"
        + "           <password>12345</password>"
        + "           <interval>1</interval>"
        + "           <timeout>90</timeout>"
        + "           <startdate>01/01/2014</startdate>"
        + "           <enddate>06/01/2014</enddate>"
        + "           <ttime>1110</ttime>"
        +"        </localData>"
        + "    </data>"; 

java.util.Map<String, Object> object = (java.util.Map<String, Object>) U.fromXml(xml);
U.set(object, "data.localData[1].startdate", "02/02/2013"); // ?

    }
}

there is something wrong in the code snippet

hi Valentyn ,I read the Underscore-java document(http://javadev.github.io/underscore-java/) ,
there are some code snippets in the Collection Functions section:

int multiplier = 2;
int index = 0;
$.each(asList(1, 2, 3), new Block<Integer>() {
    public void apply(Integer item) {
        System.out.println(index + "=" + (item * multiplier) + ",");
        index += 1;
    }
});
// 0=2,1=4,2=6,

and following is my test code:

 int multiplier = 2;
        int index = 0;
        $.each(Arrays.asList(1, 2, 3), new Block<Integer>() {
            @Override
            public void apply(Integer item) {
                System.out.println(index + "=" + (item * multiplier) + ",");
                index += 1;
            }
        });

but one complication error appears,it says the variable index shoud be final,my question is : how to achieve the output : 0=2,1=4,2=6 , thanks!

Improvising on performance.

Hi Valentyn,

I will like to help you in improvising on memory usage. I am using the current version. Will recommend to use Guava for collections. As we are using it a lot.

If you approve i will do the changes and push.

Exception in thread "main" com.github.underscore.lodash.Json$ParseException: Expected value at 12:4

How to convert below JSON to XML ?

Error

Exception in thread "main" com.github.underscore.lodash.Json$ParseException: Expected value at 12:4
	at com.github.underscore.lodash.Json$JsonParser.error(Json.java:813)
	at com.github.underscore.lodash.Json$JsonParser.expected(Json.java:806)
	at com.github.underscore.lodash.Json$JsonParser.readValue(Json.java:535)
	at com.github.underscore.lodash.Json$JsonParser.readArray(Json.java:548)
	at com.github.underscore.lodash.Json$JsonParser.readValue(Json.java:519)
	at com.github.underscore.lodash.Json$JsonParser.readObject(Json.java:572)
	at com.github.underscore.lodash.Json$JsonParser.readValue(Json.java:521)
	at com.github.underscore.lodash.Json$JsonParser.readObject(Json.java:572)
	at com.github.underscore.lodash.Json$JsonParser.readValue(Json.java:521)
	at com.github.underscore.lodash.Json$JsonParser.parse(Json.java:500)
	at com.github.underscore.lodash.Json.fromJson(Json.java:872)
	at com.github.underscore.lodash.U.fromJson(U.java:2027)
	at com.example.JsonToXml2.main(JsonToXml2.java:60)
public class JsonToXml2 {
	public static void main(String[] args) {
		
		String response = "<FinalResponse xmlns:ns5=\"urn:mybay.com:enterprise:schemas:common:elements\">\r\n" + 
				"   <ns5:Type>SUCCESS</ns5:Type>\r\n" + 
				"   <ns5:Code>0</ns5:Code>\r\n" + 
				"</FinalResponse>";
		
		String xml ="<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:soapenc=\"http://schemas.xmlsoap.org/soap/encoding/\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">"
		        + "   <soapenv:Header/>"
		        + "   <soapenv:Body>"
		        + "<getMyData xmlns:ns10=\"urn:mybay.com:dms:wsdls:Visit\" xmlns:ns5=\"urn:mybay.com:enterprise:schemas:common:elements\" xmlns:ns6=\"urn:mybay.com:enterprise:schemas:Visit\" xmlns:ns7=\"urn:mybay.com:dms:schemas:Visit\" xmlns:ns8=\"urn:mybay.com:enterprise:schemas:account\">"
		        + "<Visit>"
		        + "<item>"
		        + "</item>"
		        + "</Visit>"
		        + "</getMyData>"
		        + response
		        + "</soapenv:Body>"
		        + "</soapenv:Envelope>";
		
		Map<String, Object> map = (Map<String, Object>) U.fromXml(xml);
		
		
		Map<String, Object> responsemap = (Map<String, Object>) U.fromXml(response);
		
		
	    String json = "{\r\n" + 
	    		"  \"_embedded\": {\r\n" + 
	    		"    \"employeeDetails\": [\r\n" + 
	    		"      {\r\n" + 
	    		"        \"employeeNumber\": \"100\",\r\n" + 
	    		"        \"status\": \"A\"\r\n" + 
	    		"      },\r\n" + 
	    		"      {\r\n" + 
	    		"        \"billingNum\": \"200\",\r\n" + 
	    		"        \"status\": \"A\"\r\n" + 
	    		"      },\r\n" + 
	    		"    ]\r\n" + 
	    		"  },\r\n" + 
	    		"  \"_links\": {\r\n" + 
	    		"    \"self\": {\r\n" + 
	    		"      \"href\": \"/employee/100/employees\"\r\n" + 
	    		"    }\r\n" + 
	    		"  },\r\n" + 
	    		"  \"page\": {\r\n" + 
	    		"    \"size\": 25,\r\n" + 
	    		"    \"totalElements\": 11,\r\n" + 
	    		"    \"totalPages\": 1,\r\n" + 
	    		"    \"number\": 0\r\n" + 
	    		"  }\r\n" + 
	    		"}";
	    List<Object> list = (List<Object>) U.fromJson(json);
	    U.set(map, "soapenv:Envelope.soapenv:Body.getMyData.Visit.item", list);
	    System.out.println(U.toXml(map));
	}
}

ExceptionInInitializerError: null

Try to use it on Spring Boot App on rabbitmq consumer method handler. But am getting this exception. What is may be a possible causes?

My Code

@RabbitListener(queues = "my.queue.name")
	public void messageHandle(String content) {
		  Map<String,Object> map = U.fromXmlMap(content);
		  Map<String,Object> root = (Map<String, Object>) map.get("Message");
		  String jsonContent = U.toJson(root);
		  return jsonContent.getBytes();
}

Exception ::

java.lang.ExceptionInInitializerError: null
at com.github.underscore.lodash.U.fromXmlMap(U.java:2142) ~[underscore-1.58.jar:na]
at com.github.underscore.lodash.U.fromXmlMap(U.java:2137) ~[underscore-1.58.jar:na]
...
....
....
....

Caused by: java.lang.IllegalArgumentException: Property 'http://javax.xml.XMLConstants/property/accessExternalDTD' is not recognized.
at org.apache.xerces.jaxp.DocumentBuilderFactoryImpl.setAttribute(Unknown Source) ~[xercesImpl-2.9.1.jar:na]
at com.github.underscore.lodash.Xml$Document.createDocument(Xml.java:1418) ~[underscore-1.58.jar:na]
at com.github.underscore.lodash.Xml$Document.access$000(Xml.java:1392) ~[underscore-1.58.jar:na]
at com.github.underscore.lodash.Xml.(Xml.java:65) ~[underscore-1.58.jar:na]

intersection is not functioning - StackOverflowError

Hi, when I try generate list with intersection method,
I got an StackOverflowError.

This is my test code:

import static java.util.Arrays.asList;

import java.util.List;
import java.util.Stack;

public class TestUnderscore {

public static void main(String []args){
    List<String> resultado = intersection(asList("101", "2", "1", "10"), asList("2", "1"));
    System.out.println("resultado100:");
    System.out.println(resultado.toString());       
}

@SuppressWarnings("unchecked")
public static <String> List<String> intersection(final List<String> list1, final List<String> list2) {
    final Stack<List<String>> stack = new Stack<List<String>>();
    stack.add(list1);
    stack.add(intersection(stack.peek(), list2));

    return stack.peek();
}   

}

-------------- CONSOLE OUTPUT --------------------
Exception in thread "main" java.lang.StackOverflowError
at java.util.Vector.(Vector.java:148)
at java.util.Vector.(Vector.java:157)
at java.util.Stack.(Stack.java:53)
at TestUnderscore.intersection(TestUnderscore.java:16)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)
at TestUnderscore.intersection(TestUnderscore.java:18)

at TestUnderscore.intersection(TestUnderscore.java:18)

lodash set?

hi,

thanks for bringing underscore/lodash goodness to java!

any reason that lodash set is missing here?

is there some obvious java native alternative that i'm missing?

best,
tony.

How to convert xml to json with multiple U.Mode?

Such as

String json = U.xmlToJson(xml, U.Mode.REPLACE_SELF_CLOSING_WITH_NULL, U.Mode.REPLACE_EMPTY_VALUE_WITH_NULL);

which can replace self closing with null and also replace empty value with null

Reversely, when convert json to xml

String xml = U.jsonToXml(json, U.Mode.REPLACE_NULL_WITH_EMPTY_VALUE, U.Mode.REPLACE_EMPTY_VALUE_WITH_SELF_CLOSING);

At the same time, I hope to add some new Mode like:

// replace <aaa></aaa> to "aaa": ""
U.xmlToJson(xml, U.Mode.REPLACE_EMPTY_TAG_WITH_EMPTY_VALUE);

and reversely

// replace "a": "" to <aaa></aaa>
U.jsonToXml(json, U.Mode.REPLACE_EMPTY_VALUE_WITH_EMPTY_TAG);

fromXml: XML secure processing causes exception on Android devices

https://github.com/javadev/underscore-java/blob/master/src/main/java/com/github/underscore/lodash/Xml.java#L1353

javax.xml.parsers.ParserConfigurationException: http://javax.xml.XMLConstants/feature/secure-processing
at org.apache.harmony.xml.parsers.DocumentBuilderFactoryImpl.setFeature(DocumentBuilderFactoryImpl.java:101)
at com.github.underscore.lodash.Xml.createDocument(Xml.java:1353)
at com.github.underscore.lodash.Xml.fromXml(Xml.java:1283)

Secure XML processing is a desirable feature for many people, so it'd be best to either make it user-configurable or at the very least catch and ignore that exception to allow parsing where secure processing is unavailable.

U.xmlToJson() produces emtpy objects when tag is emtpy

I am trying to convert this XML to JSON :

<result>
	<SalHdr>
		<SalId>32745</SalId>
		<BillNo>32745</BillNo>
		<BillDt>2020-09-05T00:00:00</BillDt>
		<BookId>1</BookId>
		<Cash>CA</Cash>
		<BillRefNo>0032745</BillRefNo>
		<PtyId>0</PtyId>
		<PtyName></PtyName> // look here
		<Add1></Add1> // look here
		<City></City> // look here
		<TotAmt>247.61</TotAmt>
		<TaxId>4</TaxId>
		<Taxper>0.00</Taxper>
		<TaxAmt>12.38</TaxAmt>
		<RndOff>0.01</RndOff>
		<NetAmt>260.00</NetAmt>
		<DiscAmt>0.00</DiscAmt>
		<Discper>0.00</Discper>
		<Remarks></Remarks>
		<UserId>2</UserId>
		<CompId>1</CompId>
		<AcYrId>12</AcYrId>
		<DocCancel>0</DocCancel>
		<OtherState>0</OtherState>
		<WaiterId>4</WaiterId>
		<WaiterCode>4</WaiterCode>
		<DeliveryId>0</DeliveryId>
		<Delivery>CASH</Delivery>
		<Est>0</Est>
		<BillTime>2020-09-05T09:08:49</BillTime>
	</SalHdr>
	<SalHdr>
		<SalId>32746</SalId>
		<BillNo>32746</BillNo>
		<BillDt>2020-09-05T00:00:00</BillDt>
		<BookId>1</BookId>
		<Cash>CA</Cash>
		<BillRefNo>0032746</BillRefNo>
		<PtyId>0</PtyId>
		<PtyName></PtyName>
		<Add1></Add1>
		<City></City>
		<TotAmt>404.74</TotAmt>
		<TaxId>4</TaxId>
		<Taxper>0.00</Taxper>
		<TaxAmt>20.24</TaxAmt>
		<RndOff>0.02</RndOff>
		<NetAmt>425.00</NetAmt>
		<DiscAmt>0.00</DiscAmt>
		<Discper>0.00</Discper>
		<Remarks></Remarks>
		<UserId>2</UserId>
		<CompId>1</CompId>
		<AcYrId>12</AcYrId>
		<DocCancel>0</DocCancel>
		<OtherState>0</OtherState>
		<WaiterId>1</WaiterId>
		<WaiterCode>1</WaiterCode>
		<DeliveryId>0</DeliveryId>
		<Delivery>CASH</Delivery>
		<Est>0</Est>
		<BillTime>2020-09-05T09:11:21</BillTime>
	</SalHdr>

Here the PtyName, add1,city is empty . In json I am getting as empty {} instead of emtpy string or null

{
"results" : {
[
{
        "SalId": "32745",
        "BillNo": "32745",
        "BillDt": "2020-09-05T00:00:00",
        "BookId": "1",
        "Cash": "CA",
        "BillRefNo": "0032745",
        "PtyId": "0",
        "PtyName": {}, // look here
        "Add1": {}, // look here
        "City": {}, // look here
        "TotAmt": "247.61",
        "TaxId": "4",
        "Taxper": "0.00",
        "TaxAmt": "12.38",
        "RndOff": "0.01",
        "NetAmt": "260.00",
        "DiscAmt": "0.00",
        "Discper": "0.00",
        "Remarks": {},
        "UserId": "2",
        "CompId": "1",
        "AcYrId": "12",
        "DocCancel": "0",
        "OtherState": "0",
        "WaiterId": "4",
        "WaiterCode": "4",
        "DeliveryId": "0",
        "Delivery": "CASH",
        "Est": "0",
        "BillTime": "2020-09-05T09:08:49",
        "ID": "1"
      },
      {
        "SalId": "32746",
        "BillNo": "32746",
        "BillDt": "2020-09-05T00:00:00",
        "BookId": "1",
        "Cash": "CA",
        "BillRefNo": "0032746",
        "PtyId": "0",
        "PtyName": {},
        "Add1": {},
        "City": {},
        "TotAmt": "404.74",
        "TaxId": "4",
        "Taxper": "0.00",
        "TaxAmt": "20.24",
        "RndOff": "0.02",
        "NetAmt": "425.00",
        "DiscAmt": "0.00",
        "Discper": "0.00",
        "Remarks": {},
        "UserId": "2",
        "CompId": "1",
        "AcYrId": "12",
        "DocCancel": "0",
        "OtherState": "0",
        "WaiterId": "1",
        "WaiterCode": "1",
        "DeliveryId": "0",
        "Delivery": "CASH",
        "Est": "0",
        "BillTime": "2020-09-05T09:11:21",
        "ID": "2"
      }
    ]
]
}

Please help me in this issue since it breaking the model classes

Is it possible to have the root node on resulting map from 'fromXml'?

Hi!
My xml doesn't have a "root" node, it starts with an info node and I would like to have this stuff on the resulting map. I took a look at the code and it seems to me that it could be achieved by using createMap(document) instead of createMap(document.getDocumentElement()) - but that will change the current behavior - or creating a new version of createMap with Document as a parameter or, maybe, turning createMap a public method. Does that make any sense? Is there another way to do this?
Thank you, sir.

    public void fromXml2() {
        String string
            = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
            + "\n"
            + "<lotes>\n"
            + "  <lote>\n"
            + "    <codigo_filial>0000</codigo_filial>\n"
            + "    <safra>20162017</safra>\n"
            + "    <especie>Soja</especie>\n"
            + "  </lote>\n"
            + "\n"
            + "  <lote>\n"
            + "    <codigo_filial>0000</codigo_filial>\n"
            + "    <safra>20162017</safra>\n"
            + "    <especie>Soja</especie>\n"
            + "  </lote>\n"
            + "</lotes> ";
        
        System.out.println(FromXml.fromXml(string).toString());

        String expected = "{lotes={lote=[{codigo_filial=0000, safra=20162017, especie=Soja}, {codigo_filial=0000, safra=20162017, especie=Soja}]}}";
        assertEquals(expected, FromXml.fromXml(string).toString());
    }`

object-oriented or a functional style demo bug

        //object-oriented or a functional style demo
        $.map(Arrays.asList(1, 2, 3), new Function1<Integer, Integer>() {
            @Override
            public Integer apply(Integer item) {
                return item * 2;
            }
        });

        new $(Arrays.asList(1, 2, 3)).map(new Function1<Integer, Integer>() {
            public Integer apply(Integer item) {
                return item * 2;
            }
        });

but there is no such map method : map(Function1 func) in $ class.

Add new checkstyle xml and fix all warnings in source code and unit tests

<!DOCTYPE module PUBLIC
        "-//Puppy Crawl//DTD Check Configuration 1.3//EN"
        "http://www.puppycrawl.com/dtds/configuration_1_3.dtd">
<module name="Checker">
    <property name="charset" value="UTF-8"/>

	<property name="fileExtensions" value="java, xml, properties"/>

    <property name="severity" value="error"/>

    <!-- Checks for whitespace                               -->
    <module name="FileTabCharacter">
        <property name="eachLine" value="false"/>
    </module>

    <module name="TreeWalker">
        <module name="OuterTypeFilename"/>
        <module name="IllegalTokenText">
            <property name="tokens" value="STRING_LITERAL, CHAR_LITERAL"/>
            <property name="format"
                      value="\\u00(08|09|0(a|A)|0(c|C)|0(d|D)|22|27|5(C|c))|\\(0(10|11|12|14|15|42|47)|134)"/>
            <property name="message" value="Avoid using corresponding octal or Unicode escape."/>
        </module>
        <module name="AvoidEscapedUnicodeCharacters">
            <property name="allowEscapesForControlCharacters" value="true"/>
            <property name="allowByTailComment" value="true"/>
            <property name="allowNonPrintableEscapes" value="true"/>
        </module>
        <module name="LineLength">
            <property name="max" value="120"/>
            <property name="ignorePattern" value="^package.*|^import.*|a href|href|http://|https://|ftp://"/>
        </module>
        <module name="OneTopLevelClass"/>
        <module name="NoLineWrap"/>
        <module name="EmptyBlock">
            <property name="option" value="TEXT"/>
            <property name="tokens"
                      value="LITERAL_TRY, LITERAL_CATCH, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE, LITERAL_SWITCH"/>
        </module>
        <module name="NeedBraces"/>
        <module name="LeftCurly"/>
        <module name="RightCurly"/>
        <module name="RightCurly">
            <property name="option" value="alone"/>
            <property name="tokens"
                      value="CLASS_DEF, METHOD_DEF, CTOR_DEF, LITERAL_FOR, LITERAL_WHILE, LITERAL_DO, STATIC_INIT, INSTANCE_INIT"/>
        </module>
        <module name="WhitespaceAround">
            <property name="allowEmptyConstructors" value="true"/>
            <property name="allowEmptyMethods" value="true"/>
            <property name="allowEmptyTypes" value="true"/>
            <property name="allowEmptyLoops" value="true"/>
            <message key="ws.notFollowed"
                     value="WhitespaceAround: ''{0}'' is not followed by whitespace."/>
            <message key="ws.notPreceded"
                     value="WhitespaceAround: ''{0}'' is not preceded with whitespace."/>
        </module>
        <module name="OneStatementPerLine"/>
        <module name="MultipleVariableDeclarations"/>
        <module name="ArrayTypeStyle"/>
        <module name="MissingSwitchDefault"/>
        <module name="FallThrough"/>
        <module name="UpperEll"/>
        <module name="ModifierOrder"/>
        <module name="SeparatorWrap">
            <property name="tokens" value="DOT"/>
            <property name="option" value="nl"/>
        </module>
        <module name="SeparatorWrap">
            <property name="tokens" value="COMMA"/>
            <property name="option" value="EOL"/>
        </module>

        <!-- Checks for Naming Conventions.                  -->
        <!-- See http://checkstyle.sf.net/config_naming.html -->
        <module name="ConstantName"/>
        <module name="LocalFinalVariableName"/>
        <module name="LocalVariableName"/>
        <module name="MemberName"/>
        <module name="MethodName"/>
        <module name="PackageName"/>
        <module name="ParameterName"/>
        <module name="StaticVariableName"/>
        <module name="TypeName"/>

        <module name="NoFinalizer"/>
        <module name="GenericWhitespace">
            <message key="ws.followed"
                     value="GenericWhitespace ''{0}'' is followed by whitespace."/>
            <message key="ws.preceded"
                     value="GenericWhitespace ''{0}'' is preceded with whitespace."/>
            <message key="ws.illegalFollow"
                     value="GenericWhitespace ''{0}'' should followed by whitespace."/>
            <message key="ws.notPreceded"
                     value="GenericWhitespace ''{0}'' is not preceded with whitespace."/>
        </module>
        <module name="Indentation">
            <property name="basicOffset" value="4"/>
            <property name="braceAdjustment" value="0"/>
            <property name="caseIndent" value="4"/>
            <property name="throwsIndent" value="4"/>
            <property name="lineWrappingIndentation" value="4"/>
            <property name="arrayInitIndent" value="4"/>
        </module>
        <module name="AbbreviationAsWordInName">
            <property name="ignoreFinal" value="false"/>
            <property name="allowedAbbreviationLength" value="1"/>
        </module>
        <module name="OverloadMethodsDeclarationOrder"/>
        <module name="MethodParamPad"/>
        <module name="OperatorWrap">
            <property name="option" value="NL"/>
            <property name="tokens"
                      value="BAND, BOR, BSR, BXOR, DIV, EQUAL, GE, GT, LAND, LE, LITERAL_INSTANCEOF, LOR, LT, MINUS, MOD, NOT_EQUAL, PLUS, QUESTION, SL, SR, STAR "/>
        </module>
        <module name="AnnotationLocation">
            <property name="tokens" value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF"/>
        </module>
        <module name="AnnotationLocation">
            <property name="tokens" value="VARIABLE_DEF"/>
            <property name="allowSamelineMultipleAnnotations" value="true"/>
        </module>
        <module name="NonEmptyAtclauseDescription"/>
        <module name="JavadocTagContinuationIndentation"/>
        <module name="AtclauseOrder">
            <property name="tagOrder" value="@param, @return, @throws, @deprecated"/>
            <property name="target" value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF, VARIABLE_DEF"/>
        </module>
        <module name="JavadocMethod">
            <property name="severity" value="warning"/>
            <property name="scope" value="protected"/>
            <property name="allowUndeclaredRTE" value="true"/>
            <property name="allowThrowsTagsForSubclasses" value="true"/>
        </module>
        <module name="JavadocType">
            <property name="severity" value="warning"/>
            <property name="scope" value="public"/>
            <property name="allowUnknownTags" value="true"/>
        </module>
        <module name="MethodName">
            <property name="format" value="^[a-z][a-z0-9][a-zA-Z0-9_]*$"/>
            <message key="name.invalidPattern"
                     value="Method name ''{0}'' must match pattern ''{1}''."/>
        </module>
        <module name="SingleLineJavadoc"/>
    </module>

</module>

pom.xml:

<groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-checkstyle-plugin</artifactId>
                <version>2.17</version>

Documentation ambiguity

First of all thanks for sharing! ๐Ÿ‘

Just thinking out loud: it would be great if the examples like the map would be clearer

$.map(asList(1, 2, 3), new Function1<Integer, Integer>() {
    public Integer apply(Integer item) {
        return item * 3;
    }
});

For example, may I return an array of Strings or Booleans? May I access the index of the iterator like in js?

The following use case doesn't compile

  static String[] getCheckedIems(String[] allItems, final CharSequence[] items) {

        final List<CharSequence> listItems = Arrays.asList(items);
        return $.map(Arrays.asList(allItems), new Function1<String, Integer>() {
            public String apply(String item) {
                return listItems.contains(item) ? item : null;
            }
        });
    }

Could you please atleast a simple document to use the underscore template API.

Like basic usage of the template in java. Eg:

    <h2>
        <%- listTitle %>
    </h2>
    <ul>
        <% _.each( listItems, function( listItem ){ %>
            <li>
                <%- listItem.name %>
                <% if ( listItem.hasOlympicGold ){ %>
                    <em>*</em>
                <% } %>
            </li>
        <% }); %>
    </ul>

    <% var showFootnote = _.any(
        _.pluck( listItems, "hasOlympicGold" )
    ); %>

    <% if ( showFootnote ){ %>
        <p style="font-size: 12px ;">
            <em>* Olympic gold medalist</em>
        </p>
    <% } %>

If the above template can be manipulated using the api, thank you so much.

Can not resolve โ€œ$โ€ underscore-java

I am new to underscore-java, facing issue running below code which says "$" can not resolve
$.each(asList(1, 2, 3), new Block() {
public void apply(Integer item) {
System.out.println(item + ",");
}
});

using java 1.7

Poor Performance intersection method, and include new notIntersection method

Hi,
I found poor performance in intersection method,
I propose include this method intersection with better performance (view traditional in output console)

Add new method : notIntersection:
and Change actual intersection method with this:
------------------ Code Example ------------------------------

`import static java.util.Arrays.asList;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import com.github.underscore.$;

import utils.TiempoEnum;
import utils.UtilsTiempo;

public class TestUnderscore2 {

public static <T> List<T> intersection(List<T> list1, List<T> list2) {
    List<T> list = new ArrayList<T>();
    for (T t : list1) {
        if(list2.contains(t)) {
            list.add(t);
        }
    }
    return list;
}

public static <T> List<T> notIntersection(List<T> list1, List<T> list2) {
    List<T> list = new ArrayList<T>();
    for (T t : list1) {
        if(!list2.contains(t)) {
            list.add(t);
        }
    }
    return list;
}
public static void main(String[] args){
    Date fecha1;
    Date fecha2;
    List<String> resultado;
    fecha1 = new Date();        
    resultado = $.intersection(asList("101", "2", "1", "10"), asList("2", "1"));
    fecha2 = new Date();
    System.out.println("Diff time ms underscore:");
    System.out.println(fecha2.getTime()-fecha1.getTime());
    System.out.println("result:");
    System.out.println(resultado.toString());

    fecha1 = new Date();        
    resultado = intersection(asList("102", "3", "2", "11"), asList("3", "2"));
    fecha2 = new Date();
    System.out.println("Diff time ms traditional:");
    System.out.println(fecha2.getTime()-fecha1.getTime());
    System.out.println("result:");
    System.out.println(resultado.toString());
}

}

`

Output Console:

Diff time ms underscore:
23
result:
[2, 1]
Diff time ms traditional:
0
result:

[3, 2]

I hope your comments.

once() behavior

Shouldn't once() behavior should be as with underscore.js, and return the return value of the inner function? For now it looks like it ignores the inner function result, and just return null.

Handling Numbers and String Data Type

How can i convert Number presented on XML to be JSON Integer and Not String?

Example : <a><b>100</b><a> to be { "a" : { "b" : 100 } } and NOT { "a" : { "b" : "100" } }

$.range should return a list?

I am trying the library and it is really cool!

I am wondering if there is a similar way I can do something like this? $.map($.range(10), ...

Thanks

What is the best way to fill the XML Templates when needed?

In this example, I only used one way to put xml template, but is there any way to add bits and pieces of XML snippet ?

String response = "<FinalResponse>\r\n" + 
				"   <Type>SUCCESS</Type>\r\n" + 
				"   <Code>0</Code>\r\n" + 
				"</FinalResponse>";
		
		String xml ="<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:soapenc=\"http://schemas.xmlsoap.org/soap/encoding/\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">"
		        + "   <soapenv:Header/>"
		        + "   <soapenv:Body>"
		        + "<getMyData xmlns:ns10=\"urn:mybay.com:dms:wsdls:Visit\" xmlns:ns5=\"urn:mybay.com:enterprise:schemas:common:elements\" xmlns:ns6=\"urn:mybay.com:enterprise:schemas:Visit\" xmlns:ns7=\"urn:mybay.com:dms:schemas:Visit\" xmlns:ns8=\"urn:mybay.com:enterprise:schemas:account\">"
		        + "<Visit>"
		        + "<item></item>"
		        + "</Visit>"
		        + response
		        + "</getMyData>"
		        + "</soapenv:Body>"
		        + "</soapenv:Envelope>";
		
		Map<String, Object> map = (Map<String, Object>) U.fromXml(xml);
		
		
		Map<String, Object> responsemap = (Map<String, Object>) U.fromXml(response);
		
		
	    String json = "[{\"id\":\"1\",\"name\":\"Bratislava\",\"population\":\"432000\"},{\"id\":\"2\",\"name\":\"Budapest\",\"population\":\"1759000\"},{\"id\":\"3\",\"name\":\"Prague\",\"population\":\"1280000\"},{\"id\":\"4\",\"name\":\"Warsaw\",\"population\":\"1748000\"},{\"id\":\"5\",\"name\":\"Los Angeles\",\"population\":\"3971000\"},{\"id\":\"6\",\"name\":\"New York\",\"population\":\"8550000\"},{\"id\":\"7\",\"name\":\"Edinburgh\",\"population\":\"464000\"},{\"id\":\"8\",\"name\":\"Berlin\",\"population\":\"3671000\"}]";
	    List<Object> list = (List<Object>) U.fromJson(json);
	    U.set(map, "soapenv:Envelope.soapenv:Body.getMyData.Visit.item", list);
	    System.out.println(U.toXml(map));

How to replace null value with empty when use U.jsonToXml()

When I convert xml to json, I can use U.xmlToJson(xml, U.Mode.REPLACE_EMPTY_VALUE_WITH_NULL)
but when I convert json to xml, there is no way to replace null value with empty like U.jsonToXml(json, U.Mode.REPLACE_NULL_VALUE_WITH_EMPTY)
This brings some problems, for example, there is a xml content like below

<aaa>
    <bbb></bbb>
</aaa>

when I convert it to json

String xml = "<aaa><bbb></bbb></aaa>"
String json = U.xmlToJson(xml, U.Mode.REPLACE_EMPTY_VALUE_WITH_NULL);

the json result is

{
    "aaa": {
        "bbb": null
    }
}

but, when I convert the json result to xml

String xml = U.jsonToXml(json);

the xml result is

<aaa>
    <bbb null="true"/>
</aaa>

But this is not what i want

$.where if Tuple<String, T> used private Field have Exception

private static final class WherePredicate<E, T> implements Predicate<E> {
    .....
    @Override
    public Boolean apply(final E elem) {
        for (Tuple<String, T> prop : properties) {
            try {
                if (!elem.getClass().getField(prop.fst()).get(elem)
                        .equals(prop.snd())) {
                    return false;
                }
            } catch (Exception ex) {
                ex.getMessage();
            }

The elem.getClass().getField(prop.fst()) can't get private Field .

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.