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}