code: @Override
  	public boolean parseDeclaration(Declaration d,
  			Map<String, CSSProperty> properties, Map<String, Term<?>> values) {
  
  		final String propertyName = d.getProperty();
  
  		// no such declaration is supported or declaration is empty
  		if (!css.isSupportedCSSProperty(propertyName) || d.isEmpty())
  			return false;
  
  		try {
  			Method m = methods.get(propertyName);
  			if (m != null) {
  				boolean result = (Boolean) m
  						.invoke(this, d, properties, values);
  				log.debug("Parsing /{}/ {}", result, d);
  				return result;
  			}
  			else
  			{
  			    boolean result = processAdditionalCSSGenericProperty(d, properties, values);
  			    log.debug("Parsing with proxy /{}/ {}", result, d);
  			    return result; 
  			}			
  		} catch (IllegalArgumentException e) {
  			log.warn("Illegal argument", e);
  		} catch (IllegalAccessException e) {
  			log.warn("Illegal access", e);
  		} catch (InvocationTargetException e) {
  			log.warn("Invocation target", e);
  			log.warn("Invotation target cause", e.getCause());
  		}
  
  		return false;
  	}
docs: Core function. Parses CSS declaration into structure applicable to
  DataNodeImpl
  
  @param d
  Declaration
  @param properties
  Wrap of parsed declaration's properties
  @param values
  Wrap of parsed declaration's value
  @return <code>true</code> in case of success, <code>false</code>
  otherwise