blob: 37dbbd4e2be8c4cd8a402697512de748b3faf035 [file] [log] [blame]
/*
* Copyright 2001-2004 The Apache Software Foundation.
*
* 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.
*/
package org.apache.ws.scout.registry.infomodel;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import javax.xml.registry.InvalidRequestException;
import javax.xml.registry.JAXRException;
import javax.xml.registry.LifeCycleManager;
import javax.xml.registry.UnexpectedObjectException;
import javax.xml.registry.infomodel.InternationalString;
import javax.xml.registry.infomodel.Service;
import javax.xml.registry.infomodel.ServiceBinding;
import javax.xml.registry.infomodel.SpecificationLink;
/**
* Implements JAXR Interface.
* For futher details, look into the JAXR API Javadoc.
*
* @author Anil Saldhana <anil@apache.org>
*/
public class ServiceBindingImpl extends RegistryObjectImpl implements ServiceBinding
{
private Collection<SpecificationLink> links = new ArrayList<SpecificationLink>();
private String accessuri = null;
private Service service = null;
private ServiceBinding targetbinding = null;
private boolean validateuri = false;
public ServiceBindingImpl(LifeCycleManager lifeCycleManager)
{
super(lifeCycleManager);
}
public ServiceBindingImpl(LifeCycleManager lifeCycleManager, InternationalString n)
{
super(lifeCycleManager, n);
}
public void addSpecificationLink(SpecificationLink sl) throws JAXRException
{
links.add(sl);
((SpecificationLinkImpl)sl).setServiceBinding(this);
}
public void addSpecificationLinks(Collection col) throws JAXRException
{
try
{
Iterator iter = col.iterator();
while(iter.hasNext())
{
addSpecificationLink((SpecificationLink)iter.next());
}
} catch (ClassCastException e)
{
throw new UnexpectedObjectException();
}
}
public String getAccessURI() throws JAXRException
{
return accessuri;
}
public Service getService() throws JAXRException
{
return service;
}
public Collection getSpecificationLinks() throws JAXRException
{
return links;
}
public ServiceBinding getTargetBinding() throws JAXRException
{
return targetbinding;
}
public void removeSpecificationLink(SpecificationLink link) throws JAXRException
{
links.remove(link);
}
public void removeSpecificationLinks(Collection<SpecificationLink> col) throws JAXRException
{
links.removeAll(col);
}
public void setAccessURI(String s) throws JAXRException
{
if(targetbinding != null)
throw new InvalidRequestException("There is already a Target Binding defined");
accessuri = s;
}
public void setTargetBinding(ServiceBinding sb) throws JAXRException
{
if(accessuri != null)
throw new InvalidRequestException("There is already an Access URI defined");
targetbinding = sb;
}
public boolean getValidateURI() throws JAXRException
{
return validateuri;
}
public void setValidateURI(boolean b) throws JAXRException
{
validateuri = b;
}
//Specific API
public void setService(Service s)
{
service =s;
}
}