|
Struts example source code file (CsvStore.js)
The Struts CsvStore.js source code/* Copyright (c) 2004-2006, The Dojo Foundation All Rights Reserved. Licensed under the Academic Free License version 2.1 or above OR the modified BSD license. For more information on Dojo licensing, see: http://dojotoolkit.org/community/licensing.shtml */ dojo.provide("dojo.data.CsvStore"); dojo.require("dojo.data.core.RemoteStore"); dojo.require("dojo.lang.assert"); dojo.declare("dojo.data.CsvStore", dojo.data.core.RemoteStore, {_setupQueryRequest:function (result, requestKw) { var serverQueryUrl = this._serverQueryUrl ? this._serverQueryUrl : ""; var queryUrl = result.query ? result.query : ""; requestKw.url = serverQueryUrl + queryUrl; requestKw.method = "get"; }, _resultToQueryData:function (serverResponseData) { var csvFileContentString = serverResponseData; var arrayOfArrays = this._getArrayOfArraysFromCsvFileContents(csvFileContentString); var arrayOfObjects = this._getArrayOfObjectsFromArrayOfArrays(arrayOfArrays); var remoteStoreData = this._getRemoteStoreDataFromArrayOfObjects(arrayOfObjects); return remoteStoreData; }, _setupSaveRequest:function (saveKeywordArgs, requestKw) { }, _getArrayOfArraysFromCsvFileContents:function (csvFileContents) { dojo.lang.assertType(csvFileContents, String); var lineEndingCharacters = new RegExp("\r\n|\n|\r"); var leadingWhiteSpaceCharacters = new RegExp("^\\s+", "g"); var trailingWhiteSpaceCharacters = new RegExp("\\s+$", "g"); var doubleQuotes = new RegExp("\"\"", "g"); var arrayOfOutputRecords = []; var arrayOfInputLines = csvFileContents.split(lineEndingCharacters); for (var i in arrayOfInputLines) { var singleLine = arrayOfInputLines[i]; if (singleLine.length > 0) { var listOfFields = singleLine.split(","); var j = 0; while (j < listOfFields.length) { var space_field_space = listOfFields[j]; var field_space = space_field_space.replace(leadingWhiteSpaceCharacters, ""); var field = field_space.replace(trailingWhiteSpaceCharacters, ""); var firstChar = field.charAt(0); var lastChar = field.charAt(field.length - 1); var secondToLastChar = field.charAt(field.length - 2); var thirdToLastChar = field.charAt(field.length - 3); if ((firstChar == "\"") && ((lastChar != "\"") || ((lastChar == "\"") && (secondToLastChar == "\"") && (thirdToLastChar != "\"")))) { if (j + 1 === listOfFields.length) { return null; } var nextField = listOfFields[j + 1]; listOfFields[j] = field_space + "," + nextField; listOfFields.splice(j + 1, 1); } else { if ((firstChar == "\"") && (lastChar == "\"")) { field = field.slice(1, (field.length - 1)); field = field.replace(doubleQuotes, "\""); } listOfFields[j] = field; j += 1; } } arrayOfOutputRecords.push(listOfFields); } } return arrayOfOutputRecords; }, _getArrayOfObjectsFromArrayOfArrays:function (arrayOfArrays) { dojo.lang.assertType(arrayOfArrays, Array); var arrayOfItems = []; if (arrayOfArrays.length > 1) { var arrayOfKeys = arrayOfArrays[0]; for (var i = 1; i < arrayOfArrays.length; ++i) { var row = arrayOfArrays[i]; var item = {}; for (var j in row) { var value = row[j]; var key = arrayOfKeys[j]; item[key] = value; } arrayOfItems.push(item); } } return arrayOfItems; }, _getRemoteStoreDataFromArrayOfObjects:function (arrayOfObjects) { dojo.lang.assertType(arrayOfObjects, Array); var output = {}; for (var i = 0; i < arrayOfObjects.length; ++i) { var object = arrayOfObjects[i]; for (var key in object) { var value = object[key]; object[key] = [value]; } output[i] = object; } return output; }, newItem:function (attributes, keywordArgs) { dojo.unimplemented("dojo.data.CsvStore.newItem"); }, deleteItem:function (item) { dojo.unimplemented("dojo.data.CsvStore.deleteItem"); }, setValues:function (item, attribute, values) { dojo.unimplemented("dojo.data.CsvStore.setValues"); }, set:function (item, attribute, value) { dojo.unimplemented("dojo.data.CsvStore.set"); }, unsetAttribute:function (item, attribute) { dojo.unimplemented("dojo.data.CsvStore.unsetAttribute"); }, save:function (keywordArgs) { dojo.unimplemented("dojo.data.CsvStore.save"); }, revert:function () { dojo.unimplemented("dojo.data.CsvStore.revert"); }, isDirty:function (item) { dojo.unimplemented("dojo.data.CsvStore.isDirty"); }}); Other Struts examples (source code examples)Here is a short list of links related to this Struts CsvStore.js source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2021 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.