Um eine Suche auszuführen, die der erweiterten Suche im Web- oder Eclipse-Client ähnelt, können Sie einem Objekt RAMAssetQueryBuilder mithilfe der Methode RAMAssetQueryBuilder.addQueryField(java.lang.String, java.lang.String) Abfragefelder hinzufügen. Es gibt Felder für Datum der letzten Änderung, GUID, Beschreibung, Assetname, Bewertung, Eigner, Status und Version. Standardmäßig sind alle Abfragefelder logisch mit "and" verknüpft (die Suche gibt nur Ergebnisse zurück, die die Bedingungen aller Abfragefelder erfüllen). Um beispielsweise Assets mit dem Namen 'Rational Asset Manager Client API Javadoc' und Version 7.1 zu finden, führen Sie die folgende Suche aus:
// Exklusive Suche
queryBuilder = new RAMAssetQueryBuilder(session);
queryBuilder.addQueryField(queryBuilder.QUERY_FIELD_NAME, "Rational Asset Manager Client API Javadoc");
queryBuilder.addQueryField(queryBuilder.QUERY_FIELD_VERSION, "7.1");
searchResult = session.getAssets(queryBuilder);
Um die Behandlung der Felder zu ändern, ist eine Methode RAMQueryBuilder.setMatchAnyField(boolean) verfügbar, mit der Felder über "OR" miteinander verknüpft werden können. Um beispielsweise Assets zu finden, die Version 7.0, 7.0.0.2 oder 7.1 haben, führen Sie die folgende Suche aus:
//Inklusive Suche
queryBuilder = new RAMAssetQueryBuilder(session);
queryBuilder.addQueryField(queryBuilder.QUERY_FIELD_VERSION, "7.0");
queryBuilder.addQueryField(queryBuilder.QUERY_FIELD_VERSION, "7.0.0.2");
queryBuilder.addQueryField(queryBuilder.QUERY_FIELD_VERSION, "7.1");
queryBuilder.setMatchAnyField(true);
searchResult = session.getAssets(queryBuilder);
Zusammen mit Abfragefeldern für den Namen und den Wert können Sie auch Textabfragefelder erstellen, die mit "and" oder "or" mit Ihren anderen Abfragefeldern mithilfe der Methode RAMAssetQueryBuilder.addQueryTextField(java.lang.String) verknüpft werden.
//Suche nach API mit Platzhalterzeichen
queryBuilder = new RAMAssetQueryBuilder(session);
queryBuilder.addQueryTextField("API*");
queryBuilder.addQueryField(queryBuilder.QUERY_FIELD_VERSION, "7.1");
searchResult = session.getAssets(queryBuilder);
Die Operatoren AND_OPERATOR und OR_OPERATOR können verwendet werden, um komplexere Abfragen miteinander zu verbinden. Um beispielsweise eine Abfrage für Assets zu erstellen, die den Namen 'API' enthalten und die Version 7.0, 7.0.0.2 oder 7.1 haben, gehen Sie wie folgt vor:
//Erweiterte Abfrage
nonEscapedNameQuery = queryBuilder.createQueryFieldText(
queryBuilder.QUERY_FIELD_NAME, "API*");
queryBuilder.addQueryTextField(nonEscapedNameQuery);
String version71 = queryBuilder.createQueryFieldText(queryBuilder.QUERY_FIELD_VERSION, "7.0");
String version7002 = queryBuilder.createQueryFieldText(queryBuilder.QUERY_FIELD_VERSION, "7.0.0.2");
String version71 = queryBuilder.createQueryFieldText(queryBuilder.QUERY_FIELD_VERSION, "7.1");
String versionQuery = version70 + RAMAssetQueryBuilder.OR_OPERATOR + version7002 + RAMAssetQueryBuilder.OR_OPERATOR + version71;
queryBuilder.addQueryTextField(versionQuery);
searchResult = session.getAssets(queryBuilder);