1 /* 2 * Copyright (C) 2006 Google Inc. 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package com.google.inject; 18 19 /** 20 * The stage we're running in. 21 * 22 * @author crazybob@google.com (Bob Lee) 23 */ 24 public enum Stage { 25 26 /** 27 * We're running in a tool (an IDE plugin for example). We need binding meta data but not a 28 * functioning Injector. Do not inject members of instances. Do not load eager singletons. Do as 29 * little as possible so our tools run nice and snappy. Injectors created in this stage cannot be 30 * used to satisfy injections. 31 */ 32 TOOL, 33 34 /** 35 * We want fast startup times at the expense of runtime performance and some up front error 36 * checking. 37 */ 38 DEVELOPMENT, 39 40 /** We want to catch errors as early as possible and take performance hits up front. */ 41 PRODUCTION 42 } 43