/*******************************************************************************
* Copyright (c) 2008 SAP
* see https://research.qkal.sap.corp/mediawiki/index.php/CoMONET
*
* Date: $Date: 2008-03-27 17:34:32 +0100 (Do, 27 Mrz 2008) $
* @version $Revision: 696 $
* @author: $Author: c5107456 $
*******************************************************************************/
package com.sap.furcas.parsergenerator.tcs.t2m.validation;
import java.util.Collection;
import java.util.Iterator;
import com.sap.furcas.metamodel.FURCAS.TCS.ClassTemplate;
import com.sap.furcas.metamodel.FURCAS.TCS.ConcreteSyntax;
import com.sap.furcas.metamodel.FURCAS.TCS.Template;
import com.sap.furcas.parsergenerator.tcs.t2m.grammar.SemanticErrorBucket;
import com.sap.furcas.runtime.common.interfaces.IMetaModelLookup;
/**
* The Class UniquenessValidation.
*/
public class MainTemplateValidation implements ISyntaxValidationRule {
/* (non-Javadoc)
* @see com.sap.mi.textual.grammar.impl.tcs.t2m.validation.ISyntaxValidationRule#validate(TCS.ConcreteSyntax)
*/
@Override
public void validate(ConcreteSyntax syntax, IMetaModelLookup<?> metaLookup, SemanticErrorBucket errorBucket) {
Collection<Template> templates = syntax.getTemplates();
boolean mainfound = false;
for (Iterator<Template> iterator = templates.iterator(); iterator.hasNext();) {
Template template = iterator.next();
if (template instanceof ClassTemplate) {
ClassTemplate ct = (ClassTemplate) template;
if (ct.isIsMain()) {
if (!mainfound) {
mainfound = true;
} else {
errorBucket.addError("Duplicate definition of main method.", template);
}
}
}
}
if (mainfound == false) {
errorBucket.addError("No main Classtemplate declared.", syntax);
}
}
}