package fr.adrienbrault.idea.symfony2plugin.form.dict; import com.intellij.openapi.project.Project; import com.jetbrains.php.lang.psi.elements.PhpClass; import fr.adrienbrault.idea.symfony2plugin.util.PhpElementsUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; /** * @author Daniel Espendiller <daniel@espendiller.net> */ public class FormTypeClass { final private String name; private PhpClass phpClass; private String phpClassName; final private EnumFormTypeSource source; public FormTypeClass(@NotNull String name, @NotNull PhpClass phpClass, @NotNull EnumFormTypeSource source) { this.name = name; this.phpClass = phpClass; this.source = source; } public FormTypeClass(@NotNull String name, @NotNull String phpClassName, @NotNull EnumFormTypeSource source) { this.name = name; this.phpClassName = phpClassName; this.source = source; } @NotNull public String getName() { return name; } @Nullable public PhpClass getPhpClass() { return phpClass; } @Nullable public PhpClass getPhpClass(Project project) { if(phpClass != null) { return phpClass; } if(this.phpClassName == null) { return null; } return PhpElementsUtil.getClass(project, this.phpClassName); } @NotNull public EnumFormTypeSource getSource() { return source; } public String getPhpClassName() { return phpClassName; } }