package org.safehaus.penrose.module;
import org.safehaus.penrose.session.Session;
import org.safehaus.penrose.operation.SearchOperation;
import org.safehaus.penrose.ldap.*;
import org.safehaus.penrose.directory.Entry;
/**
* @author Endi Sukma Dewata
*/
public class ModuleChain {
protected Entry entry;
protected Module module;
protected ModuleChain chain;
public ModuleChain(Entry entry) {
this.entry = entry;
}
public ModuleChain(Entry entry, Module module, ModuleChain chain) {
this.entry = entry;
this.module = module;
this.chain = chain;
}
public Entry getEntry() {
return entry;
}
public void setEntry(Entry entry) {
this.entry = entry;
}
public Module getModule() {
return module;
}
public void setModule(Module module) {
this.module = module;
}
public ModuleChain getChain() {
return chain;
}
public void setChain(ModuleChain chain) {
this.chain = chain;
}
public void add(Session session, AddRequest request, AddResponse response) throws Exception {
if (module == null) {
entry.add(session, request, response);
} else {
module.add(session, request, response, chain);
}
}
public void bind(Session session, BindRequest request, BindResponse response) throws Exception {
if (module == null) {
entry.bind(session, request, response);
} else {
module.bind(session, request, response, chain);
}
}
public void compare(Session session, CompareRequest request, CompareResponse response) throws Exception {
if (module == null) {
entry.compare(session, request, response);
} else {
module.compare(session, request, response, chain);
}
}
public void delete(Session session, DeleteRequest request, DeleteResponse response) throws Exception {
if (module == null) {
entry.delete(session, request, response);
} else {
module.delete(session, request, response, chain);
}
}
public void modify(Session session, ModifyRequest request, ModifyResponse response) throws Exception {
if (module == null) {
entry.modify(session, request, response);
} else {
module.modify(session, request, response, chain);
}
}
public void modrdn(Session session, ModRdnRequest request, ModRdnResponse response) throws Exception {
if (module == null) {
entry.modrdn(session, request, response);
} else {
module.modrdn(session, request, response, chain);
}
}
public void search(SearchOperation operation) throws Exception {
if (module == null) {
entry.search(operation);
} else {
module.search(operation, chain);
}
}
public void unbind(Session session, UnbindRequest request, UnbindResponse response) throws Exception {
if (module == null) {
entry.unbind(session, request, response);
} else {
module.unbind(session, request, response, chain);
}
}
}