100 pl->set(
"String",
foo_ );
129 pl->set(
"String",
foo_ );
158 pl->set(
"String",
foo_ );
188 TEST_THROW( ob->setObjectName(
""), std::logic_error );
189 TEST_THROW( ob->setObjectTypeName(
""), std::logic_error );
193 TEST_THROW( ob = objectBuilder<Foo>(
"",
"Foo Type"), std::logic_error );
194 TEST_THROW( ob = objectBuilder<Foo>(
"Foo",
""), std::logic_error );
195 TEST_THROW( ob = objectBuilder<Foo>(
"",
""), std::logic_error );
199 ob->setObjectName(
"Foo");
200 ob->setObjectTypeName(
"Foo Type");
206 "Determines the type of Foo object that will be built.\nThe parameters for each Foo Type are specified in this sublist"
216 "Determines the type of Foo object that will be built.\nThe parameters for each Foo Type are specified in this sublist"
236 ob->setObjectFactory(abstractFactoryStd<Foo,FooA>(),
"Foo A");
242 const RCP<FooA> fooA = rcp_dynamic_cast<FooA>(foo,
false);
244 ob->setObjectFactory(abstractFactoryStd<Foo,FooB>(),
"Foo B");
245 pl = ob->getValidParameters();
247 TEST_THROW( ob->setObjectFactory(abstractFactoryStd<Foo,FooC>(),
""), std::logic_error );
254 ob->setObjectFactory(abstractFactoryStd<Foo,FooA>(),
"Foo A");
257 TEST_THROW( ob->setObjectFactory(abstractFactoryStd<Foo,FooA>(),
"Foo A"), std::logic_error );
259 TEST_NOTHROW( ob->setObjectFactory(abstractFactoryStd<Foo,FooA>(),
"Foo A") );
260 TEST_THROW( ob->getValidParameters(), std::logic_error );
265 ob->setObjectFactory(abstractFactoryStd<Foo,FooA>(),
"Foo A");
266 TEST_NOTHROW( ob->setObjectFactory(abstractFactoryStd<Foo,FooA>(),
"New Foo A") );
277 ob->setObjectFactory(abstractFactoryStd<Foo,FooA>(),
"Foo A");
278 ob->setObjectFactory(abstractFactoryStd<Foo,FooB>(),
"Foo B");
280 pl->setParameters(*ob->getValidParameters());
281 pl->set(
"Foo Type",
"Foo A");
285 ob->setParameterList(pl);
310 ob->setObjectFactory(abstractFactoryStd<Foo,FooA>(),
"Foo A");
311 ob->setObjectFactory(abstractFactoryStd<Foo,FooB>(),
"Foo B");
312 ob->setObjectFactory(abstractFactoryStd<Foo,FooC>(),
"Foo C");
313 out <<
"op.getValidParamters():\n";
316 pl->setParameters(*ob->getValidParameters());
317 pl->set(
"Foo Type",
"None");
318 ob->setParameterList(pl);
320 pl->set(
"Foo Type",
"Foo B");
321 pl->sublist(
"Foo B").set(
"String",
"BB");
322 pl->sublist(
"Foo C").set(
"String",
"CC");
325 const RCP<FooB> fooB = rcp_dynamic_cast<FooB>(foo,
false);
329 ob->unsetParameterList();
332 const RCP<FooC> fooC = rcp_dynamic_cast<FooC>(foo,
false);
337 const RCP<Foo> foo = ob->create(
"Foo A");
338 const RCP<FooA> fooA = rcp_dynamic_cast<FooA>(foo,
false);
341 ob->setParameterList(pl);
343 const RCP<Foo> foo = ob->create(
"Foo A");
344 const RCP<FooA> fooA = rcp_dynamic_cast<FooA>(foo,
false);
349 TEST_THROW( foo = ob->create(
"Foo D"), std::logic_error );
354#if !(__GNUC__ == 4 && __GNUC_MINOR__ == 8) && !(__GNUC__ == 4 && __GNUC_MINOR__ == 9) && !(__GNUC__ == 5 && __GNUC_MINOR__ == 3) && !(__GNUC__ == 6 && __GNUC_MINOR__ == 2)
366 ob->setObjectFactory(abstractFactoryStd<Foo,FooA>(),
"Foo A");
369 pl = parameterList();
371 pl->set(
"Hello",
"World");
372 TEST_THROW( ob->setParameterList(pl), std::logic_error );
374 TEST_THROW( ob->unsetParameterList(), std::logic_error );
380 const RCP<FooA> fooA = rcp_dynamic_cast<FooA>(foo,
false);
400 ob->setObjectFactory(abstractFactoryStd<Foo,FooA>(),
"Foo A");
404 nonconstPL->set(
"Object Type",
"None");
415 ob->setObjectFactory(abstractFactoryStd<Foo,FooA>(),
"Foo A");
418 pl = parameterList();
419 pl->set(
"Object Type",
"None");
423 newPL = ob->getNonconstParameterList();
428#if !(__GNUC__ == 4 && __GNUC_MINOR__ == 8) && !(__GNUC__ == 4 && __GNUC_MINOR__ == 9) && !(__GNUC__ == 5 && __GNUC_MINOR__ == 3) && !(__GNUC__ == 6 && __GNUC_MINOR__ == 2)
438 ob->setObjectFactory(abstractFactoryStd<Foo,FooA>(),
"Foo A");
440 pl->set(
"Object Type",
"None");
441 ob->setParameterList(pl);
447 const RCP<FooA> fooA = rcp_dynamic_cast<FooA>(foo,
false);
449 ob->setParameterList(pl);
450 pl->set(
"Hello",
"World");
453 TEST_THROW( newPL = ob->unsetParameterList(), std::logic_error );
472 ob->setObjectFactory(abstractFactoryStd<Foo,FooA>(),
"Foo A");
474 pl->set(
"Object Type",
"Foo B");
475 TEST_THROW( ob->setParameterList(pl), std::logic_error );
479 ob->setObjectFactory(abstractFactoryStd<Foo,FooA>(),
"Foo A");
480 ob->setObjectFactory(abstractFactoryStd<Foo,FooA>(),
"Foo B");
481 ob->setObjectFactory(abstractFactoryStd<Foo,FooA>(),
"Foo C");
483 validPL->set(
"Object Type",
"Foo C");
484 validPL->sublist(
"Foo A").set(
"String",
"A");
485 validPL->sublist(
"Foo B").set(
"String",
"B");
486 validPL->sublist(
"Foo C").set(
"String",
"C");
493 objectValidator =
rcp(
495 validObjectNames,
"Object Type"
499 "Object Type",
"Foo C"
500 ,(std::string(
"Determines the type of Object object that will be built.\n")
501 +
"The parameters for each Object Type are specified in this sublist"
507 validPL->set(
"Object Type",
"Foo A");
509 validPL->set(
"Object Type",
"Foo B");
511 validPL->set(
"Object Type",
"None");
524 ob->setObjectFactory(abstractFactoryStd<Foo,FooA>(),
"Foo A");
525 ob->setObjectFactory(abstractFactoryStd<Foo,FooB>(),
"Foo B");
526 ob->setObjectFactory(abstractFactoryStd<Foo,FooC>(),
"Foo C");
529 ob->setParameterList(pl);
530 const RCP<Foo> foo = ob->create(
"Foo A");
534 const ParameterEntry& pe = pl->sublist(
"Foo A").getEntry(
"String");
540 ob->unsetParameterList();
544 pl->setParameters(*ob->getValidParameters());
545 pl->sublist(
"Foo A").set(
"String",
"AA");
546 ob->setParameterList(pl);
548 const RCP<Foo> foo = ob->create(
"Foo A");
553 const ParameterEntry& pe = outPL->sublist(
"Foo A").getEntry(
"String");
559 ob->unsetParameterList();
565 ob->setObjectFactory(abstractFactoryStd<Foo,FooA>(),
"Foo A");
566 ob->setObjectFactory(abstractFactoryStd<Foo,FooB>(),
"Foo B");
567 ob->setObjectFactory(abstractFactoryStd<Foo,FooC>(),
"Foo C");
570 ob->setParameterList(pl);
572 RCP<FooC> fooC = Teuchos::rcp_dynamic_cast<FooC>(foo,
false);
577 ob->setParameterList(pl);
578 ob->setDefaultObject(
"Foo A");
580 RCP<FooA> fooA = Teuchos::rcp_dynamic_cast<FooA>(foo,
false);
585 ob->setParameterList(pl);
586 ob->setDefaultObject(
"None");
592 TEST_THROW(ob->setDefaultObject(
"Foo D"), std::logic_error);
594 ob->setDefaultObject(
"Foo D");
595 TEST_THROW(ob->getValidParameters(), std::logic_error);
601 ob->setObjectFactory(abstractFactoryStd<Foo,FooA>(),
"Foo A");
602 ob->setObjectFactory(abstractFactoryStd<Foo,FooB>(),
"Foo B");
603 ob->setObjectFactory(abstractFactoryStd<Foo,FooC>(),
"Foo C");
605 ob->setParameterList(pl);
608 RCP<FooC> fooC = Teuchos::rcp_dynamic_cast<FooC>(foo,
false);
614 ob->setDefaultObject(
"Foo A");
616 RCP<FooA> fooA = Teuchos::rcp_dynamic_cast<FooA>(foo,
false);
620 ob->setDefaultObject(
"None");
628 ob->setObjectFactory(abstractFactoryStd<Foo,FooA>(),
"Foo A");
629 ob->setObjectFactory(abstractFactoryStd<Foo,FooB>(),
"Foo B");
630 ob->setObjectFactory(abstractFactoryStd<Foo,FooC>(),
"Foo C");
633 RCP<FooC> fooC = Teuchos::rcp_dynamic_cast<FooC>(foo,
false);
637 ob->setDefaultObject(
"Foo A");
639 RCP<FooA> fooA = Teuchos::rcp_dynamic_cast<FooA>(foo,
false);
643 ob->setDefaultObject(
"None");
#define TEST_ASSERT(v1)
Assert the given statement is true.
#define TEST_EQUALITY_CONST(v1, v2)
Assert the equality of v1 and constant v2.
#define TEST_NOTHROW(code)
Asserr that the statement 'code' does not thrown any excpetions.
#define TEST_THROW(code, ExceptType)
Assert that the statement 'code' throws the exception 'ExceptType' (otherwise the test fails).
Templated Parameter List class.
#define TEUCHOS_UNIT_TEST(TEST_GROUP, TEST_NAME)
Macro for defining a (non-templated) unit test.
Replacement for std::vector that is compatible with the Teuchos Memory Management classes.
void push_back(const value_type &x)
RCP< const ParameterList > getValidParameters() const
Return a ParameterList containing all of the valid parameters that this->setParameterList(....
std::string getString() const
RCP< const ParameterList > getValidParameters() const
Return a ParameterList containing all of the valid parameters that this->setParameterList(....
std::string getString() const
RCP< const ParameterList > getValidParameters() const
Return a ParameterList containing all of the valid parameters that this->setParameterList(....
std::string getString() const
RCP< ParameterList > unsetParameterList()
Unset the parameter list that was set using setParameterList().
virtual void setDefaults()=0
RCP< const ParameterList > getParameterList() const
Get const version of the parameter list that was set using setParameterList().
RCP< ParameterList > getNonconstParameterList()
Get a nonconst version of the parameter list that was set using setParameterList().
void setParameterList(const RCP< ParameterList > ¶mList)
Set parameters from a parameter list and return with default values.
RCP< ParameterList > paramList_
virtual std::string getString() const =0
This object is held as the "value" in the Teuchos::ParameterList std::map.
bool isUsed() const
Return whether or not the value has been used; i.e., whether or not the value has been retrieved via ...
std::string docString() const
Return the (optional) documentation std::string.
bool isDefault() const
Indicate whether this entry takes on the default value.
Interface for objects that can accept a ParameterList.
virtual RCP< const ParameterList > getValidParameters() const
Return a ParameterList containing all of the valid parameters that this->setParameterList(....
Smart reference counting pointer class for automatic garbage collection.
T * get() const
Get the raw C++ pointer to the underlying object.
Standard implementation of a ParameterEntryValidator that maps from a list of strings to an enum or i...
bool is_null(const std::shared_ptr< T > &p)
Returns true if p.get()==NULL.
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
Deprecated.
const std::string ObjectType_name
TEUCHOSPARAMETERLIST_LIB_DLL_EXPORT void printValidParameters(const ParameterListAcceptor ¶mListAccpetor, std::ostream &out, const bool showDoc=true)
Pretty print the valid parameters from a ParameterListAccpetor object.