wffweb/src/main/java/com/webfirmframework/wffweb/tag/html/attribute/global/Style.java
public boolean addCssProperty(final String cssName, final String cssValue) {

        final long stamp = lock.writeLock();
        try {

            if (cssName == null) {
                throw new NullValueException("styleName cannot be null");
            }
            final String strippedCssName = StringUtil.strip(cssName);
            if (StringUtil.endsWithColon(strippedCssName)) {
                throw new InvalidValueException(
                        "cssName can not end with : (colon)");
            }
            if (cssValue == null) {
                throw new NullValueException("cssValue cannot be null");
            }
            final String trimmedCssValue = StringUtil.strip(cssValue);
            if (trimmedCssValue.length() > 0
                    && (trimmedCssValue.charAt(0) == ':' || trimmedCssValue
                            .charAt(trimmedCssValue.length() - 1) == ';')) {
                throw new InvalidValueException(
                        "value can not start with : (colon) or end with ; (semicolon)");
            }

            final boolean addToAttributeValueMap = super.addToAttributeValueMap(
                    strippedCssName, cssValue);
            if (addToAttributeValueMap) {
                // to save the corresponding
                // object to abstractCssPropertyClassObjects
                getCssPropertyLockless(strippedCssName);
            }
            return addToAttributeValueMap;
        } finally {
            lock.unlockWrite(stamp);
        }
    }
public boolean addCssProperty(final String cssName, final String cssValue) {

        final long stamp = lock.writeLock();
        try {

            if (cssName == null) {
                throw new NullValueException("styleName cannot be null");
            }
            final String strippedCssName = StringUtil.strip(cssName);
            if (StringUtil.endsWithColon(strippedCssName)) {
                throw new InvalidValueException(
                        "cssName can not end with : (colon)");
            }
            if (cssValue == null) {
                throw new NullValueException("cssValue cannot be null");
            }
            final String trimmedCssValue = StringUtil.strip(cssValue);
            if (trimmedCssValue.length() > 0
                    && (trimmedCssValue.charAt(0) == ':' || trimmedCssValue
                            .charAt(trimmedCssValue.length() - 1) == ';')) {
                throw new InvalidValueException(
                        "value can not start with : (colon) or end with ; (semicolon)");
            }

            final boolean addToAttributeValueMap = super.addToAttributeValueMap(
                    strippedCssName, cssValue);
            if (addToAttributeValueMap) {
                // to save the corresponding
                // object to abstractCssPropertyClassObjects
                getCssPropertyLockless(strippedCssName);
            }
            return addToAttributeValueMap;
        } finally {
            lock.unlockWrite(stamp);
        }
    }
eg: {@code addCssProperty("color", "green")}

@param cssName
eg: color
@param cssValue
eg: green (for color styleName)
@since 1.0.0
@author WFF
@return true if the cssName and cssValue has been added or modified. If
it contains same style name and value then it will return false.