1 /**************************************************************
2 *
3 * Licensed to the Apache Software Foundation (ASF) under one
4 * or more contributor license agreements. See the NOTICE file
5 * distributed with this work for additional information
6 * regarding copyright ownership. The ASF licenses this file
7 * to you under the Apache License, Version 2.0 (the
8 * "License"); you may not use this file except in compliance
9 * with the License. You may obtain a copy of the License at
10 *
11 * http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing,
14 * software distributed under the License is distributed on an
15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16 * KIND, either express or implied. See the License for the
17 * specific language governing permissions and limitations
18 * under the License.
19 *
20 *************************************************************/
21
22
23
24 // MARKER(update_precomp.py): autogen include statement, do not remove
25 #include "precompiled_chart2.hxx"
26 #include "MediaDescriptorHelper.hxx"
27
28 using namespace ::com::sun::star;
29
30 namespace apphelper
31 {
32
33
34 const short FLAG_DEPRECATED =1;
35 const short FLAG_MODEL =2;
36
37 #define WRITE_PROPERTY( MediaName, nFlags ) \
38 if(rProp.Name.equals(::rtl::OUString::createFromAscii(#MediaName))) \
39 { \
40 if( rProp.Value >>= MediaName ) \
41 ISSET_##MediaName = sal_True; \
42 if(nFlags & FLAG_DEPRECATED) \
43 { \
44 m_aDeprecatedProperties[nDeprecatedCount]=rProp;\
45 nDeprecatedCount++; \
46 } \
47 else \
48 { \
49 m_aRegularProperties[nRegularCount]=rProp; \
50 nRegularCount++; \
51 if( nFlags & FLAG_MODEL) \
52 { \
53 m_aModelProperties[nModelCount]=rProp; \
54 nModelCount++; \
55 } \
56 } \
57 }
58
MediaDescriptorHelper(const uno::Sequence<beans::PropertyValue> & rMediaDescriptor)59 MediaDescriptorHelper::MediaDescriptorHelper( const uno::Sequence<
60 beans::PropertyValue > & rMediaDescriptor )
61 {
62 impl_init();
63
64 m_aRegularProperties.realloc(0);
65 m_aRegularProperties.realloc(rMediaDescriptor.getLength());
66 sal_Int32 nRegularCount = 0;
67
68 m_aDeprecatedProperties.realloc(0);
69 m_aDeprecatedProperties.realloc(rMediaDescriptor.getLength());
70 sal_Int32 nDeprecatedCount = 0;
71
72 m_aAdditionalProperties.realloc(0);
73 m_aAdditionalProperties.realloc(rMediaDescriptor.getLength());
74 sal_Int32 nAdditionalCount = 0;
75
76 m_aModelProperties.realloc(0);
77 m_aModelProperties.realloc(rMediaDescriptor.getLength());
78 sal_Int32 nModelCount = 0;
79
80
81 //read given rMediaDescriptor and store in internal structures:
82 for( sal_Int32 i= rMediaDescriptor.getLength();i--;)
83 {
84 const beans::PropertyValue& rProp = rMediaDescriptor[i];
85 WRITE_PROPERTY( AsTemplate, FLAG_MODEL )
86 else WRITE_PROPERTY( Author, FLAG_MODEL )
87 else WRITE_PROPERTY( CharacterSet, FLAG_MODEL )
88 else WRITE_PROPERTY( Comment, FLAG_MODEL )
89 else WRITE_PROPERTY( ComponentData, FLAG_MODEL )
90 else WRITE_PROPERTY( FileName, FLAG_DEPRECATED )
91 else WRITE_PROPERTY( FilterData, FLAG_MODEL )
92 else WRITE_PROPERTY( FilterName, FLAG_MODEL )
93 else WRITE_PROPERTY( FilterFlags, FLAG_DEPRECATED)
94 else WRITE_PROPERTY( FilterOptions, FLAG_MODEL )
95 else WRITE_PROPERTY( FrameName, FLAG_MODEL )
96 else WRITE_PROPERTY( Hidden, FLAG_MODEL )
97 else WRITE_PROPERTY( HierarchicalDocumentName, FLAG_MODEL )
98 else WRITE_PROPERTY( OutputStream, 0 )
99 else WRITE_PROPERTY( InputStream, 0 )
100 else WRITE_PROPERTY( InteractionHandler, 0 )
101 else WRITE_PROPERTY( JumpMark, 0 )
102 else WRITE_PROPERTY( MediaType, FLAG_MODEL )
103 else WRITE_PROPERTY( OpenFlags, FLAG_DEPRECATED )
104 else WRITE_PROPERTY( OpenNewView, 0 )
105 else WRITE_PROPERTY( Overwrite, FLAG_MODEL )
106 else WRITE_PROPERTY( Password, FLAG_MODEL )
107 else WRITE_PROPERTY( PosSize, 0 )
108 else WRITE_PROPERTY( PostData, 0 )
109 else WRITE_PROPERTY( PostString, FLAG_DEPRECATED )
110 else WRITE_PROPERTY( Preview, FLAG_MODEL )
111 else WRITE_PROPERTY( ReadOnly, 0 )
112 else WRITE_PROPERTY( Referer, FLAG_MODEL )
113 else WRITE_PROPERTY( SetEmbedded, 0 )
114 else WRITE_PROPERTY( Silent, 0 )
115 else WRITE_PROPERTY( StatusIndicator, 0 )
116 else WRITE_PROPERTY( Storage, FLAG_MODEL )
117 else WRITE_PROPERTY( Stream, FLAG_MODEL )
118 else WRITE_PROPERTY( TemplateName, FLAG_DEPRECATED )
119 else WRITE_PROPERTY( TemplateRegionName, FLAG_DEPRECATED )
120 else WRITE_PROPERTY( Unpacked, FLAG_MODEL )
121 else WRITE_PROPERTY( URL, FLAG_MODEL )
122 else WRITE_PROPERTY( Version, FLAG_MODEL )
123 else WRITE_PROPERTY( ViewData, FLAG_MODEL )
124 else WRITE_PROPERTY( ViewId, FLAG_MODEL )
125 else WRITE_PROPERTY( WinExtent, FLAG_DEPRECATED )
126 else
127 {
128 m_aAdditionalProperties[nAdditionalCount]=rProp;
129 nAdditionalCount++;
130 }
131 }
132
133 m_aRegularProperties.realloc(nRegularCount);
134 m_aDeprecatedProperties.realloc(nDeprecatedCount);
135 m_aAdditionalProperties.realloc(nAdditionalCount);
136 m_aModelProperties.realloc(nModelCount);
137 }
138
impl_init()139 void MediaDescriptorHelper::impl_init()
140 {
141 AsTemplate = sal_False;
142 ISSET_AsTemplate = sal_False;
143
144 ISSET_Author = sal_False;
145 ISSET_CharacterSet = sal_False;
146 ISSET_Comment = sal_False;
147
148 // ::com::sun::star::uno::Any ComponentData;
149 ISSET_ComponentData = sal_False;
150 ISSET_FileName = sal_False;
151
152 // ::com::sun::star::uno::Any FilterData;
153 ISSET_FilterData = sal_False;
154 ISSET_FilterName = sal_False;
155 ISSET_FilterFlags = sal_False;
156 ISSET_FilterOptions = sal_False;
157 ISSET_FrameName = sal_False;
158
159 Hidden = sal_False;
160 ISSET_Hidden = sal_False;
161 ISSET_HierarchicalDocumentName = sal_False;
162 ISSET_OutputStream = sal_False;
163 ISSET_InputStream = sal_False;
164 ISSET_InteractionHandler = sal_False;
165 ISSET_JumpMark = sal_False;
166 ISSET_MediaType = sal_False;
167 ISSET_OpenFlags = sal_False;
168 OpenNewView = sal_False;
169 ISSET_OpenNewView = sal_False;
170 Overwrite = sal_False;
171 ISSET_Overwrite = sal_False;
172 ISSET_Password = sal_False;
173
174 // ::com::sun::star::awt::Rectangle PosSize;
175 ISSET_PosSize = sal_False;
176
177 // ::com::sun::star::uno::Sequence< sal_Int8 > PostData;
178 ISSET_PostData = sal_False;
179 ISSET_PostString = sal_False;
180 Preview = sal_False;
181 ISSET_Preview = sal_False;
182 ReadOnly = sal_False;
183 ISSET_ReadOnly = sal_False;
184 ISSET_Referer = sal_False;
185 ISSET_StatusIndicator = sal_False;
186 Silent = sal_False;
187 ISSET_Silent = sal_False;
188 ISSET_TemplateName = sal_False;
189 ISSET_TemplateRegionName = sal_False;
190 Unpacked = sal_False;
191 ISSET_Unpacked = sal_False;
192 ISSET_URL = sal_False;
193 Version = 0;
194 ISSET_Version = sal_False;
195
196 // ::com::sun::star::uno::Any ViewData;
197 ISSET_ViewData = sal_False;
198 ViewId = 0;
199 ISSET_ViewId = sal_False;
200
201 ISSET_WinExtent = sal_False;
202
203 ISSET_Storage = sal_False;
204 ISSET_Stream = sal_False;
205 }
206
~MediaDescriptorHelper()207 MediaDescriptorHelper::~MediaDescriptorHelper()
208 {
209
210 }
211
212 uno::Sequence< beans::PropertyValue > MediaDescriptorHelper
getReducedForModel()213 ::getReducedForModel()
214 {
215 return m_aModelProperties;
216 }
217 }
218