protected void updatePropertiesInternal(Iterable<Property> properties, Iterable<PropertyRemoveMutation> propertyRemoves) {
        if (propertyRemoves != null) {
            this.propertyRemoveMutations = new ConcurrentSkipListSet<>();
            for (PropertyRemoveMutation propertyRemoveMutation : propertyRemoves) {
                removePropertyInternal(
                        propertyRemoveMutation.getKey(),
                        propertyRemoveMutation.getName(),
                        propertyRemoveMutation.getVisibility()
                );
                this.propertyRemoveMutations.add(propertyRemoveMutation);
            }
        }

        for (Property property : properties) {
            if (property.getKey() == null) {
                throw new IllegalArgumentException("key is required for property");
            }
            Object propertyValue = property.getValue();
            if (propertyValue instanceof PropertyValue && !((PropertyValue) propertyValue).isStore()) {
                continue;
            }
            Property existingProperty = getProperty(property.getKey(), property.getName(), property.getVisibility());
            if (existingProperty == null) {
                this.properties.add(property);
            } else {
                if (existingProperty instanceof MutableProperty) {
                    ((MutableProperty) existingProperty).update(property);
                } else {
                    throw new SecureGraphException("Could not update property of type: " + existingProperty.getClass().getName());
                }
            }
        }
    }
protected void updatePropertiesInternal ( Iterable < Property > properties , Iterable < PropertyRemoveMutation > propertyRemoves ) { if ( propertyRemoves != null ) { this . propertyRemoveMutations = new ConcurrentSkipListSet < > ( ) ; for ( PropertyRemoveMutation propertyRemoveMutation : propertyRemoves ) { removePropertyInternal ( propertyRemoveMutation . getKey ( ) , propertyRemoveMutation . getName ( ) , propertyRemoveMutation . getVisibility ( ) ) ; this . propertyRemoveMutations . add ( propertyRemoveMutation ) ; } } for ( Property property : properties ) { if ( property . getKey ( ) == null ) { throw new IllegalArgumentException ( "key is required for property" ) ; } Object propertyValue = property . getValue ( ) ; if ( propertyValue instanceof PropertyValue && ! ( ( PropertyValue ) propertyValue ) . isStore ( ) ) { continue ; } Property existingProperty = getProperty ( property . getKey ( ) , property . getName ( ) , property . getVisibility ( ) ) ; if ( existingProperty == null ) { this . properties . add ( property ) ; } else { if ( existingProperty instanceof MutableProperty ) { ( ( MutableProperty ) existingProperty ) . update ( property ) ; } else { throw new SecureGraphException ( "Could not update property of type: " + existingProperty . getClass ( ) . getName ( ) ) ; } } } }
this method differs setProperties in that it only updates the in memory representation of the properties