⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 agoracastdata.java

📁 CroftSoft Code Library是一个开源的可移植的纯Java游戏库
💻 JAVA
字号:
     package com.croftsoft.agoracast.c2p;

     import java.util.*;

     import com.croftsoft.core.lang.NullArgumentException;
     import com.croftsoft.core.lang.Pair;
     import com.croftsoft.core.lang.StringLib;
     import com.croftsoft.core.text.sml.*;

     /*********************************************************************
     *
     * <p />
     *
     * @version
     *   2001-08-09
     * @since
     *   2001-08-06
     * @author
     *   <a href="http://croftsoft.com/">David Wallace Croft</a>
     *********************************************************************/

     public final class  AgoracastData
     //////////////////////////////////////////////////////////////////////
     //////////////////////////////////////////////////////////////////////
     {

     public static final String  SML_NODE_NAME = "data";

     //

     private final String    newsgroup;

     private final String    articleId;

     private final Map       map;

     //////////////////////////////////////////////////////////////////////
     //////////////////////////////////////////////////////////////////////

     public static AgoracastData  fromSmlNode ( SmlNode  smlNode )
     //////////////////////////////////////////////////////////////////////
     {
       if ( !SML_NODE_NAME.equals ( smlNode.getName ( ) ) )
       {
         throw new IllegalArgumentException ( smlNode.getName ( ) );
       }

       String  newsgroup = smlNode.getString  ( "newsgroup" );

       String  articleId = smlNode.getString ( "articleId" );

       Pair [ ]  pairs = null;

       SmlNode [ ]  fieldNodes = smlNode.getChildNodes ( "field" );

       if ( fieldNodes != null )
       {
         List  pairList = new ArrayList ( );

         for ( int  i = 0; i < fieldNodes.length; i++ )
         {
           SmlNode  fieldNode = fieldNodes [ i ];

           String  name
             = StringLib.trimToNull ( fieldNode.getString ( "name" ) );

           if ( name != null )
           {
             String  value = StringLib.trimToNull (
               fieldNode.getString ( "value" ) );

             pairList.add ( new Pair ( name, value ) );
           }
         }

         pairs = ( Pair [ ] ) pairList.toArray ( new Pair [ ] { } );
       }

       return new AgoracastData ( newsgroup, articleId, pairs );
     }

     //////////////////////////////////////////////////////////////////////
     //////////////////////////////////////////////////////////////////////

     public  AgoracastData (
       String    newsgroup,
       String    articleId,
       Pair [ ]  pairs )
     //////////////////////////////////////////////////////////////////////
     {
       NullArgumentException.check ( this.newsgroup = newsgroup );

       NullArgumentException.check ( this.articleId = articleId );

       NullArgumentException.check ( pairs );

       if ( pairs.length < 1 )
       {
         throw new IllegalArgumentException ( "pairs.length < 1" );
       }

       map = new HashMap ( );

       for ( int  i = 0; i < pairs.length; i++ )
       {
         Pair  pair = pairs [ i ];

         map.put ( pair.name, pair.value );
       }
     }
      
     //////////////////////////////////////////////////////////////////////
     //////////////////////////////////////////////////////////////////////

     public String  getNewsgroup ( ) { return newsgroup; }

     public String  getArticleId ( ) { return articleId; }

     public String  getValue ( String  name )
     //////////////////////////////////////////////////////////////////////
     {
       return ( String ) map.get ( name );
     }

     public synchronized SmlNode  toSmlNode ( )
     //////////////////////////////////////////////////////////////////////
     {
       SmlNode  rootSmlNode = new SmlNode ( SML_NODE_NAME );

       rootSmlNode.add ( new SmlNode ( "newsgroup", newsgroup ) );

       rootSmlNode.add ( new SmlNode ( "articleId", articleId ) );

       if ( map != null )
       {
         Iterator  iterator = map.keySet ( ).iterator ( );

         while ( iterator.hasNext ( ) )
         {
           SmlNode  fieldSmlNode = new SmlNode ( "field" );

           rootSmlNode.add ( fieldSmlNode );

           String  name = ( String ) iterator.next ( );
 
           fieldSmlNode.add ( new SmlNode ( "name", name ) );

           String  value = ( String ) map.get ( name );

           if ( value != null )
           {
             fieldSmlNode.add ( new SmlNode ( "value", value ) );
           }
         }
       }

       return rootSmlNode;
     }

     //////////////////////////////////////////////////////////////////////
     //////////////////////////////////////////////////////////////////////
     }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -