code: public void attach(Object self) throws IllegalArgumentException, IllegalAccessException, NoSuchMethodException,
  			InvocationTargetException {
  		for (Class<?> currentClass = self.getClass(); currentClass != Object.class;) {
  			if (Proxy.class.isAssignableFrom(currentClass)) {
  				currentClass = currentClass.getSuperclass();
  				continue;
  			}
  			for (Field f : currentClass.getDeclaredFields()) {
  				Object value = OObjectEntitySerializer.getFieldValue(f, self);
  				value = setValue(self, f.getName(), value);
  				OObjectEntitySerializer.setFieldValue(f, self, value);
  			}
  			currentClass = currentClass.getSuperclass();
  
  			if (currentClass == null || currentClass.equals(ODocument.class))
  				// POJO EXTENDS ODOCUMENT: SPECIAL CASE: AVOID TO CONSIDER
  				// ODOCUMENT FIELDS
  				currentClass = Object.class;
  		}
  	}
docs: Method that attaches all data contained in the object to the associated document
  
  
  @param self
  :- The object containing this handler instance
  @throws IllegalAccessException
  @throws IllegalArgumentException
  @throws InvocationTargetException
  @throws NoSuchMethodException