* terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
-
package org.opendaylight.mdsal.dom.api;
-import com.google.common.base.Optional;
-import org.opendaylight.yangtools.concepts.ListenerRegistration;
+import java.util.Optional;
import org.opendaylight.yangtools.concepts.ObjectRegistration;
+import org.opendaylight.yangtools.concepts.Registration;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
-
-public interface DOMMountPointService extends DOMService {
+public interface DOMMountPointService extends DOMService<DOMMountPointService, DOMMountPointService.Extension> {
+ /**
+ * Marker interface for an extension to {@link DOMMountPointService}.
+ */
+ interface Extension extends DOMService.Extension<DOMMountPointService, Extension> {
+ // Marker interface
+ }
Optional<DOMMountPoint> getMountPoint(YangInstanceIdentifier path);
DOMMountPointBuilder createMountPoint(YangInstanceIdentifier path);
- ListenerRegistration<DOMMountPointListener> registerProvisionListener(DOMMountPointListener listener);
-
- public interface DOMMountPointBuilder {
+ Registration registerProvisionListener(DOMMountPointListener listener);
- <T extends DOMService> DOMMountPointBuilder addService(Class<T> type,T impl);
+ interface DOMMountPointBuilder {
- DOMMountPointBuilder addInitialSchemaContext(SchemaContext ctx);
+ <T extends DOMService<T, E>, E extends DOMService.Extension<T, E>> DOMMountPointBuilder addService(
+ Class<T> type, T impl);
+ // FIXME: just Registration
ObjectRegistration<DOMMountPoint> register();
}
}