View Javadoc

1   package net.sf.provisioner.requests;
2   
3   import java.util.ArrayList;
4   import java.util.List;
5   import java.util.Map;
6   
7   import org.jdom.Document;
8   
9   /**
10   * Abstract extension of a {@link Request} object, augmented to provide
11   * common functionality for LDAP requests.
12   * 
13   * @author g_pearson
14   *
15   */
16  /* TODO: Refactor the objectClass field into: LDAPCreateRequest; or
17   * a common base class for LDAPCreateRequest, and any new requests that 
18   * use it.
19   */ 
20  public abstract class LDAPRequest extends Request {
21  
22  	protected List<String>        objectClass       = new ArrayList<String>();
23  	protected String              distinguishedName = null;
24  	protected Map<String, Object> params            = null;
25  	
26  	
27  	public LDAPRequest(net.sf.provisioner.config.ConfigRequest request, Document opParameters) {
28  		this.ne = request.service.ne;
29  
30  		setupRequest(opParameters);
31  	}
32  
33  	protected void setupRequest(Document parameters) {
34  		Map<String, Object> params = filterParameters(parameters);		
35  		this.params       = params;           
36  	}
37  
38  	protected void storeParameter(Map<String, Object> paramStore, String name, Object value) {
39  		if (name.equalsIgnoreCase("objectClass")) {
40  			objectClass.add((String) value);
41  		} else if (name.equalsIgnoreCase("ldap_operation_key")) {
42  			// Not a request parameter.
43  		} else if (name.equalsIgnoreCase("dn")) {
44  			distinguishedName = (String) value;			
45  		} else {		
46  			super.storeParameter(paramStore, name, value);
47  		}		
48  	}
49  	
50  	String getDistinguishedName() {
51  		return distinguishedName;
52  	}
53  	
54  	Object getParam(String paramName) {
55  		return params.get(paramName);
56  	}
57  }