code: public Object createContext(Object param) throws Exception {
  
          Class<?>[] params = mConstr != null ? mConstr.getParameterTypes() : new Class[0];
          if (params.length > 1 && MergedClass.InvocationEventObserver.class.equals(params[1])) {
              return mConstr.newInstance(new Object[] {
                  new MergingContextFactory(param),
                  new MergedClass.InvocationEventObserver() {
                      public void invokedEvent(String caller, String callee, long elapsedTime) { }
                      public long currentTime() { return 0L; }
              }});
          }
          else {
              return mConstr.newInstance(new Object[] {
                  new MergingContextFactory(param)});
          }
      }
docs: a generic method to create context instances