1 package de.webman.generator; 2 3 import com.teamkonzept.lib.*; 4 5 import java.util.*; 6 import java.sql.*; 7 import org.apache.log4j.Category; 8 import de.webman.content.Content; 9 import de.webman.content.workflow.VersionCache; 10 17 public class SiteContentStatics 18 { 19 22 private TKHashtable lookup = new TKHashtable(); 23 24 private static final Object LOOK_UP = new Object (); 25 26 private static final int YEAR_THRESHOLD = 100; 27 private static final int CENTURY = 1900; 28 29 30 private static Category cat = Category.getInstance(SiteContentStatics.class.getName()); 31 32 35 private GeneratorContext context; 36 37 41 private TKHashtable contentHash; 42 43 public SiteContentStatics (GeneratorContext context) { 44 45 this.context = context != null ? context : GeneratorContext.setup (); 46 this.contentHash = new TKHashtable(); 47 } 48 49 52 public SiteContent getContent( int instanceId ) 53 { 54 SiteContent content = (SiteContent) contentHash.get( new Integer ( instanceId ) ); 55 if (content == null && instanceId > 0) { 57 Object lookedUp = lookup.get(new Integer (instanceId)); 60 if (lookedUp == null) 62 { 63 lookup.put(new Integer (instanceId), LOOK_UP); 64 Content c = VersionCache.getInstanceInfo(new Integer ( instanceId )); 65 if (c != null) 66 { 67 SiteContent sContent = new SiteContent(context, c.getFormularId().intValue(), c, false); 69 return sContent; 72 } 73 } 74 else 75 { 76 return null; 77 } 78 } 79 return content; 80 } 81 82 85 public void putContent (int instanceId, SiteContent content) 86 { 87 Integer id = new Integer (instanceId); 88 if (contentHash.get(id) != null) 89 cat.warn("Double Content: " + instanceId); 90 contentHash.put( id, content ); 91 } 92 93 97 public void resetCounters() 98 { 99 Enumeration e = contentHash.elements(); 100 while( e.hasMoreElements() ) { 101 ((SiteContent)e.nextElement()).resetInDocs(); 102 } 103 } 104 105 111 public java.util.Date getDateFromString( String str ) 112 { 113 if( str == null || str.length() == 0 ) return null; 114 StringTokenizer st = new StringTokenizer(str,"."); 115 try 116 { 117 int day = Integer.parseInt(st.nextToken()); 118 int month = Integer.parseInt(st.nextToken()); 119 int year = Integer.parseInt(st.nextToken()); 120 if( year < YEAR_THRESHOLD ) { 121 year += (((new java.util.Date ()).getYear() + CENTURY) / YEAR_THRESHOLD) * YEAR_THRESHOLD; 122 } 123 return new java.util.Date ( year, month, day ); 124 } 125 catch( Exception e ) 126 { 127 cat.debug("got wrong date-format: "+str); 128 return null; 129 } 130 } 131 } 132 133
| Popular Tags
|