/build.properties/src/com/framedobjects/dashwell/db/RmiAgent.java

http://mobiledatanow.googlecode.com/ · Java · 1772 lines · 1455 code · 153 blank · 164 comment · 107 complexity · 299a2ec79d597d85f036a97037e9ff79 MD5 · raw file

Large files are truncated click here to view the full file

  1. package com.framedobjects.dashwell.db;
  2. import java.sql.Timestamp;
  3. import java.text.SimpleDateFormat;
  4. import java.util.ArrayList;
  5. import java.util.Date;
  6. import java.util.HashMap;
  7. import java.util.Hashtable;
  8. import java.util.List;
  9. import java.util.Map;
  10. import java.util.Vector;
  11. import java.util.regex.Matcher;
  12. import java.util.regex.Pattern;
  13. import javax.servlet.http.HttpServletRequest;
  14. import org.apache.log4j.Logger;
  15. import wsl.fw.datasource.DataManager;
  16. import wsl.fw.datasource.DataObject;
  17. import wsl.fw.datasource.DataSource;
  18. import wsl.fw.datasource.DataSourceException;
  19. import wsl.fw.datasource.Entity;
  20. import wsl.fw.datasource.EntitySchemaName;
  21. import wsl.fw.datasource.Field;
  22. import wsl.fw.datasource.JdbcDataSourceParam;
  23. import wsl.fw.datasource.Query;
  24. import wsl.fw.datasource.QueryCriterium;
  25. import wsl.fw.datasource.RecordSet;
  26. import wsl.fw.datasource.Sort;
  27. import wsl.fw.exception.MdnException;
  28. import wsl.fw.resource.ResId;
  29. import wsl.fw.resource.ResourceManager;
  30. import wsl.fw.security.Feature;
  31. import wsl.fw.security.Group;
  32. import wsl.fw.security.GroupMembership;
  33. import wsl.fw.security.SecurityManager;
  34. import wsl.fw.security.User;
  35. import wsl.fw.security.UserWrapper;
  36. import wsl.fw.util.CKfw;
  37. import wsl.fw.util.Config;
  38. import wsl.fw.util.Log;
  39. import wsl.mdn.common.MdnAdminConst;
  40. import wsl.mdn.common.MdnDataManager;
  41. import wsl.mdn.common.MdnResourceManager;
  42. import wsl.mdn.dataview.DataSourceDobj;
  43. import wsl.mdn.dataview.DataView;
  44. import wsl.mdn.dataview.DataViewDataSource;
  45. import wsl.mdn.dataview.DataViewField;
  46. import wsl.mdn.dataview.EntityDobj;
  47. import wsl.mdn.dataview.FieldDobj;
  48. import wsl.mdn.dataview.FieldExclusion;
  49. import wsl.mdn.dataview.GroupDataView;
  50. import wsl.mdn.dataview.GroupTablePermission;
  51. import wsl.mdn.dataview.JdbcDataSourceDobj;
  52. import wsl.mdn.dataview.JdbcDriver;
  53. import wsl.mdn.dataview.JoinDobj;
  54. import wsl.mdn.dataview.LanguageDobj;
  55. import wsl.mdn.dataview.MdnDataCache;
  56. import wsl.mdn.dataview.ProjectDobj;
  57. import wsl.mdn.dataview.QueryCriteriaDobj;
  58. import wsl.mdn.dataview.QueryCriteriaHistoryDobj;
  59. import wsl.mdn.dataview.QueryDobj;
  60. import wsl.mdn.dataview.ResultWrapper;
  61. //import wsl.mdn.dataview.UserLicenses;
  62. import wsl.mdn.dataview.WebServiceDobj;
  63. import wsl.mdn.dataview.WebServiceOperationDobj;
  64. import wsl.mdn.guiconfig.MenuAction;
  65. import wsl.mdn.mdnim.IMConnection;
  66. import wsl.mdn.mdnim.IMContact;
  67. import wsl.mdn.mdnim.IMMessage;
  68. import wsl.mdn.mdnmsgsvr.BlockContacts;
  69. import wsl.mdn.mdnmsgsvr.CustomField;
  70. import wsl.mdn.mdnmsgsvr.MdnSmpp;
  71. import wsl.mdn.mdnmsgsvr.MessagingSettingDetails;
  72. import wsl.mdn.mdnmsgsvr.MdnEmailSetting;
  73. import wsl.mdn.mdnmsgsvr.MdnMessageSeparator;
  74. import wsl.mdn.mdnmsgsvr.MdnSmsSetting;
  75. import wsl.mdn.mdnmsgsvr.MessageLog;
  76. import wsl.mdn.mdnmsgsvr.TemporaryBlockContacInfo;
  77. import wsl.mdn.mdnmsgsvr.UserCustomField;
  78. import wsl.mdn.mdnmsgsvr.UserReply;
  79. import wsl.mdn.server.LicenseManager;
  80. import wsl.mdn.server.MdnServer;
  81. import com.framedobjects.dashwell.biz.RecycleBinItem;
  82. import com.framedobjects.dashwell.db.meta.MetaDbConnection;
  83. import com.framedobjects.dashwell.mdnEmail.MdnMailService;
  84. import com.framedobjects.dashwell.mdninstantmsg.MDNIMServer;
  85. import com.framedobjects.dashwell.mdnsms.MdnSmppGatewayServer;
  86. import com.framedobjects.dashwell.mdnsms.MdnSmsServer;
  87. import com.framedobjects.dashwell.utils.MessagingUtils;
  88. import com.framedobjects.dashwell.utils.Constants;
  89. /**
  90. * Interacts via RMI with server to retrieve data.
  91. * @author Jens Richnow
  92. *
  93. */
  94. public class RmiAgent implements IDataAgent {
  95. static Logger logger = Logger.getLogger(RmiAgent.class.getName());
  96. // resources
  97. // public static final ResId ERR_HELP = new ResId ("MdnAdmin.err.Help");
  98. public static final ResId
  99. ERR_LICENSE1 = new ResId ("MdnAdminApp.err.license1"),
  100. ERR_LICENSE2 = new ResId ("MdnAdminApp.err.license2"),
  101. TEXT_STARTING = new ResId ("MdnAdminApp.text.starting"),
  102. TEXT_VERSION = new ResId ("mdn.versionText"),
  103. ERR_VERSION1 = new ResId ("MdnAdminApp.err.version1"),
  104. ERR_VERSION2 = new ResId ("MdnAdminApp.err.version2"),
  105. ERR_WILL_EXIT = new ResId ("MdnAdminApp.err.willExit"),
  106. ERR_NO_SERVER = new ResId ("MdnAdminApp.err.noServer");
  107. public static boolean isInitialised = false;
  108. public static final String CONNECTED = "Connected!";
  109. private boolean execSql;
  110. public static final int FAILED_EXEC_SQL = -10;
  111. public RmiAgent() {
  112. super();
  113. if (!isInitialised) {
  114. init();
  115. isInitialised = true;
  116. }
  117. }
  118. private void init(){
  119. /*
  120. * Set the ResourceManager
  121. * (must be first as everything uses resource strings)
  122. */
  123. ResourceManager.set (new MdnResourceManager ());
  124. // log start and version
  125. Log.log (
  126. TEXT_STARTING.getText ()
  127. + " " + TEXT_VERSION.getText ()
  128. + " " + MdnServer.VERSION_NUMBER);
  129. // set the config (must be second as nearly everything uses configs)
  130. Config.setSingleton (MdnAdminConst.MDN_CONFIG_FILE, true);
  131. Config.getSingleton ().addContext (CKfw.RMICLIENT_CONTEXT);
  132. // set the DataManager
  133. DataManager.setDataManager (new MdnDataManager ());
  134. // set the data cache
  135. MdnDataCache.setCache (new MdnDataCache (false));
  136. }
  137. public int getNumberOfUsers(){
  138. // get the activation key
  139. return LicenseManager.getNumberOfUserLicense();
  140. }
  141. public Boolean getPublicGroupFlag(){//True:unlimitided
  142. // get the activation key
  143. return LicenseManager.getPublicGroupFlag();
  144. }
  145. public int getAvailablePublicMessages(){
  146. // get the activation key
  147. return LicenseManager.getAvailablePublicMessages();
  148. }
  149. // public ResultWrapper getUserLicenses(){
  150. // // get the activation key
  151. // return LicenseManager.getUserLicenses();
  152. // }
  153. public String[] getLogFilePath(){
  154. // get the LogFilePath
  155. return LicenseManager.getLogFilePath();
  156. }
  157. // public ArrayList<String> getUserLicenseTypes(){
  158. // ResultWrapper resultWrapper = getUserLicenses();
  159. // UserLicenses userLicenses = (UserLicenses)resultWrapper.getObject();
  160. // if (userLicenses != null){
  161. // return userLicenses.getUserLicenseType();
  162. // }else{
  163. // return new ArrayList<String>();
  164. // }
  165. // }
  166. public List<LanguageDobj> getAllLanguages() throws MdnException{
  167. //Find LanguageDobj
  168. DataSource ds = DataManager.getSystemDS();
  169. List<LanguageDobj> langs = new Vector<LanguageDobj>();
  170. Query q = new Query(LanguageDobj.ENT_LANGUAGE);
  171. QueryCriterium qc = new QueryCriterium(LanguageDobj.ENT_LANGUAGE,
  172. LanguageDobj.FLD_DEL_STATUS, QueryCriterium.OP_EQUALS,
  173. Constants.MARKED_AS_NOT_DELETED_INT);
  174. q.addQueryCriterium(qc);
  175. try {
  176. RecordSet rs = ds.select(q);
  177. while (rs.next()){
  178. LanguageDobj lang = (LanguageDobj)rs.getCurrentObject();
  179. langs.add(lang);
  180. }
  181. } catch (DataSourceException e) {
  182. e.printStackTrace();
  183. throw new MdnException("DataSourceException when getAllLanguages()", e);
  184. }
  185. return langs;
  186. }
  187. public LanguageDobj getDefaultLanguage() throws MdnException{
  188. //Find LanguageDobj
  189. DataSource ds = DataManager.getSystemDS();
  190. Query q = new Query(LanguageDobj.ENT_LANGUAGE);
  191. QueryCriterium qc = new QueryCriterium(LanguageDobj.ENT_LANGUAGE,
  192. LanguageDobj.FLD_DEL_STATUS, QueryCriterium.OP_EQUALS,
  193. Constants.MARKED_AS_NOT_DELETED_INT);
  194. q.addQueryCriterium(qc);
  195. QueryCriterium qc2 = new QueryCriterium(LanguageDobj.ENT_LANGUAGE,
  196. LanguageDobj.FLD_DEFAULT, QueryCriterium.OP_EQUALS,
  197. true);
  198. q.addQueryCriterium(qc2);
  199. try {
  200. RecordSet rs = ds.select(q);
  201. if (rs.next()){
  202. LanguageDobj lang = (LanguageDobj)rs.getCurrentObject();
  203. return lang;
  204. }
  205. } catch (DataSourceException e) {
  206. e.printStackTrace();
  207. throw new MdnException("DataSourceException when getDefaultLanguage()", e);
  208. }
  209. return null;
  210. }
  211. public LanguageDobj getLanguageById(int id) throws MdnException{
  212. //Find LanguageDobj
  213. DataSource ds = DataManager.getSystemDS();
  214. Query q = new Query(LanguageDobj.ENT_LANGUAGE);
  215. /*QueryCriterium qc = new QueryCriterium(LanguageDobj.ENT_LANGUAGE,
  216. LanguageDobj.FLD_DEL_STATUS, QueryCriterium.OP_EQUALS,
  217. Constants.MARKED_AS_NOT_DELETED_INT);
  218. q.addQueryCriterium(qc);*/
  219. QueryCriterium qc2 = new QueryCriterium(LanguageDobj.ENT_LANGUAGE,
  220. LanguageDobj.FLD_ID, QueryCriterium.OP_EQUALS,
  221. id);
  222. q.addQueryCriterium(qc2);
  223. try {
  224. RecordSet rs = ds.select(q);
  225. if (rs.next()){
  226. LanguageDobj lang = (LanguageDobj)rs.getCurrentObject();
  227. return lang;
  228. }
  229. } catch (DataSourceException e) {
  230. e.printStackTrace();
  231. throw new MdnException("DataSourceException when getLanguageById()", e);
  232. }
  233. return null;
  234. }
  235. public LanguageDobj getLanguageByName(String languageName) throws MdnException{
  236. //Find LanguageDobj
  237. DataSource ds = DataManager.getSystemDS();
  238. Query q = new Query(LanguageDobj.ENT_LANGUAGE);
  239. QueryCriterium qc = new QueryCriterium(LanguageDobj.ENT_LANGUAGE,
  240. LanguageDobj.FLD_DEL_STATUS, QueryCriterium.OP_EQUALS,
  241. Constants.MARKED_AS_NOT_DELETED_INT);
  242. q.addQueryCriterium(qc);
  243. QueryCriterium qc2 = new QueryCriterium(LanguageDobj.ENT_LANGUAGE,
  244. LanguageDobj.FLD_NAME, QueryCriterium.OP_EQUALS,
  245. languageName);
  246. q.addQueryCriterium(qc2);
  247. try {
  248. RecordSet rs = ds.select(q);
  249. if (rs.next()){
  250. LanguageDobj lang = (LanguageDobj)rs.getCurrentObject();
  251. return lang;
  252. }
  253. } catch (DataSourceException e) {
  254. e.printStackTrace();
  255. throw new MdnException("DataSourceException when getLanguageByName()", e);
  256. }
  257. return null;
  258. }
  259. public List<JdbcDriver> getAllJdbcDrivers() throws MdnException{
  260. //Find JdbcDriver
  261. DataSource ds = DataManager.getSystemDS();
  262. List<JdbcDriver> jdbcDrivers = new Vector<JdbcDriver>();
  263. Query q = new Query(JdbcDriver.ENT_JDBCDRIVER);
  264. QueryCriterium qc = new QueryCriterium(JdbcDriver.ENT_JDBCDRIVER,
  265. JdbcDriver.FLD_DEL_STATUS, QueryCriterium.OP_EQUALS,
  266. Constants.MARKED_AS_NOT_DELETED_INT);
  267. q.addQueryCriterium(qc);
  268. try {
  269. RecordSet rs = ds.select(q);
  270. while (rs.next()){
  271. JdbcDriver jdbcDriver = (JdbcDriver)rs.getCurrentObject();
  272. jdbcDrivers.add(jdbcDriver);
  273. }
  274. } catch (DataSourceException e) {
  275. e.printStackTrace();
  276. throw new MdnException("DataSourceException when getAllJdbcDrivers()", e);
  277. }
  278. return jdbcDrivers;
  279. }
  280. public JdbcDriver getJdbcDriverByName(String driverName) throws MdnException{
  281. //Find JdbcDriver
  282. DataSource ds = DataManager.getSystemDS();
  283. JdbcDriver jdbcDriver = null;
  284. Query q = new Query(JdbcDriver.ENT_JDBCDRIVER);
  285. QueryCriterium qc = new QueryCriterium(JdbcDriver.ENT_JDBCDRIVER, JdbcDriver.FLD_NAME, QueryCriterium.OP_EQUALS, driverName);
  286. qc.setOrIsNull(true);
  287. q.addQueryCriterium(qc);
  288. try {
  289. RecordSet rs = ds.select(q);
  290. if (rs.next()){
  291. jdbcDriver = (JdbcDriver)rs.getCurrentObject();
  292. }
  293. } catch (DataSourceException e) {
  294. e.printStackTrace();
  295. throw new MdnException("DataSourceException when getJDBCDriverByName()", e);
  296. }
  297. return jdbcDriver;
  298. }
  299. public JdbcDriver getJdbcDriverByDriver(String driver) throws MdnException{
  300. //Find JdbcDriver
  301. DataSource ds = DataManager.getSystemDS();
  302. JdbcDriver jdbcDriver = null;
  303. Query q = new Query(JdbcDriver.ENT_JDBCDRIVER);
  304. QueryCriterium qc = new QueryCriterium(JdbcDriver.ENT_JDBCDRIVER, JdbcDriver.FLD_DRIVER, QueryCriterium.OP_EQUALS, driver);
  305. qc.setOrIsNull(true);
  306. q.addQueryCriterium(qc);
  307. try {
  308. RecordSet rs = ds.select(q);
  309. if (rs.next()){
  310. jdbcDriver = (JdbcDriver)rs.getCurrentObject();
  311. }
  312. } catch (DataSourceException e) {
  313. e.printStackTrace();
  314. throw new MdnException("DataSourceException when getJDBCDriverByName()", e);
  315. }
  316. return jdbcDriver;
  317. }
  318. public JdbcDriver getJdbcDriverById(int driverId) throws MdnException{
  319. //Find JdbcDriver
  320. DataSource ds = DataManager.getSystemDS();
  321. JdbcDriver jdbcDriver = null;
  322. Query q = new Query(JdbcDriver.ENT_JDBCDRIVER);
  323. QueryCriterium qc = new QueryCriterium(JdbcDriver.ENT_JDBCDRIVER, JdbcDriver.FLD_ID, QueryCriterium.OP_EQUALS, driverId);
  324. qc.setOrIsNull(true);
  325. q.addQueryCriterium(qc);
  326. try {
  327. RecordSet rs = ds.select(q);
  328. if (rs.next()){
  329. jdbcDriver = (JdbcDriver)rs.getCurrentObject();
  330. }
  331. } catch (DataSourceException e) {
  332. e.printStackTrace();
  333. throw new MdnException("DataSourceException when getJDBCDriverByName()", e);
  334. }
  335. return jdbcDriver;
  336. }
  337. public String handleTestDbConnection(DbConnection dbConn){
  338. // make a param describing the data source
  339. String dsName = dbConn.getName();
  340. JdbcDriver d = dbConn.getJdbcDriver();
  341. String driver = (d == null) ? "" : d.getDriver();
  342. //String url = dbConn.getUrl();
  343. //String catalog = dbConn.getSchema();
  344. String user = dbConn.getUsername();
  345. String pw = dbConn.getPassword();
  346. /*JdbcDataSourceParam dsParam = new JdbcDataSourceParam(dsName,
  347. driver, url, catalog, user, pw);*/
  348. String wholeUrl = dbConn.getUrl(); // + ":" + dbConn.getSchema();
  349. JdbcDataSourceParam dsParam = new JdbcDataSourceParam(dsName,
  350. driver, wholeUrl, user, pw);//catalog,
  351. // get/create the data source from Datamanager
  352. DataSource ds = DataManager.getDataSource(dsParam);
  353. // test that the connection is valid
  354. String result = null;
  355. try {
  356. ds.testConnection();
  357. result = CONNECTED;
  358. } catch (DataSourceException e) {
  359. e.printStackTrace();
  360. //result = "Driver not supported";
  361. result = "Could not connect to the database. Check that the JDBC driver and URL are correct and that the database is accessible.";
  362. }catch (Exception e) {
  363. e.printStackTrace();
  364. //result = "Driver not supported";
  365. result = "Could not connect to the database. Check that the JDBC driver and URL are correct and that the database is accessible.";
  366. }
  367. // DbConnectionTest test = DbConnectionTestFactory.getDbConnectionTest(dbConn.getDriver());
  368. /*if (test != null){
  369. String result = test.test(dbConn);
  370. if (result == null){
  371. result = CONNECTED;
  372. }
  373. return result;
  374. }*/
  375. return result;
  376. }
  377. public ResultWrapper createNewDbConnection(int projectId, DbConnection dbConn) {
  378. //Create JdbcDataSourceDobj from DbConnection
  379. JdbcDataSourceDobj jdbcDataSourceDobj = new JdbcDataSourceDobj();
  380. jdbcDataSourceDobj.setName(dbConn.getName());
  381. //String url = dbConn.getUrl() + ":" + dbConn.getSchema();
  382. String url = dbConn.getUrl();// + ":" + dbConn.getSchema();
  383. jdbcDataSourceDobj.setJdbcUrl(url);
  384. jdbcDataSourceDobj.setJdbcUser(dbConn.getUsername());
  385. jdbcDataSourceDobj.setJdbcPassword(dbConn.getPassword());
  386. //jdbcDataSourceDobj.setJdbcCatalog(dbConn.getSchema());
  387. jdbcDataSourceDobj.setIsMirrored(dbConn.getMirrorred() > 0 ? true : false);
  388. JdbcDriver jdbcDriver = dbConn.getJdbcDriver();//getJdbcDriverByName(dbConn.getDriver());
  389. jdbcDataSourceDobj.setDriverDobj(jdbcDriver);
  390. jdbcDataSourceDobj.setJdbcDriverId(jdbcDriver.getId());
  391. jdbcDataSourceDobj.setProjectId(projectId);
  392. // get/create the data source from Datamanager
  393. // create a param defining the datasource
  394. String wholeUrl = dbConn.getUrl(); // + ":" + dbConn.getSchema();
  395. JdbcDataSourceParam dsParam = new JdbcDataSourceParam(dbConn.getName(),
  396. jdbcDriver.getDriver(), wholeUrl, //dbConn.getSchema(),
  397. dbConn.getUsername(), dbConn.getPassword());
  398. // get/create the datasource
  399. DataSource _impl = DataManager.getDataSource(dsParam);
  400. //Insert into database
  401. try {
  402. jdbcDataSourceDobj.setState(DataObject.NEW);
  403. jdbcDataSourceDobj.setDelStatus(Constants.MARKED_AS_NOT_DELETED_INT);
  404. jdbcDataSourceDobj.save();
  405. int lastInsertId = jdbcDataSourceDobj.getId();
  406. logger.debug("... schema inserted with connection_id " + lastInsertId);
  407. Vector tableNames = _impl.importTableNames();
  408. // import definition
  409. EntitySchemaName esn;
  410. EntityDobj ed;
  411. // iterate table names
  412. // save all entities
  413. for(int i = 0; tableNames != null && i < tableNames.size(); i++)
  414. {
  415. // create the EntityDobj and partially init it with the esn
  416. esn = (EntitySchemaName) tableNames.elementAt(i);
  417. ed = new EntityDobj();
  418. ed.setEsn(esn);
  419. Entity importedEnt = null;
  420. try
  421. {
  422. importedEnt = _impl.importEntityDefinition(esn);
  423. }
  424. catch (DataSourceException e)
  425. {
  426. e.printStackTrace();
  427. Log.error("DataSourceException when createNewDbConnection(): ", e);
  428. return new ResultWrapper(jdbcDataSourceDobj, e.toString());
  429. }catch (Exception e) {
  430. return new ResultWrapper(jdbcDataSourceDobj, e.toString());
  431. }
  432. if (importedEnt != null)
  433. {
  434. ed.setName(importedEnt.getName());
  435. ed.setFlags(importedEnt.getFlags());
  436. // if new set keys
  437. ed.setDataSourceId (lastInsertId);
  438. // save entity/table
  439. ed.save ();
  440. System.out.println("... table inserted with table_id " + ed.getId());
  441. logger.debug("... table inserted with table_id " + ed.getId());
  442. // add the FieldDobjs
  443. for(int j = 0; importedEnt.getFields() != null && j < importedEnt.getFields().size(); j++)
  444. {
  445. // create the FieldDobj
  446. Field f = (Field) importedEnt.getFields().elementAt(j);
  447. FieldDobj fd = new FieldDobj(f);
  448. ed.addField(fd);
  449. fd.setDsId(lastInsertId);
  450. fd.setEntityId(ed.getId());
  451. fd.save();
  452. //System.out.println("... field inserted with field_id " + fd.getId());
  453. logger.debug("... field inserted with field_id " + fd.getId());
  454. }
  455. }
  456. }
  457. return new ResultWrapper(jdbcDataSourceDobj, "OK");//getAllDbConnections(projectId);
  458. } catch (DataSourceException e) {
  459. e.printStackTrace();
  460. //throw new MdnException("DataSourceException when createNewDbConnection()", e);
  461. return new ResultWrapper(jdbcDataSourceDobj, e.toString());
  462. } catch (Exception e) {
  463. e.printStackTrace();
  464. return new ResultWrapper(jdbcDataSourceDobj, e.toString());
  465. }
  466. }
  467. public DbConnection dbConnection(HttpServletRequest request){
  468. String idString = request.getParameter("id");
  469. int id = idString != null ? Integer.parseInt(idString) : 0;
  470. String name = request.getParameter("name");
  471. String url = request.getParameter("url");
  472. //String schema = request.getParameter("schema");
  473. String driverId = request.getParameter("driverId");
  474. String username = request.getParameter("username");
  475. String password = request.getParameter("password");
  476. String mirrorString = request.getParameter("mirrorred");
  477. int mirror = 0;
  478. if (mirrorString != null){
  479. mirror = mirrorString.equalsIgnoreCase("true") ? 1 : 0;
  480. }
  481. DbConnection newConn = new DbConnection(id, Integer.parseInt(driverId), name, username, password, url, mirror);
  482. //Find JdbcDriver
  483. JdbcDriver jdbcDriver = null;
  484. try {
  485. jdbcDriver = getJdbcDriverById(Integer.parseInt(driverId));
  486. } catch (MdnException e) {
  487. jdbcDriver = null;
  488. }
  489. newConn.setJdbcDriver(jdbcDriver);
  490. // Get the DbConnection object.
  491. return newConn;
  492. }
  493. public List<DataSourceDobj> getAllDbConnections(int projectId) throws MdnException{
  494. // select all datasources
  495. DataSource ds = DataManager.getSystemDS();
  496. Query q = new Query(DataSourceDobj.ENT_DATASOURCE);
  497. QueryCriterium qc = new QueryCriterium(JdbcDataSourceDobj.ENT_DATASOURCE,
  498. JdbcDataSourceDobj.FLD_IS_MIRROR_DB, QueryCriterium.OP_EQUALS,
  499. new Boolean(false));
  500. qc.setOrIsNull(true);
  501. q.addQueryCriterium(qc);
  502. QueryCriterium qc2 = new QueryCriterium(JdbcDataSourceDobj.ENT_DATASOURCE,
  503. JdbcDataSourceDobj.FLD_PROJECT_ID, QueryCriterium.OP_EQUALS,
  504. projectId);
  505. q.addQueryCriterium(qc2);
  506. QueryCriterium qc3 = new QueryCriterium(JdbcDataSourceDobj.ENT_DATASOURCE,
  507. JdbcDataSourceDobj.FLD_DEL_STATUS, QueryCriterium.OP_EQUALS,
  508. Constants.MARKED_AS_NOT_DELETED_INT);
  509. q.addQueryCriterium(qc3);
  510. try {
  511. RecordSet rs = ds.select(q);
  512. List<DataSourceDobj> list = new Vector<DataSourceDobj>();
  513. while (rs.next()){
  514. DataSourceDobj object = (DataSourceDobj)rs.getCurrentObject();
  515. list.add(object);
  516. }
  517. return list;
  518. } catch (DataSourceException e) {
  519. e.printStackTrace();
  520. throw new MdnException("DataSourceException when getAllDbConnections()", e);
  521. }
  522. }
  523. public List<WebServiceDobj> getAllSampleWebServices() throws MdnException{
  524. // select all datasources
  525. DataSource ds = DataManager.getSystemDS();
  526. Query q = new Query(WebServiceDobj.ENT_WEB_SERVICE);
  527. QueryCriterium qc = new QueryCriterium(WebServiceDobj.ENT_WEB_SERVICE,
  528. WebServiceDobj.FLD_TYPE, QueryCriterium.OP_EQUALS,
  529. WebServiceDobj.TYPE_SAMPLE);
  530. qc.setOrIsNull(true);
  531. q.addQueryCriterium(qc);
  532. try {
  533. RecordSet rs = ds.select(q);
  534. List<WebServiceDobj> list = new Vector<WebServiceDobj>();
  535. while (rs.next()){
  536. WebServiceDobj object = (WebServiceDobj)rs.getCurrentObject();
  537. list.add(object);
  538. }
  539. return list;
  540. } catch (DataSourceException e) {
  541. e.printStackTrace();
  542. throw new MdnException("DataSourceException when getAllSampleWebServices()", e);
  543. }
  544. }
  545. public List<WebServiceDobj> getAllThirdPartyWebServices() throws MdnException{
  546. // select all datasources
  547. DataSource ds = DataManager.getSystemDS();
  548. Query q = new Query(WebServiceDobj.ENT_WEB_SERVICE);
  549. QueryCriterium qc = new QueryCriterium(WebServiceDobj.ENT_WEB_SERVICE,
  550. WebServiceDobj.FLD_TYPE, QueryCriterium.OP_EQUALS,
  551. WebServiceDobj.TYPE_THIRDPARTY);
  552. qc.setOrIsNull(true);
  553. q.addQueryCriterium(qc);
  554. try {
  555. RecordSet rs = ds.select(q);
  556. List<WebServiceDobj> list = new Vector<WebServiceDobj>();
  557. while (rs.next()){
  558. WebServiceDobj object = (WebServiceDobj)rs.getCurrentObject();
  559. list.add(object);
  560. }
  561. return list;
  562. } catch (DataSourceException e) {
  563. e.printStackTrace();
  564. throw new MdnException("DataSourceException when getAllSampleWebServices()", e);
  565. }
  566. }
  567. public int clearConnection(int projectId, int connectionID){
  568. try {
  569. DataSourceDobj sourceDs = getDbConnectionByID(projectId, connectionID);
  570. sourceDs.setDelStatus(Constants.MARKED_AS_NOT_DELETED_INT);//delete status = 1
  571. sourceDs.save();
  572. return 1;
  573. } catch (MdnException e) {
  574. e.printStackTrace();
  575. } catch (DataSourceException e) {
  576. e.printStackTrace();
  577. }
  578. return 0;
  579. }
  580. public int recycleConnection(int projectId, int connectionID){
  581. try {
  582. DataSourceDobj sourceDs = getDbConnectionByID(projectId, connectionID);
  583. sourceDs.setDelStatus(Constants.MARKED_AS_RECYCLED_INT);//delete status = 1
  584. sourceDs.save();
  585. return 1;
  586. } catch (MdnException e) {
  587. e.printStackTrace();
  588. } catch (DataSourceException e) {
  589. e.printStackTrace();
  590. }
  591. return 0;
  592. }
  593. public int deleteConnection(int projectId, int connectionID){
  594. try {
  595. DataSourceDobj sourceDs = getDbConnectionByID(projectId, connectionID);
  596. sourceDs.delete();
  597. return 1;
  598. } catch (MdnException e) {
  599. e.printStackTrace();
  600. } catch (DataSourceException e) {
  601. e.printStackTrace();
  602. }
  603. return 0;
  604. }
  605. public List<EntityDobj> getAllMetaTables(int dbConnectionID, boolean includeFields) throws MdnException{
  606. // build entity/field join query
  607. DataSource ds = DataManager.getSystemDS ();
  608. Query q = new Query (EntityDobj.ENT_ENTITY);
  609. //q.addQueryEntity (FieldDobj.ENT_FIELD);
  610. q.addQueryCriterium (new QueryCriterium (EntityDobj.ENT_ENTITY,
  611. EntityDobj.FLD_DSID, QueryCriterium.OP_EQUALS,
  612. new Integer (dbConnectionID)));
  613. //q.addSort (new Sort (EntityDobj.ENT_ENTITY, EntityDobj.FLD_ID));
  614. //q.addSort (new Sort (FieldDobj.ENT_FIELD, FieldDobj.FLD_ID));
  615. try {
  616. RecordSet rs = ds.select (q);
  617. List<EntityDobj> tables = new Vector<EntityDobj>();
  618. while (rs != null && rs.next ())
  619. {
  620. EntityDobj ent = (EntityDobj)rs.getCurrentObject ();
  621. tables.add(ent);
  622. }
  623. return tables;
  624. } catch (DataSourceException e) {
  625. e.printStackTrace();
  626. throw new MdnException("DataSourceException in getAllMetaTables", e);
  627. }
  628. }
  629. public EntityDobj getMetaTableByID(int tableID, boolean includeFields) throws MdnException{
  630. // build entity/field join query
  631. DataSource ds = DataManager.getSystemDS ();
  632. Query q = new Query (EntityDobj.ENT_ENTITY);
  633. //q.addQueryEntity (FieldDobj.ENT_FIELD);
  634. q.addQueryCriterium (new QueryCriterium (EntityDobj.ENT_ENTITY,
  635. EntityDobj.FLD_ID, QueryCriterium.OP_EQUALS,
  636. new Integer (tableID)));
  637. RecordSet rs;
  638. try {
  639. rs = ds.select (q);
  640. } catch (DataSourceException e) {
  641. e.printStackTrace();
  642. throw new MdnException("DataSourceException in getMetaTableByID", e);
  643. }
  644. if (rs != null && rs.next ())
  645. {
  646. EntityDobj ent = (EntityDobj)rs.getCurrentObject ();
  647. return ent;
  648. }
  649. return null;
  650. }
  651. public EntityDobj getMetaTableByName(String tableName, int connID, boolean includeFields) throws MdnException{
  652. // build entity/field join query
  653. DataSource ds = DataManager.getSystemDS ();
  654. Query q = new Query (EntityDobj.ENT_ENTITY);
  655. //q.addQueryEntity (FieldDobj.ENT_FIELD);
  656. q.addQueryCriterium (new QueryCriterium (EntityDobj.ENT_ENTITY,
  657. EntityDobj.FLD_NAME, QueryCriterium.OP_EQUALS,
  658. tableName));
  659. RecordSet rs;
  660. try {
  661. rs = ds.select (q);
  662. } catch (DataSourceException e) {
  663. e.printStackTrace();
  664. throw new MdnException("DataSourceException in getMetaTableByID", e);
  665. }
  666. if (rs != null && rs.next ())
  667. {
  668. EntityDobj ent = (EntityDobj)rs.getCurrentObject ();
  669. return ent;
  670. }
  671. return null;
  672. }
  673. public DataView getMetaViewByName(String viewName, int connID) throws MdnException {
  674. // build entity/field join query
  675. DataSource ds = DataManager.getSystemDS ();
  676. Query q = new Query(DataView.ENT_DATAVIEW);
  677. q.addQueryCriterium(new QueryCriterium(DataView.ENT_DATAVIEW,
  678. DataView.FLD_NAME, QueryCriterium.OP_EQUALS,
  679. viewName));
  680. q.addQueryCriterium(new QueryCriterium(DataView.ENT_DATAVIEW,
  681. DataView.FLD_SOURCE_DSID, QueryCriterium.OP_EQUALS,
  682. connID));
  683. RecordSet rs;
  684. try {
  685. rs = ds.select (q);
  686. } catch (DataSourceException e) {
  687. e.printStackTrace();
  688. throw new MdnException("DataSourceException in getMetaViewByName", e);
  689. }
  690. if (rs != null && rs.next ())
  691. {
  692. DataView ent = (DataView)rs.getCurrentObject ();
  693. return ent;
  694. }
  695. return null;
  696. }
  697. public int editMetaTable(EntityDobj table){
  698. try {
  699. table.setState (DataObject.IN_DB);
  700. table.save();
  701. return 1;
  702. } catch (DataSourceException e) {
  703. e.printStackTrace();
  704. return -1;
  705. }
  706. // // drop table on old name
  707. // if(ds.isMirrored())
  708. // dropMirrorTable(ds, oldName);
  709. //
  710. // // recreate table
  711. // if(ds.isMirrored())
  712. // createMirrorTable(ds, ed);
  713. }
  714. public FieldDobj getMetaField(int fieldID) throws MdnException{
  715. // build query
  716. DataSource ds = DataManager.getSystemDS();
  717. Query q = new Query(FieldDobj.ENT_FIELD);
  718. q.addQueryCriterium(new QueryCriterium(FieldDobj.ENT_FIELD,
  719. FieldDobj.FLD_ID, QueryCriterium.OP_EQUALS,
  720. new Integer(fieldID)));
  721. RecordSet rs;
  722. try {
  723. rs = ds.select(q);
  724. } catch (DataSourceException e) {
  725. e.printStackTrace();
  726. throw new MdnException("DataSourceException in getMetaField", e);
  727. }
  728. if (rs != null && rs.next ())
  729. {
  730. FieldDobj fieldDobj = (FieldDobj)rs.getCurrentObject ();
  731. return fieldDobj;
  732. }
  733. return null;
  734. }
  735. public DataSourceDobj getDbConnectionByName(int projectId, String dbConnName) throws MdnException{
  736. // create query
  737. DataSource sysDs = DataManager.getSystemDS();
  738. Query q = new Query(new QueryCriterium(DataSourceDobj.ENT_DATASOURCE,
  739. DataSourceDobj.FLD_NAME, QueryCriterium.OP_EQUALS, dbConnName));
  740. QueryCriterium qc2 = new QueryCriterium(JdbcDataSourceDobj.ENT_DATASOURCE,
  741. JdbcDataSourceDobj.FLD_PROJECT_ID, QueryCriterium.OP_EQUALS,
  742. projectId);
  743. q.addQueryCriterium(qc2);
  744. RecordSet rs;
  745. try {
  746. rs = sysDs.select(q);
  747. } catch (DataSourceException e) {
  748. e.printStackTrace();
  749. throw new MdnException("DataSourceException in getDbConnectionByName", e);
  750. }
  751. DataSourceDobj sourceDs = null;
  752. // get the ds
  753. if(rs != null && rs.next())
  754. sourceDs = (DataSourceDobj)rs.getCurrentObject();
  755. return sourceDs;
  756. }
  757. public DataSourceDobj getDbConnectionByID(int projectId, int connectionID) throws MdnException{
  758. // create query
  759. DataSource sysDs = DataManager.getSystemDS();
  760. Query q = new Query(new QueryCriterium(DataSourceDobj.ENT_DATASOURCE,
  761. DataSourceDobj.FLD_ID, QueryCriterium.OP_EQUALS, new Integer(connectionID)));
  762. QueryCriterium qc2 = new QueryCriterium(JdbcDataSourceDobj.ENT_DATASOURCE,
  763. JdbcDataSourceDobj.FLD_PROJECT_ID, QueryCriterium.OP_EQUALS,
  764. projectId);
  765. q.addQueryCriterium(qc2);
  766. RecordSet rs;
  767. try {
  768. rs = sysDs.select(q);
  769. } catch (DataSourceException e) {
  770. e.printStackTrace();
  771. throw new MdnException("DataSourceException in getDbConnectionByID", e);
  772. }
  773. DataSourceDobj sourceDs = null;
  774. // get the ds
  775. if(rs != null && rs.next())
  776. sourceDs = (DataSourceDobj)rs.getCurrentObject();
  777. return sourceDs;
  778. }
  779. public MetaDbConnection getDbConnectionByFullUrl(String url, String schema){
  780. return null;
  781. }
  782. public Group getGroup(int groupID) throws MdnException {
  783. DataSource ds = DataManager.getSystemDS();
  784. Query q1 = new Query(Group.ENT_GROUP);
  785. QueryCriterium qc1 = new QueryCriterium(Group.ENT_GROUP, Group.FLD_ID,
  786. QueryCriterium.OP_EQUALS, new Integer(groupID) );
  787. q1.addQueryCriterium(qc1);
  788. RecordSet rsGroup;
  789. try {
  790. rsGroup = ds.select(q1);
  791. if (rsGroup.next())
  792. {
  793. Group group = (Group)rsGroup.getCurrentObject();
  794. return group;
  795. }
  796. } catch (DataSourceException e) {
  797. e.printStackTrace();
  798. throw new MdnException("DataSourceException in getGroup()", e);
  799. }
  800. return null;
  801. }
  802. public Group getGroupByName(String groupName, int projectId) throws MdnException{
  803. DataSource ds = DataManager.getDataSource(Group.ENT_GROUP);
  804. QueryCriterium qc1 = new QueryCriterium(Group.ENT_GROUP, Group.FLD_NAME,QueryCriterium.OP_EQUALS, groupName );
  805. QueryCriterium qc2 = new QueryCriterium(Group.ENT_GROUP, Group.FLD_PROJECT_ID,QueryCriterium.OP_EQUALS, projectId );
  806. Query q = new Query(qc1, qc2);
  807. RecordSet rsGroup;
  808. try {
  809. rsGroup = ds.select(q);
  810. if (rsGroup.next())
  811. {
  812. Group group = (Group)rsGroup.getCurrentObject();
  813. return group;
  814. }
  815. } catch (DataSourceException e) {
  816. e.printStackTrace();
  817. throw new MdnException("DataSourceException in getGroupByName()", e);
  818. }
  819. return null;
  820. }
  821. public Group getGuestGroup(int projectId) throws MdnException{
  822. DataSource ds = DataManager.getDataSource(Group.ENT_GROUP);
  823. QueryCriterium qc1 = new QueryCriterium(Group.ENT_GROUP, Group.FLD_GUEST,QueryCriterium.OP_EQUALS, 1);
  824. QueryCriterium qc2 = new QueryCriterium(Group.ENT_GROUP, Group.FLD_PROJECT_ID,QueryCriterium.OP_EQUALS, projectId );
  825. Query q = new Query(qc1, qc2);
  826. RecordSet rsGroup;
  827. try {
  828. rsGroup = ds.select(q);
  829. if (rsGroup.next())
  830. {
  831. Group group = (Group)rsGroup.getCurrentObject();
  832. return group;
  833. }
  834. } catch (DataSourceException e) {
  835. e.printStackTrace();
  836. throw new MdnException("DataSourceException in getGroupByName()", e);
  837. }
  838. return null;
  839. }
  840. public GroupMembership getUserGroupByProjectId(int userId, int projectId) throws MdnException{
  841. DataSource ds = DataManager.getDataSource(GroupMembership.ENT_GROUPMEMBERSHIP);
  842. QueryCriterium q1 = new QueryCriterium(GroupMembership.ENT_GROUPMEMBERSHIP, GroupMembership.FLD_USERID, QueryCriterium.OP_EQUALS, new Integer(userId));
  843. QueryCriterium q2 = new QueryCriterium(GroupMembership.ENT_GROUPMEMBERSHIP, GroupMembership.FLD_PROJECT_ID, QueryCriterium.OP_EQUALS, new Integer(projectId));
  844. Query query = new Query(q1,q2);
  845. // get the results
  846. RecordSet rs;
  847. try {
  848. rs = ds.select(query);
  849. // get the user out of the result set
  850. if (rs.next())
  851. {
  852. GroupMembership group = (GroupMembership) rs.getCurrentObject();
  853. return group;
  854. }
  855. return null;
  856. } catch (DataSourceException e) {
  857. e.printStackTrace();
  858. throw new MdnException("DataSourceException in getUserGroupByProjectId()", e);
  859. }
  860. }
  861. public List<GroupMembership> getUserGroupByGroupId(int groupId, int projectId) throws MdnException{
  862. DataSource ds = DataManager.getDataSource(GroupMembership.ENT_GROUPMEMBERSHIP);
  863. QueryCriterium q1 = new QueryCriterium(GroupMembership.ENT_GROUPMEMBERSHIP, GroupMembership.FLD_GROUPID, QueryCriterium.OP_EQUALS, new Integer(groupId));
  864. QueryCriterium q2 = new QueryCriterium(GroupMembership.ENT_GROUPMEMBERSHIP, GroupMembership.FLD_PROJECT_ID, QueryCriterium.OP_EQUALS, new Integer(projectId));
  865. Query query = new Query(q1,q2);
  866. // get the results
  867. RecordSet rs;
  868. Vector<GroupMembership> groupsMembership = new Vector<GroupMembership>();
  869. try {
  870. rs = ds.select(query);
  871. // get the user out of the result set
  872. while (rs.next())
  873. {
  874. GroupMembership group = (GroupMembership) rs.getCurrentObject();
  875. //return group;
  876. groupsMembership.add(group);
  877. }
  878. } catch (DataSourceException e) {
  879. e.printStackTrace();
  880. throw new MdnException("DataSourceException in getUserGroupByProjectId()", e);
  881. }
  882. return groupsMembership;
  883. }
  884. public Vector<Group> getGroups(int projectId) throws MdnException{
  885. // select all groups
  886. DataSource ds = DataManager.getSystemDS();
  887. Query q = new Query(new QueryCriterium(Group.ENT_GROUP, Group.FLD_PROJECT_ID,
  888. QueryCriterium.OP_EQUALS, projectId ));
  889. RecordSet rsGroup;
  890. Vector<Group> groups = new Vector<Group>();
  891. try {
  892. rsGroup = ds.select(q);
  893. while (rsGroup.next())
  894. {
  895. Group group = (Group)rsGroup.getCurrentObject();
  896. if(group.getDelStatus()!= null && group.getDelStatus().equals(Constants.MARKED_AS_NOT_DELETED))
  897. groups.add(group);
  898. }
  899. } catch (DataSourceException e) {
  900. e.printStackTrace();
  901. throw new MdnException("DataSourceException in getGroups()", e);
  902. }
  903. return groups;
  904. }
  905. public int saveGroup(Group group) throws MdnException {
  906. try {
  907. group.setDelStatus(Constants.MARKED_AS_NOT_DELETED);
  908. group.save();
  909. return group.getId();
  910. } catch (DataSourceException e) {
  911. e.printStackTrace();
  912. //throw new MdnException("DataSourceException in saveGroup", e);
  913. return 0;
  914. }
  915. }
  916. public List<GroupDataView> getGroupViewsPermissions(int groupID) throws MdnException
  917. {
  918. DataSource ds = DataManager.getSystemDS();
  919. Query q = new Query(GroupDataView.ENT_GROUPDATAVIEW);
  920. QueryCriterium qc = new QueryCriterium(GroupDataView.ENT_GROUPDATAVIEW, GroupDataView.FLD_GROUPID,
  921. QueryCriterium.OP_EQUALS, groupID );
  922. q.addQueryCriterium(qc);
  923. Vector<GroupDataView> groupViews = new Vector<GroupDataView>();
  924. try {
  925. RecordSet rsGroupDataView = ds.select(q);
  926. while(rsGroupDataView.next())
  927. {
  928. GroupDataView dobj = (GroupDataView)rsGroupDataView.getCurrentObject();
  929. groupViews.add(dobj);
  930. }
  931. } catch (DataSourceException e) {
  932. e.printStackTrace();
  933. throw new MdnException("DataSourceException in getGroupViewsPermissions()", e);
  934. }
  935. return groupViews;
  936. }
  937. public List<GroupTablePermission> getGroupTablePermissions(int groupID) throws MdnException
  938. {
  939. DataSource ds = DataManager.getSystemDS();
  940. Query q = new Query(GroupTablePermission.ENT_GROUP_ENTITY_PERMISSION);
  941. QueryCriterium qc = new QueryCriterium(GroupTablePermission.ENT_GROUP_ENTITY_PERMISSION, GroupTablePermission.FLD_GROUPID,
  942. QueryCriterium.OP_EQUALS, groupID );
  943. q.addQueryCriterium(qc);
  944. Vector<GroupTablePermission> groupTables = new Vector<GroupTablePermission>();
  945. try {
  946. RecordSet rsGroupDataView = ds.select(q);
  947. while(rsGroupDataView.next())
  948. {
  949. GroupTablePermission tablPermission = (GroupTablePermission)rsGroupDataView.getCurrentObject();
  950. groupTables.add(tablPermission);
  951. }
  952. } catch (DataSourceException e) {
  953. e.printStackTrace();
  954. throw new MdnException("DataSourceException in getGroupTablePermissions()", e);
  955. }
  956. return groupTables;
  957. }
  958. public GroupTablePermission getGroupTablePermissionByEntityID(int entityId,int groupID) throws MdnException{
  959. DataSource ds = DataManager.getSystemDS();
  960. Query q = new Query(GroupTablePermission.ENT_GROUP_ENTITY_PERMISSION);
  961. QueryCriterium qc = new QueryCriterium(GroupTablePermission.ENT_GROUP_ENTITY_PERMISSION, GroupTablePermission.FLD_ENTITY_ID, QueryCriterium.OP_EQUALS, entityId);
  962. QueryCriterium qc2 = new QueryCriterium(GroupTablePermission.ENT_GROUP_ENTITY_PERMISSION, GroupTablePermission.FLD_GROUPID,QueryCriterium.OP_EQUALS, groupID );
  963. q.addQueryCriterium(qc);
  964. q.addQueryCriterium(qc2);
  965. try {
  966. RecordSet rsGroupTablePermission = ds.select(q);
  967. if (rsGroupTablePermission.next())
  968. {
  969. GroupTablePermission groupTblPermission = (GroupTablePermission)rsGroupTablePermission.getCurrentObject();
  970. return groupTblPermission;
  971. }
  972. } catch (DataSourceException e) {
  973. e.printStackTrace();
  974. throw new MdnException("DataSourceException in getGroupTablePermissionByEntityID()", e);
  975. }
  976. return null;
  977. }
  978. public int saveGroupDataView(GroupDataView groupDataView) throws MdnException
  979. {
  980. int groupFieldId = 0;
  981. try {
  982. groupDataView.save();
  983. groupFieldId = groupDataView.getId();
  984. } catch (DataSourceException e) {
  985. e.printStackTrace();
  986. throw new MdnException("DataSourceException in saveGroupDataViews", e);
  987. }
  988. return groupFieldId;
  989. }
  990. public void deleteGroupDataView(GroupDataView groupDataView) throws MdnException {
  991. try {
  992. groupDataView.delete();
  993. } catch (DataSourceException e) {
  994. e.printStackTrace();
  995. throw new MdnException("DataSourceException in groupDataView", e);
  996. }
  997. }
  998. public Vector<GroupDataView> getGroupDataViewByFieldID(int groupDataViewId) throws MdnException{
  999. // create query
  1000. DataSource sysDs = DataManager.getSystemDS();
  1001. Query q = new Query(new QueryCriterium(GroupDataView.ENT_GROUPDATAVIEW,
  1002. GroupDataView.FLD_DATAVIEWID, QueryCriterium.OP_EQUALS, new Integer(groupDataViewId)));
  1003. RecordSet rs;
  1004. try {
  1005. rs = sysDs.select(q);
  1006. } catch (DataSourceException e) {
  1007. e.printStackTrace();
  1008. throw new MdnException("DataSourceException in getGroupDataViewByID", e);
  1009. }
  1010. Vector<GroupDataView> GroupDataViews = new Vector<GroupDataView>();
  1011. // get the ds
  1012. if(rs != null && rs.next())
  1013. {
  1014. GroupDataView dobj = (GroupDataView)rs.getCurrentObject();
  1015. GroupDataViews.add(dobj);
  1016. }
  1017. return GroupDataViews;
  1018. }
  1019. public GroupDataView getGroupDataViewByGroupID(int groupId) throws MdnException{
  1020. DataSource ds = DataManager.getSystemDS();
  1021. Query q1 = new Query(GroupDataView.ENT_GROUPDATAVIEW);
  1022. QueryCriterium qc1 = new QueryCriterium(GroupDataView.ENT_GROUPDATAVIEW, GroupDataView.FLD_GROUPID,
  1023. QueryCriterium.OP_EQUALS, new Integer(groupId) );
  1024. q1.addQueryCriterium(qc1);
  1025. RecordSet rsGroup;
  1026. try {
  1027. rsGroup = ds.select(q1);
  1028. if (rsGroup.next())
  1029. {
  1030. GroupDataView group = (GroupDataView)rsGroup.getCurrentObject();
  1031. return group;
  1032. }
  1033. } catch (DataSourceException e) {
  1034. e.printStackTrace();
  1035. throw new MdnException("DataSourceException in getGroup()", e);
  1036. }
  1037. return null;
  1038. }
  1039. public GroupDataView getGroupDataViewByID(int id) throws MdnException{
  1040. DataSource ds = DataManager.getSystemDS();
  1041. Query q1 = new Query(GroupDataView.ENT_GROUPDATAVIEW);
  1042. QueryCriterium qc1 = new QueryCriterium(GroupDataView.ENT_GROUPDATAVIEW, GroupDataView.FLD_ID,
  1043. QueryCriterium.OP_EQUALS, new Integer(id) );
  1044. q1.addQueryCriterium(qc1);
  1045. RecordSet rsGroup;
  1046. try {
  1047. rsGroup = ds.select(q1);
  1048. if (rsGroup.next())
  1049. {
  1050. GroupDataView group = (GroupDataView)rsGroup.getCurrentObject();
  1051. return group;
  1052. }
  1053. } catch (DataSourceException e) {
  1054. e.printStackTrace();
  1055. throw new MdnException("DataSourceException in getGroup()", e);
  1056. }
  1057. return null;
  1058. }
  1059. public GroupTablePermission getGroupTablePermissionByID(int id) throws MdnException {
  1060. DataSource ds = DataManager.getSystemDS();
  1061. Query q1 = new Query(GroupTablePermission.ENT_GROUP_ENTITY_PERMISSION);
  1062. QueryCriterium qc1 = new QueryCriterium(GroupTablePermission.ENT_GROUP_ENTITY_PERMISSION, GroupTablePermission.FLD_ID,
  1063. QueryCriterium.OP_EQUALS, new Integer(id) );
  1064. q1.addQueryCriterium(qc1);
  1065. RecordSet rsGroup;
  1066. try {
  1067. rsGroup = ds.select(q1);
  1068. if (rsGroup.next())
  1069. {
  1070. GroupTablePermission groupTablePermission = (GroupTablePermission)rsGroup.getCurrentObject();
  1071. return groupTablePermission;
  1072. }
  1073. } catch (DataSourceException e) {
  1074. e.printStackTrace();
  1075. throw new MdnException("DataSourceException in getGroupTablePermissionByID()", e);
  1076. }
  1077. return null;
  1078. }
  1079. public Vector<FieldExclusion> getFieldExclusion(int groupID) throws MdnException{
  1080. DataSource ds = DataManager.getSystemDS();
  1081. Query q2 = new Query(FieldExclusion.ENT_FIELDEXCLUSION);
  1082. QueryCriterium qc1 = new QueryCriterium(FieldExclusion.ENT_FIELDEXCLUSION,
  1083. FieldExclusion.FLD_GROUPID,
  1084. QueryCriterium.OP_EQUALS,
  1085. groupID );
  1086. q2.addQueryCriterium(qc1);
  1087. Vector<FieldExclusion> fieldExclusions = new Vector<FieldExclusion>();
  1088. try {
  1089. RecordSet rsFieldExclusion = ds.select(q2);
  1090. while(rsFieldExclusion.next())
  1091. {
  1092. FieldExclusion dobj = (FieldExclusion)rsFieldExclusion.getCurrentObject();
  1093. fieldExclusions.add(dobj);
  1094. }
  1095. } catch (DataSourceException e) {
  1096. e.printStackTrace();
  1097. throw new MdnException("DataSourceException in getFieldExclusion()", e);
  1098. }
  1099. return fieldExclusions;
  1100. }
  1101. public int markGroupAsCleared(int groupID) throws MdnException{
  1102. try {
  1103. //get group by id
  1104. Group group = getGroup(groupID);
  1105. group.setDelStatus(Constants.MARKED_AS_NOT_DELETED);//delete status = 1
  1106. group.save();
  1107. return group.getId();
  1108. } catch (DataSourceException e) {
  1109. e.printStackTrace();
  1110. throw new MdnException("DataSourceException in markGroupAsCleared", e);
  1111. }
  1112. }
  1113. public int markGroupAsRecycled(int groupID) throws MdnException{
  1114. try {
  1115. //get group by id
  1116. Group group = getGroup(groupID);
  1117. group.setDelStatus(Constants.MARKED_AS_RECYCLED);//delete status = 1
  1118. group.save();
  1119. return group.getId();
  1120. } catch (DataSourceException e) {
  1121. e.printStackTrace();
  1122. throw new MdnException("DataSourceException in markGroupAsDeleted", e);
  1123. }
  1124. }
  1125. public User getUserByName(String username) throws MdnException {
  1126. DataSource ds = DataManager.getDataSource(User.ENT_USER);
  1127. // create the query for user on username
  1128. Query query = new Query(new QueryCriterium(User.ENT_USER, User.FLD_NAME, QueryCriterium.OP_EQUALS, username));
  1129. // get the results
  1130. RecordSet rs;
  1131. try {
  1132. rs = ds.select(query);
  1133. // get the user out of the result set
  1134. if (rs.next())
  1135. {
  1136. User user = (User) rs.getCurrentObject();
  1137. return user;
  1138. }
  1139. return null;
  1140. } catch (DataSourceException e) {
  1141. e.printStackTrace();
  1142. throw new MdnException("DataSourceException in getUserByName()", e);
  1143. }
  1144. }
  1145. public Vector<User> getAdminUsers() throws MdnException {
  1146. RecordSet rs;
  1147. DataSource ds = DataManager.getDataSource(User.ENT_USER);
  1148. QueryCriterium q1 = new QueryCriterium(User.ENT_USER, User.FLD_PRIVILEGE, QueryCriterium.OP_EQUALS, "ADMIN");
  1149. QueryCriterium q2 = new QueryCriterium(User.ENT_USER, User.FLD_DEL_STATUS, QueryCriterium.OP_EQUALS, "0");
  1150. Query query = new Query(q1,q2);
  1151. Vector<User> users = new Vector<User>();
  1152. try {
  1153. rs = ds.select(query);
  1154. while (rs.next())
  1155. {
  1156. User user = (User) rs.getCurrentObject();
  1157. String userStatus = user.getDelStatus();
  1158. if(userStatus == null || userStatus.equals(Constants.MARKED_AS_NOT_DELETED))
  1159. users.add(user);
  1160. }
  1161. } catch (DataSourceException e) {
  1162. e.printStackTrace();
  1163. throw new MdnException("DataSourceException in getUsers()", e);
  1164. }
  1165. return users;
  1166. }
  1167. public User getUserByMobileNumber(String mobileNumber) throws MdnException{
  1168. DataSource ds = DataManager.getDataSource(User.ENT_USER);
  1169. // create the query for user on username
  1170. //Query query = new Query(new QueryCriterium(User.ENT_USER, User.FLD_MOBILE, QueryCriterium.OP_EQUALS, mobileNumber));
  1171. QueryCriterium q1 = new QueryCriterium(User.ENT_USER, User.FLD_MOBILE, QueryCriterium.OP_EQUALS, mobileNumber);
  1172. QueryCriterium q2 = new QueryCriterium(User.ENT_USER, User.FLD_DEL_STATUS, QueryCriterium.OP_EQUALS, "0");
  1173. Query query = new Query(q1,q2);
  1174. // get the results
  1175. RecordSet rs;
  1176. try {
  1177. rs = ds.select(query);
  1178. // get the user out of the result set
  1179. if (rs.next())
  1180. {
  1181. User user = (User) rs.getCurrentObject();
  1182. return user;
  1183. }
  1184. return null;
  1185. } catch (DataSourceException e) {
  1186. e.printStackTrace();
  1187. throw new MdnException("DataSourceException in getUserByMobileNumber()", e);
  1188. }
  1189. }
  1190. public UserWrapper getLoginUser(String username, String password) throws MdnException{
  1191. return SecurityManager.login(username, password);
  1192. }
  1193. public UserWrapper getLoginUser(String username) throws MdnException{
  1194. return SecurityManager.getLoginUserByName(username);
  1195. }
  1196. public int isLicenseValid (){
  1197. int rvLicense = LicenseManager.isLicenseValid ();
  1198. return rvLicense;
  1199. }
  1200. public User getUser(int userID, boolean includeGroups) throws MdnException{
  1201. // perform a query to find the user
  1202. // get the data source for querying
  1203. DataSource ds = DataManager.getDataSource(User.ENT_USER);
  1204. // create the query for user on username
  1205. Query query = new Query(new QueryCriterium(User.ENT_USER, User.FLD_ID,
  1206. QueryCriterium.OP_EQUALS, userID));
  1207. // get the results
  1208. RecordSet rs;
  1209. try {
  1210. rs = ds.select(query);
  1211. // get the user out of the result set
  1212. if (rs.next())
  1213. {
  1214. User user = (User) rs.getCurrentObject();
  1215. return user;
  1216. }
  1217. return null;
  1218. } catch (DataSourceException e) {
  1219. e.printStackTrace();
  1220. throw new MdnException("DataSourceException in getUser()", e);
  1221. }
  1222. }
  1223. /*
  1224. * Get users list from DB when users status deleted are not recycled status.
  1225. */
  1226. public Vector<User> getUsers() throws MdnException {
  1227. DataSource ds;
  1228. Query query;
  1229. RecordSet rs;
  1230. ds = DataManager.getDataSource(User.ENT_USER);
  1231. query = new Query(User.ENT_USER);
  1232. // query = new Query(new QueryCriterium(User.ENT_USER, User.FLD_PROJECT_ID,
  1233. // QueryCriterium.OP_EQUALS, projectId));
  1234. Vector<User> u