KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > mmbase > module > builders > VersionCacheNode


1 /*
2
3 This software is OSI Certified Open Source Software.
4 OSI Certified is a certification mark of the Open Source Initiative.
5
6 The license (Mozilla version 1.0) can be read at the MMBase site.
7 See http://www.MMBase.org/license
8
9 */

10 package org.mmbase.module.builders;
11
12 import java.util.*;
13
14 import org.mmbase.module.core.*;
15 import org.mmbase.util.logging.*;
16
17 /**
18  * @javadoc
19  * @deprecated is this (cacheversionfile) used? seems obsolete now
20  * @author Daniel Ockeloen
21  * @version $Id: VersionCacheNode.java,v 1.5 2005/01/25 12:45:19 pierre Exp $
22  */

23 public class VersionCacheNode extends Object JavaDoc {
24
25     private static Logger log = Logging.getLoggerInstance(VersionCacheNode.class.getName());
26     private MMObjectNode versionnode;
27     private Vector whens = new Vector();
28     private MMBase mmb;
29
30     public VersionCacheNode(MMBase mmb) {
31         this.mmb = mmb;
32     }
33
34     public void handleChanged(String JavaDoc buildername,int number) {
35         // method checks if this really something valid
36
// and we should signal a new version
37

38         boolean dirty = false;
39         for (Enumeration e = whens.elements(); e.hasMoreElements();) {
40             VersionCacheWhenNode whennode = (VersionCacheWhenNode)e.nextElement();
41             Vector types = whennode.getTypes();
42
43             // check if im known in the types part
44
if (types.contains(buildername)) {
45                 // is there only 1 builder type ?
46
if (log.isDebugEnabled()) log.debug("types="+types.toString());
47                 if (types.size() == 1) {
48                     dirty = true;
49                 } else {
50                     // so multiple prepare a multilevel !
51
Vector nodes = whennode.getNodes();
52
53                     Vector fields = new Vector();
54                     fields.addElement(buildername + ".number");
55                     Vector ordervec = new Vector();
56                     Vector dirvec = new Vector();
57
58                     Vector vec = mmb.getClusterBuilder().searchMultiLevelVector(nodes,fields,"YES",types,buildername+".number=="+number,ordervec,dirvec);
59                     if (log.isDebugEnabled()) log.debug("VEC=" + vec);
60                     if (vec != null && vec.size() > 0) {
61                         dirty = true;
62                     }
63                 }
64             }
65         }
66
67         if (dirty) {
68             // add one to the version of this counter
69
int version = versionnode.getIntValue("version");
70             versionnode.setValue("version",version + 1);
71             versionnode.commit();
72             if (log.isDebugEnabled()) log.debug("Changed = "+(version+1));
73         }
74     }
75
76     public void setVersionNode(MMObjectNode versionnode) {
77         this.versionnode = versionnode;
78     }
79
80     public void addWhen(VersionCacheWhenNode when) {
81         whens.addElement(when);
82     }
83
84 }
85
Popular Tags