Note:
Extension of the classes in this package is prohibited unless otherwise documented. Similarly, extension or implementation of the interfaces in this package is prohibited except as documented.

Package com.sas.metadata.remote

Provides a java object interface to the metadata server using the SAS/Open Metadata Architecture.

See:
          Description

Interface Summary
AbstractExtension The SAS Metadata Model supports extensions to enable end users and application developers to define additional attributes that are not part of an object's metadata type definition.
AbstractJob A job is a set of processes that initiate a process or create an output such as a data store or output table.
AbstractPrompt The parent class for types used by the SAS Prompt Interface.
AbstractProperty Used to contain name/value pairs.
AbstractTransformation The parent type for transformation types.
AccessControl An access control is an object that relates an identity and a permission to a resource in order to regulate access to the resource.
AccessControlEntry The AccessControlEntry metadata type is used to define an access control directly on a resource.
AccessControlTemplate The AccessControlTemplate (ACT) metadata type enables you to define a template of individual users, groups, and permissions that can be applied to multiple resources.
Action An action that will be performed when a stated condition is met.
Aggregation A summary of detail data that is stored with or referred to by a cube.
AnalyticColumn Contains analytic attributes to apply to a column.
AnalyticContext References a location that has SAS analytic content.
AnalyticTable Contains analytic attributes to apply to a table.
ApplicationAction Represents a feature/action of an application.
ArchiveEntry One of several metadata types used to describe the physical location of some form of content.
ArchiveFile Represents an archive, such as a tar file or a zip file, which may contain entries.
AssociationProperty The SAS Metadata Model provides a Prototype metadata type to define templates that can be used to create metadata entities.
AttributeProperty The SAS Metadata Model provides a Prototype metadata type to define templates that can be used to create metadata entities.
AuthenticationDomain Authentication domains provide logical groupings for resources and logins in a metadata repository.
CalculatedMeasure In a dimension, a member whose value is derived from the values of other members.
CalculatedMember Beginning in SAS 9.3, represents a new member in a dimension of a cube.
Change This type is used by Change Mangement.
Classifier A classifier is an element that describes structural and behavioral features.
ClassifierMap Used to map any number of Classifier objects to any number of Classifier objects.
CMetadata  
Column Represents a column in a table, view, etc.
ColumnRange Represents a range of columns.
COMConnection Represents a COM connection.
Condition A condition that when met may activate an action or set of actions.
ConditionActionSet A set that contains the condition that must be met and the set of actions to be performed.
ConditionalPrecedence The preceding and succeeding steps based on the stated condition.
ConfiguredComponent Installed software that has configuration information in addition to the licensing information.
Connection Represents the information required to connect to a server.
ContentLocation The supertype for all types that provide location information.
ContentType Describes the type of content contained in the associated object.
Cube A logical set of data that is organized and structured in a hierarchical, multidimensional arrangement.
CustomAssociation Defines a custom association between any two metadata objects.
DatabaseCatalog A namespace for contained database schemas.
DatabaseSchema A relational schema that contains tables that are not in SAS data sets.
DataSourceName Represents a data source name (DSN) that is a construct used by the SAS table server to identify a data source definition.
DataTable An abstract type that represents an object that contains a set of columns.
DeployedComponent An abstract metadata type that represents installed software.
DeployedDataPackage A container of data files (files that contain data) or other Deployed Data Packages.
Device Describes location information for SAS Filerefs.
DeviceType Defines a prototype for a specific supported device.
Dimension A group of closely related hierarchies.
Directory Represents a physical operating system path.
Document A Document is a web page or other conent that contains documentation pertinent to the object to which this document is related.
Email An e-mail address.
Event Describes a condition that occurs that drives other actions, ie. jobs, to be processed.
Extension Extension enables end users and application developers to define additional attributes that are not part of an object's metadata type definition.
ExternalIdentity This is an ID associated with the object in some other context, such as a GUID or DN for LDAP .
ExternalTable Represents a table in an external data file.
FavoritesContainer Contains one or more links to an object that a user has marked as a favorite.
Feature A feature is a property that is encapsulated within a Classifier.
FeatureMap Used to map any number of Feature objects to any number of Feature objects.
File Represents a file in the file system.
FitStatistic Usually a measure of the accuracy of a predicted value.
ForeignKey Represents the fact that a table contains a foreign key to another table.
GlobalFormula PROC OLAP and OLAP CUBE Studio enable users to define formulas for the dimensions of a cube that result in the creation of calculated members and named sets.
Group This type represents the ability to group metadata together.
GroupByClause DEPRECATED: Has an association to the columns used to group this data.
HavingClause DEPRECATED: Represents a Having clause in an SQL statement.
Hierarchy An arrangement of members of a dimension into levels that are based on parent-child relationships.
HierarchyLevel Represents a level within one and only one hierarchy.
Identity Identity - abstract class for objects that identify an entity.
IdentityGroup Grouping mechanism for identity objects.
Index Represents an index on a physical structure.
InternalLogin Internal use only.
ITChannel A content distribution center.
ITContentSubscriber A subscriber profile for content subscribers.
ITEventSubscriber A subscriber profile for event subscribers.
ITFilter A filter string is used to include or exclude content going to a specific subscriber.
ITSubscriber A subscriber profile is used to control how published content is delivered to a user.
JFJob Represents a job that has been or will be scheduled in the LSF JobFlow.
Job Groups transformation activities to be an actual runtime unit.
Join The output of a Join is limited to one JoinTable.
JoinTable DEPRECATED: Represents an instance of a join between two tables.
Key Represents keys on tables.
KeyAssociation Represents the relationship between two columns in a foreign key, unique key relationship.
Keyword The name attribute of this object is a single word that can be used to identify this object.
Level An element of a dimension hierarchy.
LocalizedResource Contains the localized values for a particular locale as defined by the LocalId attribute.
LocalizedType This is the abstract supertype for all of the types that have localized resources.
Location This type represents a location that includes a type (is it a street address, or an office number), as well as address information (street, city, country).
LogicalColumn The supertype for Column, which is part of a relational table, and Measure, which is used with OLAP types.
LogicalServer Used to define a homogeneous group of servers.
Login Represents login information for a given user in a given authentication domain.
Machine Represents a physical machine.
MdFactory The MdFactory interface is used for controlling the creation of metadata objects and object stores.
MdFactoryListener Interface used for notifying clients when changes have been persisted to the server.
MdObjectBase Root class of all metadata classes.
MdObjectBaseUtil Provides the Store object and event interactions for Metadata objects.
MdObjectBaseXML Provides the XML object interactions for Metadata objects.
MdObjectFactoryListener This Listener handles events for objects creation and deletion on the server.
MdObjectListener Details events that are generated for an individual object.
MdObjectStore This a store of objects for a view's interaction.
MdOMIUtil Used to perform operations against the metadata server, such as querying and deleting objects.
MdOMRConnection Used to manage connections the the SAS/Open Metadata Repository.
MdRepositoryUtil The interface defining the utility class for retrieving repository information.
MdSecurityUtil Utility class used for retrieving the necessary security permissions for a metadata object.
MdServerStore This is the Main store of objects (Cache) for interactions with the server.
MdStore This describes the base store object for metadata
MdStoreIDChangeListener The listener interface for an object store hashmap and its contained items.
MdStoreListener The listener interface for an object store hashmap and its contained items.
Measure A special dimension that contains summarized numeric data values that are analyzed.
Memory Represents a result of a transformation that resides in memory on the server.
MetadataObjects This interface defines the objects of the SAS Open Metadata Architecture model as constant variables.
MetadataState This class defines the state that the attributes and association lists of an object can be.
MiningResult Represents a SAS Enterprise Data Mining Model that is a formula or algorithm that computes outputs from inputs.
NamedService Describes the name of the service and how the name is used (as rebind, bind, or lookup).
NamedSet Beginning in SAS 9.3, represents a named set in dimension of a cube.
NumericExtension This allows an application to create a numeric extension to any object.
OLAPProperty An attribute associated with members of a given dimension level.
OLAPSchema This is a grouping of Cubes accessible from a SAS OLAP server.
OnClause DEPRECATED: Represents an SQL ON clause.
OpenClientConnection An abstract type that represents the connection information needed by an open client to access a deployed component.
OrderByClause Has an association to columns used to order the data.
Permission A permission represents an action that a user may attempt against a resource in the metadata server.
PermissionCondition Stores an expression that is applied to conditionally grant a user or group access to a resource.
Person This type represents the information kept about a person.
Phone A phone number and the type of phone number (home, office, mobile, fax).
PhysicalTable A "materialized" table that resides in a database or a file system.
PrimaryType Primary types are the starting point for modeling a public object or component.
Prompt For use by the SAS Prompt Interface.
PromptGroup For use by the SAS Prompt Interface.
Property A parameter, option or other type of information that is used to tailor a metadata object.
PropertyGroup Represents a group of properties.
PropertySet A PropertySet contains a complete set of properties to be used by the OwningObject in a particular context.
PropertyType Defines the data type of a property.
Prototype Used to create a template for creating other metadata objects or set of metadata objects that represent a concept.
PrototypeProperty This is the super type for types that define properties that are for prototype objects only.
PSColumnLayoutComponent Provides the information needed to lay a PortalPage out in columns.
PSLayoutComponent A UI element that designates how Portlets should be laid out on a PortalPage.
PSPortalPage A PortalPage gathers and displays information in the Portal, and can be customized.
PSPortalProfile A SAS Information Delivery Portal user's portal information, which defines the basic functionality of the portal.
PSPortlet A Web component that is managed by a Web application and that is aggregated with other portlets to form a page within the application.
QueryClause This abstract type represents types that are used to define the transformations that are performed.
QueryTable Result set of a query.
RelationalSchema The abstract type that acts as the supertype for any type that can contain table objects.
RelationalTable Represents a relational table, one that does not have a physical representation.
Report Represents the result of data being transformed into a report.
ResponsibleParty This metadata type associates a responsibility with an identity.
Role This object describes a role of of an object, and the context of the role.
Root This is an abstract type that is the supertype for all of the other metadata types.
RowSelector Used to document a SAS DATA step SELECT statement.
SASCatalog Represents a SAS file that stores many different kinds of information in smaller units called catalog entries.
SASCatalogEntry Represents a separate storage unit within a SAS catalog.
SASClientConnection Represents the information needed by SAS software to connect to other servers.
SASFileRef Represents a name temporarily assigned to an external file or to an aggregate storage location that identifies it to SAS.
SASLibrary Represents a SAS library.
SASLicense Used to document the setinit information for SAS products.
SASPassword Represents the storage of SAS passwords for SAS tables or connections.
Search This object is used to store information for search definitions.
SecondaryType Secondary types are used along with primary types to help define a public object or component.
SecurityRule This is an abstract class from which other "SecurityRules" will derive.
SecurityRuleScheme This class is used to group SecurityRules into a unit.
SecurityTypeContainmentRule A SecurityTypeContainmentRule tells the authorization facility how to find parent objects for a particular metadata type.
Select Used to document an SQL select statement.
ServerComponent Represents servers and spawners.
ServerContext Used to define an application context for non-homogeneous group servers.
ServiceComponent Represents software that acts as a service.
ServiceType The types of services available from a DeployedComponent.
SharedDimension Shared dimension is contained by its schema and may be used by more than one cube.
SoftwareComponent Used to define an application hierarchy.
StepPrecedence The preceding and succeeding steps in a process.
Stream Represents a stream of data.
SXLEMap Root node for SXLE map definition.
SyncStep The SyncStep is used to define a part of workflow.
TableCollection A classifier that defines a set of tables that all share the same characteristics but that should be treated as one classifer for display purposes.
Target Represents a variable whose values are known in one or more data sets that are available (in training data, for example) but whose values are unknown in one or more future data sets (in a score data set, for example).
TCPIPConnection Contains information for making a TCP/IP connection to a server.
Text The superclass for files, SAS catalog entries and text stored in the repository itself.
TextStore Represents storing text in the repository.
Timestamp This object contains a timestamp and the role of the timestamp.
Transformation This type is used for generic transformations such as stored procedures.
TransformationActivity TransformationActivity contains TransformationSteps.
TransformationStep TransformationStep contains mapping objects.
Tree This type represents a tree that is the root node for a hierarchy of groups of metadata.
TSNameObject Table server name object.
TSNamespace Table server namespace.
TypeDefinition Type definition is used to describe members of the object type dictionary.
UniqueKey A representation of the unique and primary keys of a table.
UnitofTime Unit of time.
Variable Used to define substitution strings and the replacement values.
WhereClause DEPRECATED: Represents a Where SQL Clause.
WorkTable Represents a table that is created as part of running SAS code that is not intended to be persisted.
XPath Used to describe an XPath location path.
 

Class Summary
AssociationList Extension of List to manage associations between objects.
MdEvent MdEvent is used to notify interested parties that state has changed in the event source.
MdFactoryEvent This is the event class used for signalling when objects are created, modified, and deleted on the server.
MdFactoryImpl This creates objects and Object Stores to be used by views of the metadata.
MetadataResource Each package has a standard set of resources named PropertyBundle.
 

 

Exception Summary
MdException This exception type is used to define a metadata exception in general, whether it be a read/write/parse exception itself.
UnsupportedPlatformVersionException  
 

Package com.sas.metadata.remote Description

Provides a java object interface to the metadata server using the SAS/Open Metadata Architecture.

Overview

Provides a java object interface to the metadata server using the SAS/Open Metadata Architecture. This provides a way to access a SAS Metadata Repository through the use of client java objects to represent server metadata. This is represented through the use of object interfaces, a factory to create objects, and methods for communicating with the metadata server.

The SAS Java Metadata Interface classes contained in the com.sas.metadata.remote package are used as a wrapper for the OMI (Open Metadata Interface) classes. The SAS Java Metadata Interface classes instantiate java objects to represent the OMA model. These objects use several support classes to create, cache, read, and write objects back and forth from the OMR. Support classes include the following:

  1. MdFactory: The factory used for creating and deleting objects.
  2. MdObjectStore: This is the caching mechanism used for making modifications to existing objects. All model objects, either new or existing, are created within an object store. Any modified objects that exist in an object store can be persisted to the server.
  3. CMetadata: Base interface for all objects in the OMA model.
  4. AssociationList: A List object used to contain association information between two objects in the model (for example, a table and its columns).
  5. MdOMIUtil: Helper interface used for reading and writing metadata to and from the server.
  6. MdOMRConnection: Used to make connections to OMR.
These classes can be used to make connections, create objects, search for objects, and write to the server.

How to begin using the classes

The following steps outline what is required to setup and use the metadata classes from any environment. Two of the steps are required by all clients: an object factory must be instantiated and a connection to the metadata server must be established.

  1. First, instantiate an instance of the MdFactory class. It is intended that each user has their own factory instance.

    MdFactory factory = new MdFactoryImpl();

    If the application does not need to run within a remote environment, meaning only a single JVM is required, consider using the following to construct an instance of the factory. If the objects do not need to be remote, there is a considerable performance gain by using the following:

    MdFactory factory = new MdFactoryImpl(false);

  2. Second, establish a connection to the metadata server. Each factory instance should have its own connection to the metadata server. The connections can be made via the MdOMRConnection interface. To retrieve a reference to this object:

    MdOMRConnection connection = factory.getConnection();

    Once the reference has been obtained, the connection to the server can be made:

    connection.makeOMRConnection(String host, String port, String userName, String password);


  3. Now that a connection has been made, the factory is ready to be used. The object factory, MdFactory, can be used to create objects on the client. In order to create an object, a parent object store must be specified. The object store serves as the "Work Unit" or local cache of objects.

    To create a new object store:

    MdObjectStore store = factory.createObjectStore();

    To create existing objects on the client (objects that already exist in the OMR server):

    factory.createComplexMetadataObject(MdObjectStore parentStore, String objectName, String metadataType, String idOfExistingObject)

    To create new objects on the client (Objects that are created on the client and need to be persisted to the OMR server):

    factory.createComplexMetadataObject(MdObjectStore parentStore, String objectName, String metadataType, String shortRepositoryID)


  4. When all changes have been made to the objects, the modifications can be persisted to the metadata server.

    store.updatedMetadataAll();

    This will seralize the object, and any of its changes, via XML to the metadata server. This method will ensure that all changes existing with an ObjectStore will be persisted together to the server. This includes all simple attributes as well as object associations. NOTE: When you create a new object on the client and write it to the server, a permament id will be assigned for the object by the server. This change will then be reflected across all object stores open on the client.


  5. When an object store is no longer needed on the client (typically after you have performed an update), it is recommended to clean up the objects. This is to ensure that the memory footprint of the object store caches does not grow too large. Note, the objects may no longer be used after the store has been disposed of.

    store.dispose();

MdFactory

The factory object is used for the following actions: creating object stores, creating new metadata objects, as well as deleting existing objects from the server. All metadata objects will have their metadata type, name, and object identifier set once created. Depending on the type of object, additional attributes and associations may be set. All objects must be created within an object store.

The MdFactory interface also contains an eventing mechanism that allows the client to be notified when certain changes have been made on the server. This includes new objects being created, existing objects being modified, as well as objects being deleted. By implementing the MdFactoryListener interface, the client can listen for when these types of events occur. To add these listeners, use the addMdFactoryListener() method.

MdObjectStore

The object store is the central "Work Unit" for use on the client. The store contains a cache of every object created in the store as well as a list of all modified objects. This list of change objects is referred to as the change list. The change list is the store's mechanism for generating the proper UpdateMetadata requests to send to the server. The object store is removed from memory by calling the dispose() method on the store.

CMetadata

The CMetadata interface is the root object used by the metadata model objects. All OMA objects inherit from this interface. This defines all the utility methods for the objects to read from and write to the server. These objects also contain the simple attributes: Name, FQID (object identifier), Description, as well as Created and Updated date/time values. All model objects inherit these attributes from the CMetadata object.

CMetadata objects persist themselves through the updateMetadataAll() method. This method writes the object if it is new or has any attribute/association changes, and all other modified objects contained within the same object store. This call does not persist to the server if the object store that owns this object is a child store, meaning the store was created from a parent store. In this case, the objects are just flushed up to the next higher store in the inheritance tree.

AssociationList

An association list is a list that defines one side of an association between two objects. For example, in a Columns-Table association, one AssociationList object is created for the Column to DataTable side, while a separate AssociationList object is created for the opposite DataTable to Columns side. AssociationList objects are implemented as a Vector in Java so they contain the standard List methods.

Note: when establishing an association between two objects, both objects must exist within the same object store. If the objects are contained within different stores, incomplete metadata could be created when persisted to the server.

MdOMIUtil

The MdOMIUtil interface is used as a wrapper around the IOMI java classes. All of the flags and options are the same as those defined in the IOMI documentation. This interface contains methods for retrieving the list of repositories on the server, a list of the available metadata types, and various searching routines.

To search for objects on the metadata server, the getMetadataObjectsSubset() method can be used. This method allows for the use of XMLSelect statements along with templates to search for and retrieve objects.

Once you have an object on the client, populating it with even more data (attributes and associations) can be done by using the getMetadataAllDepths() method. This also allows for a specification of a template for the return list of objects.

MdOMRConnection

The MdOMRConnection interface is used to contain the connection to the SAS Metadata Server. Methods to connect as well as disconnect from the server are supported. Other methods are also available to establish connections to other IOM servers.


Note:
Extension of the classes in this package is prohibited unless otherwise documented. Similarly, extension or implementation of the interfaces in this package is prohibited except as documented.


Copyright © 2009 SAS Institute Inc. All Rights Reserved.