]> source.dussan.org Git - poi.git/commitdiff
Added a factory implementation for BitFields. Will save a bit of memory.
authorJason Height <jheight@apache.org>
Fri, 2 Sep 2005 03:27:43 +0000 (03:27 +0000)
committerJason Height <jheight@apache.org>
Fri, 2 Sep 2005 03:27:43 +0000 (03:27 +0000)
Patch to change all fields to use the factory comming soon.

git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/trunk@353776 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/poi/util/BitFieldFactory.java [new file with mode: 0755]

diff --git a/src/java/org/apache/poi/util/BitFieldFactory.java b/src/java/org/apache/poi/util/BitFieldFactory.java
new file mode 100755 (executable)
index 0000000..7a5d553
--- /dev/null
@@ -0,0 +1,43 @@
+
+/* ====================================================================
+   Copyright 2002-2004   Apache Software Foundation
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+==================================================================== */
+        
+
+package org.apache.poi.util;
+
+import java.util.*;
+
+/**
+ * Returns immutable Btfield instances.
+ *
+ * @author Jason Height (jheight at apache dot org)
+ */
+
+public class BitFieldFactory
+{
+    private static Map instances = new HashMap();
+    
+    public static BitField getInstance(final int mask) {
+      BitField f = (BitField)instances.get(new Integer(mask));
+      if (f == null) {
+        f = new BitField(mask);
+        instances.put(new Integer(mask), f);        
+      }
+      return f;
+    }
+
+}   // end public class BitFieldFactory
+