aboutsummaryrefslogtreecommitdiffstats
path: root/sd-plugin/src/main/java/org/intellij/sdk/language/psi/SdElementFactory.java
diff options
context:
space:
mode:
Diffstat (limited to 'sd-plugin/src/main/java/org/intellij/sdk/language/psi/SdElementFactory.java')
-rw-r--r--sd-plugin/src/main/java/org/intellij/sdk/language/psi/SdElementFactory.java30
1 files changed, 30 insertions, 0 deletions
diff --git a/sd-plugin/src/main/java/org/intellij/sdk/language/psi/SdElementFactory.java b/sd-plugin/src/main/java/org/intellij/sdk/language/psi/SdElementFactory.java
new file mode 100644
index 00000000000..0961704443c
--- /dev/null
+++ b/sd-plugin/src/main/java/org/intellij/sdk/language/psi/SdElementFactory.java
@@ -0,0 +1,30 @@
+package org.intellij.sdk.language.psi;
+
+import com.intellij.openapi.project.Project;
+import com.intellij.psi.PsiFileFactory;
+
+import com.intellij.psi.util.PsiTreeUtil;
+import org.intellij.sdk.language.SdFileType;
+
+public class SdElementFactory {
+
+ private static final String GENERAL_FILE_TEXT = "search {document %s {} rank-profile %s {}}";
+
+ public static SdIdentifierVal createIdentifierVal(Project project, String name) {
+ String fileText = String.format(GENERAL_FILE_TEXT, name, name);
+ final SdFile file = createFile(project, fileText);
+ return PsiTreeUtil.findChildOfType(file, SdIdentifierVal.class);
+ }
+
+ public static SdIdentifierWithDashVal createIdentifierWithDashVal(Project project, String name) {
+ String fileText = String.format(GENERAL_FILE_TEXT, name, name);
+ final SdFile file = createFile(project, fileText);
+ return PsiTreeUtil.findChildOfType(file, SdIdentifierWithDashVal.class);
+ }
+
+ public static SdFile createFile(Project project, String text) {
+ String name = "dummy.sd";
+ return (SdFile) PsiFileFactory.getInstance(project).
+ createFileFromText(name, SdFileType.INSTANCE, text);
+ }
+}