w3c.model.www.pep.extensions.escapeBody.Client

w3c.model.www.pep.extensions.escapeBody.Client

package w3c.model.www.pep.extensions.escapeBody;

import w3c.model.www.pep.*;
import w3c.model.www.pep.bags.*;
import w3c.model.www.pep.altlib.HTTPException;

public class Client extends Common 
/*
The client always
*/
    public void makeBag (InstanceContext instanceContext) {
	String name = instanceContext.getPepAgent().nextFreeName(prefHeaderName, this, false);
	String headerNames[] =  String[1];
	headerNames[0] = name;
	ExtDecl extDecl =  ExtDecl(instanceContext,
	     MapBag(instanceContext, URI, headerNames, 1),
	     StrengthBag(instanceContext, requiredExtension));
	Instance inst = (Instance)makeInstance(headerNames, 1, instanceContext);
	inst.setEscapeChar(defaultEscapeChar);
	instanceContext.addExtensionInstance(this, inst);

	instanceContext.addExtDecl(extDecl, PEPMessage.C_PEP);
    }

/*
This will happen when the ignorant client gets a correcting policy declaration. Since the client has just parsed this decl and added it to the agent's database, there will be a rule to call it to handle headers, but no instance of it yet.
*/
    void noElements (InstanceContext instanceContext) {
    }

    public boolean generateHeaders (InstanceContext instanceContext, int when) throws HTTPException{
	if (when == PEPExtension.CONNECT))
	    makeBag(instanceContext);
	return  super.generateHeaders (instanceContext, when);
    }