KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > dotmarketing > servlets > RecreateTreeServlet


1 package com.dotmarketing.servlets;
2
3 import java.util.Iterator JavaDoc;
4
5 import javax.servlet.ServletException JavaDoc;
6 import javax.servlet.http.HttpServlet JavaDoc;
7 import javax.servlet.http.HttpServletRequest JavaDoc;
8 import javax.servlet.http.HttpServletResponse JavaDoc;
9
10 import com.dotmarketing.beans.Identifier;
11 import com.dotmarketing.beans.MultiTree;
12 import com.dotmarketing.factories.IdentifierFactory;
13 import com.dotmarketing.factories.InodeFactory;
14 import com.dotmarketing.factories.MultiTreeFactory;
15 import com.dotmarketing.portlets.containers.model.Container;
16 import com.dotmarketing.portlets.contentlet.model.Contentlet;
17 import com.dotmarketing.portlets.htmlpages.factories.HTMLPageFactory;
18 import com.dotmarketing.portlets.htmlpages.model.HTMLPage;
19 import com.dotmarketing.portlets.templates.model.Template;
20 import com.dotmarketing.util.Config;
21 import com.dotmarketing.util.Logger;
22
23 public class RecreateTreeServlet extends HttpServlet JavaDoc {
24
25     private static final long serialVersionUID = 1L;
26
27     protected void service(HttpServletRequest JavaDoc request, HttpServletResponse JavaDoc response) throws ServletException JavaDoc {
28
29         ///Do WORKING ones first!!!
30
java.util.List JavaDoc list = HTMLPageFactory.getWorkingHTMLPages();
31
32         Iterator JavaDoc i = list.iterator();
33         while (i.hasNext()) {
34             HTMLPage htmlPage = (HTMLPage) i.next();
35
36             //gets working (not published) template parent for this html page
37
Template templateParent = HTMLPageFactory.getHTMLPageTemplate(htmlPage, true);
38             
39             if (templateParent.getInode() > 0) {
40
41                 Logger.debug(this, "*****Recreate Tree Servlet -- Got Working Template=" + templateParent.getInode());
42
43                 //gets all container children
44
java.util.List JavaDoc identifiers = InodeFactory.getChildrenClass(templateParent, Identifier.class);
45                 java.util.Iterator JavaDoc identifiersIter = identifiers.iterator();
46
47                 while (identifiersIter.hasNext()) {
48
49                     Identifier identifier = (Identifier) identifiersIter.next();
50                     Logger.debug(this, "*****Recreate Tree Servlet -- Container Identifier =" + identifier.getInode());
51                     Container container = (Container) IdentifierFactory.getWorkingChildOfClass(identifier, Container.class);
52                     Logger.debug(this, "*****Recreate Tree Servlet -- Container Working Inode =" + container.getInode());
53
54                     String JavaDoc condition = "working=" + com.dotmarketing.db.DbConnectionFactory.getDBTrue() + " and deleted = " + com.dotmarketing.db.DbConnectionFactory.getDBTrue();
55                     java.util.List JavaDoc contentlets = InodeFactory.getChildrenClassByCondition(htmlPage.getInode(),container.getInode(),Contentlet.class,condition);
56                     
57                     //gets all not live contentlet children
58
java.util.Iterator JavaDoc contentletsIter = contentlets.iterator();
59                     while (contentletsIter.hasNext()) {
60                         //publishes each one
61
Contentlet contentlet = (Contentlet) contentletsIter.next();
62                         Identifier iden = IdentifierFactory.getIdentifierByWebAsset(contentlet);
63                         Identifier idenContainer = IdentifierFactory.getIdentifierByWebAsset(container);
64                         Identifier idenHtmlPage = IdentifierFactory.getIdentifierByWebAsset(htmlPage);
65                         Logger.debug(this, "*****Recreate Tree Servlet -- Contentlet Working Inode=" + contentlet.getInode());
66                         
67                         //if it's live then i need to create one more tree record for the working one
68
MultiTree childTree = new MultiTree(idenHtmlPage.getInode(),idenContainer.getInode(),iden.getInode());
69                         MultiTreeFactory.saveMultiTree(childTree);
70
71                         
72                     }
73                 }
74
75             }
76         }
77
78     
79         ///Do LIVE ones after working ones!!!
80
list = HTMLPageFactory.getLiveHTMLPages();
81
82         i = list.iterator();
83         while (i.hasNext()) {
84             HTMLPage htmlPage = (HTMLPage) i.next();
85
86             //gets working (not published) template parent for this html page
87
Template templateParent = HTMLPageFactory.getHTMLPageTemplate(htmlPage, false);
88             
89             if (templateParent.getInode() > 0) {
90
91                 Logger.debug(this, "*****Recreate Tree Servlet -- Got Live Template=" + templateParent.getInode());
92
93                 //gets all container children
94
java.util.List JavaDoc identifiers = InodeFactory.getChildrenClass(templateParent, Identifier.class);
95                 java.util.Iterator JavaDoc identifiersIter = identifiers.iterator();
96
97                 while (identifiersIter.hasNext()) {
98
99                     Identifier identifier = (Identifier) identifiersIter.next();
100                     Logger.debug(this, "*****Recreate Tree Servlet -- Container Identifier =" + identifier.getInode());
101                     Container container = (Container) IdentifierFactory.getLiveChildOfClass(identifier, Container.class);
102                     Logger.debug(this, "*****Recreate Tree Servlet -- Container Live Inode =" + container.getInode());
103
104                     String JavaDoc condition = "live=" + com.dotmarketing.db.DbConnectionFactory.getDBTrue() + " and deleted = " + com.dotmarketing.db.DbConnectionFactory.getDBFalse();
105                     java.util.List JavaDoc contentlets = InodeFactory.getChildrenClassByCondition(htmlPage.getInode(),container.getInode(),Contentlet.class,condition);
106                     
107                     //gets all not live contentlet children
108
java.util.Iterator JavaDoc contentletsIter = contentlets.iterator();
109                     while (contentletsIter.hasNext()) {
110                         //publishes each one
111
Contentlet contentlet = (Contentlet) contentletsIter.next();
112                         Identifier iden = IdentifierFactory.getIdentifierByWebAsset(contentlet);
113                         Logger.debug(this, "*****Recreate Tree Servlet -- Contentlet Live Inode=" + contentlet.getInode());
114                         
115                         //if it's live then i need to create one more tree record for the working one
116
MultiTree childTree = new MultiTree(htmlPage.getInode(),container.getInode(),iden.getInode());
117                         MultiTreeFactory.saveMultiTree(childTree);
118
119                         
120                     }
121                 }
122
123             }
124         }
125     
126     
127     }
128 }
129
Popular Tags