001/** 002 * Copyright (c) 2017, 2018 Red Hat Inc 003 * All rights reserved. This program and the accompanying materials 004 * are made available under the terms of the Eclipse Public License v1.0 005 * which accompanies this distribution, and is available at 006 * http://www.eclipse.org/legal/epl-v10.html 007 * 008 * Contributors: 009 * Jens Reimann - initial API and implementation 010 */ 011package de.dentrassi.varlink.idl.validation; 012 013import de.dentrassi.varlink.idl.validation.AbstractVarlinkIdlValidator; 014import de.dentrassi.varlink.idl.varlinkIdl.Field; 015import de.dentrassi.varlink.idl.varlinkIdl.VarlinkIdlPackage; 016import org.eclipse.xtext.validation.Check; 017 018@SuppressWarnings("all") 019public class VarlinkIdlValidator extends AbstractVarlinkIdlValidator { 020 public final static String FIELD_NOT_LOWER_CASE = "field.notLowerCase"; 021 022 @Check 023 public void checkFieldName(final Field field) { 024 if (((field.getName() == null) || field.getName().isEmpty())) { 025 return; 026 } 027 boolean _startsWith = field.getName().startsWith("_"); 028 if (_startsWith) { 029 this.error("Field names must not start with \'_\'", field, VarlinkIdlPackage.Literals.FIELD__NAME); 030 } 031 boolean _endsWith = field.getName().endsWith("_"); 032 if (_endsWith) { 033 this.error("Field names must not end with \'_\'", field, VarlinkIdlPackage.Literals.FIELD__NAME); 034 } 035 boolean _isLowerCase = Character.isLowerCase(field.getName().charAt(0)); 036 boolean _not = (!_isLowerCase); 037 if (_not) { 038 this.error("Field names should start with lower case letter", field, VarlinkIdlPackage.Literals.FIELD__NAME, 039 VarlinkIdlValidator.FIELD_NOT_LOWER_CASE); 040 } 041 } 042}