001 /* 002 * Copyright 2010-2013 JetBrains s.r.o. 003 * 004 * Licensed under the Apache License, Version 2.0 (the "License"); 005 * you may not use this file except in compliance with the License. 006 * You may obtain a copy of the License at 007 * 008 * http://www.apache.org/licenses/LICENSE-2.0 009 * 010 * Unless required by applicable law or agreed to in writing, software 011 * distributed under the License is distributed on an "AS IS" BASIS, 012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 013 * See the License for the specific language governing permissions and 014 * limitations under the License. 015 */ 016 017 package org.jetbrains.jet.asJava.light; 018 019 import com.intellij.lang.java.JavaLanguage; 020 import com.intellij.openapi.util.TextRange; 021 import com.intellij.psi.*; 022 import com.intellij.psi.impl.light.LightElement; 023 import com.intellij.psi.javadoc.PsiDocComment; 024 import com.intellij.psi.search.SearchScope; 025 import com.intellij.util.IncorrectOperationException; 026 import org.jetbrains.annotations.NonNls; 027 import org.jetbrains.annotations.NotNull; 028 import org.jetbrains.annotations.Nullable; 029 030 // Copy of com.intellij.psi.impl.light.LightField 031 @SuppressWarnings("UnnecessaryFinalOnLocalVariableOrParameter") 032 public class LightField extends LightElement implements PsiField { 033 private final PsiField myField; 034 private final PsiClass myContainingClass; 035 036 public LightField(@NotNull final PsiManager manager, @NotNull final PsiField field, @NotNull final PsiClass containingClass) { 037 super(manager, JavaLanguage.INSTANCE); 038 myField = field; 039 myContainingClass = containingClass; 040 } 041 042 @Override 043 public void setInitializer(@Nullable final PsiExpression initializer) throws IncorrectOperationException { 044 throw new IncorrectOperationException("Not supported"); 045 } 046 047 @NotNull 048 @Override 049 public SearchScope getUseScope() { 050 return myField.getUseScope(); 051 } 052 053 @Override 054 public String getName() { 055 return myField.getName(); 056 } 057 058 @NotNull 059 @Override 060 public PsiIdentifier getNameIdentifier() { 061 return myField.getNameIdentifier(); 062 } 063 064 @Override 065 public PsiDocComment getDocComment() { 066 return myField.getDocComment(); 067 } 068 069 @Override 070 public boolean isDeprecated() { 071 return myField.isDeprecated(); 072 } 073 074 @Override 075 public PsiClass getContainingClass() { 076 return myContainingClass; 077 } 078 079 @NotNull 080 @Override 081 public PsiType getType() { 082 return myField.getType(); 083 } 084 085 @Override 086 public PsiTypeElement getTypeElement() { 087 return myField.getTypeElement(); 088 } 089 090 @Override 091 public PsiExpression getInitializer() { 092 return myField.getInitializer(); 093 } 094 095 @Override 096 public boolean hasInitializer() { 097 return myField.hasInitializer(); 098 } 099 100 @Override 101 public void normalizeDeclaration() throws IncorrectOperationException { 102 throw new IncorrectOperationException("Not supported"); 103 } 104 105 @Override 106 public Object computeConstantValue() { 107 return myField.computeConstantValue(); 108 } 109 110 @Override 111 public PsiElement setName(@NonNls @NotNull final String name) throws IncorrectOperationException { 112 throw new IncorrectOperationException("Not supported"); 113 } 114 115 @Override 116 public PsiModifierList getModifierList() { 117 return myField.getModifierList(); 118 } 119 120 @Override 121 public boolean hasModifierProperty(@NonNls @NotNull final String name) { 122 return myField.hasModifierProperty(name); 123 } 124 125 @Override 126 public String getText() { 127 return myField.getText(); 128 } 129 130 @Override 131 public PsiElement copy() { 132 return new LightField(myManager, (PsiField)myField.copy(), myContainingClass); 133 } 134 135 @Override 136 public TextRange getTextRange() { 137 return new TextRange(-1, -1); 138 } 139 140 @Override 141 public boolean isValid() { 142 return myContainingClass.isValid(); 143 } 144 145 @Override 146 public String toString() { 147 return "PsiField:" + getName(); 148 } 149 }