All files / src/Ice ImplicitContext.js

83.17% Statements 89/107
66.66% Branches 18/27
100% Functions 9/9
83.17% Lines 89/107

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 10841x 41x 41x 41x 41x 41x 41x 41x 41x 41x 41x 41x 2x 2x 41x 41x 4x 4x 41x 41x 6x 4x 6x 2x 2x 6x 41x 41x 2x     2x 2x 2x 41x 41x 2x     2x 2x 2x     2x 2x 2x 41x 41x 2x     2x     2x 2x 2x     2x 2x 2x 2x 2x 41x 41x 2x     2x 2x 2x 2x 2x     2x 2x 41x 41x 8x 4x 4x 4x 4x 2x 2x 2x 2x 4x 4x 2x 4x 4x 8x 41x 41x 67x 65x 67x 2x 2x     67x 41x  
// Copyright (c) ZeroC, Inc.
 
import { Ice as Ice_Context } from "./Context.js";
const { Context, ContextHelper } = Ice_Context;
 
import { InitializationException } from "./LocalExceptions.js";
 
//
// The base class for all ImplicitContext implementations
//
export class ImplicitContext {
    constructor() {
        this._context = new Context();
    }
 
    getContext() {
        return new Context(this._context);
    }
 
    setContext(context) {
        if (context !== null && context.size > 0) {
            this._context = new Context(context);
        } else {
            this._context.clear();
        }
    }
 
    containsKey(key) {
        if (key === null) {
            key = "";
        }
 
        return this._context.has(key);
    }
 
    get(key) {
        if (key === null) {
            key = "";
        }
 
        let val = this._context.get(key);
        if (val === null) {
            val = "";
        }
 
        return val;
    }
 
    put(key, value) {
        if (key === null) {
            key = "";
        }
        if (value === null) {
            value = "";
        }
 
        let oldVal = this._context.get(key);
        if (oldVal === null) {
            oldVal = "";
        }
 
        this._context.set(key, value);
 
        return oldVal;
    }
 
    remove(key) {
        if (key === null) {
            key = "";
        }
 
        let val = this._context.get(key);
        this._context.delete(key);
 
        if (val === null) {
            val = "";
        }
        return val;
    }
 
    write(prxContext, os) {
        if (prxContext.size === 0) {
            ContextHelper.write(os, this._context);
        } else {
            let ctx = null;
            if (this._context.size === 0) {
                ctx = prxContext;
            } else {
                ctx = new Context(this._context);
                for (const [key, value] of prxContext) {
                    ctx.set(key, value);
                }
            }
            ContextHelper.write(os, ctx);
        }
    }
 
    static create(kind) {
        if (kind.length === 0 || kind === "None") {
            return null;
        } else if (kind === "Shared") {
            return new ImplicitContext();
        } else {
            throw new InitializationException(`'${kind}' is not a valid value for Ice.ImplicitContext`);
        }
    }
}