551 logicValPtr->setName(inLogicValue.getName());
552 logicValPtr->setOriginalName(inLogicValue.getOriginalName());
553 logicValPtr->setParent(inLogicValue.getParent());
554 logicValPtr->setComments(inLogicValue.getComments());
556 std::map<std::string, PropertySharedPtr> outProperties;
557 std::vector<PropertySharedPtr> properties;
558 inLogicValue.getProperties(outProperties);
559 for(std::map<std::string, PropertySharedPtr>::iterator it = outProperties.begin();
560 it != outProperties.end(); ++it) {
562 properties.push_back(clonedProperty);
564 for(std::vector<PropertySharedPtr>::iterator it = properties.begin();
565 it != properties.end(); ++it) {
566 logicValPtr->setProperty((*it)->getName(), *it);
569 std::list < std::string > userData;
570 inLogicValue.getUserData(userData);
571 logicValPtr->setUserData(userData);
575 if(attrib->getIsVoltageMapSet()) {
576 newAttrib->setVoltageMap(attrib->getVoltageMap());
578 if(attrib->getIsCurrentMapSet()) {
579 newAttrib->setCurrentMap(attrib->getCurrentMap());
581 if(attrib->getIsBooleanMapSet()) {
582 newAttrib->setBooleanMap(attrib->getBooleanMap());
585 if(attrib->getWeakLogicValue()) {
587 attrib->getWeakLogicValue()->getName());
588 newAttrib->setWeakLogicValue(logicVal);
590 if(attrib->getStrongLogicValue()) {
592 attrib->getStrongLogicValue()->getName());
593 newAttrib->setStrongLogicValue(logicVal);
596 std::list<LogicValueSharedPtr> outLogicValues;
597 attrib->getCompoundLogicValues(outLogicValues);
598 std::list<LogicValueSharedPtr> logicValues;
599 for(std::list<LogicValueSharedPtr>::iterator it = outLogicValues.begin();
600 it != outLogicValues.end(); ++it) {
602 logicValues.push_back(logicVal);
604 newAttrib->setCompoundLogicValues(logicValues);
607 std::list<LogicValueSharedPtr> outLogicValues;
608 attrib->getDominatedLogicValues(outLogicValues);
609 std::list<LogicValueSharedPtr> logicValues;
610 for(std::list<LogicValueSharedPtr>::iterator it = outLogicValues.begin();
611 it != outLogicValues.end(); ++it) {
613 logicValues.push_back(logicVal);
615 newAttrib->setDominatedLogicValues(logicValues);
618 std::list<LogicValueSharedPtr> outLogicValues;
619 attrib->getResolvedLogicValues(outLogicValues);
620 std::list<LogicValueSharedPtr> logicValues;
621 for(std::list<LogicValueSharedPtr>::iterator it = outLogicValues.begin();
622 it != outLogicValues.end(); ++it) {
624 logicValues.push_back(logicVal);
626 newAttrib->setResolvedLogicValues(logicValues);
628 if(attrib->getIsIsolated()) {
629 newAttrib->setIsIsolated(attrib->getIsIsolated());
632 typedef LogicValueAttributes::LogicMap LogicMap;
633 std::list<LogicMap*> outLogicMaps;
634 attrib->getLogicMaps(outLogicMaps);
635 for(std::list<LogicMap*>::iterator it = outLogicMaps.begin();
636 it != outLogicMaps.end(); ++it) {
637 LogicValueAttributes::LogicMap *logicMap =
new LogicValueAttributes::LogicMap();
638 logicMap->mLogicRef = (*it)->mLogicRef;
639 logicMap->mLibraryRef = (*it)->mLibraryRef;
640 logicMap->mLogicMapType = (*it)->mLogicMapType;
641 newAttrib->addLogicMap(logicMap);
644 logicValPtr->setAttributes(newAttrib);
648 e.setCurrentLocation(__FUNCTION__, __FILE__, __LINE__);
boost::shared_ptr< LogicValue > LogicValueSharedPtr
boost::shared_ptr< _Tp > clone(const boost::shared_ptr< _Tp > &inPointer, const ObjectFactorySharedPtr &inFactory)
boost::shared_ptr< SimulationInfo > SimulationInfoSharedPtr
boost::shared_ptr< Property > PropertySharedPtr
boost::shared_ptr< LogicValueAttributes > LogicValueAttributesSharedPtr
ObjectFactorySharedPtr mFactory