001 package org.mesopotamia.lang.java; 002 003 import org.mesopotamia.MesopotamiaException; 004 import org.mesopotamia.NodeData; 005 import org.mesopotamia.RepositoryLanguage; 006 import org.mesopotamia.Scan; 007 import org.mesopotamia.lang.java.ref.Reference; 008 import org.mesopotamia.lang.java.ref.Scope; 009 import org.mesopotamia.lang.java.ref.TypeInfo; 010 import org.mesopotamia.lang.java.ref.TypeSpecInfo; 011 012 public class StringConstant extends Constant implements Reference<TypeInfo> { 013 014 public StringConstant( 015 NodeData xData, 016 Class<?> context, 017 Scan scan, 018 RepositoryLanguage language, 019 Object environment) throws MesopotamiaException { 020 super(xData, context, scan, language, environment); 021 022 // Select attributes 023 024 } 025 026 public TypeInfo getInfo() { 027 Scope enclosingScope = findParent(Scope.class); 028 return enclosingScope == null ? null : enclosingScope.findType("java.lang.String"); 029 } 030 031 @Override 032 public TypeSpecInfo getTypeSpecInfo() { 033 Scope ec = findParent(Scope.class); 034 if (ec==null) { 035 return null; 036 } 037 final TypeInfo stringInfo = ec.findType("java.lang.String"); 038 return stringInfo == null ? null : new TypeSpecInfo() { 039 040 public int getDimensions() { 041 return 0; 042 } 043 044 public TypeInfo getTypeInfo() { 045 return stringInfo; 046 } 047 048 }; 049 } 050 }