code: public void setValue(Properties properties)  {
          if (properties == null) {
              throw new IllegalArgumentException("properties must not be null");
          }
          if (type == null) {
              type = ItemType.PROPERTIES;
          }
          if (!isMappableType()) {
              throw new IllegalArgumentException("The type of this item must be 'properties' or 'map'");
          }
          tokensMap = new LinkedHashMap<>();
          for (String key : properties.stringPropertyNames()) {
              Object o = properties.get(key);
              if (o instanceof Token[]) {
                  tokensMap.put(key, (Token[])o);
              } else if (o instanceof Token) {
                  Token[] tokens = new Token[] { (Token)o };
                  tokensMap.put(key, tokens);
              } else {
                  Token[] tokens = TokenParser.makeTokens(o.toString(), isTokenize());
                  putValue(name, tokens);
              }
          }
      }
docs: Sets a value to this Properties type item.
  
  @param properties the properties