package com.seventh7.mybatis.alias; import com.google.common.base.Optional; import com.intellij.openapi.project.Project; import com.intellij.psi.PsiClass; import com.intellij.psi.PsiElement; import com.seventh7.mybatis.util.JavaUtils; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.Set; /** * @author yanglin */ public abstract class AliasResolver { protected Project project; public AliasResolver(Project project) { this.project = project; } @NotNull protected Optional<AliasDesc> addAliasDesc(@NotNull Set<AliasDesc> descs, @Nullable PsiClass clazz, @Nullable String alias) { if (null == alias || !JavaUtils.isModelClazz(clazz)) { return Optional.absent(); } AliasDesc desc = new AliasDesc(); descs.add(desc); desc.setClazz(clazz); desc.setAlias(alias); return Optional.of(desc); } @NotNull public abstract Set<AliasDesc> getClassAliasDescriptions(@Nullable PsiElement element); public Project getProject() { return project; } public void setProject(Project project) { this.project = project; } }