public boolean setLabel(Object r, Object value)
	{
		//Initialize the label methods if they are not all ready set
		if(this.setLabelMethods == null)
		{
			this.setLabelMethods = new ArrayList<String>();
			this.initLabelMethods(r);
		}
		
		for(String methodName : this.setLabelMethods)
		{
			try
			{
				/**
				 * Attempts to get the setLabel method with an argument that 
				 * matches the passed in value
				 */
				try{
					Method m = r.getClass().getMethod(methodName, value.getClass());
					
					m.invoke(r, value);
					
				}
				catch (NoSuchMethodException e)
				{
					LOG.trace(
						methodName 
						+ " does not exist with signature (" 
						+ value.getClass().getName() 
						+")"
						);
				}
			}
			catch (SecurityException e)
			{
				LOG.error(e);
				return false;
			}
			
			catch (IllegalArgumentException e)
			{
				LOG.error(e);
				return false;
			}
			catch (IllegalAccessException e)
			{
				LOG.error(e);
				return false;
			}
			catch (InvocationTargetException e)
			{
				LOG.error(e);
				return false;
			}
		}
		return true;
	}