/* * */ package captor.domainsystem.metamodelvalidator.semanticValidator.parts; import java.util.Iterator; import java.util.List; import captor.domainsystem.FormType; import captor.domainsystem.FormsType; import captor.domainsystem.metamodelvalidator.ValidationResults; import captor.modelsystem.Model; /** * @author Kicho * */ public class IdNameAndVariantPart extends Part { public IdNameAndVariantPart(Model model, ValidationResults vr) { super(model, vr); } public void check(FormType pt, FormsType pts) { String id = pt.getId(); String name = pt.getName(); String variant = pt.getVariant(); //verificar se o id � branco ou nulo //verificar se o nome � branco e nulo //verificar se a variant � branca ou nula //verificar se existe outro padr�o com esse nome/variant //verificar se existe dois padr�es com o mesmo id vr.ident(); vr.appendBuffer("Validating form id, name and variant from meta-model."); vr.dident(); if ( id == null || id.trim().equals("") ) { vr.ident(); vr.newLine(); vr.appendBuffer("- Error : There is a form with no ID."); vr.appendBuffer("- Correction: Give a form id for this form."); vr.newLine(); vr.appendBuffer("- Form description: "); vr.appendBuffer(" form id: " + id); vr.appendBuffer(" form name: " + name); vr.appendBuffer(" form variant: " + variant); vr.newLine(); vr.appendBuffer("- Example: "); vr.newLine(); vr.appendBuffer(" <form> "); vr.appendBuffer(" <id>1.1</id>"); vr.appendBuffer(" ...."); vr.appendBuffer(" ...."); vr.dident(); vr.setSuccess(false); return; } if ( name == null || name.trim().equals("") ) { vr.ident(); vr.newLine(); vr.appendBuffer("- Error : There is a form with no name."); vr.appendBuffer("- Correction: Give a form name for this form."); vr.newLine(); vr.appendBuffer("- Form description: "); vr.appendBuffer(" form id: " + id); vr.appendBuffer(" form name: " + name); vr.appendBuffer(" form variant: " + variant); vr.newLine(); vr.appendBuffer("- Example: "); vr.newLine(); vr.appendBuffer(" <form> "); vr.appendBuffer(" <name>1.1</name>"); vr.appendBuffer(" ...."); vr.appendBuffer(" ...."); vr.dident(); vr.setSuccess(false); return; } if ( variant == null || variant.trim().equals("") ) { vr.ident(); vr.newLine(); vr.appendBuffer("- Error : There is a form with no variant value."); vr.appendBuffer("- Correction: Give a form variant for this form."); vr.newLine(); vr.appendBuffer("- Form description: "); vr.appendBuffer(" form id: " + id); vr.appendBuffer(" form name: " + name); vr.appendBuffer(" form variant: " + variant); vr.newLine(); vr.appendBuffer("- Examples: "); vr.newLine(); vr.appendBuffer(" <form> "); vr.appendBuffer(" <variant>Default</variant>"); vr.appendBuffer(" ...."); vr.appendBuffer(" ...."); vr.newLine(); vr.appendBuffer(" <form> "); vr.appendBuffer(" <variant>Recurso Simples</variant>"); vr.appendBuffer(" ...."); vr.appendBuffer(" ...."); vr.dident(); vr.setSuccess(false); return; } List patternList = pts.getForm(); if ( patternList == null ) { vr.ident(); vr.newLine(); vr.appendBuffer("There are no forms in the meta-model."); vr.dident(); vr.setSuccess(false); return; } //------------------------------------------------------------------------- //------------------------------------------------------------------------- //verificar se existe outro padr�o com o mesmo nome/variant ou mesmo id for(Iterator it1 = patternList.iterator(); it1.hasNext();) { FormType pt2 = (FormType) it1.next(); if ( pt == pt2 ) continue; if ( pt2.getName().toUpperCase().equals(pt.getName().toUpperCase()) && pt2.getVariant().toUpperCase().equals(pt.getVariant().toUpperCase()) ) { vr.ident(); vr.newLine(); vr.appendBuffer("- Error : There two form with the same name and variant."); vr.appendBuffer("- Correction: Give a diferent form name/variant for each form."); vr.newLine(); vr.appendBuffer("- Form description: "); vr.appendBuffer(" form id: " + id); vr.appendBuffer(" form name: " + name); vr.appendBuffer(" form variant: " + variant); vr.dident(); vr.setSuccess(false); return; } if ( pt2.getId().toUpperCase().equals(pt.getId().toUpperCase()) ) { vr.ident(); vr.newLine(); vr.appendBuffer("- Error : There two form with the same id."); vr.appendBuffer("- Correction: Give a diferent form id for each form."); vr.newLine(); vr.appendBuffer("- Form description: "); vr.appendBuffer(" form id: " + id); vr.appendBuffer(" form name: " + name); vr.appendBuffer(" form variant: " + variant); vr.dident(); vr.setSuccess(false); return; } } vr.ident(); vr.appendBuffer("Validating form id, name and variant from meta-model - OK"); vr.newLine(); vr.dident(); } }