package com.idega.block.reports.data;
import java.sql.SQLException;
import java.util.StringTokenizer;
/**
* Title:
* Description:
* Copyright: Copyright (c) 2001
* Company: idega multimedia
* @author <a href="mailto:aron@idega.is">Aron Birkir</a>
* @version 1.0
*/
public class ReportBMPBean extends com.idega.block.category.data.CategoryEntityBMPBean implements com.idega.block.reports.data.Report {
public static final String NORMAL = "NORMAL";
public static final String STICKERS = "STICKERS";
public static final String COLUMNS = "COLUMNS";
public ReportBMPBean() {
}
public ReportBMPBean(int id) throws SQLException {
super(id);
}
public void initializeAttributes() {
addAttribute(getIDColumnName());
addAttribute(getColumnNameName(),"Name",true,true,java.lang.String.class);
addAttribute(getColumnNameSql(), "SQL", true, true, java.lang.String.class,4000);
addAttribute(getColumnNameHeaders(),"Titles",true,true,java.lang.String.class);
addAttribute(getColumnNameInfo(),"Info",true,true,java.lang.String.class);
addAttribute(getColumnType(),"Type",true,true,java.lang.String.class);
addAttribute(getColumnColInfo(),"Fonts",true,true,java.lang.String.class);
addManyToManyRelationShip(ReportInfo.class);
}
public static String getEntityTableName(){return "REP_REPORT";}
public static String getColumnNameName(){return "NAME";}
public static String getColumnNameInfo(){return "INFO";}
public static String getColumnNameSql(){return "SQLSENTENCE";}
public static String getColumnNameHeaders(){return "HEADERS";}
public static String getColumnType(){return "REP_TYPE";}
public static String getColumnColInfo(){return "COLINFO";}
public String getEntityName() {
return getEntityTableName();
}
public String getName(){
return getStringColumnValue(getColumnNameName());
}
public void setName(String name){
setColumn(getColumnNameName(), name);
}
public String getSQL(){
return getStringColumnValue(getColumnNameSql());
}
public void setSQL(String sqlsentence){
setColumn(getColumnNameSql(), sqlsentence);
}
public String getType(){
return getStringColumnValue(getColumnType());
}
public void setType(String type){
setColumn(getColumnType(), type);
}
public String getColInfo(){
return getStringColumnValue(getColumnColInfo());
}
public void setColInfo(String cols){
setColumn(getColumnColInfo(), cols);
}
public String getInfo(){
return getStringColumnValue(getColumnNameInfo());
}
public void setInfo(String info){
setColumn(getColumnNameInfo() , info);
}
public void setHeaders(String[] headers){
setColumn(getColumnNameHeaders(),array2str(headers,delim()));
}
public String getHeader(){
return getStringColumnValue(getColumnNameHeaders());
}
public String[] getHeaders(){
return str2array(getStringColumnValue(getColumnNameHeaders()),delim());
}
private String delim(){
return ",";
}
private String array2str(String[] array,String delim){
StringBuffer s = new StringBuffer();
for (int i = 0; i < array.length; i++) {
if(i != 0) {
s.append(delim());
}
s.append(array[i]);
}
return s.toString();
}
private String[] str2array(String s,String delim){
StringTokenizer st = new StringTokenizer(s,delim);
String[] array = new String[st.countTokens()];
int i = 0;
while(st.hasMoreTokens()){
array[i++] = st.nextToken();
}
return array;
}
public void storeColumnInfos(java.util.List columnInfos){
try{
java.io.ByteArrayOutputStream bos = new java.io.ByteArrayOutputStream();
java.io.ObjectOutputStream s = new java.io.ObjectOutputStream(bos);
s.writeObject(columnInfos);
s.flush();
setColInfo(bos.toString());
}
catch(java.io.IOException ex){ex.printStackTrace();}
}
public java.util.List getColumnInfos(){
String infos = getColumnColInfo();
if(infos !=null){
try{
java.io.ByteArrayInputStream bis = new java.io.ByteArrayInputStream(infos.getBytes());
java.io.ObjectInputStream s = new java.io.ObjectInputStream(bis);
java.util.List infoList = (java.util.List)s.readObject();
return infoList;
}
catch(ClassNotFoundException ex){ex.printStackTrace();}
catch(java.io.IOException ex){ex.printStackTrace();}
}
return null;
}
}