summaryrefslogtreecommitdiffstats
path: root/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition
diff options
context:
space:
mode:
Diffstat (limited to 'ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition')
-rw-r--r--ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/ReportDefinition.java147
-rw-r--r--ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/ColumnEditJSON.java103
-rw-r--r--ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/DefinitionJSON.java83
-rw-r--r--ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/FormEditJSON.java17
-rw-r--r--ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/SearchFieldJSON.java7
5 files changed, 354 insertions, 3 deletions
diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/ReportDefinition.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/ReportDefinition.java
index 44a05512..72eb64b8 100644
--- a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/ReportDefinition.java
+++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/ReportDefinition.java
@@ -1422,6 +1422,153 @@ public class ReportDefinition extends ReportWrapper implements Serializable {
resetCache(false);
} // parseReportSQL
+ public void parseReportSQL(String sql, boolean storeInSession) throws RaptorException {
+ StringBuffer parsedSQL = new StringBuffer();
+
+ Vector updatedReportCols = new Vector();
+
+ curSQLParsePos = 0;
+ int lastParsePos = curSQLParsePos;
+ String lastToken = null;
+ String nextToken = getNextSQLParseToken(sql, true);
+
+ String dbInfo = getDBInfo();
+ boolean isCYMBALScript = false;
+ if (!isNull(dbInfo) && (!dbInfo.equals(AppConstants.DB_LOCAL))) {
+ try {
+ org.onap.portalsdk.analytics.util.RemDbInfo remDbInfo = new org.onap.portalsdk.analytics.util.RemDbInfo();
+ String dbType = remDbInfo.getDBType(dbInfo);
+ if (dbType.equals("DAYTONA") && !(nextToken.toUpperCase().equals("SELECT"))) {
+ isCYMBALScript = true;
+ }
+ } catch (Exception ex) {
+ throw new RaptorException(ex);
+ }
+ }
+ if ( isCYMBALScript == false ) {
+ while (nextToken.length() > 0) {
+ if (parsedSQL.length() == 0) {
+ if (nextToken.toUpperCase().equals("SELECT"))
+ parsedSQL.append("SELECT ");
+ else
+ throw new org.onap.portalsdk.analytics.error.ValidationException(
+ "The SQL must start with the SELECT keyword.");
+ } else if (nextToken.toUpperCase().equals("DISTINCT")
+ && parsedSQL.toString().equals("SELECT ")) {
+ parsedSQL.append("DISTINCT ");
+ } else if (nextToken.equals("*")
+ && (parsedSQL.toString().equals("SELECT ") || parsedSQL.toString().equals(
+ "SELECT DISTINCT "))) {
+ throw new org.onap.portalsdk.analytics.error.ValidationException(
+ "You cannot use \"SELECT *\". Please specify select columns/expressions.");
+ } else if (nextToken.toUpperCase().equals("FROM")) {
+ if (lastToken != null) {
+ updatedReportCols.add(getParseSQLDataColumn(lastToken, null, parsedSQL,
+ updatedReportCols, false));
+ lastToken = null;
+ }
+
+ parsedSQL.append(" \n");
+ while (lastParsePos < sql.length()
+ && Character.isWhitespace(sql.charAt(lastParsePos)))
+ lastParsePos++;
+ parsedSQL.append(sql.substring(lastParsePos));
+ break;
+ } else {
+ if (nextToken.charAt(nextToken.length() - 1) == ',') {
+ // The token ends with ,
+ nextToken = nextToken.substring(0, nextToken.length() - 1);
+
+ if (nextToken.length() == 0) {
+ if (lastToken != null) {
+ updatedReportCols.add(getParseSQLDataColumn(lastToken, null,
+ parsedSQL, updatedReportCols, false));
+ lastToken = null;
+ } // else just comma => ignore it
+ } else {
+ if (lastToken != null) {
+ updatedReportCols.add(getParseSQLDataColumn(lastToken, nextToken,
+ parsedSQL, updatedReportCols, false));
+ lastToken = null;
+ } else
+ updatedReportCols.add(getParseSQLDataColumn(nextToken, null,
+ parsedSQL, updatedReportCols, false));
+ }
+ } else {
+ // The token doesn't end with ,
+ if (lastToken == null)
+ lastToken = nextToken;
+ else {
+ String token = getNextSQLParseToken(sql, false);
+ if (!token.toUpperCase().equals("FROM"))
+ throw new org.onap.portalsdk.analytics.error.ValidationException(
+ "|FROM keyword or a comma expected after [" + nextToken
+ + "].");
+
+ updatedReportCols.add(getParseSQLDataColumn(lastToken, nextToken,
+ parsedSQL, updatedReportCols, false));
+ lastToken = null;
+ } // else
+ } // else
+ } // else
+
+ lastParsePos = curSQLParsePos;
+ nextToken = getNextSQLParseToken(sql, true);
+ } // while
+ } else { // if CYMBAL Script
+ curSQLParsePos = 0;
+ Pattern re = null;
+ Matcher matcher = null;
+ String extracted = null;
+ nextToken = getNextCYMBALSQLParseToken(sql,true);
+ while (nextToken.length() > 0) {
+ if (lastToken == null) lastToken = nextToken;
+
+ if( lastToken.toUpperCase().startsWith("DO DISPLAY")) {
+ re = Pattern.compile("each(.*)\\[.(.*?)\\]"); //\\[(.*?)\\]
+ matcher = re.matcher(nextToken);
+ if (matcher.find()) {
+ extracted = matcher.group();
+ re = Pattern.compile("\\[(.*?)\\]");
+ matcher = re.matcher(nextToken);
+ if(matcher.find()) {
+ extracted = matcher.group();
+ extracted = extracted.substring(1,extracted.length()-1);
+ StringTokenizer sToken = new StringTokenizer(extracted, ",");
+ while(sToken.hasMoreTokens()) {
+ String str1 = sToken.nextToken().trim().substring(1);
+ updatedReportCols.add(getParseSQLDataColumn("", str1,
+ new StringBuffer(""), updatedReportCols, true));
+ }
+ }
+
+ }
+
+ }
+ lastToken = nextToken;
+ nextToken = getNextCYMBALSQLParseToken(sql, true);
+ }
+
+ }
+ if (updatedReportCols.size() == 0)
+ throw new org.onap.portalsdk.analytics.error.ValidationException(
+ "The SQL statement must have at least one column in the SELECT clause.");
+ if (getDataSourceList().getDataSource().size() == 0)
+ addDataSourceType(new ObjectFactory(), "du0", "DUAL", "", "DUAL", null, null, null);
+ DataSourceType dst = (DataSourceType) getDataSourceList().getDataSource().get(0);
+ dst.getDataColumnList().getDataColumn().clear();
+
+ for (int i = 0; i < updatedReportCols.size(); i++) {
+ DataColumnType dct = (DataColumnType) updatedReportCols.get(i);
+ dct.setTableId(dst.getTableId());
+ dct.setOrderSeq(i + 1);
+ dst.getDataColumnList().getDataColumn().add(dct);
+ } // for
+ if(storeInSession)
+ setReportSQL(parsedSQL.toString());
+ resetCache(false);
+ } // parseReportSQL
+
private String getNextCYMBALSQLParseToken(String sql, boolean updateParsePos) {
int braketCount = 0;
boolean isInsideQuote = false;
diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/ColumnEditJSON.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/ColumnEditJSON.java
index e5fc94ae..3281eee7 100644
--- a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/ColumnEditJSON.java
+++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/ColumnEditJSON.java
@@ -48,6 +48,14 @@ public class ColumnEditJSON implements WizardJSON {
private String displayHeaderAlignment;
private boolean sortable;
private boolean visible;
+ private Integer displayWidth;
+ private Integer displayWidthInPixel;
+ private String colType;
+ private Integer groupByPos;
+ private Integer level;
+ private String dataType;
+ private String noWrap;
+ private Integer indentation;
private String drilldownURL;
private String drilldownParams;
@@ -55,6 +63,13 @@ public class ColumnEditJSON implements WizardJSON {
private String errorMessage;
private String errorStackTrace;
+ private String depeondsOnForField;
+ private String subTotalCustomText;
+ private boolean hideRepeatedKey;
+ private Integer colspan;
+ private String displayName;
+ private String displayTotal;
+
public String getTabId() {
return tabId;
}
@@ -133,5 +148,93 @@ public class ColumnEditJSON implements WizardJSON {
public void setDrilldownType(String drilldownType) {
this.drilldownType = drilldownType;
}
+
+ public Integer getDisplayWidth() {
+ return displayWidth;
+ }
+ public void setDisplayWidth(Integer displayWidth) {
+ this.displayWidth = displayWidth;
+ }
+ public Integer getDisplayWidthInPixel() {
+ return displayWidthInPixel;
+ }
+ public void setDisplayWidthInPixel(Integer displayWidthInPixel) {
+ this.displayWidthInPixel = displayWidthInPixel;
+ }
+ public Integer getGroupByPos() {
+ return groupByPos;
+ }
+ public void setGroupByPos(Integer groupByPos) {
+ this.groupByPos = groupByPos;
+ }
+ public Integer getLevel() {
+ return level;
+ }
+ public void setLevel(Integer level) {
+ this.level = level;
+ }
+ public String getDataType() {
+ return dataType;
+ }
+ public void setDataType(String dataType) {
+ this.dataType = dataType;
+ }
+ public String getNoWrap() {
+ return noWrap;
+ }
+ public void setNoWrap(String noWrap) {
+ this.noWrap = noWrap;
+ }
+ public Integer getIndentation() {
+ return indentation;
+ }
+ public void setIndentation(Integer indentation) {
+ this.indentation = indentation;
+ }
+ public String getColType() {
+ return colType;
+ }
+ public void setColType(String colType) {
+ this.colType = colType;
+ }
+ public String getDepeondsOnForField() {
+ return depeondsOnForField;
+ }
+ public void setDepeondsOnForField(String depeondsOnForField) {
+ this.depeondsOnForField = depeondsOnForField;
+ }
+ public String getSubTotalCustomText() {
+ return subTotalCustomText;
+ }
+ public void setSubTotalCustomText(String subTotalCustomText) {
+ this.subTotalCustomText = subTotalCustomText;
+ }
+ public boolean isHideRepeatedKey() {
+ return hideRepeatedKey;
+ }
+ public void setHideRepeatedKey(boolean hideRepeatedKey) {
+ this.hideRepeatedKey = hideRepeatedKey;
+ }
+ public Integer getColspan() {
+ return colspan;
+ }
+ public void setColspan(Integer colspan) {
+ this.colspan = colspan;
+ }
+ public String getDisplayName() {
+ return displayName;
+ }
+ public void setDisplayName(String displayName) {
+ this.displayName = displayName;
+ }
+ public String getDisplayTotal() {
+ return displayTotal;
+ }
+ public void setDisplayTotal(String displayTotal) {
+ this.displayTotal = displayTotal;
+ }
+
+
+
}
diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/DefinitionJSON.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/DefinitionJSON.java
index 73ac97d8..47b1ef9e 100644
--- a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/DefinitionJSON.java
+++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/DefinitionJSON.java
@@ -64,7 +64,15 @@ public class DefinitionJSON implements WizardJSON {
private Integer numFormCols;
private String reportTitle;
private String reportSubTitle;
-
+ private String oneTimeRec;
+ private String hourlyRec;
+ private String dailyRec;
+ private String dailyMFRec;
+ private String weeklyRec;
+ private String monthlyRec;
+ private String allowScheduler;
+ private String sizedByContent;
+ private String repDefType;
@Override
public String getTabName() {
return tabName;
@@ -246,7 +254,78 @@ public class DefinitionJSON implements WizardJSON {
public void setReportSubTitle(String reportSubTitle) {
this.reportSubTitle = reportSubTitle;
}
+
+ public String getOneTimeRec() {
+ return oneTimeRec;
+ }
+
+ public void setOneTimeRec(String oneTimeRec) {
+ this.oneTimeRec = oneTimeRec;
+ }
+
+ public String getHourlyRec() {
+ return hourlyRec;
+ }
+
+ public void setHourlyRec(String hourlyRec) {
+ this.hourlyRec = hourlyRec;
+ }
+
+ public String getDailyRec() {
+ return dailyRec;
+ }
+
+ public void setDailyRec(String dailyRec) {
+ this.dailyRec = dailyRec;
+ }
+
+ public String getDailyMFRec() {
+ return dailyMFRec;
+ }
+
+ public void setDailyMFRec(String dailyMFRec) {
+ this.dailyMFRec = dailyMFRec;
+ }
+
+ public String getWeeklyRec() {
+ return weeklyRec;
+ }
+
+ public void setWeeklyRec(String weeklyRec) {
+ this.weeklyRec = weeklyRec;
+ }
+
+ public String getMonthlyRec() {
+ return monthlyRec;
+ }
+
+ public void setMonthlyRec(String monthlyRec) {
+ this.monthlyRec = monthlyRec;
+ }
+
+ public String getAllowScheduler() {
+ return allowScheduler;
+ }
+
+ public void setAllowScheduler(String allowScheduler) {
+ this.allowScheduler = allowScheduler;
+ }
+
+ public String getSizedByContent() {
+ return sizedByContent;
+ }
+
+ public void setSizedByContent(String sizedByContent) {
+ this.sizedByContent = sizedByContent;
+ }
+
+ public String getRepDefType() {
+ return repDefType;
+ }
+
+ public void setRepDefType(String repDefType) {
+ this.repDefType = repDefType;
+ }
-
}
diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/FormEditJSON.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/FormEditJSON.java
index bc39006f..e8238534 100644
--- a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/FormEditJSON.java
+++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/FormEditJSON.java
@@ -48,6 +48,7 @@ public class FormEditJSON implements WizardJSON {
private String fieldName;
private String fieldType;
private boolean visible;
+ private boolean groupFormField;
private String defaultValue;
private String fieldDefaultSQL;
private String fieldSQL;
@@ -56,7 +57,7 @@ public class FormEditJSON implements WizardJSON {
private String message;
private String errorMessage;
private String errorStackTrace;
-
+ private Integer orderSeq;
public String getMessage() {
return message;
@@ -145,5 +146,19 @@ public class FormEditJSON implements WizardJSON {
public void setFieldSQL(String fieldSQL) {
this.fieldSQL = fieldSQL;
}
+ public boolean isGroupFormField() {
+ return groupFormField;
+ }
+ public void setGroupFormField(boolean groupFormField) {
+ this.groupFormField = groupFormField;
+ }
+ public Integer getOrderSeq() {
+ return orderSeq;
+ }
+ public void setOrderSeq(Integer orderSeq) {
+ this.orderSeq = orderSeq;
+ }
+
+
}
diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/SearchFieldJSON.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/SearchFieldJSON.java
index b3cfe243..f80ba993 100644
--- a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/SearchFieldJSON.java
+++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/model/definition/wizard/SearchFieldJSON.java
@@ -41,6 +41,7 @@ public class SearchFieldJSON implements ElementJSON {
private String id;
private String name;
+ private Integer orderSeq;
public String getId() {
return id;
}
@@ -53,6 +54,12 @@ public class SearchFieldJSON implements ElementJSON {
public void setName(String name) {
this.name = name;
}
+ public Integer getOrderSeq() {
+ return orderSeq;
+ }
+ public void setOrderSeq(Integer orderSeq) {
+ this.orderSeq = orderSeq;
+ }