/** INTERNAL: */
 protected Vector<DatabaseField> getVectorOfFieldsToGenerate(int operation, DatabaseTable table) {
   if (this.main[operation][ALL] == null) {
     return null;
   }
   if (this.tableToFieldsForGenerationMap == null) {
     // the method is called for the first time
     tableToFieldsForGenerationMap = new HashMap[NUM_OPERATIONS];
   }
   if (this.tableToFieldsForGenerationMap[operation] == null) {
     // the method is called for the first time for this operation
     this.tableToFieldsForGenerationMap[operation] = new HashMap();
   }
   Vector<DatabaseField> fieldsForGeneration =
       this.tableToFieldsForGenerationMap[operation].get(table);
   if (fieldsForGeneration == null) {
     // the method is called for the first time for this operation and this table
     fieldsForGeneration = new NonSynchronizedVector();
     Iterator it = this.main[operation][ALL].iterator();
     while (it.hasNext()) {
       DatabaseField field = (DatabaseField) it.next();
       if (field.getTable().equals(table)) {
         fieldsForGeneration.add(field);
       }
     }
     this.tableToFieldsForGenerationMap[operation].put(table, fieldsForGeneration);
   }
   return fieldsForGeneration;
 }
 /** INTERNAL: */
 protected void fieldIsNotFromDescriptor(DatabaseField field) {
   if (field.getTable().equals(getDescriptor().getDefaultTable())) {
     if (this.fieldsNotFromDescriptor_DefaultTable == null) {
       this.fieldsNotFromDescriptor_DefaultTable = new HashMap();
     }
     this.fieldsNotFromDescriptor_DefaultTable.put(field, field);
   } else {
     if (this.fieldsNotFromDescriptor_OtherTables == null) {
       this.fieldsNotFromDescriptor_OtherTables = new HashMap();
     }
     this.fieldsNotFromDescriptor_OtherTables.put(field, field);
   }
 }