***  This class is subject to change.  ***

com.sas.iquery.metadata.business
Class InformationMapFactory

com.sas.iquery.metadata.business.InformationMapFactory

public class InformationMapFactory

Specifies a factory class for creating new instances of information map objects. Information Map Studio and PROC InfoMaps are the only two pieces of software that should be creating information maps via this API. Others are allowed to read in information maps created by those two, but should not be creating them from scratch themselves. There are many difficulties with creating your own information maps, especially when they are to be consumed by products and components that consume maps created by IMS and PROC InfoMaps.

No lifetime management of the returned information map is currently provided by SAS Query Services. The map and its contents get garbage collected when the map is no longer referenced. If physical metadata on which the map is based on is changed, deleted or secured while the map is in memory, no recognition of those changes occurs with that map in memory ... only if the same map is read from the repository again will those metadata changes be reflected. Think of a map in memory as a snapshot of the map and the metadata that it is based on. No updates to that snapshot are currently available except by reading the map again from the Metadata Server.

Because no lifetime management is provided, requesting an information map to be read from a repository multiple times causes multiple in-memory copies of the information map and its contents to be created. Using objects (for example, data items) within one map on methods of another map is not supported and very problematic. The same is true for any business model (maps, data selections, etc.) -- do not use items contained in one business model thinking they are interchangeable with objects in another.

The usual persistent form for information maps, whether stored in a Metadata Server or a file, is XML. Because some XML parsers (for example, Crimson) have low default limits for parsing XML, one may get an exception caused by the parser when reading in a large information map. If you get an exception that looks something like the following:

 Parser has reached the entity expansion limit "64,000" set by the Application. 
 
you can get around this parser limitation by using a Java Virtual Machine argument -DentityExpansionLimit=10000000 or some other large number.


Method Summary
static InformationMapFactory getInstance()
          Returns an instance of this factory.
 InformationMap newInformationMap(com.sas.services.session.SessionContextInterface session, IntelligentQueryMetadataServiceInterface service, BriefInformationMap briefMap)
          Returns a new instance of an InformationMap object model for the specified brief information map.
 InformationMap newInformationMap(com.sas.services.session.SessionContextInterface session, IntelligentQueryMetadataServiceInterface service, com.sas.services.information.metadata.PathUrl pathToMap)
          Returns a new instance of an InformationMap object model for the information map located at the specified path.
 

Method Detail

***  This method is subject to change.  ***

getInstance

public static InformationMapFactory getInstance()
Returns an instance of this factory.


***  This method is subject to change.  ***

newInformationMap

public InformationMap newInformationMap(com.sas.services.session.SessionContextInterface session,
                                        IntelligentQueryMetadataServiceInterface service,
                                        com.sas.services.information.metadata.PathUrl pathToMap)
                                 throws MetadataException
Returns a new instance of an InformationMap object model for the information map located at the specified path.

Parameters:
session - The session to use to perform this function within the context of.
service - A SAS Query Services metadata service containing its configuration/knowledge/etc.
pathToMap - A URL to the information map to retrieve
Returns:
An InformationMap object if found and user has permissions to see it, exception otherwise.
Throws:
MetadataException - If an error occurred while performing this method.

***  This method is subject to change.  ***

newInformationMap

public InformationMap newInformationMap(com.sas.services.session.SessionContextInterface session,
                                        IntelligentQueryMetadataServiceInterface service,
                                        BriefInformationMap briefMap)
                                 throws MetadataException
Returns a new instance of an InformationMap object model for the specified brief information map.

There is also another method that returns a new instance of an InformationMap object model for the information map located at a specified path. It can be done using

newInformationMap(SessionContextInterface session, IntelligentQueryMetadataServiceInterface service, com.sas.services.information.metadata.PathUrl pathToMap)

Parameters:
session - The session to use to perform this function within the context of.
service - An SAS Query Services' metadata service containing its configuration/knowledge/etc.
briefMap - The brief version of the map for which the full information map object is to be returned
Returns:
a new InformationMap object for the given brief information map
Throws:
MetadataException - If an error occurred while performing this method.

***  This class is subject to change.  ***




Copyright © 2009 SAS Institute Inc. All Rights Reserved.