ClientModifier.java

00001 
00026 package org.objectweb.jonas_ws.wsgen.modifier;
00027 
00028 import java.io.File;
00029 import java.util.Iterator;
00030 import java.util.List;
00031 
00032 import org.w3c.dom.Document;
00033 import org.w3c.dom.Element;
00034 
00035 import org.objectweb.jonas_lib.genbase.GenBaseException;
00036 import org.objectweb.jonas_lib.genbase.archive.Archive;
00037 import org.objectweb.jonas_lib.genbase.archive.Client;
00038 import org.objectweb.jonas_lib.genbase.modifier.ArchiveModifier;
00039 
00040 import org.objectweb.jonas_ws.deployment.api.ServiceRefDesc;
00041 import org.objectweb.jonas_ws.wsgen.ddmodifier.WsClientDDModifier;
00042 import org.objectweb.jonas_ws.wsgen.generator.Generator;
00043 import org.objectweb.jonas_ws.wsgen.generator.GeneratorFactory;
00044 
00045 import org.objectweb.util.monolog.api.BasicLevel;
00046 
00052 public class ClientModifier extends ArchiveModifier {
00053 
00055     private Client client;
00056 
00062     public ClientModifier(Client client) {
00063         super(client);
00064         this.client = client;
00065     }
00066 
00074     public Archive modify() throws GenBaseException {
00075 
00076         getLogger().log(BasicLevel.INFO, "Processing Client " + client.getName());
00077 
00078         GeneratorFactory gf = GeneratorFactory.getInstance();
00079         Document jclient = client.getJonasClientDoc();
00080 
00081         List refs = client.getServiceRefDescs();
00082         for (Iterator i = refs.iterator(); i.hasNext();) {
00083             ServiceRefDesc ref = (ServiceRefDesc) i.next();
00084 
00085             // create dd modifier
00086             Element base = null;
00087             if (jclient != null) {
00088                 base = jclient.getDocumentElement();
00089             }
00090             WsClientDDModifier ddm = new WsClientDDModifier(ref.getServiceRefName(), jclient, base);
00091 
00092             // launch generation
00093             Generator g = gf.newGenerator(ref, ddm, client);
00094             g.generate();
00095             g.compile();
00096             // add files in web archive
00097             g.addFiles(client);
00098         }
00099 
00100         return save(gf.getConfiguration(), "clients" + File.separator + client.getRootFile().getName());
00101     }
00102 }

Generated on Tue Feb 15 15:05:55 2005 for JOnAS by  doxygen 1.3.9.1