private User decodeUser(String cad) {

		if (cad == null) {
			throw new IllegalArgumentException("Argumento nulo.");
		}

		String[] split = cad.split(";");
		String[] attribute;
		User result = new User();

		for (String atri : split) {
			attribute = atri.split(":");

			if (attribute[0].equals(FieldUser.Username.toString())) {
				result.setUsername(attribute[1]);
			} else if (attribute[0].equals(FieldUser.IdUser.toString())) {
				result.setId(attribute[1]);
			} else if (attribute[0].equals(FieldUser.Pass.toString())) {
				result.setPass(attribute[1]);
			} else if (attribute[0].equals(FieldUser.Role.toString())) {
				result.setRole(RoleUser.valueOf(attribute[1]));
			} else if (attribute[0].equals(FieldUser.Connect.toString())) {
				result.setConnect(Boolean.valueOf(attribute[1]));
			} else {
				Attribute a = new Attribute(attribute[0], attribute[1]);
				result.getAttibutes().add(a);
			}
		}

		return result;
	}