public Node(String permission,boolean value,boolean override,long expireAt,String server,String world,ContextSet contexts){
  if (permission == null || permission.equals("")) {
    throw new IllegalArgumentException("Empty permission");
  }
  if (server != null && (server.equalsIgnoreCase("global") || server.equals(""))) {
    server=null;
  }
  if (world != null && world.equals("")) {
    world=null;
  }
  if (world != null && server == null) {
    server="global";
  }
  this.permission=permission;
  this.value=value;
  this.override=override;
  this.expireAt=expireAt;
  this.server=server;
  this.world=world;
  this.contexts=contexts == null ? ContextSet.empty() : contexts.makeImmutable();
}

public Node ( String permission , boolean value , boolean override , long expireAt , String server , String world , ContextSet contexts ) { if ( permission == null || permission . equals ( "" ) ) { throw new IllegalArgumentException ( "Empty permission" ) ; } if ( server != null && ( server . equalsIgnoreCase ( "global" ) || server . equals ( "" ) ) ) { server = null ; } if ( world != null && world . equals ( "" ) ) { world = null ; } if ( world != null && server == null ) { server = "global" ; } this . permission = permission ; this . value = value ; this . override = override ; this . expireAt = expireAt ; this . server = server ; this . world = world ; this . contexts = contexts == null ? ContextSet . empty ( ) : contexts . makeImmutable ( ) ; }
make an immutable node instance
