import java.io.*; import java.net.*; import java.nio.*; import java.nio.channels.*; import java.nio.file.*; import java.util.*; import org.json.simple.JSONArray; import org.json.simple.JSONObject; class MusicRecord { private String track_url_; private String title_; private String artist_; private String year_; private String audio_url_; public MusicRecord(String track_url,String title, String artist, String year, String audio_url) { track_url_ = track_url; title_ = title; artist_ = artist; year_ = (year.matches("^\\s*$")) ? null : year; audio_url_ = audio_url; } public String getAudioURL() { return audio_url_; } public String toString() { return String.format("[title=%s, artist=%s, year=%s; track_url=%s, audio_url=%s]", title_,artist_,year_, track_url_, audio_url_); } public JSONObject toJSON() { JSONObject obj = new JSONObject(); boolean object_is_all_null = true; if (title_ != null) { obj.put("title",title_); object_is_all_null = false; } if (artist_ != null) { obj.put("artist",artist_); object_is_all_null = false; } if (year_ != null) { obj.put("year",year_); object_is_all_null = false; } if (track_url_ != null) { obj.put("track_url",track_url_); object_is_all_null = false; } if (audio_url_ != null) { obj.put("audio_url",audio_url_); object_is_all_null = false; } if (object_is_all_null) { System.err.println("Warning: MusicRecord '" + this + "' only has null values in it"); } return obj; } public String toJSONString() { String jsonText = null; JSONObject obj = toJSON(); try { StringWriter out = new StringWriter(); obj.writeJSONString(out); jsonText = out.toString(); } catch (IOException ioe) { ioe.printStackTrace(); } return jsonText; } }