Source: internalapi [edit]

Wub Module Functions

These WubHub utility functions are available for use within your WebL function definitions.

// -------------------------------------------------------------------------
// Name:    Wub_NewLuceneIndex(name, create, analyzer)
// Purpose: Creates a new lucene index of name.  
//          If create, erases any previous content.
//          analyzer may be "standard" (no stemming), "kstem" or "english"
//          (porter stemming)
// Returns: A Writer object to the new index
// -------------------------------------------------------------------------

// -------------------------------------------------------------------------
// Name:    Wub_ReadLuceneIndex(name)
// Purpose: Opens a lucene index name 'name' for read access
// Returns: A Reader object to the index
// -------------------------------------------------------------------------

// -------------------------------------------------------------------------
// Name:    Wub_NewLuceneDocument()
// Purpose: Creates a new Lucene document (empty)
// Returns: Lucene Document object
// -------------------------------------------------------------------------

// -------------------------------------------------------------------------
// Name:    Wub_NewLuceneTerm(fieldName, searchStr)
// Purpose: Creates a new Lucene term with fieldname and searchstring
// Returns: Lucene Term object
// -------------------------------------------------------------------------

// -------------------------------------------------------------------------
// Name:    Wub_AddLuceneField(doc, name, content, store, analyze, boost)
// Purpose: Adds a field to a document, with name and content.  Boolean
//          flags specify whether to store and analyze/index.  Boost specifies
//          field level boosting value, 0 or 1 = no boost.
// Returns: true
// -------------------------------------------------------------------------

// -------------------------------------------------------------------------
// Name:    Wub_AddLuceneDocument(writer, doc)
// Purpose: Adds a document to a Lucene index
// Returns: true if successful
// -------------------------------------------------------------------------

// -------------------------------------------------------------------------
// Name:    Wub_UpdateLuceneDocument(writer, term, doc)
// Purpose: Updates a document matching a given term with new doc value
// Returns: true if successful
// -------------------------------------------------------------------------

// -------------------------------------------------------------------------
// Name:    Wub_DeleteLuceneDocuments(writer, term, doc)
// Purpose: Delete all documents matching a given term
// Returns: true if successful
// -------------------------------------------------------------------------


// -------------------------------------------------------------------------
// Name:    Wub_OptimizeLucene(writer)
// Purpose: Optimize the Lucene index
// Returns: true if successful
// -------------------------------------------------------------------------

// -------------------------------------------------------------------------
// Name:    Wub_CloseLuceneIndex(writer)
// Purpose: Close the Lucene index
// Returns: true if successful
// -------------------------------------------------------------------------

// -------------------------------------------------------------------------
// Name:    Wub_LuceneSearch(reader, defaultField, query, hitsPerPage, analyzer)
// Purpose: Search the lucene index, given a defaultField to search, a
//          Lucene-formatted query string, and number of hits per page.
//          Use the same analyzer that was used for indexing ("standard", 
//          "kstem", "english")
// Returns: A Lucene TopScoreDocCollector object.  Relevant fields:
//            ScoreDoc[] .topDocs().scoreDocs
//            int .getTotalHits();
// -------------------------------------------------------------------------


//
// ==============================================
// Mongo DB Functions
// ==============================================

// -------------------------------------------------------------------------
// Name:    Wub_InitDB(hostname)
// Purpose: Connects a mongo server specified by hostname
// Returns: True if successfully connected
// -------------------------------------------------------------------------

// -------------------------------------------------------------------------
// Name:    Wub_GetDB(dbName)
// Purpose: Returns a pointer to the static DB instance
// Returns: DB database (static variable created in this class in InitDB)
// -------------------------------------------------------------------------

// -------------------------------------------------------------------------
// Name:    Wub_DropDB(dbName)
// Purpose: Drops a database by name
// -------------------------------------------------------------------------

// -------------------------------------------------------------------------
// Name:    Wub_GetCollectionNames(db)
// Purpose: Get a list of all collection name strings in the current database.
// Returns: Set set of collection names
// -------------------------------------------------------------------------

// -------------------------------------------------------------------------
// Name:    Wub_NewBasicDBObject()
// Purpose: Returns a new BasicDBObject.
// Returns: BasicDBObject dbObj
// -------------------------------------------------------------------------

// -------------------------------------------------------------------------
// Name:    Wub_NewDBObject()
// Purpose: Returns a new DBObject representing the webl object.  Can be used
//          to insert into a collection, or as the query object when searching.
// Returns: DBObject dbObj
// -------------------------------------------------------------------------

// -------------------------------------------------------------------------
// Name:    Wub_GetCollection(db, collectionName)
// Purpose: Returns a collection named collectionName
// Returns: DBCollection
// -------------------------------------------------------------------------

// -------------------------------------------------------------------------
// Name:    Wub_InsertDB(collection, dbObject)
// Purpose: Inserts a dbObj into a collection
// Returns: DBCollection
// -------------------------------------------------------------------------

// -------------------------------------------------------------------------
// Name:    Wub_UpdateDB(collection, queryObj, updateObj, upsert, multi)
// Purpose: Replaces a queryObj with an updateObj.  If multi=false, only first, else all.
//          If upsert=true, adds updateObj if a replace is not done.
// Returns: Void
// -------------------------------------------------------------------------

// -------------------------------------------------------------------------
// Name:    Wub_RemoveDB(collection, queryObj)
// Purpose: Removes first object matching queryObj
// Returns: Void
// -------------------------------------------------------------------------

// -------------------------------------------------------------------------
// Name:    Wub_CreateIndex(collection, dbObject)
// Purpose: Creates an index matching dbObject.  dbObject should have the fieldname
//             on which to create an index, and value 1 for ascending, -1 descending.
// Returns: Void
// -------------------------------------------------------------------------

// -------------------------------------------------------------------------
// Name:    Wub_QueryDB(collection, queryObj, max)
// Purpose: Searches a collection for all matching records of queryObj, up to max records.
//          -1 means no maximum.
// Returns: WebL list of result objects
// -------------------------------------------------------------------------


// -------------------------------------------------------------------------
// Name: Wub_GroupsMembers()
// Purpose:Returns members for all groups registered with WubHub
// -------------------------------------------------------------------------

// -------------------------------------------------------------------------
// Name: Wub_GroupList()
// Returns a list of all groups in the system
// -------------------------------------------------------------------------

//-------------------------------------------------------------------------
// name:    Wub_GenerateInvitationId(wubinfo, numUses)
// purpose: Generates an invitation ID that can be used numUses times
// note: must be logged in to execute this command
//-------------------------------------------------------------------------

// -------------------------------------------------------------------------
// Wub_MetadataVal(func, variable)
// Return stored value related to function
// -------------------------------------------------------------------------

// -------------------------------------------------------------------------
// Wub_CallCount(func)
// Return the number of times func has been called
// -------------------------------------------------------------------------

// -------------------------------------------------------------------------
// name:  Wub_GetFunctionInfo(f)
// purpose:
//   Load function.  Returns fields holding function data
//   name, module, arglist, ctype, version, created, modified, content, description, exec
//   or nil if function not found or INSUFFICIENT_PERMISSIONS if specified session
//   does not have read permissions
// -------------------------------------------------------------------------

// -------------------------------------------------------------------------
// name: Wub_SaveFunctionInfo(funcinfo)
// Purpose: Given funcinfo data, save function, recording versions.
// Returns: A page that will be displayed to the user, indicating success or
//   errors;
// -------------------------------------------------------------------------

// -------------------------------------------------------------------------
// name: Wub_DeleteFunction(funcname)
// Purpose: Deletes a function (qualified or unqualified) by name, checking permissions.
// Cleans up all metadata for deleted function
// Returns true if successful, false otherwise
// Throws Exceptions:
//    UnknownFunction
//    InsufficientPermissions
// -------------------------------------------------------------------------

// -------------------------------------------------------------------------
// name: Wub_ParseFunctionIdentifier(namestr)
// Parse a function identifier
// May be of the form "funcname" or "modname.funcname"
// Returns object funcspec = [. module = "modname", name = "funcname" .]
// obj.module is nil if module is not specified
// -------------------------------------------------------------------------

// -------------------------------------------------------------------------
// name: Wub_ParseCommandLine(cmdline)
// Parse a command line
// _Not_ a full recursive parser.
// Returns object with "cmd" and "args" fields, and also
// a "parsedcmdline" field which is the same as cmdline, 
// but in canonical form.  Returns nil for syntax error.
// Allowed syntax: 
//    funcname
//    funcname()
//    funcname(arg1,second argument)
//    funcname ("arg1 with quotes", arg2)
//    funcname: "arg1 with quotes", arg2
// funcname may also be qualified, using "." as a separator: modname.funcname
// -------------------------------------------------------------------------

// -------------------------------------------------------------------------
// name: Wub_FunctionList(modulefun)
// purpose: 
//   Return list of all functions contained in module.
//   Verfies that module is READABLE by user (returns empty list otherwise)
// -------------------------------------------------------------------------

// -------------------------------------------------------------------------
// name: Wub_GetFunctionsByTag(tag)
// purpose: 
//   Returns the list of all functions tagged with tag, or the
// empty list if tag doesn't exist
// Returns only functions viewable by user
// -------------------------------------------------------------------------

// -------------------------------------------------------------------------
// name: Wub_ClearCache(func)
// purpose:
//   Deletes all cached values for a function (qualified or unqualified) by name, checking permissions.
// Returns true if sucessful, false otherwise
// Throws Exceptions:
//    UnknownFunction
//    InsufficientPermissions
// -------------------------------------------------------------------------

// -------------------------------------------------------------------------
// Wub_SaveCacheResult(name, arglist, result) 
// Saves a result to a the cache for a function/arguments pair
// Returns true if sucessful, false otherwise
// Throws Exceptions:
//    UnknownFunction
//    InsufficientPermissions
// -------------------------------------------------------------------------

// -------------------------------------------------------------------------
// name: Wub_RefreshCache(func)
// purpose:
//   Refreshes all cached values for a function (qualified or unqualified) by name, checking permissions.
// Returns true if sucessful, false otherwise
// Throws Exceptions:
//    UnknownFunction
//    InsufficientPermissions
// -------------------------------------------------------------------------

// -------------------------------------------------------------------------
// name: Wub_TagList()
// purpose: 
//   Returns the list of all tags viewable by the user
// -------------------------------------------------------------------------

// -------------------------------------------------------------------------
// name: Wub_MemberList()
// purpose: 
//   Return list of all WubHub members
// -------------------------------------------------------------------------

//-------------------------------------------------------------------------
// name:    Wub_FunctionSort(f, list, direction)
// purpose: Sorts a list based on a user-defined function f(a,b) that return
//    -1 for a < b, 1 for a > b, and 0 for a=b.  If direction is -1, reverse
//    sorts, else if 1, sorts from lowest to highest
//-------------------------------------------------------------------------

// -------------------------------------------------------------------------
//  name: Wub_ReadableModules(includeMemberModules)
//    Returns as a list available readModules given user
// -------------------------------------------------------------------------

// -------------------------------------------------------------------------
// name: Wub_WriteableModules()
//   Returns as a list available WriteModules given user
// -------------------------------------------------------------------------

// -------------------------------------------------------------------------
// name: Wub_ALinkCmd(cmdline)
// name: Wub_ALinkCmd2(cmdline, linktext)
// Return an HTML "a" tag with a link to a WubHub command.  Use this instead
// of hardcoding references to commands within pages.
// ALinkCmd returns a link with the content of the link equal to the command
// ALinkCmd2 takes a separate argument for the content of the link.
// -------------------------------------------------------------------------

// -------------------------------------------------------------------------
// name: Wub_CreateTable(listOfObjs)
//   Return a TABLE piece containing list of objects
// -------------------------------------------------------------------------

// -------------------------------------------------------------------------
// name: Wub_TruncateWithEllipsis(str, size)
// Truncate string to specified length, adding ellipsis if necessary
// -------------------------------------------------------------------------

// -------------------------------------------------------------------------
// name:    Wub_RandomInt(n)
// purpose: Return int from 0 to n
// -------------------------------------------------------------------------

// -------------------------------------------------------------------------
// name:    Wub_GetCalendarClass()
// purpose: Return pointer to java.util.Calendar class
// -------------------------------------------------------------------------

// -------------------------------------------------------------------------
// name:    Wub_GetDateClass()
// purpose: Return pointer to java.util.Date class
// -------------------------------------------------------------------------

// -------------------------------------------------------------------------
// name:    Wub_GetDateFormatClass()
// purpose: Return pointer to java.text.DateFormat class
// -------------------------------------------------------------------------

// -------------------------------------------------------------------------
// name:    Wub_SimpleDateFormat(pattern)
// purpose: Return instance of java.text.SimpleDateFormat class
// -------------------------------------------------------------------------

// -------------------------------------------------------------------------
// name:    Wub_GetDateTimeStr
// purpose: Return current Date Time as string
// -------------------------------------------------------------------------

// -------------------------------------------------------------------------
// name:    Wub_GetDateTime
// purpose: Return current Date Time as long
// -------------------------------------------------------------------------

// -------------------------------------------------------------------------
// name:    Wub_StringToHTMLEveryField(obj)
// purpose: Apply StringToHTML to every string field in obj
// -------------------------------------------------------------------------

// -------------------------------------------------------------------------
// name:    Wub_ReplaceAll(str, sub, by)
// purpose: Replace all occurences of a String in a string
// -------------------------------------------------------------------------

// -------------------------------------------------------------------------
// name: Wub_ReplaceTokens(obj, str)
// Replace %token% identifiers in a string.
// Given object obj = [. "tok1" = "value1", "tok2" = "value2" ... .]
// it replaces strings "%tok1%" with "value1", etc., in str
// -------------------------------------------------------------------------

// -------------------------------------------------------------------------
// name: Wub_GetVaultValue(keyword)
// purpose: 
//  Returns from vault saved password for keyword
// Throws: InsufficientPermissions, UnknownKey
// -------------------------------------------------------------------------

// -------------------------------------------------------------------------
// name: Wub_SetVaultValue(key, pw)
// purpose: 
//  Sets a keyword/pw pair into the user's vault
// Throws: InsufficientPermissions
// -------------------------------------------------------------------------

// =========================================================================
// Global data
// =========================================================================

// -------------------------------------------------------------------------
// mame: AppendData(tablename, data)
// purpose: Writes a row of data (string) to the end of the file (global)
// -------------------------------------------------------------------------

// -------------------------------------------------------------------------
// name: ReadData(tablename)
// purpose: Reads entire table (global)
// -------------------------------------------------------------------------

// -------------------------------------------------------------------------
// name: DeleteData(tablename)
// purpose: Deletes entire table (global)
// -------------------------------------------------------------------------