private CustomSpreadsheetResultOpenClass initCustomSpreadsheetResultType() { Map<String, IOpenField> spreadsheetOpenClassFields = getSpreadsheetType().getFields(); spreadsheetOpenClassFields.remove("this"); String typeName = SPREADSHEETRESULT_TYPE_PREFIX + getName(); CustomSpreadsheetResultOpenClass customSpreadsheetResultOpenClass = new CustomSpreadsheetResultOpenClass(typeName, getRowNames(), getColumnNames(), getRowTitles(), getColumnTitles()); customSpreadsheetResultOpenClass.setMetaInfo(new TableMetaInfo("Spreadsheet", getName(), getSourceUrl())); for (IOpenField field : spreadsheetOpenClassFields.values()) { CustomSpreadsheetResultField customSpreadsheetResultField = new CustomSpreadsheetResultField(customSpreadsheetResultOpenClass, field.getName(), field.getType()); customSpreadsheetResultOpenClass.addField(customSpreadsheetResultField); } return customSpreadsheetResultOpenClass; }