001: /*
002: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
003: *
004: * Copyright 1997-2007 Sun Microsystems, Inc. All rights reserved.
005: *
006: * The contents of this file are subject to the terms of either the GNU
007: * General Public License Version 2 only ("GPL") or the Common
008: * Development and Distribution License("CDDL") (collectively, the
009: * "License"). You may not use this file except in compliance with the
010: * License. You can obtain a copy of the License at
011: * http://www.netbeans.org/cddl-gplv2.html
012: * or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
013: * specific language governing permissions and limitations under the
014: * License. When distributing the software, include this License Header
015: * Notice in each file and include the License file at
016: * nbbuild/licenses/CDDL-GPL-2-CP. Sun designates this
017: * particular file as subject to the "Classpath" exception as provided
018: * by Sun in the GPL Version 2 section of the License file that
019: * accompanied this code. If applicable, add the following below the
020: * License Header, with the fields enclosed by brackets [] replaced by
021: * your own identifying information:
022: * "Portions Copyrighted [year] [name of copyright owner]"
023: *
024: * Contributor(s):
025: *
026: * The Original Software is NetBeans. The Initial Developer of the Original
027: * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
028: * Microsystems, Inc. All Rights Reserved.
029: *
030: * If you wish your version of this file to be governed by only the CDDL
031: * or only the GPL Version 2, indicate your decision by adding
032: * "[Contributor] elects to include this software in this distribution
033: * under the [CDDL or GPL Version 2] license." If you do not indicate a
034: * single choice of license, a recipient has the option to distribute
035: * your version of this file under either the CDDL, the GPL Version 2 or
036: * to extend the choice of license to its licensees as provided above.
037: * However, if you add GPL Version 2 code and therefore, elected the GPL
038: * Version 2 license, then the option applies only if the new code is
039: * made subject to such option by the copyright holder.
040: */
041:
042: package org.netbeans.modules.websvc.api.registry;
043:
044: import java.beans.PropertyChangeListener;
045:
046: import org.openide.nodes.Node;
047: import org.openide.filesystems.FileObject;
048:
049: /** Retrieve an implementation of this instance via Global Lookup to obtain
050: * access to the registry of web services within the IDE.
051: *
052: * !! This is not a supported API. Rather, it exists in it's current form
053: * to allow other webservices modules to utilize the registry. It should
054: * be redone to have a service interface and iterate/search through the
055: * registered services. It will also need to allow external modules to
056: * register a WSDL, bypassing the UI, but doing the rest.
057: *
058: * @author Peter Williams
059: */
060: public interface WebServicesRegistryView {
061:
062: /** Retrieve the root node of the registry view on the runtime tab.
063: *
064: * !PW used by the webservice core to relate the client view to the registered
065: * services. Not stable, as this will be replaced with a search mechanism.
066: */
067: public Node getRegistryRootNode();
068:
069: /** Retrieve the node(s) representing the services present in the specified
070: * wsdl file.
071: *
072: * !PW we may need to add the name of the WSDL file here, or other identifying
073: * information, as the name of the registered service can be changed by
074: * the user and is not necessarily present in the WSDL file that was originally
075: * installed. For now, we'll assume the WSDL file has only one service
076: * and that the name has not been changed.
077: */
078: public Node[] getWebServiceNodes(FileObject wsdlFile);
079:
080: /** Checks to see if the service specified has been registered.
081: *
082: * !PW This assumes that the serviceName and displayName of the installed
083: * service (if any) match. This is the default, but the user is allowed
084: * to change the name of an installed service added manually so we will
085: * need to enhance the backend and possible this method to allow better
086: * matching.
087: */
088: public boolean isServiceRegistered(String serviceName);
089:
090: /** Registers the services in the specified WSDL file.
091: *
092: * !PW the user can change the package in the project view, but what about
093: * the name, as displayed in the registry? Maybe add a 'Rename...'
094: * action to service nodes.
095: *
096: * !PW what exception(s) should this throw if any?
097: */
098: public boolean registerService(FileObject wsdlFile,
099: boolean replaceService);
100:
101: /** Registers the service running on the specifiedl URL. All this means is
102: * that the implementation will access [wsdlUrl]?WSDL and process the result
103: * as if it were a WSDL file (which it will be if this is a valid service.)
104: *
105: * !PW the user can change the package in the project view, but what about
106: * the name, as displayed in the registry? Maybe add a 'Rename...'
107: * action to service nodes.
108: *
109: * !PW what exception(s) should this throw if any?
110: */
111: public boolean registerService(java.net.URL wsdlUrl,
112: boolean replaceService);
113:
114: /** Event notification of services being added and removed.
115: *
116: * !PW Probably should define my own event harness.
117: */
118: public static final String WEB_SERVICE_ADDED = "webServiceAdded";
119: public static final String WEB_SERVICE_REMOVED = "webServiceRemoved";
120:
121: public void addPropertyChangeListener(
122: PropertyChangeListener listener);
123:
124: public void removePropertyChangeListener(
125: PropertyChangeListener listener);
126: }
|