@Override
	public Object getAttribute(String attribute)
			throws AttributeNotFoundException, MBeanException,
			ReflectionException {
		//check attribute name is not null avoid NullPointerException
		if(attribute == null){
			throw new RuntimeOperationsException(
					new IllegalArgumentException(
							"Attribute name cannot be null"),
							"Cannot invoke a getter of" +
							dClassName + "with null attribute name");
		}
		//check for a recognized attribute name and call the corresponding
		//getter
		if(attribute.equals("State")){
			return getState();
		}
		if(attribute.equals("NbChanges")){
			return getNbChanges();
		}
		//If attribute has not been recognized throw an 
		//AttributeNotFoundException
		throw new AttributeNotFoundException("Cannot find " +
						attribute + "attribute in " + dClassName);
	}