You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ma...@apache.org on 2013/10/30 16:55:33 UTC

git commit: [flex-sdk] [refs/heads/develop] - Revert "Fix - FLEX-33852: Replace redundant RPCUIDUtil by optimized UIDUtil"

Updated Branches:
  refs/heads/develop 8cf504b21 -> 582a6bdff


Revert "Fix - FLEX-33852: Replace redundant RPCUIDUtil by optimized UIDUtil"

This reverts commit 8cf504b212f95b2018e2122ddafe31c268d2a6c2.


Project: http://git-wip-us.apache.org/repos/asf/flex-sdk/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-sdk/commit/582a6bdf
Tree: http://git-wip-us.apache.org/repos/asf/flex-sdk/tree/582a6bdf
Diff: http://git-wip-us.apache.org/repos/asf/flex-sdk/diff/582a6bdf

Branch: refs/heads/develop
Commit: 582a6bdff267dc6d6ef8d2af09612715fc80ba8b
Parents: 8cf504b
Author: mamsellem <ma...@systar.com>
Authored: Wed Oct 30 16:54:29 2013 +0100
Committer: mamsellem <ma...@systar.com>
Committed: Wed Oct 30 16:54:29 2013 +0100

----------------------------------------------------------------------
 .../rpc/bundles/de_DE/docs/mx.utils.xml         |  41 ++-
 .../rpc/bundles/fr_FR/docs/mx.utils.xml         |  40 ++-
 .../rpc/bundles/ja_JP/docs/mx.utils.xml         |  40 ++-
 .../rpc/bundles/ru_RU/docs/mx.utils.xml         |  40 ++-
 .../rpc/bundles/zh_CN/docs/mx.utils.xml         |  40 ++-
 .../mx/messaging/messages/AbstractMessage.as    |  12 +-
 .../src/mx/messaging/messages/AsyncMessage.as   |   7 +-
 .../projects/rpc/src/mx/utils/RPCUIDUtil.as     | 274 +++++++++++++++++++
 8 files changed, 478 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/582a6bdf/frameworks/projects/rpc/bundles/de_DE/docs/mx.utils.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/rpc/bundles/de_DE/docs/mx.utils.xml b/frameworks/projects/rpc/bundles/de_DE/docs/mx.utils.xml
index a7f5662..465adca 100644
--- a/frameworks/projects/rpc/bundles/de_DE/docs/mx.utils.xml
+++ b/frameworks/projects/rpc/bundles/de_DE/docs/mx.utils.xml
@@ -384,5 +384,42 @@
    </apiDesc></apiClassifierDetail><apiOperation id="mx.utils:RpcClassAliasInitializer:registerClassAliases"><apiName>registerClassAliases</apiName><shortdesc>
      Wenn eine Anwendung die Flex UI-Klassen, die den [RemoteClass(alias="")]-Bootstrapcode verarbeiten, nicht verwendet, registriert diese Funktion alle Klassen für die AMF-Serialisierung, die die Flex RPC-Bibliothek benötigt.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="2.5"/><apiTool description="" name="Flex" version="4.5"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiStatic/><apiReturn><apiType value="void"/></apiReturn></apiOperationDef><apiDesc>
      Wenn eine Anwendung die Flex UI-Klassen, die den <codeph>[RemoteClass(alias="")]</codeph>-Bootstrapcode verarbeiten, nicht verwendet, registriert diese Funktion alle Klassen für die AMF-Serialisierung, die die Flex RPC-Bibliothek benötigt.
-           </apiDesc></apiOperationDetail></apiOperation></apiClassifier>
-   </apiPackage>
\ No newline at end of file
+           </apiDesc></apiOperationDetail></apiOperation></apiClassifier><apiClassifier id="mx.utils:RPCUIDUtil"><apiName>RPCUIDUtil</apiName><shortdesc>
+  Die RPCUIDUtil-Klasse ist eine Kopie von UIDUtil, aus der Funktionen entfernt wurden, die zu Abhängigkeitsproblemen führen, wenn sich RPC-Meldungen in einem Bootstrap Loader befinden.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/><apiPlatform description="" name="AIR" version="1.1"/><apiTool description="" name="Flex" version="3"/></apiVersion></asMetadata></prolog><apiClassifierDetail><apiClassifierDef><apiAccess value="public"/><apiStatic/><apiBaseClassifier>Object</apiBaseClassifier></apiClassifierDef><apiDesc>
+  Die RPCUIDUtil-Klasse ist eine Kopie von UIDUtil, aus der Funktionen entfernt wurden, die zu Abhängigkeitsproblemen führen, wenn sich RPC-Meldungen in einem Bootstrap Loader befinden.
+  
+  </apiDesc></apiClassifierDetail><apiOperation id="mx.utils:RPCUIDUtil:createUID"><apiName>createUID</apiName><shortdesc>
+      Generiert eine UID (eindeutiger Bezeichner) mithilfe des Pseudozufallszahl-Generators von ActionScript und der aktuellen Uhrzeit.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/><apiPlatform description="" name="AIR" version="1.1"/><apiTool description="" name="Flex" version="3"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiStatic/><apiReturn><apiDesc>Die neu erstellte UID.
+      
+      </apiDesc><apiType value="String"/></apiReturn></apiOperationDef><apiDesc>
+      Generiert eine UID (eindeutiger Bezeichner) mithilfe des Pseudozufallszahl-Generators von ActionScript und der aktuellen Uhrzeit.
+     
+      <p>Die UID weist das Format <codeph>"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"</codeph> auf, wobei X einem hexadezimalen Zeichen (0-9, A-F) entspricht.</p>
+     
+      <p>Diese UID ist nicht global eindeutig, stellt jedoch die beste mögliche Lösung ohne Player-Unterstützung für die UID-Generation dar.</p>
+     
+      </apiDesc></apiOperationDetail></apiOperation><apiOperation id="mx.utils:RPCUIDUtil:fromByteArray"><apiName>fromByteArray</apiName><shortdesc>
+     Konvertiert eine als ByteArray kodierte 128-Bit-UID in eine Stringdarstellung.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/><apiPlatform description="" name="AIR" version="1.1"/><apiTool description="" name="Flex" version="3"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiStatic/><apiReturn><apiDesc>Stringdarstellung der UID oder null, wenn kein gültiges ByteArray verfügbar ist.
+      
+      </apiDesc><apiType value="String"/></apiReturn><apiParam><apiItemName>ba</apiItemName><apiType value="flash.utils:ByteArray"/><apiDesc>ByteArray mit einer Länge von 16 Byte zur Darstellung einer 128-Bit-UID.
+     
+     </apiDesc></apiParam></apiOperationDef><apiDesc>
+     Konvertiert eine als ByteArray kodierte 128-Bit-UID in eine Stringdarstellung. Das Format entspricht dem durch createUID generierten Format. Wenn kein geeignetes ByteArray verfügbar ist, wird null zurückgegeben.
+     
+     </apiDesc></apiOperationDetail></apiOperation><apiOperation id="mx.utils:RPCUIDUtil:isUID"><apiName>isUID</apiName><shortdesc>
+     Eine Dienstprogrammmethode, um zu überprüfen, ob ein Stringwert einen ordnungsgemäß formatierten UID-Wert enthält.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/><apiPlatform description="" name="AIR" version="1.1"/><apiTool description="" name="Flex" version="3"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiStatic/><apiReturn><apiDesc>Gibt „true“ zurück, wenn der Wert als UID formatiert ist.
+      
+      </apiDesc><apiType value="Boolean"/></apiReturn><apiParam><apiItemName>uid</apiItemName><apiType value="String"/><apiDesc>Wert, bei dem die Formatierung als UID überprüft werden soll.
+     
+     </apiDesc></apiParam></apiOperationDef><apiDesc>
+     Eine Dienstprogrammmethode, um zu überprüfen, ob ein Stringwert einen ordnungsgemäß formatierten UID-Wert enthält. UID-Werte müssen dem von createUID() generierten Format entsprechen. Es werden also nur die Großbuchstaben von A bis F und die Ziffern von 0 bis 9 unterstützt.
+     
+     </apiDesc></apiOperationDetail></apiOperation><apiOperation id="mx.utils:RPCUIDUtil:toByteArray"><apiName>toByteArray</apiName><shortdesc>
+     Konvertiert einen als UID formatierten String in ein ByteArray.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/><apiPlatform description="" name="AIR" version="1.1"/><apiTool description="" name="Flex" version="3"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiStatic/><apiReturn><apiDesc>ByteArray mit einer Länge von 16 Byte zur Darstellung einer 128-Bit-UID oder null, wenn die UID nicht konvertiert werden konnte.
+      
+      </apiDesc><apiType value="flash.utils:ByteArray"/></apiReturn><apiParam><apiItemName>uid</apiItemName><apiType value="String"/><apiDesc>Stellt eine 128-Bit-UID dar.
+     
+     </apiDesc></apiParam></apiOperationDef><apiDesc>
+     Konvertiert einen als UID formatierten String in ein ByteArray. Die UID muss dem von createUID() generierten Format entsprechen. Andernfalls wird null zurückgegeben.
+     
+     </apiDesc></apiOperationDetail></apiOperation></apiClassifier></apiPackage>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/582a6bdf/frameworks/projects/rpc/bundles/fr_FR/docs/mx.utils.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/rpc/bundles/fr_FR/docs/mx.utils.xml b/frameworks/projects/rpc/bundles/fr_FR/docs/mx.utils.xml
index fc25c29..0456eea 100644
--- a/frameworks/projects/rpc/bundles/fr_FR/docs/mx.utils.xml
+++ b/frameworks/projects/rpc/bundles/fr_FR/docs/mx.utils.xml
@@ -384,4 +384,42 @@
    </apiDesc></apiClassifierDetail><apiOperation id="mx.utils:RpcClassAliasInitializer:registerClassAliases"><apiName>registerClassAliases</apiName><shortdesc>
      Au cas où une application n’utilise pas les classes de l’interface utilisateur de Flex qui traite le code de démarrage [RemoteClass(alias="")], cette fonction enregistre toutes les classes de sérialisation AMF requises par la bibliothèque RPC Flex.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="2.5"/><apiTool description="" name="Flex" version="4.5"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiStatic/><apiReturn><apiType value="void"/></apiReturn></apiOperationDef><apiDesc>
      Au cas où une application n’utilise pas les classes de l’interface utilisateur de Flex qui traite le code de démarrage <codeph>[RemoteClass(alias="")]</codeph>, cette fonction enregistre toutes les classes de sérialisation AMF requises par la bibliothèque RPC Flex.
-           </apiDesc></apiOperationDetail></apiOperation></apiClassifier></apiPackage>
\ No newline at end of file
+           </apiDesc></apiOperationDetail></apiOperation></apiClassifier><apiClassifier id="mx.utils:RPCUIDUtil"><apiName>RPCUIDUtil</apiName><shortdesc>
+  La classe RPCUIDUtil est une copie de la classe UIDUtil sans certaines fonctions qui causent des problèmes de dépendance lorsque des messages RPC sont placés dans un chargeur d’amorçage. </shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/><apiPlatform description="" name="AIR" version="1.1"/><apiTool description="" name="Flex" version="3"/></apiVersion></asMetadata></prolog><apiClassifierDetail><apiClassifierDef><apiAccess value="public"/><apiStatic/><apiBaseClassifier>Object</apiBaseClassifier></apiClassifierDef><apiDesc>
+  La classe RPCUIDUtil est une copie de la classe UIDUtil sans certaines fonctions qui causent des problèmes de dépendance lorsque des messages RPC sont placés dans un chargeur d’amorçage. 
+  
+  </apiDesc></apiClassifierDetail><apiOperation id="mx.utils:RPCUIDUtil:createUID"><apiName>createUID</apiName><shortdesc>
+      Génère un UID (identifiant unique) en fonction du générateur de nombres pseudo-aléatoire ActionScript et de l’heure actuelle. </shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/><apiPlatform description="" name="AIR" version="1.1"/><apiTool description="" name="Flex" version="3"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiStatic/><apiReturn><apiDesc>UID généré. 
+      
+      </apiDesc><apiType value="String"/></apiReturn></apiOperationDef><apiDesc>
+      Génère un UID (identifiant unique) en fonction du générateur de nombres pseudo-aléatoire ActionScript et de l’heure actuelle. 
+     
+      <p>L’UID est au format <codeph>"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"</codeph> où X est un chiffre hexadécimal (0-9, A-F).</p>
+     
+      <p>Cet UID ne sera pas réellement globalement unique, mais c’est ce que nous pouvons faire de mieux sans prise en charge de lecteur en matière de génération d’UID. </p>
+     
+      </apiDesc></apiOperationDetail></apiOperation><apiOperation id="mx.utils:RPCUIDUtil:fromByteArray"><apiName>fromByteArray</apiName><shortdesc>
+     Convertit un UID 128 bits codé en tant qu’objet ByteArray en représentation sous forme de chaîne. </shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/><apiPlatform description="" name="AIR" version="1.1"/><apiTool description="" name="Flex" version="3"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiStatic/><apiReturn><apiDesc>Représentation sous forme de chaîne de l’UID ou null si un objet ByteArray non valide est fourni. 
+      
+      </apiDesc><apiType value="String"/></apiReturn><apiParam><apiItemName>ba</apiItemName><apiType value="flash.utils:ByteArray"/><apiDesc>Objet ByteArray de 16 octets de longueur représentant un UID 128 bits. 
+     
+     </apiDesc></apiParam></apiOperationDef><apiDesc>
+     Convertit un UID 128 bits codé sous la forme d’un objet ByteArray en représentation de chaîne. Le format correspond à celui généré par createUID. Si un objet ByteArray n’est pas fourni, la valeur null est renvoyée. 
+     
+     </apiDesc></apiOperationDetail></apiOperation><apiOperation id="mx.utils:RPCUIDUtil:isUID"><apiName>isUID</apiName><shortdesc>
+     Méthode d’utilitaire pour vérifier si une valeur de chaîne représente une valeur UID correctement formatée. </shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/><apiPlatform description="" name="AIR" version="1.1"/><apiTool description="" name="Flex" version="3"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiStatic/><apiReturn><apiDesc>Renvoie true si la valeur est formatée en tant qu’UID. 
+      
+      </apiDesc><apiType value="Boolean"/></apiReturn><apiParam><apiItemName>uid</apiItemName><apiType value="String"/><apiDesc>Valeur à tester pour vérifier si elle est formatée en tant qu’UID. 
+     
+     </apiDesc></apiParam></apiOperationDef><apiDesc>
+     Méthode d’utilitaire pour vérifier si une valeur de chaîne représente une valeur UID correctement formatée. Les valeurs UID doivent être au format généré par createUID(), ce qui implique que sera créé que seuls A-F caractères en majuscule, ainsi que les chiffres 0 à 9 sont pris en charge. 
+     
+     </apiDesc></apiOperationDetail></apiOperation><apiOperation id="mx.utils:RPCUIDUtil:toByteArray"><apiName>toByteArray</apiName><shortdesc>
+     Convertit une chaîne au format UID en objet ByteArray. </shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/><apiPlatform description="" name="AIR" version="1.1"/><apiTool description="" name="Flex" version="3"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiStatic/><apiReturn><apiDesc>Objet ByteArray de 16 octets de longueur représentant les 128 bits de l’UID ou null si la conversion de l’UID est impossible. 
+      
+      </apiDesc><apiType value="flash.utils:ByteArray"/></apiReturn><apiParam><apiItemName>uid</apiItemName><apiType value="String"/><apiDesc>représentant un UID 128 bits 
+     
+     </apiDesc></apiParam></apiOperationDef><apiDesc>
+     Convertit une chaîne au format UID en objet ByteArray. L’UID doit être au format généré par createUID. Dans le cas contraire, null est renvoyé. 
+     
+     </apiDesc></apiOperationDetail></apiOperation></apiClassifier></apiPackage>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/582a6bdf/frameworks/projects/rpc/bundles/ja_JP/docs/mx.utils.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/rpc/bundles/ja_JP/docs/mx.utils.xml b/frameworks/projects/rpc/bundles/ja_JP/docs/mx.utils.xml
index d99ec36..d36db35 100644
--- a/frameworks/projects/rpc/bundles/ja_JP/docs/mx.utils.xml
+++ b/frameworks/projects/rpc/bundles/ja_JP/docs/mx.utils.xml
@@ -384,4 +384,42 @@
    </apiDesc></apiClassifierDetail><apiOperation id="mx.utils:RpcClassAliasInitializer:registerClassAliases"><apiName>registerClassAliases</apiName><shortdesc>
      [RemoteClass(alias="")] ブートストラップコードを処理する Flex UI クラスをアプリケーションが使用しない場合、この機能は Flex RPC ライブラリで必要な AMF シリアライゼーション用のすべてのクラスを登録します。</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="2.5"/><apiTool description="" name="Flex" version="4.5"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiStatic/><apiReturn><apiType value="void"/></apiReturn></apiOperationDef><apiDesc>
      <codeph>[RemoteClass(alias="")]</codeph> ブートストラップコードを処理する Flex UI クラスをアプリケーションが使用しない場合、この機能は Flex RPC ライブラリで必要な AMF シリアライゼーション用のすべてのクラスを登録します。
-           </apiDesc></apiOperationDetail></apiOperation></apiClassifier></apiPackage>
\ No newline at end of file
+           </apiDesc></apiOperationDetail></apiOperation></apiClassifier><apiClassifier id="mx.utils:RPCUIDUtil"><apiName>RPCUIDUtil</apiName><shortdesc>
+  RPCUIDUtil クラスは、RPC メッセージがブートストラップローダーに配置された場合に依存性の問題が生じる一部の関数を含んでいない UIDUtil のコピーです。</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/><apiPlatform description="" name="AIR" version="1.1"/><apiTool description="" name="Flex" version="3"/></apiVersion></asMetadata></prolog><apiClassifierDetail><apiClassifierDef><apiAccess value="public"/><apiStatic/><apiBaseClassifier>Object</apiBaseClassifier></apiClassifierDef><apiDesc>
+  RPCUIDUtil クラスは、RPC メッセージがブートストラップローダーに配置された場合に依存性の問題が生じる一部の関数を含んでいない UIDUtil のコピーです。
+  
+  </apiDesc></apiClassifierDetail><apiOperation id="mx.utils:RPCUIDUtil:createUID"><apiName>createUID</apiName><shortdesc>
+      ActionScript の擬似乱数生成プログラムと現在の時刻に基づいて UID(一意の識別子)を生成します。</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/><apiPlatform description="" name="AIR" version="1.1"/><apiTool description="" name="Flex" version="3"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiStatic/><apiReturn><apiDesc>新しく生成された UID です。
+      
+      </apiDesc><apiType value="String"/></apiReturn></apiOperationDef><apiDesc>
+      ActionScript の擬似乱数生成プログラムと現在の時刻に基づいて UID(一意の識別子)を生成します。
+     
+      <p>UID の形式は <codeph>"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"</codeph> で、X は 16 進数字(0 ~ 9、A ~ F)です。</p>
+     
+      <p>この UID は完全にグローバルに一意というわけではありませんが、Flash Player では UID 生成をサポートしていないため、これが最適な方法です。</p>
+     
+      </apiDesc></apiOperationDetail></apiOperation><apiOperation id="mx.utils:RPCUIDUtil:fromByteArray"><apiName>fromByteArray</apiName><shortdesc>
+     ByteArray にエンコードされた 128 ビット UID をストリング表現に変換します。</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/><apiPlatform description="" name="AIR" version="1.1"/><apiTool description="" name="Flex" version="3"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiStatic/><apiReturn><apiDesc>UID のストリング表現です。無効な ByteArray が指定された場合は null です。
+      
+      </apiDesc><apiType value="String"/></apiReturn><apiParam><apiItemName>ba</apiItemName><apiType value="flash.utils:ByteArray"/><apiDesc>ByteArray の 16 バイト長は 128 ビットの UID を表します。
+     
+     </apiDesc></apiParam></apiOperationDef><apiDesc>
+     ByteArray にエンコードされた 128 ビット UID をストリング表現に変換します。形式は、createUID によって生成されたものに一致します。適切な ByteArray が指定されない場合は、null が返されます。
+     
+     </apiDesc></apiOperationDetail></apiOperation><apiOperation id="mx.utils:RPCUIDUtil:isUID"><apiName>isUID</apiName><shortdesc>
+     String 値が正しく形式設定された UID 値を表すかどうかを確認するユーティリティメソッドです。</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/><apiPlatform description="" name="AIR" version="1.1"/><apiTool description="" name="Flex" version="3"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiStatic/><apiReturn><apiDesc>値が UID として形式設定されている場合は、true を返します。
+      
+      </apiDesc><apiType value="Boolean"/></apiReturn><apiParam><apiItemName>uid</apiItemName><apiType value="String"/><apiDesc>UID として形式設定されているかどうかをテストする値です。
+     
+     </apiDesc></apiParam></apiOperationDef><apiDesc>
+     String 値が正しく形式設定された UID 値を表すかどうかを確認するユーティリティメソッドです。UID 値は createUID() によって生成された形式で、0 ~ 9 以外に大文字の A ~ F だけが含まれることが想定されます。
+     
+     </apiDesc></apiOperationDetail></apiOperation><apiOperation id="mx.utils:RPCUIDUtil:toByteArray"><apiName>toByteArray</apiName><shortdesc>
+     UID 形式のストリングを ByteArray に変換します。</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/><apiPlatform description="" name="AIR" version="1.1"/><apiTool description="" name="Flex" version="3"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiStatic/><apiReturn><apiDesc>UID の 128 ビットを表す ByteArray の 16 バイト長です。uid が変換できない場合は null になります。
+      
+      </apiDesc><apiType value="flash.utils:ByteArray"/></apiReturn><apiParam><apiItemName>uid</apiItemName><apiType value="String"/><apiDesc>128 ビット UID を表します
+     
+     </apiDesc></apiParam></apiOperationDef><apiDesc>
+     UID 形式のストリングを ByteArray に変換します。UID は createUID で生成された形式である必要があります。それ以外の場合は null が返されます。
+     
+     </apiDesc></apiOperationDetail></apiOperation></apiClassifier></apiPackage>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/582a6bdf/frameworks/projects/rpc/bundles/ru_RU/docs/mx.utils.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/rpc/bundles/ru_RU/docs/mx.utils.xml b/frameworks/projects/rpc/bundles/ru_RU/docs/mx.utils.xml
index 973d6b1..8945037 100644
--- a/frameworks/projects/rpc/bundles/ru_RU/docs/mx.utils.xml
+++ b/frameworks/projects/rpc/bundles/ru_RU/docs/mx.utils.xml
@@ -384,4 +384,42 @@
    </apiDesc></apiClassifierDetail><apiOperation id="mx.utils:RpcClassAliasInitializer:registerClassAliases"><apiName>registerClassAliases</apiName><shortdesc>
      Если приложение не использует классы пользовательского интерфейса Flex, что приводит к обработке кода начальной загрузки [RemoteClass(alias="")], эта функция зарегистрирует все классы для сериализации AMF, которая требуется для библиотеки Flex RPC.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="2.5"/><apiTool description="" name="Flex" version="4.5"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiStatic/><apiReturn><apiType value="void"/></apiReturn></apiOperationDef><apiDesc>
      Если приложение не использует классы пользовательского интерфейса Flex, что приводит к обработке кода начальной загрузки <codeph>[RemoteClass(alias="")]</codeph>, эта функция зарегистрирует все классы для сериализации AMF, которая требуется для библиотеки Flex RPC.
-           </apiDesc></apiOperationDetail></apiOperation></apiClassifier></apiPackage>
\ No newline at end of file
+           </apiDesc></apiOperationDetail></apiOperation></apiClassifier><apiClassifier id="mx.utils:RPCUIDUtil"><apiName>RPCUIDUtil</apiName><shortdesc>
+  Класс RPCUIDUtil представляет собой копию UIDUtil без некоторых функций, вызывающих проблемы зависимости при нахождении сообщений RPC в программе начальной загрузки.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/><apiPlatform description="" name="AIR" version="1.1"/><apiTool description="" name="Flex" version="3"/></apiVersion></asMetadata></prolog><apiClassifierDetail><apiClassifierDef><apiAccess value="public"/><apiStatic/><apiBaseClassifier>Object</apiBaseClassifier></apiClassifierDef><apiDesc>
+  Класс RPCUIDUtil представляет собой копию UIDUtil без некоторых функций, вызывающих проблемы зависимости при нахождении сообщений RPC в программе начальной загрузки.
+  
+  </apiDesc></apiClassifierDetail><apiOperation id="mx.utils:RPCUIDUtil:createUID"><apiName>createUID</apiName><shortdesc>
+      Генерирует UID (уникальный идентификатор) на основе генератора псевдослучайных чисел ActionScript и текущего времени.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/><apiPlatform description="" name="AIR" version="1.1"/><apiTool description="" name="Flex" version="3"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiStatic/><apiReturn><apiDesc>Вновь сгенерированный UID.
+      
+      </apiDesc><apiType value="String"/></apiReturn></apiOperationDef><apiDesc>
+      Генерирует UID (уникальный идентификатор) на основе генератора псевдослучайных чисел ActionScript и текущего времени.
+     
+      <p>UID имеет вид <codeph>"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"</codeph>, где X – шестнадцатеричное число (0-9, A-F).</p>
+     
+      <p>Этот идентификатор не будет по-настоящему глобально уникальным; но это лучшее, что можно создать без поддержки проигрывателя при генерации UID.</p>
+     
+      </apiDesc></apiOperationDetail></apiOperation><apiOperation id="mx.utils:RPCUIDUtil:fromByteArray"><apiName>fromByteArray</apiName><shortdesc>
+     Преобразует 128-битовый UID, закодированный как ByteArray в представление в виде строки.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/><apiPlatform description="" name="AIR" version="1.1"/><apiTool description="" name="Flex" version="3"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiStatic/><apiReturn><apiDesc>Строковое представление UID или null, если предоставлен недопустимый ByteArray.
+      
+      </apiDesc><apiType value="String"/></apiReturn><apiParam><apiItemName>ba</apiItemName><apiType value="flash.utils:ByteArray"/><apiDesc>ByteArray длиной 16 байт, представляющий 128-битовый UID.
+     
+     </apiDesc></apiParam></apiOperationDef><apiDesc>
+     Преобразует 128-битовый UID, закодированный как ByteArray в представление в виде строки. Формат соответствует генерируемому createUID. Если подходящий ByteArray не предоставлен, возвращается значение null.
+     
+     </apiDesc></apiOperationDetail></apiOperation><apiOperation id="mx.utils:RPCUIDUtil:isUID"><apiName>isUID</apiName><shortdesc>
+     Служебный метод для проверки, представляет ли значение String правильно отформатированное значение UID.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/><apiPlatform description="" name="AIR" version="1.1"/><apiTool description="" name="Flex" version="3"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiStatic/><apiReturn><apiDesc>Возвращает true, если значение отформатировано как UID.
+      
+      </apiDesc><apiType value="Boolean"/></apiReturn><apiParam><apiItemName>uid</apiItemName><apiType value="String"/><apiDesc>Значение, проверяемое на правильность форматирования как UID.
+     
+     </apiDesc></apiParam></apiOperationDef><apiDesc>
+     Служебный метод для проверки, представляет ли значение String правильно отформатированное значение UID. Значения UID должны быть в формате, генерируемом createUID(), что означает поддержку только заглавных букв от A-F и цифр 0-9.
+     
+     </apiDesc></apiOperationDetail></apiOperation><apiOperation id="mx.utils:RPCUIDUtil:toByteArray"><apiName>toByteArray</apiName><shortdesc>
+     Преобразует форматированную строку UID в ByteArray.</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/><apiPlatform description="" name="AIR" version="1.1"/><apiTool description="" name="Flex" version="3"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiStatic/><apiReturn><apiDesc>ByteArray длиной в 16 байт, представляющей 128 бит UID, или null, если uid невозможно преобразовать.
+      
+      </apiDesc><apiType value="flash.utils:ByteArray"/></apiReturn><apiParam><apiItemName>uid</apiItemName><apiType value="String"/><apiDesc>Записывает 128-разрядное целое число.
+     
+     </apiDesc></apiParam></apiOperationDef><apiDesc>
+     Преобразует форматированную строку UID в ByteArray. UID должен быть в формате, генерируемом createUID, в противном случае возвращается значение null.
+     
+     </apiDesc></apiOperationDetail></apiOperation></apiClassifier></apiPackage>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/582a6bdf/frameworks/projects/rpc/bundles/zh_CN/docs/mx.utils.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/rpc/bundles/zh_CN/docs/mx.utils.xml b/frameworks/projects/rpc/bundles/zh_CN/docs/mx.utils.xml
index 46f6d27..de0aa56 100644
--- a/frameworks/projects/rpc/bundles/zh_CN/docs/mx.utils.xml
+++ b/frameworks/projects/rpc/bundles/zh_CN/docs/mx.utils.xml
@@ -384,4 +384,42 @@
    </apiDesc></apiClassifierDetail><apiOperation id="mx.utils:RpcClassAliasInitializer:registerClassAliases"><apiName>registerClassAliases</apiName><shortdesc>
      如果应用程序不使用 Flex UI 类(这些类用于处理 [RemoteClass(alias="")] 引导代码),此函数会注册 Flex RPC 库所需的 AMF 序列化的所有类。</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="10"/><apiPlatform description="" name="AIR" version="2.5"/><apiTool description="" name="Flex" version="4.5"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiStatic/><apiReturn><apiType value="void"/></apiReturn></apiOperationDef><apiDesc>
      如果应用程序不使用 Flex UI 类(这些类用于处理 <codeph>[RemoteClass(alias="")]</codeph> 引导代码),此函数会注册 Flex RPC 库所需的 AMF 序列化的所有类。
-           </apiDesc></apiOperationDetail></apiOperation></apiClassifier></apiPackage>
\ No newline at end of file
+           </apiDesc></apiOperationDetail></apiOperation></apiClassifier><apiClassifier id="mx.utils:RPCUIDUtil"><apiName>RPCUIDUtil</apiName><shortdesc>
+  RPCUIDUtil 类是 UIDUtil 的一个副本,其中不含在将 RPC 消息放入引导程序加载器中时产生依赖关系问题的某些函数。</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/><apiPlatform description="" name="AIR" version="1.1"/><apiTool description="" name="Flex" version="3"/></apiVersion></asMetadata></prolog><apiClassifierDetail><apiClassifierDef><apiAccess value="public"/><apiStatic/><apiBaseClassifier>Object</apiBaseClassifier></apiClassifierDef><apiDesc>
+  RPCUIDUtil 类是 UIDUtil 的一个副本,其中不含在将 RPC 消息放入引导程序加载器中时产生依赖关系问题的某些函数。
+  
+  </apiDesc></apiClassifierDetail><apiOperation id="mx.utils:RPCUIDUtil:createUID"><apiName>createUID</apiName><shortdesc>
+      基于 ActionScript 的伪随机数生成器和当前时间生成 UID(唯一标识符)。</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/><apiPlatform description="" name="AIR" version="1.1"/><apiTool description="" name="Flex" version="3"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiStatic/><apiReturn><apiDesc>新生成的 UID。
+      
+      </apiDesc><apiType value="String"/></apiReturn></apiOperationDef><apiDesc>
+      基于 ActionScript 的伪随机数生成器和当前时间生成 UID(唯一标识符)。
+     
+      <p>UID 的格式为 <codeph>"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"</codeph>,其中 X 是一个十六进制数字 (0-9, A-F)。</p>
+     
+      <p>该 UID 不会是真正全局唯一,但这是在没有播放器支持的情况下生成 UID 的最佳方法。</p>
+     
+      </apiDesc></apiOperationDetail></apiOperation><apiOperation id="mx.utils:RPCUIDUtil:fromByteArray"><apiName>fromByteArray</apiName><shortdesc>
+     将编码为 ByteArray 的 128 位 UID 转换为字符串表示形式。</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/><apiPlatform description="" name="AIR" version="1.1"/><apiTool description="" name="Flex" version="3"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiStatic/><apiReturn><apiDesc>UID 的字符串表示形式;如果提供的 ByteArray 无效,则为 null。
+      
+      </apiDesc><apiType value="String"/></apiReturn><apiParam><apiItemName>ba</apiItemName><apiType value="flash.utils:ByteArray"/><apiDesc>表示 128 位 UID 的 16 字节长度的 ByteArray。
+     
+     </apiDesc></apiParam></apiOperationDef><apiDesc>
+     将编码为 ByteArray 的 128 位 UID 转换为字符串表示形式。该格式与通过 createUID 生成的格式匹配。如果未提供合适的 ByteArray,则返回 null。
+     
+     </apiDesc></apiOperationDetail></apiOperation><apiOperation id="mx.utils:RPCUIDUtil:isUID"><apiName>isUID</apiName><shortdesc>
+     检查字符串值是否表示一个格式正确的 UID 值的实用程序方法。</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/><apiPlatform description="" name="AIR" version="1.1"/><apiTool description="" name="Flex" version="3"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiStatic/><apiReturn><apiDesc>如果该值为 UID 格式,则返回 true。
+      
+      </apiDesc><apiType value="Boolean"/></apiReturn><apiParam><apiItemName>uid</apiItemName><apiType value="String"/><apiDesc>测试其是否为 UID 格式的值。
+     
+     </apiDesc></apiParam></apiOperationDef><apiDesc>
+     检查字符串值是否表示一个格式正确的 UID 值的实用程序方法。UID 值应采用 createUID() 所生成的格式,这意味着只支持大写字符 A-F 和数字 0-9。
+     
+     </apiDesc></apiOperationDetail></apiOperation><apiOperation id="mx.utils:RPCUIDUtil:toByteArray"><apiName>toByteArray</apiName><shortdesc>
+     将 UID 格式的字符串转换为 ByteArray。</shortdesc><prolog><asMetadata><apiVersion><apiLanguage version="3.0"/><apiPlatform description="" name="Flash" version="9"/><apiPlatform description="" name="AIR" version="1.1"/><apiTool description="" name="Flex" version="3"/></apiVersion></asMetadata></prolog><apiOperationDetail><apiOperationDef><apiAccess value="public"/><apiStatic/><apiReturn><apiDesc>表示 128 位 UID 的 16 字节长度的 ByteArray;如果 uid 无法转换则为 null。
+      
+      </apiDesc><apiType value="flash.utils:ByteArray"/></apiReturn><apiParam><apiItemName>uid</apiItemName><apiType value="String"/><apiDesc>表示 128 位 UID
+     
+     </apiDesc></apiParam></apiOperationDef><apiDesc>
+     将 UID 格式的字符串转换为 ByteArray。UID 必须采用 createUID 所生成的格式,否则将返回 null。
+     
+     </apiDesc></apiOperationDetail></apiOperation></apiClassifier></apiPackage>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/582a6bdf/frameworks/projects/rpc/src/mx/messaging/messages/AbstractMessage.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/rpc/src/mx/messaging/messages/AbstractMessage.as b/frameworks/projects/rpc/src/mx/messaging/messages/AbstractMessage.as
index 1a40e84..97d79ab 100644
--- a/frameworks/projects/rpc/src/mx/messaging/messages/AbstractMessage.as
+++ b/frameworks/projects/rpc/src/mx/messaging/messages/AbstractMessage.as
@@ -28,7 +28,7 @@ import flash.utils.getQualifiedClassName;
 import mx.core.mx_internal;
 import mx.utils.RPCObjectUtil;
 import mx.utils.RPCStringUtil;
-import mx.utils.UIDUtil;
+import mx.utils.RPCUIDUtil;
 
 use namespace mx_internal;
 
@@ -374,7 +374,7 @@ public class AbstractMessage implements IMessage
     public function get messageId():String
     {
         if (_messageId == null)
-            _messageId = UIDUtil.createUID();
+            _messageId = RPCUIDUtil.createUID();
 
         return _messageId;
     }
@@ -520,13 +520,13 @@ public class AbstractMessage implements IMessage
                 if ((flags & CLIENT_ID_BYTES_FLAG) != 0)
                 {
                     clientIdBytes = input.readObject() as ByteArray;
-                    clientId = UIDUtil.fromByteArray(clientIdBytes);
+                    clientId = RPCUIDUtil.fromByteArray(clientIdBytes);
                 }
         
                 if ((flags & MESSAGE_ID_BYTES_FLAG) != 0)
                 {
                     messageIdBytes = input.readObject() as ByteArray;
-                    messageId = UIDUtil.fromByteArray(messageIdBytes);
+                    messageId = RPCUIDUtil.fromByteArray(messageIdBytes);
                 }
 
                 reservedPosition = 2;
@@ -581,10 +581,10 @@ public class AbstractMessage implements IMessage
         var checkForMessageId:String = messageId;
 
         if (clientIdBytes == null)
-            clientIdBytes = UIDUtil.toByteArray(_clientId);
+            clientIdBytes = RPCUIDUtil.toByteArray(_clientId);
 
         if (messageIdBytes == null)
-            messageIdBytes = UIDUtil.toByteArray(_messageId);
+            messageIdBytes = RPCUIDUtil.toByteArray(_messageId);
 
         if (body != null)
             flags |= BODY_FLAG;

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/582a6bdf/frameworks/projects/rpc/src/mx/messaging/messages/AsyncMessage.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/rpc/src/mx/messaging/messages/AsyncMessage.as b/frameworks/projects/rpc/src/mx/messaging/messages/AsyncMessage.as
index a6eef8c..31b5069 100644
--- a/frameworks/projects/rpc/src/mx/messaging/messages/AsyncMessage.as
+++ b/frameworks/projects/rpc/src/mx/messaging/messages/AsyncMessage.as
@@ -24,8 +24,7 @@ import flash.utils.ByteArray;
 import flash.utils.IDataInput;
 import flash.utils.IDataOutput;
 
-import mx.utils.UIDUtil;
-
+import mx.utils.RPCUIDUtil;
 
 [RemoteClass(alias="flex.messaging.messages.AsyncMessage")]
 
@@ -192,7 +191,7 @@ public class AsyncMessage extends AbstractMessage implements ISmallMessage
                 if ((flags & CORRELATION_ID_BYTES_FLAG) != 0)
                 {
                     correlationIdBytes = input.readObject() as ByteArray;
-                    correlationId = UIDUtil.fromByteArray(correlationIdBytes);
+                    correlationId = RPCUIDUtil.fromByteArray(correlationIdBytes);
                 }
 
                 reservedPosition = 2;
@@ -221,7 +220,7 @@ public class AsyncMessage extends AbstractMessage implements ISmallMessage
         super.writeExternal(output);
 
         if (correlationIdBytes == null)
-            correlationIdBytes = UIDUtil.toByteArray(_correlationId);
+            correlationIdBytes = RPCUIDUtil.toByteArray(_correlationId);
 
         var flags:uint = 0;
 

http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/582a6bdf/frameworks/projects/rpc/src/mx/utils/RPCUIDUtil.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/rpc/src/mx/utils/RPCUIDUtil.as b/frameworks/projects/rpc/src/mx/utils/RPCUIDUtil.as
new file mode 100644
index 0000000..eda9caa
--- /dev/null
+++ b/frameworks/projects/rpc/src/mx/utils/RPCUIDUtil.as
@@ -0,0 +1,274 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.utils
+{
+
+import flash.utils.ByteArray;
+
+/**
+ *  The RPCUIDUtil class is a copy of UIDUtil without some functions that
+ *  cause dependency problems when RPC messages are put in a bootstrap loader.
+ *  
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+public class RPCUIDUtil
+{
+    include "../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Class constants
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  Char codes for 0123456789ABCDEF
+     */
+    private static const ALPHA_CHAR_CODES:Array = [48, 49, 50, 51, 52, 53, 54, 
+        55, 56, 57, 65, 66, 67, 68, 69, 70];
+
+    //--------------------------------------------------------------------------
+    //
+    //  Class methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Generates a UID (unique identifier) based on ActionScript's
+     *  pseudo-random number generator and the current time.
+     *
+     *  <p>The UID has the form
+     *  <code>"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"</code>
+     *  where X is a hexadecimal digit (0-9, A-F).</p>
+     *
+     *  <p>This UID will not be truly globally unique; but it is the best
+     *  we can do without player support for UID generation.</p>
+     *
+     *  @return The newly-generated UID.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public static function createUID():String
+    {
+        var uid:Array = new Array(36);
+        var index:int = 0;
+        
+        var i:int;
+        var j:int;
+        
+        for (i = 0; i < 8; i++)
+        {
+            uid[index++] = ALPHA_CHAR_CODES[Math.floor(Math.random() *  16)];
+        }
+
+        for (i = 0; i < 3; i++)
+        {
+            uid[index++] = 45; // charCode for "-"
+            
+            for (j = 0; j < 4; j++)
+            {
+                uid[index++] = ALPHA_CHAR_CODES[Math.floor(Math.random() *  16)];
+            }
+        }
+        
+        uid[index++] = 45; // charCode for "-"
+
+        var time:Number = new Date().getTime();
+        // Note: time is the number of milliseconds since 1970,
+        // which is currently more than one trillion.
+        // We use the low 8 hex digits of this number in the UID.
+        // Just in case the system clock has been reset to
+        // Jan 1-4, 1970 (in which case this number could have only
+        // 1-7 hex digits), we pad on the left with 7 zeros
+        // before taking the low digits.
+        var timeString:String = ("0000000" + time.toString(16).toUpperCase()).substr(-8);
+        
+        for (i = 0; i < 8; i++)
+        {
+            uid[index++] = timeString.charCodeAt(i);
+        }
+        
+        for (i = 0; i < 4; i++)
+        {
+            uid[index++] = ALPHA_CHAR_CODES[Math.floor(Math.random() *  16)];
+        }
+        
+        return String.fromCharCode.apply(null, uid);
+    }
+
+    /**
+     * Converts a 128-bit UID encoded as a ByteArray to a String representation.
+     * The format matches that generated by createUID. If a suitable ByteArray
+     * is not provided, null is returned.
+     * 
+     * @param ba ByteArray 16 bytes in length representing a 128-bit UID.
+     * 
+     * @return String representation of the UID, or null if an invalid
+     * ByteArray is provided.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public static function fromByteArray(ba:ByteArray):String
+    {
+        if (ba != null && ba.length >= 16 && ba.bytesAvailable >= 16)
+        {
+            var chars:Array = new Array(36);
+            var index:uint = 0;
+            for (var i:uint = 0; i < 16; i++)
+            {
+                if (i == 4 || i == 6 || i == 8 || i == 10)
+                    chars[index++] = 45; // Hyphen char code
+
+                var b:int = ba.readByte();
+                chars[index++] = ALPHA_CHAR_CODES[(b & 0xF0) >>> 4];
+                chars[index++] = ALPHA_CHAR_CODES[(b & 0x0F)];
+            }
+            return String.fromCharCode.apply(null, chars);
+        }
+
+        return null;
+    }
+
+    /**
+     * A utility method to check whether a String value represents a 
+     * correctly formatted UID value. UID values are expected to be 
+     * in the format generated by createUID(), implying that only
+     * capitalized A-F characters in addition to 0-9 digits are
+     * supported.
+     * 
+     * @param uid The value to test whether it is formatted as a UID.
+     * 
+     * @return Returns true if the value is formatted as a UID.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public static function isUID(uid:String):Boolean
+    {
+        if (uid != null && uid.length == 36)
+        {
+            for (var i:uint = 0; i < 36; i++)
+            {
+                var c:Number = uid.charCodeAt(i);
+
+                // Check for correctly placed hyphens
+                if (i == 8 || i == 13 || i == 18 || i == 23)
+                {
+                    if (c != 45)
+                    {
+                        return false;
+                    }
+                }
+                // We allow capital alpha-numeric hex digits only
+                else if (c < 48 || c > 70 || (c > 57 && c < 65))
+                {
+                    return false;
+                }
+            }
+
+            return true;
+        }
+
+        return false;
+    }
+
+    /**
+     * Converts a UID formatted String to a ByteArray. The UID must be in the
+     * format generated by createUID, otherwise null is returned.
+     * 
+     * @param String representing a 128-bit UID
+     * 
+     * @return ByteArray 16 bytes in length representing the 128-bits of the
+     * UID or null if the uid could not be converted.
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public static function toByteArray(uid:String):ByteArray
+    {
+        if (isUID(uid))
+        {
+            var result:ByteArray = new ByteArray();
+
+            for (var i:uint = 0; i < uid.length; i++)
+            {
+                var c:String = uid.charAt(i);
+                if (c == "-")
+                    continue;
+                var h1:uint = getDigit(c);
+                i++;
+                var h2:uint = getDigit(uid.charAt(i));
+                result.writeByte(((h1 << 4) | h2) & 0xFF);
+            }
+            result.position = 0;
+            return result;
+        }
+
+        return null;
+    }
+
+
+    /**
+     * Returns the decimal representation of a hex digit.
+     * @private
+     */
+    private static function getDigit(hex:String):uint
+    {
+        switch (hex) 
+        {
+            case "A": 
+            case "a":           
+                return 10;
+            case "B":
+            case "b":
+                return 11;
+            case "C":
+            case "c":
+                return 12;
+            case "D":
+            case "d":
+                return 13;
+            case "E":
+            case "e":
+                return 14;                
+            case "F":
+            case "f":
+                return 15;
+            default:
+                return new uint(hex);
+        }    
+    }
+}
+
+}