blob: 4588a8befce89194122bcc76709bcc0ead1d3edf [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2006 Oracle Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Oracle Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.bpel.validator.rules;
/**
* Dependency on the BPEL validator model facade.
*/
import org.eclipse.bpel.validator.model.Filters;
import org.eclipse.bpel.validator.model.INode;
import org.eclipse.bpel.validator.model.IProblem;
import org.eclipse.bpel.validator.model.ARule;
import org.eclipse.bpel.validator.model.Selector;
/**
* Validates While nodes.
*
* @author Michal Chmielewski (michal.chmielewski@oracle.com)
* @date Oct 2nd, 2006
*
*/
public class WhileValidator extends CActivityValidator {
protected String exprLanguage;
protected INode conditionExpr;
protected INode activity;
/**
* Start the validation of this node.
*/
@Override
protected void start () {
super.start();
conditionExpr = mNode.getNode(ND_CONDITION);
activity = mSelector.selectNode(mNode, Selector.ALL, Filters.ACTIVITIES);
}
/**
* @see org.eclipse.bpel.validator.rules.CValidator#checkChildren()
*/
@Override
public void checkChildren () {
super.checkChildren();
checkChild(ND_CONDITION, 1, 1);
checkChild(Filters.ACTIVITIES,1,1);
}
/**
* Do a basic sanity check on the wait activity.
*/
@ARule(
author = "michal.chmielewski@oracle.com",
desc = "Check if a condition is present on the while activity",
date = "10/2/2006",
sa = 1000 ,
errors="BPELC_NO_EXPRESSION"
)
public void rule_BasicSanityCheck_11 () {
IProblem problem;
if (conditionExpr == null) {
// both undefined
problem = createError();
problem.fill(
"BPELC_NO_EXPRESSION", //$NON-NLS-1$
AT_CONDITION,
toString(mNode.nodeName()) );
}
}
/** End of public rule methods.
*
* Other methods are support methods for this class to perform its
* validation function.
*
*/
}