I generatori creano o modificano risorse dello spazio di lavoro, servendosi solitamente di altre risorse. Si tratta di potenti meccanismi che consentono di rafforzare i vincoli di alcuni domini. Ad esempio, un generatore Java converte file di origine Java (file .Java) in file di classe eseguibili (file .class), un generatore di collegamenti Web aggiorna i collegamenti a file i cui nomi o le cui posizioni vengono modificate, ecc. Non appena viene creata o modificata una risorsa, viene eseguito un generatore che consente di mantenere i vincoli. Non è necessario che la trasformazione sia univoca. Ad esempio, un singolo file .java può generare diversi file .class.
Esistono due diversi modi di operare rispetto alla generazione: in generazione automatica o con generazione manuale iniziata dall'utente.
Gli utenti che non necessitano di un controllo dettagliato sull'esecuzione delle generazioni possono attivare la generazione automatica. Con questa opzione attivata, le generazioni vengono eseguite dopo ogni serie di modifiche alle risorse (ad esempio, dopo il salvataggio di un file, l'importazione di uno ZIP, ecc.). La generazione automatica è efficiente poiché la quantità di lavoro effettuata è proporzionale alla quantità di modifiche eseguite. I vantaggi della generazione automatica consistono nel disporre sempre di risorse derivate (ad esempio, file .class Java) aggiornate. La funzione di generazione automatica viene attivata/disattivata attraverso l'opzione Esegui automaticamente generazione alla modifica delle risorse sulla pagina Finestra > Preferenze > Workbench.
Se l'utente richiede un maggiore controllo sull'esecuzione delle generazioni, è possibile disattivare l'esecuzione automatica delle generazioni ed eseguirle manualmente. Ciò risulta preferibile nei casi in cui l'esecuzione delle generazioni deve essere rimandata al termine di un'ampia serie di modifiche. In questo caso, non è vantaggioso eseguire la funzione di generazione automatica. La funzione di generazione può essere richiamata manualmente i vari modi, ad esempio, selezionando Rigenera tutto dal menu di scelta rapida di un progetto.
Lo svantaggio della generazione manuale consiste nel fatto che le attività create per indicare gli errori di generazione diventano rapidamente obsolete. Inoltre, è importante ricordare di eseguire la generazione manuale prima dell'output di generazione (ad esempio, prima di eseguire il programma Java).
Esistono due tipi di generazione: completa e incrementale. Una generazione incrementale trae vantaggio da una condizione precedente e applica le trasformazioni dei generatori configurati alle risorse che hanno subito una modifica dall'ultima volta in cui è stata calcolata la condizione precedente (ovvero dall'ultima generazione). La generazione automatica utilizza la generazione incrementale per ottenere una maggiore efficienza.
Una generazione completa (o rigenerazione) elimina qualsiasi condizione precedente e trasforma tutte le risorse necessarie in base alle regole di dominio dei generatori configurati. La prima generazione incrementale corrisponde a una generazione completa in quanto non esiste alcuna condizione precedente su cui operare.
In base alle necessità dell'utente, le generazioni complete e incrementali possono essere eseguite su un insieme specifico di progetti o sull'intero spazio di lavoro. Non è possibile generare file e cartelle.