00001
00027 package org.objectweb.jonas_lib.genclientstub.modifier;
00028
00029 import java.io.File;
00030 import java.util.Iterator;
00031 import java.util.List;
00032
00033 import org.objectweb.jonas_lib.deployment.api.EjbRefDesc;
00034 import org.objectweb.jonas_lib.genbase.GenBaseException;
00035 import org.objectweb.jonas_lib.genbase.archive.Archive;
00036 import org.objectweb.jonas_lib.genbase.archive.Client;
00037 import org.objectweb.jonas_lib.genclientstub.generator.Generator;
00038 import org.objectweb.jonas_lib.genclientstub.generator.GeneratorFactory;
00039
00040 import org.objectweb.util.monolog.api.BasicLevel;
00041
00047 public class ClientModifier extends AbsArchiveModifier {
00048
00050 private Client client;
00051
00057 public ClientModifier(Client client) {
00058 super(client);
00059 this.client = client;
00060 }
00061
00069 public Archive modify() throws GenBaseException {
00070
00071 getLogger().log(BasicLevel.INFO, "Processing Client " + client.getName());
00072
00073 GeneratorFactory gf = GeneratorFactory.getInstance();
00074
00075
00076
00077 generateFoundStubs(gf.getConfiguration(), client);
00078
00079
00080
00081
00082 List ejbRefs = client.getEjbRefDescs();
00083 for (Iterator j = ejbRefs.iterator(); j.hasNext();) {
00084 EjbRefDesc ejbRef = (EjbRefDesc) j.next();
00085
00086
00087 Generator g = new Generator(gf.getConfiguration(), ejbRef, null, client);
00088 g.generate();
00089 g.compile();
00090
00091 g.addFiles(client);
00092 }
00093
00094 return save(gf.getConfiguration(), "clients" + File.separator + client.getRootFile().getName());
00095 }
00096 }