InDesign SDK  20.5
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
IScriptInfoManager.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 __IScriptInfoManager__
25 #define __IScriptInfoManager__
26 
27 #include "IPMUnknown.h"
28 #include "ScriptingID.h"
29 
30 #include "ScriptInfo.h"
31 
32 using namespace ScriptInfo ;
33 
38 {
39 public:
40  enum { kDefaultIID = IID_ISCRIPTINFOMANAGER };
41 
45  virtual const RequestContext& GetRequestContext() const = 0 ;
46 
50  virtual const TypeDefScriptElement* FindTypeDef( const ScriptElementID& id ) const = 0 ;
51  virtual const SuiteScriptElement* FindSuite( const ScriptElementID& id ) const = 0 ;
52  virtual const ObjectScriptElement* FindObject( const ScriptElementID& id ) const = 0 ;
53  virtual const MethodScriptElement* FindMethod( const ScriptElementID& id ) const = 0 ;
54  virtual const PropertyScriptElement* FindProperty( const ScriptElementID& id ) const = 0 ;
55  virtual const EventScriptElement* FindEvent( const ScriptElementID& id ) const = 0 ;
56  virtual const EnumScriptElement* FindEnum( const ScriptElementID& id ) const = 0 ;
57 
58  virtual const TypeDefScriptElement* FindTypeDef( const ScriptID& id ) const = 0 ;
59  virtual const SuiteScriptElement* FindSuite( const ScriptID& id ) const = 0 ;
60  virtual const ObjectScriptElement* FindObject( const ScriptID& id ) const = 0 ;
61  virtual const ObjectScriptElement* FindCollection( const ScriptID& id ) const = 0 ;
62  virtual const EventScriptElement* FindEvent( const ScriptID& id ) const = 0 ;
63  virtual const EnumScriptElement* FindEnum( const ScriptID& id ) const = 0 ;
64 #ifdef DEBUG
65 private:
66  virtual const MethodScriptElement* FindMethod( const ScriptID& id ) const = 0 ; //Not allowed; ScriptID is not unique across all methods
67  virtual const PropertyScriptElement* FindProperty( const ScriptID& id ) const = 0 ; //Not allowed; ScriptID is not unique across all properties
68 public:
69 #endif
70 
76  virtual const TypeDefScriptElement* FindTypeDef( const PMString& name, ScriptElementType as = kTypeDefElement ) const = 0 ;
77  virtual const SuiteScriptElement* FindSuite( const PMString& name, ScriptElementType as = kSuiteElement ) const = 0 ;
78  virtual const ObjectScriptElement* FindObject( const PMString& name, ScriptElementType as = kObjectElement ) const = 0 ;
79  virtual const EventScriptElement* FindEvent( const PMString& name, ScriptElementType as = kEventElement ) const = 0 ;
80  virtual const EnumScriptElement* FindEnum( const PMString& name, ScriptElementType as = kEnumElement ) const = 0 ;
81  //Name is not unique across Methods and Properties, so we can't find a ScriptElement, but we can find the matching ScriptID
82  virtual ScriptID FindMethod( const PMString& name, ScriptElementType as = kMethodElement ) const = 0 ;
83  virtual ScriptID FindProperty( const PMString& name, ScriptElementType as = kPropertyElement ) const = 0 ;
84  virtual ScriptID FindEnumValue( const PMString& name, ScriptElementType as = kEnumValueElement ) const = 0 ;
85 
91  virtual PMString FindTypeDefName( const ScriptID& id, ScriptElementType as = kTypeDefElement ) const = 0 ;
92  virtual PMString FindSuiteName( const ScriptID& id, ScriptElementType as = kSuiteElement ) const = 0 ;
93  virtual PMString FindObjectName( const ScriptID& id, ScriptElementType as = kObjectElement ) const = 0 ;
94  virtual PMString FindCollectionName( const ScriptID& id, ScriptElementType as = kObjectElement ) const = 0 ;
95  virtual PMString FindPropertyName( const ScriptID& id, ScriptElementType as = kPropertyElement ) const = 0 ;
96  virtual PMString FindMethodName( const ScriptID& id, ScriptElementType as = kMethodElement ) const = 0 ;
97  virtual PMString FindEventName( const ScriptID& id, ScriptElementType as = kEventElement ) const = 0 ;
98  virtual PMString FindEnumName( const ScriptID& id, ScriptElementType as = kEnumElement ) const = 0 ;
99  virtual PMString FindEnumValueName( const ScriptID& id, ScriptElementType as = kEnumValueElement ) const = 0 ;
100 
106  virtual PropertyElementIterator FindProperties( const ClassID& attributeID ) const = 0 ;
107 
111  virtual TypeDefElementIterator TypeDefs() const = 0 ;
112  virtual SuiteElementIterator Suites() const = 0 ;
113  virtual ObjectElementIterator Objects() const = 0 ;
114  virtual MethodElementIterator Methods() const = 0 ;
115  virtual PropertyElementIterator Properties() const = 0 ;
116  virtual EventElementIterator Events() const = 0 ;
117  virtual EnumElementIterator Enums() const = 0 ;
118 
119  //------------------- Utilities ------------------------------------------------------
120 
122  virtual bool16 IsValidType( const TypeInfo& ti ) const = 0 ;
123  virtual bool16 IsBaseType( const TypeInfo& ti ) const = 0 ;
124  virtual bool16 IsObjectType( const TypeInfo& ti ) const = 0 ;
125  virtual bool16 IsEnumType( const TypeInfo& ti ) const = 0 ;
126  virtual bool16 IsTypeDef( const TypeInfo& ti ) const = 0 ;
127  virtual bool16 IsArrayType( const TypeInfo& ti ) const = 0 ;
128  virtual bool16 IsVariableType( const TypeInfo& ti ) const = 0 ;
129  virtual bool16 IsStructType( const TypeInfo& ti ) const = 0 ;
130  virtual bool16 IsRecordType( const TypeInfo& ti ) const = 0 ;
131 } ;
132 
133 #endif // __IScriptInfoManager__