diff --git a/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/internal/files/ui/search/SystemSearchPage.java b/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/internal/files/ui/search/SystemSearchPage.java
index ac1ed9dbf00..e7ac97a4752 100644
--- a/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/internal/files/ui/search/SystemSearchPage.java
+++ b/rse/plugins/org.eclipse.rse.files.ui/src/org/eclipse/rse/internal/files/ui/search/SystemSearchPage.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2002, 2008 IBM Corporation and others.
+ * Copyright (c) 2002, 2009 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -19,6 +19,7 @@
* Martin Oberhuber (Wind River) - [196936] Hide disabled system types
* David McKnight (IBM) - [216252] [api][nls] Resource Strings specific to subsystems should be moved from rse.ui into files.ui / shells.ui / processes.ui where possible
* David McKnight (IBM) - [220547] [api][breaking] SimpleSystemMessage needs to specify a message id and some messages should be shared
+ * David McKnight (IBM) - [243495] [api] New: Allow file name search in Remote Search to not be case sensitive
*******************************************************************************/
package org.eclipse.rse.internal.files.ui.search;
@@ -117,9 +118,12 @@ public class SystemSearchPage extends DialogPage implements ISearchPage {
private Combo fileNameCombo;
private Button fileNameBrowseButton;
private Label fileNameHintLabel;
- private Button fileNameRegexButton;
+ private Button fileNameCaseSensitiveButton;
+ private boolean initialFileNameCaseSensitive;
+ private Button fileNameRegexButton;
private boolean initialFileNameRegex;
+
// file name editor
private FileNameEditor fileNameEditor;
@@ -141,6 +145,7 @@ public class SystemSearchPage extends DialogPage implements ISearchPage {
private static final String REMOTE_SEARCH_PAGE_NAME = "RemoteSearchPage"; //$NON-NLS-1$
private static final String STORE_CONFIG_CASE_SENSITIVE = "caseSensitive"; //$NON-NLS-1$
private static final String STORE_CONFIG_STRING_REGEX = "stringRegex"; //$NON-NLS-1$
+ private static final String STORE_CONFIG_FILENAME_CASE_SENSITIVE = "fileNameCaseSensitive"; //$NON-NLS-1$
private static final String STORE_CONFIG_FILENAME_REGEX = "fileNameRegex"; //$NON-NLS-1$
private static final String STORE_CONFIG_INCLUDE_ARCHIVES = "includeArchives"; //$NON-NLS-1$
private static final String STORE_CONFIG_INCLUDE_SUBFOLDERS = "includeSubfolders"; //$NON-NLS-1$
@@ -153,6 +158,7 @@ public class SystemSearchPage extends DialogPage implements ISearchPage {
private static final String STORE_DATA_CASE_SENSITIVE = "caseSensitive"; //$NON-NLS-1$
private static final String STORE_DATA_STRING_REGEX = "stringRegex"; //$NON-NLS-1$
private static final String STORE_DATA_FILE_NAMES = "fileNames"; //$NON-NLS-1$
+ private static final String STORE_DATA_FILE_NAME_CASE_SENSITIVE = "fileNameCaseSensitive"; //$NON-NLS-1$
private static final String STORE_DATA_FILE_NAME_REGEX = "fileNameRegex"; //$NON-NLS-1$
private static final String STORE_DATA_PROFILE_NAME = "profileName"; //$NON-NLS-1$
private static final String STORE_DATA_CONNECTION_NAME = "connectionName"; //$NON-NLS-1$
@@ -160,7 +166,7 @@ public class SystemSearchPage extends DialogPage implements ISearchPage {
private static final String STORE_DATA_INCLUDE_ARCHIVES = "includeArchives"; //$NON-NLS-1$
private static final String STORE_DATA_INCLUDE_SUBFOLDERS = "includeSubfolders"; //$NON-NLS-1$
- // a list to hold previous searche data
+ // a list to hold previous search data
private List previousSearchData = new ArrayList();
// maximum size of data list
@@ -173,6 +179,7 @@ public class SystemSearchPage extends DialogPage implements ISearchPage {
private boolean caseSensitive;
private boolean stringRegex;
private String fileNames;
+ private boolean fileNameCaseSensitive;
private boolean fileNameRegex;
private String profileName;
private String connectionName;
@@ -186,6 +193,7 @@ public class SystemSearchPage extends DialogPage implements ISearchPage {
* @param caseSensitive true
if case sensitive, false
otherwise.
* @param stringRegex true
if search string is a regular expression, false
otherwise.
* @param fileNames set of file names.
+ * @param fileNameCaseSensitive true
if the file name is searched case sensitively, false
otherwise.
* @param fileNameRegex true
if the file name is a regular expression, false
otherwise.
* @param profileName the profile name.
* @param connectionName the connection name.
@@ -194,12 +202,13 @@ public class SystemSearchPage extends DialogPage implements ISearchPage {
* @param includeSubfolders true
if subfolders should also be searched, false
otherwise.
*/
private RemoteSearchData(String searchString, boolean caseSensitive, boolean stringRegex,
- String fileNames, boolean fileNameRegex, String profileName, String connectionName,
+ String fileNames, boolean fileNameCaseSensitive, boolean fileNameRegex, String profileName, String connectionName,
String folderName, boolean includeArchives, boolean includeSubfolders) {
this.searchString = searchString;
this.caseSensitive = caseSensitive;
this.stringRegex = stringRegex;
this.fileNames = fileNames;
+ this.fileNameCaseSensitive = fileNameCaseSensitive;
this.fileNameRegex = fileNameRegex;
this.profileName = profileName;
this.connectionName = connectionName;
@@ -603,6 +612,7 @@ public class SystemSearchPage extends DialogPage implements ISearchPage {
data.caseSensitive = caseButton.getSelection();
data.stringRegex = stringRegexButton.getSelection();
data.fileNames = getFileNames();
+ data.fileNameCaseSensitive = fileNameCaseSensitiveButton.getSelection();
data.fileNameRegex = fileNameRegexButton.getSelection();
data.profileName = getProfileName();
data.connectionName = getConnectionName();
@@ -617,7 +627,7 @@ public class SystemSearchPage extends DialogPage implements ISearchPage {
// otherwise create new data
else {
data = new RemoteSearchData(searchString, caseButton.getSelection(), stringRegexButton.getSelection(),
- getFileNames(), fileNameRegexButton.getSelection(), getProfileName(), getConnectionName(),
+ getFileNames(), fileNameCaseSensitiveButton.getSelection(), fileNameRegexButton.getSelection(), getProfileName(), getConnectionName(),
getFolderName(), searchArchivesButton.getSelection(), searchSubfoldersButton.getSelection());
}
@@ -718,7 +728,7 @@ public class SystemSearchPage extends DialogPage implements ISearchPage {
// get the data corresponding to the current dialog state
RemoteSearchData data = getSearchData();
- SystemSearchString searchString = new SystemSearchString(data.searchString, data.caseSensitive, data.stringRegex, data.fileNames, data.fileNameRegex, data.includeArchives, data.includeSubfolders);
+ SystemSearchString searchString = new SystemSearchString(data.searchString, data.caseSensitive, data.stringRegex, data.fileNames, data.fileNameCaseSensitive, data.fileNameRegex, data.includeArchives, data.includeSubfolders);
IRemoteFileSubSystem subsys = getRemoteFileSubSystem(data.profileName, data.connectionName);
@@ -1182,6 +1192,7 @@ public class SystemSearchPage extends DialogPage implements ISearchPage {
// set file name regex
fileNameHintLabel.setVisible(!data.fileNameRegex);
+ fileNameCaseSensitiveButton.setSelection(data.fileNameCaseSensitive);
fileNameRegexButton.setSelection(data.fileNameRegex);
// set the remote folder properties
@@ -1270,12 +1281,25 @@ public class SystemSearchPage extends DialogPage implements ISearchPage {
gd.horizontalSpan = 2;
fileNameHintLabel.setLayoutData(gd);
+ // checkbox for case sensitivity
+ fileNameCaseSensitiveButton = new Button(comp, SWT.CHECK);
+ fileNameCaseSensitiveButton.setText(FileResources.RESID_SEARCH_CASE_BUTTON_LABEL);
+ fileNameCaseSensitiveButton.setToolTipText(FileResources.RESID_SEARCH_CASE_BUTTON_TOOLTIP);
+
+ gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
+ fileNameCaseSensitiveButton.setLayoutData(gd);
+ fileNameCaseSensitiveButton.setSelection(initialFileNameCaseSensitive);
+
// checkbox for regex
fileNameRegexButton = new Button(comp, SWT.CHECK);
fileNameRegexButton.setText(FileResources.RESID_SEARCH_FILENAME_REGEX_LABEL);
fileNameRegexButton.setToolTipText(FileResources.RESID_SEARCH_FILENAME_REGEX_TOOLTIP);
- gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
+ //gd = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
+
+ gd = new GridData(GridData.HORIZONTAL_ALIGN_END);
+ gd.horizontalSpan = 3;
+
fileNameRegexButton.setLayoutData(gd);
fileNameRegexButton.setSelection(initialFileNameRegex);
fileNameHintLabel.setVisible(!fileNameRegexButton.getSelection());
@@ -1456,6 +1480,7 @@ public class SystemSearchPage extends DialogPage implements ISearchPage {
IDialogSettings s = getConfigDialogSettings();
initialCaseSensitive = s.getBoolean(STORE_CONFIG_CASE_SENSITIVE);
initialStringRegex = s.getBoolean(STORE_CONFIG_STRING_REGEX);
+ initialFileNameCaseSensitive = s.getBoolean(STORE_CONFIG_FILENAME_CASE_SENSITIVE);
initialFileNameRegex = s.getBoolean(STORE_CONFIG_FILENAME_REGEX);
initialSearchArchives = s.getBoolean(STORE_CONFIG_INCLUDE_ARCHIVES);
initialSearchSubfolders = s.getBoolean(STORE_CONFIG_INCLUDE_SUBFOLDERS);
@@ -1468,6 +1493,7 @@ public class SystemSearchPage extends DialogPage implements ISearchPage {
IDialogSettings s = getConfigDialogSettings();
s.put(STORE_CONFIG_CASE_SENSITIVE, caseButton.getSelection());
s.put(STORE_CONFIG_STRING_REGEX, stringRegexButton.getSelection());
+ s.put(STORE_CONFIG_FILENAME_CASE_SENSITIVE, fileNameCaseSensitiveButton.getSelection());
s.put(STORE_CONFIG_FILENAME_REGEX, fileNameRegexButton.getSelection());
s.put(STORE_CONFIG_INCLUDE_ARCHIVES, searchArchivesButton.getSelection());
s.put(STORE_CONFIG_INCLUDE_SUBFOLDERS, searchSubfoldersButton.getSelection());
@@ -1505,6 +1531,7 @@ public class SystemSearchPage extends DialogPage implements ISearchPage {
boolean stringRegex = dataSection.getBoolean(STORE_DATA_STRING_REGEX);
String fileNamesString = dataSection.get(STORE_DATA_FILE_NAMES);
+ boolean fileNameCaseSensitive = dataSection.getBoolean(STORE_DATA_FILE_NAME_CASE_SENSITIVE);
boolean fileNameRegex = dataSection.getBoolean(STORE_DATA_FILE_NAME_REGEX);
String profileName = dataSection.get(STORE_DATA_PROFILE_NAME);
@@ -1514,7 +1541,7 @@ public class SystemSearchPage extends DialogPage implements ISearchPage {
boolean searchArchives = dataSection.getBoolean(STORE_DATA_INCLUDE_ARCHIVES);
boolean searchSubfolders = dataSection.getBoolean(STORE_DATA_INCLUDE_SUBFOLDERS);
- RemoteSearchData data = new RemoteSearchData(searchString, caseSensitive, stringRegex, fileNamesString, fileNameRegex, profileName, connectionName, folderName, searchArchives, searchSubfolders);
+ RemoteSearchData data = new RemoteSearchData(searchString, caseSensitive, stringRegex, fileNamesString, fileNameCaseSensitive, fileNameRegex, profileName, connectionName, folderName, searchArchives, searchSubfolders);
previousSearchData.add(data);
}
}
@@ -1551,6 +1578,7 @@ public class SystemSearchPage extends DialogPage implements ISearchPage {
dataSection.put(STORE_DATA_STRING_REGEX, data.stringRegex);
dataSection.put(STORE_DATA_FILE_NAMES, data.fileNames);
+ dataSection.put(STORE_DATA_FILE_NAME_CASE_SENSITIVE, data.fileNameCaseSensitive);
dataSection.put(STORE_DATA_FILE_NAME_REGEX, data.fileNameRegex);
dataSection.put(STORE_DATA_PROFILE_NAME, data.profileName);
diff --git a/rse/plugins/org.eclipse.rse.services.dstore/miners/org/eclipse/rse/dstore/universal/miners/UniversalFileSystemMiner.java b/rse/plugins/org.eclipse.rse.services.dstore/miners/org/eclipse/rse/dstore/universal/miners/UniversalFileSystemMiner.java
index f1630f9b5be..3d25c4d7097 100644
--- a/rse/plugins/org.eclipse.rse.services.dstore/miners/org/eclipse/rse/dstore/universal/miners/UniversalFileSystemMiner.java
+++ b/rse/plugins/org.eclipse.rse.services.dstore/miners/org/eclipse/rse/dstore/universal/miners/UniversalFileSystemMiner.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2002, 2008 IBM Corporation and others.
+ * Copyright (c) 2002, 2009 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -39,6 +39,7 @@
* David McKnight (IBM) - [246234] Change of file permissions changes the file owner
* David McKnight (IBM) - [250168] handleCommand should not blindly set the status to "done"
* David McKnight (IBM) - [251729][dstore] problems querying symbolic link folder
+ * David McKnight (IBM) - [243495] [api] New: Allow file name search in Remote Search to not be case sensitive
*******************************************************************************/
package org.eclipse.rse.dstore.universal.miners;
@@ -260,7 +261,7 @@ public class UniversalFileSystemMiner extends Miner {
* Method to do a search.
*/
public DataElement handleSearch(DataElement theElement, DataElement status,
- String queryType, boolean fileNamesCaseSensitive) {
+ String queryType, boolean systemFileNamesCaseSensitive) {
File fileobj = null;
DataElement subject = getCommandArgument(theElement, 0);
@@ -290,6 +291,7 @@ public class UniversalFileSystemMiner extends Miner {
DataElement arg1 = getCommandArgument(theElement, 1);
DataElement arg2 = getCommandArgument(theElement, 2);
DataElement arg3 = getCommandArgument(theElement, 3);
+ DataElement arg4 = getCommandArgument(theElement, 4);
String textString = arg1.getType();
boolean isCaseSensitive = Boolean.valueOf(arg1.getName()).booleanValue();
@@ -305,8 +307,13 @@ public class UniversalFileSystemMiner extends Miner {
// boolean showHidden = Boolean.valueOf(arg3.getSource()).booleanValue();
Boolean.valueOf(arg3.getSource()).booleanValue();
+ boolean isFileNamesCaseSensitive = true;
+ if (arg4 != null && arg4.getType().equals("file.name.case.sensitive")){ //$NON-NLS-1$
+ isFileNamesCaseSensitive = Boolean.valueOf(arg4.getName()).booleanValue();
+ }
+
SystemSearchString searchString = new SystemSearchString(
- textString, isCaseSensitive, isTextRegex, fileNamesString,
+ textString, isCaseSensitive, isTextRegex, fileNamesString, isFileNamesCaseSensitive,
isFileNamesRegex, isIncludeArchives, isIncludeSubfolders, classification);
UniversalSearchHandler searchThread = new UniversalSearchHandler(
diff --git a/rse/plugins/org.eclipse.rse.services.dstore/miners/org/eclipse/rse/internal/dstore/universal/miners/filesystem/UniversalSearchHandler.java b/rse/plugins/org.eclipse.rse.services.dstore/miners/org/eclipse/rse/internal/dstore/universal/miners/filesystem/UniversalSearchHandler.java
index a01813bb9b0..d7cf30d5f41 100644
--- a/rse/plugins/org.eclipse.rse.services.dstore/miners/org/eclipse/rse/internal/dstore/universal/miners/filesystem/UniversalSearchHandler.java
+++ b/rse/plugins/org.eclipse.rse.services.dstore/miners/org/eclipse/rse/internal/dstore/universal/miners/filesystem/UniversalSearchHandler.java
@@ -22,6 +22,7 @@
* David McKnight (IBM) - [250168] update to just search file of canonical paths (not symbolic links)
* David McKnight (IBM) - [255390] memory checking
* David McKnight (IBM) - [261644] [dstore] remote search improvements
+ * David McKnight (IBM) - [243495] [api] New: Allow file name search in Remote Search to not be case sensitive
********************************************************************************/
package org.eclipse.rse.internal.dstore.universal.miners.filesystem;
@@ -117,7 +118,11 @@ public class UniversalSearchHandler extends SecuredThread implements ICancellabl
// i.e. we do not want to look inside files
_isFileSearch = _stringMatcher.isSearchStringEmpty() || _stringMatcher.isSearchStringAsterisk();
- _fileNameMatcher = new SystemSearchFileNameMatcher(_searchString.getFileNamesString(), fsCaseSensitive, _searchString.isFileNamesRegex());
+ boolean fileNamesCaseSensitive = fsCaseSensitive;
+ if (fileNamesCaseSensitive){ // even though it may be a case sensitive system we may want to search case-insensitive
+ fileNamesCaseSensitive = searchString.isFileNamesCaseSensitive();
+ }
+ _fileNameMatcher = new SystemSearchFileNameMatcher(_searchString.getFileNamesString(), fileNamesCaseSensitive, _searchString.isFileNamesRegex());
// classification of files to restrict the search to
_classificationString = _searchString.getClassificationString();
diff --git a/rse/plugins/org.eclipse.rse.services.dstore/src/org/eclipse/rse/internal/services/dstore/search/DStoreSearchService.java b/rse/plugins/org.eclipse.rse.services.dstore/src/org/eclipse/rse/internal/services/dstore/search/DStoreSearchService.java
index de4b7130d85..47d2ba490cc 100644
--- a/rse/plugins/org.eclipse.rse.services.dstore/src/org/eclipse/rse/internal/services/dstore/search/DStoreSearchService.java
+++ b/rse/plugins/org.eclipse.rse.services.dstore/src/org/eclipse/rse/internal/services/dstore/search/DStoreSearchService.java
@@ -20,6 +20,7 @@
* David McKnight (IBM) - [216252] use SimpleSystemMessage instead of getMessage()
* David McKnight (IBM) - [255390] don't assume one update means the search is done
* David McKnight (IBM) - [261644] [dstore] remote search improvements
+ * David McKnight (IBM) - [243495] [api] New: Allow file name search in Remote Search to not be case sensitive
*******************************************************************************/
package org.eclipse.rse.internal.services.dstore.search;
@@ -72,6 +73,7 @@ public class DStoreSearchService extends AbstractDStoreService implements ISearc
boolean isCaseSensitive = searchString.isCaseSensitive();
boolean isTextRegex = searchString.isTextStringRegex();
String fileNamesString = searchString.getFileNamesString();
+ boolean isFileNamesCaseSensitive = searchString.isFileNamesCaseSensitive();
boolean isFileNamesRegex = searchString.isFileNamesRegex();
boolean includeArchives = searchString.isIncludeArchives();
boolean includeSubfolders = searchString.isIncludeSubfolders();
@@ -85,7 +87,7 @@ public class DStoreSearchService extends AbstractDStoreService implements ISearc
if (queryCmd != null)
{
- ArrayList argList = setSearchAttributes(textString, isCaseSensitive, isTextRegex, fileNamesString, isFileNamesRegex, includeArchives, includeSubfolders, classificationString, true);
+ ArrayList argList = setSearchAttributes(textString, isCaseSensitive, isTextRegex, fileNamesString, isFileNamesCaseSensitive, isFileNamesRegex, includeArchives, includeSubfolders, classificationString, true);
DataElement status = ds.command(queryCmd, argList, deObj);
DStoreSearchResultConfiguration config = (DStoreSearchResultConfiguration) searchConfig;
@@ -142,6 +144,7 @@ public class DStoreSearchService extends AbstractDStoreService implements ISearc
boolean isCaseSensitive,
boolean isTextRegex,
String fileNamesString,
+ boolean isFileNamesCaseSensitive,
boolean isFileNamesRegex,
boolean includeArchives,
boolean includeSubfolders,
@@ -156,13 +159,17 @@ public class DStoreSearchService extends AbstractDStoreService implements ISearc
DataElement arg1 = ds.createObject(universaltemp, textString, String.valueOf(isCaseSensitive), String.valueOf(isTextRegex));
DataElement arg2 = ds.createObject(universaltemp, fileNamesString, String.valueOf(isFileNamesRegex), classificationString);
DataElement arg3 = ds.createObject(universaltemp, String.valueOf(includeArchives), String.valueOf(includeSubfolders), String.valueOf(showHidden));
+
+ // extra arg (for version 3.1)
+ DataElement arg4 = ds.createObject(universaltemp, "file.name.case.sensitive", String.valueOf(isFileNamesCaseSensitive));
// add the arguments to the argument list
ArrayList argList = new ArrayList();
argList.add(arg1);
argList.add(arg2);
argList.add(arg3);
-
+ argList.add(arg4);
+
return argList;
}
diff --git a/rse/plugins/org.eclipse.rse.services/clientserver/org/eclipse/rse/services/clientserver/SystemSearchString.java b/rse/plugins/org.eclipse.rse.services/clientserver/org/eclipse/rse/services/clientserver/SystemSearchString.java
index b60cd152ec5..44385ed22de 100644
--- a/rse/plugins/org.eclipse.rse.services/clientserver/org/eclipse/rse/services/clientserver/SystemSearchString.java
+++ b/rse/plugins/org.eclipse.rse.services/clientserver/org/eclipse/rse/services/clientserver/SystemSearchString.java
@@ -1,5 +1,5 @@
/********************************************************************************
- * Copyright (c) 2003, 2006 IBM Corporation. All rights reserved.
+ * Copyright (c) 2003, 2009 IBM Corporation. All rights reserved.
* This program and the accompanying materials are made available under the terms
* of the Eclipse Public License v1.0 which accompanies this distribution, and is
* available at http://www.eclipse.org/legal/epl-v10.html
@@ -11,7 +11,7 @@
* Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley.
*
* Contributors:
- * {Name} (company) - description of contribution.
+ * David McKnight (IBM) - [243495] [api] New: Allow file name search in Remote Search to not be case sensitive
********************************************************************************/
package org.eclipse.rse.services.clientserver;
@@ -31,6 +31,11 @@ public class SystemSearchString {
protected boolean isCaseSensitive;
protected boolean isTextStringRegex;
protected String fileNamesString;
+
+ /**
+ * @since 3.1 for determining whether filename should be searched case-sensitive or not
+ */
+ protected boolean isFileNamesCaseSensitive;
protected boolean isFileNamesRegex;
protected boolean includeArchives;
protected boolean includeSubfolders;
@@ -49,7 +54,26 @@ public class SystemSearchString {
public SystemSearchString(String textString, boolean isCaseSensitive, boolean isTextStringRegex,
String fileNamesString, boolean isFileNamesRegex, boolean includeArchives,
boolean includeSubfolders) {
- this(textString, isCaseSensitive, isTextStringRegex, fileNamesString, isFileNamesRegex, includeArchives,
+ this(textString, isCaseSensitive, isTextStringRegex, fileNamesString, true, isFileNamesRegex, includeArchives,
+ includeSubfolders);
+ }
+
+ /**
+ * Creates a new search string.
+ * @param textString the text string.
+ * @param isCaseSensitive true
if the search should be case sensitive, false
otherwise.
+ * @param isTextStringRegex true
if the text string is a regular expression, false
otherwise.
+ * @param fileNamesString the file names pattern.
+ * @param isFileNamesCaseSensitive true
if the file name search should be case sensitive, false
otherwise.
+ * @param isFileNamesRegex true
if the file names string is a regular expression, false
otherwise.
+ * @param includeArchives true
to search inside archives, false
otherwise.
+ * @param includeSubfolders true
to search subfolders, false
otherwise.
+ * @since 3.1
+ */
+ public SystemSearchString(String textString, boolean isCaseSensitive, boolean isTextStringRegex,
+ String fileNamesString, boolean isFileNamesCaseSensitive, boolean isFileNamesRegex, boolean includeArchives,
+ boolean includeSubfolders) {
+ this(textString, isCaseSensitive, isTextStringRegex, fileNamesString, isFileNamesCaseSensitive, isFileNamesRegex, includeArchives,
includeSubfolders, ""); //$NON-NLS-1$
}
@@ -67,10 +91,31 @@ public class SystemSearchString {
public SystemSearchString(String textString, boolean isCaseSensitive, boolean isTextStringRegex,
String fileNamesString, boolean isFileNamesRegex, boolean includeArchives,
boolean includeSubfolders, String classificationString) {
+ this(textString, isCaseSensitive, isTextStringRegex, fileNamesString, true, isFileNamesRegex,
+ includeArchives, includeSubfolders, classificationString);
+ }
+
+ /**
+ * Creates a new search string that allows search to be restricted to files with a certain classification.
+ * @param textString the text string.
+ * @param isCaseSensitive true
if the search should be case sensitive, false
otherwise.
+ * @param isTextStringRegex true
if the text string is a regular expression, false
otherwise.
+ * @param fileNamesString the file names pattern.
+ * @param isFileNamesCaseSensitive true
if the file name search should be case sensitive, false
otherwise.
+ * @param isFileNamesRegex true
if the file names string is a regular expression, false
otherwise.
+ * @param includeArchives true
to search inside archives, false
otherwise.
+ * @param includeSubfolders true
to search subfolders, false
otherwise.
+ * @param classificationString the classification string that file classifications should match with.
+ * @since 3.1
+ */
+ public SystemSearchString(String textString, boolean isCaseSensitive, boolean isTextStringRegex,
+ String fileNamesString, boolean isFileNamesCaseSensitive, boolean isFileNamesRegex, boolean includeArchives,
+ boolean includeSubfolders, String classificationString) {
this.textString = textString;
this.isCaseSensitive = isCaseSensitive;
this.isTextStringRegex = isTextStringRegex;
this.fileNamesString = fileNamesString;
+ this.isFileNamesCaseSensitive = isFileNamesCaseSensitive;
this.isFileNamesRegex = isFileNamesRegex;
this.includeArchives = includeArchives;
this.includeSubfolders = includeSubfolders;
@@ -109,6 +154,15 @@ public class SystemSearchString {
return fileNamesString;
}
+ /**
+ * Returns whether the file names search is case sensitive.
+ * @return true
if the file names search is case sensitive, false
otherwise.
+ * @since 3.1
+ */
+ public boolean isFileNamesCaseSensitive() {
+ return isFileNamesCaseSensitive;
+ }
+
/**
* Returns whether the file names string is a regular expression.
* @return true
if the file names string is a regular expression, false
otherwise.
@@ -147,7 +201,7 @@ public class SystemSearchString {
*/
public String toString() {
return textString + " - " + isCaseSensitive + " - " + isTextStringRegex + " - " + //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
- fileNamesString + " - " + isFileNamesRegex + " - " + includeArchives + " - " + //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ fileNamesString + " - " + isFileNamesCaseSensitive + " - " + isFileNamesRegex + " - " + includeArchives + " - " + //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
includeSubfolders + " - " + classificationString; //$NON-NLS-1$
}
}
\ No newline at end of file