Package org.apache.metamodel.schema

Examples of org.apache.metamodel.schema.ColumnType


    public String rewriteFilterItem(FilterItem item) {
        SelectItem _selectItem = item.getSelectItem();
        Object _operand = item.getOperand();
        OperatorType _operator = item.getOperator();
        if (null != _selectItem && _operand != null) {
            ColumnType columnType = _selectItem.getExpectedColumnType();
            if (columnType != null) {
                if (columnType.isTimeBased()) {
                    // special logic for DB2 based time operands.

                    StringBuilder sb = new StringBuilder();
                    sb.append(_selectItem.getSameQueryAlias(true));
                    final Object operand = FilterItem.appendOperator(sb, _operand, _operator);
View Full Code Here


            columnDefinition = columnDefinition.trim();
            if (!columnDefinition.isEmpty()) {
                int separator = columnDefinition.lastIndexOf(" ");
                String columnName = columnDefinition.substring(0, separator).trim();
                String columnTypeString = columnDefinition.substring(separator).trim();
                ColumnType columnType = ColumnTypeImpl.valueOf(columnTypeString);

                columnNames.add(columnName);
                columnTypes.add(columnType);
            }
        }
View Full Code Here

            if (selectItem != null) {
                return selectItem;
            }
        }

        final ColumnType expectedColumnType = leftSelectItem.getExpectedColumnType();
        final Object result;
        if (expectedColumnType == null) {
            // We're assuming number here, but it could also be boolean or a
            // time based type. But anyways, this should not happen since
            // expected column type should be available.
            result = NumberComparator.toNumber(token);
        } else if (expectedColumnType.isBoolean()) {
            result = BooleanComparator.toBoolean(token);
        } else if (expectedColumnType.isTimeBased()) {
            result = FormatHelper.parseSqlTime(expectedColumnType, token);
        } else {
            result = NumberComparator.toNumber(token);
        }
View Full Code Here

        int i = 0;
        for (Entry<String, Set<ColumnType>> columnAndTypes : columnsAndTypes.entrySet()) {
            final String columnName = columnAndTypes.getKey();
            final Set<ColumnType> columnTypeSet = columnAndTypes.getValue();
            final ColumnType columnType;
            if (columnTypeSet.isEmpty()) {
                columnType = ColumnType.OTHER;
            } else if (columnTypeSet.size() == 1) {
                columnType = columnTypeSet.iterator().next();
            } else {
View Full Code Here

    public String rewriteFilterItem(FilterItem item) {
        SelectItem _selectItem = item.getSelectItem();
        Object _operand = item.getOperand();
        OperatorType _operator = item.getOperator();
        if (null != _selectItem && _operand != null) {
            ColumnType columnType = _selectItem.getExpectedColumnType();
            if (columnType != null) {
                if (columnType.isTimeBased()) {
                    // special logic for DB2 based time operands.

                    StringBuilder sb = new StringBuilder();
                    sb.append(_selectItem.getSameQueryAlias(true));
                    final Object operand = FilterItem.appendOperator(sb, _operand, _operator);
View Full Code Here

        if (logger.isDebugEnabled()) {
          logger.debug("Found column: table=" + table.getName() + ",columnName=" + columnName
              + ",nativeType=" + nativeType + ",columnSize=" + columnSize);
        }

        final ColumnType columnType = _dataContext.getQueryRewriter().getColumnType(jdbcType, nativeType,
            columnSize);

        final int jdbcNullable = rs.getInt(11);
        final Boolean nullable;
        if (jdbcNullable == DatabaseMetaData.columnNullable) {
View Full Code Here

            columnDefinition = columnDefinition.trim();
            if (!columnDefinition.isEmpty()) {
                int separator = columnDefinition.lastIndexOf(" ");
                String columnName = columnDefinition.substring(0, separator).trim();
                String columnTypeString = columnDefinition.substring(separator).trim();
                ColumnType columnType = ColumnType.valueOf(columnTypeString);

                columnNames.add(columnName);
                columnTypes.add(columnType);
            }
        }
View Full Code Here

   * @throws SQLException
   */
  public static void setStatementValue(final PreparedStatement st,
      final int valueIndex, final Column column, Object value)
      throws SQLException {
    final ColumnType type = (column == null ? null : column.getType());

    if (type == null || type == ColumnType.OTHER) {
      // type is not known - nothing more we can do to narrow the type
      st.setObject(valueIndex, value);
      return;
    }

    if (value == null && type != null) {
      try {
        final int jdbcType = type.getJdbcType();
        st.setNull(valueIndex, jdbcType);
        return;
      } catch (Exception e) {
        logger.warn(
            "Exception occurred while calling setNull(...) for value index "
                + valueIndex
                + ". Attempting value-based setter method instead.",
            e);
      }
    }

    if (type == ColumnType.VARCHAR && value instanceof Date) {
      // some drivers (SQLite and JTDS for MS SQL server) treat dates as
      // VARCHARS. In that case we need to convert the dates to the
      // correct format
      String nativeType = column.getNativeType();
      Date date = (Date) value;
      if ("DATE".equalsIgnoreCase(nativeType)) {
        value = FormatHelper
            .formatSqlTime(ColumnType.DATE, date, false);
      } else if ("TIME".equalsIgnoreCase(nativeType)) {
        value = FormatHelper
            .formatSqlTime(ColumnType.TIME, date, false);
      } else if ("TIMESTAMP".equalsIgnoreCase(nativeType)
          || "DATETIME".equalsIgnoreCase(nativeType)) {
        value = FormatHelper.formatSqlTime(ColumnType.TIMESTAMP, date,
            false);
      }
    }

    if (type != null && type.isTimeBased() && value instanceof String) {
      value = FormatHelper.parseSqlTime(type, (String) value);
    }

    try {
      if (type == ColumnType.DATE && value instanceof Date) {
        Calendar cal = Calendar.getInstance();
        cal.setTime((Date) value);
        st.setDate(valueIndex,
            new java.sql.Date(cal.getTimeInMillis()), cal);
      } else if (type == ColumnType.TIME && value instanceof Date) {
        Calendar cal = Calendar.getInstance();
        cal.setTime((Date) value);
        st.setTime(valueIndex,
            new java.sql.Time(cal.getTimeInMillis()), cal);
      } else if (type == ColumnType.TIMESTAMP && value instanceof Date) {
        Calendar cal = Calendar.getInstance();
        cal.setTime((Date) value);
        st.setTimestamp(valueIndex,
            new java.sql.Timestamp(cal.getTimeInMillis()), cal);
      } else if (type == ColumnType.CLOB || type == ColumnType.NCLOB) {
        if (value instanceof InputStream) {
          InputStream inputStream = (InputStream) value;
          st.setAsciiStream(valueIndex, inputStream);
        } else if (value instanceof Reader) {
          Reader reader = (Reader) value;
          st.setCharacterStream(valueIndex, reader);
        } else if (value instanceof NClob) {
          NClob nclob = (NClob) value;
          st.setNClob(valueIndex, nclob);
        } else if (value instanceof Clob) {
          Clob clob = (Clob) value;
          st.setClob(valueIndex, clob);
        } else if (value instanceof String) {
          st.setString(valueIndex, (String) value);
        } else {
          st.setObject(valueIndex, value);
        }
      } else if (type == ColumnType.BLOB || type == ColumnType.BINARY) {
        if (value instanceof byte[]) {
          byte[] bytes = (byte[]) value;
          st.setBytes(valueIndex, bytes);
        } else if (value instanceof InputStream) {
          InputStream inputStream = (InputStream) value;
          st.setBinaryStream(valueIndex, inputStream);
        } else if (value instanceof Blob) {
          Blob blob = (Blob) value;
          st.setBlob(valueIndex, blob);
        } else {
          st.setObject(valueIndex, value);
        }
      } else if (type.isLiteral()) {
        final String str;
        if (value instanceof Reader) {
          Reader reader = (Reader) value;
          str = FileHelper.readAsString(reader);
        } else {
View Full Code Here

  public static String getValueAsSql(Column column, Object value,
      IQueryRewriter queryRewriter) {
    if (value == null) {
      return "NULL";
    }
    final ColumnType columnType = column.getType();
    if (columnType.isLiteral() && value instanceof String) {
      value = queryRewriter.escapeQuotes((String) value);
    }
    String formatSqlValue = FormatHelper.formatSqlValue(columnType, value);
    return formatSqlValue;
  }
View Full Code Here

    final SelectItem selectItem = getHeader().getSelectItem(i);
    final int columnIndex = i + 1;
    if (selectItem.getFunction() == null) {
      Column column = selectItem.getColumn();
      if (column != null) {
        ColumnType type = column.getType();
        try {
          switch (type) {
          case TIME:
            return _resultSet.getTime(columnIndex);
          case DATE:
View Full Code Here

TOP

Related Classes of org.apache.metamodel.schema.ColumnType

Copyright © 2018 www.massapicom. 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.