package org.fandev.lang.fan.psi.impl.types; import org.fandev.lang.fan.psi.impl.FanBaseElementImpl; import org.fandev.lang.fan.psi.impl.FanMapType; import org.fandev.lang.fan.psi.api.types.FanTypeElement; import org.fandev.lang.fan.psi.api.types.FanMapTypeElement; import org.fandev.lang.fan.psi.api.statements.typeDefs.FanTypeDefinition; import org.jetbrains.annotations.NotNull; import com.intellij.psi.PsiType; import com.intellij.lang.ASTNode; /** * Date: Jul 21, 2009 * Time: 11:48:52 PM * * @author Dror Bereznitsky */ public class FanMapTypeElementImpl extends FanBaseElementImpl implements FanMapTypeElement { public FanMapTypeElementImpl(final ASTNode astNode) { super(astNode); } @NotNull public PsiType getType() { final FanTypeElement[] keyValueTypes = findChildrenByClass(FanTypeElement.class); if (keyValueTypes.length == 2) { return new FanMapType(this, keyValueTypes[0], keyValueTypes[1]); } return null; } public FanTypeDefinition getMapType() { return getFanTypeByName("Map"); } }