72256079a0fd11fa722c474c57a0b43bd97dff9e
[idea/community.git] / java / java-psi-impl / src / com / intellij / psi / impl / light / LightFieldBuilder.java
1 /*
2  * Copyright 2000-2014 JetBrains s.r.o.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package com.intellij.psi.impl.light;
17
18 import com.intellij.lang.java.JavaLanguage;
19 import com.intellij.psi.*;
20 import com.intellij.psi.javadoc.PsiDocComment;
21 import com.intellij.util.IncorrectOperationException;
22 import org.jetbrains.annotations.NotNull;
23 import org.jetbrains.annotations.Nullable;
24
25 /**
26  * @author Maxim.Medvedev
27  */
28 public class LightFieldBuilder extends LightVariableBuilder<LightFieldBuilder> implements PsiField {
29   private PsiClass myContainingClass = null;
30   private PsiExpression myInitializer = null;
31   private PsiDocComment myDocComment = null;
32   private boolean myIsDeprecated = false;
33
34   public LightFieldBuilder(@NotNull String name, @NotNull String type, @NotNull PsiElement navigationElement) {
35     super(name, JavaPsiFacade.getElementFactory(navigationElement.getProject()).createTypeFromText(type, navigationElement),
36           navigationElement);
37   }
38
39   public LightFieldBuilder(@NotNull String name, @NotNull PsiType type, @NotNull PsiElement navigationElement) {
40     super(name, type, navigationElement);
41   }
42
43   public LightFieldBuilder(PsiManager manager, @NotNull String name, @NotNull PsiType type) {
44     super(manager, name, type, JavaLanguage.INSTANCE);
45   }
46
47   public LightFieldBuilder setContainingClass(PsiClass psiClass) {
48     myContainingClass = psiClass;
49     return this;
50   }
51
52   @Override
53   public void setInitializer(@Nullable PsiExpression initializer) throws IncorrectOperationException {
54     myInitializer = initializer;
55   }
56
57   @Override
58   public PsiExpression getInitializer() {
59     return myInitializer;
60   }
61
62   @Override
63   public PsiDocComment getDocComment() {
64     return myDocComment;
65   }
66
67   public LightFieldBuilder setDocComment(PsiDocComment docComment) {
68     myDocComment = docComment;
69     return this;
70   }
71
72   @Override
73   public boolean isDeprecated() {
74     return myIsDeprecated;
75   }
76
77   public LightFieldBuilder setIsDeprecated(boolean isDeprecated) {
78     myIsDeprecated = isDeprecated;
79     return this;
80   }
81
82   @Override
83   public PsiClass getContainingClass() {
84     return myContainingClass;
85   }
86 }