01: /*
02: ItsNat Java Web Application Framework
03: Copyright (C) 2007 Innowhere Software Services S.L., Spanish Company
04: Author: Jose Maria Arranz Santamaria
05:
06: This program is free software: you can redistribute it and/or modify
07: it under the terms of the GNU Affero General Public License as published by
08: the Free Software Foundation, either version 3 of the License, or
09: (at your option) any later version. See the GNU Affero General Public
10: License for more details. See the copy of the GNU Affero General Public License
11: included in this program. If not, see <http://www.gnu.org/licenses/>.
12: */
13:
14: package org.itsnat.impl.core.dom;
15:
16: import java.util.Map;
17: import java.util.WeakHashMap;
18: import org.itsnat.impl.core.ItsNatDocumentImpl;
19: import org.w3c.dom.Node;
20:
21: /**
22: *
23: * @author jmarranz
24: */
25: public class ItsNatNodeRegistry {
26: protected Map map = new WeakHashMap();
27: protected ItsNatDocumentImpl itsNatDoc;
28:
29: /**
30: * Creates a new instance of ItsNatNodeRegistry
31: */
32: public ItsNatNodeRegistry(ItsNatDocumentImpl itsNatDoc) {
33: this .itsNatDoc = itsNatDoc;
34: }
35:
36: public ItsNatNodeImpl getItsNatNode(Node node) {
37: if (node == null)
38: return null;
39: if (node instanceof ItsNatNodeImpl)
40: return (ItsNatNodeImpl) node; // Ya es el wrapper
41:
42: ItsNatNodeImpl nodeWrap = (ItsNatNodeImpl) map.get(node);
43: if (nodeWrap == null) {
44: nodeWrap = ItsNatNodeImpl.newItsNatNode(node, itsNatDoc);
45: map.put(node, nodeWrap);
46: }
47: return nodeWrap;
48: }
49:
50: public ItsNatNodeImpl removeItsNatNode(Node node) {
51: return (ItsNatNodeImpl) map.remove(node);
52: }
53: }
|