Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright 2012 JBoss Inc
   * 
   * Licensed under the Apache License, Version 2.0 (the "License"); you may not
   * use this file except in compliance with the License. You may obtain a copy of
   * the License at
   * 
   * http://www.apache.org/licenses/LICENSE-2.0
   * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
  * License for the specific language governing permissions and limitations under
  * the License.
  */
 package org.drools.workbench.screens.guided.dtable.client.widget.table;
 
 
 import java.util.Date;

Utilities relating to the use of DTCellValue's
 
 public class DTCellValueUtilities {
 
     // Dates are serialised to Strings with the user-defined format, or dd-MMM-yyyy by default
     protected static DateConverter DATE_CONVERTOR = null;

    
Override the default, GWT-centric, Date conversion utility class. Only use to hook-in a JVM Compatible implementation for tests

Parameters:
dc
 
     public static void injectDateConvertorDateConverter dc ) {
          = dc;
     }
 
     private final GuidedDecisionTable52 model;
     private final PackageDataModelOracle oracle;
     private final GuidedDecisionTableUtils utils;
 
     public DTCellValueUtilitiesfinal GuidedDecisionTable52 model,
                                  final PackageDataModelOracle oracle ) {
         this. = model;
         this. = oracle;
         this. = new GuidedDecisionTableUtilsoracle,
                                                    model );
     }

    
Get the Data Type corresponding to a given column. If the column is a ConditonCol52 and it is not associated with a Pattern52 in the decision table (e.g. it has been cloned) the overloaded method getDataType(Pattern52, ConditionCol52) should be used.

Parameters:
column
Returns:
 
     public DataType.DataTypes getDataTypeBaseColumn column ) {
 
         //Limited Entry are simply boolean
         if ( column instanceof LimitedEntryCol ) {
             return ..;
         }
 
         //Action Work Items are always boolean
         if ( column instanceof ActionWorkItemCol52 ) {
             return ..;
         }
 
         //Actions setting Field Values from Work Item Result Parameters are always boolean
         if ( column instanceof ActionWorkItemSetFieldCol52 || column instanceof ActionWorkItemInsertFactCol52 ) {
             return ..;
         }
 
         //Operators "is null" and "is not null" require a boolean cell
         if ( column instanceof ConditionCol52 ) {
             ConditionCol52 cc = (ConditionCol52column;
             if ( cc.getOperator() != null && ( cc.getOperator().equals"== null" ) || cc.getOperator().equals"!= null" ) ) ) {
                 return ..;
             }
         }
 
         //Extended Entry...
        return .getTypeSafeTypecolumn );
    }

    
Get the Data Type corresponding to a given column

Parameters:
pattern Pattern52
condition ConditionCol52
Returns:
    public DataType.DataTypes getDataTypePattern52 pattern,
                                           ConditionCol52 condition ) {
        //Limited Entry are simply boolean
        if ( condition instanceof LimitedEntryCol ) {
            return ..;
        }
        //Operators "is null" and "is not null" require a boolean cell
        if ( condition.getOperator() != null && ( condition.getOperator().equals"== null" ) || condition.getOperator().equals"!= null" ) ) ) {
            return ..;
        }
        //Extended Entry...
        return .getTypeSafeTypepattern,
                                      condition );
    }

    
Get the Data Type corresponding to a given column

Parameters:
pattern Pattern52
action ActionSetFieldCol52
Returns:
    public DataType.DataTypes getDataTypePattern52 pattern,
                                           ActionSetFieldCol52 action ) {
        //Limited Entry are simply boolean
        if ( action instanceof LimitedEntryCol ) {
            return ..;
        }
        //Extended Entry...
        return .getTypeSafeTypepattern,
                                      action );
    }

    
The column-data type is looked up from the SuggestionCompletionEngine and represents the *true* data-type that the column represents. The data-type associated with the Cell Value can be incorrect for legacy models. For pre-5.2 they will always be String and for pre-5.4 numerical fields are always Numeric

Parameters:
dataType
dcv
    public void assertDTCellValueDataType.DataTypes dataType,
                                   DTCellValue52 dcv ) {
        if ( dcv == null ) {
            return;
        }
        //If already converted exit
        if ( dataType.equalsdcv.getDataType() ) ) {
            return;
        }
        switch ( dcv.getDataType() ) {
            case :
                convertDTCellValueFromNumericdataType,
                                               dcv );
                break;
            default:
                convertDTCellValueFromStringdataType,
                                              dcv );
        }
    }

    
Convert a DTCellValue52 to it's String representation

Parameters:
dcv
Returns:
    public String asStringfinal DTCellValue52 dcv ) {
        switch ( dcv.getDataType() ) {
            case :
                return convertBooleanValueToStringdcv );
            case :
                return convertDateValueToStringdcv );
            case :
                return convertNumericValueToStringdcv );
            case :
                return convertBigDecimalValueToStringdcv );
            case :
                return convertBigIntegerValueToStringdcv );
            case :
                return convertByteValueToStringdcv );
            case :
                return convertDoubleValueToStringdcv );
            case :
                return convertFloatValueToStringdcv );
            case :
                return convertIntegerValueToStringdcv );
            case :
                return convertLongValueToStringdcv );
            case :
                return convertShortValueToStringdcv );
        }
        return convertStringValueToStringdcv );
    }
    //Convert a Boolean value to a String
    private String convertBooleanValueToStringDTCellValue52 dcv ) {
        final Boolean value = dcv.getBooleanValue();
        return ( value == null ? "" : value.toString() );
    }
    //Convert a Date value to a String
    private String convertDateValueToStringDTCellValue52 dcv ) {
        final Date value = dcv.getDateValue();
        String result = "";
        if ( value != null ) {
            result = .format( (Datevalue );
        }
        return result;
    }
    //Convert a Generic Numeric (BigDecimal) value to a String
    private String convertNumericValueToStringDTCellValue52 dcv ) {
        final BigDecimal value = (BigDecimaldcv.getNumericValue();
        return ( value == null ? "" : value.toPlainString() );
    }
    //Convert a BigDecimal value to a String
        final BigDecimal value = (BigDecimaldcv.getNumericValue();
        return ( value == null ? "" : value.toPlainString() );
    }
    //Convert a BigInteger value to a String
        final BigInteger value = (BigIntegerdcv.getNumericValue();
        return ( value == null ? "" : value.toString() );
    }
    //Convert a Byte value to a String
    private String convertByteValueToStringDTCellValue52 dcv ) {
        final Byte value = (Bytedcv.getNumericValue();
        return ( value == null ? "" : value.toString() );
    }
    //Convert a Double value to a String
    private String convertDoubleValueToStringDTCellValue52 dcv ) {
        final Double value = (Doubledcv.getNumericValue();
        return ( value == null ? "" : value.toString() );
    }
    //Convert a Float value to a String
    private String convertFloatValueToStringDTCellValue52 dcv ) {
        final Float value = (Floatdcv.getNumericValue();
        return ( value == null ? "" : value.toString() );
    }
    //Convert a Integer value to a String
    private String convertIntegerValueToStringDTCellValue52 dcv ) {
        final Integer value = (Integerdcv.getNumericValue();
        return ( value == null ? "" : value.toString() );
    }
    //Convert a Long value to a String
    private String convertLongValueToStringDTCellValue52 dcv ) {
        final Long value = (Longdcv.getNumericValue();
        return ( value == null ? "" : value.toString() );
    }
    //Convert a Short value to a String
    private String convertShortValueToStringDTCellValue52 dcv ) {
        final Short value = (Shortdcv.getNumericValue();
        return ( value == null ? "" : value.toString() );
    }
    //Convert a String value to a String
    private String convertStringValueToStringDTCellValue52 dcv ) {
        final String value = dcv.getStringValue();
        return ( value == null ? "" : value );
    }
    //If the Decision Table model has been converted from the legacy text based
    //class then all values are held in the DTCellValue's StringValue. This
    //function attempts to set the correct DTCellValue property based on
    //the DTCellValue's data type.
    private void convertDTCellValueFromStringDataType.DataTypes dataType,
                                               DTCellValue52 dcv ) {
        String text = dcv.getStringValue();
        switch ( dataType ) {
            case :
                dcv.setBooleanValue( ( text == null ? false : Boolean.valueOftext ) ) );
                break;
            case :
                Date d = null;
                try {
                    if ( text != null ) {
                        if (  == null ) {
                            throw new IllegalArgumentException"DATE_CONVERTOR has not been initialised." );
                        }
                        d = .parsetext );
                    }
                } catch ( IllegalArgumentException e ) {
                }
                dcv.setDateValued );
                break;
            case :
                BigDecimal numericValue = null;
                try {
                    if ( text != null ) {
                        numericValue = new BigDecimaltext );
                    }
                } catch ( Exception e ) {
                }
                dcv.setNumericValuenumericValue );
                break;
            case :
                BigDecimal bigDecimalValue = null;
                try {
                    if ( text != null ) {
                        bigDecimalValue = new BigDecimaltext );
                    }
                } catch ( Exception e ) {
                }
                dcv.setNumericValuebigDecimalValue );
                break;
            case :
                BigInteger bigIntegerValue = null;
                try {
                    if ( text != null ) {
                        bigIntegerValue = new BigIntegertext );
                    }
                } catch ( Exception e ) {
                }
                dcv.setNumericValuebigIntegerValue );
                break;
            case :
                Byte byteValue = null;
                try {
                    if ( text != null ) {
                        byteValue = new Bytetext );
                    }
                } catch ( Exception e ) {
                }
                dcv.setNumericValuebyteValue );
                break;
            case :
                Double doubleValue = null;
                try {
                    if ( text != null ) {
                        doubleValue = new Doubletext );
                    }
                } catch ( Exception e ) {
                }
                dcv.setNumericValuedoubleValue );
                break;
            case :
                Float floatValue = null;
                try {
                    if ( text != null ) {
                        floatValue = new Floattext );
                    }
                } catch ( Exception e ) {
                }
                dcv.setNumericValuefloatValue );
                break;
            case :
                Integer integerValue = null;
                try {
                    if ( text != null ) {
                        integerValue = new Integertext );
                    }
                } catch ( Exception e ) {
                }
                dcv.setNumericValueintegerValue );
                break;
            case :
                Long longValue = null;
                try {
                    if ( text != null ) {
                        longValue = new Longtext );
                    }
                } catch ( Exception e ) {
                }
                dcv.setNumericValuelongValue );
                break;
            case :
                Short shortValue = null;
                try {
                    if ( text != null ) {
                        shortValue = new Shorttext );
                    }
                } catch ( Exception e ) {
                }
                dcv.setNumericValueshortValue );
                break;
        }
    }
    //If the Decision Table model was pre-5.4 Numeric data-types were always stored as 
    //BigDecimals. This function attempts to set the correct DTCellValue property based 
    //on the *true* data type.
    private void convertDTCellValueFromNumericDataType.DataTypes dataType,
                                                DTCellValue52 dcv ) {
        //Generic type NUMERIC was always stored as a BigDecimal
        final BigDecimal value = (BigDecimaldcv.getNumericValue();
        switch ( dataType ) {
            case :
                dcv.setNumericValuevalue == null ? null : value );
                break;
            case :
                dcv.setNumericValuevalue == null ? null : value.toBigInteger() );
                break;
            case :
                dcv.setNumericValuevalue == null ? null : value.byteValue() );
                break;
            case :
                dcv.setNumericValuevalue == null ? null : value.doubleValue() );
                break;
            case :
                dcv.setNumericValuevalue == null ? null : value.floatValue() );
                break;
            case :
                dcv.setNumericValuevalue == null ? null : value.intValue() );
                break;
            case :
                dcv.setNumericValuevalue == null ? null : value.longValue() );
                break;
            case :
                dcv.setNumericValuevalue == null ? null : value.shortValue() );
                break;
        }
    }
New to GrepCode? Check out our FAQ X