Kate
2 years ago
committed by
GitHub
20 changed files with 3292 additions and 645 deletions
@ -0,0 +1,73 @@
|
||||
import 'dart:io'; |
||||
|
||||
void main() { |
||||
final props = File('lib/src/webdav/props.csv').readAsLinesSync().map((final line) => line.split(',')); |
||||
final valueProps = <String>[]; |
||||
final findProps = <String>[]; |
||||
final variables = <String>[]; |
||||
for (final prop in props) { |
||||
final namespacePrefix = prop[0]; |
||||
final namespaceVariable = convertNamespace(namespacePrefix); |
||||
final type = prop[2]; |
||||
final name = prop[1]; |
||||
final variable = namespacePrefix + name.toLowerCase().replaceAll(RegExp('[^a-z]'), ''); |
||||
valueProps.addAll([ |
||||
"@annotation.XmlElement(name: '$name', namespace: $namespaceVariable, includeIfNull: false)", |
||||
'$type? $variable;', |
||||
]); |
||||
findProps.addAll([ |
||||
"@annotation.XmlElement(name: '$name', namespace: $namespaceVariable, includeIfNull: false)", |
||||
'bool? $variable;', |
||||
]); |
||||
variables.add(variable); |
||||
} |
||||
File('lib/src/webdav/props.dart').writeAsStringSync( |
||||
[ |
||||
'// ignore_for_file: public_member_api_docs', |
||||
"import 'package:nextcloud/src/webdav/webdav.dart';", |
||||
"import 'package:xml/xml.dart';", |
||||
"import 'package:xml_annotation/xml_annotation.dart' as annotation;", |
||||
"part 'props.g.dart';", |
||||
'', |
||||
...generateClass('WebDavPropfindProp', 'prop', 'namespaceDav', findProps, variables), |
||||
...generateClass('WebDavProp', 'prop', 'namespaceDav', valueProps, variables), |
||||
...generateClass('WebDavOcFilterRules', 'filter-rules', 'namespaceOwncloud', valueProps, variables), |
||||
].join('\n'), |
||||
); |
||||
} |
||||
|
||||
List<String> generateClass( |
||||
final String name, |
||||
final String elementName, |
||||
final String namespace, |
||||
final List<String> props, |
||||
final List<String> variables, |
||||
) => |
||||
[ |
||||
'@annotation.XmlSerializable(createMixin: true)', |
||||
"@annotation.XmlRootElement(name: '$elementName', namespace: $namespace)", |
||||
'class $name with _\$${name}XmlSerializableMixin {', |
||||
' $name({', |
||||
...variables.map((final variable) => ' this.$variable,'), |
||||
' });', |
||||
' factory $name.fromXmlElement(final XmlElement element) => _\$${name}FromXmlElement(element);', |
||||
...props.map((final prop) => ' $prop'), |
||||
'}', |
||||
]; |
||||
|
||||
String convertNamespace(final String namespacePrefix) { |
||||
switch (namespacePrefix) { |
||||
case 'dav': |
||||
return 'namespaceDav'; |
||||
case 'oc': |
||||
return 'namespaceOwncloud'; |
||||
case 'nc': |
||||
return 'namespaceNextcloud'; |
||||
case 'ocs': |
||||
return 'namespaceOpenCollaborationServices'; |
||||
case 'ocm': |
||||
return 'namespaceOpenCloudMesh'; |
||||
default: |
||||
throw Exception('Unknown namespace prefix "$namespacePrefix"'); |
||||
} |
||||
} |
|
@ -1,166 +1,263 @@
|
||||
part of '../../nextcloud.dart'; |
||||
|
||||
/// Mapping of all WebDAV properties. |
||||
enum WebDavProps { |
||||
/// Contains the Last-Modified header value . |
||||
davLastModified('d:getlastmodified'), |
||||
|
||||
/// Contains the ETag header value. |
||||
davETag('d:getetag'), |
||||
|
||||
/// Contains the Content-Type header value. |
||||
davContentType('d:getcontenttype'), |
||||
|
||||
/// Specifies the nature of the resource. |
||||
davResourceType('d:resourcetype'), |
||||
|
||||
/// Contains the Content-Length header. |
||||
davContentLength('d:getcontentlength'), |
||||
|
||||
/// The fileid namespaced by the instance id, globally unique |
||||
ocId('oc:id'), |
||||
|
||||
/// The unique id for the file within the instance |
||||
ocFileId('oc:fileid'), |
||||
|
||||
/// List of user specified tags. Can be modified. |
||||
ocTags('oc:tags'), |
||||
|
||||
/// Whether a resource is tagged as favorite. |
||||
/// Can be modified and reported on with list-files. |
||||
ocFavorite('oc:favorite'), |
||||
|
||||
/// List of collaborative tags. Can be reported on with list-files. |
||||
/// |
||||
/// Valid system tags are: |
||||
/// - oc:id |
||||
/// - oc:display-name |
||||
/// - oc:user-visible |
||||
/// - oc:user-assignable |
||||
/// - oc:groups |
||||
/// - oc:can-assign |
||||
ocSystemTag('oc:systemtag'), |
||||
|
||||
/// Can be reported on with list-files. |
||||
ocCircle('oc:circle'), |
||||
|
||||
/// Link to the comments for this resource. |
||||
ocCommentsHref('oc:comments-href'), |
||||
|
||||
/// Number of comments. |
||||
ocCommentsCount('oc:comments-count'), |
||||
|
||||
/// Number of unread comments. |
||||
ocCommentsUnread('oc:comments-unread'), |
||||
|
||||
/// Download URL. |
||||
ocDownloadURL('oc:downloadURL'), |
||||
|
||||
/// The user id of the owner of a shared file |
||||
ocOwnerId('oc:owner-id'), |
||||
|
||||
/// The display name of the owner of a shared file |
||||
ocOwnerDisplayName('oc:owner-display-name'), |
||||
|
||||
/// Share types of this file. |
||||
/// |
||||
/// Returns a list of share-type objects where: |
||||
/// - 0: user share |
||||
/// - 1: group share |
||||
/// - 2: usergroup share |
||||
/// - 3: public link |
||||
/// - 4: email |
||||
/// - 5: contact |
||||
/// - 6: remote (federated cloud) |
||||
/// - 7: circle |
||||
/// - 8: guest |
||||
/// - 9: remote group |
||||
/// - 10: room (talk conversation) |
||||
/// - 11: userroom |
||||
/// See also [OCS Share API](https://docs.nextcloud.com/server/19/developer_manual/client_apis/OCS/ocs-share-api.html) |
||||
ocShareTypes('oc:share-types'), |
||||
|
||||
/// List of users this file is shared with. |
||||
/// |
||||
/// Returns a list of sharee objects with: |
||||
/// - id |
||||
/// - display-name |
||||
/// - type (share type) |
||||
ncShareees('nc:sharees'), |
||||
|
||||
/// Share note. |
||||
ncNote('nc:note'), |
||||
|
||||
/// Checksums as provided during upload. |
||||
/// |
||||
/// Returns a list of checksum objects. |
||||
ocChecksums('oc:checksums'), |
||||
|
||||
/// Unlike [[davContentLength]], this property also works for folders |
||||
/// reporting the size of everything in the folder. |
||||
ocSize('oc:size'), |
||||
|
||||
/// WebDAV permissions: |
||||
/// |
||||
/// - S: shared |
||||
/// - R: shareable |
||||
/// - M: mounted |
||||
/// - G: readable |
||||
/// - D: deletable |
||||
/// - NV: updateable, renameable, moveble |
||||
/// - W: updateable (file) |
||||
/// - CK: creatable |
||||
ocPermissions('oc:permissions'), |
||||
|
||||
/// Nextcloud CRUDS permissions: |
||||
/// |
||||
/// - 1: read |
||||
/// - 2: update |
||||
/// - 4: create |
||||
/// - 8: delete |
||||
/// - 16: share |
||||
/// - 31: all |
||||
ocsSharePermissions('ocs:share-permissions'), |
||||
|
||||
/// OCM permissions: |
||||
/// |
||||
/// - share |
||||
/// - read |
||||
/// - write |
||||
ocmSharePermissions('ocm:share-permissions'), |
||||
|
||||
/// system data-fingerprint |
||||
ncDataFingerprint('nc:data-fingerprint'), |
||||
|
||||
/// Whether a preview is available. |
||||
ncHasPreview('nc:has-preview'), |
||||
|
||||
/// Mount type, e.g. global, group, user, personal, shared, shared-root, external |
||||
ncMountType('nc:mount-type'), |
||||
|
||||
/// Is this file is encrypted, 0 for false or 1 for true. |
||||
ncIsEncrypted('nc:is-encrypted'), |
||||
|
||||
// ignore: public_member_api_docs |
||||
ncMetadataETag('nc:metadata_etag'), |
||||
|
||||
/// Date this file was uploaded. |
||||
ncUploadTime('nc:upload_time'), |
||||
|
||||
/// Creation time of the file as provided during upload. |
||||
ncCreationTime('nc:creation_time'), |
||||
|
||||
// ignore: public_member_api_docs |
||||
ncRichWorkspace('nc:rich-workspace'); |
||||
|
||||
// ignore: public_member_api_docs |
||||
const WebDavProps(this.name); |
||||
// ignore_for_file: public_member_api_docs |
||||
import 'package:nextcloud/src/webdav/webdav.dart'; |
||||
import 'package:xml/xml.dart'; |
||||
import 'package:xml_annotation/xml_annotation.dart' as annotation; |
||||
part 'props.g.dart'; |
||||
|
||||
@annotation.XmlSerializable(createMixin: true) |
||||
@annotation.XmlRootElement(name: 'prop', namespace: namespaceDav) |
||||
class WebDavPropfindProp with _$WebDavPropfindPropXmlSerializableMixin { |
||||
WebDavPropfindProp({ |
||||
this.davgetlastmodified, |
||||
this.davgetetag, |
||||
this.davgetcontenttype, |
||||
this.davgetcontentlength, |
||||
this.ocid, |
||||
this.ocfileid, |
||||
this.ocfavorite, |
||||
this.occommentshref, |
||||
this.occommentscount, |
||||
this.occommentsunread, |
||||
this.ocdownloadurl, |
||||
this.ocownerid, |
||||
this.ocownerdisplayname, |
||||
this.ocsize, |
||||
this.ocpermissions, |
||||
this.ncnote, |
||||
this.ncdatafingerprint, |
||||
this.nchaspreview, |
||||
this.ncmounttype, |
||||
this.ncisencrypted, |
||||
this.ncmetadataetag, |
||||
this.ncuploadtime, |
||||
this.nccreationtime, |
||||
this.ncrichworkspace, |
||||
this.ocssharepermissions, |
||||
this.ocmsharepermissions, |
||||
}); |
||||
factory WebDavPropfindProp.fromXmlElement(final XmlElement element) => _$WebDavPropfindPropFromXmlElement(element); |
||||
@annotation.XmlElement(name: 'getlastmodified', namespace: namespaceDav, includeIfNull: false) |
||||
bool? davgetlastmodified; |
||||
@annotation.XmlElement(name: 'getetag', namespace: namespaceDav, includeIfNull: false) |
||||
bool? davgetetag; |
||||
@annotation.XmlElement(name: 'getcontenttype', namespace: namespaceDav, includeIfNull: false) |
||||
bool? davgetcontenttype; |
||||
@annotation.XmlElement(name: 'getcontentlength', namespace: namespaceDav, includeIfNull: false) |
||||
bool? davgetcontentlength; |
||||
@annotation.XmlElement(name: 'id', namespace: namespaceOwncloud, includeIfNull: false) |
||||
bool? ocid; |
||||
@annotation.XmlElement(name: 'fileid', namespace: namespaceOwncloud, includeIfNull: false) |
||||
bool? ocfileid; |
||||
@annotation.XmlElement(name: 'favorite', namespace: namespaceOwncloud, includeIfNull: false) |
||||
bool? ocfavorite; |
||||
@annotation.XmlElement(name: 'comments-href', namespace: namespaceOwncloud, includeIfNull: false) |
||||
bool? occommentshref; |
||||
@annotation.XmlElement(name: 'comments-count', namespace: namespaceOwncloud, includeIfNull: false) |
||||
bool? occommentscount; |
||||
@annotation.XmlElement(name: 'comments-unread', namespace: namespaceOwncloud, includeIfNull: false) |
||||
bool? occommentsunread; |
||||
@annotation.XmlElement(name: 'downloadURL', namespace: namespaceOwncloud, includeIfNull: false) |
||||
bool? ocdownloadurl; |
||||
@annotation.XmlElement(name: 'owner-id', namespace: namespaceOwncloud, includeIfNull: false) |
||||
bool? ocownerid; |
||||
@annotation.XmlElement(name: 'owner-display-name', namespace: namespaceOwncloud, includeIfNull: false) |
||||
bool? ocownerdisplayname; |
||||
@annotation.XmlElement(name: 'size', namespace: namespaceOwncloud, includeIfNull: false) |
||||
bool? ocsize; |
||||
@annotation.XmlElement(name: 'permissions', namespace: namespaceOwncloud, includeIfNull: false) |
||||
bool? ocpermissions; |
||||
@annotation.XmlElement(name: 'note', namespace: namespaceNextcloud, includeIfNull: false) |
||||
bool? ncnote; |
||||
@annotation.XmlElement(name: 'data-fingerprint', namespace: namespaceNextcloud, includeIfNull: false) |
||||
bool? ncdatafingerprint; |
||||
@annotation.XmlElement(name: 'has-preview', namespace: namespaceNextcloud, includeIfNull: false) |
||||
bool? nchaspreview; |
||||
@annotation.XmlElement(name: 'mount-type', namespace: namespaceNextcloud, includeIfNull: false) |
||||
bool? ncmounttype; |
||||
@annotation.XmlElement(name: 'is-encrypted', namespace: namespaceNextcloud, includeIfNull: false) |
||||
bool? ncisencrypted; |
||||
@annotation.XmlElement(name: 'metadata_etag', namespace: namespaceNextcloud, includeIfNull: false) |
||||
bool? ncmetadataetag; |
||||
@annotation.XmlElement(name: 'upload_time', namespace: namespaceNextcloud, includeIfNull: false) |
||||
bool? ncuploadtime; |
||||
@annotation.XmlElement(name: 'creation_time', namespace: namespaceNextcloud, includeIfNull: false) |
||||
bool? nccreationtime; |
||||
@annotation.XmlElement(name: 'rich-workspace', namespace: namespaceNextcloud, includeIfNull: false) |
||||
bool? ncrichworkspace; |
||||
@annotation.XmlElement(name: 'share-permissions', namespace: namespaceOpenCollaborationServices, includeIfNull: false) |
||||
bool? ocssharepermissions; |
||||
@annotation.XmlElement(name: 'share-permissions', namespace: namespaceOpenCloudMesh, includeIfNull: false) |
||||
bool? ocmsharepermissions; |
||||
} |
||||
|
||||
/// Name of the prop |
||||
final String name; |
||||
@annotation.XmlSerializable(createMixin: true) |
||||
@annotation.XmlRootElement(name: 'prop', namespace: namespaceDav) |
||||
class WebDavProp with _$WebDavPropXmlSerializableMixin { |
||||
WebDavProp({ |
||||
this.davgetlastmodified, |
||||
this.davgetetag, |
||||
this.davgetcontenttype, |
||||
this.davgetcontentlength, |
||||
this.ocid, |
||||
this.ocfileid, |
||||
this.ocfavorite, |
||||
this.occommentshref, |
||||
this.occommentscount, |
||||
this.occommentsunread, |
||||
this.ocdownloadurl, |
||||
this.ocownerid, |
||||
this.ocownerdisplayname, |
||||
this.ocsize, |
||||
this.ocpermissions, |
||||
this.ncnote, |
||||
this.ncdatafingerprint, |
||||
this.nchaspreview, |
||||
this.ncmounttype, |
||||
this.ncisencrypted, |
||||
this.ncmetadataetag, |
||||
this.ncuploadtime, |
||||
this.nccreationtime, |
||||
this.ncrichworkspace, |
||||
this.ocssharepermissions, |
||||
this.ocmsharepermissions, |
||||
}); |
||||
factory WebDavProp.fromXmlElement(final XmlElement element) => _$WebDavPropFromXmlElement(element); |
||||
@annotation.XmlElement(name: 'getlastmodified', namespace: namespaceDav, includeIfNull: false) |
||||
String? davgetlastmodified; |
||||
@annotation.XmlElement(name: 'getetag', namespace: namespaceDav, includeIfNull: false) |
||||
String? davgetetag; |
||||
@annotation.XmlElement(name: 'getcontenttype', namespace: namespaceDav, includeIfNull: false) |
||||
String? davgetcontenttype; |
||||
@annotation.XmlElement(name: 'getcontentlength', namespace: namespaceDav, includeIfNull: false) |
||||
int? davgetcontentlength; |
||||
@annotation.XmlElement(name: 'id', namespace: namespaceOwncloud, includeIfNull: false) |
||||
String? ocid; |
||||
@annotation.XmlElement(name: 'fileid', namespace: namespaceOwncloud, includeIfNull: false) |
||||
String? ocfileid; |
||||
@annotation.XmlElement(name: 'favorite', namespace: namespaceOwncloud, includeIfNull: false) |
||||
int? ocfavorite; |
||||
@annotation.XmlElement(name: 'comments-href', namespace: namespaceOwncloud, includeIfNull: false) |
||||
String? occommentshref; |
||||
@annotation.XmlElement(name: 'comments-count', namespace: namespaceOwncloud, includeIfNull: false) |
||||
int? occommentscount; |
||||
@annotation.XmlElement(name: 'comments-unread', namespace: namespaceOwncloud, includeIfNull: false) |
||||
int? occommentsunread; |
||||
@annotation.XmlElement(name: 'downloadURL', namespace: namespaceOwncloud, includeIfNull: false) |
||||
String? ocdownloadurl; |
||||
@annotation.XmlElement(name: 'owner-id', namespace: namespaceOwncloud, includeIfNull: false) |
||||
String? ocownerid; |
||||
@annotation.XmlElement(name: 'owner-display-name', namespace: namespaceOwncloud, includeIfNull: false) |
||||
String? ocownerdisplayname; |
||||
@annotation.XmlElement(name: 'size', namespace: namespaceOwncloud, includeIfNull: false) |
||||
int? ocsize; |
||||
@annotation.XmlElement(name: 'permissions', namespace: namespaceOwncloud, includeIfNull: false) |
||||
String? ocpermissions; |
||||
@annotation.XmlElement(name: 'note', namespace: namespaceNextcloud, includeIfNull: false) |
||||
String? ncnote; |
||||
@annotation.XmlElement(name: 'data-fingerprint', namespace: namespaceNextcloud, includeIfNull: false) |
||||
String? ncdatafingerprint; |
||||
@annotation.XmlElement(name: 'has-preview', namespace: namespaceNextcloud, includeIfNull: false) |
||||
bool? nchaspreview; |
||||
@annotation.XmlElement(name: 'mount-type', namespace: namespaceNextcloud, includeIfNull: false) |
||||
String? ncmounttype; |
||||
@annotation.XmlElement(name: 'is-encrypted', namespace: namespaceNextcloud, includeIfNull: false) |
||||
int? ncisencrypted; |
||||
@annotation.XmlElement(name: 'metadata_etag', namespace: namespaceNextcloud, includeIfNull: false) |
||||
String? ncmetadataetag; |
||||
@annotation.XmlElement(name: 'upload_time', namespace: namespaceNextcloud, includeIfNull: false) |
||||
int? ncuploadtime; |
||||
@annotation.XmlElement(name: 'creation_time', namespace: namespaceNextcloud, includeIfNull: false) |
||||
int? nccreationtime; |
||||
@annotation.XmlElement(name: 'rich-workspace', namespace: namespaceNextcloud, includeIfNull: false) |
||||
String? ncrichworkspace; |
||||
@annotation.XmlElement(name: 'share-permissions', namespace: namespaceOpenCollaborationServices, includeIfNull: false) |
||||
int? ocssharepermissions; |
||||
@annotation.XmlElement(name: 'share-permissions', namespace: namespaceOpenCloudMesh, includeIfNull: false) |
||||
String? ocmsharepermissions; |
||||
} |
||||
|
||||
// coverage:ignore-start |
||||
@override |
||||
String toString() => name; |
||||
// coverage:ignore-end |
||||
@annotation.XmlSerializable(createMixin: true) |
||||
@annotation.XmlRootElement(name: 'filter-rules', namespace: namespaceOwncloud) |
||||
class WebDavOcFilterRules with _$WebDavOcFilterRulesXmlSerializableMixin { |
||||
WebDavOcFilterRules({ |
||||
this.davgetlastmodified, |
||||
this.davgetetag, |
||||
this.davgetcontenttype, |
||||
this.davgetcontentlength, |
||||
this.ocid, |
||||
this.ocfileid, |
||||
this.ocfavorite, |
||||
this.occommentshref, |
||||
this.occommentscount, |
||||
this.occommentsunread, |
||||
this.ocdownloadurl, |
||||
this.ocownerid, |
||||
this.ocownerdisplayname, |
||||
this.ocsize, |
||||
this.ocpermissions, |
||||
this.ncnote, |
||||
this.ncdatafingerprint, |
||||
this.nchaspreview, |
||||
this.ncmounttype, |
||||
this.ncisencrypted, |
||||
this.ncmetadataetag, |
||||
this.ncuploadtime, |
||||
this.nccreationtime, |
||||
this.ncrichworkspace, |
||||
this.ocssharepermissions, |
||||
this.ocmsharepermissions, |
||||
}); |
||||
factory WebDavOcFilterRules.fromXmlElement(final XmlElement element) => _$WebDavOcFilterRulesFromXmlElement(element); |
||||
@annotation.XmlElement(name: 'getlastmodified', namespace: namespaceDav, includeIfNull: false) |
||||
String? davgetlastmodified; |
||||
@annotation.XmlElement(name: 'getetag', namespace: namespaceDav, includeIfNull: false) |
||||
String? davgetetag; |
||||
@annotation.XmlElement(name: 'getcontenttype', namespace: namespaceDav, includeIfNull: false) |
||||
String? davgetcontenttype; |
||||
@annotation.XmlElement(name: 'getcontentlength', namespace: namespaceDav, includeIfNull: false) |
||||
int? davgetcontentlength; |
||||
@annotation.XmlElement(name: 'id', namespace: namespaceOwncloud, includeIfNull: false) |
||||
String? ocid; |
||||
@annotation.XmlElement(name: 'fileid', namespace: namespaceOwncloud, includeIfNull: false) |
||||
String? ocfileid; |
||||
@annotation.XmlElement(name: 'favorite', namespace: namespaceOwncloud, includeIfNull: false) |
||||
int? ocfavorite; |
||||
@annotation.XmlElement(name: 'comments-href', namespace: namespaceOwncloud, includeIfNull: false) |
||||
String? occommentshref; |
||||
@annotation.XmlElement(name: 'comments-count', namespace: namespaceOwncloud, includeIfNull: false) |
||||
int? occommentscount; |
||||
@annotation.XmlElement(name: 'comments-unread', namespace: namespaceOwncloud, includeIfNull: false) |
||||
int? occommentsunread; |
||||
@annotation.XmlElement(name: 'downloadURL', namespace: namespaceOwncloud, includeIfNull: false) |
||||
String? ocdownloadurl; |
||||
@annotation.XmlElement(name: 'owner-id', namespace: namespaceOwncloud, includeIfNull: false) |
||||
String? ocownerid; |
||||
@annotation.XmlElement(name: 'owner-display-name', namespace: namespaceOwncloud, includeIfNull: false) |
||||
String? ocownerdisplayname; |
||||
@annotation.XmlElement(name: 'size', namespace: namespaceOwncloud, includeIfNull: false) |
||||
int? ocsize; |
||||
@annotation.XmlElement(name: 'permissions', namespace: namespaceOwncloud, includeIfNull: false) |
||||
String? ocpermissions; |
||||
@annotation.XmlElement(name: 'note', namespace: namespaceNextcloud, includeIfNull: false) |
||||
String? ncnote; |
||||
@annotation.XmlElement(name: 'data-fingerprint', namespace: namespaceNextcloud, includeIfNull: false) |
||||
String? ncdatafingerprint; |
||||
@annotation.XmlElement(name: 'has-preview', namespace: namespaceNextcloud, includeIfNull: false) |
||||
bool? nchaspreview; |
||||
@annotation.XmlElement(name: 'mount-type', namespace: namespaceNextcloud, includeIfNull: false) |
||||
String? ncmounttype; |
||||
@annotation.XmlElement(name: 'is-encrypted', namespace: namespaceNextcloud, includeIfNull: false) |
||||
int? ncisencrypted; |
||||
@annotation.XmlElement(name: 'metadata_etag', namespace: namespaceNextcloud, includeIfNull: false) |
||||
String? ncmetadataetag; |
||||
@annotation.XmlElement(name: 'upload_time', namespace: namespaceNextcloud, includeIfNull: false) |
||||
int? ncuploadtime; |
||||
@annotation.XmlElement(name: 'creation_time', namespace: namespaceNextcloud, includeIfNull: false) |
||||
int? nccreationtime; |
||||
@annotation.XmlElement(name: 'rich-workspace', namespace: namespaceNextcloud, includeIfNull: false) |
||||
String? ncrichworkspace; |
||||
@annotation.XmlElement(name: 'share-permissions', namespace: namespaceOpenCollaborationServices, includeIfNull: false) |
||||
int? ocssharepermissions; |
||||
@annotation.XmlElement(name: 'share-permissions', namespace: namespaceOpenCloudMesh, includeIfNull: false) |
||||
String? ocmsharepermissions; |
||||
} |
||||
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,137 @@
|
||||
// ignore_for_file: public_member_api_docs |
||||
|
||||
import 'package:intl/intl.dart'; |
||||
import 'package:nextcloud/src/webdav/props.dart'; |
||||
import 'package:xml/xml.dart'; |
||||
import 'package:xml_annotation/xml_annotation.dart' as annotation; |
||||
|
||||
part 'webdav.g.dart'; |
||||
|
||||
/// Format used in WebDAV |
||||
final webdavDateFormat = DateFormat('E, d MMM yyyy HH:mm:ss', 'en_US'); |
||||
|
||||
const namespaceDav = 'DAV:'; |
||||
const namespaceOwncloud = 'http://owncloud.org/ns'; |
||||
const namespaceNextcloud = 'http://nextcloud.org/ns'; |
||||
const namespaceOpenCollaborationServices = 'http://open-collaboration-services.org/ns'; |
||||
const namespaceOpenCloudMesh = 'http://open-cloud-mesh.org/ns'; |
||||
|
||||
final Map<String, String> namespaces = { |
||||
namespaceDav: 'd', |
||||
namespaceOwncloud: 'oc', |
||||
namespaceNextcloud: 'nc', |
||||
namespaceOpenCollaborationServices: 'ocs', |
||||
namespaceOpenCloudMesh: 'ocm', |
||||
}; |
||||
|
||||
@annotation.XmlSerializable(createMixin: true) |
||||
@annotation.XmlRootElement(name: 'multistatus', namespace: namespaceDav) |
||||
class WebDavMultistatus with _$WebDavMultistatusXmlSerializableMixin { |
||||
WebDavMultistatus({ |
||||
required this.responses, |
||||
}); |
||||
|
||||
factory WebDavMultistatus.fromXmlElement(final XmlElement element) => _$WebDavMultistatusFromXmlElement(element); |
||||
|
||||
@annotation.XmlElement(name: 'response', namespace: namespaceDav) |
||||
final List<WebDavResponse> responses; |
||||
} |
||||
|
||||
@annotation.XmlSerializable(createMixin: true) |
||||
@annotation.XmlRootElement(name: 'response', namespace: namespaceDav) |
||||
class WebDavResponse with _$WebDavResponseXmlSerializableMixin { |
||||
WebDavResponse({ |
||||
required this.href, |
||||
required this.propstats, |
||||
}); |
||||
|
||||
factory WebDavResponse.fromXmlElement(final XmlElement element) => _$WebDavResponseFromXmlElement(element); |
||||
|
||||
@annotation.XmlElement(name: 'href', namespace: namespaceDav) |
||||
final String? href; |
||||
|
||||
@annotation.XmlElement(name: 'propstat', namespace: namespaceDav) |
||||
final List<WebDavPropstat> propstats; |
||||
} |
||||
|
||||
@annotation.XmlSerializable(createMixin: true) |
||||
@annotation.XmlRootElement(name: 'propstat', namespace: namespaceDav) |
||||
class WebDavPropstat with _$WebDavPropstatXmlSerializableMixin { |
||||
WebDavPropstat({ |
||||
required this.status, |
||||
required this.prop, |
||||
}); |
||||
|
||||
factory WebDavPropstat.fromXmlElement(final XmlElement element) => _$WebDavPropstatFromXmlElement(element); |
||||
|
||||
@annotation.XmlElement(name: 'status', namespace: namespaceDav) |
||||
final String status; |
||||
|
||||
@annotation.XmlElement(name: 'prop', namespace: namespaceDav) |
||||
final WebDavProp prop; |
||||
} |
||||
|
||||
@annotation.XmlSerializable(createMixin: true) |
||||
@annotation.XmlRootElement(name: 'propertyupdate', namespace: namespaceDav) |
||||
class WebDavPropertyupdate with _$WebDavPropertyupdateXmlSerializableMixin { |
||||
WebDavPropertyupdate({ |
||||
required this.set, |
||||
}); |
||||
|
||||
factory WebDavPropertyupdate.fromXmlElement(final XmlElement element) => |
||||
_$WebDavPropertyupdateFromXmlElement(element); |
||||
|
||||
@annotation.XmlElement(name: 'set', namespace: namespaceDav) |
||||
final WebDavSet set; |
||||
} |
||||
|
||||
@annotation.XmlSerializable(createMixin: true) |
||||
@annotation.XmlRootElement(name: 'propertyupdate', namespace: namespaceDav) |
||||
class WebDavSet with _$WebDavSetXmlSerializableMixin { |
||||
WebDavSet({ |
||||
required this.prop, |
||||
}); |
||||
|
||||
factory WebDavSet.fromXmlElement(final XmlElement element) => _$WebDavSetFromXmlElement(element); |
||||
|
||||
@annotation.XmlElement(name: 'prop', namespace: namespaceDav) |
||||
final WebDavProp prop; |
||||
} |
||||
|
||||
@annotation.XmlSerializable(createMixin: true) |
||||
@annotation.XmlRootElement(name: 'propfind', namespace: namespaceDav) |
||||
class WebDavPropfind with _$WebDavPropfindXmlSerializableMixin { |
||||
WebDavPropfind({ |
||||
required this.prop, |
||||
}); |
||||
|
||||
factory WebDavPropfind.fromXmlElement(final XmlElement element) => _$WebDavPropfindFromXmlElement(element); |
||||
|
||||
@annotation.XmlElement(name: 'prop', namespace: namespaceDav) |
||||
final WebDavPropfindProp prop; |
||||
} |
||||
|
||||
@annotation.XmlSerializable(createMixin: true) |
||||
@annotation.XmlRootElement(name: 'filter-files', namespace: namespaceOwncloud) |
||||
class WebDavOcFilterFiles with _$WebDavOcFilterFilesXmlSerializableMixin { |
||||
WebDavOcFilterFiles({ |
||||
required this.filterRules, |
||||
required this.prop, |
||||
}); |
||||
|
||||
factory WebDavOcFilterFiles.fromXmlElement(final XmlElement element) => _$WebDavOcFilterFilesFromXmlElement(element); |
||||
|
||||
@annotation.XmlElement(name: 'filter-rules', namespace: namespaceOwncloud) |
||||
final WebDavOcFilterRules filterRules; |
||||
|
||||
@annotation.XmlElement(name: 'prop', namespace: namespaceDav) |
||||
final WebDavPropfindProp prop; |
||||
} |
||||
|
||||
// TODO: d:resourcetype |
||||
// TODO: oc:checksum |
||||
// TODO: oc:tags |
||||
// TODO: oc:systemtag |
||||
// TODO: oc:circle |
||||
// TODO: oc:share-types |
||||
// TODO: nc:sharees |
@ -0,0 +1,477 @@
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND |
||||
|
||||
part of 'webdav.dart'; |
||||
|
||||
// ************************************************************************** |
||||
// XmlSerializableGenerator |
||||
// ************************************************************************** |
||||
|
||||
void _$WebDavMultistatusBuildXmlChildren(WebDavMultistatus instance, XmlBuilder builder, |
||||
{Map<String, String> namespaces = const {}}) { |
||||
final responses = instance.responses; |
||||
final responsesSerialized = responses; |
||||
for (final value in responsesSerialized) { |
||||
builder.element('response', namespace: 'DAV:', nest: () { |
||||
value.buildXmlChildren(builder, namespaces: namespaces); |
||||
}); |
||||
} |
||||
} |
||||
|
||||
void _$WebDavMultistatusBuildXmlElement(WebDavMultistatus instance, XmlBuilder builder, |
||||
{Map<String, String> namespaces = const {}}) { |
||||
builder.element('multistatus', namespace: 'DAV:', namespaces: namespaces, nest: () { |
||||
instance.buildXmlChildren(builder, namespaces: namespaces); |
||||
}); |
||||
} |
||||
|
||||
WebDavMultistatus _$WebDavMultistatusFromXmlElement(XmlElement element) { |
||||
final responses = element.getElements('response', namespace: 'DAV:')!; |
||||
return WebDavMultistatus(responses: responses.map((e) => WebDavResponse.fromXmlElement(e)).toList()); |
||||
} |
||||
|
||||
List<XmlAttribute> _$WebDavMultistatusToXmlAttributes(WebDavMultistatus instance, |
||||
{Map<String, String?> namespaces = const {}}) { |
||||
final attributes = <XmlAttribute>[]; |
||||
return attributes; |
||||
} |
||||
|
||||
List<XmlNode> _$WebDavMultistatusToXmlChildren(WebDavMultistatus instance, |
||||
{Map<String, String?> namespaces = const {}}) { |
||||
final children = <XmlNode>[]; |
||||
final responses = instance.responses; |
||||
final responsesSerialized = responses; |
||||
final responsesConstructed = responsesSerialized.map((e) => XmlElement(XmlName('response', namespaces['DAV:']), |
||||
e.toXmlAttributes(namespaces: namespaces), e.toXmlChildren(namespaces: namespaces))); |
||||
children.addAll(responsesConstructed); |
||||
return children; |
||||
} |
||||
|
||||
XmlElement _$WebDavMultistatusToXmlElement(WebDavMultistatus instance, {Map<String, String?> namespaces = const {}}) { |
||||
return XmlElement( |
||||
XmlName('multistatus', namespaces['DAV:']), |
||||
[...namespaces.toXmlAttributes(), ...instance.toXmlAttributes(namespaces: namespaces)], |
||||
instance.toXmlChildren(namespaces: namespaces)); |
||||
} |
||||
|
||||
mixin _$WebDavMultistatusXmlSerializableMixin { |
||||
void buildXmlChildren(XmlBuilder builder, {Map<String, String> namespaces = const {}}) => |
||||
_$WebDavMultistatusBuildXmlChildren(this as WebDavMultistatus, builder, namespaces: namespaces); |
||||
|
||||
void buildXmlElement(XmlBuilder builder, {Map<String, String> namespaces = const {}}) => |
||||
_$WebDavMultistatusBuildXmlElement(this as WebDavMultistatus, builder, namespaces: namespaces); |
||||
|
||||
List<XmlAttribute> toXmlAttributes({Map<String, String?> namespaces = const {}}) => |
||||
_$WebDavMultistatusToXmlAttributes(this as WebDavMultistatus, namespaces: namespaces); |
||||
|
||||
List<XmlNode> toXmlChildren({Map<String, String?> namespaces = const {}}) => |
||||
_$WebDavMultistatusToXmlChildren(this as WebDavMultistatus, namespaces: namespaces); |
||||
|
||||
XmlElement toXmlElement({Map<String, String?> namespaces = const {}}) => |
||||
_$WebDavMultistatusToXmlElement(this as WebDavMultistatus, namespaces: namespaces); |
||||
} |
||||
|
||||
void _$WebDavResponseBuildXmlChildren(WebDavResponse instance, XmlBuilder builder, |
||||
{Map<String, String> namespaces = const {}}) { |
||||
final href = instance.href; |
||||
final hrefSerialized = href; |
||||
builder.element('href', namespace: 'DAV:', nest: () { |
||||
if (hrefSerialized != null) { |
||||
builder.text(hrefSerialized); |
||||
} |
||||
}); |
||||
final propstats = instance.propstats; |
||||
final propstatsSerialized = propstats; |
||||
for (final value in propstatsSerialized) { |
||||
builder.element('propstat', namespace: 'DAV:', nest: () { |
||||
value.buildXmlChildren(builder, namespaces: namespaces); |
||||
}); |
||||
} |
||||
} |
||||
|
||||
void _$WebDavResponseBuildXmlElement(WebDavResponse instance, XmlBuilder builder, |
||||
{Map<String, String> namespaces = const {}}) { |
||||
builder.element('response', namespace: 'DAV:', namespaces: namespaces, nest: () { |
||||
instance.buildXmlChildren(builder, namespaces: namespaces); |
||||
}); |
||||
} |
||||
|
||||
WebDavResponse _$WebDavResponseFromXmlElement(XmlElement element) { |
||||
final href = element.getElement('href', namespace: 'DAV:')?.getText(); |
||||
final propstats = element.getElements('propstat', namespace: 'DAV:')!; |
||||
return WebDavResponse(href: href, propstats: propstats.map((e) => WebDavPropstat.fromXmlElement(e)).toList()); |
||||
} |
||||
|
||||
List<XmlAttribute> _$WebDavResponseToXmlAttributes(WebDavResponse instance, |
||||
{Map<String, String?> namespaces = const {}}) { |
||||
final attributes = <XmlAttribute>[]; |
||||
return attributes; |
||||
} |
||||
|
||||
List<XmlNode> _$WebDavResponseToXmlChildren(WebDavResponse instance, {Map<String, String?> namespaces = const {}}) { |
||||
final children = <XmlNode>[]; |
||||
final href = instance.href; |
||||
final hrefSerialized = href; |
||||
final hrefConstructed = |
||||
XmlElement(XmlName('href', namespaces['DAV:']), [], hrefSerialized != null ? [XmlText(hrefSerialized)] : []); |
||||
children.add(hrefConstructed); |
||||
final propstats = instance.propstats; |
||||
final propstatsSerialized = propstats; |
||||
final propstatsConstructed = propstatsSerialized.map((e) => XmlElement(XmlName('propstat', namespaces['DAV:']), |
||||
e.toXmlAttributes(namespaces: namespaces), e.toXmlChildren(namespaces: namespaces))); |
||||
children.addAll(propstatsConstructed); |
||||
return children; |
||||
} |
||||
|
||||
XmlElement _$WebDavResponseToXmlElement(WebDavResponse instance, {Map<String, String?> namespaces = const {}}) { |
||||
return XmlElement( |
||||
XmlName('response', namespaces['DAV:']), |
||||
[...namespaces.toXmlAttributes(), ...instance.toXmlAttributes(namespaces: namespaces)], |
||||
instance.toXmlChildren(namespaces: namespaces)); |
||||
} |
||||
|
||||
mixin _$WebDavResponseXmlSerializableMixin { |
||||
void buildXmlChildren(XmlBuilder builder, {Map<String, String> namespaces = const {}}) => |
||||
_$WebDavResponseBuildXmlChildren(this as WebDavResponse, builder, namespaces: namespaces); |
||||
|
||||
void buildXmlElement(XmlBuilder builder, {Map<String, String> namespaces = const {}}) => |
||||
_$WebDavResponseBuildXmlElement(this as WebDavResponse, builder, namespaces: namespaces); |
||||
|
||||
List<XmlAttribute> toXmlAttributes({Map<String, String?> namespaces = const {}}) => |
||||
_$WebDavResponseToXmlAttributes(this as WebDavResponse, namespaces: namespaces); |
||||
|
||||
List<XmlNode> toXmlChildren({Map<String, String?> namespaces = const {}}) => |
||||
_$WebDavResponseToXmlChildren(this as WebDavResponse, namespaces: namespaces); |
||||
|
||||
XmlElement toXmlElement({Map<String, String?> namespaces = const {}}) => |
||||
_$WebDavResponseToXmlElement(this as WebDavResponse, namespaces: namespaces); |
||||
} |
||||
|
||||
void _$WebDavPropstatBuildXmlChildren(WebDavPropstat instance, XmlBuilder builder, |
||||
{Map<String, String> namespaces = const {}}) { |
||||
final status = instance.status; |
||||
final statusSerialized = status; |
||||
builder.element('status', namespace: 'DAV:', nest: () { |
||||
builder.text(statusSerialized); |
||||
}); |
||||
final prop = instance.prop; |
||||
final propSerialized = prop; |
||||
builder.element('prop', namespace: 'DAV:', nest: () { |
||||
propSerialized.buildXmlChildren(builder, namespaces: namespaces); |
||||
}); |
||||
} |
||||
|
||||
void _$WebDavPropstatBuildXmlElement(WebDavPropstat instance, XmlBuilder builder, |
||||
{Map<String, String> namespaces = const {}}) { |
||||
builder.element('propstat', namespace: 'DAV:', namespaces: namespaces, nest: () { |
||||
instance.buildXmlChildren(builder, namespaces: namespaces); |
||||
}); |
||||
} |
||||
|
||||
WebDavPropstat _$WebDavPropstatFromXmlElement(XmlElement element) { |
||||
final status = element.getElement('status', namespace: 'DAV:')!.getText()!; |
||||
final prop = element.getElement('prop', namespace: 'DAV:')!; |
||||
return WebDavPropstat(status: status, prop: WebDavProp.fromXmlElement(prop)); |
||||
} |
||||
|
||||
List<XmlAttribute> _$WebDavPropstatToXmlAttributes(WebDavPropstat instance, |
||||
{Map<String, String?> namespaces = const {}}) { |
||||
final attributes = <XmlAttribute>[]; |
||||
return attributes; |
||||
} |
||||
|
||||
List<XmlNode> _$WebDavPropstatToXmlChildren(WebDavPropstat instance, {Map<String, String?> namespaces = const {}}) { |
||||
final children = <XmlNode>[]; |
||||
final status = instance.status; |
||||
final statusSerialized = status; |
||||
final statusConstructed = XmlElement(XmlName('status', namespaces['DAV:']), [], [XmlText(statusSerialized)]); |
||||
children.add(statusConstructed); |
||||
final prop = instance.prop; |
||||
final propSerialized = prop; |
||||
final propConstructed = XmlElement(XmlName('prop', namespaces['DAV:']), |
||||
propSerialized.toXmlAttributes(namespaces: namespaces), propSerialized.toXmlChildren(namespaces: namespaces)); |
||||
children.add(propConstructed); |
||||
return children; |
||||
} |
||||
|
||||
XmlElement _$WebDavPropstatToXmlElement(WebDavPropstat instance, {Map<String, String?> namespaces = const {}}) { |
||||
return XmlElement( |
||||
XmlName('propstat', namespaces['DAV:']), |
||||
[...namespaces.toXmlAttributes(), ...instance.toXmlAttributes(namespaces: namespaces)], |
||||
instance.toXmlChildren(namespaces: namespaces)); |
||||
} |
||||
|
||||
mixin _$WebDavPropstatXmlSerializableMixin { |
||||
void buildXmlChildren(XmlBuilder builder, {Map<String, String> namespaces = const {}}) => |
||||
_$WebDavPropstatBuildXmlChildren(this as WebDavPropstat, builder, namespaces: namespaces); |
||||
|
||||
void buildXmlElement(XmlBuilder builder, {Map<String, String> namespaces = const {}}) => |
||||
_$WebDavPropstatBuildXmlElement(this as WebDavPropstat, builder, namespaces: namespaces); |
||||
|
||||
List<XmlAttribute> toXmlAttributes({Map<String, String?> namespaces = const {}}) => |
||||
_$WebDavPropstatToXmlAttributes(this as WebDavPropstat, namespaces: namespaces); |
||||
|
||||
List<XmlNode> toXmlChildren({Map<String, String?> namespaces = const {}}) => |
||||
_$WebDavPropstatToXmlChildren(this as WebDavPropstat, namespaces: namespaces); |
||||
|
||||
XmlElement toXmlElement({Map<String, String?> namespaces = const {}}) => |
||||
_$WebDavPropstatToXmlElement(this as WebDavPropstat, namespaces: namespaces); |
||||
} |
||||
|
||||
void _$WebDavPropertyupdateBuildXmlChildren(WebDavPropertyupdate instance, XmlBuilder builder, |
||||
{Map<String, String> namespaces = const {}}) { |
||||
final set = instance.set; |
||||
final setSerialized = set; |
||||
builder.element('set', namespace: 'DAV:', nest: () { |
||||
setSerialized.buildXmlChildren(builder, namespaces: namespaces); |
||||
}); |
||||
} |
||||
|
||||
void _$WebDavPropertyupdateBuildXmlElement(WebDavPropertyupdate instance, XmlBuilder builder, |
||||
{Map<String, String> namespaces = const {}}) { |
||||
builder.element('propertyupdate', namespace: 'DAV:', namespaces: namespaces, nest: () { |
||||
instance.buildXmlChildren(builder, namespaces: namespaces); |
||||
}); |
||||
} |
||||
|
||||
WebDavPropertyupdate _$WebDavPropertyupdateFromXmlElement(XmlElement element) { |
||||
final set = element.getElement('set', namespace: 'DAV:')!; |
||||
return WebDavPropertyupdate(set: WebDavSet.fromXmlElement(set)); |
||||
} |
||||
|
||||
List<XmlAttribute> _$WebDavPropertyupdateToXmlAttributes(WebDavPropertyupdate instance, |
||||
{Map<String, String?> namespaces = const {}}) { |
||||
final attributes = <XmlAttribute>[]; |
||||
return attributes; |
||||
} |
||||
|
||||
List<XmlNode> _$WebDavPropertyupdateToXmlChildren(WebDavPropertyupdate instance, |
||||
{Map<String, String?> namespaces = const {}}) { |
||||
final children = <XmlNode>[]; |
||||
final set = instance.set; |
||||
final setSerialized = set; |
||||
final setConstructed = XmlElement(XmlName('set', namespaces['DAV:']), |
||||
setSerialized.toXmlAttributes(namespaces: namespaces), setSerialized.toXmlChildren(namespaces: namespaces)); |
||||
children.add(setConstructed); |
||||
return children; |
||||
} |
||||
|
||||
XmlElement _$WebDavPropertyupdateToXmlElement(WebDavPropertyupdate instance, |
||||
{Map<String, String?> namespaces = const {}}) { |
||||
return XmlElement( |
||||
XmlName('propertyupdate', namespaces['DAV:']), |
||||
[...namespaces.toXmlAttributes(), ...instance.toXmlAttributes(namespaces: namespaces)], |
||||
instance.toXmlChildren(namespaces: namespaces)); |
||||
} |
||||
|
||||
mixin _$WebDavPropertyupdateXmlSerializableMixin { |
||||
void buildXmlChildren(XmlBuilder builder, {Map<String, String> namespaces = const {}}) => |
||||
_$WebDavPropertyupdateBuildXmlChildren(this as WebDavPropertyupdate, builder, namespaces: namespaces); |
||||
|
||||
void buildXmlElement(XmlBuilder builder, {Map<String, String> namespaces = const {}}) => |
||||
_$WebDavPropertyupdateBuildXmlElement(this as WebDavPropertyupdate, builder, namespaces: namespaces); |
||||
|
||||
List<XmlAttribute> toXmlAttributes({Map<String, String?> namespaces = const {}}) => |
||||
_$WebDavPropertyupdateToXmlAttributes(this as WebDavPropertyupdate, namespaces: namespaces); |
||||
|
||||
List<XmlNode> toXmlChildren({Map<String, String?> namespaces = const {}}) => |
||||
_$WebDavPropertyupdateToXmlChildren(this as WebDavPropertyupdate, namespaces: namespaces); |
||||
|
||||
XmlElement toXmlElement({Map<String, String?> namespaces = const {}}) => |
||||
_$WebDavPropertyupdateToXmlElement(this as WebDavPropertyupdate, namespaces: namespaces); |
||||
} |
||||
|
||||
void _$WebDavSetBuildXmlChildren(WebDavSet instance, XmlBuilder builder, {Map<String, String> namespaces = const {}}) { |
||||
final prop = instance.prop; |
||||
final propSerialized = prop; |
||||
builder.element('prop', namespace: 'DAV:', nest: () { |
||||
propSerialized.buildXmlChildren(builder, namespaces: namespaces); |
||||
}); |
||||
} |
||||
|
||||
void _$WebDavSetBuildXmlElement(WebDavSet instance, XmlBuilder builder, {Map<String, String> namespaces = const {}}) { |
||||
builder.element('propertyupdate', namespace: 'DAV:', namespaces: namespaces, nest: () { |
||||
instance.buildXmlChildren(builder, namespaces: namespaces); |
||||
}); |
||||
} |
||||
|
||||
WebDavSet _$WebDavSetFromXmlElement(XmlElement element) { |
||||
final prop = element.getElement('prop', namespace: 'DAV:')!; |
||||
return WebDavSet(prop: WebDavProp.fromXmlElement(prop)); |
||||
} |
||||
|
||||
List<XmlAttribute> _$WebDavSetToXmlAttributes(WebDavSet instance, {Map<String, String?> namespaces = const {}}) { |
||||
final attributes = <XmlAttribute>[]; |
||||
return attributes; |
||||
} |
||||
|
||||
List<XmlNode> _$WebDavSetToXmlChildren(WebDavSet instance, {Map<String, String?> namespaces = const {}}) { |
||||
final children = <XmlNode>[]; |
||||
final prop = instance.prop; |
||||
final propSerialized = prop; |
||||
final propConstructed = XmlElement(XmlName('prop', namespaces['DAV:']), |
||||
propSerialized.toXmlAttributes(namespaces: namespaces), propSerialized.toXmlChildren(namespaces: namespaces)); |
||||
children.add(propConstructed); |
||||
return children; |
||||
} |
||||
|
||||
XmlElement _$WebDavSetToXmlElement(WebDavSet instance, {Map<String, String?> namespaces = const {}}) { |
||||
return XmlElement( |
||||
XmlName('propertyupdate', namespaces['DAV:']), |
||||
[...namespaces.toXmlAttributes(), ...instance.toXmlAttributes(namespaces: namespaces)], |
||||
instance.toXmlChildren(namespaces: namespaces)); |
||||
} |
||||
|
||||
mixin _$WebDavSetXmlSerializableMixin { |
||||
void buildXmlChildren(XmlBuilder builder, {Map<String, String> namespaces = const {}}) => |
||||
_$WebDavSetBuildXmlChildren(this as WebDavSet, builder, namespaces: namespaces); |
||||
|
||||
void buildXmlElement(XmlBuilder builder, {Map<String, String> namespaces = const {}}) => |
||||
_$WebDavSetBuildXmlElement(this as WebDavSet, builder, namespaces: namespaces); |
||||
|
||||
List<XmlAttribute> toXmlAttributes({Map<String, String?> namespaces = const {}}) => |
||||
_$WebDavSetToXmlAttributes(this as WebDavSet, namespaces: namespaces); |
||||
|
||||
List<XmlNode> toXmlChildren({Map<String, String?> namespaces = const {}}) => |
||||
_$WebDavSetToXmlChildren(this as WebDavSet, namespaces: namespaces); |
||||
|
||||
XmlElement toXmlElement({Map<String, String?> namespaces = const {}}) => |
||||
_$WebDavSetToXmlElement(this as WebDavSet, namespaces: namespaces); |
||||
} |
||||
|
||||
void _$WebDavPropfindBuildXmlChildren(WebDavPropfind instance, XmlBuilder builder, |
||||
{Map<String, String> namespaces = const {}}) { |
||||
final prop = instance.prop; |
||||
final propSerialized = prop; |
||||
builder.element('prop', namespace: 'DAV:', nest: () { |
||||
propSerialized.buildXmlChildren(builder, namespaces: namespaces); |
||||
}); |
||||
} |
||||
|
||||
void _$WebDavPropfindBuildXmlElement(WebDavPropfind instance, XmlBuilder builder, |
||||
{Map<String, String> namespaces = const {}}) { |
||||
builder.element('propfind', namespace: 'DAV:', namespaces: namespaces, nest: () { |
||||
instance.buildXmlChildren(builder, namespaces: namespaces); |
||||
}); |
||||
} |
||||
|
||||
WebDavPropfind _$WebDavPropfindFromXmlElement(XmlElement element) { |
||||
final prop = element.getElement('prop', namespace: 'DAV:')!; |
||||
return WebDavPropfind(prop: WebDavPropfindProp.fromXmlElement(prop)); |
||||
} |
||||
|
||||
List<XmlAttribute> _$WebDavPropfindToXmlAttributes(WebDavPropfind instance, |
||||
{Map<String, String?> namespaces = const {}}) { |
||||
final attributes = <XmlAttribute>[]; |
||||
return attributes; |
||||
} |
||||
|
||||
List<XmlNode> _$WebDavPropfindToXmlChildren(WebDavPropfind instance, {Map<String, String?> namespaces = const {}}) { |
||||
final children = <XmlNode>[]; |
||||
final prop = instance.prop; |
||||
final propSerialized = prop; |
||||
final propConstructed = XmlElement(XmlName('prop', namespaces['DAV:']), |
||||
propSerialized.toXmlAttributes(namespaces: namespaces), propSerialized.toXmlChildren(namespaces: namespaces)); |
||||
children.add(propConstructed); |
||||
return children; |
||||
} |
||||
|
||||
XmlElement _$WebDavPropfindToXmlElement(WebDavPropfind instance, {Map<String, String?> namespaces = const {}}) { |
||||
return XmlElement( |
||||
XmlName('propfind', namespaces['DAV:']), |
||||
[...namespaces.toXmlAttributes(), ...instance.toXmlAttributes(namespaces: namespaces)], |
||||
instance.toXmlChildren(namespaces: namespaces)); |
||||
} |
||||
|
||||
mixin _$WebDavPropfindXmlSerializableMixin { |
||||
void buildXmlChildren(XmlBuilder builder, {Map<String, String> namespaces = const {}}) => |
||||
_$WebDavPropfindBuildXmlChildren(this as WebDavPropfind, builder, namespaces: namespaces); |
||||
|
||||
void buildXmlElement(XmlBuilder builder, {Map<String, String> namespaces = const {}}) => |
||||
_$WebDavPropfindBuildXmlElement(this as WebDavPropfind, builder, namespaces: namespaces); |
||||
|
||||
List<XmlAttribute> toXmlAttributes({Map<String, String?> namespaces = const {}}) => |
||||
_$WebDavPropfindToXmlAttributes(this as WebDavPropfind, namespaces: namespaces); |
||||
|
||||
List<XmlNode> toXmlChildren({Map<String, String?> namespaces = const {}}) => |
||||
_$WebDavPropfindToXmlChildren(this as WebDavPropfind, namespaces: namespaces); |
||||
|
||||
XmlElement toXmlElement({Map<String, String?> namespaces = const {}}) => |
||||
_$WebDavPropfindToXmlElement(this as WebDavPropfind, namespaces: namespaces); |
||||
} |
||||
|
||||
void _$WebDavOcFilterFilesBuildXmlChildren(WebDavOcFilterFiles instance, XmlBuilder builder, |
||||
{Map<String, String> namespaces = const {}}) { |
||||
final filterRules = instance.filterRules; |
||||
final filterRulesSerialized = filterRules; |
||||
builder.element('filter-rules', namespace: 'http://owncloud.org/ns', nest: () { |
||||
filterRulesSerialized.buildXmlChildren(builder, namespaces: namespaces); |
||||
}); |
||||
final prop = instance.prop; |
||||
final propSerialized = prop; |
||||
builder.element('prop', namespace: 'DAV:', nest: () { |
||||
propSerialized.buildXmlChildren(builder, namespaces: namespaces); |
||||
}); |
||||
} |
||||
|
||||
void _$WebDavOcFilterFilesBuildXmlElement(WebDavOcFilterFiles instance, XmlBuilder builder, |
||||
{Map<String, String> namespaces = const {}}) { |
||||
builder.element('filter-files', namespace: 'http://owncloud.org/ns', namespaces: namespaces, nest: () { |
||||
instance.buildXmlChildren(builder, namespaces: namespaces); |
||||
}); |
||||
} |
||||
|
||||
WebDavOcFilterFiles _$WebDavOcFilterFilesFromXmlElement(XmlElement element) { |
||||
final filterRules = element.getElement('filter-rules', namespace: 'http://owncloud.org/ns')!; |
||||
final prop = element.getElement('prop', namespace: 'DAV:')!; |
||||
return WebDavOcFilterFiles( |
||||
filterRules: WebDavOcFilterRules.fromXmlElement(filterRules), prop: WebDavPropfindProp.fromXmlElement(prop)); |
||||
} |
||||
|
||||
List<XmlAttribute> _$WebDavOcFilterFilesToXmlAttributes(WebDavOcFilterFiles instance, |
||||
{Map<String, String?> namespaces = const {}}) { |
||||
final attributes = <XmlAttribute>[]; |
||||
return attributes; |
||||
} |
||||
|
||||
List<XmlNode> _$WebDavOcFilterFilesToXmlChildren(WebDavOcFilterFiles instance, |
||||
{Map<String, String?> namespaces = const {}}) { |
||||
final children = <XmlNode>[]; |
||||
final filterRules = instance.filterRules; |
||||
final filterRulesSerialized = filterRules; |
||||
final filterRulesConstructed = XmlElement( |
||||
XmlName('filter-rules', namespaces['http://owncloud.org/ns']), |
||||
filterRulesSerialized.toXmlAttributes(namespaces: namespaces), |
||||
filterRulesSerialized.toXmlChildren(namespaces: namespaces)); |
||||
children.add(filterRulesConstructed); |
||||
final prop = instance.prop; |
||||
final propSerialized = prop; |
||||
final propConstructed = XmlElement(XmlName('prop', namespaces['DAV:']), |
||||
propSerialized.toXmlAttributes(namespaces: namespaces), propSerialized.toXmlChildren(namespaces: namespaces)); |
||||
children.add(propConstructed); |
||||
return children; |
||||
} |
||||
|
||||
XmlElement _$WebDavOcFilterFilesToXmlElement(WebDavOcFilterFiles instance, |
||||
{Map<String, String?> namespaces = const {}}) { |
||||
return XmlElement( |
||||
XmlName('filter-files', namespaces['http://owncloud.org/ns']), |
||||
[...namespaces.toXmlAttributes(), ...instance.toXmlAttributes(namespaces: namespaces)], |
||||
instance.toXmlChildren(namespaces: namespaces)); |
||||
} |
||||
|
||||
mixin _$WebDavOcFilterFilesXmlSerializableMixin { |
||||
void buildXmlChildren(XmlBuilder builder, {Map<String, String> namespaces = const {}}) => |
||||
_$WebDavOcFilterFilesBuildXmlChildren(this as WebDavOcFilterFiles, builder, namespaces: namespaces); |
||||
|
||||
void buildXmlElement(XmlBuilder builder, {Map<String, String> namespaces = const {}}) => |
||||
_$WebDavOcFilterFilesBuildXmlElement(this as WebDavOcFilterFiles, builder, namespaces: namespaces); |
||||
|
||||
List<XmlAttribute> toXmlAttributes({Map<String, String?> namespaces = const {}}) => |
||||
_$WebDavOcFilterFilesToXmlAttributes(this as WebDavOcFilterFiles, namespaces: namespaces); |
||||
|
||||
List<XmlNode> toXmlChildren({Map<String, String?> namespaces = const {}}) => |
||||
_$WebDavOcFilterFilesToXmlChildren(this as WebDavOcFilterFiles, namespaces: namespaces); |
||||
|
||||
XmlElement toXmlElement({Map<String, String?> namespaces = const {}}) => |
||||
_$WebDavOcFilterFilesToXmlElement(this as WebDavOcFilterFiles, namespaces: namespaces); |
||||
} |
Loading…
Reference in new issue