/*
Framework di pattern (panoramica sulla struttura di implementazione pattern)
Framework trovato in com.ibm.xtools.patterns.framework plug-in
Implementazioni di esempio trovate in com.ibm.xtools.patterns.sample plug-in
*/
class Pattern extends AbstractPatternDefinition {
... inizializza i metadati (in modo diverso in base a statico o dinamico)
... inizializza i parametri di pattern contenuti privatamente
... dichiara le dipendenze dei parametri di pattern (per attivare le chiamate di aggiornamento sui parametri)
private class Instance extends AbstractPatternInstance {
... gestisce il metodo expand per le espansioni dirette dall'istanza (fornisce valori predefiniti)
... gestisce la logica per il comportamento dell'istanza basato sulla destinazione (fornisce valori predefiniti)
... gestisce l'assegnazione nomi delle rappresentazioni dell'istanza dinamicamente
}
private class Parameter [0..*] extends AbstractPatternParameter {
... inizializza i metadati (in modo diverso in base a statico o dinamico)
... dichiara il vincolo OCL2 facoltativo per la convalida dei valori proposti
... gestisce il metodo expand per i valori aggiunti diretti dal parametro (fornisce valori predefiniti)
... gestisce il metodo expand per i valori rimossi diretti dal parametro (fornisce valori predefiniti)
... gestisce il metodo expand per i valori gestiti diretti dal parametro (fornisce valori predefiniti)
... gestisce il metodo expand per le notifiche di dipendenza dei parametri
... gestisce il metodo is valid per la convalida dei valori proposti (fornisce valori predefiniti)
}
}