Author: zothar
Date: 2007-03-19 03:26:41 +0000 (Mon, 19 Mar 2007)
New Revision: 12214

Modified:
   trunk/freenet/src/freenet/config/Config.java
   trunk/freenet/src/freenet/config/Option.java
   trunk/freenet/src/freenet/config/SubConfig.java
   trunk/freenet/src/freenet/node/Node.java
Log:
One step closer to full config data via FCP.  The next step will probably be a 
structure change on the ConfigData node to client message, after which we'll 
probably document the config via FCP API.

Modified: trunk/freenet/src/freenet/config/Config.java
===================================================================
--- trunk/freenet/src/freenet/config/Config.java        2007-03-18 21:59:05 UTC 
(rev 12213)
+++ trunk/freenet/src/freenet/config/Config.java        2007-03-19 03:26:41 UTC 
(rev 12214)
@@ -10,6 +10,14 @@
  */
 public class Config {

+    public static final int CONFIG_REQUEST_TYPE_CURRENT_SETTINGS = 1;
+    public static final int CONFIG_REQUEST_TYPE_DEFAULT_SETTINGS = 2;
+    public static final int CONFIG_REQUEST_TYPE_SORT_ORDER = 3;
+    public static final int CONFIG_REQUEST_TYPE_EXPERT_FLAG = 4;
+    public static final int CONFIG_REQUEST_TYPE_FORCE_WRITE_FLAG = 5;
+    public static final int CONFIG_REQUEST_TYPE_SHORT_DESCRIPTION = 6;
+    public static final int CONFIG_REQUEST_TYPE_LONG_DESCRIPTION = 7;
+
        protected final LinkedHashMap configsByPrefix;

        public Config() {

Modified: trunk/freenet/src/freenet/config/Option.java
===================================================================
--- trunk/freenet/src/freenet/config/Option.java        2007-03-18 21:59:05 UTC 
(rev 12213)
+++ trunk/freenet/src/freenet/config/Option.java        2007-03-19 03:26:41 UTC 
(rev 12214)
@@ -73,6 +73,14 @@
        public boolean isExpert(){
                return expert;
        }
+       
+       public boolean isForcedWrite(){
+               return forceWrite;
+       }
+       
+       public int getSortOrder(){
+               return sortOrder;
+       }

        /**
         * Is this option set to the default?

Modified: trunk/freenet/src/freenet/config/SubConfig.java
===================================================================
--- trunk/freenet/src/freenet/config/SubConfig.java     2007-03-18 21:59:05 UTC 
(rev 12213)
+++ trunk/freenet/src/freenet/config/SubConfig.java     2007-03-19 03:26:41 UTC 
(rev 12214)
@@ -193,24 +193,54 @@
        }

        public SimpleFieldSet exportFieldSet(boolean withDefaults) {
+               return 
exportFieldSet(Config.CONFIG_REQUEST_TYPE_CURRENT_SETTINGS, withDefaults);
+       }
+
+       public SimpleFieldSet exportFieldSet(int configRequestType, boolean 
withDefaults) {
                SimpleFieldSet fs = new SimpleFieldSet(true);
                Set entrySet = map.entrySet();
                Iterator i = entrySet.iterator();
                boolean logMINOR = Logger.shouldLog(Logger.MINOR, this);
                if(logMINOR)
                        Logger.minor(this, "Prefix="+prefix);
+               String valueString;
                while(i.hasNext()) {
                        Map.Entry entry = (Map.Entry) i.next();
                        String key = (String) entry.getKey();
                        Option o = (Option) entry.getValue();
 //                     if(logMINOR)
 //                             Logger.minor(this, "Key="+key+" 
value="+o.getValueString()+" default="+o.isDefault());
-                       if((!withDefaults) && o.isDefault() && (!o.forceWrite)) 
{
+                       if(configRequestType == 
Config.CONFIG_REQUEST_TYPE_CURRENT_SETTINGS && (!withDefaults) && o.isDefault() 
&& (!o.forceWrite)) {
                                if(logMINOR)
                                        Logger.minor(this, "Skipping "+key+" - 
"+o.isDefault());
                                continue;
                        }
-                       fs.putSingle(key, o.getValueString());
+                       switch (configRequestType) {
+                               case 
Config.CONFIG_REQUEST_TYPE_CURRENT_SETTINGS:
+                                       fs.putSingle(key, o.getValueString());
+                                       break;
+                               case 
Config.CONFIG_REQUEST_TYPE_DEFAULT_SETTINGS:
+                                       fs.putSingle(key, o.getDefault());
+                                       break;
+                               case Config.CONFIG_REQUEST_TYPE_SORT_ORDER:
+                                       fs.put(key, o.getSortOrder());
+                                       break;
+                               case Config.CONFIG_REQUEST_TYPE_EXPERT_FLAG:
+                                       fs.put(key, o.isExpert());
+                                       break;
+                               case 
Config.CONFIG_REQUEST_TYPE_FORCE_WRITE_FLAG:
+                                       fs.put(key, o.isForcedWrite());
+                                       break;
+                               case 
Config.CONFIG_REQUEST_TYPE_SHORT_DESCRIPTION:
+                                       fs.putSingle(key, o.getShortDesc());
+                                       break;
+                               case 
Config.CONFIG_REQUEST_TYPE_LONG_DESCRIPTION:
+                                       fs.putSingle(key, o.getLongDesc());
+                                       break;
+                               default:
+                                       Logger.error(this, "Unknown config 
request type value: "+configRequestType);
+                                       break;
+                       }
                        if(logMINOR)
                                Logger.minor(this, "Key="+prefix+'.'+key+" 
value="+o.getValueString());
                }

Modified: trunk/freenet/src/freenet/node/Node.java
===================================================================
--- trunk/freenet/src/freenet/node/Node.java    2007-03-18 21:59:05 UTC (rev 
12213)
+++ trunk/freenet/src/freenet/node/Node.java    2007-03-19 03:26:41 UTC (rev 
12214)
@@ -3129,7 +3129,7 @@
                                numberOfBursting++;
                                break;
                        default:
-                               Logger.error(this, "Unkown peer status value : 
"+pns[i].getStatusValue());
+                               Logger.error(this, "Unknown peer status value : 
"+pns[i].getStatusValue());
                                break;
                        }
                }


Reply via email to