From 3525195bc9b5fdfd9799411edd452981ef1f4ebd Mon Sep 17 00:00:00 2001
From: Justin Clark-Casey (justincc)
Date: Fri, 11 Jun 2010 21:52:43 +0100
Subject: Allow IInventoryService.GetFolder(folderId, userId) as well as
 GetFolder(InventoryFolderBase folder)

This involves no wire changes since the methods often just construct an InventoryFolderBase under the hood.
This is in line with other methods that alraedy allow requests via uuid
---
 .../Inventory/QuickAndDirtyInventoryServiceConnector.cs |  5 +++++
 .../Connectors/Inventory/XInventoryConnector.cs         |  5 +++++
 .../SimianGrid/SimianInventoryServiceConnector.cs       |  7 ++++++-
 OpenSim/Services/Interfaces/IInventoryService.cs        |  8 ++++++++
 OpenSim/Services/InventoryService/InventoryService.cs   | 17 +++++++++++------
 OpenSim/Services/InventoryService/XInventoryService.cs  |  5 +++++
 6 files changed, 40 insertions(+), 7 deletions(-)

(limited to 'OpenSim/Services')

diff --git a/OpenSim/Services/Connectors/Inventory/QuickAndDirtyInventoryServiceConnector.cs b/OpenSim/Services/Connectors/Inventory/QuickAndDirtyInventoryServiceConnector.cs
index a7aa138..5a23687 100644
--- a/OpenSim/Services/Connectors/Inventory/QuickAndDirtyInventoryServiceConnector.cs
+++ b/OpenSim/Services/Connectors/Inventory/QuickAndDirtyInventoryServiceConnector.cs
@@ -171,6 +171,11 @@ namespace OpenSim.Services.Connectors
         {
             return null;
         }
+        
+        public InventoryFolderBase GetFolder(UUID folderId, UUID userId) 
+        { 
+            return null; 
+        }
 
         public InventoryFolderBase GetFolder(InventoryFolderBase folder)
         {
diff --git a/OpenSim/Services/Connectors/Inventory/XInventoryConnector.cs b/OpenSim/Services/Connectors/Inventory/XInventoryConnector.cs
index e25e7eb..e7acb59 100644
--- a/OpenSim/Services/Connectors/Inventory/XInventoryConnector.cs
+++ b/OpenSim/Services/Connectors/Inventory/XInventoryConnector.cs
@@ -431,6 +431,11 @@ namespace OpenSim.Services.Connectors
             return null;
         }
 
+        public InventoryFolderBase GetFolder(UUID folderId, UUID userId) 
+        { 
+            return GetFolder(new InventoryFolderBase(folderId, userId));
+        }
+        
         public InventoryFolderBase GetFolder(InventoryFolderBase folder)
         {
             try
diff --git a/OpenSim/Services/Connectors/SimianGrid/SimianInventoryServiceConnector.cs b/OpenSim/Services/Connectors/SimianGrid/SimianInventoryServiceConnector.cs
index dc68259..6bf43d5 100644
--- a/OpenSim/Services/Connectors/SimianGrid/SimianInventoryServiceConnector.cs
+++ b/OpenSim/Services/Connectors/SimianGrid/SimianInventoryServiceConnector.cs
@@ -1,4 +1,4 @@
-/*
+/*
  * Copyright (c) Contributors, http://opensimulator.org/
  * See CONTRIBUTORS.TXT for a full list of copyright holders.
  *
@@ -314,6 +314,11 @@ namespace OpenSim.Services.Connectors.SimianGrid
             m_log.Warn("[SIMIAN INVENTORY CONNECTOR]: Item " + item.ID + " owned by " + item.Owner + " not found");
             return null;
         }
+        
+        public InventoryFolderBase GetFolder(UUID folderId, UUID userId) 
+        { 
+            return GetFolder(new InventoryFolderBase(folderId, userId));
+        }
 
         /// <summary>
         /// Get a folder, given by its UUID
diff --git a/OpenSim/Services/Interfaces/IInventoryService.cs b/OpenSim/Services/Interfaces/IInventoryService.cs
index 1b78fb3..b0ffd8f 100644
--- a/OpenSim/Services/Interfaces/IInventoryService.cs
+++ b/OpenSim/Services/Interfaces/IInventoryService.cs
@@ -170,6 +170,14 @@ namespace OpenSim.Services.Interfaces
         InventoryItemBase GetItem(InventoryItemBase item);
 
         /// <summary>
+        /// Get a folder.
+        /// </summary>
+        /// <param name="folderId"></param>
+        /// <param name="userId"></param>
+        /// <returns></returns>
+        InventoryFolderBase GetFolder(UUID folderId, UUID userId);
+        
+        /// <summary>
         /// Get a folder, given by its UUID
         /// </summary>
         /// <param name="folder"></param>
diff --git a/OpenSim/Services/InventoryService/InventoryService.cs b/OpenSim/Services/InventoryService/InventoryService.cs
index fbcd663..9f1c4a4 100644
--- a/OpenSim/Services/InventoryService/InventoryService.cs
+++ b/OpenSim/Services/InventoryService/InventoryService.cs
@@ -439,15 +439,20 @@ namespace OpenSim.Services.InventoryService
             m_log.DebugFormat("[INVENTORY SERVICE]: GetItem failed to find item {0}", item.ID);
             return null;
         }
-
-        public virtual InventoryFolderBase GetFolder(InventoryFolderBase folder)
-        {
-            InventoryFolderBase result = m_Database.getInventoryFolder(folder.ID);
+        
+        public virtual InventoryFolderBase GetFolder(UUID folderId, UUID userId) 
+        { 
+            InventoryFolderBase result = m_Database.getInventoryFolder(folderId);
             if (result != null)
                 return result;
 
-            m_log.DebugFormat("[INVENTORY SERVICE]: GetFolder failed to find folder {0}", folder.ID);
-            return null;
+            m_log.DebugFormat("[INVENTORY SERVICE]: GetFolder failed to find folder {0}", folderId);
+            return null; 
+        }
+
+        public virtual InventoryFolderBase GetFolder(InventoryFolderBase folder)
+        {
+            return GetFolder(folder.ID, folder.Owner);
         }
 
         public virtual bool DeleteFolders(UUID ownerID, List<UUID> folderIDs)
diff --git a/OpenSim/Services/InventoryService/XInventoryService.cs b/OpenSim/Services/InventoryService/XInventoryService.cs
index af831fd..00aadc5 100644
--- a/OpenSim/Services/InventoryService/XInventoryService.cs
+++ b/OpenSim/Services/InventoryService/XInventoryService.cs
@@ -368,6 +368,11 @@ namespace OpenSim.Services.InventoryService
 
             return ConvertToOpenSim(items[0]);
         }
+        
+        public virtual InventoryFolderBase GetFolder(UUID folderId, UUID userId) 
+        { 
+            return GetFolder(new InventoryFolderBase(folderId, userId));
+        }
 
         public virtual InventoryFolderBase GetFolder(InventoryFolderBase folder)
         {
-- 
cgit v1.1