wffweb/src/main/java/com/webfirmframework/wffweb/tag/html/attribute/core/AbstractAttribute.java
protected boolean removeFromAttributeValueMapByKeys(final String... keys) {

        final Collection<AbstractHtml5SharedObject> sharedObjects = getSharedObjects();
        boolean listenerInvoked = false;
        final Collection<WriteLock> writeLocks = lockAndGetWriteLocks();
        boolean result = false;
        try {

            final Map<String, String> valueMap = getAttributeValueMap();

            if (nullableAttrValueMapValue) {
                for (final String key : keys) {
                    result = valueMap.containsKey(key);
                    if (result) {
                        break;
                    }
                }
            }

            for (final String key : keys) {
                final String previous = valueMap.remove(key);
                if (previous != null) {
                    result = true;
                }
            }

            if (result) {
                setModified(true);
                invokeValueChangeListeners(sharedObjects);
                listenerInvoked = true;
            }

        } finally {
            for (final Lock lock : writeLocks) {
                lock.unlock();
            }
        }
        pushQueues(sharedObjects, listenerInvoked);
        return result;
    }
protected boolean removeFromAttributeValueMapByKeys(final String... keys) {

        final Collection<AbstractHtml5SharedObject> sharedObjects = getSharedObjects();
        boolean listenerInvoked = false;
        final Collection<WriteLock> writeLocks = lockAndGetWriteLocks();
        boolean result = false;
        try {

            final Map<String, String> valueMap = getAttributeValueMap();

            if (nullableAttrValueMapValue) {
                for (final String key : keys) {
                    result = valueMap.containsKey(key);
                    if (result) {
                        break;
                    }
                }
            }

            for (final String key : keys) {
                final String previous = valueMap.remove(key);
                if (previous != null) {
                    result = true;
                }
            }

            if (result) {
                setModified(true);
                invokeValueChangeListeners(sharedObjects);
                listenerInvoked = true;
            }

        } finally {
            for (final Lock lock : writeLocks) {
                lock.unlock();
            }
        }
        pushQueues(sharedObjects, listenerInvoked);
        return result;
    }
protected boolean removeFromAttributeValueMapByKeys ( final String ... keys ) { final Collection < AbstractHtml5SharedObject > sharedObjects = getSharedObjects ( ) ; boolean listenerInvoked = false ; final Collection < WriteLock > writeLocks = lockAndGetWriteLocks ( ) ; boolean result = false ; try { final Map < String , String > valueMap = getAttributeValueMap ( ) ; if ( nullableAttrValueMapValue ) { for ( final String key : keys ) { result = valueMap . containsKey ( key ) ; if ( result ) { break ; } } } for ( final String key : keys ) { final String previous = valueMap . remove ( key ) ; if ( previous != null ) { result = true ; } } if ( result ) { setModified ( true ) ; invokeValueChangeListeners ( sharedObjects ) ; listenerInvoked = true ; } } finally { for ( final Lock lock : writeLocks ) { lock . unlock ( ) ; } } pushQueues ( sharedObjects , listenerInvoked ) ; return result ; }
removes the key value for the input key.

@param keys
@since 3.0.1
@author WFF
@return true if any of the given keys (as well as value contained
corresponding to it) has been removed.
removes the key value for the input key .