1 package de.webman.generator; 2 3 import com.teamkonzept.db.*; 4 import com.teamkonzept.lib.*; 5 import com.teamkonzept.webman.db.*; 6 import de.webman.generator.db.queries.*; 7 8 import java.sql.*; 9 10 16 public class ReferenceTypeStatics 17 { 18 19 22 private GeneratorContext context; 23 24 32 private TKHashtable presentations; 33 34 public ReferenceTypeStatics (GeneratorContext context) { 35 36 this.context = context != null ? context : GeneratorContext.setup (); 37 this.presentations = null; 38 } 39 40 45 public void getTypes() 46 { 47 try { 48 TKQuery q = TKWebmanDBManager.newQuery(GenRefTypes.class); 49 q.execute(); 50 ResultSet rs = q.fetchResultSet(); 51 52 TKHashtable lastHash = null; 53 ReferenceType lastType = null; 54 int lastPresId = -1; 55 int lastIdx = -1; 56 57 presentations = new TKHashtable(); 58 59 while( rs.next() ) { 60 int newPresId = rs.getInt( "PRESENTATION_ID" ); 61 if( lastPresId != newPresId ) { 62 Integer newKey = new Integer ( newPresId ); 63 lastHash = (TKHashtable) presentations.get( newKey ); 64 if( lastHash == null ) { 65 lastHash = new TKHashtable(); 66 presentations.put( newKey, lastHash ); 67 } 68 lastIdx = -1; 69 } 70 int newIdx = rs.getInt( "PRESENTATION_COMPONENT_IDX" ); 71 if( lastIdx != newIdx ) { 72 Integer newKey = new Integer ( newIdx ); 73 lastType = (ReferenceType) lastHash.get( newKey ); 74 if( lastType == null ) { 75 lastType = new ReferenceType(context); 76 lastHash.put( newKey, lastType ); 77 } 78 } 79 lastType.addType( rs.getInt( "SUB_PRESENTATION_ID" ) ); 80 } 81 } 82 catch( SQLException e ) { 83 throw new TKSQLError( e.getMessage(), e ); 84 } 85 86 } 87 88 91 public final ReferenceType getType( int presId, int presIdx ) 92 { 93 if( presentations == null ) return null; 94 TKHashtable v = (TKHashtable)presentations.get( new Integer ( presId ) ); 95 if( v == null ) 96 return null; 97 return (ReferenceType)v.get( new Integer ( presIdx ) ); 98 } 99 100 105 public final boolean isValidType( int srcPresId, int srcPresIdx, int destPresId ) 106 { 107 ReferenceType t = getType( srcPresId, srcPresIdx ); 108 return ((t != null) && t.contains( destPresId )); 109 } 110 } 111
| Popular Tags
|