2ronwalf// The MIT License
2ronwalf//
2ronwalf// Copyright (c) 2004 Evren Sirin
2ronwalf//
2ronwalf// Permission is hereby granted, free of charge, to any person obtaining a copy
2ronwalf// of this software and associated documentation files (the "Software"), to
2ronwalf// deal in the Software without restriction, including without limitation the
2ronwalf// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
2ronwalf// sell copies of the Software, and to permit persons to whom the Software is
2ronwalf// furnished to do so, subject to the following conditions:
2ronwalf//
2ronwalf// The above copyright notice and this permission notice shall be included in
2ronwalf// all copies or substantial portions of the Software.
2ronwalf//
2ronwalf// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
2ronwalf// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
2ronwalf// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
2ronwalf// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
2ronwalf// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
2ronwalf// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
2ronwalf// IN THE SOFTWARE.
2ronwalf
2ronwalf/*
2ronwalf * Created on Dec 27, 2003
2ronwalf *
2ronwalf */
2ronwalfpackage org.mindswap.owls.service;
2ronwalf
2ronwalfimport org.mindswap.owl.OWLDataValueList;
2ronwalfimport org.mindswap.owl.OWLIndividual;
2ronwalfimport org.mindswap.owls.grounding.Grounding;
2ronwalfimport org.mindswap.owls.process.Process;
2ronwalfimport org.mindswap.owls.profile.Profile;
2ronwalf
2ronwalf
2ronwalf/**
2ronwalf * Represents the OWL-S service.
2ronwalf *
2ronwalf * OWL-S concept: http://www.daml.org/services/owl-s/1.0/Service.owl#Service
2ronwalf *
2ronwalf * @author Evren Sirin
2ronwalf *
2ronwalf */
2ronwalfpublic interface Service extends OWLIndividual {
10daenzerorama
2ronwalf /**
2ronwalf * Return the Profile that belongs to this Service. Multiple profiles
2ronwalf * for the same service is not supported.
2ronwalf *
14daenzerorama * @return the profile of the service
2ronwalf */
2ronwalf public Profile getProfile();
2ronwalf
2ronwalf /**
2ronwalf * Convenience method to get the Process from the ProcessModel. This function
2ronwalf * call is equivalent to getProcessModel().getProcess()
2ronwalf *
14daenzerorama * @return the process of the service
2ronwalf */
14daenzerorama public Process getProcess();
2ronwalf
2ronwalf /**
2ronwalf * Return the Grounding that belongs to this service
2ronwalf *
14daenzerorama * @return the grounding of the service
2ronwalf */
14daenzerorama public Grounding getGrounding();
2ronwalf
2ronwalf /**
2ronwalf * Set the Profile for this service
2ronwalf *
2ronwalf * @param profile
2ronwalf */
2ronwalf public void setProfile(Profile profile);
2ronwalf
2ronwalf /**
2ronwalf * Set the Process for this service
2ronwalf *
2ronwalf * @param profile
2ronwalf */
2ronwalf public void setProcess(Process process);
2ronwalf
2ronwalf /**
2ronwalf * Set the Grounding for this service
2ronwalf *
2ronwalf * @param grounding
2ronwalf */
2ronwalf public void setGrounding(Grounding grounding);
2ronwalf
2ronwalf /**
14daenzerorama * Removes the Profile for this service by breaking the link
14daenzerorama * <code>service:presents</code>. The profile itself remains untouched.
10daenzerorama *
10daenzerorama * @param profile
10daenzerorama */
10daenzerorama public void removeProfile(Profile profile);
10daenzerorama
10daenzerorama /**
14daenzerorama * Removes the process for this service by breaking the link
14daenzerorama * <code>service:describedBy</code>. The process itself remains untouched.
10daenzerorama */
10daenzerorama public void removeProcess();
10daenzerorama
10daenzerorama /**
14daenzerorama * Removes the grounding for this service by breaking the link
14daenzerorama * <code>service:supports</code>. The grounding itself remains untouched.
10daenzerorama *
10daenzerorama * @param grounding
10daenzerorama */
10daenzerorama public void removeGrounding(Grounding grounding);
10daenzerorama
10daenzerorama /**
14daenzerorama * Deletes the profile for this service
14daenzerorama *
14daenzerorama * @param profile
14daenzerorama */
14daenzerorama public void deleteProfile(Profile profile);
14daenzerorama
14daenzerorama /**
14daenzerorama * Deletes the process for this service
14daenzerorama */
14daenzerorama public void deleteProcess();
14daenzerorama
14daenzerorama /**
14daenzerorama * Removes the grounding for this service
14daenzerorama *
14daenzerorama * @param grounding
14daenzerorama */
14daenzerorama public void deleteGrounding(Grounding grounding);
14daenzerorama
14daenzerorama /**
2ronwalf * Get the service name defined in the profile of this service. See {@link org.mindswap.owl.OWLConfig#DEFAULT_LANGS OWLConfig}
2ronwalf * to learn how the language identifiers will be resolved when searching for a name.
2ronwalf *
2ronwalf * @return
2ronwalf */
2ronwalf public String getName();
2ronwalf
2ronwalf /**
2ronwalf * Get the service name defined in the profile of this service. The associated serviceName should have the same
2ronwalf * language identifier as given in the parameter. If a serviceName for that language is not found
2ronwalf * null value will be returned even if there is another serviceName with a different language
2ronwalf * identifier.
2ronwalf *
2ronwalf * @param lang
2ronwalf * @return
2ronwalf */
2ronwalf public String getName(String lang);
2ronwalf
2ronwalf public void setName(String name);
2ronwalf
2ronwalf /**
2ronwalf * Return all service names written in any language.
2ronwalf *
2ronwalf * @return
2ronwalf */
2ronwalf public OWLDataValueList getNames();
2ronwalf
2ronwalf}