/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.hadoop.chukwa.rest.bean; import java.text.ParseException; import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlType; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import org.apache.hadoop.chukwa.util.ExceptionUtil; @XmlRootElement @XmlType public class ViewBean { private PagesBean[] pages; private String description; private String owner; private String name; private String permissionType; private static Log log = LogFactory.getLog(ViewBean.class); public ViewBean() { } public ViewBean(JSONObject json) throws ParseException { try { if(json.has("description")) { this.description = json.getString("description"); } else { this.description = ""; } this.owner=json.getString("owner"); this.name=json.getString("name"); this.permissionType=json.getString("permissionType"); int size = json.getJSONArray("pages").length(); PagesBean[] pages = new PagesBean[size]; for(int i=0;i<size;i++) { pages[i] = new PagesBean(json.getJSONArray("pages").getJSONObject(i)); } this.pages=pages; } catch (JSONException e) { log.error(ExceptionUtil.getStackTrace(e)); throw new ParseException(ExceptionUtil.getStackTrace(e), 0); } } @XmlElement public PagesBean[] getPages() { return pages; } @XmlElement public int getPagesCount() { return pages.length; } @XmlElement public String getDescription() { return this.description; } @XmlElement public String getOwner() { return this.owner; } @XmlElement public String getName() { return this.name; } @XmlElement public String getPermissionType() { return this.permissionType; } public void setPages(PagesBean[] pages) { this.pages = pages; } public void setDescription(String description) { this.description = description; } public void setOwner(String owner) { this.owner = owner; } public void setName(String name) { this.name = name; } public void setPermissionType(String permissionType) { this.permissionType = permissionType; } public void update() { if(this.pages!=null) { for(PagesBean page : pages) { page.update(); } } } public String deserialize() { update(); JSONObject json = new JSONObject(); try { json.put("name", this.name); json.put("owner", this.owner); json.put("permissionType", this.permissionType); json.put("description", this.description); JSONArray ja = new JSONArray(); for(int i=0;i<this.pages.length;i++) { ja.put(this.pages[i].deserialize()); } json.put("pages", (JSONArray) ja); } catch (Exception e){ log.error(ExceptionUtil.getStackTrace(e)); } return json.toString(); } }