public void write(TSLWriter writer,String name) throws IOException
  {
    if(objects_map.isEmpty() && strings_map.isEmpty())
    {
      return;
    }
    TSLUtil.validateValueName(name);
    writer.startObject(name);
    writer.pushFormatter();
    writer.getFormatter().setNewLine(!objects_map.isEmpty());
    for(Map.Entry<String, List<String>> child : strings_map.entrySet())
    {
      String child_name = child.getKey();
      for(String value : child.getValue())
      {
        writer.putString(child_name, value);
      }
    }
    for(Map.Entry<String, List<TSLObject>> child : objects_map.entrySet())
    {
      for(TSLObject collection : child.getValue())
      {
        collection.write(writer,child.getKey());
      }
    }
    writer.endObject();
    writer.popFormatter();
  }