Project

General

Profile

Download (3.41 KB) Statistics
| Branch: | Revision:

library / src / main / java / org / distorted / library / DistortedObjectList.java @ d333eb6b

1
///////////////////////////////////////////////////////////////////////////////////////////////////
2
// Copyright 2016 Leszek Koltunski                                                               //
3
//                                                                                               //
4
// This file is part of Distorted.                                                               //
5
//                                                                                               //
6
// Distorted is free software: you can redistribute it and/or modify                             //
7
// it under the terms of the GNU General Public License as published by                          //
8
// the Free Software Foundation, either version 2 of the License, or                             //
9
// (at your option) any later version.                                                           //
10
//                                                                                               //
11
// Distorted is distributed in the hope that it will be useful,                                  //
12
// but WITHOUT ANY WARRANTY; without even the implied warranty of                                //
13
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the                                 //
14
// GNU General Public License for more details.                                                  //
15
//                                                                                               //
16
// You should have received a copy of the GNU General Public License                             //
17
// along with Distorted.  If not, see <http://www.gnu.org/licenses/>.                            //
18
///////////////////////////////////////////////////////////////////////////////////////////////////
19

    
20
package org.distorted.library;
21

    
22
import java.util.HashMap;
23
/**
24
 * List of all DistortedObjects currently created by the application.
25
 * We need to be able to quickly retrieve an Object by its ID, thus a HashMap.
26
 */
27
///////////////////////////////////////////////////////////////////////////////////////////////////
28

    
29
final class DistortedObjectList 
30
  {
31
  private static long id =0;  
32
  private static HashMap<Long,DistortedObject> mObjects = new HashMap<>();
33
  
34
///////////////////////////////////////////////////////////////////////////////////////////////////
35

    
36
  static synchronized long add(DistortedObject obj)
37
    {
38
    long ret = id++;  
39
    mObjects.put(ret,obj);
40
    return ret;
41
    }
42

    
43
///////////////////////////////////////////////////////////////////////////////////////////////////
44

    
45
  static synchronized void remove(DistortedObject obj)
46
    {
47
    mObjects.remove(obj);
48
    }
49
  
50
///////////////////////////////////////////////////////////////////////////////////////////////////
51

    
52
  static DistortedObject get(long id)
53
    {
54
    return mObjects.get(id);
55
    }
56
  
57
///////////////////////////////////////////////////////////////////////////////////////////////////
58
  
59
  static synchronized void reset()
60
    {
61
    for(long id: mObjects.keySet())
62
      {
63
      get(id).resetTexture();  
64
      }
65
    }
66

    
67
///////////////////////////////////////////////////////////////////////////////////////////////////
68

    
69
  static synchronized void release()
70
    {
71
    for(long id: mObjects.keySet())
72
      {
73
      get(id).releasePriv();  
74
      }
75
   
76
    mObjects.clear();
77
    id = 0;
78
    }
79
  
80
///////////////////////////////////////////////////////////////////////////////////////////////////
81
  }
(6-6/30)