Throw when calling abstract methods; fix abstract return types

This commit is contained in:
ahocevar
2018-10-30 18:45:42 +01:00
parent 2adac0b3e7
commit 1cdd040c96
22 changed files with 273 additions and 85 deletions
+14 -6
View File
@@ -1,7 +1,7 @@
/**
* @module ol/renderer/Map
*/
import {getUid} from '../util.js';
import {abstract, getUid} from '../util.js';
import Disposable from '../Disposable.js';
import {listen, unlistenByKey} from '../events.js';
import EventType from '../events/EventType.js';
@@ -11,7 +11,9 @@ import {visibleAtResolution} from '../layer/Layer.js';
import {shared as iconImageCache} from '../style/IconImageCache.js';
import {compose as composeTransform, invert as invertTransform, setFromArray as transformSetFromArray} from '../transform.js';
/**
* @abstract
*/
class MapRenderer extends Disposable {
/**
@@ -51,7 +53,9 @@ class MapRenderer extends Disposable {
* @param {import("../render/EventType.js").default} type Event type.
* @param {import("../PluggableMap.js").FrameState} frameState Frame state.
*/
dispatchRenderEvent(type, frameState) {}
dispatchRenderEvent(type, frameState) {
abstract();
}
/**
* Register layer renderer constructors.
@@ -179,7 +183,9 @@ class MapRenderer extends Disposable {
* @return {T|undefined} Callback result.
* @template S,T,U
*/
forEachLayerAtPixel(pixel, frameState, hitTolerance, callback, thisArg, layerFilter, thisArg2) {}
forEachLayerAtPixel(pixel, frameState, hitTolerance, callback, thisArg, layerFilter, thisArg2) {
return abstract();
}
/**
* @param {import("../coordinate.js").Coordinate} coordinate Coordinate.
@@ -290,11 +296,13 @@ class MapRenderer extends Disposable {
}
/**
* @abstract
* Render.
* @abstract
* @param {?import("../PluggableMap.js").FrameState} frameState Frame state.
*/
renderFrame(frameState) {}
renderFrame(frameState) {
abstract();
}
/**
* @param {import("../PluggableMap.js").FrameState} frameState Frame state.
+10 -2
View File
@@ -1,12 +1,16 @@
/**
* @module ol/renderer/canvas/IntermediateCanvas
*/
import {abstract} from '../../util.js';
import {scale as scaleCoordinate} from '../../coordinate.js';
import {createCanvasContext2D} from '../../dom.js';
import {containsExtent, intersects} from '../../extent.js';
import CanvasLayerRenderer from '../canvas/Layer.js';
import {create as createTransform, apply as applyTransform} from '../../transform.js';
/**
* @abstract
*/
class IntermediateCanvasRenderer extends CanvasLayerRenderer {
/**
@@ -80,13 +84,17 @@ class IntermediateCanvasRenderer extends CanvasLayerRenderer {
* @abstract
* @return {HTMLCanvasElement|HTMLVideoElement|HTMLImageElement} Canvas.
*/
getImage() {}
getImage() {
return abstract();
}
/**
* @abstract
* @return {!import("../../transform.js").Transform} Image transform.
*/
getImageTransform() {}
getImageTransform() {
return abstract();
}
/**
* @inheritDoc
+10 -2
View File
@@ -1,6 +1,7 @@
/**
* @module ol/renderer/canvas/Layer
*/
import {abstract} from '../../util.js';
import {getBottomLeft, getBottomRight, getTopLeft, getTopRight} from '../../extent.js';
import {TRUE} from '../../functions.js';
import RenderEvent from '../../render/Event.js';
@@ -10,6 +11,9 @@ import CanvasImmediateRenderer from '../../render/canvas/Immediate.js';
import LayerRenderer from '../Layer.js';
import {create as createTransform, apply as applyTransform, compose as composeTransform} from '../../transform.js';
/**
* @abstract
*/
class CanvasLayerRenderer extends LayerRenderer {
/**
@@ -167,7 +171,9 @@ class CanvasLayerRenderer extends LayerRenderer {
* @param {import("../../layer/Layer.js").State} layerState Layer state.
* @param {CanvasRenderingContext2D} context Context.
*/
composeFrame(frameState, layerState, context) {}
composeFrame(frameState, layerState, context) {
abstract();
}
/**
* @abstract
@@ -175,7 +181,9 @@ class CanvasLayerRenderer extends LayerRenderer {
* @param {import("../../layer/Layer.js").State} layerState Layer state.
* @return {boolean} whether composeFrame should be called.
*/
prepareFrame(frameState, layerState) {}
prepareFrame(frameState, layerState) {
return abstract();
}
}
export default CanvasLayerRenderer;
+10 -2
View File
@@ -1,6 +1,7 @@
/**
* @module ol/renderer/webgl/Layer
*/
import {abstract} from '../../util.js';
import RenderEvent from '../../render/Event.js';
import RenderEventType from '../../render/EventType.js';
import WebGLImmediateRenderer from '../../render/webgl/Immediate.js';
@@ -14,6 +15,9 @@ import {ARRAY_BUFFER, FRAMEBUFFER, FLOAT, TEXTURE_2D,
import WebGLBuffer from '../../webgl/Buffer.js';
import {createEmptyTexture} from '../../webgl/Context.js';
/**
* @abstract
*/
class WebGLLayerRenderer extends LayerRenderer {
/**
@@ -236,7 +240,9 @@ class WebGLLayerRenderer extends LayerRenderer {
* @param {import("../../webgl/Context.js").default} context Context.
* @return {boolean} whether composeFrame should be called.
*/
prepareFrame(frameState, layerState, context) {}
prepareFrame(frameState, layerState, context) {
return abstract();
}
/**
* @abstract
@@ -248,7 +254,9 @@ class WebGLLayerRenderer extends LayerRenderer {
* @return {T|undefined} Callback result.
* @template S,T,U
*/
forEachLayerAtPixel(pixel, frameState, callback, thisArg) {}
forEachLayerAtPixel(pixel, frameState, callback, thisArg) {
return abstract();
}
}