{"id":517,"date":"2021-06-10T04:15:36","date_gmt":"2021-06-10T04:15:36","guid":{"rendered":"http:\/\/emacslisp.com\/?p=517"},"modified":"2021-06-10T04:16:11","modified_gmt":"2021-06-10T04:16:11","slug":"java-spring-mergeable","status":"publish","type":"post","link":"http:\/\/emacslisp.com\/?p=517","title":{"rendered":"java &#8211; Spring Mergeable"},"content":{"rendered":"<p>There are 4 type of Mergeable Object in Spring<\/p>\n<p>ManagedList<br \/>\nManagedProperties<br \/>\nManagedMap<br \/>\nManagedSet<\/p>\n<p>Take ManagedList as example<\/p>\n<p>if mergeEnabled is set to be false, merge will stop<br \/>\nif parent is null, return itself.<br \/>\nand finally it will add parent firstly and then add children.<\/p>\n<pre lang=\"java\" line=\"1\">\r\n\t@Override\r\n\t@SuppressWarnings(\"unchecked\")\r\n\tpublic List<E> merge(@Nullable Object parent)\r\n\t{\r\n\t\tif (!this.mergeEnabled) {\r\n\t\t\tthrow new IllegalStateException(\"Not allowed to merge when the 'mergeEnabled' property is set to 'false'\");\r\n\t\t}\r\n\t\tif (parent == null) {\r\n\t\t\treturn this;\r\n\t\t}\r\n\t\tif (!(parent instanceof List)) {\r\n\t\t\tthrow new IllegalArgumentException(\"Cannot merge with object of type [\" + parent.getClass() + \"]\");\r\n\t\t}\r\n\t\tList<E> merged = new ManagedList<>();\r\n\t\tmerged.addAll((List<E>) parent);\r\n\t\tmerged.addAll(this);\r\n\t\treturn merged;\r\n\t}\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>There are 4 type of Mergeable Object in Spring ManagedList ManagedProperties ManagedMap ManagedSet Take ManagedList as example if mergeEnabled is set to be false, merge will stop if parent is null, return itself. and finally it will add parent firstly and then add children. @Override @SuppressWarnings(&#8220;unchecked&#8221;) public List merge(@Nullable Object parent) { if (!this.mergeEnabled) { [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[14],"tags":[],"class_list":["post-517","post","type-post","status-publish","format-standard","hentry","category-java"],"_links":{"self":[{"href":"http:\/\/emacslisp.com\/index.php?rest_route=\/wp\/v2\/posts\/517","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/emacslisp.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/emacslisp.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/emacslisp.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/emacslisp.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=517"}],"version-history":[{"count":1,"href":"http:\/\/emacslisp.com\/index.php?rest_route=\/wp\/v2\/posts\/517\/revisions"}],"predecessor-version":[{"id":518,"href":"http:\/\/emacslisp.com\/index.php?rest_route=\/wp\/v2\/posts\/517\/revisions\/518"}],"wp:attachment":[{"href":"http:\/\/emacslisp.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=517"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/emacslisp.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=517"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/emacslisp.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=517"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}