001/*
002 * Copyright 2010-2013 JetBrains s.r.o.
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.apache.org/licenses/LICENSE-2.0
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 */
016
017package org.jetbrains.jet.di;
018
019import org.jetbrains.jet.codegen.state.JetTypeMapper;
020import org.jetbrains.jet.codegen.state.GenerationState;
021import org.jetbrains.jet.codegen.ClassBuilderFactory;
022import com.intellij.openapi.project.Project;
023import org.jetbrains.jet.lang.resolve.BindingTrace;
024import org.jetbrains.jet.lang.resolve.BindingContext;
025import org.jetbrains.jet.codegen.ClassBuilderMode;
026import org.jetbrains.jet.codegen.ScriptCodegen;
027import org.jetbrains.jet.codegen.intrinsics.IntrinsicMethods;
028import org.jetbrains.jet.codegen.ClassFileFactory;
029import org.jetbrains.annotations.NotNull;
030import javax.annotation.PreDestroy;
031
032/* This file is generated by org.jetbrains.jet.generators.injectors.GenerateInjectors. DO NOT EDIT! */
033public class InjectorForJvmCodegen {
034    
035    private final JetTypeMapper jetTypeMapper;
036    private final GenerationState generationState;
037    private final ClassBuilderFactory classBuilderFactory;
038    private final Project project;
039    private BindingTrace bindingTrace;
040    private BindingContext bindingContext;
041    private ClassBuilderMode classBuilderMode;
042    private ScriptCodegen scriptCodegen;
043    private IntrinsicMethods intrinsics;
044    private ClassFileFactory classFileFactory;
045    
046    public InjectorForJvmCodegen(
047        @NotNull JetTypeMapper jetTypeMapper,
048        @NotNull GenerationState generationState,
049        @NotNull ClassBuilderFactory classBuilderFactory,
050        @NotNull Project project
051    ) {
052        this.jetTypeMapper = jetTypeMapper;
053        this.generationState = generationState;
054        this.classBuilderFactory = classBuilderFactory;
055        this.project = project;
056        this.bindingTrace = jetTypeMapper.getBindingTrace();
057        this.bindingContext = bindingTrace.getBindingContext();
058        this.classBuilderMode = classBuilderFactory.getClassBuilderMode();
059        this.scriptCodegen = new ScriptCodegen(getGenerationState());
060        this.intrinsics = new IntrinsicMethods();
061        this.classFileFactory = new ClassFileFactory(getGenerationState());
062
063        this.scriptCodegen.setClassFileFactory(classFileFactory);
064
065        this.classFileFactory.setBuilderFactory(classBuilderFactory);
066
067        intrinsics.init();
068
069    }
070    
071    @PreDestroy
072    public void destroy() {
073    }
074    
075    public JetTypeMapper getJetTypeMapper() {
076        return this.jetTypeMapper;
077    }
078    
079    public GenerationState getGenerationState() {
080        return this.generationState;
081    }
082    
083    public Project getProject() {
084        return this.project;
085    }
086    
087    public ScriptCodegen getScriptCodegen() {
088        return this.scriptCodegen;
089    }
090    
091    public IntrinsicMethods getIntrinsics() {
092        return this.intrinsics;
093    }
094    
095    public ClassFileFactory getClassFileFactory() {
096        return this.classFileFactory;
097    }
098    
099}