/*
*
*/
package captor.domainsystem.metamodelvalidator.semanticValidator.parts;
import java.util.Iterator;
import java.util.List;
import captor.domainsystem.FormType;
import captor.domainsystem.NextFormType;
import captor.domainsystem.NextFormsType;
import captor.domainsystem.metamodelvalidator.ValidationResults;
import captor.domainsystem.metamodelvalidator.semanticValidator.SemanticValidatorUtil;
import captor.lib.util.IntegerUtil;
import captor.modelsystem.Model;
/**
* @author Kicho
*
*/
public class NextPatternsPart extends Part {
public NextPatternsPart(Model model, ValidationResults vr) {
super(model, vr);
}
public void check(FormType pt) {
NextFormsType npst = pt.getNextForms();
if ( npst != null ) {
vr.ident();
vr.appendBuffer("Validating nextForm tag:");
List nplist = npst.getNextForm();
for(Iterator it1 = nplist.iterator(); it1.hasNext();) {
NextFormType npt = (NextFormType) it1.next();
if ( npt != null ) {
String id = npt.getId();
String multiplicity = npt.getMaxChilds();
vr.ident();
vr.appendBuffer("Validating nextForm tag id (" + id + ") and multiplicity(" + multiplicity + ").");
if ( !SemanticValidatorUtil.validateNextPatternId(id) ) {
vr.ident();
vr.newLine();
vr.appendBuffer("- Error : NextForm tag validation error.");
vr.appendBuffer("- Source error: the id tag '<id>" + id + "</id>' has a error.");
vr.appendBuffer("- the id '" + id + "' is not valid.");
vr.appendBuffer("- Correction : put the id in the correct form.");
vr.newLine();
vr.appendBuffer("- Examples:");
vr.appendBuffer(" <id>1.1</id>");
vr.appendBuffer(" <id>1.2</id>");
vr.appendBuffer(" <id>3.*</id>");
vr.appendBuffer(" <id>10.3</id>");
vr.newLine();
vr.setSuccess(false);
vr.dident();
return;
}
if ( !IntegerUtil.isInt(multiplicity) ) {
if ( !multiplicity.toUpperCase().equals("N") ) {
vr.ident();
vr.newLine();
vr.appendBuffer("- Error : NextForm tag validation error.");
vr.appendBuffer("- Source error: the multiplicity tag '<multiplicity>" + multiplicity + "</multiplicity>' has a error.");
vr.appendBuffer("- the multiplicity value '" + multiplicity + "' is not valid.");
vr.appendBuffer("- Correction : put the multiplicity in the correct form.");
vr.newLine();
vr.appendBuffer("- Examples:");
vr.appendBuffer(" <multiplicity>1</multiplicity>");
vr.appendBuffer(" <multiplicity>2</multiplicity>");
vr.appendBuffer(" <multiplicity>3</multiplicity>");
vr.appendBuffer(" <multiplicity>5</multiplicity>");
vr.appendBuffer(" <multiplicity>10</multiplicity>");
vr.appendBuffer(" <multiplicity>1000</multiplicity>");
vr.appendBuffer(" <multiplicity>n</multiplicity>");
vr.appendBuffer(" <multiplicity>N</multiplicity>");
vr.newLine();
vr.setSuccess(false);
vr.dident();
return;
}
}
if ( d.getFormById(id) == null ) {
vr.ident();
vr.newLine();
vr.appendBuffer("- Error : NextForm tag validation error.");
vr.appendBuffer("- Source error: the id tag '<id>" + id + "</id>' has a error.");
vr.appendBuffer("- there is no form with this id in the meta-model.");
vr.appendBuffer("- Correction : Remove or correct the id value.");
vr.newLine();
vr.setSuccess(false);
vr.dident();
return;
}
vr.appendBuffer("Validating nextForm tag id (" + id + ") and multiplicity(" + multiplicity + ") - OK");
vr.dident();
}//if
}//for
vr.appendBuffer("Validating nextForm tag - OK");
vr.dident();
vr.newLine();
}//if
}//method
}