sPFShared/src/main/java/it/polimi/spf/shared/model/SPFAction.java
public static SPFAction fromJSON(String json) {
		try {
			JSONObject o = new JSONObject(json);
			int type = o.getInt(KEY_TYPE);
			switch (type) {
			case TYPE_INTENT:
				return new SPFActionIntent(o);
			case TYPE_NOTIFICATION:
				return new SPFActionSendNotification(o);
			default:
				throw new IllegalArgumentException("Unknown action type: " + type);
			}

		} catch (JSONException e) {
			throw new IllegalArgumentException("JSON does not represent a valid SPFAction");
		}
	}
public static SPFAction fromJSON(String json) {
		try {
			JSONObject o = new JSONObject(json);
			int type = o.getInt(KEY_TYPE);
			switch (type) {
			case TYPE_INTENT:
				return new SPFActionIntent(o);
			case TYPE_NOTIFICATION:
				return new SPFActionSendNotification(o);
			default:
				throw new IllegalArgumentException("Unknown action type: " + type);
			}

		} catch (JSONException e) {
			throw new IllegalArgumentException("JSON does not represent a valid SPFAction");
		}
	}
TODO comment

@return