/*
* Copyright (c) 2012, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
*
* 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.wso2.carbon.endpoint.ui.endpoints;
/**
* This provides the basic structure of a endpoint service for the endpoint editor ui,
*/
public interface EndpointService {
/**
* Get the Endpoint related to this Endpoint service
*
* @return Endpoint
*/
public Endpoint getEndpoint();
/**
* Get the Endpoint Type of the Endpoint Service. Ex: Address, WSDL
*
* @return Endpoint Type
*/
public String getType();
/**
* Get the common name of the UI pages for this endpoint service
*
* @return UI page name
*/
public String getUIPageName();
/**
* Get the description of the Endpoint Type. The description should include the the functionality of the the Endpoint type
*
* @return description of the Endpoint type
*/
public String getDescription();
/**
* This gives the display name for the Endpoint.This can
* be any {@link String}. It is recommended to put a meaning full descriptive short name
* as the display name
*
* @return display name of the Endpoint Type
*/
public String getDisplayName();
/**
* Defines whether we can enable the statistics for this Endpoint Type.
* Enable/Disable Statistics option will be available only if this is set to true
*
* @return whether we can enable the statistics for this Endpoint Type
*/
public boolean isStatisticsAvailable();
/**
* Defines whether this Endpoint Type can be add as a child Endpoint of a List Endpoint like LoadBalance Endpoint.
* If this is set to false you will not see a menu item for this Endpoint type in the AddMenu of the listEndpoint designer.
*
* @return whether this Endpoint Type can be add as a child Endpoint of a List Endpoint
*/
public boolean canAddAsChild();
/**
* Defines whether we can create a template from this Endpoint Type.
* If this is set to false you will not see a entry for this endpoint type in the Endpoint Template designer
*
* @return whether we can create a template from this Endpoint Type
*/
public boolean canAddAsTemplate();
/**
* Defines whether this Endpoint Type has a child endpoint form for the list endpoint designer.
* This is used by the <code>listEndpointDesigner</code>
*
* @return whether child endpoint form exists for this endpoint type
*/
public boolean isChildEndpointFormAvailable();
}