InDesign SDK  20.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
IScriptRequestData.h
1 //========================================================================================
2 //
3 // $File$
4 //
5 // Owner: Jonathan W. Brown
6 //
7 // $Author$
8 //
9 // $DateTime$
10 //
11 // $Revision$
12 //
13 // $Change$
14 //
15 // Copyright 1997-2010 Adobe Systems Incorporated. All rights reserved.
16 //
17 // NOTICE: Adobe permits you to use, modify, and distribute this file in accordance
18 // with the terms of the Adobe license agreement accompanying it. If you have received
19 // this file from a source other than Adobe, then your use, modification, or
20 // distribution of it requires the prior written permission of Adobe.
21 //
22 //========================================================================================
23 
24 #ifndef __IScriptRequestData__
25 #define __IScriptRequestData__
26 
27 #include "IPMUnknown.h"
28 #include "IScript.h"
29 #include "ScriptInfo.h"
30 #include "ScriptingID.h"
31 #include "ScriptReturnData.h"
32 
33 using namespace ScriptInfo ;
34 
39 {
40 public:
41  enum { kDefaultIID = IID_ISCRIPTREQUESTDATA };
42  //Methods, Properties IN
46  virtual ErrorCode InsertRequestData( const ScriptID dataLocation, const ScriptData& data ) = 0 ;
47  //Methods, Properties IN
52  virtual ErrorCode InsertRequestData( const ScriptRecordData& record ) = 0;
53  //Methods, Properties IN
59  virtual ErrorCode ExtractRequestData( const ScriptID dataLocation, ScriptData& data ) const = 0 ;
60  //Methods, Properties IN
65  virtual bool16 HasRequestData( const ScriptID dataLocation ) const = 0 ;
66  //Methods IN
70  virtual ScriptRecordData GetRequestData() const = 0 ;
71 
76  virtual void ClearReturnData( const IScript* target ) = 0 ;
81  virtual void ClearReturnData( const ScriptList& targets ) = 0 ;
82  //Methods, Properties, Objects OUT
87  //Use for successful kMethodRequest (no return value), kPutPropertyRequest, or kFindCollectionRequest
88  //Use for unsuccessful request
89  virtual void AppendReturnData( const IScript* target, const ScriptID requestID, const ErrorCode errorCode ) = 0 ;
90  virtual void AppendReturnData( const ScriptList& targets, const ScriptID requestID, const ErrorCode errorCode ) = 0 ;
91  //Use for successful kMethodRequest (with return value), kGetPropertyRequest, or kGetObjectRequest
92  virtual void AppendReturnData( const IScript* target, const ScriptID requestID, const ScriptData& returnValue ) = 0 ;
93  virtual void AppendReturnData( const ScriptList& targets, const ScriptID requestID, const ScriptData& returnValue ) = 0 ;
94 
99  virtual void AppendReturnData( const IScript* target, const ScriptReturnDataList& data ) = 0 ;
104  virtual void AppendReturnData( const ScriptList& targets, const ScriptReturnDataList& data ) = 0 ;
105 
110  virtual void ReplaceReturnData( const IScript* target, const ScriptReturnDataList& data ) = 0 ;
115  virtual void ReplaceReturnData(const ScriptList& targets, const ScriptReturnDataList& data ) = 0 ;
116 
121  virtual uint32 GetNumReturnData( const IScript* target ) const = 0 ;
122  virtual uint32 GetNumReturnData( const ScriptList& targets ) const = 0 ;
123  virtual ScriptReturnData GetNthReturnData( const IScript* target, uint32 n ) const = 0 ;
124  virtual ScriptReturnData GetNthReturnData( const ScriptList& targets, uint32 n ) const = 0 ;
125  virtual ScriptReturnDataList GetAllReturnData( const IScript* target ) const = 0 ;
126  virtual ScriptReturnDataList GetAllReturnData( const ScriptList& targets ) const = 0 ;
127 
129  static ScriptListData ConvertToScriptListData( const ScriptReturnDataList& srdl )
130  {
131  ScriptListData sld ;
132  for ( ScriptReturnDataList::const_iterator iter = srdl.begin() ; iter != srdl.end() ; ++iter )
133  {
134  if ( iter->GetErrorCode() == kSuccess && !iter->GetReturnValue().IsEmpty() )
135  sld.push_back( iter->GetReturnValue() ) ;
136  }
137  return sld ;
138  }
139 
141  static ScriptRecordData ConvertToScriptRecordData( const ScriptReturnDataList& srdl )
142  {
143  ScriptRecordData srd ;
144  for ( ScriptReturnDataList::const_iterator iter = srdl.begin() ; iter != srdl.end() ; ++iter )
145  {
146  if ( iter->GetErrorCode() == kSuccess && !iter->GetReturnValue().IsEmpty() )
147  srd.push_back( ScriptIDValuePair( iter->GetRequestID(), iter->GetReturnValue() ) ) ;
148  }
149  return srd ;
150  }
151 
155  virtual void SetErrorPolicy( ErrorPolicy policy ) = 0 ;
156  virtual ErrorPolicy GetErrorPolicy() const = 0 ;
157 
161  virtual void SetSetPropertiesOrderPolicy( SetPropertiesOrderPolicy policy ) = 0 ;
162  virtual SetPropertiesOrderPolicy GetSetPropertiesOrderPolicy() const = 0 ;
163  //IN
170  virtual void SetTargetInfo( const ScriptElementID objectID ) = 0 ;
171  virtual void SetTargetInfo( const ObjectScriptElement* pObject ) = 0 ;
175  virtual const ObjectScriptElement* GetTargetInfo() const = 0 ;
176 
181  virtual const ScriptID GetDesiredType() const = 0 ;
182 
187  {
189  kUnknownRequest,
191  kMethodRequest,
193  kGetPropertyRequest,
195  kPutPropertyRequest,
197  kGetObjectRequest,
199  kFindCollectionRequest
200  } ;
201 
205  virtual RequestType GetRequestType() const = 0 ;
209  virtual const ScriptElement* GetRequestInfo() const = 0 ;
210  //Methods IN
215  virtual void SetMethod( const ScriptElementID methodID ) = 0 ;
216  virtual void SetMethod( const MethodScriptElement* pMethod ) = 0 ;
220  virtual bool16 IsMethod() const = 0 ;
221  //Methods IN
225  virtual void SetMethodWithProperties( bool16 withProperties ) = 0 ;
226  virtual bool16 IsMethodWithProperties() const = 0 ;
227  //Properties IN
232  virtual void SetPropertyGet( const ScriptElementID propID ) = 0 ;
233  virtual void SetPropertyGet( const PropertyScriptElement* pProp ) = 0 ;
237  virtual bool16 IsPropertyGet() const = 0 ;
238  //Properties IN
243  virtual void SetPropertyPut( const ScriptElementID propID ) = 0 ;
244  virtual void SetPropertyPut( const PropertyScriptElement* pProp ) = 0 ;
248  virtual bool16 IsPropertyPut() const = 0 ;
249  //Collection IN
254  virtual void SetFindCollection( const ScriptElementID objID ) = 0 ;
255  virtual void SetFindCollection( const ObjectScriptElement* pObj ) = 0 ;
259  virtual bool16 IsFindCollection() const = 0 ;
260  //Objects IN
267  virtual void SetGetObject( const ScriptElementID objID, SpecifierForm accessorForm, const ScriptData& accessorData ) = 0 ;
268  virtual void SetGetObject( const ObjectScriptElement* pObj, SpecifierForm accessorForm, const ScriptData& accessorData ) = 0 ;
272  virtual bool16 IsGetObject() const = 0 ;
273 
277  virtual SpecifierForm GetAccessorForm() const = 0 ;
281  virtual ScriptData GetAccessorData() const = 0 ;
282 
288  {
289  kDefault, //use default approach for the request
290  kIndividually, //handle request on each target separately
291  kCollectively //handle request on all targets simultaneously
292  } ;
293  virtual void SetTargetHandlingPolicy( TargetHandlingPolicy policy ) = 0 ;
294  virtual TargetHandlingPolicy GetTargetHandlingPolicy() const = 0 ;
295  //Objects, Properties( Text Contents ) IN
299  virtual void SetRequestedDataType( const ScriptID requestedType ) = 0 ;
300  virtual const ScriptID GetRequestedDataType() const = 0 ;
301  //Objects, Properties IN
306  virtual void SetFormTestCaseSensitive( bool16 caseSensitive ) = 0 ;
307  virtual bool16 GetFormTestCaseSensitive() const = 0 ;
308 
312  virtual const EngineContext& GetRequestContext() const = 0 ;
313  //Internal Use Only
317  virtual void SetRequestContext( const EngineContext& context ) = 0 ;
318 
322  virtual void CloneRequestData( IScriptRequestData* other ) const = 0 ;
323 };
324 
325 #endif