package fr.adrienbrault.idea.symfony2plugin.util.dict; import com.jetbrains.php.lang.psi.elements.PhpClass; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; /** * @author Daniel Espendiller <daniel@espendiller.net> */ public class DoctrineModel { private final PhpClass phpClass; private String doctrineNamespace; private String doctrineShortcut = null; public DoctrineModel(@NotNull PhpClass phpClass) { this.phpClass = phpClass; } public DoctrineModel(@NotNull PhpClass phpClass, @Nullable String doctrineShortcut) { this.phpClass = phpClass; this.doctrineShortcut = doctrineShortcut; } public DoctrineModel(@NotNull PhpClass phpClass, @Nullable String doctrineShortcut, @Nullable String doctrineNamespace) { this(phpClass, doctrineShortcut); this.doctrineNamespace = doctrineNamespace; } @NotNull public PhpClass getPhpClass() { return phpClass; } @Nullable public String getDoctrineNamespace() { return doctrineNamespace; } @Nullable public String getRepositoryName() { String className = phpClass.getPresentableFQN(); if(doctrineShortcut == null) { return className; } if(doctrineNamespace != null && className.length() > doctrineNamespace.length()) { className = className.substring(doctrineNamespace.length()); return doctrineShortcut + ':' + className; } return null; } }