update copyright
[fedora-idea.git] / java / java-impl / src / com / intellij / codeInsight / generation / GenerateGetterSetterHandlerBase.java
blob06836ba844d80bf20b23b7625c28b27e6c74a1b1
1 /*
2 * Copyright 2000-2009 JetBrains s.r.o.
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
16 package com.intellij.codeInsight.generation;
18 import com.intellij.openapi.diagnostic.Logger;
19 import com.intellij.openapi.util.Condition;
20 import com.intellij.psi.PsiClass;
21 import com.intellij.psi.PsiEnumConstant;
22 import com.intellij.psi.PsiField;
23 import com.intellij.util.IncorrectOperationException;
24 import com.intellij.util.NotNullFunction;
25 import com.intellij.util.containers.ContainerUtil;
26 import org.jetbrains.annotations.NotNull;
28 import java.util.ArrayList;
29 import java.util.Collection;
30 import java.util.List;
32 abstract class GenerateGetterSetterHandlerBase extends GenerateMembersHandlerBase {
33 private static final Logger LOG = Logger.getInstance("#com.intellij.codeInsight.generation.GenerateGetterSetterHandlerBase");
35 static {
36 GenerateAccessorProviderRegistrar.registerProvider(new NotNullFunction<PsiClass, Collection<EncapsulatableClassMember>>() {
37 @NotNull
38 public Collection<EncapsulatableClassMember> fun(PsiClass s) {
39 final List<EncapsulatableClassMember> result = new ArrayList<EncapsulatableClassMember>();
40 for(PsiField field: s.getFields()) {
41 if (!(field instanceof PsiEnumConstant)) {
42 result.add(new PsiFieldMember(field));
45 return result;
47 });
50 public GenerateGetterSetterHandlerBase(String chooserTitle) {
51 super(chooserTitle);
54 protected ClassMember[] getAllOriginalMembers(final PsiClass aClass) {
55 final List<EncapsulatableClassMember> list = GenerateAccessorProviderRegistrar.getEncapsulatableClassMembers(aClass);
56 final List<EncapsulatableClassMember> members = ContainerUtil.findAll(list, new Condition<EncapsulatableClassMember>() {
57 public boolean value(EncapsulatableClassMember member) {
58 try {
59 return generateMemberPrototypes(aClass, member).length > 0;
61 catch (IncorrectOperationException e) {
62 LOG.error(e);
63 return false;
66 });
67 return members.toArray(new ClassMember[members.size()]);