public static void validateProperty(final String key, final Object value) throws IllegalArgumentException {
        if (null == key)
            throw Property.Exceptions.propertyKeyCanNotBeNull();
        if (key.isEmpty())
            throw Property.Exceptions.propertyKeyCanNotBeEmpty();
        if (Graph.Hidden.isHidden(key))
            throw Property.Exceptions.propertyKeyCanNotBeAHiddenKey(key);
    }
Determines whether the property key/value for the specified thing can be legally set. This is typically used as
a pre-condition check prior to setting a property.

@param key   the key of the property
@param value the value of the property\
@throws IllegalArgumentException whether the key/value pair is legal and if not, a clear reason exception
                                 message is provided
gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/util/ElementHelper.java