1   package com.atlassian.pageobjects.binder;
2   
3   import com.atlassian.pageobjects.ProductInstance;
4   import com.atlassian.pageobjects.TestedProduct;
5   import com.atlassian.pageobjects.Tester;
6   import com.google.inject.Binder;
7   import com.google.inject.Module;
8   
9   /**
10   *
11   */
12  public class StandardModule implements Module
13  {
14      private final TestedProduct testedProduct;
15  
16      public StandardModule(TestedProduct testedProduct)
17      {
18          this.testedProduct = testedProduct;
19      }
20  
21      public void configure(Binder binder)
22      {
23          binder.bind(TestedProduct.class).toInstance(testedProduct);
24          binder.bind((Class<TestedProduct>)testedProduct.getClass()).toInstance(testedProduct);
25  
26          binder.bind(Tester.class).toInstance(testedProduct.getTester());
27          binder.bind((Class<Tester>)testedProduct.getTester().getClass()).toInstance(testedProduct.getTester());
28  
29          binder.bind(ProductInstance.class).toInstance(testedProduct.getProductInstance());
30      }
31  }