package org.erlide.builder; import com.ericsson.otp.erlang.OtpErlang; import com.ericsson.otp.erlang.OtpErlangAtom; import com.ericsson.otp.erlang.OtpErlangList; import com.ericsson.otp.erlang.OtpErlangObject; import com.ericsson.otp.erlang.OtpErlangTuple; import com.google.common.base.Strings; import java.util.Collection; import java.util.List; import org.eclipse.core.runtime.Assert; import org.eclipse.xtext.xbase.lib.CollectionLiterals; import org.eclipse.xtext.xbase.lib.Conversions; import org.eclipse.xtext.xbase.lib.Exceptions; import org.eclipse.xtext.xbase.lib.Pair; import org.erlide.builder.CompilerOption; import org.erlide.common.util.TermParser; @SuppressWarnings("all") public class DefineOption extends CompilerOption { private List<String> fieldLabels; public DefineOption(final String name, final String[] fieldLabels, final String description, final String tooltip) { super(name, description, tooltip); this.fieldLabels = ((List<String>)Conversions.doWrapArray(fieldLabels)); int _size = ((List<String>)Conversions.doWrapArray(fieldLabels)).size(); boolean _equals = (_size == 2); Assert.isLegal(_equals); } public String[] getFieldLabels() { return ((String[])Conversions.unwrapArray(this.fieldLabels, String.class)); } public OtpErlangList toTerm(final Collection<Pair<String, String>> values) { try { final List<OtpErlangObject> defines = CollectionLiterals.<OtpErlangObject>newArrayList(); for (final Pair<String, String> value : values) { { final String key = value.getKey(); final String val1 = value.getValue(); final OtpErlangAtom tag = new OtpErlangAtom(this.name); final OtpErlangAtom okey = new OtpErlangAtom(key); boolean _isNullOrEmpty = Strings.isNullOrEmpty(val1); if (_isNullOrEmpty) { OtpErlangTuple _mkTuple = OtpErlang.mkTuple(tag, okey); defines.add(_mkTuple); } else { TermParser _parser = TermParser.getParser(); final OtpErlangObject ovalue = _parser.parse(val1); OtpErlangTuple _mkTuple_1 = OtpErlang.mkTuple(tag, okey, ovalue); defines.add(_mkTuple_1); } } } return OtpErlang.mkList(defines); } catch (Throwable _e) { throw Exceptions.sneakyThrow(_e); } } }