Examples of DCModule


Examples of net.datacrow.core.modules.DcModule

     * Sets the order. Results retrieved will be sorted based on this order.
     * @param s Array of field names (column names).
     */
    public void setOrder(String[] s) {
        order = new DcField[s.length];
        DcModule m = DcModules.get(module);
        for (int i = 0; i < s.length; i++)
            order[i] = m.getField(s[i]);
    }
View Full Code Here

Examples of net.datacrow.core.modules.DcModule

     * @param fields
     * @param order
     * @return
     */
    public String toSQLFlatStructure(int[] fields) {
      DcModule module = DcModules.get(getModule());
      int[] queryFields = fields == null || fields.length == 0 ? module.getFieldIndices() : fields;
     
      StringBuffer sql = new StringBuffer();
      StringBuffer joins = new StringBuffer();
     
      sql.append("SELECT ");
      joins.append(" FROM ");
      joins.append(module.getTableName());
      joins.append(" MAINTABLE ");
     
      DcModule mapping;
      DcModule reference;
      String subTable;
      String mapTable;
      int tableCounter = 0;
      int columnCounter = 0;
     
      for (int idx : queryFields) {
        DcField field = module.getField(idx);
       
        if (columnCounter > 0)
          sql.append(", ");
       
        if (field.getValueType() == DcRepository.ValueTypes._DCOBJECTCOLLECTION) {
          mapping = DcModules.get(DcModules.getMappingModIdx(module.getIndex(), field.getReferenceIdx(), field.getIndex()));
          reference = DcModules.get(field.getReferenceIdx());
         
          mapTable = " MAPTABLE" + tableCounter;
         
          joins.append(" LEFT OUTER JOIN ");
          joins.append(mapping.getTableName());
          joins.append(mapTable);
          joins.append(" ON ");
          joins.append(mapTable);
          joins.append(".");
          joins.append(mapping.getField(DcMapping._A_PARENT_ID).getDatabaseFieldName());
          joins.append(" = MAINTABLE.ID");
         
          subTable = " SUBTABLE" + tableCounter;
          joins.append(" INNER JOIN ");
          joins.append(reference.getTableName());
          joins.append(subTable);
          joins.append(" ON ");
          joins.append(subTable);
          joins.append(".ID");
          joins.append(" = ");
          joins.append(mapTable);
          joins.append(".");
          joins.append(mapping.getField(DcMapping._B_REFERENCED_ID).getDatabaseFieldName());
         
          sql.append(subTable);
          sql.append(".");
          sql.append(reference.getField(reference.getDisplayFieldIdx()).getDatabaseFieldName());
          tableCounter++;
         
        } else if (field.getValueType() == DcRepository.ValueTypes._DCOBJECTREFERENCE) {
          reference = DcModules.get(field.getReferenceIdx());
          subTable = " SUBTABLE" + tableCounter;
          joins.append(" LEFT OUTER JOIN ");
          joins.append(reference.getTableName());
          joins.append(subTable);
          joins.append(" ON ");
          joins.append(subTable);
          joins.append(".ID = MAINTABLE.");
          joins.append(field.getDatabaseFieldName());
         
          sql.append(subTable);
          sql.append(".");
          sql.append(reference.getField(reference.getDisplayFieldIdx()).getDatabaseFieldName());
          tableCounter++;
         
        } else if (field.getValueType() == DcRepository.ValueTypes._PICTURE) {
          reference = DcModules.get(DcModules._PICTURE);
          subTable = " SUBTABLE" + tableCounter;
         
          sql.append("(case when ");
          sql.append(subTable);
          sql.append(".OBJECTID IS NULL then '' else ");
          sql.append("'/mediaimages/'+MAINTABLE.ID+'_");
          sql.append(field.getDatabaseFieldName());
          sql.append("_small.jpg' ");
          sql.append("END) AS ");
          sql.append(field.getDatabaseFieldName());
         
          joins.append(" LEFT OUTER JOIN ");
          joins.append(reference.getTableName());
          joins.append(subTable);
          joins.append(" ON ");
          joins.append(subTable);
          joins.append(".OBJECTID = MAINTABLE.ID");
          joins.append(" AND ");
          joins.append(subTable);
          joins.append(".");
          joins.append(reference.getField(Picture._B_FIELD));
          joins.append("='");
          joins.append(field.getDatabaseFieldName());
          joins.append("'");

        } else if (field.getIndex() == DcObject._SYS_AVAILABLE ||
View Full Code Here

Examples of net.datacrow.core.modules.DcModule

    }
   
    public String toSQL(int[] fields, boolean order, boolean includeMod) {
        DcField field;
       
        DcModule m = DcModules.get(getModule());
        int[] queryFields = fields == null || fields.length == 0 ? m.getFieldIndices() : fields;
       
        Collection<DcModule> modules = new ArrayList<DcModule>();
        if (m.isAbstract())
          modules.addAll(DcModules.getPersistentModules(m));
        else
          modules.add(m);
       
        StringBuffer sql = new StringBuffer();
       
        int columnCounter = 0;
        int moduleCounter = 0;
        if (m.isAbstract()) {
          sql.append("SELECT MODULEIDX");
          for (int idx : queryFields) {
        field = m.getField(idx);
        if (!field.isUiOnly()) {
          sql.append(", ");
          sql.append(field.getDatabaseFieldName());
          columnCounter++;
        }
      }
         
          sql.append(" FROM (");
        }
       
        for (DcModule module : modules) {
          columnCounter = 0;
          if (moduleCounter > 0)
        sql.append(" UNION ");
     
        sql.append(" SELECT ");
           
           if (m.isAbstract() || includeMod) {
            sql.append(module.getIndex());
            sql.append(" AS MODULEIDX ");
            columnCounter++;
          }
     
      if (m.isAbstract()) {
        for (DcField abstractField : m.getFields()) {
          if (!abstractField.isUiOnly()) {
            if (columnCounter > 0) sql.append(", ");
            sql.append(abstractField.getDatabaseFieldName());
            columnCounter++;
          }
        }
      } else {
        for (int idx : queryFields) {
          field = m.getField(idx);
          if (!field.isUiOnly()) {
            if (columnCounter > 0) sql.append(", ");
            sql.append(field.getDatabaseFieldName());
            columnCounter++;
          }
        }
      }
     
      sql.append(" FROM ");
      sql.append(module.getTableName());

      if (order) addOrderByClause(sql);
     
          addEntries(sql, module);

          moduleCounter++;
        }
       
        if (m.isAbstract()) sql.append(") media ");
         
        // add a join to the reference table part of the sort
        if (order) addOrderBy(sql);
        return sql.toString();
    }
View Full Code Here

Examples of net.datacrow.core.modules.DcModule

    public void run() {
       
        client.notifyNewTask();
       
      Collection<DcModule> modules = new ArrayList<DcModule>();
      DcModule main = DcModules.get(module);
      main = main == null ? DcModules.getPropertyBaseModule(module) : main;
      modules.add(main);

      for (DcModule reference : DcModules.getReferencedModules(module))
          if (!reference.isAbstract() && reference.getIndex() != DcModules._CONTACTPERSON)
              modules.add(reference);

          if (main.isParentModule()) {
                modules.add(main.getChild());
                for (DcModule reference : DcModules.getReferencedModules(main.getChild().getIndex())) {
                    if (!modules.contains(reference) && !reference.isAbstract() &&
                         reference.getIndex() != DcModules._CONTACTPERSON) {
                        modules.add(reference);
                    }
                }
          }
     
      client.notifyStarted(modules.size());
     
      try {
        ZipFile zf = new ZipFile(new File(parent.getPath(), main.getName().toLowerCase() + "_export.zip"));
     
        for (DcModule module : modules) {
         
          if (canceled) break;
         
View Full Code Here

Examples of net.datacrow.core.modules.DcModule

    }
   
    @SuppressWarnings("unchecked")
  private void addEntries(StringBuffer sql, DcModule module) {
      boolean hasConditions = false;
        DcModule entryModule;
       
        List<DataFilterEntry> childEntries = new ArrayList<DataFilterEntry>();

    Object value;
        int operator;
        int counter2;
        int counter = 0;
        String queryValue = null;
        DcField field;
       
        DcModule m = DcModules.get(getModule());
       
        for (DataFilterEntry entry : getEntries()) {
         
          if (!m.isAbstract()) {
            entryModule = DcModules.get(entry.getModule());
              if (entry.getModule() != getModule()) {
                  childEntries.add(entry);
                  continue;
              }
          } else {
            entryModule = module;
          }
           
            field = entryModule.getField(entry.getField());
           
            if (    field.isUiOnly() &&
                    field.getValueType() != DcRepository.ValueTypes._DCOBJECTCOLLECTION &&
                    field.getValueType() != DcRepository.ValueTypes._PICTURE)
                continue;
           
            hasConditions = true;
           
            operator = entry.getOperator().getIndex();
            value = entry.getValue() != null ? Utilities.getQueryValue(entry.getValue(), field) : null;
           
            if (value != null) {
                queryValue = String.valueOf(value);
                if (field.getValueType() == DcRepository.ValueTypes._DATE ||
                    field.getValueType() == DcRepository.ValueTypes._STRING) {
                    queryValue = queryValue.replaceAll("\'", "''");
                }
            }
           
            if (counter > 0) sql.append(entry.isAnd() ? " AND " : " OR ");
           
            if (counter == 0) sql.append(" WHERE ");
           
           
            boolean useUpper = field.getValueType() == DcRepository.ValueTypes._STRING &&
                field.getIndex() != DcObject._ID &&
                field.getValueType() != DcRepository.ValueTypes._DCOBJECTREFERENCE &&
                field.getValueType() != DcRepository.ValueTypes._DCPARENTREFERENCE &&
                field.getValueType() != DcRepository.ValueTypes._DCOBJECTCOLLECTION;
           
            if (field.getValueType() == DcRepository.ValueTypes._STRING) {
                if (useUpper) sql.append("UPPER(");
                sql.append(field.getDatabaseFieldName());
                if (useUpper) sql.append(")");
            } else if (field.getValueType() == DcRepository.ValueTypes._DCOBJECTCOLLECTION ||
                       field.getValueType() == DcRepository.ValueTypes._PICTURE) {
                sql.append("ID");
            } else {
                sql.append(field.getDatabaseFieldName());
            }
           
            if (field.getValueType() == DcRepository.ValueTypes._PICTURE) {
               
                if (operator == Operator.IS_EMPTY.getIndex())
                    sql.append(" NOT");
               
                DcModule picModule = DcModules.get(DcModules._PICTURE);
                sql.append(" IN (SELECT OBJECTID FROM " + picModule.getTableName() +
                           " WHERE " + picModule.getField(Picture._B_FIELD).getDatabaseFieldName() +
                           " = '" + field.getDatabaseFieldName() + "')");
               
            } else if ( operator == Operator.CONTAINS.getIndex() ||
                        operator == Operator.DOES_NOT_CONTAIN.getIndex() ||
                       (operator == Operator.EQUAL_TO.getIndex() && field.getValueType() == DcRepository.ValueTypes._DCOBJECTCOLLECTION) ||
                       (operator == Operator.NOT_EQUAL_TO.getIndex() && field.getValueType() == DcRepository.ValueTypes._DCOBJECTCOLLECTION)) {

                if (field.getValueType() == DcRepository.ValueTypes._DCOBJECTCOLLECTION) {
                    if (operator == Operator.DOES_NOT_CONTAIN.getIndex() ||
                        operator == Operator.NOT_EQUAL_TO.getIndex())
                        sql.append(" NOT");

                    sql.append(" IN (");
                   
                    DcModule mapping = DcModules.get(DcModules.getMappingModIdx(entryModule.getIndex(), field.getReferenceIdx(), field.getIndex()));
                  sql.append("SELECT ");
                    sql.append(mapping.getField(DcMapping._A_PARENT_ID).getDatabaseFieldName());
                    sql.append(" FROM ");
                    sql.append(mapping.getTableName());
                    sql.append(" WHERE ");
                    sql.append(mapping.getField(DcMapping._B_REFERENCED_ID).getDatabaseFieldName());
 
                    sql.append(" IN (");
                    if (!(value instanceof Collection)) {
                        sql.append("'");
                        sql.append(value);
                        sql.append("'");
                        sql.append(")");
                    } else {
                        counter2 = 0;
                        for (Object o : (Collection<DcObject>) value) {
                           
                            if (counter2 > 0sql.append(",");

                            sql.append("'");
                            if (o instanceof DcObject)
                                sql.append(((DcObject) o).getID());
                            else
                                sql.append(o.toString());
                            sql.append("'");
                           
                            counter2++;
                        }
                        sql.append(")");
                    }
                    sql.append(")");
                } else {
                    if (operator == Operator.DOES_NOT_CONTAIN.getIndex()) sql.append(" NOT");
                    sql.append(" LIKE ");
                   
                    if (useUpper) sql.append("UPPER(");
                    sql.append("'%" + queryValue + "%'");
                    if (useUpper) sql.append(")");
                }

            } else if (operator == Operator.ENDS_WITH.getIndex()) {
                sql.append(" LIKE ");
                if (useUpper) sql.append("UPPER(");
                sql.append("'%" + queryValue);
                if (useUpper) sql.append(")");
            } else if (operator == Operator.EQUAL_TO.getIndex()) {
                if (useUpper) {
                    sql.append(" = UPPER('"+ queryValue +"')");
                } else {
                    sql.append(" = ");
                    if (value instanceof String) sql.append("'");
                    sql.append(queryValue);
                    if (value instanceof String) sql.append("'");
                }
            } else if (operator == Operator.BEFORE.getIndex() ||
                       operator == Operator.LESS_THEN.getIndex()) {
                sql.append(" < ");
                sql.append(queryValue);
            } else if (operator == Operator.AFTER.getIndex() ||
                       operator == Operator.GREATER_THEN.getIndex()) {
                sql.append(" > ");
                sql.append(queryValue);
            } else if (operator == Operator.IS_EMPTY.getIndex()) {
                sql.append(" IS NULL");
            } else if (operator == Operator.IS_FILLED.getIndex()) {
                sql.append(" IS NOT NULL");
            } else if (operator == Operator.NOT_EQUAL_TO.getIndex()) {
                sql.append(" <> ");
                if (useUpper) {
                    sql.append(" UPPER('"+ queryValue +"')");
                } else {
                    if (value instanceof String) sql.append("'");
                    sql.append(queryValue);
                    if (value instanceof String) sql.append("'");
                }
            } else if (operator == Operator.STARTS_WITH.getIndex()) {
               
                sql.append(" LIKE ");
                if (useUpper) sql.append("UPPER(");
                sql.append("'%" + queryValue);
               
                if (value instanceof String)
                    sql.append("'"+ queryValue +"%'");
                else
                    sql.append(queryValue);
               
                if (useUpper) sql.append(")");
            } else if (operator == Operator.TODAY.getIndex()) {
                sql.append(" = TODAY");
            } else if (operator == Operator.DAYS_BEFORE.getIndex()) {
                cal.setTime(new Date());
                Long days = (Long) entry.getValue();
                cal.add(Calendar.DATE, -1 * days.intValue());
                sql.append(" = '" + formatter.format(cal.getTime()) + "'");
            } else if (operator == Operator.DAYS_AFTER.getIndex()) {
                Long days = (Long) entry.getValue();
                cal.add(Calendar.DATE, days.intValue());
                sql.append(" = '" + formatter.format(cal.getTime()) + "'");
            } else if (operator == Operator.MONTHS_AGO.getIndex()) {
                Long days = (Long) entry.getValue();
                cal.add(Calendar.MONTH, -1 * days.intValue());
                cal.set(Calendar.DAY_OF_MONTH, 1);
                sql.append(" BETWEEN '" + formatter.format(cal.getTime()) + "'");
                cal.set(Calendar.DAY_OF_MONTH, cal.getMaximum(Calendar.DAY_OF_MONTH));
                sql.append(" AND '" + formatter.format(cal.getTime()) + "'");
            } else if (operator == Operator.YEARS_AGO.getIndex()) {
                Long days = (Long) entry.getValue();
                cal.add(Calendar.YEAR, -1 * days.intValue());
                cal.set(Calendar.MONTH, 1);
                cal.set(Calendar.DAY_OF_MONTH, 1);
                sql.append(" BETWEEN '" + formatter.format(cal.getTime()) + "'");
                cal.set(Calendar.MONTH, 12);
                cal.set(Calendar.DAY_OF_MONTH, 31);
                sql.append(" AND '" + formatter.format(cal.getTime()) + "'");
            }
           
            counter++;
        }
       
        if (childEntries.size() > 0) {
            DcModule childModule = DcModules.get(childEntries.get(0).getModule());
           
            DataFilter df = new DataFilter(childModule.getIndex());
            for (DataFilterEntry entry : childEntries)
                df.addEntry(entry);
           
            String subSelect = df.toSQL(new int[] {childModule.getParentReferenceFieldIndex()}, false, false);
           
            if (hasConditions)
                sql.append(" AND ID IN (");
            else
                sql.append(" WHERE ID IN (");
View Full Code Here

Examples of net.datacrow.core.modules.DcModule

        }
    }
   
    private void addOrderBy(StringBuffer sql) {
      int counter = 0;
        DcModule module = DcModules.get(getModule());
        DcModule referenceMod;
        DcField field = module.getField(module.getDefaultSortFieldIdx());
        if (order != null && order.length > 0) {
            for (DcField orderOn : order) {
                if (orderOn != null) {
                  sql.append(counter == 0 ? " ORDER BY " : ", ");
                  if (orderOn.getValueType() == DcRepository.ValueTypes._DCOBJECTREFERENCE ||
                      orderOn.getValueType() == DcRepository.ValueTypes._DCOBJECTCOLLECTION) {

                      referenceMod = DcModules.get(orderOn.getReferenceIdx());
                        sql.append(referenceMod.getTableName());
                        sql.append(".");
                        sql.append(referenceMod.getField(referenceMod.getSystemDisplayFieldIdx()).getDatabaseFieldName());
                  } else if (!orderOn.isUiOnly() && orderOn.getDatabaseFieldName() != null) {
                      sql.append(orderOn.getDatabaseFieldName());
                  }
                  counter++;
                }
View Full Code Here

Examples of net.datacrow.core.modules.DcModule

            JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {

        super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);          
       
        if (table instanceof DcTable) {
            DcModule module = ((DcTable) table).getModuleForRow(row);
            setIcon(module.getIcon16());
            setText(module.getObjectName());
        }
           
        return this;
    }
View Full Code Here

Examples of net.datacrow.core.modules.DcModule

     * sure older backups can still be restored.
     */
    public boolean isNeeded() {
        boolean needed = false;
       
        DcModule refMod = DcModules.get(moduleIdx + referencingModuleIdx) != null ? DcModules.get(moduleIdx + referencingModuleIdx) : DcModules.get(referencingModuleIdx);
       
        // check if the column exists (old version with old module will not have the column)
        if (getNewFieldType() != ComponentFactory._REFERENCESFIELD) {
            String sql = "select top 1 " + columnName + " from " + DcModules.get(moduleIdx).getTableName();
            try {
                ResultSet rs = DatabaseManager.executeSQL(sql);
                rs.close();
            } catch (Exception se) {
                return false;
            }
        }
       
        try {
            String sql = "select top 1 * from " + DcModules.get(moduleIdx).getTableName();
            ResultSet result = DatabaseManager.executeSQL(sql);
            ResultSetMetaData meta = result.getMetaData();
           
            if (getNewFieldType() == ComponentFactory._REFERENCESFIELD) {
                boolean exists = false;
                for (int i = 1; i < meta.getColumnCount() + 1; i++)
                    exists |= meta.getColumnName(i).equalsIgnoreCase(columnName);
               
                // column should no longer be there after a successful conversion..
                // else the conversion still needs to (re-) occur.
                needed = exists;
            } else if (getNewFieldType() == ComponentFactory._REFERENCEFIELD) {
                // Check if there are items stored in the targeted module and if it exists.

                sql = "select top 1 * from " + refMod.getTableName();
               
                try {
                    ResultSet rs = DatabaseManager.executeSQL(sql);
                    rs.close();
                   
                    int pos = -1;
                    for (int idx = 1; idx < meta.getColumnCount(); idx ++) {
                        if (meta.getColumnName(idx).equalsIgnoreCase(columnName))
                            pos = idx;
                    }
                   
                   
                    // check the column type.. if not BIGINT a conversion is still needed.
                    needed = pos > -1 && meta.getColumnType(pos) != Types.BIGINT;
                   
                    if (!needed) {
                        // Check if each of the values actually exists in the reference module!!!!!!
                        sql = "select distinct " + columnName + " from " + DcModules.get(getModuleIdx()).getTableName() + " where " + columnName + " is not null " +
                              "and " + columnName + " not in (select " + refMod.getField(DcProperty._A_NAME).getDatabaseFieldName() + " from " + refMod.getTableName() + ") " +
                              "and " + columnName + " not in (select ID from " + refMod.getTableName() + ")";
                       
                        rs = DatabaseManager.executeSQL(sql);
                       
                        while (rs.next()) {
                            needed = true;
View Full Code Here

Examples of net.datacrow.core.modules.DcModule

        }
    }   
   
    private boolean convertFromRefToMulti() {
       
        DcModule refMod = DcModules.get(moduleIdx + referencingModuleIdx) != null ? DcModules.get(moduleIdx + referencingModuleIdx) : DcModules.get(referencingModuleIdx);
       
        logger.info("Starting to convert reference field [" + columnName + "] to a multi references field");

        String sql = "SELECT ID, " + getColumnName() + " FROM " + DcModules.get(getModuleIdx()).getTableName() + " " +
                     "WHERE " + getColumnName() + " IS NOT NULL";
        try {
            ResultSet rs = DatabaseManager.executeSQL(sql);
            logger.info(sql);
           
            DcModule mappingMod = DcModules.get(DcModules.getMappingModIdx(
                    moduleIdx, refMod.getIndex(), DcModules.get(moduleIdx).getField(columnName).getIndex()));
       
            DcObject mapping = mappingMod.getItem();
            while (rs.next()) {
                String ID = rs.getString(1);
                String referenceID = rs.getString(2);
                mapping.setValue(DcMapping._A_PARENT_ID, ID);
                mapping.setValue(DcMapping._B_REFERENCED_ID, referenceID);
View Full Code Here

Examples of net.datacrow.core.modules.DcModule

        return true;
    }
   
    private boolean convertToRef() {
       
        DcModule refMod = DcModules.get(moduleIdx + referencingModuleIdx) != null ? DcModules.get(moduleIdx + referencingModuleIdx) : DcModules.get(referencingModuleIdx);
       
        logger.info("Starting to convert field [" + columnName + "] to a reference field");
       
        String sql = "select distinct " + columnName + " from " + DcModules.get(getModuleIdx()).getTableName() + " where " + columnName + " is not null";
       
        try {
            ResultSet rs = DatabaseManager.executeSQL(sql);
           
            while (rs.next()) {
                String name = rs.getString(1);
               
                // check if the referenced item exists
                DcObject reference = refMod.getItem();
                reference.setValue(DcProperty._A_NAME, name);
                List<DcObject> items = new SelectQuery(new DataFilter(reference), null, new int[] {DcObject._ID}).run();
                if (items.size() == 0) {
                    reference.setIDs();
                    new InsertQuery(reference).run();
                }
               
                String sql2 = "select item.ID, property.ID from " + refMod.getTableName() + " property " +
                               "inner join " + DcModules.get(getModuleIdx()).getTableName() + " item " +
                               "on CONVERT(property." + refMod.getField(DcProperty._A_NAME).getDatabaseFieldName() + ",LONGVARCHAR) =" +
                               "CONVERT(item." + columnName + ",LONGVARCHAR) and item." + columnName + " = '" + name.replaceAll("'", "''") + "'";
                ResultSet rs2 = DatabaseManager.executeSQL(sql2);
               
                while (rs2.next()) {
                    String itemID = rs2.getString(1);
                    String propertyID = rs2.getString(2);
                   
                    if (getNewFieldType() == ComponentFactory._REFERENCESFIELD) {
                        DcModule mappingMod = DcModules.get(DcModules.getMappingModIdx(
                                moduleIdx, refMod.getIndex(), DcModules.get(moduleIdx).getField(columnName).getIndex()));
                       
                        DcObject mapping = mappingMod.getItem();
                        mapping.setValue(DcMapping._A_PARENT_ID, itemID);
                        mapping.setValue(DcMapping._B_REFERENCED_ID, propertyID);
                       
                        items = new SelectQuery(mapping, null).run();
                        if (items.size() == 0)
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.