/* * * Copyright 2005 The Apache Software Foundation or its licensors, as applicable. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* $Rev$ $Date: 2005/12/22 11:33:21 $ */ #include "tuscany/sca/util/Logging.h" #include "tuscany/sca/model/EntryPoint.h" #include "tuscany/sca/util/Exceptions.h" namespace tuscany { namespace sca { namespace model { // Constructor EntryPoint::EntryPoint(const std::string& epName) : name(epName) { LOGENTRY(1, "EntryPoint::constructor"); LOGINFO_1(2, "EntryPoint::constructor: EntryPoint name: %s", name.c_str()); LOGEXIT(1, "EntryPoint::constructor"); } EntryPoint::~EntryPoint() { } void EntryPoint::addTarget(WireTarget* targ) { if (multiplicity == ONE_ONE || multiplicity == ZERO_ONE) { if (targets.size() > 0) { // throw exception string message = "Duplicate wire for reference: " + name; throw SystemConfigurationException(message.c_str()); } } // TODO - must be remotable targets.push_back(targ); } void EntryPoint::setMultiplicity(const std::string& multip) { if (multip == "0..1") { multiplicity = ZERO_ONE; } else if (multip == "1..1") { multiplicity = ONE_ONE; } else if (multip == "0..n") { multiplicity = ZERO_MANY; } else if (multip == "1..n") { multiplicity = ONE_MANY; } else { string msg = "Invalid multiplicity specified, " + multip + ", for reference: " +name; throw SystemConfigurationException(msg.c_str()); } } void EntryPoint::setInterface(Interface* interf) { iface = interf; } void EntryPoint::setBinding(Binding* bind) { binding = bind; } } // End namespace model } // End namespace sca } // End namespace tuscany