1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-07-03 07:05:24 +02:00

[187732] exists checking on query

This commit is contained in:
David McKnight 2007-05-23 16:03:57 +00:00
parent 9e9213cb95
commit bcf9a1c7b8

View file

@ -641,9 +641,29 @@ public class UniversalFileSystemMiner extends Miner {
}
if (fileobj != null)
// query all files and folders for the filter
internalQueryAll(subject, fileobj, queryType, filter,
caseSensitive, IClientServerConstants.INCLUDE_ALL);
{
if (!fileobj.exists())
{
subject.setAttribute(DE.A_TYPE, IUniversalDataStoreConstants.UNIVERSAL_FILTER_DESCRIPTOR);
subject.setAttribute(DE.A_SOURCE, setProperties(fileobj));
status.setAttribute(DE.A_SOURCE, IServiceConstants.FAILED_WITH_DOES_NOT_EXIST);
if (subject.getNestedSize() > 0)
{
List children = subject.getNestedData();
for (int i = children.size() - 1; i >= 0; i--)
{
_dataStore.deleteObject(subject, (DataElement)children.get(i));
}
}
}
else
{
// query all files and folders for the filter
internalQueryAll(subject, fileobj, queryType, filter,
caseSensitive, IClientServerConstants.INCLUDE_ALL);
}
}
// refresh datastore
_dataStore.refresh(subject);
@ -861,8 +881,24 @@ private DataElement createDataElementFromLSString(DataElement subject,
"Invalid query type to handleQueryFiles", null); //$NON-NLS-1$
internalQueryAll(subject, fileobj, queryType, filter, caseSensitive, IClientServerConstants.INCLUDE_FILES_ONLY);
if (!fileobj.exists())
{
subject.setAttribute(DE.A_TYPE, IUniversalDataStoreConstants.UNIVERSAL_FILTER_DESCRIPTOR);
subject.setAttribute(DE.A_SOURCE, setProperties(fileobj));
status.setAttribute(DE.A_SOURCE, IServiceConstants.FAILED_WITH_DOES_NOT_EXIST);
if (subject.getNestedSize() > 0)
{
List children = subject.getNestedData();
for (int i = children.size() - 1; i >= 0; i--)
{
_dataStore.deleteObject(subject, (DataElement)children.get(i));
}
}
}
else
{
internalQueryAll(subject, fileobj, queryType, filter, caseSensitive, IClientServerConstants.INCLUDE_FILES_ONLY);
}
_dataStore.refresh(subject);
return statusDone(status);
}
@ -901,8 +937,25 @@ private DataElement createDataElementFromLSString(DataElement subject,
UniversalServerUtilities.logError(CLASSNAME,
"Invalid query type to handleQueryFolders", null); //$NON-NLS-1$
internalQueryAll(subject, fileobj, queryType, filter, caseSensitive, IClientServerConstants.INCLUDE_FOLDERS_ONLY);
if (!fileobj.exists())
{
subject.setAttribute(DE.A_TYPE, IUniversalDataStoreConstants.UNIVERSAL_FILTER_DESCRIPTOR);
subject.setAttribute(DE.A_SOURCE, setProperties(fileobj));
status.setAttribute(DE.A_SOURCE, IServiceConstants.FAILED_WITH_DOES_NOT_EXIST);
if (subject.getNestedSize() > 0)
{
List children = subject.getNestedData();
for (int i = children.size() - 1; i >= 0; i--)
{
_dataStore.deleteObject(subject, (DataElement)children.get(i));
}
}
}
else
{
internalQueryAll(subject, fileobj, queryType, filter, caseSensitive, IClientServerConstants.INCLUDE_FOLDERS_ONLY);
}
_dataStore.refresh(subject);
return statusDone(status);
}