...
Anchor |
---|
| selfLinkedWorkgroupValidator-anchor |
---|
| selfLinkedWorkgroupValidator-anchor |
---|
|
selfLinkedWorkgroupValidator Questa validazione controlla che, il gruppo non venga collegato in un rapporto padre-figlio a se stesso
Dal punto di vista del modello dati si tratta degli elementi di tipo
workgroupLink Per maggiori dettagli cfr. modello dati dell'entità Gruppi di Lavoro
Code Block |
---|
language | js |
---|
linenumbers | true |
---|
collapse | true |
---|
|
//ricavo dal fragment dei workgroup
var workgroupSet = Packages.it.cilea.core.fragment.util.FragmentUtil.getCurrentFragmentSetByParentAndDiscriminator(object, "getChildWfItemLinkSet", "it.cilea.wf.model.WfItemLink", "workgroupLink", wfService);
//controllo banale, controllo che ci sia almeno un link, sennò non vado avanti
if(workgroupSet.size()>0){
//ricavo l'iteratore lo uso per ciclare il set
var workgroupSetIterator = workgroupSet.iterator();
while( workgroupSetIterator.hasNext() ){
//ricavo il singolo link e prendo il child che è il workgroup collegato
var workgroupLinkElement = workgroupSetIterator.next();
var workgroup= workgroupLinkElement.getChild();
if(object.getWfItemId()==workgroup.getWfItemId()){
//se sono uguali allora lancia l'errore
errors.reject("error.workgroup.workgroupLink.linkedToItself");
}
}
}
|
Anchor |
---|
approvedWorkgroupValidator-anchor | approvedWorkgroupValidator-anchor | | selfLinkedWorkgroupParentValidator-anchor |
---|
| selfLinkedWorkgroupParentValidator-anchor |
---|
|
selfLinkedWorkgroupParentValidator Questa validazione controlla che, il gruppo non venga collegato in un rapporto figlio-padre a se stesso Dal punto di vista del modello dati si tratta degli elementi di tipo workgroupLink Per maggiori dettagli cfr. modello dati dell'entità Gruppi di Lavoro Code Block |
---|
language | js |
---|
linenumbers | true |
---|
collapse | true |
---|
|
//ricavo dal fragment dei workgroup
var workgroupSet = Packages.it.cilea.core.fragment.util.FragmentUtil.getCurrentFragmentSetByParentAndDiscriminator(object, "getParentWfItemLinkSet", "it.cilea.wf.model.WfItemLink", "workgroupLink", wfService);
//controllo banale, controllo che ci sia almeno un link, sennò non vado avanti
if(workgroupSet.size()>0){
//ricavo l'iteratore lo uso per ciclare il set
var workgroupSetIterator = workgroupSet.iterator();
while( workgroupSetIterator.hasNext() ){
//ricavo il singolo link e prendo il child che è il workgroup collegato
var workgroupLinkElement = workgroupSetIterator.next();
var workgroup= workgroupLinkElement.getParent();
if(object.getWfItemId()==workgroup.getWfItemId()){
//se sono uguali allora lancia l'errore
errors.reject("error.workgroup.workgroupLinkParent.linkedToItself");
}
}
}
|
Anchor |
---|
| approvedWorkgroupValidator-anchor |
---|
| approvedWorkgroupValidator-anchor |
---|
|
approvedWorkgroupValidator Validazione che controlla che, mentre viene collegato ad altri gruppi di lavoro in un rapporto padre-figlio, il Gruppo non venga collegato a Gruppi che non siano in stato "approved" o "reopened", Dal punto di vista del modello dati si tratta degli elementi di tipo workgroupLink Per maggiori dettagli cfr. modello dati dell'entità Gruppi di Lavoro Code Block |
---|
language | js |
---|
linenumbers | true |
---|
collapse | true |
---|
|
//ricavo dal fragment dei workgroup
var workgroupSet = Packages.it.cilea.core.fragment.util.FragmentUtil.getCurrentFragmentSetByParentAndDiscriminator(object, "getChildWfItemLinkSet", "it.cilea.wf.model.WfItemLink", "workgroupLink", wfService);
//controllo banale, controllo che ci sia almeno un link, sennò non vado avanti
if(workgroupSet.size()>0){
//ricavo l'iteratore lo uso per ciclare il set
var workgroupSetIterator = workgroupSet.iterator();
while( workgroupSetIterator.hasNext() ){
//ricavo il singolo link e prendo il child che è il workgroup collegato
var workgroupLinkElement = workgroupSetIterator.next();
var workgroup= workgroupLinkElement.getChild();
//poi ricavo il suo stato e controllo che sia in approved o reopened
var workgroupState= workgroup.getWfState().getDescription();
if(!(Packages.org.apache.commons.lang.StringUtils.equals("approved", workgroupState) || Packages.org.apache.commons.lang.StringUtils.equals("reopened", workgroupState))){
//se non è approved o reopened allora lancia l'errore
errors.reject("error.workgroup.workgroupLink.mustBeApproved");
}
}
}
|
Anchor |
---|
| approvedWorkgroupParentValidator-anchor |
---|
| approvedWorkgroupParentValidator-anchor |
---|
|
approvedWorkgroupParentValidator approvedWorkgroupValidator Validazione che controlla che, mentre viene collegato ad altri gruppi di lavoro
in un rapporto figlio-padre, il Gruppo non venga collegato a Gruppi che non siano in stato "approved" o "reopened",
Dal punto di vista del modello dati si tratta degli elementi di tipo
workgroupLink Per maggiori dettagli cfr. modello dati dell'entità Gruppi di Lavoro
Code Block |
---|
language | js |
---|
linenumbers | true |
---|
collapse | true |
---|
|
//ricavo dal fragment dei workgroup
var workgroupSet = Packages.it.cilea.core.fragment.util.FragmentUtil.getCurrentFragmentSetByParentAndDiscriminator(object, "getChildWfItemLinkSetgetParentWfItemLinkSet", "it.cilea.wf.model.WfItemLink", "workgroupLink", wfService);
//controllo banale, controllo che ci sia almeno un link, sennò non vado avanti
if(workgroupSet.size()>0){
//ricavo l'iteratore lo uso per ciclare il set
var workgroupSetIterator = workgroupSet.iterator();
while( workgroupSetIterator.hasNext() ){
//ricavo il singolo link e prendo il childparent che è il workgroup collegato
var workgroupLinkElement = workgroupSetIterator.next();
var workgroup= workgroupLinkElement.getChildgetParent();
//poi ricavo il suo stato e controllo che sia in approved o reopened
var workgroupState= workgroup.getWfState().getDescription();
if(!(Packages.org.apache.commons.lang.StringUtils.equals("approved", workgroupState) || Packages.org.apache.commons.lang.StringUtils.equals("reopened", workgroupState))){
//se non è approved o reopened allora lancia l'errore
errors.reject("error.workgroup.workgroupLinkworkgroupLinkParent.mustBeApproved");
}
}
}
|
Anchor |
---|
| projectValidatorWorkgroup-anchor |
---|
| projectValidatorWorkgroup-anchor |
---|
|
projectValidatorWorkgroup Questa validazione controlla che per ogni progetto collegato al gruppo di lavoro, questo sia in uno stato che è contenuto nella variabile
ap.wkg.workgroupProjectLink.csvAllowedProjectState altrimenti solleva un errore.
Questa variabile di configurazione deve essere popolata con elenco (separato da virgola) degli stati accettabili per i progetti aggaciabili.
Gli stati configurati di default sono operative, concluded
Dal punto di vista del modello dati si tratta degli elementi di tipo
workgroupProjectLink Per maggiori dettagli cfr. modello dati dell'entità Gruppi di Lavoro
Code Block |
---|
language | js |
---|
linenumbers | true |
---|
collapse | true |
---|
|
//ricavo dal fragment dei project
var projectSet = Packages.it.cilea.core.fragment.util.FragmentUtil.getCurrentFragmentSetByParentAndDiscriminator(object, "getChildWfItemLinkSet", "it.cilea.wf.model.WfItemLink", "workgroupProjectLink", wfService);
//controllo banale, controllo che ci sia almeno un link, sennò non vado avanti
if(projectSet.size()>0){
//variabile che mi servirà più tardi
var configStatesArray=[];
//controllo per vedere se è definita la variabile di configurazione con gli stati accettati
var csvAllowedProjectState=Packages.it.cilea.core.configuration.util.ConfigurationUtil.getConfigValue("ap.wkg.workgroupProjectLink.csvAllowedProjectState");
if (!csvAllowedProjectState){
//nel caso non sia definita
throw "Configuration variable ap.wkg.workgroupProjectLink.csvAllowedProjectState MUST BE DEFINED";
}else{
//vado a immettere in una lista tutti gli stati ricavati
configStatesArray = csvAllowedProjectState.split(',');
}
//ricavo l'iteratore lo uso per ciclare il set
var projectSetIterator = projectSet.iterator();
while( projectSetIterator.hasNext() ){
//ricavo il singolo link e prendo il child che è il project
var projectLinkElement = projectSetIterator.next();
var project = projectLinkElement.getChild();
//poi ricavo il suo stato e controllo che sia in uno degli stati ricavati dalla config
var projectState = project.getWfState().getDescription();
//vado a confrontare lo stato del progetto con tutti quelli ricavati
//se non è tra quelli in configurazione, scateno il messaggio di errore
//variabile per controllo, viene rigenerata per ogni progetto collegato
var isPermited=false;
for(var i=0; i<configStatesArray.length; i++){
if(Packages.org.apache.commons.lang.StringUtils.equals(configStatesArray[i], projectState))
isPermited=true;
}
if(isPermited==false){
//uso questo stratagemma visto che non conosco quanti stati possano essere accettati
var arrayStatesNamesAllArray = [];
var arrayStatesNamesAllString="";
//ciclo i nomi degli stati permessi e vado a ricavare il loro nome 'normale'
for(var i=0; i<configStatesArray.length; i++){
if(i>0)
arrayStatesNamesAllString+=", ";
arrayStatesNamesAllString += Packages.it.cilea.core.util.MessageUtilConstant.messageUtil.findMessage("wfState." + configStatesArray[i]);
}
arrayStatesNamesAllArray.push(arrayStatesNamesAllString);
errors.reject("error.workgroup.project.stateMustBeAccepted", arrayStatesNamesAllArray, null);
}
}
}
|
...