OpenSim
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Macros
InventoryItemBase.cs
Go to the documentation of this file.
1 /*
2  * Copyright (c) Contributors, http://opensimulator.org/
3  * See CONTRIBUTORS.TXT for a full list of copyright holders.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions are met:
7  * * Redistributions of source code must retain the above copyright
8  * notice, this list of conditions and the following disclaimer.
9  * * Redistributions in binary form must reproduce the above copyright
10  * notice, this list of conditions and the following disclaimer in the
11  * documentation and/or other materials provided with the distribution.
12  * * Neither the name of the OpenSimulator Project nor the
13  * names of its contributors may be used to endorse or promote products
14  * derived from this software without specific prior written permission.
15  *
16  * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19  * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26  */
27 
28 using System;
29 using OpenMetaverse;
30 
31 namespace OpenSim.Framework
32 {
36  public class InventoryItemBase : InventoryNodeBase, ICloneable
37  {
41  public int InvType
42  {
43  get
44  {
45  return m_invType;
46  }
47 
48  set
49  {
50  m_invType = value;
51  }
52  }
53  protected int m_invType;
54 
58  public UUID Folder
59  {
60  get
61  {
62  return m_folder;
63  }
64 
65  set
66  {
67  m_folder = value;
68  }
69  }
70  protected UUID m_folder;
71 
75  public string CreatorId
76  {
77  get
78  {
79  return m_creatorId;
80  }
81 
82  set
83  {
84  m_creatorId = value;
85 
86  if ((m_creatorId == null) || !UUID.TryParse(m_creatorId, out m_creatorIdAsUuid))
87  m_creatorIdAsUuid = UUID.Zero;
88  }
89  }
90  protected string m_creatorId;
91 
95  public UUID CreatorIdAsUuid
96  {
97  get
98  {
99  if (UUID.Zero == m_creatorIdAsUuid)
100  {
101  UUID.TryParse(CreatorId, out m_creatorIdAsUuid);
102  }
103 
104  return m_creatorIdAsUuid;
105  }
106  }
107  protected UUID m_creatorIdAsUuid = UUID.Zero;
108 
112  public string CreatorData // = <profile url>;<name>
113  {
114  get { return m_creatorData; }
115  set { m_creatorData = value; }
116  }
117  protected string m_creatorData = string.Empty;
118 
124  public string CreatorIdentification
125  {
126  get
127  {
128  if (!string.IsNullOrEmpty(m_creatorData))
129  return m_creatorId + ';' + m_creatorData;
130  else
131  return m_creatorId;
132  }
133  set
134  {
135  if ((value == null) || (value != null && value == string.Empty))
136  {
137  m_creatorData = string.Empty;
138  return;
139  }
140 
141  if (!value.Contains(";")) // plain UUID
142  {
143  m_creatorId = value;
144  }
145  else // <uuid>[;<endpoint>[;name]]
146  {
147  string name = "Unknown User";
148  string[] parts = value.Split(';');
149  if (parts.Length >= 1)
150  m_creatorId = parts[0];
151  if (parts.Length >= 2)
152  m_creatorData = parts[1];
153  if (parts.Length >= 3)
154  name = parts[2];
155 
156  m_creatorData += ';' + name;
157  }
158  }
159  }
160 
164  public string Description
165  {
166  get
167  {
168  return m_description;
169  }
170 
171  set
172  {
173  m_description = value;
174  }
175  }
176  protected string m_description = String.Empty;
177 
181  public uint NextPermissions
182  {
183  get
184  {
185  return m_nextPermissions;
186  }
187 
188  set
189  {
190  m_nextPermissions = value;
191  }
192  }
193  protected uint m_nextPermissions;
194 
198  public uint CurrentPermissions
199  {
200  get
201  {
202  return m_currentPermissions;
203  }
204 
205  set
206  {
207  m_currentPermissions = value;
208  }
209  }
210  protected uint m_currentPermissions;
211 
215  public uint BasePermissions
216  {
217  get
218  {
219  return m_basePermissions;
220  }
221 
222  set
223  {
224  m_basePermissions = value;
225  }
226  }
227  protected uint m_basePermissions;
228 
232  public uint EveryOnePermissions
233  {
234  get
235  {
236  return m_everyonePermissions;
237  }
238 
239  set
240  {
241  m_everyonePermissions = value;
242  }
243  }
244  protected uint m_everyonePermissions;
245 
249  public uint GroupPermissions
250  {
251  get
252  {
253  return m_groupPermissions;
254  }
255 
256  set
257  {
258  m_groupPermissions = value;
259  }
260  }
261  protected uint m_groupPermissions;
262 
266  public int AssetType
267  {
268  get
269  {
270  return m_assetType;
271  }
272 
273  set
274  {
275  m_assetType = value;
276  }
277  }
278  protected int m_assetType;
279 
283  public UUID AssetID
284  {
285  get
286  {
287  return m_assetID;
288  }
289 
290  set
291  {
292  m_assetID = value;
293  }
294  }
295  protected UUID m_assetID;
296 
300  public UUID GroupID
301  {
302  get
303  {
304  return m_groupID;
305  }
306 
307  set
308  {
309  m_groupID = value;
310  }
311  }
312  protected UUID m_groupID;
313 
317  public bool GroupOwned
318  {
319  get
320  {
321  return m_groupOwned;
322  }
323 
324  set
325  {
326  m_groupOwned = value;
327  }
328  }
329  protected bool m_groupOwned;
330 
334  public int SalePrice
335  {
336  get
337  {
338  return m_salePrice;
339  }
340 
341  set
342  {
343  m_salePrice = value;
344  }
345  }
346  protected int m_salePrice;
347 
351  public byte SaleType
352  {
353  get
354  {
355  return m_saleType;
356  }
357 
358  set
359  {
360  m_saleType = value;
361  }
362  }
363  protected byte m_saleType;
364 
368  public uint Flags
369  {
370  get
371  {
372  return m_flags;
373  }
374 
375  set
376  {
377  m_flags = value;
378  }
379  }
380  protected uint m_flags;
381 
385  public int CreationDate
386  {
387  get
388  {
389  return m_creationDate;
390  }
391 
392  set
393  {
394  m_creationDate = value;
395  }
396  }
397  protected int m_creationDate = (int)(DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalSeconds;
398 
400  {
401  }
402 
403  public InventoryItemBase(UUID id)
404  {
405  ID = id;
406  }
407 
408  public InventoryItemBase(UUID id, UUID owner)
409  {
410  ID = id;
411  Owner = owner;
412  }
413 
414  public object Clone()
415  {
416  return MemberwiseClone();
417  }
418  }
419 }
Inventory Item - contains all the properties associated with an individual inventory piece...
Common base class for inventory nodes of different types (files, folders, etc.)