Minor Update

git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/tabular-data-expression-widget@113637 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Giancarlo Panichi 2015-03-18 10:56:43 +00:00
parent f215c727c4
commit a1748af328
4 changed files with 65 additions and 33 deletions

View File

@ -232,7 +232,8 @@ public class ConditionWidget extends SimpleContainer {
case NOT_CONTAINS:
case NOT_MATCH_REGEX:
case IN:
case NOT_IN:
case NOT_IN:
case SOUNDEX:
if (column.getDataTypeName().compareTo("Date") == 0) {
firstArgDate.setVisible(true);
andText.setVisible(false);
@ -413,7 +414,8 @@ public class ConditionWidget extends SimpleContainer {
case NOT_CONTAINS:
case NOT_MATCH_REGEX:
case IN:
case NOT_IN:
case NOT_IN:
case SOUNDEX:
if (column.getDataTypeName().compareTo("Date") == 0) {
firstArgDate.setVisible(true);
andText.setVisible(false);

View File

@ -3,6 +3,7 @@ package org.gcube.portlets.user.td.expressionwidget.client.operation;
import java.util.ArrayList;
import org.gcube.portlets.user.td.expressionwidget.shared.model.C_OperatorType;
import org.gcube.portlets.user.td.widgetcommonevent.shared.tr.column.ColumnDataType;
@ -13,7 +14,7 @@ import org.gcube.portlets.user.td.expressionwidget.shared.model.C_OperatorType;
*
*/
public class OperationsStore {
protected ArrayList<Operation> operations;
private ArrayList<Operation> operations;
protected ArrayList<Operation> operationsNumeric = new ArrayList<Operation>() {
private static final long serialVersionUID = -6559885743626876431L;
@ -52,7 +53,8 @@ public class OperationsStore {
add(new Operation(13,"BETWEEN","The value is between",C_OperatorType.BETWEEN));
add(new Operation(14,"NOT_BETWEEN","The value is not between",C_OperatorType.NOT_BETWEEN));
add(new Operation(15,"IN","The value is in",C_OperatorType.IN));
add(new Operation(16,"NOT_IN","The value is not in",C_OperatorType.NOT_IN));
add(new Operation(16,"NOT_IN","The value is not in",C_OperatorType.NOT_IN));
add(new Operation(17,"SOUNDEX","The soundex is equal to", C_OperatorType.SOUNDEX));
}};
protected ArrayList<Operation> operationsBoolean = new ArrayList<Operation>() {
@ -102,32 +104,37 @@ public class OperationsStore {
public ArrayList<Operation> getAll(String dataTypeName){
if(dataTypeName.compareTo("Boolean")==0){
operations=operationsBoolean;
} else {
if(dataTypeName.compareTo("Date")==0){
operations=operationsDate;
} else {
if(dataTypeName.compareTo("Integer")==0){
operations=operationsNumeric;
} else {
if(dataTypeName.compareTo("Geometry")==0){
operations=operationsGeometry;
} else {
if(dataTypeName.compareTo("Numeric")==0){
operations=operationsNumeric;
} else {
if(dataTypeName.compareTo("Text")==0){
operations=operationsText;
} else {
operations=new ArrayList<Operation>();
}
}
}
}
}
ColumnDataType dataType=ColumnDataType.getColumnDataTypeFromId(dataTypeName);
if(dataType==null){
operations=new ArrayList<Operation>();
return operations;
}
switch (dataType) {
case Boolean:
operations=operationsBoolean;
break;
case Date:
operations=operationsDate;
break;
case Geometry:
operations=operationsGeometry;
break;
case Integer:
operations=operationsNumeric;
break;
case Numeric:
operations=operationsNumeric;
break;
case Text:
operations=operationsText;
break;
default:
operations=new ArrayList<Operation>();
break;
}
return operations;
}

View File

@ -30,6 +30,7 @@ import org.gcube.data.analysis.tabulardata.expression.composite.comparable.NotLe
import org.gcube.data.analysis.tabulardata.expression.composite.text.Concat;
import org.gcube.data.analysis.tabulardata.expression.composite.text.Lower;
import org.gcube.data.analysis.tabulardata.expression.composite.text.MD5;
import org.gcube.data.analysis.tabulardata.expression.composite.text.Soundex;
import org.gcube.data.analysis.tabulardata.expression.composite.text.SubstringByIndex;
import org.gcube.data.analysis.tabulardata.expression.composite.text.SubstringByRegex;
import org.gcube.data.analysis.tabulardata.expression.composite.text.SubstringPosition;
@ -93,6 +94,7 @@ import org.gcube.portlets.user.td.expressionwidget.shared.model.composite.functi
import org.gcube.portlets.user.td.expressionwidget.shared.model.composite.text.C_Concat;
import org.gcube.portlets.user.td.expressionwidget.shared.model.composite.text.C_Lower;
import org.gcube.portlets.user.td.expressionwidget.shared.model.composite.text.C_MD5;
import org.gcube.portlets.user.td.expressionwidget.shared.model.composite.text.C_Soundex;
import org.gcube.portlets.user.td.expressionwidget.shared.model.composite.text.C_SubstringByIndex;
import org.gcube.portlets.user.td.expressionwidget.shared.model.composite.text.C_SubstringByRegex;
import org.gcube.portlets.user.td.expressionwidget.shared.model.composite.text.C_SubstringPosition;
@ -267,6 +269,8 @@ public class C_ExpressionParser {
case "MD5":
ex = getMD5(exp);
break;
case "Soundex":
ex = getSoundex(exp);
default:
break;
}
@ -648,6 +652,14 @@ public class C_ExpressionParser {
MD5 md5 = new MD5(arg);
return md5;
}
protected Expression getSoundex(C_Expression exp)
throws ExpressionParserException {
C_Soundex e = (C_Soundex) exp;
Expression arg = parse(e.getArgument());
Soundex soundex = new Soundex(arg);
return soundex;
}
protected Expression getEquals(C_Expression exp)

View File

@ -13,6 +13,7 @@ import org.gcube.portlets.user.td.expressionwidget.shared.model.composite.compar
import org.gcube.portlets.user.td.expressionwidget.shared.model.composite.comparable.C_NotEquals;
import org.gcube.portlets.user.td.expressionwidget.shared.model.composite.comparable.C_NotGreater;
import org.gcube.portlets.user.td.expressionwidget.shared.model.composite.comparable.C_NotLess;
import org.gcube.portlets.user.td.expressionwidget.shared.model.composite.text.C_Soundex;
import org.gcube.portlets.user.td.expressionwidget.shared.model.composite.text.C_TextBeginsWith;
import org.gcube.portlets.user.td.expressionwidget.shared.model.composite.text.C_TextContains;
import org.gcube.portlets.user.td.expressionwidget.shared.model.composite.text.C_TextEndsWith;
@ -329,10 +330,12 @@ public class ConditionTypeMap {
case UNIQUE:
break;
case SOUNDEX:
/*checkTypeArgument(column, firstArg);
exp = new C_Soundex(placeHolder, new TD_Value(dataType, firstArg));
readableExpression = "Equals(" + readablePlaceHolder + ","
+ firstArg + ")";*/
checkTypeArgument(column, firstArg);
C_Soundex soundexPlaceHolder=new C_Soundex(placeHolder);
C_Soundex soundexValue=new C_Soundex(new TD_Value(dataType, firstArg));
exp = new C_Equals(soundexPlaceHolder, soundexValue);
readableExpression = "Equals(Soundex(" + readablePlaceHolder + "),Soundex("
+ firstArg + "))";
break;
default:
break;
@ -612,6 +615,14 @@ public class ConditionTypeMap {
break;
case UNIQUE:
break;
case SOUNDEX:
checkTypeArgument(column, firstArg);
C_Soundex soundexPlaceHolder=new C_Soundex(columnReference);
C_Soundex soundexValue=new C_Soundex(new TD_Value(dataType, firstArg));
exp = new C_Equals(soundexPlaceHolder, soundexValue);
readableExpression = "Equals(Soundex(" + columnReference + "),Soundex("
+ firstArg + "))";
break;
default:
break;
}