/** * OpenSpotLight - Open Source IT Governance Platform * * Copyright (c) 2009, CARAVELATECH CONSULTORIA E TECNOLOGIA EM INFORMATICA LTDA * or third-party contributors as indicated by the @author tags or express * copyright attribution statements applied by the authors. All third-party * contributions are distributed under license by CARAVELATECH CONSULTORIA E * TECNOLOGIA EM INFORMATICA LTDA. * * This copyrighted material is made available to anyone wishing to use, modify, * copy, or redistribute it subject to the terms and conditions of the GNU * Lesser General Public License, as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * * See the GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this distribution; if not, write to: * Free Software Foundation, Inc. * 51 Franklin Street, Fifth Floor * Boston, MA 02110-1301 USA * *********************************************************************** * OpenSpotLight - Plataforma de Governança de TI de Código Aberto * * Direitos Autorais Reservados (c) 2009, CARAVELATECH CONSULTORIA E TECNOLOGIA * EM INFORMATICA LTDA ou como contribuidores terceiros indicados pela etiqueta * @author ou por expressa atribuição de direito autoral declarada e atribuída pelo autor. * Todas as contribuições de terceiros estão distribuídas sob licença da * CARAVELATECH CONSULTORIA E TECNOLOGIA EM INFORMATICA LTDA. * * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo sob os * termos da Licença Pública Geral Menor do GNU conforme publicada pela Free Software * Foundation. * * Este programa é distribuído na expectativa de que seja útil, porém, SEM NENHUMA * GARANTIA; nem mesmo a garantia implícita de COMERCIABILIDADE OU ADEQUAÇÃO A UMA * FINALIDADE ESPECÍFICA. Consulte a Licença Pública Geral Menor do GNU para mais detalhes. * * Você deve ter recebido uma cópia da Licença Pública Geral Menor do GNU junto com este * programa; se não, escreva para: * Free Software Foundation, Inc. * 51 Franklin Street, Fifth Floor * Boston, MA 02110-1301 USA */ package org.openspotlight.graph.query; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.isOneOf; import static org.hamcrest.Matchers.not; import java.lang.reflect.Method; import java.text.Collator; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Scanner; import java.util.TreeMap; import java.util.concurrent.Callable; import org.junit.Test; import org.openspotlight.graph.Node; import org.openspotlight.graph.manipulation.GraphReader; import org.openspotlight.graph.query.Query.SortMode; import org.openspotlight.graph.test.domain.link.JavaInterfaceHierarchy; import org.openspotlight.graph.test.domain.link.PackageContainsType; import org.openspotlight.graph.test.domain.link.TypeContainsMethod; import org.openspotlight.graph.test.domain.node.JavaClass; import org.openspotlight.graph.test.domain.node.JavaInnerInterface; import org.openspotlight.graph.test.domain.node.JavaInterface; import org.openspotlight.graph.test.domain.node.JavaPackage; import org.openspotlight.graph.test.domain.node.JavaType; import org.openspotlight.graph.test.domain.node.JavaTypeMethod; /** * The Class SLGraphQueryTest. * * @author Vitor Hugo Chagas */ public class SLGraphQueryTest extends AbstractGeneralQueryTest { /** * Instantiates a new sL graph query test. * * @param sortMode the sort mode * @param printInfo the print info */ public SLGraphQueryTest(final boolean printInfo) throws Exception { this.printInfo = printInfo; super.populateGraph(); } /** * The main method. * * @param args the arguments */ public static void main(final String[] args) throws Exception { AbstractGeneralQueryTest test = null; try { int count = 0; final Map<Integer, Method> methodMap = new TreeMap<Integer, Method>(); final Method[] methods = SLGraphQueryTest.class .getDeclaredMethods(); for (final Method method: methods) { if (method.getName().startsWith("test") && method.getAnnotation(Test.class) != null) { methodMap.put(++count, method); } } test = new SLGraphQueryTest(true); int option = 0; final Scanner in = new Scanner(System.in); do { System.out.println("Menu:"); System.out.println("0: exit"); for (final Entry<Integer, Method> entry: methodMap.entrySet()) { System.out.println(entry.getKey() + ": " + entry.getValue().getName()); } System.out.println("Enter any option: "); option = in.nextInt(); if (option > 0 && option <= methodMap.size()) { final Method method = methodMap.get(option); method.invoke(test, new Object[] {}); } } while (option != 0); System.out.println("bye!"); } finally { AbstractGeneralQueryTest.finish(); } } @Override protected Callable<Void> createShutdownHandler() { throw new UnsupportedOperationException(); } @Override protected Callable<Void> createStartUpHandler() { throw new UnsupportedOperationException(); } @Override protected GraphReader graphReader() { throw new UnsupportedOperationException(); } @Test public void testDifferentQueryIds() throws Exception { final QueryApi initQuery = session.createQueryApi(); initQuery.select().allTypes().onWhere().selectEnd().where() .type(JavaInterface.class.getName()).each().property("caption") .contains().value("\u00E7ollecTION").typeEnd().whereEnd() .collator(Collator.PRIMARY); final QueryResult initialData = initQuery.execute(sortMode, printInfo); final QueryApi query = session.createQueryApi(); query.select().allTypes().byLink(TypeContainsMethod.class.getName()) .b().selectEnd(); final QueryResult result = query.execute(new String[] {initialData .getNodes().get(0).getId()}, sortMode, printInfo); final QueryApi query2 = session.createQueryApi(); query2.select().allTypes().byLink(PackageContainsType.class.getName()) .b().selectEnd(); final QueryResult result2 = query2.execute(new String[] {initialData .getNodes().get(0).getId()}, sortMode, printInfo); assertThat(result.getQueryId(), is(not(result2.getQueryId()))); } @Test public void testMultipleEnclosedBrackets() throws Exception { final QueryApi query = session.createQueryApi(); query.select().type(JavaType.class.getName()).subTypes().selectEnd() .where().type(JavaType.class.getName()).subTypes().each() .property("caption").startsWith().value("java.util").and() .openBracket().each().property("caption").contains() .value("Stack").or().openBracket().each().property("caption") .contains().value("Currency").closeBracket().closeBracket() .typeEnd().whereEnd(); final QueryResult result = query.execute(SortMode.SORTED, true); final List<Node> nodes = result.getNodes(); final NodeWrapper[] wrappers = wrapNodes(nodes); new AssertResult() { public void execute() { assertThat(wrappers.length, is(2)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Currency"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Stack"), isOneOf(wrappers)); } }.execute(); printResult(nodes); } /** * Test not conditional operator. */ @Test public void testNotConditionalOperator() throws Exception { final QueryApi query = session.createQueryApi(); query.select().allTypes().onWhere().selectEnd() .where().type(JavaType.class.getName()).subTypes().each() .property("caption").contains().value("Set").and().not() .openBracket().each().property("caption").contains() .value("Hash").or().each().property("caption").contains() .value("Bit").closeBracket().typeEnd().whereEnd(); final QueryResult result = query.execute(sortMode, printInfo); final List<Node> nodes = result.getNodes(); final NodeWrapper[] wrappers = wrapNodes(nodes); new AssertResult() { public void execute() { assertThat(wrappers.length >= 4, is(true)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.TreeSet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Set"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.AbstractSet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.SortedSet"), isOneOf(wrappers)); } }.execute(); printResult(nodes); } /** * Test not relational operator. */ @Test public void testNotRelationalOperator() throws Exception { final QueryApi query = session.createQueryApi(); query.select().allTypes().onWhere().selectEnd() .where().type(JavaInterface.class.getName()).each().property("caption") .not().contains().value("Set").typeEnd().whereEnd(); final QueryResult result = query.execute(sortMode, printInfo); final List<Node> nodes = result.getNodes(); final NodeWrapper[] wrappers = wrapNodes(nodes); new AssertResult() { public void execute() { assertThat(wrappers.length >= 17, is(true)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.lang", "java.lang.Cloneable"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.lang.Iterable"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Map"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Iterator"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Collection"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.SortedMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.ListIterator"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.lang", "java.lang.Comparable"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.EventListener"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.RandomAccess"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Enumeration"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Comparator"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Queue"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.io", "java.io.Serializable"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.List"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Observer"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.lang", "java.lang.Runnable"), isOneOf(wrappers)); } }.execute(); printResult(nodes); } /** * Test select types that contains set or list. */ @Test public void testSearchAll() { final QueryApi query = session.createQueryApi(); query.select().type(Node.class.getName()).subTypes().selectEnd() .where().type(Node.class.getName()).subTypes().each() .property("caption").contains().value("Set").typeEnd() .whereEnd().collator(Collator.PRIMARY); final QueryResult result = query.execute(sortMode, printInfo); final List<Node> nodes = result.getNodes(); final NodeWrapper[] wrappers = wrapNodes(nodes); new AssertResult() { public void execute() { assertThat(wrappers.length >= 99, is(true)); } }.execute(); printResult(nodes); } /** * Test select all date methods. */ @Test public void testSelectAllDateMethods() throws Exception { final QueryApi query = session.createQueryApi(); query.select().type(JavaType.class.getName()).subTypes().selectEnd() .where().type(JavaType.class.getName()).subTypes().each() .property("caption").equalsTo().value("java.util.Date") .typeEnd().whereEnd() .select().type(JavaTypeMethod.class.getName()).comma() .byLink(TypeContainsMethod.class.getName()).b().selectEnd(); final QueryResult result = query.execute(sortMode, printInfo); final List<Node> nodes = result.getNodes(); printResult(nodes); } /** * Test select all java classes. */ @Test public void testSelectAllJavaClasses() { final QueryApi query = session.createQueryApi(); query.select().type(JavaClass.class.getName()).selectEnd(); final QueryResult result = query.execute(sortMode, printInfo); final List<Node> nodes = result.getNodes(); final NodeWrapper[] wrappers = wrapNodes(nodes); new AssertResult() { public void execute() { assertThat(wrappers.length, is(45)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Observable"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.LinkedList"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.AbstractSequentialList"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.TimerTask"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Calendar"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.HashMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.IdentityHashMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Timer"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.security", "java.lang.Object"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Currency"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Stack"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Random"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.PropertyPermission"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.TimeZone"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Vector"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.AbstractList"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.security.BasicPermission"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.security", "java.security.Permission"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Date"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.AbstractMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.EventListenerProxy"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.ArrayList"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.TreeMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.StringTokenizer"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.LinkedHashSet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.WeakHashMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.EventObject"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.GregorianCalendar"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.HashSet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Hashtable"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.LinkedHashMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Arrays"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Dictionary"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.SimpleTimeZone"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.BitSet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.lang.Object"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Collections"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Locale"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.PropertyResourceBundle"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.TreeSet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.ListResourceBundle"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.AbstractCollection"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.ResourceBundle"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.AbstractSet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Properties"), isOneOf(wrappers)); } }.execute(); printResult(nodes); } /** * Test select all java interfaces. */ @Test public void testSelectAllJavaInterfaces() { final QueryApi query = session.createQueryApi(); query.select().type(JavaInterface.class.getName()).selectEnd(); final QueryResult result = query.execute(sortMode, printInfo); final List<Node> nodes = result.getNodes(); final NodeWrapper[] wrappers = wrapNodes(nodes); new AssertResult() { public void execute() { assertThat(wrappers.length >= 19, is(true)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.lang", "java.lang.Cloneable"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.lang.Iterable"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Map"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Set"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Iterator"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Collection"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.SortedMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.ListIterator"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.lang", "java.lang.Comparable"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.EventListener"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.RandomAccess"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Enumeration"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Comparator"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Queue"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.io", "java.io.Serializable"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.List"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Observer"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.lang", "java.lang.Runnable"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.SortedSet"), isOneOf(wrappers)); } }.execute(); printResult(nodes); } /** * Test select all java types. */ @Test public void testSelectAllJavaTypes() { final QueryApi query = session.createQueryApi(); query.select().type(JavaType.class.getName()).subTypes().selectEnd(); final QueryResult result = query.execute(sortMode, printInfo); final List<Node> nodes = result.getNodes(); final NodeWrapper[] wrappers = wrapNodes(nodes); new AssertResult() { public void execute() { assertThat(wrappers.length >= 65, is(true)); assertThat(new NodeWrapper(JavaInnerInterface.class.getName(), "java.util", java.util.Map.Entry.class.getName()), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Observable"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.lang", "java.lang.Cloneable"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Map"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.AbstractSequentialList"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.TimerTask"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.security", "java.lang.Object"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Currency"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.ListIterator"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Random"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.PropertyPermission"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Stack"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.TimeZone"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.AbstractList"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.security.BasicPermission"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Observer"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.EventListenerProxy"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.ArrayList"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.lang.Iterable"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Set"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.WeakHashMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Hashtable"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.HashSet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.SimpleTimeZone"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.BitSet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.TreeSet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.RandomAccess"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Enumeration"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.List"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.ResourceBundle"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Properties"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.LinkedList"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.IdentityHashMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Calendar"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.HashMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Iterator"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Collection"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Timer"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.EventListener"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.lang", "java.lang.Comparable"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Vector"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Queue"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Date"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.security", "java.security.Permission"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.io", "java.io.Serializable"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.AbstractMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.lang", "java.lang.Runnable"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.TreeMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.StringTokenizer"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.LinkedHashSet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.EventObject"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.GregorianCalendar"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.LinkedHashMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Dictionary"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Arrays"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.SortedMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.lang.Object"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Collections"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Locale"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.PropertyResourceBundle"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Comparator"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.ListResourceBundle"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.AbstractCollection"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.AbstractSet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.SortedSet"), isOneOf(wrappers)); } }.execute(); printResult(nodes); } /** * Test select all packages. */ @Test public void testSelectAllPackages() { final QueryApi query = session.createQueryApi(); query.select().type(JavaPackage.class.getName()).selectEnd(); final QueryResult result = query.execute(sortMode, true); final List<Node> nodes = result.getNodes(); final NodeWrapper[] wrappers = wrapNodes(nodes); new AssertResult() { public void execute() { assertThat(new NodeWrapper(JavaPackage.class.getName(), "queryTest", "java.security"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaPackage.class.getName(), "queryTest", "java.io"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaPackage.class.getName(), "queryTest", "java.util"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaPackage.class.getName(), "queryTest", "java.lang"), isOneOf(wrappers)); } }.execute(); final QueryApi nquery = session.createQueryApi(); nquery.select().type(JavaPackage.class.getName()).selectEnd(); nquery.execute(sortMode, true); printResult(nodes); } /** * Test select all types. */ @Test public void testSelectAllTypes() { final QueryApi query = session.createQueryApi(); query.select().allTypes().selectEnd() .where().type(JavaType.class.getName()).subTypes().each() .property("caption").contains().value("Set").typeEnd() .type(JavaTypeMethod.class.getName()).each() .property("caption").contains().value("Set").typeEnd() .whereEnd(); final QueryResult result = query.execute(sortMode, printInfo); final List<Node> nodes = result.getNodes(); // final NodeWrapper[] wrappers = wrapNodes(nodes); // printAsserts(wrappers); new AssertResult() { public void execute() {} }.execute(); printResult(nodes); } /** * Test select all types on where. */ @Test public void testSelectAllTypesOnWhere() { final QueryApi query = session.createQueryApi(); query.select().allTypes().onWhere().selectEnd() .where().type(JavaInterface.class.getName()).each().property("caption") .contains().value("Set").typeEnd() .type(JavaTypeMethod.class.getName()).each() .property("caption").contains().value("Set").typeEnd() .whereEnd(); final QueryResult result = query.execute(sortMode, printInfo); final List<Node> nodes = result.getNodes(); final NodeWrapper[] wrappers = wrapNodes(nodes); new AssertResult() { public void execute() { assertThat(wrappers.length >= 37, is(true)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Calendar", "isExternallySet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.AbstractMap", "keySet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Calendar", "getSetStateFields"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collections", "checkedSortedSet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.WeakHashMap", "entrySet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.SortedSet", "headSet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collections", "synchronizedSortedSet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collections", "unmodifiableSet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.TreeMap", "readTreeSet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Map", "keySet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Hashtable", "entrySet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collections", "synchronizedSet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.HashMap", "keySet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.IdentityHashMap", "keySet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Calendar", "isFieldSet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Calendar", "isSet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.AbstractMap", "entrySet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.TreeMap", "keySet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Set"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.SortedSet", "subSet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.SortedSet", "tailSet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.IdentityHashMap", "entrySet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.HashMap", "entrySet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Calendar", "internalSet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collections", "checkedSet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.TreeSet", "headSet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.BitSet", "nextSetBit"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Map", "entrySet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.WeakHashMap", "keySet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Hashtable", "keySet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.TreeMap", "entrySet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.TreeSet", "tailSet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.TreeSet", "subSet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collections", "unmodifiableSortedSet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collections", "emptySet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.TreeMap", "addAllForTreeSet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.SortedSet"), isOneOf(wrappers)); } }.execute(); printResult(nodes); } @Test public void testSelectByCollatorDescriptionPrimary() { final QueryApi query = session.createQueryApi(); query.select().allTypes().onWhere().selectEnd().where() .type(JavaInterface.class.getName()).each().property("caption") .contains().value("\u00E7ollecTION").typeEnd().whereEnd() .collator(Collator.PRIMARY); final QueryResult result = query.execute(sortMode, printInfo); final List<Node> nodes = result.getNodes(); final NodeWrapper[] wrappers = wrapNodes(nodes); assertThat(wrappers.length, is(1)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Collection"), is(wrappers[0])); printResult(nodes); } @Test public void testSelectByCollatorDescriptionSecondary() { final QueryApi query = session.createQueryApi(); query.select().allTypes().onWhere().selectEnd().where() .type(JavaInterface.class.getName()).each().property("caption") .contains().value("CollecTION").typeEnd().whereEnd() .collator(Collator.SECONDARY); final QueryResult result = query.execute(sortMode, printInfo); final List<Node> nodes = result.getNodes(); final NodeWrapper[] wrappers = wrapNodes(nodes); assertThat(wrappers.length, is(1)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Collection"), is(wrappers[0])); printResult(nodes); } @Test public void testSelectByCollatorDescriptionTertiary() { final QueryApi query = session.createQueryApi(); query.select().allTypes().onWhere().selectEnd().where() .type(JavaInterface.class.getName()).each().property("caption") .contains().value("\u00C7ollection").typeEnd().whereEnd() .collator(Collator.TERTIARY); final QueryResult result = query.execute(sortMode, printInfo); final List<Node> nodes = result.getNodes(); final NodeWrapper[] wrappers = wrapNodes(nodes); assertThat(wrappers.length, is(1)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Collection"), is(wrappers[0])); printResult(nodes); } /** * Test select collator primary change accent. */ @Test public void testSelectByCollatorKeyPrimaryChangeAccent() { final QueryApi query = session.createQueryApi(); query.select().allTypes().onWhere().selectEnd().where() .type(JavaInterface.class.getName()).each().property("caption") .equalsTo().value("java.util.\u00C7ollection").typeEnd() .whereEnd().collator(Collator.PRIMARY); final QueryResult result = query.execute(sortMode, printInfo); final List<Node> nodes = result.getNodes(); final NodeWrapper[] wrappers = wrapNodes(nodes); assertThat(wrappers.length, is(1)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Collection"), is(wrappers[0])); printResult(nodes); } @Test public void testSelectByCollatorKeyPrimaryChangeAccentAndCase() { final QueryApi query = session.createQueryApi(); query.select().allTypes().onWhere().selectEnd().where() .type(JavaInterface.class.getName()).each().property("caption") .equalsTo().value("java.util.\u00C7oll\u00E9cTION").typeEnd() .whereEnd().collator(Collator.PRIMARY); final QueryResult result = query.execute(sortMode, printInfo); final List<Node> nodes = result.getNodes(); final NodeWrapper[] wrappers = wrapNodes(nodes); assertThat(wrappers.length, is(1)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Collection"), is(wrappers[0])); printResult(nodes); } @Test public void testSelectByCollatorKeyPrimaryChangeCase() { final QueryApi query = session.createQueryApi(); query.select().allTypes().onWhere().selectEnd().where() .type(JavaInterface.class.getName()).each().property("caption") .equalsTo().value("java.util.CollecTION").typeEnd().whereEnd() .collator(Collator.PRIMARY); final QueryResult result = query.execute(sortMode, printInfo); final List<Node> nodes = result.getNodes(); final NodeWrapper[] wrappers = wrapNodes(nodes); assertThat(wrappers.length, is(1)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Collection"), is(wrappers[0])); printResult(nodes); } /** * Test select collator primary change accent. */ @Test public void testSelectByCollatorKeySecondaryChangeAccent() { final QueryApi query = session.createQueryApi(); query.select().allTypes().onWhere().selectEnd().where() .type(JavaInterface.class.getName()).each().property("caption") .equalsTo().value("java.util.Çollection").typeEnd().whereEnd() .collator(Collator.SECONDARY); final QueryResult result = query.execute(sortMode, printInfo); final List<Node> nodes = result.getNodes(); final NodeWrapper[] wrappers = wrapNodes(nodes); assertThat(wrappers.length, is(0)); printResult(nodes); } @Test public void testSelectByCollatorKeySecondaryChangeAccentAndCase() { final QueryApi query = session.createQueryApi(); query.select().allTypes().onWhere().selectEnd().where() .type(JavaInterface.class.getName()).each().property("caption") .equalsTo().value("java.util.ÇollécTION").typeEnd() .whereEnd().collator(Collator.SECONDARY); final QueryResult result = query.execute(sortMode, printInfo); final List<Node> nodes = result.getNodes(); final NodeWrapper[] wrappers = wrapNodes(nodes); assertThat(wrappers.length, is(0)); printResult(nodes); } @Test public void testSelectByCollatorKeySecondaryChangeCase() { final QueryApi query = session.createQueryApi(); query.select().allTypes().onWhere().selectEnd().where() .type(JavaInterface.class.getName()).each().property("caption") .equalsTo().value("java.util.CollecTION").typeEnd().whereEnd() .collator(Collator.SECONDARY); final QueryResult result = query.execute(sortMode, printInfo); final List<Node> nodes = result.getNodes(); final NodeWrapper[] wrappers = wrapNodes(nodes); assertThat(wrappers.length, is(1)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Collection"), is(wrappers[0])); printResult(nodes); } @Test public void testSelectByCollatorKeyTertiaryChangeAccent() { final QueryApi query = session.createQueryApi(); query.select().allTypes().onWhere().selectEnd().where() .type(JavaInterface.class.getName()).each().property("caption") .equalsTo().value("java.util.Çollection").typeEnd().whereEnd() .collator(Collator.TERTIARY); final QueryResult result = query.execute(sortMode, printInfo); final List<Node> nodes = result.getNodes(); final NodeWrapper[] wrappers = wrapNodes(nodes); assertThat(wrappers.length, is(0)); printResult(nodes); } @Test public void testSelectByCollatorKeyTertiaryChangeAccentAndCase() { final QueryApi query = session.createQueryApi(); query.select().allTypes().onWhere().selectEnd().where() .type(JavaInterface.class.getName()).each().property("caption") .equalsTo().value("java.util.ÇollécTION").typeEnd() .whereEnd().collator(Collator.TERTIARY); final QueryResult result = query.execute(sortMode, printInfo); final List<Node> nodes = result.getNodes(); final NodeWrapper[] wrappers = wrapNodes(nodes); assertThat(wrappers.length, is(0)); printResult(nodes); } @Test public void testSelectByCollatorKeyTertiaryChangeCase() { final QueryApi query = session.createQueryApi(); query.select().allTypes().onWhere().selectEnd().where() .type(JavaInterface.class.getName()).each().property("caption") .equalsTo().value("java.util.CollecTION").typeEnd().whereEnd() .collator(Collator.TERTIARY); final QueryResult result = query.execute(sortMode, printInfo); final List<Node> nodes = result.getNodes(); final NodeWrapper[] wrappers = wrapNodes(nodes); assertThat(wrappers.length, is(0)); printResult(nodes); } /** * Test select by link count. */ @Test public void testSelectByLinkCount() { final QueryApi query = session.createQueryApi(); query.select().allTypes().onWhere().selectEnd().where() .type(JavaType.class.getName()).subTypes().each() .property("caption").contains().value("Set").or().each() .property("caption").contains().value("List").or().each() .property("caption").contains().value("Map").typeEnd() .whereEnd() .select().allTypes().selectEnd().where() .type(JavaType.class.getName()).subTypes().each() .property("caption").not().contains().value("Sorted").and() .each().link(TypeContainsMethod.class.getName()).a().count() .greaterThan().value(3).and().each() .link(TypeContainsMethod.class.getName()).a().count() .lesserOrEqualThan().value(12).typeEnd().whereEnd(); final QueryResult result = query.execute(sortMode, printInfo); final List<Node> nodes = result.getNodes(); final NodeWrapper[] wrappers = wrapNodes(nodes); new AssertResult() { public void execute() { assertThat(wrappers.length, is(4)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.AbstractSequentialList"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.HashSet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.ListResourceBundle"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.ListIterator"), isOneOf(wrappers)); } }.execute(); printResult(nodes); } /** * Test select by link with any side. */ @Test public void testSelectByLinkWithAnySide() { final QueryApi query = session.createQueryApi(); query.select().type(JavaInterface.class.getName()).comma() .type(JavaTypeMethod.class.getName()).selectEnd() .where().type(JavaTypeMethod.class.getName()).each() .property("caption").startsWith().value("get").typeEnd() .whereEnd() .select().type(JavaInterface.class.getName()).comma() .type(JavaTypeMethod.class.getName()).subTypes().comma() .byLink(TypeContainsMethod.class.getName()).any().selectEnd(); final QueryResult result = query.execute(sortMode, printInfo); final List<Node> nodes = result.getNodes(); final NodeWrapper[] wrappers = wrapNodes(nodes); new AssertResult() { public void execute() { assertThat(wrappers.length >= 122, is(true)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.List", "indexOf"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Map"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Observer", "update"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Currency"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.List", "lastIndexOf"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collection", "retainAll"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Comparator", "equals"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.List", "subList"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.ListIterator", "hasNext"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.ListIterator", "remove"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collection", "isEmpty"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.List", "add"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Hashtable"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.SimpleTimeZone"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.ListIterator", "previous"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.List", "get"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.BitSet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.List", "toArray"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.ListIterator", "set"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collection", "add"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Set", "remove"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.List", "contains"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.SortedMap", "firstKey"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.SortedMap", "comparator"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Map", "clear"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Properties"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Map", "size"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.ListIterator", "previousIndex"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collection", "iterator"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collection", "size"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.HashMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.List", "addAll"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Map", "get"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.ListIterator", "add"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.List", "equals"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.SortedSet", "headSet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Map", "isEmpty"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.SortedMap", "lastKey"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Set", "contains"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.SortedSet", "comparator"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Set", "isEmpty"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Vector"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.List", "set"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collection", "addAll"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Date"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.AbstractMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.List", "removeAll"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.TreeMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.List", "clear"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.EventObject"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.SortedSet", "subSet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.List", "iterator"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Dictionary"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collection", "hashCode"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Set", "removeAll"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collection", "clear"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Map", "put"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collection", "remove"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.ListIterator", "nextIndex"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Map", "values"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.AbstractSequentialList"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.SortedMap", "tailMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.SortedSet", "first"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Iterator", "remove"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Map", "hashCode"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Set", "retainAll"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.PropertyPermission"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Enumeration", "hasMoreElements"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.TimeZone"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.AbstractList"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Iterator", "hasNext"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Map", "remove"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.EventListenerProxy"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.ListIterator", "next"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Set", "addAll"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.ArrayList"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Set", "containsAll"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.List", "size"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.WeakHashMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collection", "containsAll"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Set", "hashCode"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.SortedMap", "subMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Map", "containsValue"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Set", "iterator"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Comparator", "compare"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Map", "entrySet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Set", "clear"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.ListIterator", "hasPrevious"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collection", "contains"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.SortedMap", "headMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.List"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.ResourceBundle"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Map", "containsKey"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.LinkedList"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.List", "listIterator"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.SortedSet", "last"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.List", "retainAll"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Calendar"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.IdentityHashMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Iterator", "next"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collection", "removeAll"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.List", "isEmpty"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.List", "containsAll"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Map", "equals"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Map", "keySet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.List", "hashCode"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Enumeration", "nextElement"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.List", "remove"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collection", "equals"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collection", "toArray"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.GregorianCalendar"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Set", "add"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Set", "toArray"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.LinkedHashMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.SortedSet", "tailSet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Set", "size"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Map", "putAll"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Collections"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Locale"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.PropertyResourceBundle"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.ListResourceBundle"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Set", "equals"), isOneOf(wrappers)); } }.execute(); printResult(nodes); } /** * Test select by link with any side with keep result. */ @Test public void testSelectByLinkWithAnySideWithKeepResult() { final QueryApi query = session.createQueryApi(); query.select().type(JavaInterface.class.getName()).comma() .type(JavaTypeMethod.class.getName()).selectEnd() .where().type(JavaTypeMethod.class.getName()).each() .property("caption").startsWith().value("get").typeEnd() .whereEnd() .select().type(JavaInterface.class.getName()).comma() .type(JavaTypeMethod.class.getName()).subTypes().comma() .byLink(TypeContainsMethod.class.getName()).any().selectEnd(); final QueryResult result = query.execute(sortMode, printInfo); final List<Node> nodes = result.getNodes(); final NodeWrapper[] wrappers = wrapNodes(nodes); new AssertResult() { public void execute() { assertThat(wrappers.length >= 122, is(true)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.List", "indexOf"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Map"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Observer", "update"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Currency"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.List", "lastIndexOf"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collection", "retainAll"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Comparator", "equals"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.List", "subList"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.ListIterator", "hasNext"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.ListIterator", "remove"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collection", "isEmpty"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.List", "add"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Hashtable"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.SimpleTimeZone"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.ListIterator", "previous"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.List", "get"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.BitSet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.List", "toArray"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.ListIterator", "set"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collection", "add"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Set", "remove"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.List", "contains"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.SortedMap", "firstKey"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.SortedMap", "comparator"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Map", "clear"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Properties"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Map", "size"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.ListIterator", "previousIndex"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collection", "iterator"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collection", "size"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.HashMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.List", "addAll"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Map", "get"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.ListIterator", "add"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.List", "equals"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.SortedSet", "headSet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Map", "isEmpty"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.SortedMap", "lastKey"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Set", "contains"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.SortedSet", "comparator"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Set", "isEmpty"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Vector"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.List", "set"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collection", "addAll"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Date"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.AbstractMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.List", "removeAll"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.TreeMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.List", "clear"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.EventObject"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.SortedSet", "subSet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.List", "iterator"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Dictionary"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collection", "hashCode"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Set", "removeAll"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collection", "clear"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Map", "put"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collection", "remove"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.ListIterator", "nextIndex"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Map", "values"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.AbstractSequentialList"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.SortedMap", "tailMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.SortedSet", "first"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Iterator", "remove"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Map", "hashCode"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Set", "retainAll"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.PropertyPermission"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Enumeration", "hasMoreElements"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.TimeZone"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.AbstractList"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Iterator", "hasNext"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Map", "remove"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.EventListenerProxy"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.ListIterator", "next"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Set", "addAll"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.ArrayList"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Set", "containsAll"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.List", "size"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.WeakHashMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collection", "containsAll"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Set", "hashCode"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.SortedMap", "subMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Map", "containsValue"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Set", "iterator"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Comparator", "compare"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Map", "entrySet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Set", "clear"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.ListIterator", "hasPrevious"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collection", "contains"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.SortedMap", "headMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.List"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.ResourceBundle"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Map", "containsKey"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.LinkedList"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.List", "listIterator"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.SortedSet", "last"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.List", "retainAll"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Calendar"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.IdentityHashMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Iterator", "next"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collection", "removeAll"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.List", "isEmpty"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.List", "containsAll"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Map", "equals"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Map", "keySet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.List", "hashCode"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Enumeration", "nextElement"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.List", "remove"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collection", "equals"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collection", "toArray"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.GregorianCalendar"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Set", "add"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Set", "toArray"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.LinkedHashMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.SortedSet", "tailSet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Set", "size"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Map", "putAll"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Collections"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Locale"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.PropertyResourceBundle"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.ListResourceBundle"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Set", "equals"), isOneOf(wrappers)); } }.execute(); printResult(nodes); } /** * Test select collection methods. */ @Test public void testSelectCollectionMethods() { final QueryApi query = session.createQueryApi(); query.select().type(JavaInterface.class.getName()).selectEnd() .where().type(JavaInterface.class.getName()).each().property("caption") .equalsTo().value("java.util.Collection").typeEnd().whereEnd() .select().type(JavaTypeMethod.class.getName()).comma() .byLink(TypeContainsMethod.class.getName()).b().selectEnd(); final QueryResult result = query.execute(sortMode, printInfo); final List<Node> nodes = result.getNodes(); final NodeWrapper[] wrappers = wrapNodes(nodes); new AssertResult() { public void execute() { assertThat(wrappers.length, is(14)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collection", "isEmpty"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collection", "toArray"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collection", "iterator"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collection", "size"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collection", "containsAll"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collection", "hashCode"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collection", "removeAll"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collection", "clear"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collection", "retainAll"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collection", "addAll"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collection", "add"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collection", "contains"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collection", "equals"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collection", "remove"), isOneOf(wrappers)); } }.execute(); printResult(nodes); } /** * Test select collection methods with keep result. */ @Test public void testSelectCollectionMethodsWithKeepResult() { final QueryApi query = session.createQueryApi(); query.select().type(JavaInterface.class.getName()).selectEnd() .keepResult() .where().type(JavaInterface.class.getName()).each().property("caption") .equalsTo().value("java.util.Collection").typeEnd().whereEnd() .select().type(JavaTypeMethod.class.getName()).comma() .byLink(TypeContainsMethod.class.getName()).b().selectEnd(); final QueryResult result = query.execute(sortMode, printInfo); final List<Node> nodes = result.getNodes(); final NodeWrapper[] wrappers = wrapNodes(nodes); new AssertResult() { public void execute() { assertThat(wrappers.length, is(15)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collection", "isEmpty"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collection", "toArray"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collection", "iterator"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collection", "size"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Collection"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collection", "containsAll"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collection", "hashCode"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collection", "removeAll"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collection", "clear"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collection", "retainAll"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collection", "addAll"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collection", "add"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collection", "contains"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collection", "equals"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collection", "remove"), isOneOf(wrappers)); } }.execute(); printResult(nodes); } /** * Test select date methods. */ @Test public void testSelectDateMethods() { final QueryApi query = session.createQueryApi(); query.select().allTypes().onWhere().selectEnd() .where().type(JavaClass.class.getName()).each().property("caption") .equalsTo().value("java.util.Date").typeEnd().whereEnd() .select().type(JavaTypeMethod.class.getName()).comma() .byLink(TypeContainsMethod.class.getName()).b().selectEnd(); final QueryResult result = query.execute(sortMode, printInfo); final List<Node> nodes = result.getNodes(); final NodeWrapper[] wrappers = wrapNodes(nodes); new AssertResult() { public void execute() { assertThat(wrappers.length, is(36)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "equals"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "toGMTString"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "setDate"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "setSeconds"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getSeconds"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getTimezoneOffset"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getDay"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getDate"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getMonth"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getTimeImpl"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "convertToAbbr"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "setHours"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getCalendarSystem"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getCalendarDate"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "setYear"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "after"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "toLocaleString"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "readObject"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getHours"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getTime"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "setMonth"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "UTC"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "setTime"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getJulianCalendar"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "hashCode"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getMinutes"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getMillisOf"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "before"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "setMinutes"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "writeObject"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "parse"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getYear"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "toString"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "compareTo"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "clone"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "normalize"), isOneOf(wrappers)); } }.execute(); printResult(nodes); } /** * Test select date methods with limit. */ @Test public void testSelectDateMethodsLimit() { final QueryApi query = session.createQueryApi(); query.select().allTypes().onWhere().selectEnd().keepResult() .where().type(JavaClass.class.getName()).each().property("caption") .equalsTo().value("java.util.Date").typeEnd().whereEnd() .select().type(JavaTypeMethod.class.getName()).comma() .byLink(TypeContainsMethod.class.getName()).b().selectEnd() .limit(10); final QueryResult result = query.execute(sortMode, printInfo); final List<Node> nodes = result.getNodes(); final NodeWrapper[] wrappers = wrapNodes(nodes); new AssertResult() { public void execute() { assertThat(wrappers.length, is(11)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Date"), is(wrappers[0])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "UTC"), is(wrappers[1])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "after"), is(wrappers[2])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "before"), is(wrappers[3])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "clone"), is(wrappers[4])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "compareTo"), is(wrappers[5])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "convertToAbbr"), is(wrappers[6])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "equals"), is(wrappers[7])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getCalendarDate"), is(wrappers[8])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getCalendarSystem"), is(wrappers[9])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getDate"), is(wrappers[10])); } }.execute(); printResult(nodes); } /** * Test select date methods with limit. */ @Test public void testSelectDateMethodsLimit2() { final QueryApi query = session.createQueryApi(); query.select().allTypes().onWhere().selectEnd().keepResult() .where().type(JavaClass.class.getName()).each().property("caption") .equalsTo().value("java.util.Date").typeEnd().whereEnd() .select().type(JavaTypeMethod.class.getName()).comma() .byLink(TypeContainsMethod.class.getName()).b().selectEnd() .limit(20); final QueryResult result = query.execute(sortMode, printInfo); final List<Node> nodes = result.getNodes(); final NodeWrapper[] wrappers = wrapNodes(nodes); new AssertResult() { public void execute() { assertThat(wrappers.length, is(21)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Date"), is(wrappers[0])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "UTC"), is(wrappers[1])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "after"), is(wrappers[2])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "before"), is(wrappers[3])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "clone"), is(wrappers[4])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "compareTo"), is(wrappers[5])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "convertToAbbr"), is(wrappers[6])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "equals"), is(wrappers[7])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getCalendarDate"), is(wrappers[8])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getCalendarSystem"), is(wrappers[9])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getDate"), is(wrappers[10])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getDay"), is(wrappers[11])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getHours"), is(wrappers[12])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getJulianCalendar"), is(wrappers[13])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getMillisOf"), is(wrappers[14])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getMinutes"), is(wrappers[15])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getMonth"), is(wrappers[16])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getSeconds"), is(wrappers[17])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getTime"), is(wrappers[18])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getTimeImpl"), is(wrappers[19])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getTimezoneOffset"), is(wrappers[20])); } }.execute(); printResult(nodes); } /** * Test select date methods with limit. */ @Test public void testSelectDateMethodsLimitGeneral() { final QueryApi query = session.createQueryApi(); query.select().allTypes().onWhere().selectEnd().keepResult() .where().type(JavaClass.class.getName()).each().property("caption") .equalsTo().value("java.util.Date").typeEnd().whereEnd() .select().type(JavaTypeMethod.class.getName()).comma() .byLink(TypeContainsMethod.class.getName()).b().selectEnd(); final QueryResult result = query.execute(sortMode, printInfo, 10, null); final List<Node> nodes = result.getNodes(); final NodeWrapper[] wrappers = wrapNodes(nodes); new AssertResult() { public void execute() { assertThat(wrappers.length, is(10)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Date"), is(wrappers[0])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "UTC"), is(wrappers[1])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "after"), is(wrappers[2])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "before"), is(wrappers[3])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "clone"), is(wrappers[4])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "compareTo"), is(wrappers[5])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "convertToAbbr"), is(wrappers[6])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "equals"), is(wrappers[7])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getCalendarDate"), is(wrappers[8])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getCalendarSystem"), is(wrappers[9])); } }.execute(); printResult(nodes); } /** * Test select date methods with limit. */ @Test public void testSelectDateMethodsLimitGeneral2() { final QueryApi query = session.createQueryApi(); query.select().allTypes().onWhere().selectEnd().keepResult() .where().type(JavaClass.class.getName()).each().property("caption") .equalsTo().value("java.util.Date").typeEnd().whereEnd() .select().type(JavaTypeMethod.class.getName()).comma() .byLink(TypeContainsMethod.class.getName()).b().selectEnd(); final QueryResult result = query.execute(sortMode, printInfo, 20, null); final List<Node> nodes = result.getNodes(); final NodeWrapper[] wrappers = wrapNodes(nodes); new AssertResult() { public void execute() { assertThat(wrappers.length, is(20)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Date"), is(wrappers[0])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "UTC"), is(wrappers[1])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "after"), is(wrappers[2])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "before"), is(wrappers[3])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "clone"), is(wrappers[4])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "compareTo"), is(wrappers[5])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "convertToAbbr"), is(wrappers[6])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "equals"), is(wrappers[7])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getCalendarDate"), is(wrappers[8])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getCalendarSystem"), is(wrappers[9])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getDate"), is(wrappers[10])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getDay"), is(wrappers[11])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getHours"), is(wrappers[12])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getJulianCalendar"), is(wrappers[13])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getMillisOf"), is(wrappers[14])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getMinutes"), is(wrappers[15])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getMonth"), is(wrappers[16])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getSeconds"), is(wrappers[17])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getTime"), is(wrappers[18])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getTimeImpl"), is(wrappers[19])); } }.execute(); printResult(nodes); } /** * Test select date methods with limit. */ @Test public void testSelectDateMethodsLimitGeneralOffset2() { final QueryApi query = session.createQueryApi(); query.select().allTypes().onWhere().selectEnd().keepResult() .where().type(JavaClass.class.getName()).each().property("caption") .equalsTo().value("java.util.Date").typeEnd().whereEnd() .select().type(JavaTypeMethod.class.getName()).comma() .byLink(TypeContainsMethod.class.getName()).b().selectEnd(); final QueryResult result = query.execute(sortMode, printInfo, 20, 21); final List<Node> nodes = result.getNodes(); final NodeWrapper[] wrappers = wrapNodes(nodes); new AssertResult() { public void execute() { assertThat(wrappers.length, is(17)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getTimezoneOffset"), is(wrappers[0])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getYear"), is(wrappers[1])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "hashCode"), is(wrappers[2])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "normalize"), is(wrappers[3])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "parse"), is(wrappers[4])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "readObject"), is(wrappers[5])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "setDate"), is(wrappers[6])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "setHours"), is(wrappers[7])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "setMinutes"), is(wrappers[8])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "setMonth"), is(wrappers[9])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "setSeconds"), is(wrappers[10])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "setTime"), is(wrappers[11])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "setYear"), is(wrappers[12])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "toGMTString"), is(wrappers[13])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "toLocaleString"), is(wrappers[14])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "toString"), is(wrappers[15])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "writeObject"), is(wrappers[16])); } }.execute(); printResult(nodes); } /** * Test select date methods with limit. */ @Test public void testSelectDateMethodsLimitOffset() { final QueryApi query = session.createQueryApi(); query.select().allTypes().onWhere().selectEnd().keepResult() .where().type(JavaClass.class.getName()).each().property("caption") .equalsTo().value("java.util.Date").typeEnd().whereEnd() .select().type(JavaTypeMethod.class.getName()).comma() .byLink(TypeContainsMethod.class.getName()).b().selectEnd() .limit(10, 11); final QueryResult result = query.execute(sortMode, printInfo); final List<Node> nodes = result.getNodes(); final NodeWrapper[] wrappers = wrapNodes(nodes); printResult(nodes); new AssertResult() { public void execute() { assertThat(wrappers.length, is(11)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Date"), is(wrappers[0])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getDay"), is(wrappers[1])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getHours"), is(wrappers[2])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getJulianCalendar"), is(wrappers[3])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getMillisOf"), is(wrappers[4])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getMinutes"), is(wrappers[5])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getMonth"), is(wrappers[6])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getSeconds"), is(wrappers[7])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getTime"), is(wrappers[8])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getTimeImpl"), is(wrappers[9])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getTimezoneOffset"), is(wrappers[10])); } }.execute(); } /** * Test select date methods with limit. */ @Test public void testSelectDateMethodsLimitOffset2() { final QueryApi query = session.createQueryApi(); query.select().allTypes().onWhere().selectEnd().keepResult() .where().type(JavaClass.class.getName()).each().property("caption") .equalsTo().value("java.util.Date").typeEnd().whereEnd() .select().type(JavaTypeMethod.class.getName()).comma() .byLink(TypeContainsMethod.class.getName()).b().selectEnd() .limit(20, 21); final QueryResult result = query.execute(sortMode, printInfo); final List<Node> nodes = result.getNodes(); final NodeWrapper[] wrappers = wrapNodes(nodes); new AssertResult() { public void execute() { assertThat(wrappers.length, is(17)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Date"), is(wrappers[0])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getYear"), is(wrappers[1])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "hashCode"), is(wrappers[2])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "normalize"), is(wrappers[3])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "parse"), is(wrappers[4])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "readObject"), is(wrappers[5])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "setDate"), is(wrappers[6])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "setHours"), is(wrappers[7])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "setMinutes"), is(wrappers[8])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "setMonth"), is(wrappers[9])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "setSeconds"), is(wrappers[10])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "setTime"), is(wrappers[11])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "setYear"), is(wrappers[12])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "toGMTString"), is(wrappers[13])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "toLocaleString"), is(wrappers[14])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "toString"), is(wrappers[15])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "writeObject"), is(wrappers[16])); } }.execute(); printResult(nodes); } /** * Test select date methods with limit. */ @Test public void testSelectDateMethodsLimitOffsetGeneral() { final QueryApi query = session.createQueryApi(); query.select().allTypes().onWhere().selectEnd().keepResult() .where().type(JavaClass.class.getName()).each().property("caption") .equalsTo().value("java.util.Date").typeEnd().whereEnd() .select().type(JavaTypeMethod.class.getName()).comma() .byLink(TypeContainsMethod.class.getName()).b().selectEnd(); final QueryResult result = query.execute(sortMode, printInfo, 10, 11); final List<Node> nodes = result.getNodes(); final NodeWrapper[] wrappers = wrapNodes(nodes); new AssertResult() { public void execute() { assertThat(wrappers.length, is(10)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getDate"), is(wrappers[0])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getDay"), is(wrappers[1])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getHours"), is(wrappers[2])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getJulianCalendar"), is(wrappers[3])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getMillisOf"), is(wrappers[4])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getMinutes"), is(wrappers[5])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getMonth"), is(wrappers[6])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getSeconds"), is(wrappers[7])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getTime"), is(wrappers[8])); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getTimeImpl"), is(wrappers[9])); } }.execute(); printResult(nodes); } /** * Test select date methods with tag between30 and70. */ @Test public void testSelectDateMethodsWithTagBetween30And70() { final QueryApi query = session.createQueryApi(); query.select().type(JavaType.class.getName()).subTypes().selectEnd() .where().type(JavaType.class.getName()).subTypes().each() .property("caption").equalsTo().value("java.util.Date") .typeEnd().whereEnd() .select().type(JavaTypeMethod.class.getName()).comma() .byLink(TypeContainsMethod.class.getName()).b().selectEnd() .where().linkType(TypeContainsMethod.class.getName()).each() .property("tag").greaterThan().value(30).and().each() .property("tag").lesserThan().value(70).linkTypeEnd() .whereEnd(); final QueryResult result = query.execute(sortMode, printInfo); final List<Node> nodes = result.getNodes(); new AssertResult() { public void execute() {} }.execute(); printResult(nodes); } /** * Test select date methods with tag greater than50. */ @Test public void testSelectDateMethodsWithTagGreaterThan50() { final QueryApi query = session.createQueryApi(); query.select().type(JavaType.class.getName()).subTypes().selectEnd() .where().type(JavaType.class.getName()).subTypes().each() .property("caption").equalsTo().value("java.util.Date") .typeEnd().whereEnd() .select().type(JavaTypeMethod.class.getName()).comma() .byLink(TypeContainsMethod.class.getName()).b().selectEnd() .where().linkType(TypeContainsMethod.class.getName()).each() .property("tag").greaterThan().value(50).linkTypeEnd() .whereEnd(); final QueryResult result = query.execute(sortMode, printInfo); final List<Node> nodes = result.getNodes(); new AssertResult() { public void execute() {} }.execute(); printResult(nodes); } /** * Test select date methods with tag lesser or equal to30 or greater or equal to70. */ @Test public void testSelectDateMethodsWithTagLesserOrEqualTo30OrGreaterOrEqualTo70() { final QueryApi query = session.createQueryApi(); query.select().type(JavaType.class.getName()).subTypes().selectEnd() .where().type(JavaType.class.getName()).subTypes().each() .property("caption").equalsTo().value("java.util.Date") .typeEnd().whereEnd() .select().type(JavaTypeMethod.class.getName()).comma() .byLink(TypeContainsMethod.class.getName()).b().selectEnd() .where().linkType(TypeContainsMethod.class.getName()).each() .property("tag").lesserOrEqualThan().value(30).or().each() .property("tag").greaterOrEqualThan().value(70).linkTypeEnd() .whereEnd(); final QueryResult result = query.execute(sortMode, printInfo); final List<Node> nodes = result.getNodes(); new AssertResult() { public void execute() {} }.execute(); printResult(nodes); } /** * Test select date methods with tag lesser or equal to50. */ @Test public void testSelectDateMethodsWithTagLesserOrEqualTo50() { final QueryApi query = session.createQueryApi(); query.select().type(JavaType.class.getName()).subTypes().selectEnd() .where().type(JavaType.class.getName()).subTypes().each() .property("caption").equalsTo().value("java.util.Date") .typeEnd().whereEnd() .select().type(JavaTypeMethod.class.getName()).comma() .byLink(TypeContainsMethod.class.getName()).b().selectEnd() .where().linkType(TypeContainsMethod.class.getName()).each() .property("tag").lesserOrEqualThan().value(50).linkTypeEnd() .whereEnd(); final QueryResult result = query.execute(sortMode, printInfo); final List<Node> nodes = result.getNodes(); new AssertResult() { public void execute() {} }.execute(); printResult(nodes); } /** * Test select interfaces with set and classes with map. */ @Test public void testSelectInterfacesWithSetAndClassesWithMap() { final QueryApi query = session.createQueryApi(); query.select().type(JavaType.class.getName()).subTypes().selectEnd() .where().type(JavaInterface.class.getName()).each().property("caption") .contains().value("Set").typeEnd() .type(JavaClass.class.getName()).each().property("caption") .contains().value("Map").typeEnd().whereEnd(); final QueryResult result = query.execute(sortMode, printInfo); final List<Node> nodes = result.getNodes(); final NodeWrapper[] wrappers = wrapNodes(nodes); new AssertResult() { public void execute() { assertThat(wrappers.length >= 9, is(true)); assertThat(new NodeWrapper(JavaInnerInterface.class.getName(), "java.util", java.util.Map.Entry.class.getName()), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.TreeMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Set"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.WeakHashMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.IdentityHashMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.HashMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.LinkedHashMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.AbstractMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.SortedSet"), isOneOf(wrappers)); } }.execute(); printResult(nodes); } /** * Test select interfaces with set over types from util. */ @Test public void testSelectInterfacesWithSetOverTypesFromUtil() { final QueryApi query = session.createQueryApi(); query.select().type(JavaType.class.getName()).subTypes().selectEnd() .where().type(JavaType.class.getName()).subTypes().each() .property("caption").startsWith().value("java.util").typeEnd() .whereEnd() .select().type(JavaInterface.class.getName()).selectEnd() .where().type(JavaInterface.class.getName()).each() .property("caption").contains().value("Set").typeEnd() .whereEnd(); final QueryResult result = query.execute(sortMode, printInfo); final List<Node> nodes = result.getNodes(); final NodeWrapper[] wrappers = wrapNodes(nodes); new AssertResult() { public void execute() { assertThat(wrappers.length >= 2, is(true)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Set"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.SortedSet"), isOneOf(wrappers)); } }.execute(); printResult(nodes); } /** * Test select interfaces with set over types from util with keep result. */ @Test public void testSelectInterfacesWithSetOverTypesFromUtilWithKeepResult() { final QueryApi query = session.createQueryApi(); query.select().type(JavaType.class.getName()).subTypes().selectEnd() .where().type(JavaType.class.getName()).subTypes().each() .property("caption").startsWith().value("java.util").typeEnd() .whereEnd() .keepResult() .select().type(JavaInterface.class.getName()).selectEnd() .where().type(JavaInterface.class.getName()).each() .property("caption").contains().value("Set").typeEnd() .whereEnd(); final QueryResult result = query.execute(sortMode, printInfo); final List<Node> nodes = result.getNodes(); final NodeWrapper[] wrappers = wrapNodes(nodes); new AssertResult() { public void execute() { assertThat(wrappers.length >= 56, is(true)); assertThat(new NodeWrapper(JavaInnerInterface.class.getName(), "java.util", java.util.Map.Entry.class.getName()), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Observable"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.AbstractSequentialList"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Map"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.TimerTask"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Currency"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.ListIterator"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.PropertyPermission"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Random"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Stack"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.TimeZone"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.AbstractList"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Observer"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.EventListenerProxy"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.ArrayList"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Set"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.WeakHashMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Hashtable"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.HashSet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.SimpleTimeZone"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.BitSet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.TreeSet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.RandomAccess"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Enumeration"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.ResourceBundle"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.List"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Properties"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.LinkedList"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.IdentityHashMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.HashMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Calendar"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Iterator"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Timer"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Collection"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.EventListener"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Vector"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Queue"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Date"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.AbstractMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.LinkedHashSet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.StringTokenizer"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.TreeMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.GregorianCalendar"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.EventObject"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.LinkedHashMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Arrays"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Dictionary"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.SortedMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Collections"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Locale"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.PropertyResourceBundle"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Comparator"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.ListResourceBundle"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.AbstractCollection"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.AbstractSet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.SortedSet"), isOneOf(wrappers)); } }.execute(); printResult(nodes); } /** * Test select order by ascending. */ @Test public void testSelectOrderByAscending() { final QueryApi query = session.createQueryApi(); query.select().allTypes().onWhere().selectEnd().where() .type(JavaInterface.class.getName()).each().property("caption") .contains().value("Set").typeEnd().whereEnd().orderBy() .type(JavaInterface.class.getName()).property("caption") .ascending().orderByEnd(); final QueryResult result = query.execute(sortMode, printInfo); final List<Node> nodes = result.getNodes(); final NodeWrapper[] wrappers = wrapNodes(nodes); new AssertResult() { public void execute() { assertThat(wrappers.length >= 2, is(true)); assertThat( appearsAfter(wrappers, JavaInterface.class.getName(), "java.util.Set", JavaInterface.class.getName(), "java.util.SortedSet"), is(true)); } }.execute(); printResult(nodes); } @Test public void testSelectOrderByAscendingAndDescending() { final QueryApi query = session.createQueryApi(); query.select().allTypes().onWhere().selectEnd().where() .type(JavaType.class.getName()).subTypes().each() .property("caption").contains().value("Set").typeEnd() .whereEnd().orderBy().type(JavaInterface.class.getName()) .property("caption").ascending() .type(JavaClass.class.getName()).property("caption") .descending().orderByEnd(); final QueryResult result = query.execute(sortMode, printInfo); final List<Node> nodes = result.getNodes(); final NodeWrapper[] wrappers = wrapNodes(nodes); new AssertResult() { public void execute() { assertThat(wrappers.length >= 7, is(true)); assertThat( appearsAfter(wrappers, JavaInterface.class.getName(), "java.util.Set", JavaInterface.class.getName(), "java.util.SortedSet"), is(true)); assertThat( appearsAfter(wrappers, JavaInterface.class.getName(), "java.util.SortedSet", JavaClass.class.getName(), "java.util.TreeSet"), is(true)); assertThat( appearsAfter(wrappers, JavaClass.class.getName(), "java.util.TreeSet", JavaClass.class.getName(), "java.util.LinkedHashSet"), is(true)); assertThat( appearsAfter(wrappers, JavaClass.class.getName(), "java.util.LinkedHashSet", JavaClass.class.getName(), "java.util.HashSet"), is(true)); assertThat( appearsAfter(wrappers, JavaClass.class.getName(), "java.util.HashSet", JavaClass.class.getName(), "java.util.BitSet"), is(true)); assertThat( appearsAfter(wrappers, JavaClass.class.getName(), "java.util.BitSet", JavaClass.class.getName(), "java.util.AbstractSet"), is(true)); } }.execute(); printResult(nodes); } @Test public void testSelectOrderByCrossType() { final QueryApi query = session.createQueryApi(); query.select().allTypes().onWhere().selectEnd().where() .type(JavaType.class.getName()).subTypes().each() .property("caption").contains().value("Set").typeEnd() .whereEnd().orderBy().type(JavaType.class.getName()) .property("caption").orderByEnd(); final QueryResult result = query.execute(sortMode, printInfo); final List<Node> nodes = result.getNodes(); final NodeWrapper[] wrappers = wrapNodes(nodes); new AssertResult() { public void execute() { assertThat(wrappers.length >= 7, is(true)); assertThat( appearsAfter(wrappers, JavaClass.class.getName(), "java.util.AbstractSet", JavaClass.class.getName(), "java.util.BitSet"), is(true)); assertThat( appearsAfter(wrappers, JavaClass.class.getName(), "java.util.BitSet", JavaClass.class.getName(), "java.util.HashSet"), is(true)); assertThat( appearsAfter(wrappers, JavaClass.class.getName(), "java.util.HashSet", JavaClass.class.getName(), "java.util.LinkedHashSet"), is(true)); assertThat( appearsAfter(wrappers, JavaClass.class.getName(), "java.util.LinkedHashSet", JavaInterface.class.getName(), "java.util.Set"), is(true)); assertThat( appearsAfter(wrappers, JavaInterface.class.getName(), "java.util.Set", JavaInterface.class.getName(), "java.util.SortedSet"), is(true)); assertThat( appearsAfter(wrappers, JavaInterface.class.getName(), "java.util.SortedSet", JavaClass.class.getName(), "java.util.TreeSet"), is(true)); } }.execute(); printResult(nodes); } /** * Test select order by descending. */ @Test public void testSelectOrderByDescending() { final QueryApi query = session.createQueryApi(); query.select().allTypes().onWhere().selectEnd().where() .type(JavaClass.class.getName()).each().property("caption") .contains().value("Set").typeEnd().whereEnd().orderBy() .type(JavaClass.class.getName()).property("caption") .descending().orderByEnd(); final QueryResult result = query.execute(sortMode, printInfo); final List<Node> nodes = result.getNodes(); final NodeWrapper[] wrappers = wrapNodes(nodes); new AssertResult() { public void execute() { assertThat(wrappers.length, is(5)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.TreeSet"), is(wrappers[0])); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.LinkedHashSet"), is(wrappers[1])); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.HashSet"), is(wrappers[2])); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.BitSet"), is(wrappers[3])); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.AbstractSet"), is(wrappers[4])); } }.execute(); printResult(nodes); } /** * Test select sorted set hierarchy execute3 times. */ @Test public void testSelectSortedSetHierarchyExecute3Times() { final QueryApi query = session.createQueryApi(); query.select().type(JavaInterface.class.getName()).selectEnd() .where().type(JavaInterface.class.getName()).subTypes().each() .property("caption").equalsTo().value("java.util.SortedSet") .typeEnd().whereEnd() .keepResult() .select().type(JavaInterface.class.getName()).comma() .byLink(JavaInterfaceHierarchy.class.getName()).b().selectEnd() .keepResult() .executeXTimes(3); final QueryResult result = query.execute(sortMode, printInfo); final List<Node> nodes = result.getNodes(); final NodeWrapper[] wrappers = wrapNodes(nodes); new AssertResult() { public void execute() { assertThat(wrappers.length, is(4)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.lang.Iterable"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Set"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Collection"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.SortedSet"), isOneOf(wrappers)); } }.execute(); printResult(nodes); } /** * Test select sorted set hierarchy execute x times. */ @Test public void testSelectSortedSetHierarchyExecuteXTimes() { final QueryApi query = session.createQueryApi(); query.select().type(JavaInterface.class.getName()).selectEnd() .where().type(JavaInterface.class.getName()).subTypes().each() .property("caption").equalsTo().value("java.util.SortedSet") .typeEnd().whereEnd() .keepResult() .select().type(JavaInterface.class.getName()).comma() .byLink(JavaInterfaceHierarchy.class.getName()).b().selectEnd() .executeXTimes(3); final QueryResult result = query.execute(sortMode, printInfo); final List<Node> nodes = result.getNodes(); final NodeWrapper[] wrappers = wrapNodes(nodes); new AssertResult() { public void execute() { assertThat(wrappers.length, is(4)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.lang.Iterable"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Set"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Collection"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.SortedSet"), isOneOf(wrappers)); } }.execute(); printResult(nodes); } /** * Test select sorted set hierarchy level1. */ @Test public void testSelectSortedSetHierarchyLevel1() { final QueryApi query = session.createQueryApi(); query.select().type(JavaInterface.class.getName()).selectEnd() .where().type(JavaInterface.class.getName()).subTypes().each() .property("caption").equalsTo().value("java.util.SortedSet") .typeEnd().whereEnd() .keepResult() .select().type(JavaInterface.class.getName()).comma() .byLink(JavaInterfaceHierarchy.class.getName()).b().selectEnd(); final QueryResult result = query.execute(sortMode, printInfo); final List<Node> nodes = result.getNodes(); final NodeWrapper[] wrappers = wrapNodes(nodes); new AssertResult() { public void execute() { assertThat(wrappers.length, is(2)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Set"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.SortedSet"), isOneOf(wrappers)); } }.execute(); printResult(nodes); } /** * Test select sorted set hierarchy level2. */ @Test public void testSelectSortedSetHierarchyLevel2() { final QueryApi query = session.createQueryApi(); query.select().type(JavaInterface.class.getName()).selectEnd() .where().type(JavaInterface.class.getName()).subTypes().each() .property("caption").equalsTo().value("java.util.SortedSet") .typeEnd().whereEnd() .keepResult() .select().type(JavaInterface.class.getName()).comma() .byLink(JavaInterfaceHierarchy.class.getName()).b().selectEnd() .keepResult() .select().type(JavaInterface.class.getName()).comma() .byLink(JavaInterfaceHierarchy.class.getName()).b().selectEnd(); final QueryResult result = query.execute(sortMode, printInfo); final List<Node> nodes = result.getNodes(); final NodeWrapper[] wrappers = wrapNodes(nodes); new AssertResult() { public void execute() { assertThat(wrappers.length, is(3)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Set"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Collection"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.SortedSet"), isOneOf(wrappers)); } }.execute(); printResult(nodes); } /** * Test select sorted set hierarchy level3. */ @Test public void testSelectSortedSetHierarchyLevel3() { final QueryApi query = session.createQueryApi(); query.select().type(JavaInterface.class.getName()).selectEnd() .where().type(JavaInterface.class.getName()).subTypes().each() .property("caption").equalsTo().value("java.util.SortedSet") .typeEnd().whereEnd() .keepResult() .select().type(JavaInterface.class.getName()).comma() .byLink(JavaInterfaceHierarchy.class.getName()).b().selectEnd() .keepResult() .select().type(JavaInterface.class.getName()).comma() .byLink(JavaInterfaceHierarchy.class.getName()).b().selectEnd() .keepResult() .select().type(JavaInterface.class.getName()).comma() .byLink(JavaInterfaceHierarchy.class.getName()).b().selectEnd(); final QueryResult result = query.execute(sortMode, printInfo); final List<Node> nodes = result.getNodes(); final NodeWrapper[] wrappers = wrapNodes(nodes); new AssertResult() { public void execute() { assertThat(wrappers.length, is(4)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.lang.Iterable"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Set"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Collection"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.SortedSet"), isOneOf(wrappers)); } }.execute(); printResult(nodes); } /** * Test select types from java util package. */ @Test public void testSelectTypesFromJavaUtilPackage() { final QueryApi query = session.createQueryApi(); query.select().type(JavaType.class.getName()).subTypes().selectEnd() .where().type(JavaType.class.getName()).subTypes().each() .property("caption").startsWith().value("java.util").typeEnd() .whereEnd(); final QueryResult result = query.execute(sortMode, printInfo); final List<Node> nodes = result.getNodes(); final NodeWrapper[] wrappers = wrapNodes(nodes); new AssertResult() { public void execute() { assertThat(wrappers.length >= 56, is(true)); assertThat(new NodeWrapper(JavaInnerInterface.class.getName(), "java.util", java.util.Map.Entry.class.getName()), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Observable"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.AbstractSequentialList"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Map"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.TimerTask"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Currency"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.ListIterator"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.PropertyPermission"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Random"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Stack"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.TimeZone"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.AbstractList"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Observer"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.EventListenerProxy"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.ArrayList"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Set"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.WeakHashMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Hashtable"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.HashSet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.SimpleTimeZone"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.BitSet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.TreeSet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.RandomAccess"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Enumeration"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.ResourceBundle"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.List"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Properties"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.LinkedList"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.IdentityHashMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.HashMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Calendar"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Iterator"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Timer"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Collection"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.EventListener"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Vector"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Queue"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Date"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.AbstractMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.LinkedHashSet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.StringTokenizer"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.TreeMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.GregorianCalendar"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.EventObject"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.LinkedHashMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Arrays"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Dictionary"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.SortedMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Collections"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Locale"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.PropertyResourceBundle"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Comparator"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.ListResourceBundle"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.AbstractCollection"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.AbstractSet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.SortedSet"), isOneOf(wrappers)); } }.execute(); printResult(nodes); } /** * Test select types from methods with get. */ @Test public void testSelectTypesFromMethodsWithGet() { final QueryApi query = session.createQueryApi(); query.select().type(JavaTypeMethod.class.getName()).selectEnd() .where().type(JavaTypeMethod.class.getName()).each() .property("caption").startsWith().value("get").typeEnd() .whereEnd() .select().type(JavaType.class.getName()).subTypes().comma() .byLink(TypeContainsMethod.class.getName()).a().selectEnd(); final QueryResult result = query.execute(sortMode, printInfo); final List<Node> nodes = result.getNodes(); final NodeWrapper[] wrappers = wrapNodes(nodes); new AssertResult() { public void execute() { assertThat(wrappers.length, is(31)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.LinkedList"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Map"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.AbstractSequentialList"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Calendar"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.HashMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.IdentityHashMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Currency"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.PropertyPermission"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.TimeZone"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Vector"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.AbstractList"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Date"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.EventListenerProxy"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.AbstractMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.ArrayList"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.TreeMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.WeakHashMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.GregorianCalendar"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.EventObject"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Hashtable"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.LinkedHashMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Dictionary"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.SimpleTimeZone"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.BitSet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Collections"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Locale"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.PropertyResourceBundle"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.ListResourceBundle"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.List"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.ResourceBundle"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Properties"), isOneOf(wrappers)); } }.execute(); printResult(nodes); } /** * Test select types from methods with get with keep result. */ @Test public void testSelectTypesFromMethodsWithGetWithKeepResult() { final QueryApi query = session.createQueryApi(); query.select().type(JavaTypeMethod.class.getName()).selectEnd() .keepResult() .where().type(JavaTypeMethod.class.getName()).each() .property("caption").startsWith().value("get").typeEnd() .whereEnd() .select().type(JavaType.class.getName()).subTypes().comma() .byLink(TypeContainsMethod.class.getName()).a().selectEnd(); final QueryResult result = query.execute(sortMode, printInfo); final List<Node> nodes = result.getNodes(); final NodeWrapper[] wrappers = wrapNodes(nodes); new AssertResult() { public void execute() { assertThat(wrappers.length >= 169, is(true)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.GregorianCalendar", "getMaximum"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Map"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.LinkedList", "getLast"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Calendar", "getSetStateFields"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.GregorianCalendar", "getLastJulianDate"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Calendar", "get"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Locale", "getDisplayVariantArray"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Calendar", "getTime"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Currency"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.SimpleTimeZone", "getTransition"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getSeconds"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Calendar", "getMillisOf"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.TreeMap", "get"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getMonth"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getTimeImpl"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.GregorianCalendar", "getJulianCalendarSystem"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getCalendarSystem"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.SimpleTimeZone", "getStart"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.ResourceBundle", "getClassContext"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.GregorianCalendar", "getActualMinimum"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getTime"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.HashMap", "getEntry"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.TimeZone", "getRawOffset"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Hashtable", "get"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Hashtable"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.GregorianCalendar", "getLeastMaximum"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.GregorianCalendar", "getCurrentFixedDate"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getJulianCalendar"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Calendar", "getGreatestMinimum"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.SimpleTimeZone"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getMinutes"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Locale", "getCountry"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.SimpleTimeZone", "getOffset"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.List", "get"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.BitSet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Calendar", "getZone"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.SimpleTimeZone", "getDSTSavings"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.SimpleTimeZone", "getEnd"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.ArrayList", "get"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getYear"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.TimeZone", "getSystemGMTOffsetID"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Properties"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Dictionary", "get"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.TimeZone", "getTimeZone"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.ResourceBundle", "getLoader"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.GregorianCalendar", "getFixedDate"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.HashMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Locale", "getDisplayLanguage"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Map", "get"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.GregorianCalendar", "getWeekNumber"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.TimeZone", "getDefaultRef"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getTimezoneOffset"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Calendar", "getTimeInMillis"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.GregorianCalendar", "getActualMaximum"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Locale", "getISO3Country"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Vector"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.GregorianCalendar", "getCutoverCalendarSystem"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Calendar", "getFieldName"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.LinkedList", "get"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.TimeZone", "getDSTSavings"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.IdentityHashMap", "get"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Date"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Calendar", "getMinimum"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Locale", "getISOCountries"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.AbstractMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Currency", "getCurrencyCode"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.TreeMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.EventObject"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.WeakHashMap", "getEntry"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.PropertyResourceBundle", "getKeys"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Dictionary"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Calendar", "getMinimalDaysInFirstWeek"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Locale", "getVariant"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.LinkedList", "getFirst"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.HashMap", "get"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.ListResourceBundle", "getContents"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.TimeZone", "getDefault"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.WeakHashMap", "get"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Calendar", "getActualMinimum"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Currency", "getMainTableEntry"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Calendar", "getLeastMaximum"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.TreeMap", "getEntry"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Calendar", "getTimeZone"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.AbstractSequentialList"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Collections", "get"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.PropertyPermission", "getMask"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.TimeZone", "getAvailableIDs"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.GregorianCalendar", "getFixedDateMonth1"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.ResourceBundle", "getLocale"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.TimeZone", "getOffsets"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.BitSet", "get"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.PropertyPermission"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getDate"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Currency", "getDefaultFractionDigits"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.TimeZone"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.TimeZone", "getOffset"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.AbstractList"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Currency", "getSymbol"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Calendar", "getAvailableLocales"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.EventListenerProxy"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Calendar", "getActualMaximum"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.ResourceBundle", "getKeys"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Locale", "getISO3Language"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.ArrayList"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.GregorianCalendar", "getCalendarDate"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Locale", "getDefault"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.ListResourceBundle", "getKeys"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.GregorianCalendar", "getRolledValue"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.ResourceBundle", "getStringArray"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.WeakHashMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Hashtable", "getIterator"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Locale", "getISOLanguages"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.AbstractList", "get"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Calendar", "getFirstDayOfWeek"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.GregorianCalendar", "getGregorianCutoverDate"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Locale", "getDisplayName"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.EventObject", "getSource"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.HashMap", "getForNullKey"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.TimeZone", "getDisplayName"), isOneOf(wrappers)); assertThat( new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.GregorianCalendar", "getYearOffsetInMillis"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.GregorianCalendar", "getGregorianChange"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.List"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.ResourceBundle"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.GregorianCalendar", "getMinimum"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Locale", "getAvailableLocales"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Hashtable", "getEnumeration"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Properties", "getProperty"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.LinkedList"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.WeakHashMap", "getTable"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.PropertyPermission", "getActions"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.LinkedHashMap", "get"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.AbstractMap", "get"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Calendar"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.IdentityHashMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.GregorianCalendar", "getTimeZone"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.AbstractSequentialList", "get"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.ResourceBundle", "getBundle"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Locale", "getDisplayCountry"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getDay"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Locale", "getDisplayVariant"), isOneOf(wrappers)); assertThat( new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.GregorianCalendar", "getNormalizedCalendar"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getCalendarDate"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.GregorianCalendar", "getGreatestMinimum"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.EventListenerProxy", "getListener"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.ResourceBundle", "getString"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Calendar", "getMaximum"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.TimeZone", "getId"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.TimeZone", "getSystemTimeZoneID"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getHours"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.SimpleTimeZone", "getRawOffset"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.SimpleTimeZone", "getOffsets"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.GregorianCalendar"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Locale", "getLanguage"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Currency", "getInstance"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.LinkedHashMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Calendar", "getInstance"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Date", "getMillisOf"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Collections"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.Locale"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.PropertyResourceBundle"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.ResourceBundle", "getBundleImpl"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.TimeZone", "getDisplayNames"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.ResourceBundle", "getObject"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.ListResourceBundle"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.Vector", "get"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaTypeMethod.class.getName(), "java.util.GregorianCalendar", "getFixedDateJan1"), isOneOf(wrappers)); } }.execute(); printResult(nodes); } /** * Test select types from util with set list or map. */ @Test public void testSelectTypesFromUtilWithSetListOrMap() { final QueryApi query = session.createQueryApi(); query.select().type(JavaType.class.getName()).subTypes().selectEnd() .where().type(JavaType.class.getName()).subTypes().each() .property("caption").startsWith().value("java.util").and() .openBracket().each().property("caption").contains() .value("Set").or().each().property("caption").contains() .value("List").or().each().property("caption").contains() .value("Map").closeBracket().typeEnd().whereEnd(); final QueryResult result = query.execute(sortMode, printInfo); final List<Node> nodes = result.getNodes(); final NodeWrapper[] wrappers = wrapNodes(nodes); new AssertResult() { public void execute() { assertThat(wrappers.length >= 25, is(true)); assertThat(new NodeWrapper(JavaInnerInterface.class.getName(), "java.util", java.util.Map.Entry.class.getName()), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.ArrayList"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.TreeMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.LinkedHashSet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.LinkedList"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Map"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.AbstractSequentialList"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Set"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.WeakHashMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.HashMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.IdentityHashMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.HashSet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.LinkedHashMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.SortedMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.ListIterator"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.EventListener"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.BitSet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.TreeSet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.AbstractList"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.ListResourceBundle"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.List"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.AbstractMap"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.AbstractSet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.EventListenerProxy"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.SortedSet"), isOneOf(wrappers)); } }.execute(); printResult(nodes); } /** * Test select types that contains set or list. */ @Test public void testSelectTypesThatContainsSetOrList() { final QueryApi query = session.createQueryApi(); query.select().type(JavaType.class.getName()).subTypes().selectEnd() .where().type(JavaType.class.getName()).subTypes().each() .property("caption").contains().value("Set").or().each() .property("caption").contains().value("List").typeEnd() .whereEnd(); final QueryResult result = query.execute(sortMode, printInfo); final List<Node> nodes = result.getNodes(); final NodeWrapper[] wrappers = wrapNodes(nodes); new AssertResult() { public void execute() { assertThat(wrappers.length >= 16, is(true)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.ArrayList"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.LinkedHashSet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.LinkedList"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.AbstractSequentialList"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.Set"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.HashSet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.ListIterator"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.EventListener"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.BitSet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.TreeSet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.AbstractList"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.ListResourceBundle"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.List"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.AbstractSet"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaClass.class.getName(), "java.util", "java.util.EventListenerProxy"), isOneOf(wrappers)); assertThat(new NodeWrapper(JavaInterface.class.getName(), "java.util", "java.util.SortedSet"), isOneOf(wrappers)); } }.execute(); printResult(nodes); } @Test public void testThreeLevelsOfNodeType() { final QueryApi query = session.createQueryApi(); query.select().type(JavaType.class.getName()).subTypes().selectEnd(); final QueryResult result = query.execute(sortMode, printInfo); final List<Node> nodes = result.getNodes(); final NodeWrapper[] wrappers = wrapNodes(nodes); printInfo = true; printResult(nodes); new AssertResult() { public void execute() { assertThat(new NodeWrapper(JavaInnerInterface.class.getName(), "java.util", java.util.Map.Entry.class.getName()), isOneOf(wrappers)); assertThat(wrappers.length >= 65, is(true)); } }.execute(); printResult(nodes); } @Test public void testTwoLevelsOfNodeType() { final QueryApi query = session.createQueryApi(); query.select().type(JavaInterface.class.getName()).subTypes() .selectEnd(); final QueryResult result = query.execute(sortMode, printInfo); final List<Node> nodes = result.getNodes(); final NodeWrapper[] wrappers = wrapNodes(nodes); printInfo = true; printResult(nodes); new AssertResult() { public void execute() { assertThat(new NodeWrapper(JavaInnerInterface.class.getName(), "java.util", java.util.Map.Entry.class.getName()), isOneOf(wrappers)); assertThat(wrappers.length >= 20, is(true)); } }.execute(); printResult(nodes); } }