class HugeElementFeatures implements ElementFeatures {

        @Override
        public boolean supportsAddProperty() {
            return true;
        }

        @Override
        public boolean supportsRemoveProperty() {
            return true;
        }

        @Override
        public boolean supportsStringIds() {
            return true;
        }

        @Override
        public boolean supportsNumericIds() {
            return false;
        }

        @Override
        public boolean supportsUuidIds() {
            return false;
        }

        @Override
        public boolean supportsAnyIds() {
            return false;
        }

        @Override
        public boolean supportsCustomIds() {
            return true;
        }

        @Override
        public boolean supportsUserSuppliedIds() {
            return false;
        }

        @Override
        public boolean willAllowId(Object id) {<FILL_FUNCTION_BODY>}
    }

            if (!this.supportsUserSuppliedIds()) {
                return false;
            } else {
                return this.supportsAnyIds() ||
                       this.supportsCustomIds() && id instanceof Id ||
                       this.supportsStringIds() && id instanceof String ||
                       this.supportsNumericIds() && id instanceof Number ||
                       this.supportsUuidIds() && id instanceof UUID;
            }
        
<no_super_class>