/*
 * generated by Xtext 2.10.0
 */
package org.eclipse.qvtd.doc.validation;


/**
 * This class contains custom validation rules. 
 *
 * See https://www.eclipse.org/Xtext/documentation/303_runtime_concepts.html#validation
 */
public class MiniOCLCSValidator extends AbstractMiniOCLCSValidator {
	
//	public static final INVALID_NAME = 'invalidName'
//
//	@Check
//	public void checkGreetingStartsWithCapital(Greeting greeting) {
//		if (!Character.isUpperCase(greeting.getName().charAt(0))) {
//			warning("Name should start with a capital",
//					MiniOCLCSPackage.Literals.GREETING__NAME,
//					INVALID_NAME);
//		}
//	}
	
}
