123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- /**
- Licensed Materials - Property of IBM
- IBM Cognos Products: DOCS
- (C) Copyright IBM Corp. 2005, 2008
- US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with
- IBM Corp.
- */
- /**
- *
- * Copyright (C) 2008 Cognos ULC, an IBM Company. All rights reserved.
- * Cognos (R) is a trademark of Cognos ULC, (formerly Cognos Incorporated).
- *
- * The MetaData class represents the metaData returned from the package.
- * Seperated into QuerySubject (tables) and QueryItems (columns), QueryItems full Name (the search path)
- * MetaData also includes a vector of selected columns to create a report with.
- */
- import java.util.List;
- import java.util.Vector;
- import org.dom4j.Attribute;
- import org.dom4j.Document;
- import org.dom4j.Element;
- public class MetaData
- {
- private String m_querySubject;
- private Vector m_queryItems;
- private Vector m_fullNameQueryItems;
- private Vector m_selectedColumns;
- public String getQuerySubject()
- {
- return m_querySubject;
- }
- public void setQuerySubject(String querySubject)
- {
- m_querySubject = querySubject;
- }
- public Vector getQueryItem()
- {
- return m_queryItems;
- }
- public void setQueryItem(Vector queryItems)
- {
- m_queryItems = queryItems;
- }
- public Vector getFullNameQueryItems()
- {
- return m_fullNameQueryItems;
- }
- public void setFullNameQueryItems(Vector queryItems)
- {
- m_fullNameQueryItems = queryItems;
- }
- public Vector getSelectedColumns()
- {
- return m_selectedColumns;
- }
- public void setSelectedColumns(Vector queryItems)
- {
- m_selectedColumns = queryItems;
- }
- /**
- * ParseMetaData method will create a vector of MetaData objects by parsing (using DOM) the
- * metadata XML returned from the content store. Basically a list of all tables and the columns.
- *
- * querySubject = tables
- * queryItems = columns
- *
- * @param connection
- * @param newReport
- * @param defaultPackageName
- * @return Vector
- */
- public Vector parseMetaData(
- CRNConnect connection,
- ReportObject newReport,
- String defaultPackageName)
- {
- // retrieve the metadata from the selected package to display for table/column selection.
- Vector packageMetaData = new Vector();
- if (defaultPackageName != null)
- {
- Document doc = newReport.getMetadata(connection, defaultPackageName);
- // returns a list of tables from the QuerySubject tag
- List tableList =
- (List)doc.selectNodes("/ResponseRoot/folder/folder/folder/querySubject");
- for (int i = 0; i < tableList.size(); i++)
- {
- Element eTable = (Element)tableList.get(i);
- Attribute nameAttrQuerySubject = eTable.attribute("name");
- String sTable = nameAttrQuerySubject.getValue();
- System.out.println(sTable);
- MetaData md = new MetaData();
- md.setQuerySubject(sTable);
-
- // set the current node to be the current QuerySubject
- Element eCurrent =
- (Element)doc.selectSingleNode(
- "/ResponseRoot/folder/folder/folder/querySubject[@name='"
- + sTable
- + "']");
- // retrieve a list of columns in this table or queryItems from the current querySubject node.
- List columnList = (List)eCurrent.selectNodes("queryItem");
- Vector metaQueryItems = new Vector();
- Vector metaFullNameQueryItems = new Vector();
- for (int j = 0; j < columnList.size(); j++)
- {
- Element eColumn = (Element)columnList.get(j);
- Attribute attrQueryItemName = eColumn.attribute("name");
- Attribute attrQueryItemRef = eColumn.attribute("_ref");
- String sColumn = attrQueryItemName.getValue();
- String sFullColumnName = attrQueryItemRef.getValue();
- System.out.println(" " + sColumn);
- metaQueryItems.add(sColumn);
- metaFullNameQueryItems.add(sFullColumnName);
- }
- md.setQueryItem(metaQueryItems);
- md.setFullNameQueryItems(metaFullNameQueryItems);
- packageMetaData.add(md);
- }
- }
- else
- System.out.println("Problem: default package name unavailable.");
- return packageMetaData;
- }
- }
|