SDMParser Components

Provides a list of various components in SDM parser.

The Service Document Component

Root object. Contains the schema object, the function imports, the document language, base URL (if any) and the server type.

SDMOdataServiceDocument

-(enum TEN_SERVER_TYPES)getServerType
-(NSString*)getDocumentLanguage
-(NSString*)getBaseUrl
-(SDMODataSchema*)getSchema
-(NSMutableDictionary*)getFunctionImports

The Schema Component

The schema contains workspaces and helper methods to work with collections via workspaces.

SDMODataSchema

-(NSArray*) getWorkspacesBySemantic:(const enum TEN_WORKSPACE_SEMANTICS)workspaceSemantic
-(SDMODataCollection*) getCollectionByName:(NSString* const)collectionName
-(SDMODataCollection*) getCollectionByName:(NSString* const)collectionName workspaceOfCollection:(SDMODataWorkspace**)workspaceOfCollection

The Workspace Component

A workspace can contain 0 up to n collections. Each workspace can have a title and a semantic value.

SDMODataWorkspace

-(enum TEN_WORKSPACE_SEMANTICS) getSemantic
-(NSString*) getTitle
-(NSMutableDictionary*) getCollections

The Collection Component

Represents one parsed collection.

SDMODataCollection

-(id) initWithName:(NSString* const)newName
-(BOOL) isCreatable
-(BOOL) isUpdatable
-(BOOL) isDeletable
-(BOOL) isTopLevel
-(BOOL) doesRequireFilter
-(BOOL) hasMedia
-(SDMODataLink*) getSubscriptionLink
-(int) getContentVersion
-(enum TEN_COLLECTION_SEMANTICS) getSemantic
-(uint8_t) getFlags
-(NSString*) getName
-(NSString*) getTitle
-(NSString*) getMemberTitle
-(NSMutableArray*) getIcons
-(NSMutableArray*) getLinks
-(int) getDisplayOrder
-(SDMODataEntitySchema*) getEntitySchema
-(SDMOpenSearchDescription*) getOpenSearchDescription

The Entity Schema Component

An instance of the EntitySchema class stores the root of the structure of the given collection with constraints. The entity schema class also provides helper functions to order the visible fields of a collection and the navigation map that maps navigation names to collection names.

SDMODataEntitySchema

-(id) init
-(int) getContentVersion
-(uint16_t) getFlags
-(SDMODataPropertyInfo*) getRoot
-(NSMutableDictionary*) getNavigationMap
-(NSArray* const) getVisibleInListPathsInOrder
-(NSArray* const) getVisibleInDetailPathsInOrder

The Property Info Component

A property info instance stores the name, type and all constraints of a property, but does not store property values.

SDMODataPropertyInfo

-(id) initWithName:(NSString* const)propName andPropEdmType:(const enum TEN_EDM_TYPES)propEdmType
-(BOOL) isNullable
-(BOOL) isKey
-(BOOL) isCreatable
-(BOOL) isUpdatable
-(BOOL) isFilterable
-(BOOL) isVisibleInList
-(BOOL) isVisibleInDetail
-(BOOL) isSearchable
-(BOOL) isServerGenerated
-(void) addChildPropertyInfo:(const SDMODataPropertyInfo* const)child
-(SDMODataPropertyInfo* const) getPropertyInfoByPath:(NSString* const)path
-(NSString*) getName
-(enum TEN_EDM_TYPES) getType
-(uint16_t) getFlags
-(int) getMaxLength
-(enum TEN_PROPERTY_SEMANTICS) getSemantic
-(uint32_t) getSemanticTypes
-(NSString*) getLabel
-(NSString*) getDescription
-(int32_t) getListDisplayOrder
-(int32_t) getDetailDisplayOrder
-(uint8_t) getScale
-(uint8_t) getPrecision
-(NSMutableDictionary*) getChildren

The Function Import Component

Function imports can be used to execute back-end functionalities that are not related to collections, or functionalities other than the possible create, update, delete and read operations for collections. An instance of SMDODataFunctionImport stores all the information and has all the methods necessary to execute such a back-end functionality.

SDMODataFunctionImport

-(id) initWithName:(NSString* const)newName
-(NSString*) getName
-(NSString*) getHttpMethod
-(NSMutableDictionary*) getParameters
-(SDMODataEntitySchema*) getReturnTypeSchema
-(uint8_t) getFlags
-(NSString*) getActionFor
-(NSMutableDictionary*) getWritableParameters
-(NSString*) generateFunctionImportUrl:(NSString* const)baseUrl parameters:(NSDictionary* const)parameters

The Link Component

The OData SDK provides four types of link classes depending on the use case:
  • SDMODataLink
  • SDMODataRelatedLink (this class inherits all the methods mentioned at SDMODataLink)
  • SDMODataMediaResourceLink (this class inherits all the methods mentioned at SDMODataLink)
  • SDMODataActionLink (contains the optional parameters of the action and the helper method to assemble the final URL that is required to execute the action)
SDMODataLink

-(NSString*) getHRef
-(NSString*) getRel
-(NSString*) getType
-(NSString*) getTitle
-(enum TEN_LINK_SEMANTICS) getSemantic


DMODataRelatedLink

-(NSString*) getTargetCollection


SDMODataMediaResourceLink

-(NSString*) getConcurrencyToken


SDMODataActionLink

-(NSString*) getHttpMethod;
-(NSMutableDictionary*) getDefaultParameterValues;
-(NSDictionary*) getParameters;
-(NSString*) createActionLinkURL:(NSDictionary*)parameters;


The Open Search Description Component

An SDMOpenSearchDescription instance stores the parsed short name, description and the URL templates for searching data.

SDMOpenSearchDescription

-(NSString*) getShortName
-(NSString*) getDescription
-(NSMutableArray*) getUrlTemplates

SDMOpenSearchDescriptionURLTemplate

-(NSString*) getUrlTemplate
-(NSString*) getUrlType
-(NSString*) createUrlWithParameters:(NSDictionary*)parameters

The Property Value Objects Component

An instance of the property value object stores a value and its metadata (property info instance). SDMODataPropertyValueObject is the base property value class that provides basic validation and value accessors. Derived classes of this class redefine certain methods (for example, validation checks) of the base class and provide methods allowing the library user to access data as typed data instead of string data.

SDMODataPropertyValueObject (base class)

-(NSString* const) getHTMLEncodedValue
-(NSString* const) getDefaultValue
-(BOOL) isValid
-(NSString*) getValue
-(void) setValue:(NSString*) value
-(enum TEN_EDM_TYPES) getEdmType
-(const SDMODataPropertyInfo* const) getPropertyInfo
-(BOOL) isValidationDisabled
-(void) setValidationDisabled:(BOOL)validationDisabled