// Path: xm-lep-api/src/main/java/com/icthh/xm/lep/api/Context.java
// public interface Context {
// 
//     /**
//      * Read only context value names.
//      *
//      * @return read only context value names set view
//      */
//     Set<String> getNames();
// 
//     boolean contains(String name);
// 
//     Object getValue(String name);
// 
//     <T> T getValue(String name, Class<T> castToType);
// 
//     void setValue(String name, Object value);
// 
//     /**
//      * Read only context values view.
//      *
//      * @return read only context values map view
//      */
//     Map<String, Object> getValues();
// 
// }


import com.icthh.xm.lep.api.Context;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
package com.icthh.xm.lep.core;



/**
 * The {@link DefaultContext} class.
 */
public class DefaultContext implements Context {

    private final Map<String, Object> values = new HashMap<>();

    /**
     * {@inheritDoc}
     */
    @Override
    public Set<String> getNames() {
        return Collections.unmodifiableSet(values.keySet());
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public boolean contains(String name) {
        return values.containsKey(name);
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public Object getValue(String name) {
// Path: xm-lep-api/src/main/java/com/icthh/xm/lep/api/Context.java
// public interface Context {
// 
//     /**
//      * Read only context value names.
//      *
//      * @return read only context value names set view
//      */
//     Set<String> getNames();
// 
//     boolean contains(String name);
// 
//     Object getValue(String name);
// 
//     <T> T getValue(String name, Class<T> castToType);
// 
//     void setValue(String name, Object value);
// 
//     /**
//      * Read only context values view.
//      *
//      * @return read only context values map view
//      */
//     Map<String, Object> getValues();
// 
// }


// Path: xm-lep-core/src/main/java/com/icthh/xm/lep/core/DefaultContext.java
import com.icthh.xm.lep.api.Context;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

package com.icthh.xm.lep.core;



/**
 * The {@link DefaultContext} class.
 */
public class DefaultContext implements Context {

    private final Map<String, Object> values = new HashMap<>();

    /**
     * {@inheritDoc}
     */
    @Override
    public Set<String> getNames() {
        return Collections.unmodifiableSet(values.keySet());
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public boolean contains(String name) {
        return values.containsKey(name);
    }

    /**
     * {@inheritDoc}
     */
    @Override
    public Object getValue(String name) {
        return values.get(name);