Package de.plushnikov.intellij.lombok.util

Source Code of de.plushnikov.intellij.lombok.util.PsiPrimitiveTypeFactory

package de.plushnikov.intellij.lombok.util;

import com.intellij.openapi.application.ApplicationInfo;
import com.intellij.openapi.util.BuildNumber;

/**
* @author Plushnikov Michail
*/
public class PsiPrimitiveTypeFactory {
  private PsiPrimitiveTypeFactory() {
  }

  private static PsiPrimitiveTypeUtil ourInstance;

  public static PsiPrimitiveTypeUtil getInstance() {
    if (null == ourInstance) {
      ourInstance = createUtil();
    }
    return ourInstance;
  }

  private static PsiPrimitiveTypeUtil createUtil() {
    final BuildNumber buildNumber = ApplicationInfo.getInstance().getBuild();
    switch (IntelliJVersionRangeUtil.getIntelliJVersion(buildNumber)) {
      case INTELLIJ_8:
        throw new RuntimeException(String.format("This version (%s) of IntelliJ is not supported!", buildNumber.asString()));
      case INTELLIJ_9:
        return new PsiPrimitiveTypeUtil9Impl();
      case INTELLIJ_10:
      case INTELLIJ_10_5:
        return new PsiPrimitiveTypeUtil10Impl();
      case INTELLIJ_11:
      default:
        return new PsiPrimitiveTypeUtil11Impl();
    }
  }
}
TOP

Related Classes of de.plushnikov.intellij.lombok.util.PsiPrimitiveTypeFactory

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.