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 public class StandardModule implements Module
10 {
11 private final TestedProduct testedProduct;
12
13 public StandardModule(TestedProduct testedProduct)
14 {
15 this.testedProduct = testedProduct;
16 }
17
18 @SuppressWarnings("unchecked")
19 public void configure(Binder binder)
20 {
21 binder.bind(TestedProduct.class).toInstance(testedProduct);
22 binder.bind((Class<TestedProduct>) testedProduct.getClass()).toInstance(testedProduct);
23
24 binder.bind(Tester.class).toInstance(testedProduct.getTester());
25 binder.bind((Class<Tester>) testedProduct.getTester().getClass()).toInstance(testedProduct.getTester());
26
27 binder.bind(ProductInstance.class).toInstance(testedProduct.getProductInstance());
28 }
29 }