org.eclipse.xtend.core.macro.ConditionUtils.java Source code

Java tutorial

Introduction

Here is the source code for org.eclipse.xtend.core.macro.ConditionUtils.java

Source

/**
 * Copyright (c) 2013, 2016 itemis AG (http://www.itemis.eu) and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 */
package org.eclipse.xtend.core.macro;

import com.google.common.base.Objects;
import com.google.common.base.Preconditions;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.xtend.lib.macro.declaration.TypeReference;
import org.eclipse.xtend2.lib.StringConcatenation;
import org.eclipse.xtext.xbase.lib.Conversions;
import org.eclipse.xtext.xbase.lib.IterableExtensions;

/**
 * @author Anton Kosyakov - Initial contribution and API
 */
@SuppressWarnings("all")
public class ConditionUtils {
    public static void notRemoved(final EObject object, final String name) {
        StringConcatenation _builder = new StringConcatenation();
        _builder.append(name);
        _builder.append(" cannot be null");
        Preconditions.checkArgument((object != null), _builder);
        Resource _eResource = object.eResource();
        boolean _tripleNotEquals = (_eResource != null);
        StringConcatenation _builder_1 = new StringConcatenation();
        _builder_1.append(name);
        _builder_1.append(" cannot be removed");
        Preconditions.checkArgument(_tripleNotEquals, _builder_1);
    }

    public static void checkInferredTypeReferences(final String typeName, final TypeReference... types) {
        for (final TypeReference type : types) {
            if (((type != null) && type.isInferred())) {
                StringConcatenation _builder = new StringConcatenation();
                _builder.append("Cannot use inferred type as ");
                _builder.append(typeName);
                _builder.append(".");
                throw new IllegalArgumentException(_builder.toString());
            }
        }
    }

    public static void checkIterable(final Iterable<?> values, final String name) {
        StringConcatenation _builder = new StringConcatenation();
        _builder.append(name);
        _builder.append(" cannot be null");
        Preconditions.checkArgument((values != null), _builder);
        for (final Object value : values) {
            StringConcatenation _builder_1 = new StringConcatenation();
            _builder_1.append(name);
            _builder_1.append(" cannot contain null");
            Preconditions.checkArgument((value != null), _builder_1);
        }
    }

    public static void checkQualifiedName(final String qualifiedName, final String name) {
        boolean _isValidQualifiedName = ConditionUtils.isValidQualifiedName(qualifiedName);
        StringConcatenation _builder = new StringConcatenation();
        _builder.append(name);
        _builder.append(" has to be a valid qualified name");
        Preconditions.checkArgument(_isValidQualifiedName, _builder);
    }

    public static void checkJavaIdentifier(final String string, final String name) {
        boolean _isValidJavaIdentifier = ConditionUtils.isValidJavaIdentifier(string);
        StringConcatenation _builder = new StringConcatenation();
        _builder.append(name);
        _builder.append(" has to be a valid java identifier");
        Preconditions.checkArgument(_isValidJavaIdentifier, _builder);
    }

    public static void checkTypeName(final String typeName, final String valueType) {
        boolean _equals = Objects.equal(typeName, valueType);
        Preconditions.checkArgument(_equals, ConditionUtils.isNotApplicableMessage(valueType, typeName));
    }

    public static String isNotApplicableMessage(final String valueType, final String typeName) {
        StringConcatenation _builder = new StringConcatenation();
        _builder.append(valueType);
        _builder.append(" is not applicable at this location. Expected ");
        _builder.append(typeName);
        return _builder.toString();
    }

    public static boolean isValidQualifiedName(final String string) {
        boolean _xblockexpression = false;
        {
            if (((string == null) || (string.length() == 0))) {
                return false;
            }
            String[] _split = string.split("\\.");
            for (final String identifier : _split) {
                boolean _isValidJavaIdentifier = ConditionUtils.isValidJavaIdentifier(identifier);
                boolean _not = (!_isValidJavaIdentifier);
                if (_not) {
                    return false;
                }
            }
            _xblockexpression = true;
        }
        return _xblockexpression;
    }

    public static boolean isValidJavaIdentifier(final String string) {
        boolean _xblockexpression = false;
        {
            if (((string == null) || (string.length() == 0))) {
                return false;
            }
            final char[] charArray = string.toCharArray();
            boolean _isJavaIdentifierStart = Character.isJavaIdentifierStart(
                    (IterableExtensions.<Character>head(((Iterable<Character>) Conversions.doWrapArray(charArray))))
                            .charValue());
            boolean _not = (!_isJavaIdentifierStart);
            if (_not) {
                return false;
            }
            Iterable<Character> _tail = IterableExtensions
                    .<Character>tail(((Iterable<Character>) Conversions.doWrapArray(charArray)));
            for (final Character ch : _tail) {
                boolean _isJavaIdentifierPart = Character.isJavaIdentifierPart((ch).charValue());
                boolean _not_1 = (!_isJavaIdentifierPart);
                if (_not_1) {
                    return false;
                }
            }
            _xblockexpression = true;
        }
        return _xblockexpression;
    }
}