public static Object getAnnotatedFieldValue(Object source, Class<? extends Annotation> annotation){
		Class<?> clazz = source.getClass();
		try {
			for(Field field:clazz.getDeclaredFields()){
				field.setAccessible(true);
				if(field.getAnnotation(Id.class) != null)
					return field.get(source);
			}
			
			return null;
		} catch (IllegalArgumentException e) {
			e.printStackTrace();
			return null;
		} catch (IllegalAccessException e) {
			e.printStackTrace();
			return null;
		}
	}