Ejemplo n.º 1
0
  @Override
  public ReturnCode save(final Item item, final boolean careDependency) {
    ReturnCode rc = new ReturnCode();
    RepositoryWorkUnit<Object> repositoryWorkUnit =
        new RepositoryWorkUnit<Object>("save DQRule item") { // $NON-NLS-1$

          @Override
          protected void run() throws LoginException, PersistenceException {

            TDQBusinessRuleItem ruleItem = (TDQBusinessRuleItem) item;
            DQRule rule = ruleItem.getDqrule();
            // MOD yyi 2012-02-07 TDQ-4621:Update dependencies(connection) when careDependency is
            // true.
            if (careDependency) {
              saveWithDependencies(ruleItem, rule);
            } else {
              saveWithoutDependencies(ruleItem, rule);
            }
          }
        };
    repositoryWorkUnit.setAvoidUnloadResources(true);
    ProxyRepositoryFactory.getInstance().executeRepositoryWorkUnit(repositoryWorkUnit);
    try {
      repositoryWorkUnit.throwPersistenceExceptionIfAny();
    } catch (PersistenceException e) {
      log.error(e, e);
      rc.setOk(Boolean.FALSE);
      rc.setMessage(e.getMessage());
    }
    return rc;
  }