// Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.sdk.wip;
/**
* Abstract interface to WIP implementation, that is delivered in a separate library.
* It allows to have several versions of implementation in the system at the same time,
* which may be needed because WIP is not stable yet and is evolving quite rapidly.
* <p>
* A particular set-up should choose it's own way to get backed instances. For example
* Eclipse may use its extension point mechanism. Other frameworks can dynamically instantiate
* {@link Factory}.
*/
public interface WipBackend {
/**
* @return a unique name of backend implementation
*/
String getId();
/**
* @return a human-readable implementation description that should help to tell what protocol
* version it supports
*/
String getDescription();
/**
* Used to dynamically instantiate {@link WipBackend}. Instance of {@link Factory} should be
* available via {@link ClassLoader}.
*/
interface Factory {
WipBackend create();
}
}