Search in sources :

Example 1 with OtpErlangLong

use of com.ericsson.otp.erlang.OtpErlangLong in project intellij-elixir by KronicDeth.

the class Overridable method getChildren.

/**
     * Returns the list of children of the tree element.
     *
     * @return the list of children.
     */
@NotNull
@Override
public TreeElement[] getChildren() {
    QuotableKeywordList keywordArguments = ElixirPsiImplUtil.keywordArguments(navigationItem);
    TreeElement[] children;
    if (keywordArguments != null) {
        List<QuotableKeywordPair> quotableKeywordPairList = keywordArguments.quotableKeywordPairList();
        List<TreeElement> treeElementList = new ArrayList<TreeElement>(quotableKeywordPairList.size());
        for (QuotableKeywordPair quotableKeywordPair : quotableKeywordPairList) {
            Quotable keywordKey = quotableKeywordPair.getKeywordKey();
            OtpErlangObject quotedKeywordKey = keywordKey.quote();
            String name;
            if (quotedKeywordKey instanceof OtpErlangAtom) {
                OtpErlangAtom keywordKeyAtom = (OtpErlangAtom) quotedKeywordKey;
                name = keywordKeyAtom.atomValue();
            } else {
                name = keywordKey.getText();
            }
            Quotable keywordValue = quotableKeywordPair.getKeywordValue();
            OtpErlangObject quotedKeywordValue = keywordValue.quote();
            Integer arity = null;
            if (quotedKeywordValue instanceof OtpErlangLong) {
                OtpErlangLong keywordValueErlangLong = (OtpErlangLong) quotedKeywordValue;
                try {
                    arity = keywordValueErlangLong.intValue();
                } catch (OtpErlangRangeException e) {
                    arity = null;
                }
            }
            boolean overridable = true;
            //noinspection ConstantConditions
            treeElementList.add(new CallReference(modular, quotableKeywordPair, Timed.Time.RUN, overridable, name, arity));
        }
        children = treeElementList.toArray(new TreeElement[treeElementList.size()]);
    } else {
        children = new TreeElement[0];
    }
    return children;
}
Also used : OtpErlangLong(com.ericsson.otp.erlang.OtpErlangLong) ArrayList(java.util.ArrayList) OtpErlangRangeException(com.ericsson.otp.erlang.OtpErlangRangeException) OtpErlangAtom(com.ericsson.otp.erlang.OtpErlangAtom) TreeElement(com.intellij.ide.util.treeView.smartTree.TreeElement) Quotable(org.elixir_lang.psi.Quotable) OtpErlangObject(com.ericsson.otp.erlang.OtpErlangObject) QuotableKeywordList(org.elixir_lang.psi.QuotableKeywordList) QuotableKeywordPair(org.elixir_lang.psi.QuotableKeywordPair) NotNull(org.jetbrains.annotations.NotNull)

Example 2 with OtpErlangLong

use of com.ericsson.otp.erlang.OtpErlangLong in project intellij-elixir by KronicDeth.

the class Import method keywordValueToArity.

@Nullable
private static Integer keywordValueToArity(@NotNull final Quotable keywordValue) {
    OtpErlangObject quotedKeywordValue = keywordValue.quote();
    Integer arity = null;
    if (quotedKeywordValue instanceof OtpErlangLong) {
        OtpErlangLong quotedKeywordValueLong = (OtpErlangLong) quotedKeywordValue;
        try {
            arity = quotedKeywordValueLong.intValue();
        } catch (OtpErlangRangeException e) {
            Logger.error(Import.class, "Arity in OtpErlangLong could not be downcast to an int", keywordValue);
        }
    }
    return arity;
}
Also used : OtpErlangLong(com.ericsson.otp.erlang.OtpErlangLong) OtpErlangObject(com.ericsson.otp.erlang.OtpErlangObject) OtpErlangRangeException(com.ericsson.otp.erlang.OtpErlangRangeException) Nullable(org.jetbrains.annotations.Nullable)

Aggregations

OtpErlangLong (com.ericsson.otp.erlang.OtpErlangLong)2 OtpErlangObject (com.ericsson.otp.erlang.OtpErlangObject)2 OtpErlangRangeException (com.ericsson.otp.erlang.OtpErlangRangeException)2 OtpErlangAtom (com.ericsson.otp.erlang.OtpErlangAtom)1 TreeElement (com.intellij.ide.util.treeView.smartTree.TreeElement)1 ArrayList (java.util.ArrayList)1 Quotable (org.elixir_lang.psi.Quotable)1 QuotableKeywordList (org.elixir_lang.psi.QuotableKeywordList)1 QuotableKeywordPair (org.elixir_lang.psi.QuotableKeywordPair)1 NotNull (org.jetbrains.annotations.NotNull)1 Nullable (org.jetbrains.annotations.Nullable)1