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;
018
019 import com.intellij.psi.*;
020 import com.intellij.psi.impl.light.AbstractLightClass;
021 import com.intellij.psi.impl.light.LightEmptyImplementsList;
022 import com.intellij.psi.impl.light.LightModifierList;
023 import com.intellij.psi.javadoc.PsiDocComment;
024 import org.jetbrains.annotations.NonNls;
025 import org.jetbrains.annotations.NotNull;
026 import org.jetbrains.annotations.Nullable;
027 import org.jetbrains.jet.plugin.JetLanguage;
028
029 /**
030 * This class contains method that are straightforward, and only would pollute the actual implementation
031 */
032 public abstract class KotlinLightClassForPackageBase extends AbstractLightClass {
033
034 private final PsiModifierList modifierList;
035 private final LightEmptyImplementsList implementsList;
036
037 public KotlinLightClassForPackageBase(PsiManager manager) {
038 super(manager, JetLanguage.INSTANCE);
039 this.modifierList = new LightModifierList(manager, JetLanguage.INSTANCE, PsiModifier.PUBLIC, PsiModifier.FINAL);
040 this.implementsList = new LightEmptyImplementsList(manager);
041 }
042
043 @Nullable
044 @Override
045 public PsiModifierList getModifierList() {
046 return modifierList;
047 }
048
049 @Override
050 public boolean hasModifierProperty(@NonNls @NotNull String name) {
051 return modifierList.hasModifierProperty(name);
052 }
053
054 @Override
055 public boolean isDeprecated() {
056 return false;
057 }
058
059 @Override
060 public boolean isInterface() {
061 return false;
062 }
063
064 @Override
065 public boolean isAnnotationType() {
066 return false;
067 }
068
069 @Override
070 public boolean isEnum() {
071 return false;
072 }
073
074 @Nullable
075 @Override
076 public PsiClass getContainingClass() {
077 return null;
078 }
079
080 @Override
081 public boolean hasTypeParameters() {
082 return false;
083 }
084
085 @NotNull
086 @Override
087 public PsiTypeParameter[] getTypeParameters() {
088 return PsiTypeParameter.EMPTY_ARRAY;
089 }
090
091 @Nullable
092 @Override
093 public PsiTypeParameterList getTypeParameterList() {
094 return null;
095 }
096
097 @Nullable
098 @Override
099 public PsiDocComment getDocComment() {
100 return null;
101 }
102
103 @Nullable
104 @Override
105 public PsiReferenceList getImplementsList() {
106 return implementsList;
107 }
108
109 @NotNull
110 @Override
111 public PsiClassType[] getImplementsListTypes() {
112 return PsiClassType.EMPTY_ARRAY;
113 }
114
115 @Nullable
116 @Override
117 public PsiReferenceList getExtendsList() {
118 // TODO: Find a way to return just Object
119 return super.getExtendsList();
120 }
121
122 @NotNull
123 @Override
124 public PsiClassType[] getExtendsListTypes() {
125 // TODO see getExtendsList()
126 return super.getExtendsListTypes();
127 }
128
129 @Nullable
130 @Override
131 public PsiClass getSuperClass() {
132 // TODO see getExtendsList()
133 return super.getSuperClass();
134 }
135
136 @NotNull
137 @Override
138 public PsiClass[] getSupers() {
139 // TODO see getExtendsList()
140 return super.getSupers();
141 }
142
143 @NotNull
144 @Override
145 public PsiClassType[] getSuperTypes() {
146 // TODO see getExtendsList()
147 return super.getSuperTypes();
148 }
149
150 @Override
151 public PsiClass[] getInterfaces() {
152 return PsiClass.EMPTY_ARRAY;
153 }
154
155 @NotNull
156 @Override
157 public PsiClass[] getInnerClasses() {
158 return PsiClass.EMPTY_ARRAY;
159 }
160
161 @NotNull
162 @Override
163 public PsiClassInitializer[] getInitializers() {
164 return PsiClassInitializer.EMPTY_ARRAY;
165 }
166
167 @NotNull
168 @Override
169 public PsiClass[] getAllInnerClasses() {
170 return PsiClass.EMPTY_ARRAY;
171 }
172
173 @Nullable
174 @Override
175 public PsiClass findInnerClassByName(@NonNls String name, boolean checkBases) {
176 return null;
177 }
178 }