package org.jssl.serviceregistry;

import org.jssl.serviceregistry.uti.registryaccess.*;

import java.util.*;
import java.rmi.*;

public interface ServiceRegistryIF extends Remote
{
  public  int[] deleteBusiness(String sid, String businesskey[]) throws RemoteException;
  public  int[] deleteBusinessByUrl(String publishurl[], String username[], String password[], String businesskey[]) throws RemoteException;
  public  int[] deleteCategory(String sid, String categorykey[]) throws RemoteException;
  public  int[] deleteCategoryByUrl(String publishurl[], String username[], String password[], String categoryid[]) throws RemoteException;
  public  int[] deleteConcept(String sid, String conceptkey[]) throws RemoteException;
  public  int[] deleteConceptByUrl(String publishurl[], String username[], String password[], String conceptid[]) throws RemoteException;
  public  int[] deleteService(String sid, String servicekey[]) throws RemoteException;
  public  int[] deleteServiceByUrl(String publishurl[], String username[], String password[], String servicekey[]) throws RemoteException;
  public  int[] deleteServiceBinding(String sid, String servicekey[]) throws RemoteException;
  public  int[] deleteServiceBindingByUrl(String publishurl[], String username[], String password[], String srvbdgid[]) throws RemoteException;  

  public  RegistryPublishUrl[] getDefaultPublishUrl(String sid) throws RemoteException;
  public  RegistryInquiryUrl[] getDefaultInquiryUrl(String sid) throws RemoteException;

  public  String setDefaultPublishUrl(RegistryPublishUrl purl[], String uname, String pword) throws RemoteException;
  public  String setDefaultInquiryUrl(RegistryInquiryUrl qurl[], String uname, String pword) throws RemoteException;

  public  String[] registerBusiness(String sid, Organization org[]) throws RemoteException;
  public  String[] registerBusinessByUrl(String publishurl[], String username[], String password[], Organization org[]) throws RemoteException;
  public  String[] registerCategoryByUrl(String publishurl[], String username[], String password[], ClassificationScheme category[]) throws RemoteException;
  public  String[] registerCategory(String sid, ClassificationScheme category[]) throws RemoteException;
  public  String[] registerConcept(String sid, Concept concept[]) throws RemoteException;
  public  String[] registerConceptByUrl(String publishurl[], String username[], String password[], Concept concept[]) throws RemoteException;
  public  String[] registerService(String sid, String businessid[], Service srv[]) throws RemoteException;
  public  String[] registerServiceByUrl(String publishurl[], String username[], String password[], String businessid[], Service srv[]) throws RemoteException;
  public  String[] registerServiceBinding(String sid, String serviceid[], ServiceBinding srv[]) throws RemoteException;
  public  String[] registerServiceBindingByUrl(String publishurl[], String username[], String password[], String serviceid[], ServiceBinding srv[]) throws RemoteException;
  
  public  int[] updateBusiness(String sid, Organization org[]) throws RemoteException;
  public  int[] updateBusinessByUrl(String publishurl[], String username[], String password[], Organization org[]) throws RemoteException;
  public  int[] updateCategory(String sid, ClassificationScheme category[]) throws RemoteException;
  public  int[] updateCategoryByUrl(String publishurl[], String username[], String password[], ClassificationScheme category[]) throws RemoteException;
  public  int[] updateConcept(String sid, Concept concept[]) throws RemoteException;
  public  int[] updateConceptByUrl(String publishurl[], String username[], String password[], Concept concept[]) throws RemoteException;
  public  int[] updateService(String sid, String businessid[], Service srv[], Collection srvbdgs) throws RemoteException;
  public  int[] updateServiceByUrl(String publishurl[], String username[], String password[], String businessid[], Service srv[], Collection srvbdgs) throws RemoteException;
  public  int[] updateServiceBinding(String sid, String serviceid[], ServiceBinding srv[]) throws RemoteException;
  public  int[] updateServiceBindingByUrl(String publishurl[], String username[], String password[], String serviceid[], ServiceBinding srv[]) throws RemoteException;

  public  Organization[] viewBusiness(String sid, String businessname) throws RemoteException;
  public  Organization[] viewBusinessByName(String inquiryurl[], String businessname) throws RemoteException;
  public  Organization[] viewBusinessesByKey(String inquiryurl[], String businessid[]) throws RemoteException;
  public  Organization[] viewBusinessByUrl(String inquiryurl[], String businessname) throws RemoteException;

  public  ClassificationScheme[] viewCategoriesByKey(String inquiryurl[], String categoryid[]) throws RemoteException;
  public  ClassificationScheme[] viewCategory(String sid, String categoryid) throws RemoteException;
  public  ClassificationScheme[] viewCategoryByName(String inquiryurl[], String categoryid) throws RemoteException;
  public  ClassificationScheme[] viewCategoryByUrl(String inquiryurl[], String categoryid) throws RemoteException;

  public  Concept[] viewConcept(String sid, String conceptid) throws RemoteException;
  public  Concept[] viewConceptsByKey(String inquiryurl[], String categoryid[]) throws RemoteException;
  public  Concept[] viewConceptByUrl(String inquiryurl[], String categoryid) throws RemoteException;
  public  Concept[] viewConceptByName(String inquiryurl[], String categoryid) throws RemoteException;
  
  public  Service[] viewService(String sid, String servicename) throws RemoteException;
  public  Service[] viewServiceByUrl(String inquiryurl[], String servicename) throws RemoteException;
  public  Service[] viewServiceByName(String inquiryurl[], String servicename) throws RemoteException;
  public  Service[] viewServicesByKey(String inquiryurl[], String serviceid[]) throws RemoteException;
  
  public  ServiceBinding[] viewServiceBinding(String sid, String srvbdgid) throws RemoteException;
  public  ServiceBinding[] viewServiceBindingsByKey(String inquiryurl[], String srvbdgid[]) throws RemoteException;
}