/*
 * Copyright 2000-2016 JetBrains s.r.o.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.intellij.testFramework;

import com.intellij.openapi.components.RoamingType;
import com.intellij.openapi.options.*;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

public class MockSchemeManagerFactory extends SchemeManagerFactory {
  private static final SchemeManager EMPTY = new EmptySchemesManager();

  @NotNull
  @Override
  protected <SCHEME extends Scheme, MUTABLE_SCHEME extends SCHEME> SchemeManager<SCHEME> create(@NotNull String directoryName,
                                                                                                @NotNull SchemeProcessor<SCHEME, ? super MUTABLE_SCHEME> processor,
                                                                                                @Nullable String presentableName,
                                                                                                @NotNull RoamingType roamingType,
                                                                                                boolean isUseOldFileNameSanitize) {
    //noinspection unchecked
    return EMPTY;
  }
}

@@ -628,17 +628,16 @@
 ramework
-;
 %0A%0Aimport
@@ -680,17 +680,16 @@
 mingType
-;
 %0Aimport 
@@ -722,103 +722,53 @@
 ns.*
-;%0Aimport org.jetbrains.annotations.NotNull;%0Aimport org.jetbrains.annotations.Nullable;%0A%0Apublic 
+%0A%0Aprivate val EMPTY = EmptySchemesManager()%0A%0A
 clas
@@ -794,23 +794,17 @@
 Factory 
-extends
+:
  SchemeM
@@ -820,118 +820,27 @@
 tory
+()
  %7B%0A  
-private static final SchemeManager EMPTY = new EmptySchemesManager();%0A%0A  @NotNull%0A  @Override%0A  protected
+override fun
  %3CSC
@@ -844,23 +844,17 @@
 %3CSCHEME 
-extends
+:
  Scheme,
@@ -873,15 +873,9 @@
 EME 
-extends
+:
  SCH
@@ -883,86 +883,38 @@
 ME%3E 
-SchemeManager%3CSCHEME%3E create(@NotNull String directoryName,%0A                  
+create(directoryName: String,%0A
     
@@ -974,37 +974,26 @@
         
-             @NotNull
+processor:
  SchemeP
@@ -1012,16 +1012,8 @@
 EME,
- ? super
  MUT
@@ -1028,47 +1028,10 @@
 EME%3E
- processor,%0A                           
+,%0A
     
@@ -1095,29 +1095,8 @@
     
-    @Nullable String 
 pres
@@ -1106,16 +1106,25 @@
 ableName
+: String?
 ,%0A      
@@ -1186,49 +1186,9 @@
     
-                               @NotNull R
+r
 oami
@@ -1193,18 +1193,19 @@
 mingType
- r
+: R
 oamingTy
@@ -1277,121 +1277,141 @@
     
-                               boolean isUseOldFileNameSanitize) %7B%0A    //noinspection unchecked%0A    return EMPTY;
+isUseOldFileNameSanitize: Boolean): SchemeManager%3CSCHEME%3E %7B%0A    @Suppress(%22UNCHECKED_CAST%22)%0A    return EMPTY as SchemeManager%3CSCHEME%3E
 %0A  %7D

convert MockSchemeManagerFactory to kotlin