terriajs
Version:
Geospatial data visualization platform.
34 lines (28 loc) • 1.06 kB
text/typescript
import { computed } from "mobx";
import Constructor from "../Core/Constructor";
import Model from "../Models/Definition/Model";
import StratumOrder from "../Models/Definition/StratumOrder";
import GetCapabilitiesTraits from "../Traits/TraitsClasses/GetCapabilitiesTraits";
type CapabilitiesModel = Model<GetCapabilitiesTraits>;
function GetCapabilitiesMixin<T extends Constructor<CapabilitiesModel>>(
Base: T
) {
abstract class GetCapabilitiesMixin extends Base {
protected abstract get defaultGetCapabilitiesUrl(): string | undefined;
get getCapabilitiesUrl(): string | undefined {
const getCapabilitiesUrl = super.getCapabilitiesUrl;
if (getCapabilitiesUrl !== undefined) {
return getCapabilitiesUrl;
} else {
return this.defaultGetCapabilitiesUrl;
}
}
}
return GetCapabilitiesMixin;
}
namespace GetCapabilitiesMixin {
export const getCapabilitiesStratumName = "getCapabilities";
StratumOrder.addLoadStratum(getCapabilitiesStratumName);
}
export default GetCapabilitiesMixin;