001    package org.mesopotamia.lang.java;
002    
003    import org.mesopotamia.LanguageElement;
004    import org.mesopotamia.MesopotamiaException;
005    import org.mesopotamia.MesopotamiaRuntimeException;
006    import org.mesopotamia.NodeData;
007    import org.mesopotamia.RepositoryLanguage;
008    import org.mesopotamia.Scan;
009    import org.mesopotamia.lang.java.ref.Reference;
010    import org.mesopotamia.lang.java.ref.TypeSpecInfo;
011    
012    public class Parenthesis extends PrimaryExpression implements Reference<JavaLanguageElement> {
013    
014            public Parenthesis(NodeData xData, Class<?> context, Scan scan,
015                            RepositoryLanguage language, Object environment) throws MesopotamiaException {
016                    super(xData, context, scan, language, environment);
017    
018                    // Select attributes
019    
020            }
021    
022            @SuppressWarnings("unchecked")
023            public JavaLanguageElement getInfo() {
024                    try {
025                            LanguageElement child = getChild(0);
026                            if (child instanceof Reference) {
027                                    return ((Reference<JavaLanguageElement>) child).getInfo();
028                            }
029                    } catch (MesopotamiaException e) {
030                            throw new MesopotamiaRuntimeException(e);
031                    }
032                    return null;
033            }
034            
035            public TypeSpecInfo getTypeSpecInfo() {
036                    try {
037                            LanguageElement firstOperand = getChild(0);
038                            return firstOperand instanceof Expression ? ((Expression) firstOperand).getTypeSpecInfo() : null;
039                    } catch (MesopotamiaException e) {
040                            throw new MesopotamiaRuntimeException(e);
041                    }
042            }
043    
044    }