Package com.dci.intellij.dbn.language.common

Source Code of com.dci.intellij.dbn.language.common.DBLanguageFileType

package com.dci.intellij.dbn.language.common;

import com.dci.intellij.dbn.editor.DBContentType;
import com.dci.intellij.dbn.vfs.DatabaseEditableObjectFile;
import com.dci.intellij.dbn.vfs.SQLConsoleFile;
import com.dci.intellij.dbn.vfs.SourceCodeFile;
import com.intellij.lang.Language;
import com.intellij.openapi.fileTypes.FileTypeManager;
import com.intellij.openapi.fileTypes.LanguageFileType;
import com.intellij.openapi.fileTypes.ex.FileTypeIdentifiableByVirtualFile;
import com.intellij.openapi.vfs.VirtualFile;
import org.jetbrains.annotations.NotNull;

public abstract class DBLanguageFileType extends LanguageFileType implements FileTypeIdentifiableByVirtualFile {
    protected String extension;
    protected String description;
    protected DBContentType contentType;

    public DBLanguageFileType(@NotNull Language language,
                      String extension,
                      String description,
                      DBContentType contentType) {
        super(language);
        this.extension = extension;
        this.description = description;
        this.contentType = contentType;
    }

    public void setExtension(String extension) {
        if (!this.extension.equals(extension)) {
            FileTypeManager fileTypeManager = FileTypeManager.getInstance();
            fileTypeManager.removeAssociatedExtension(this, this.extension);
            this.extension = extension;
            fileTypeManager.registerFileType(this, extension);
        }
    }

    public DBContentType getContentType() {
        return contentType;
    }

    @NotNull
    public String getDescription() {
        return description;
    }

    @NotNull
    public String getDefaultExtension() {
        return extension;
    }


    public boolean isMyFileType(VirtualFile file) {
        if (file instanceof DatabaseEditableObjectFile || file instanceof SourceCodeFile) {
            if (this == file.getFileType()) {
                return true;
            }
        }

        if (file instanceof SQLConsoleFile) {
            return true;
        }
        return false;
    }
}
TOP

Related Classes of com.dci.intellij.dbn.language.common.DBLanguageFileType

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.