30 #ifndef RYTHMOS_RK_BUTCHER_TABLEAU_BUILDER_DECL_HPP 
   31 #define RYTHMOS_RK_BUTCHER_TABLEAU_BUILDER_DECL_HPP 
   33 #include "Rythmos_Types.hpp" 
   35 #include "Rythmos_RKButcherTableauBase.hpp" 
   36 #include "Teuchos_ObjectBuilder.hpp" 
   37 #include "Teuchos_ParameterListAcceptor.hpp" 
   44 template<
class Scalar>
 
   45 class RKButcherTableauBuilder :
 
   46   virtual public Teuchos::ParameterListAcceptor
 
   49     RKButcherTableauBuilder();
 
   50     virtual ~RKButcherTableauBuilder() {}
 
   52     void setRKButcherTableauFactory(
 
   53       const RCP<
const Teuchos::AbstractFactory<RKButcherTableauBase<Scalar> > > &rkbtFactory,
 
   54       const std::string &rkbtFactoryName
 
   57     RCP<RKButcherTableauBase<Scalar> > create(
 
   58         const std::string &rkbt_name = 
"" 
   65     void setParameterList(
const RCP<Teuchos::ParameterList> & paramList);
 
   68     RCP<Teuchos::ParameterList> getNonconstParameterList();
 
   71     RCP<Teuchos::ParameterList> unsetParameterList();
 
   74     RCP<const ParameterList> getParameterList() 
const;
 
   77     RCP<const Teuchos::ParameterList> getValidParameters() 
const;
 
   81     Teuchos::ObjectBuilder<RKButcherTableauBase<Scalar> > builder_;
 
   83     void initializeDefaults_();
 
   87 template<
class Scalar>
 
   88 RCP<RKButcherTableauBuilder<Scalar> > rKButcherTableauBuilder();
 
   91 template<
class Scalar>
 
   92 RCP<RKButcherTableauBase<Scalar> > createRKBT(
const std::string& rkbt_name);
 
   98 #endif // RYTHMOS_RK_BUTCHER_TABLEAU_BUILDER_DECL_HPP