1 18 package org.apache.geronimo.console.databasemanager.wizard; 19 20 import org.apache.geronimo.kernel.repository.Artifact; 21 import org.apache.geronimo.gbean.GBeanInfo; 22 import org.apache.geronimo.gbean.GBeanInfoBuilder; 23 24 import java.util.regex.Pattern ; 25 import java.util.regex.Matcher ; 26 import java.util.List ; 27 import java.util.ArrayList ; 28 29 35 public class DatabaseDriverGBean implements DatabaseDriver { 36 private final static Pattern PARAM_PATTERN = Pattern.compile("\\{.+?\\}"); 37 private String name; 38 private String URLPrototype; 39 private String driverClassName; 40 private int defaultPort; 41 private boolean XA; 42 private Artifact RAR; 43 44 public String getName() { 45 return name; 46 } 47 48 public void setName(String name) { 49 this.name = name; 50 } 51 52 public String getURLPrototype() { 53 return URLPrototype; 54 } 55 56 public void setURLPrototype(String URLPrototype) { 57 this.URLPrototype = URLPrototype; 58 } 59 60 public String getDriverClassName() { 61 return driverClassName; 62 } 63 64 public void setDriverClassName(String driverClassName) { 65 this.driverClassName = driverClassName; 66 } 67 68 public int getDefaultPort() { 69 return defaultPort; 70 } 71 72 public void setDefaultPort(int defaultPort) { 73 this.defaultPort = defaultPort; 74 } 75 76 public boolean isXA() { 77 return XA; 78 } 79 80 public void setXA(boolean XA) { 81 this.XA = XA; 82 } 83 84 public Artifact getRAR() { 85 return RAR; 86 } 87 88 public void setRARName(String name) { 89 RAR = Artifact.create(name); 90 } 91 92 public String [] getURLParameters() { 93 Matcher m = PARAM_PATTERN.matcher(URLPrototype); 94 List list = new ArrayList (); 95 while(m.find()) { 96 list.add(URLPrototype.substring(m.start()+1, m.end()-1)); 97 } 98 return (String []) list.toArray(new String [list.size()]); 99 } 100 101 public static final GBeanInfo GBEAN_INFO; 102 103 static { 104 GBeanInfoBuilder infoFactory = GBeanInfoBuilder.createStatic("Database Driver Info", DatabaseDriverGBean.class); 105 infoFactory.addAttribute("name", String .class, true, true); 106 infoFactory.addAttribute("URLPrototype", String .class, true, true); 107 infoFactory.addAttribute("driverClassName", String .class, true, true); 108 infoFactory.addAttribute("defaultPort", int.class, true, true); 109 infoFactory.addAttribute("XA", boolean.class, true, true); 110 infoFactory.addAttribute("RARName", String .class, true, true); 111 infoFactory.addInterface(DatabaseDriver.class); 112 113 infoFactory.setConstructor(new String [0]); 114 115 GBEAN_INFO = infoFactory.getBeanInfo(); 116 } 117 118 public static GBeanInfo getGBeanInfo() { 119 return GBEAN_INFO; 120 } 121 } 122 | Popular Tags |