Mutan API

A.Introduction
B.Variable type
 1.void
 2.bool
 3.int
 4.string
 5.array
 6.function
 7.object
 8.hash
 9.enum
C.core
 1.DomUtils
 2.HttpRequestUtils
 3.mConfig
 4.mController
 5.mUtils
D.utility
 1.mFilter
 2.mLanguage
 3.mLogger
 4.mValidator
E.render
 1.mRender
 2.domRender
 3.dummyRender
 4.easyTemplateRender
 5.formRender
 6.hashRender
 7.htmlRender
 8.queryRender
F.request
 1.mRequest
 2.formRequest
 3.hashRequest
 4.queryRequest
G.action
 1.mAction
H.model
 1.mModel






A.Introduction
 This document for public member and public method of each object.
 Object tree of Mutan is as follows.

 + root
    + DomUtils
    + HttpRequestUtils
    + mController
    |  + mRender
    |  + mRequest
    |  + mAction
    |     + mModel
    + mUtils
       + mConfig
       + array
       |  + mFilter
       + mLanguage
       + mLogger
       + array
       |  + mValidator
       + context

---- 8< ---- Tear off along dotted line ---- 8< ----

B.Variable type
 This is explanation of the variable type.
 Special type for the explanation is included in this.

 1.void
  This type is non value.

 2.bool
  This type is true or false.
  It is called the boolean.

 3.int
  This type is only numerical.

 4.string
  This type is character string.

 5.array
  This type is array.

 6.function
  This type is function.

 7.object
  This type can any value.

 8.hash
  This type is subset of object.
  It is association array like
   {'key' : 'value'}

 9.enum
  This type is subset of string.
  It is allowed only special value.
  For instance
   ["strawberry",'apple','orange','pear']
  at this time,"melon" is not allowed though "strawberry" and "pear".
  The value defined by double quart(") is default value.
  If list of values when all are single quart('),it is allowed other value.

---- >8 ---- Tear off along dotted line ---- >8 ----

C.core
 This objects are core of Mutan.

 1.DomUtils (/mutan/lib/domUtils.js > /mutan/core.js)
  This object is DOM control object.
  You can access to this object by DomUtils.

  void appendEvent(object obj,string eveName,function fnc,enum priority)
   obj         : target object
   eveName     : event name (without "on" before event name)
   fnc         : callback function
   priority    : priority of this callback function ['first',"normal",'last']
   return      : none return value
   see         : DomUtils::raiseEvent
   description : This method is add callback function to target object.
                 Event name is allowed any value.

  void clearCache(string targetId)
   targetId    : ID of target object
   return      : none return value
   see         : DomUtils::createObject,DomUtils::getObject
   description : Cache of target object is cleared by this method.
                 If targetID isn't defined,all cache is cleared.

  object createObject(string targetId,string type,hash params,hash styles)
   targetId    : ID of target object
   type        : object type of target object
   params      : special parameter list of target object
   styles      : special style list of target object
   return      : created object
   see         : DomUtils::clearCache,DomUtils::getObject
   description : This method is wrapper of createElement.
                 This create new object.

  object getObject(targetId)
   targetId    : ID of target object
   return      : target object
   see         : DomUtils::clearCache,DomUtils::createObject
   description : This method is wrapper of getElementById.
                 This method result is cached.

  object getOffsetFromWindow(object obj)
   obj         : target object
   return      : {'x' : x-offset,'y' : y-offset'}
   see         : this hasn't relative object
   description : This method is deprecated.

  void init(void)
   arguments   : none arguments value
   return      : none return value
   see         : window::onload
   description : This method is initialize this object.
                 You will not call this method.

  void raiseEvent(object obj,string eveName,object args)
   obj         : target object
   eveName     : event name (without "on" before event name)
   args        : arguments of callback function
   return      : none return value
   see         : DomUtils::appendEvent
   description : This method executes callback functions added by appendEvent.
                 Order is decided by priority.
                 This method is wrapper of onXXX,but you can call original event too.


 2.HttpRequestUtils (/mutan/lib/httpRequestUtils.js > /mutan/core.js)
  This object is XMLHttpRequest contol object.
  You can access to this object by HttpRequestUtils.

  string encodeString(hash val)
   val         : list of encode target data
   return      : val data that is URL encoded and is joined
   see         : XMLHttpRequest::send
   description : This method is wrapper of encodeURIComponent.

  object getClient(enum mod,string adr)
   mod         : sending method name ['get','post','head']
   adr         : target URI
   return      : XMLHttpRequest object
   see         : XMLHttpRequest
   description : This method is created XMLHttpRequest object with charset header and callback function.
                 Callback function is execute object.callbacks['response code'] function.
                 object.callbacks['unknown'] is fallback function.
                 Arguments of callback function is {'txt' : responseText,'xml' : responseXML}.

  void init(void)
   arguments   : none arguments value
   return      : none return value
   see         : window::onload
   description : This method is initialize this object.
                 You will not call this method.

  void isUnknown(hash res)
   res         : {'txt','xml'}
   return      : none return value
   see         : HttpRequestUtils::getClient
   description : This method is fallback function.
                 You will not call this method.

  object parseJson(string txt)
   txt         : target JSON string
   return      : created object
   see         : XMLHttpRequest
   description : This method is parsed from JSON text to object.


 3.mConfig (/mutan/lib/mUtils.js > /mutan/core.js)
  This object is configure management object.
  You can access to this object by mUtils.config.

  string getConfig(string keyName)
   keyName     : target config name
   return      : setting value
   see         : mConfig::loadCustomConfig,mConfig::init,mConfig::setConfig
   description : This method is getting config value.
                 If same config name is setting,priority is 
                  action config & setting by setConfig > directory config > default value
                 action config & setting by setConfig is temporary setting.

  void init(void)
   arguments   : none arguments value
   return      : none return value
   see         : mUtils::init
   description : This method is initialize this object.
                 You will not call this method.

  void loadCustomConfig(string actionName,function func,object,args)
   actionName  : target action name
   func        : callback function for load completed
   args        : arguments of callback function
   return      : none return value
   see         : mController::doAction
   description : This method load action config.
                 You will not call this method.

  void resetConfig(void)
   arguments   : none arguments value
   return      : none return value
   see         : mController::doAction,mConfig::getConfig,mConfig::setConfig
   description : action config and setting by setConfig is cleared by this method.

  void setConfig(string keyName,string value)
   keyName     : target config name
   value       : config value
   return      : none return value
   see         : mConfig::getConfig,mConfig::resetConfig
   description : This method is setting to config value.
                 This config value is high priority,but you can use only this action.


 4.mController (/mutan/lib/mController.js > /mutan/core.js)
  This object is main controller of Mutan.
  You can access to this object by mController.

  void appendActionChain(array actionChain)
   actionChain : array of target action name
   return      : none return value
   see         : mAction,mController::doAction
   description : action is added to action chain array by this method.

  void doAction(string actionName,object args)
   actionName  : action name
   args        : arguments of this action
   return      : none return value
   see         : mAction,mModel
   description : This method is execute action.

  void init(void)
   arguments   : none arguments value
   return      : none return value
   see         : window::load
   description : This method is initialize this object.
                 You will not call this method.


 5.mUtils (/mutan/lib/mUtils.js > /mutan/core.js)
  This object is utility of Mutan.
  You can access to this object by mUtils

  config : mConfig
   configure management object

  filter : hash {'key' : mFilter}
   output filter function hash

  language : mLanguage
   language management object

  logger : mLogger
   log management object

  validator : hash {'key' : mValidator}
   validation function hash

  context : hash {'key' : object}
   global variable space


  void appendFilter(hash filters)
   filters     : hash of filter functions
   return      : none return value
   see         : mFilter,mUtils::doFilter
   description : filter function is added to filter hash by this method.

  void appendValidator(hash validators)
   validators  : hash of validate functions
   return      : none return value
   see         : mValidator,mUtils::doValidate
   description : validate function is added to validator hash by this method.

  object doFilter(string value,array filter,hash params)
   value       : string of filtering target
   filter      : array of filter name strings
   params      : hash of filtering parameters
   return      : filtered value
   see         : mModel::show,mFilter,mUtils.appendFilter
   description : This method is execute filtering.

  object doTypeSafe(enum type,string value)
   type        : target type ['bool','int','float','string',"text"]
   value       : string of type safe target
   return      : type argument value
   see         : mModel::set
   description : This method is execute type safe.
                 string type in not allowed new line,but text type is allowed any character.

  object doValidate(string value,array validator,hash params)
   value       : string of validate target
   validator   : array of validator name strings
   params      : hash of validation parameters
   return      : validated value
   see         : mModel::set,mValidator,mUtils::appendValidator
   description : This method is execute validation.

  void init(void)
   arguments   : none arguments value
   return      : none return value
   see         : window::load
   description : This method is initialize this object.
                 You will not call this method.

  void loadFile(string file,bool mode)
   file        : string of target file name
   mode        : input mode (true : string mode,false : object mode)
   return      : none return value
   see         : HttpRequestUtils,mUtils::waitResponse
   description : Target file is loaded by this method.
                 This method result is cached.

  void renderLog(enum level,bool flag)
   level       : message filtering level ['memo','notice','warning','critical']
   flag        : message filtering flag
   return      : none return value
   see         : mLogger
   description : Output log message to mutanLogBox by this method.
                 If flag is true,message of high level or more is matched and output.
                 You can output original level.

  void waitResponse(object pObj,hash list,function fnc,object args)
   pObj        : parent object for mapping
   list        : list of mapping {'key' : 'file name'}
   fnc         : callback function for mapping completed
   args        : arguments of callback function
   return      : none return value
   see         : mUtils::loadFile
   description : This method is wait for request response.
                 When loading completed,object is mapped to pObj.

---- 8< ---- Tear off along dotted line ---- 8< ----

D.utility
 This object is replaceable utility.

 1.mFilter (/mutan/lib/abstract/abstractFilter.js > /mutan/lib/filter.js)
  This object work is do filtering.
  You can access to this object by mUtils::filter.

  mHtmlFilter
   escape html character entity

  mUnHtmlFilter
   unescape html character entity

  mNewLineFilter
   convert from new line to br tag

  mUnNewLineFilter
   convert from br tag to new line


 2.mLanguage (/mutan/lib/interface/interfaceLanguage.js > /mutan/lib/language.js)
  This object is language management object.
  You can access to this object by mUtils::language.

  string getLanguage(string keyName,hash opts)
   keyName     : tartget language name
   opts        : replacement option
   return      : setting value
   see         : mLanguage::init,mLanguage::loadDirLanguage
   description : This method is getting language value.
                 When there is {"option key"},{"option key"} replace to {"option value"}.

  void init(void)
   arguments   : none arguments value
   return      : none return value
   see         : mUtils::init
   description : This method is initialize this object.
                 You will not call this method.

  void loadCustomLanguage(string actionName,function func,object args)
   actionName  : target action name
   fnc         : callback function for loading completed
   args        : arguments of callback function
   return      : none return value
   see         : mController::doAction,mLanguage::getLanguage
   description : This method is load language file for action.

  void loadDirLanguage(function func,object args)
   func        : callback function for loading completed
   args        : arguments of callback function
   return      : none return value
   see         : mUtils::init,mLanguage::getLanguage
   description : This method is load language file for directory.


 3.mLogger (/mutan/lib/interface/interfaceLogger.js > /mutan/lib/logger.js)
  This object is log management object.
  You can access to this object by mUtils::logger

  array getMessage(enum level,bool flag)
   level       : message filtering level ['memo','notice','warning','critical']
   flag        : message filtering flag
   return      : message object array
   see         : mLogger::setMessage,mLogger::setTime
   description : This method is getting message object array.
                 If flag is true,message of high level or more is matched and get.
                 You can get original level.

  string getMessageString(enum level,bool flag)
   level       : message filtering level ['memo','notice','warning','critical']
   flag        : message filtering flag
   return      : message object array
   see         : mLogger::getMessage,mLogger::setMessage,mLogger::setTimer
   description : This method is getting message string.
                 If flag is true,message of high level or more is matched and get.
                 You can get original level.

  int getTimer(string timerName)
   timerName   : target timer name
   return      : elapsed time from started
   see         : mLogger::setTimer
   description : Get elapsed time from started by this method.

  void init(void)
   arguments   : none arguments value
   return      : none return value
   see         : mUtils::init
   description : This method is initialize this object.
                 You will not call this method.

  void setMessage(enum level,string path,string section,string message)
   level       : message level
   path        : object name where message is raised
   section     : point name where message is raised
   message     : string of message
   return      : none return value
   see         : mLogger::getMessage
   description : This method is register message.
                 You can set original level.

  void setTimer(string timerName)
   timerName   : target timer name
   return      : none return value
   see         : mLogger::getTimer
   description : Timer is started by this method.
                 If timer is start,timer is reset.


 4.mValidator (/mutan/lib/abstract/abstractValidator.js > /mutan/lib/validator.js)
  This object work is validation.

  mAlphabetValidator
   allowed only alphabet

  mFilterValidator
   filter     : filtering pattern
   filterFlag : filtering option flag
   If filtering pattern is not included,it allowed

  mLengthRangeValidator
   minLength : minimum length
   maxLength : maximum length
   allowed string length is between minLength and maxLength

  mMaskValidator
   mask     : mask pattern
   maskFlag : mask option flag
   

  mMaxLengthValidator
   maxLength : maximum length
   allowed string length is or less maxLength

  mMaxValueValidator
   max : maximum value
   allowed value is or less max

  mMinLengthValidator
   minLength : minimum length
   allowed string length is more than minLength

  mMinValueValidator
   min : minimum value
   allowed value is more than min

  mNumberValidator
   allowed only numeric

  mEnumValidator
   enumArray : allowed list array
   If value in enumArray, it allowed

  mRequireValidator
   allowed not null

  mValueRengeValidator
   min : minimum value
   max : maximum value
   allowed value is between min and max

---- >8 ---- Tear off along dotted line ---- >8 ----

E.render
 This object work is do view process.

 1.mRender (/mutan/lib/interface/interfaceRender.js)
  This object is interface of render object.
  If you create original render, it should have this interface.

  void display(void)
   arguments   : none arguments value
   return      : none return value
   see         : mAction::executeViewXXXX,mRender::setRenderTarget,mRender::setRenderValue
   description : This method is display at result.

  void init(void)
   arguments   : none arguments value
   return      : none return value
   see         : mController::doAction
   description : This method is initialize this object.
                 You will not call this method.

  void setRenderTarget(object targetObject)
   targetObject : target object
   return       : none return value
   see          : mAction,mRender::display
   description  : This method is setting object for render.

 2.domRender (/mutan/render/domRender.js)
  This object work is appendChild to target object.
  This hasn't speciality method.

 3.dummyRender (/mutan/render/dummyRender.js)
  This object don't work, because this object is dummy.
  This hasn't speciality method.

 4.easyTemplateRender (/mutan/render/easyTemplateRender.js)
  This object have easy template function.
  This has special config at "template" and "templatePath".

  void setDelimiter(string leftDelemiter,string rightDelimiter)
   leftDelimiter  : string of left delimiter for split to variable
   rightDelimiter : string of right delimiter for split to variable
   return         : none return value
   see            : mRender::display,mRender::setRenderValue
   description    : This method is setting to delimiter.
                    Default setting is <{ and }>.

  void setTemplate(string file)
   file        : string of template file name
   return      : none return value
   see         : easyTemplateRender::setTemplatePath,mRender::display
   description : This method is setting to template.
                 Execute easyTemplateRender::setTemplatePath before executing this.
                 This method result is cached.

  void setTemplatePath(string path)
   path        : string of template path
   return      : none return value
   see         : easyTemplateRender::setTemplate
   description : This method is setting to template path.
                 This method executing before easyTemplateRender::setTemplate.

 5.formRender (/mutan/render/formRender.js)
  This object work is set to form node.
  This hasn't speciality method.

 6.hashRender (/mutan/render/hashRender.js)
  This object work is set to location.hash.
  This hasn't speciality method.

 7.htmlRender (/mutan/render/htmlRender.js)
  This object work is set to innerHTML of target object.
  This hasn't speciality method.

 8.queryRender (/mutan/render/queryRender.js)
  This object work is set to location.search.
  This hasn't speciality method.

---- 8< ---- Tear off along dotted line ---- 8< ----

F.request
 This object work is get input data from anywhere.

 1.mRequest (/mutan/lib/interface/interfaceRequest.js)
  This object is interface of request object.
  If you create original request, it should have this interface.

  void init(void)
   arguments   : none arguments value
   return      : none return value
   see         : mController::doAction
   description : This method is initialize this object.
                 You will not call this method.

  object get(string keyName)
   keyName     : string of target name
   return      : getting object
   see         : mAction,mModel
   description : This method work is get data of target.

 2.formRequest (/mutan/request/formRequest.js)
  This object is get input data from form object.
  This hasn't speciality method.

 3.hashRequest (/mutan/request/hashRequest.js)
  This object is get input data from location.hash.
  This hasn't speciality method.

 4.queryRequest (/mutan/request/queryRequest.js)
  This object is get input data from location.search.
  This hasn't speciality method.

---- >8 ---- Tear off along dotted line ---- >8 ----

G.action
 This object is executing action.

 1.mAction (/mutan/lib/abstractAction.js)
  This object is abstract of action object.
  executeViewXXX method mounts necessary number.

  string execute(mRequest request,object args)
   request     : request object
   args        : arguments from mController::doAction
   return      : view method name
   see         : mController::doAction,mRequest,mModel,mAction::executeXXX
   description : This method is main process of action.

  void executeViewError(mRender render)
   render      : render object
   return      : none return value
   see         : mAction::execute,mRender
   desctiption : This method is error process view.

  void executeViewIndex(mRender render)
   render      : render object
   return      : none return value
   see         : mAction::execute,mRender
   desctiption : This method is index process view.

  void executeViewInput(mRender render)
   render      : render object
   return      : none return value
   see         : mAction::execute,mRender
   desctiption : This method is input process view.

  void executeViewNone(mRender render)
   render      : render object
   return      : none return value
   see         : mAction::execute,mRender
   desctiption : This method is dummy process view.

  void executeViewSuccess(mRender render)
   render      : render object
   return      : none return value
   see         : mAction::execute,mRender
   desctiption : This method is success process view.

  void init(mModel model)
   model       : model object
   return      : none return value
   see         : mController::doAction,mModel
   description : This method is initialize this object.
                 You will not call this method.

---- 8< ---- Tear off along dotted line ---- 8< ----

H.model
 This object work is to define data property.

 1.mModel (/mutan/lib/abstract/acstractModel.js)
  This object is abstract of model object

  object get(string keyName)
   keyName     : string of target name
   return      : getting object
   see         : mAction,mModel::set
   description : This method work is get raw data.
                 If you used this data for display,mModel::show is more better.

  void init(mRequest request)
   model       : request object
   return      : none return value
   see         : mAction,mRequest
   description : This method is initialize this object.
                 You will not call this method.

  void initVar(enum type,string keyName,object value,array validator,array filter)
   type        : string of value type name ['bool','int','float',,'string','text']
   keyName     : string of data name
   value       : default value
   validator   : array of validator name
   filter      : array of filter name
   return      : none return value
   see         : mModel::set,mModel::show
   description : This method is to defined data format.

  void set(string keyName,object value)
   keyName     : string of data name
   value       : data value
   return      : none return value
   see         : mModel::get,mModel::initVar,mModel::show
   description : This method is setting to data value with validation.
                 If data is not valide,data value is null.

  object show(string keyName)
   keyName     : string of target name
   return      : getting object
   see         : mAction,mModel::set,mModel::initVar
   description : This method is get data with filter.
                 If you used this data for display,this method is more better than mModel::get.

---- >8 ---- Tear off along dotted line ---- >8 ----

A.はじめに
B.型について
 1.void
 2.bool
 3.int
 4.string
 5.array
 6.function
 7.object
 8.hash
 9.enum
C.core
 1.DomUtils
 2.HttpRequestUtils
 3.mConfig
 4.mController
 5.mUtils
D.utility
 1.mFilter
 2.mLanguage
 3.mLogger
 4.mValidator
E.render
 1.mRender
 2.domRender
 3.dummyRender
 4.easyTemplateRender
 5.formRender
 6.hashRender
 7.htmlRender
 8.queryRender
F.request
 1.mRequest
 2.formRequest
 3.hashRequest
 4.queryRequest
G.action
 1.mAction
H.model
 1.mModel





A.はじめに
 とりあえず各おぶじぇくとのpublicなめんば＆めそっどについて☆
 おぶじぇくとつりーは

 + root
    + DomUtils
    + HttpRequestUtils
    + mController
    |  + mRender
    |  + mRequest
    |  + mAction
    |     + mModel
    + mUtils
       + mConfig
       + array
       |  + mFilter
       + mLanguage
       + mLogger
       + array
       |  + mValidator
       + context

 こんなかんじのはずなのです☆ヾ（・ｘ・。【みかん

---- >8 ---- きりとり ---- >8 ----

B.型について
 実際には存在しない型があったりでjavascriptの型とはちょっと違うかもだけど，
 このどきゅめんとでは以下の型を使って説明してありますです☆

 1.void型
  型っていうのかびみょーなところだけど引数や返り値がからっぽのとき用

 2.bool型
  true か false でおなじみの型
  boolean なんて呼ぶときもあるけど短いので　ｄ（´ω｀；【みかん

 3.int型
  これまたおなじみの整数値おんり～な型

 4.string型
  これもいろんなところで見かける文字列型

 5.array型
  javascriptだと new Array() や [] で創れる配列型

 6.function型
  こーるばっくなんかで出てくる関数型

 7.object型
  言語仕様上ではぜんぶがおぶじぇくとなんてことはおいといて☆
  なんでもありな型？

 8.hash型
  object型の独自拡張みたいなかんじだけど
   {'key' : 'value'}
  なかんじで連想配列として使用するときに使う型

 9.enum型
  今度はstring型の独自拡張みたいなかんじだけど，
  特定の決められた値のみおっけぃな型
  例えば
   ["いちご",'りんご','みかん','なし']
  って値が決められていたら "いちご" や "なし" はおっけぃだけど，
  "めろん" はNGになりますです☆
  値の一覧でだぶるくぉーと(")で定義されている値はでふぉると値になります☆
  全部がしんぐるくぉーと(')のときは一覧以外の値でもだいじょーぶっぽいです☆

---- 8< ---- きりとり ---- 8< ----

C.core
 むぅたんのこあになるおぶじぇくと

 1.DomUtils (/mutan/lib/domUtils.js > /mutan/core.js)
  DOM関連のらっぱがめいんなおぶじぇくと
  DomUtils であくせすできますです

  void appendEvent(object obj,string eveName,function fnc,enum priority)
   obj      : 対象のおぶじぇくと
   eveName  : いべんと名(onは付けないこと)
   fnc      : こーるばっく関数
   priority : 優先度 ['first',"normal",'last']
   返り値   : なし
   関連項目 : DomUtils::raiseEvent
   説明     : 対象のおぶじぇくとにいべんとを追加します
              よくあるもの以外にも独自いべんとを定義することができますです☆

  void clearCache(string targetId)
   targetId : 対象のID
   返り値   : なし
   関連項目 : DomUtils::createObject,DomUtils::getObject
   説明     : 対象のおぶじぇくときゃっしゅを掃除します
              IDを指定しないときは全部まとめてお掃除されますです☆

  object createObject(string targetId,string type,hash params,hash styles)
   targetId : 対象のID
   type     : 生成したいおぶじぇくとの種類
   params   : 付加したいぱらめーたのりすと
   style    : 付加したいすたいる属性のりすと
   返り値   : 生成されたおぶじぇくと
   関連項目 : DomUtils::clearCache,DomUtils::getObject
   説明     : createElementのらっぱでおにうのおぶじぇくとを生成します
               {'key' : 'value'}
              なかんじで指定しておくと各種属性をぺったんしてくれますです☆
  
  object getObject(targetId)
   targetId : 対象のID
   返り値   : 取得できたおぶじぇくと
   関連項目 : DomUtils::clearCache,DomUtils::createObject
   説明     : なんていうか getElementById のらっぱ
              いちおう取得したおぶじぇくとをきゃっしゅしてりさいくるしますです☆

  hash getOffsetFromWindow(object obj)
   obj      : 対象のおぶじぇくと
   返り値   : {'x' : xOffset,'y' : yOffset} なhash
   関連項目 : なし
   説明     : 別ぷろじぇくとで実験的に実装したものの残骸でびみょー
              ぶらうざ差を吸収し切れてないのでするーってことで（´ω｀；【壁

  void init(void)
   引数     : なし
   返り値   : なし
   関連項目 : window::onload
   説明     : 初期化用のめそっど
              いちおう window::onload で呼んでるけどからっぽ
              っていうか自分で呼ぶことはないはず

  void raiseEvent(object obj,string eveName,object args)
   obj      : 対象のおぶじぇくと
   eveName  : 発生させるいべんと名
   args     : こーるばっく関数に渡す引数
   返り値   : なし
   関連項目 : DomUtils::appendEvent
   説明     : appendEventで追加したこーるばっく関数を実行する
              実行する順番は登録時のpriorityで決定しますです☆
              onXXXいべんとのらっぱだけど独自いべんとも発動できますです☆


 2.HttpRequestUtils (/mutan/lib/httpRequestUtils.js > /mutan/core.js)
  XMLHttpRequest関連のらっぱがめいんなおぶじぇくと
  HttpRequestUtils であくせすできますです

  string encodeString(hash val)
   val      : {'key' : 'value'} なかんじでえんこーどしたいでーたのりすと
   返り値   : val をURLえんこーどして結合した文字列
   関連項目 : XMLHttpRequest::send
   説明     : hashからURLえんこーどされた文字列を生成する
              postで送信するときのめっせーじなんかに使えるはず☆

  object getClient(enum mod,string adr)
   mod      : 送信めそっど ['get','post','head']
   adr      : 対象のあどれす
   返り値   : XMLHttpRequestおぶじぇくと
   関連項目 : XMLHttpRequest
   説明     : XMLHttpRequestおぶじぇくとを生成して，
               application/x-www-form-urlencoded; charset=UTF-8
              なへっだに readyState == 4 時のこーるばっくをせっとする
              これで取得したおぶじぇくとにれすぽんすこーどをkeyにして
               obj.callbacks['200'] = isOkCallbackFunction;
               obj.callbacks['404'] = isNotFoundCallbackFunction;
              なかんじでこーるばっくを追加すると自動的に呼んでくれますです☆
              callbacks['unknown'] は指定されたこーるばっくがなかったときに
              ふぉーるばっくとして実行されますです☆
              こーるばっくの引数には
               {'txt' : responseText,'xml' : responseXML}
              なかんじのhashが渡されますです☆

  void init(void)
   引数     : なし
   返り値   : なし
   関連項目 : ActiveXObject,window::onload
   説明     : 初期化用のめそっど
              IE用のXMLHttpRequestらっぱを生成する
              IE7ではXMLHttpRequestが実装されてるけど謎おぶじぇくとで
              拡張できないので気にせず上書きしちゃいます☆
              っていうか自分で呼ぶことはないはず

  void isUnknown(hash res)
   res      : {'txt','xml'} なhash
   返り値   : なし
   関連項目 : HttpRequestUtils::getClient
   説明     : 読み込み完了時のふぉーるばっくなこーるばっく
              なんにもしないけど・・・
              っていうか自分で呼ぶことはないはず

  object parseJson(string txt)
   txt      : ぱーすしたい文字列
   返り値   : 生成されたおぶじぇくと
   関連項目 : XMLHttpRequest
   説明     : 文字列をおぶじぇくとにぱーすする
              できればeval使わないでぱーすできるとすてきなんだけど・・・
              っていうかあんまりいらないかも・・・


 3.mConfig (/mutan/lib/mUtils.js > /mutan/core.js)
  いろんな設定を出し入れするおぶじぇくと
  mUtils::config であくせすできますです

  string getConfig(string keyName)
   keyName  : 取得したい値
   返り値   : 設定されてる値
   関連項目 : mConfig::loadCustomConfig,mConfig::init,mConfig::setConfig
   説明     : keyNameに設定されている値を取得する
              設定には３種類あるけど，おんなじ値が設定されているときの優先順位は
               action設定 & setConfigで設定 > dir設定 > でふぉると値
              なかんじになってますです☆
              action設定 & setConfigはaction毎に使い捨てな設定になりますです☆

  void init(void)
   引数     : なし
   返り値   : なし
   関連項目 : mUtils::init,mConfig::getConfig
   説明     : 初期化用のめそっど
              でふぉると設定をせっとする
              っていうか自分で呼ぶことはないはず

  void loadCustomConfig(string actionName,function func,object args)
   actionName : あくてぃぶなaction名
   func       : 読み込み完了時にこーるばっくされる関数
   args       : こーるばっく関数に渡す引数
   返り値     : なし
   関連項目   : mController::doAction
   説明       : 実装するactionにあわせた設定を読み込む
                っていうか自分で呼ぶことはないはず

  voied resetConfig(void)
   引数     : なし
   返り値   : なし
   関連項目 : mController::doAction,mConfig::getConfig,mConfig::setConfig
   説明     : action設定 & setConfigでせっとした値をりせっとする
              っていうか自分で呼ぶことあるのかなぁ？

  void setConfig(string keyName,string value)
   keyName  : 設定のkey
   value    : 設定する値
   返り値   : なし
   関連項目 : mConfig::getConfig,mConfig::resetConfig
   説明     : 指定したkeyに値をせっとする
              優先順位としては最優先だけど基本的にそのaction内限定


 4.mController (/mutan/lib/mController.js > /mutan/core.js)
  あくしょんの道案内をするおぶじぇくと
  mController であくせすできますです

  void appendActionChain(array actionChain)
   actionChain : 追加したいあくしょん名の配列
   返り値      : なし
   関連項目    : mAction,mController::doAction
   説明        : 指定されたactionの配列をactionChainに追加する

  void doAction(string actionName,args)
   actionName : 実行するaction名
   args       : あくしょんに渡す引数
   返り値     : なし
   関連項目   : mAction,mModel
   説明       : 指定されたactionを実行する

  void init(void)
   引数     : なし
   返り値   : なし
   関連項目 : window::onload
   説明     : 初期化用のめそっど
              っていうか自分で呼ぶことはないはず


 5.mUtils (/mutan/lib/mUtils.js > /mutan/core.js)
  むぅたんを動かすのに便利かもしれないものを詰め合わせたおぶじぇくと
  mUtils であくせすできますです

  config : mConfig
   path や使用言語などの設定情報の管理をしてくれるおぶじぇくと

  filter : hash {'key' : mFilter}
   出力時にお世話になるふぃるたりんぐをしてくれるおぶじぇくとの hash

  language : mLanguage
   言語ふぁいるの管理をしてくれるおぶじぇくと

  logger : mLogger
   でばっぐ情報を管理してくれるおぶじぇくと

  validator : hash {'key' : mValidator}
   入力ちぇっく時にお世話になるばりでーしょんをしてくれるおぶじぇくとの hash

  context : hash {'key' : object}
   各あくしょん共通で使いたいものを入れておくもの
   window にぺちぺち追加してもいいけど，できるだけほかのものに影響しないように


  void appendFilter(hash filters)
   filters  : ふぃるたりすと {'name' : filterFunction}
   返り値   : なし
   関連項目 : mFilter,mUtils::doFilter
   説明     : ふぃるた関数を追加する

  void appendValidator(hash validators)
   filters  : ばりでーしょんりすと {'name' : validatorFunction}
   返り値   : なし
   関連項目 : mValidator,mUtils::doValidator
   説明     : ばりでーしょん関数を追加する

  object doFilter(string value,array filter,hash params)
   value    : ふぃるたりんぐ対象の値
   filter   : ふぃるた名の配列
   params   : ふぃるた関数に渡す引数
   返り値   : ふぃるたりんぐされた値
   関連項目 : mModel::show,mFilter,mUtils::appendFilter
   説明     : ふぃるたりんぐを実行する

  object doTypeSafe(enum type,string value)
   type     : 対象の型 ['bool','int','float','string',"text"]
   value    : たいぷせ～ふ対象の値
   返り値   : type で指定したたいぷ
   関連項目 : mModel::set
   説明     : 指定した型に変換する
              string は改行なしで text は改行も使用可能

  object doValidate(string value,array validator,hash params)
   value     : ばりでーしょん対象の値
   validator : ばりでーた名の配列
   params    : ばりでーしょん関数に渡す引数
   返り値    : ばりでーしょんされた値
   関連項目  : mModel::set,mValidator,mUtils::appendValidator
   説明      : ばりでーしょんを実行する

  void init(void)
   引数     : なし
   返り値   : なし
   関連項目 : window::onload
   説明     : 初期化用のめそっど
              っていうか自分で呼ぶことはないはず

  void loadFile(string file,bool mode)
   file     : ふぁいる名
   mode     : 入力もーど(true : 文字列もーど,false : おぶじぇくともーど)
   返り値   : なし
   関連項目 : HttpRequestUtils,mUtils::waitResponse
   説明     : 指定されたふぁいるを読み込む
              mode が true なら文字列として，false ならおぶじぇくとに変換します
              読み込まれたでーたはきゃっしゅします

  void renderLog(enum level,bool flag)
   level    : ふぃるたれべる ['memo','notice','warning','critical']
   flag     : ふぃるたふらぐ
   返り値   : なし
   関連項目 : mLogger
   説明     : ろぐを出力する
              flag が true のときは指定れべるより高いめっせーじも出力します
              ろぐが記録されていれば独自のれべるを指定することもできますです

  void waitResponse(object pObj,hash list,function fnc,object args)
   pObj     : まっぴんぐする親おぶじぇくと
   list     : まっぴんぐりすと {'key' : 'file name'}
   fnc      : 読み込み完了時にこーるばっくする関数
   args     : こーるばっく関数に渡す引数
   返り値   : なし
   関連項目 : mUtils::loadFile
   説明     : 指定したでーたの読み込みが完了するのを待つ
              読み込んだでーたは pObj に list の key 項目でまっぴんぐされますです


---- >8 ---- きりとり ---- >8 ----

D.utility
 ここからは換装可能なおぶじぇくとだけど，まずはあると便利かもしれないもの

 1.mFilter (/mutan/lib/abstract/abstractFilter.js > /mutan/lib/filter.js)
  実際にふぃるたりんぐをしてくれるおぶじぇくと
  mUtils::filter であくせすできますです

  mHtmlFilter
   "&" や "<" みたいのをえすけーぷするもの

  mUnHtmlFilter
   "&amp;" や "&gt;" みたいのを元に戻してくれるもの

  mNewLineFilter
   改行を "<br />" に変換してくれるもの

  mUnNewLineFilter
   "<br />" を改行に変換してくれるもの


 2.mLanguage (/mutan/lib/interface/interfaceLanguage.js > /mutan/lib/language.js)
  言語ふぁいるの管理をしてくれるもの
  mUtils::language であくせすできますです

  string getLanguage(string keyName,hash opts)
   keyName  : 取得したい値
   opts     : 置き換える文字列の hash
   返り値   : 設定されている値
   関連項目 : mLanguage::init,mLanguage::loadDirLanguage
   説明     : 設定されてる文字列を取得する
              取得するついでに{optsのきー} を optsの値 に置き換えますです

  void init(void)
   引数     : なし
   返り値   : なし
   関連項目 : mUtils::init
   説明     : 初期化用めそっど
              っていうか自分で呼ぶことはないはず

  void loadCustomLanguage(string actionName,function func,object args)
   actionName : あくしょん名
   func       : 読み込み完了時に呼ばれるこーるばっく関数
   args       : こーるばっく関数に渡す引数
   返り値     : なし
   関連項目   : mController::doAction,mLanguage::getLanguage
   説明       : あくしょん用の言語ふぁいるを読み込む

  void loadDirLanguage(function func,object args)
   func     : 読み込み完了時に呼ばれるこーるばっく関数
   args     : こーるばっく関数に渡す引数
   返り値   : なし
   関連項目 : mUtils::init,mLanguage::getLanguage
   説明     : でぃれくとり用の言語ふぁいるを読み込む


 3.mLogger (/mutan/lib/interface/interfaceLogger.js)
  処理時間やめっせーじろぐを管理してくれるもの

  array getMessage(enum level,bool flag)
   level    : ふぃるたれべる ['memo','notice','warning','critical']
   flag     : ふぃるたふらぐ
   返り値   : めっせーじの配列
   関連項目 : mLogger::setMessage,mLogger::setTimer
   説明     : 記録されているめっせーじを配列で取得する

  string getMessageString(enum level,bool flag)
   level    : ふぃるたれべる ['memo','notice','warning','critical']
   flag     : ふぃるたふらぐ
   返り値   : めっせーじを整形した文字列
   関連項目 : mLogger::getMessage,mLogger::setMessage,mLogger::setTimer
   説明     : 記録されているめっせーじを文字列に整形して取得する

  int getTimer(string timerName)
   timerName : 計測したいたいまー名
   返り値    : 経過時間
   関連項目  : mLogger::setTimer
   説明      : timerName で指定されたたいまーの経過時間を取得する

  void init(void)
   引数     : なし
   返り値   : なし
   関連項目 : mUtils::init
   説明     : 初期化用のめそっど
              っていうか自分で呼ぶことはないはず

  void setMessage(enum level,string path,string section,string message)
   level    : めっせーじれべる ['memo','notice','warning','critical']
   path     : めっせーじが発生したおぶじぇくと
   section  : めっせーじが発生したぽいんと
   message  : めっせーじ
   返り値   : なし
   関連項目 : mLogger::getMessage
   説明     : めっせーじを登録する
              れべるは独自で設定することもできる

  void setTimer(string timerName)
   timerName : すたーとしたいたいまー名
   返り値    : なし
   関連項目  : mLogger::getTimer
   説明      : timerName で指定されたたいまーの計測を開始する
               すでに開始しているときはりせっとする


 4.mValidator (/mutan/lib/abstract/abstractValidator.js > /mutan/lib/validator.js)
  ばりでーしょんをしてくれるおぶじぇくと

  mAlphabetValidator
   あるふぁべっとおんりーならおっけぃ

  mFilterValidator
   filter     : ふぃるたりんぐぱたーん
   filterFlag : ふぃるたりんぐするときのふらぐ
   指定したぱたーんが含まれてなければおっけぃ

  mLengthRangeValidator
   minLength : 最小文字数
   maxLength : 最大文字数
   文字列の長さが指定範囲内ならおっけぃ

  mMaskValidator
   mask     : ますくぱたーん
   maskFlag : ますくふらぐ
   指定したぱたーんと一致したらおっけぃ

  mMaxLengthValidator
   maxLength : 最大文字数
   文字列の長さが指定した値以下ならおっけぃ

  mMaxValueValidator
   max : 最大値
   値が指定された値以下ならおっけぃ

  mMinLengthValidator
   minLength : 最小文字数
   文字列の長さが指定された値以上ならおっけぃ

  mMinValueValidator
   min : 最小値
   値が指定された値以上ならおっけぃ

  mNumberValidator
   数字おんりーならおっけぃ

  mEnumValidator
   enumArray : おっけぃな値の配列
   指定した値のどれかと一致したらおっけぃ

  mRequireValidator
   値が空っぽじゃなければおっけぃ

  mValueRengeValidator
   min : 最小値
   max : 最大値
   値が指定された範囲に入っていたらおっけぃ

---- 8< ---- きりとり ---- 8< ----

E.render
 処理結果を出力してくれるおぶじぇくと

 1.mRender (/mutan/lib/interface/interfaceRender.js)
  全部のれんだーの共通いんたーふぇいすになるもの
  独自れんだーを作成するときは最低限これだけのめそっどが必要になりますです

  void display(void)
   引数     : なし
   返り値   : なし
   関連項目 : mAction::executeViewXXXX,mRender::setRenderTarget,mRender::setRenderValue
   説明     : 結果を出力する

  void init(void)
   引数     : なし
   返り値   : なし
   関連項目 : mController::doAction
   説明     : 初期化用のめそっど
              自分で呼ぶことはまずないけどここで初期化処理をしますです

  void setRenderTarget(object targetObject)
   targetObject : 対象になるおぶじぇくと
   返り値       : なし
   関連項目     : mAction,mRender::display
   説明         : 表示対象をせっとする

  void setRenderValue(object obj)
   obj      : せっとするおぶじぇくと
   返り値   : なし
   関連項目 : mAction,mRender::display
   説明     : 表示に必要なでーたをせっとする


 2.domRender (/mutan/render/domRender.js)
  指定したおぶじぇくとに設定されたおぶじぇくとを追加するもの
  特殊な機能はとくになし


 3.dummyRender (/mutan/render/dummyRender.js)
  だみー用で特になんにもしてくれないもの
  特殊な機能はとくになし


 4.easyTemplateRender (/mutan/render/easyTemplateRender.js)
  特定の変数をせっとした値と置き換えるだけのお手軽てんぷれーとの使えるもの
  template，templatePathの設定を利用することができますです☆

  void setDelimiter(string leftDelimiter,string rightDelimiter)
   leftDelimiter  : 変数名の左側の区切り文字
   rightDelimiter : 変数名の右側の区切り文字
   返り値         : なし
   関連項目       : mRender::display,mRender::setRenderValue
   説明           : 変数名の左右につける区切り文字をせっとする
                    でふぉるとでは <{変数名}> こんなかんじ

  void setTemplate(string file)
   file     : せっとするてんぷれーとふぁいる名
   返り値   : なし
   関連項目 : easyTemplateRender::setTemplatePath,mRender::display
   説明     : 使用するてんぷれーとをせっとする
              てんぷれーとぱすをせっとしてから実行すること
              せっと後すぐに読み込み開始しますです
              読み込んだてんぷれーとはきゃっしゅしますです

  void setTemplatePath(string path)
   path     : てんぷれーとふぁいるの置いてあるぱす
   返り値   : なし
   関連項目 : easyTemplateRender::setTemplate
   説明     : てんぷれーとふぁいるの置いてあるぱすをせっとする
              てんぷれーとふぁいるよりも先にせっとすること


 5.formRender (/mutan/render/formRender.js)
  ふぉーむに設定されたでーたを流し込むもの
   {'hunihuni' : 'uniuni','munimuni' : 'punipuni'}
  ってでーたなら
   ID が "hunihuni" ののーどに "uniuni"
   ID が "munimuni" ののーどに "punipuni"
  なかんじのでーたを設定しますです
  特殊な機能は特になし


 6.hashRender (/mutan/render/hashRender.js)
  はっしゅに設定されたでーたを流し込むもの
   {'hunihuni' : 'uniuni','munimuni' : 'punipuni'}
  ってでーたなら
   #hunihuni=uniuni&munimuni=punipuni
  なかんじのはっしゅが設定されますです
  特殊な機能はとくになし


 7.htmlRender (/mutan/render/htmlRender.js)
  指定したおぶじぇくとの innerHTML に設定された値を流し込むもの
  特殊な機能はとくになし

 8.queryRender (/mutan/render.queryRender.js)
  くえり文字列付きのりんくを指定したおぶじぇくとにぺったんするもの
  navigationStringの設定を利用することができますです☆

---- >8 ---- きりとり ---- >8 ----

F.request
 いろんなとこからの入力を受け取ってくれるおぶじぇくと

 1.mRequest (/mutan/lib/interface/interfaceRequest.js)
  全部のりくえすとの共通いんたーふぇいすになるもの
  独自りくえすとを作成するときは最低限これだけのめそっどが必要になりますです

  void init(void)
   引数     : なし
   返り値   : なし
   関連項目 : mController::doAction
   説明     : 初期化用のめそっど
              自分で呼ぶことはまずないけどここで初期化処理をしますです

  object get(string keyName)
   keyName  : 取得したい項目名
   返り値   : 取得したおぶじぇくと
   関連項目 : mAction,mModel
   説明     : 指定したでーたを取得する
              どこからどんなでーたをどうやって取得するかは実装次第


 2.formRequest (/mutan/request/formRequest.js)
  ふぉーむからでーたを取得するもの
  特殊な機能はとくになし

 3.hashRequest (/mutan/request/hashRequest.js)
  はっしゅ文字列からでーたを取得するもの
   /index.html#hunihuni=uniuni&munimuni=punipuni
  ってりくえすとなら
   request.get('hunihuni') で "uniuni"
   request.get('munimuni') で "punipuni"
  なかんじで取得できるっぽい
  特殊な機能は特になし

 4.queryRequest (/mutan/request/queryRequest.js)
  くえり文字列からでーたを取得するもの
   /index.html?hunihuni=uniuni&munimuni=punipuni
  ってりくえすとなら
   request.get('hunihuni') で "uniuni"
   request.get('munimuni') で "punipuni"
  なかんじで取得できるっぽい
  特殊な機能は特になし

---- 8< ---- きりとり ---- 8< ----

G.action
 実際の処理が定義されているおぶじぇくと

 1.mAction (/mutan/lib/abstract/abstractAction.js)
  全部のあくしょんの元になるもの
  ほんとに最低限なら view はどれか１つでもおっけぃ
  逆に５種類で足りなければどんどん増設も可能☆

  string execute(mRequest request,object args)
   request  : りくえすとおぶじぇくと
   args     : mController::doAction から渡された引数
   返り値   : view あくしょんのめそっど名
   関連項目 : mController::doAction,mRequest,mModel,mAction::executeXXX
   説明     : あくしょんのめいん処理
              りくえすとを処理して view にぱすする

  void executeViewError(mRender render)
   render   : れんだーおぶじぇくと
   返り値   : なし
   関連項目 : mAction::execute,mRender
   説明     : えらーがあったときの処理
              でもexecuteとの連携さえ取れていればどんな名称でもおっけぃ

  void executeViewIndex(mRender render)
   render   : れんだーおぶじぇくと
   返り値   : なし
   関連項目 : mAction::execute,mRender
   説明     : でふぉるとの処理
              でもexecuteとの連携さえ取れていればどんな名称でもおっけぃ

  void executeViewInput(mRender render)
   render   : れんだーおぶじぇくと
   返り値   : なし
   関連項目 : mAction::execute,mRender
   説明     : 入力ふぉーむを表示するときの処理
              でもexecuteとの連携さえ取れていればどんな名称でもおっけぃ

  void executeViewNone(mRender render)
   render   : れんだーおぶじぇくと
   返り値   : なし
   関連項目 : mAction::execute,mRender
   説明     : なんにもしないときの処理
              でもexecuteとの連携さえ取れていればどんな名称でもおっけぃ

  void executeViewSuccess(mRender render)
   render   : れんだーおぶじぇくと
   返り値   : なし
   関連項目 : mAction::execute,mRender
   説明     : 正常に完了したときの処理
              でもexecuteとの連携さえ取れていればどんな名称でもおっけぃ

  void init(mModel model)
   model    : もでるおぶじぇくと
   返り値   : なし
   関連項目 : mController::doAction,mModel
   説明     : 初期化用のめそっど
              自分で呼ぶことはまずないけどここで初期化処理をしますです


---- >8 ---- きりとり ---- >8 ----

G.Model
 でーたの形式などが定義されているおぶじぇくと

 1.mModel (/mutan/lib/abstract/abstractModel.js)
  全部のもでるの元になるもの

  object get(string keyName)
   keyName  : 取得したい項目名
   返り値   : 取得したおぶじぇくと
   関連項目 : mAction,mModel::set
   説明     : せっとされているでーたをそのまま取得する
              表示用のでーたを取得するときは show でふぃるたをかけること

  void init(mRequest request)
   request  : りくえすとおぶじぇくと
   返り値   : なし
   関連項目 : mAction,mRequest
   説明     : 初期化用のめそっど
              自分で呼ぶことはまずないけどここで初期化処理をしますです

  void initVar(enum type,string keyName,object value,array validator,array filter)
   type      : でーたの型 ['bool','int','float','string','text']
   keyName   : でーたの項目名
   value     : でーたの初期値
   validator : でーたにかけるばりでーしょん名の配列
   filter    : でーたにかけるふぃるた名の配列
   返り値    : なし
   関連項目  : mModel::set,mModel::show
   説明      : でーたの書式を決定する

  void set(string keyName,object value)
   keyName  : でーたの項目名
   value    : でーたの値
   返り値   : なし
   関連項目 : mModel::get,mModel::initVar,mModel::show
   説明     : でーたをせっとする
              initvar で設定された型に合わせた変換とばりでーしょんがかけられる
              ばりでーしょんに失敗のときはでーたが空っぽになる

  object show(string keyName)
   keyName  : 取得したい項目名
   返り値   : 取得したおぶじぇくと
   関連項目 : mAction,mModel::set,mModel::initVar
   説明     : せっとされているでーたにふぃるたをかけて取得する
              initVar で設定された型に合わせたふぃるたがかけられる
              表示用のでーたはできるだけ get よりもこっちで取得すること


