Package freenet.clients.fcp

Source Code of freenet.clients.fcp.ConfigData

/* This code is part of Freenet. It is distributed under the GNU General
* Public License, version 2 (or at your option any later version). See
* http://www.gnu.org/ for further details of the GPL. */
package freenet.clients.fcp;

import freenet.config.Config;
import freenet.node.Node;
import freenet.support.SimpleFieldSet;

public class ConfigData extends FCPMessage {
  static final String name = "ConfigData";
 
  final Node node;
  final boolean withCurrent;
  final boolean withDefaults;
  final boolean withSortOrder;
  final boolean withExpertFlag;
  final boolean withForceWriteFlag;
  final boolean withShortDescription;
  final boolean withLongDescription;
  final boolean withDataTypes;
  final String identifier;
 
  public ConfigData(Node node, boolean withCurrent, boolean withDefaults, boolean withSortOrder, boolean withExpertFlag, boolean withForceWriteFlag, boolean withShortDescription, boolean withLongDescription, boolean withDataTypes, String identifier) {
    this.node = node;
    this.withCurrent = withCurrent;
    this.withDefaults = withDefaults;
    this.withSortOrder = withSortOrder;
    this.withExpertFlag = withExpertFlag;
    this.withForceWriteFlag = withForceWriteFlag;
    this.withShortDescription = withShortDescription;
    this.withLongDescription = withLongDescription;
    this.withDataTypes = withDataTypes;
    this.identifier = identifier;
  }

 
  @Override
  public SimpleFieldSet getFieldSet() {
    SimpleFieldSet fs = new SimpleFieldSet(true);
    if(withCurrent) {
      SimpleFieldSet current = node.config.exportFieldSet(Config.RequestType.CURRENT_SETTINGS, true);
      if(!current.isEmpty()) {
        fs.put("current", current);
      }
    }
    if(withDefaults) {
      SimpleFieldSet defaultSettings = node.config.exportFieldSet(Config.RequestType.DEFAULT_SETTINGS, false);
      if(!defaultSettings.isEmpty()) {
        fs.put("default", defaultSettings);
      }
    }
    if(withSortOrder) {
      SimpleFieldSet sortOrder = node.config.exportFieldSet(Config.RequestType.SORT_ORDER, false);
      if(!sortOrder.isEmpty()) {
        fs.put("sortOrder", sortOrder);
      }
    }
    if(withExpertFlag) {
      SimpleFieldSet expertFlag = node.config.exportFieldSet(Config.RequestType.EXPERT_FLAG, false);
      if(!expertFlag.isEmpty()) {
        fs.put("expertFlag", expertFlag);
      }
    }
    if(withForceWriteFlag) {
      SimpleFieldSet forceWriteFlag = node.config.exportFieldSet(Config.RequestType.FORCE_WRITE_FLAG, false);
      if(!forceWriteFlag.isEmpty()) {
        fs.put("forceWriteFlag", forceWriteFlag);
      }
    }
    if(withShortDescription) {
      SimpleFieldSet shortDescription = node.config.exportFieldSet(Config.RequestType.SHORT_DESCRIPTION, false);
      if(!shortDescription.isEmpty()) {
        fs.put("shortDescription", shortDescription);
      }
    }
    if(withLongDescription) {
      SimpleFieldSet longDescription = node.config.exportFieldSet(Config.RequestType.LONG_DESCRIPTION, false);
      if(!longDescription.isEmpty()) {
        fs.put("longDescription", longDescription);
      }
    }
    if(withDataTypes) {
      SimpleFieldSet type = node.config.exportFieldSet(Config.RequestType.DATA_TYPE, false);
      if(!type.isEmpty()) {
        fs.put("dataType", type);
      }
    }
    if(identifier != null)
      fs.putSingle("Identifier", identifier);
    return fs;
  }

  @Override
  public String getName() {
    return name;
  }

  @Override
  public void run(FCPConnectionHandler handler, Node node)
      throws MessageInvalidException {
    throw new MessageInvalidException(ProtocolErrorMessage.INVALID_MESSAGE, "ConfigData goes from server to client not the other way around", null, false);
  }

}
TOP

Related Classes of freenet.clients.fcp.ConfigData

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.