Package fr.obeo.releng.targetplatform.conversion

Source Code of fr.obeo.releng.targetplatform.conversion.TargetPlatformConverter

package fr.obeo.releng.targetplatform.conversion;

import com.google.common.base.Objects;
import com.google.inject.Singleton;
import fr.obeo.releng.targetplatform.conversion.FQNConverter;
import fr.obeo.releng.targetplatform.conversion.TargetPlatformSTRINGValueConverter;
import fr.obeo.releng.targetplatform.conversion.VersionRangeConverter;
import org.eclipse.equinox.p2.metadata.VersionRange;
import org.eclipse.xtext.Grammar;
import org.eclipse.xtext.common.services.DefaultTerminalConverters;
import org.eclipse.xtext.conversion.IValueConverter;
import org.eclipse.xtext.conversion.ValueConverter;
import org.eclipse.xtext.conversion.ValueConverterException;
import org.eclipse.xtext.nodemodel.INode;
import org.eclipse.xtext.util.Strings;
import org.eclipse.xtext.xbase.lib.Exceptions;

@Singleton
@SuppressWarnings("all")
public class TargetPlatformConverter extends DefaultTerminalConverters {
  private final IValueConverter<String> versionRangeValueConverter = new VersionRangeConverter();
 
  @ValueConverter(rule = "VersionRange")
  public IValueConverter<String> getVersionRangeConverter() {
    return this.versionRangeValueConverter;
  }
 
  private final IValueConverter<String> stringValueConverter = new TargetPlatformSTRINGValueConverter();
 
  @ValueConverter(rule = "STRING")
  public IValueConverter<String> getStringValueConverter() {
    return this.stringValueConverter;
  }
 
  public static String parseVersionRange(final String string, final INode node) {
    boolean _isEmpty = Strings.isEmpty(string);
    if (_isEmpty) {
      throw new ValueConverterException("Couldn\'t convert empty string to a VersionRange value.", node, null);
    }
    boolean _equalsIgnoreCase = "lazy".equalsIgnoreCase(string);
    boolean _not = (!_equalsIgnoreCase);
    if (_not) {
      try {
        final VersionRange value = new VersionRange(string);
        return value.toString();
      } catch (final Throwable _t) {
        if (_t instanceof IllegalArgumentException) {
          final IllegalArgumentException e = (IllegalArgumentException)_t;
          throw new ValueConverterException((("Couldn\'t convert \'" + string) + "\' to a VersionRange value."), node, e);
        } else {
          throw Exceptions.sneakyThrow(_t);
        }
      }
    } else {
      return string;
    }
  }
 
  private IValueConverter<String> qualifiedNameValueConverter;
 
  @ValueConverter(rule = "QualifiedName")
  public IValueConverter<String> getQualifiedNameConverter() {
    boolean _equals = Objects.equal(this.qualifiedNameValueConverter, null);
    if (_equals) {
      Grammar _grammar = this.getGrammar();
      FQNConverter _fQNConverter = new FQNConverter(_grammar);
      this.qualifiedNameValueConverter = _fQNConverter;
    }
    return this.qualifiedNameValueConverter;
  }
}
TOP

Related Classes of fr.obeo.releng.targetplatform.conversion.TargetPlatformConverter

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.