1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3  * This file is part of the LibreOffice project.
4  *
5  * This Source Code Form is subject to the terms of the Mozilla Public
6  * License, v. 2.0. If a copy of the MPL was not distributed with this
7  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8  *
9  * This file incorporates work covered by the following license notice:
10  *
11  *   Licensed to the Apache Software Foundation (ASF) under one or more
12  *   contributor license agreements. See the NOTICE file distributed
13  *   with this work for additional information regarding copyright
14  *   ownership. The ASF licenses this file to you under the Apache
15  *   License, Version 2.0 (the "License"); you may not use this file
16  *   except in compliance with the License. You may obtain a copy of
17  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
18  */
19 
20 
21 #include <com/sun/star/beans/Property.hpp>
22 #include <com/sun/star/beans/PropertyAttribute.hpp>
23 #include <com/sun/star/beans/PropertyValue.hpp>
24 #include <com/sun/star/ucb/CommandInfo.hpp>
25 #include <com/sun/star/ucb/OpenCommandArgument2.hpp>
26 #include <com/sun/star/ucb/InsertCommandArgument.hpp>
27 #include <com/sun/star/util/DateTime.hpp>
28 #include <com/sun/star/uno/Sequence.hxx>
29 
30 #include "ftpcontent.hxx"
31 
32 using namespace com::sun::star;
33 using namespace ftp;
34 
35 // virtual
getProperties(const uno::Reference<ucb::XCommandEnvironment> &)36 uno::Sequence< beans::Property > FTPContent::getProperties(
37     const uno::Reference< ucb::XCommandEnvironment > & /*xEnv*/)
38 {
39     #define PROPS_COUNT 8
40 
41     static const beans::Property aPropsInfoTable[] =
42     {
43         beans::Property(
44             "ContentType",
45             -1,
46             cppu::UnoType<OUString>::get(),
47             beans::PropertyAttribute::BOUND
48             | beans::PropertyAttribute::READONLY
49         ),
50         beans::Property(
51             "IsDocument",
52             -1,
53             cppu::UnoType<bool>::get(),
54             beans::PropertyAttribute::BOUND
55             | beans::PropertyAttribute::READONLY
56         ),
57         beans::Property(
58             "IsFolder",
59             -1,
60             cppu::UnoType<bool>::get(),
61             beans::PropertyAttribute::BOUND
62             | beans::PropertyAttribute::READONLY
63         ),
64         beans::Property(
65             "Title",
66             -1,
67             cppu::UnoType<OUString>::get(),
68             beans::PropertyAttribute::BOUND
69             //  | beans::PropertyAttribute::READONLY
70         ),
71         beans::Property(
72             "Size",
73             -1,
74             cppu::UnoType<sal_Int64>::get(),
75             beans::PropertyAttribute::BOUND
76             | beans::PropertyAttribute::READONLY
77         ),
78         beans::Property(
79             "DateCreated",
80             -1,
81             cppu::UnoType<util::DateTime>::get(),
82             beans::PropertyAttribute::BOUND
83             | beans::PropertyAttribute::READONLY
84         ),
85         beans::Property(
86             "IsReadOnly",
87             -1,
88             cppu::UnoType<bool>::get(),
89             beans::PropertyAttribute::BOUND
90             | beans::PropertyAttribute::READONLY
91         ),
92         beans::Property(
93             "CreatableContentsInfo",
94             -1,
95             cppu::UnoType<uno::Sequence< ucb::ContentInfo >>::get(),
96             beans::PropertyAttribute::BOUND
97             | beans::PropertyAttribute::READONLY
98         )
99     };
100 
101     return uno::Sequence< beans::Property >( aPropsInfoTable, PROPS_COUNT );
102 }
103 
104 
105 // virtual
getCommands(const uno::Reference<ucb::XCommandEnvironment> &)106 uno::Sequence< ucb::CommandInfo > FTPContent::getCommands(
107     const uno::Reference< ucb::XCommandEnvironment > & /*xEnv*/ )
108 {
109 // osl::MutexGuard aGuard( m_aMutex );
110 
111 
112     // Supported commands
113 
114 
115     #define COMMAND_COUNT 8
116 
117     static const ucb::CommandInfo aCommandInfoTable[] =
118     {
119 
120         // Required commands
121 
122         ucb::CommandInfo(
123             "getCommandInfo",
124             -1,
125             cppu::UnoType<void>::get()
126         ),
127         ucb::CommandInfo(
128             "getPropertySetInfo",
129             -1,
130             cppu::UnoType<void>::get()
131         ),
132         ucb::CommandInfo(
133             "getPropertyValues",
134             -1,
135             cppu::UnoType<uno::Sequence< beans::Property >>::get()
136         ),
137         ucb::CommandInfo(
138             "setPropertyValues",
139             -1,
140             cppu::UnoType<uno::Sequence< beans::PropertyValue >>::get()
141         ),
142         ucb::CommandInfo(
143             "open",
144             -1,
145             cppu::UnoType<ucb::OpenCommandArgument2>::get()
146         ),
147         ucb::CommandInfo(
148             "insert",
149             -1,
150             cppu::UnoType<ucb::InsertCommandArgument>::get()
151         ),
152         ucb::CommandInfo(
153             "delete",
154             -1,
155             cppu::UnoType<bool>::get()
156         ),
157         ucb::CommandInfo(
158             "createNewContent",
159             -1,
160             cppu::UnoType<ucb::ContentInfo>::get()
161         )
162     };
163 
164     return uno::Sequence< ucb::CommandInfo >( aCommandInfoTable, COMMAND_COUNT );
165 }
166 
167 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
168