All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.cxf.aegis.Context Maven / Gradle / Ivy

There is a newer version: 2.7.18
Show newest version
/**
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements. See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership. The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License. You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied. See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */
package org.apache.cxf.aegis;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;

import org.apache.cxf.aegis.type.TypeMapping;
import org.apache.cxf.interceptor.Fault;
import org.apache.cxf.message.Attachment;

/**
 * Holds information about the message request and response. Applications should not need to 
 * work with this class.
 * 
 * @author Dan Diephouse
 * @since Feb 13, 2004
 */
public class Context {
    private AegisContext globalContext;
    private Collection attachments;
    private Fault fault;
    private Map, Object> properties;
    private Map namedProperties;
    
    public Context(AegisContext aegisContext) {
        this.globalContext = aegisContext;
        this.properties = new HashMap, Object>();
    }

    public TypeMapping getTypeMapping() {
        return globalContext.getTypeMapping();
    }

    public Collection getAttachments() {
        return attachments;
    }

    public void setAttachments(Collection attachments) {
        this.attachments = attachments;
    }

    public boolean isWriteXsiTypes() {
        return globalContext.isWriteXsiTypes();
    }

    public boolean isReadXsiTypes() {
        return globalContext.isReadXsiTypes();
    }

    public void setFault(Fault fault) {
        this.fault = fault;
    }

    public Fault getFault() {
        return fault;
    }

    public AegisContext getGlobalContext() {
        return globalContext;
    }

    public boolean isMtomEnabled() {
        return globalContext.isMtomEnabled();
    }

    // bus-style properties for internal state management.
    public  T getProperty(Class key) {
        return key.cast(properties.get(key));
    }
    
    public void setProperty(Object value) {
        properties.put(value.getClass(), value);
    }
    
    //named properties to solve other problems
    public void setProperty(String name, Object value) {
        namedProperties.put(name, value);
    }
    
    public  T getProperty(String name, Class type) {
        return type.cast(namedProperties.get(name));
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy