source: appstream-generator/build/girepo/appstream/Component.d @ 4841

Last change on this file since 4841 was 4841, checked in by Juanma, 2 years ago

Initial release

File size: 25.1 KB
Line 
1/*
2 * Licensed under the GNU Lesser General Public License Version 3
3 *
4 * This library is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU Lesser General Public License as published by
6 * the Free Software Foundation, either version 3 of the license, or
7 * (at your option) any later version.
8 *
9 * This software is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 * GNU Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public License
15 * along with this library.  If not, see <http://www.gnu.org/licenses/>.
16 */
17
18// generated automatically - do not change
19
20
21module appstream.Component;
22
23private import appstream.Bundle;
24private import appstream.Category;
25private import appstream.Icon;
26private import appstream.Provided;
27private import appstream.Release;
28private import appstream.Screenshot;
29private import appstream.Suggested;
30private import appstream.Translation;
31private import gi.appstream;
32public  import gi.appstreamtypes;
33private import glib.ConstructionException;
34private import glib.HashTable;
35private import glib.ListG;
36private import glib.PtrArray;
37private import glib.Str;
38private import gobject.ObjectG;
39
40
41/** */
42public class Component : ObjectG
43{
44        /** the main Gtk struct */
45        protected AsComponent* asComponent;
46
47        /** Get the main Gtk struct */
48        public AsComponent* getComponentStruct()
49        {
50                return asComponent;
51        }
52
53        /** the main Gtk struct as a void* */
54        protected override void* getStruct()
55        {
56                return cast(void*)asComponent;
57        }
58
59        protected override void setStruct(GObject* obj)
60        {
61                asComponent = cast(AsComponent*)obj;
62                super.setStruct(obj);
63        }
64
65        /**
66         * Sets our main struct and passes it to the parent class.
67         */
68        public this (AsComponent* asComponent, bool ownedRef = false)
69        {
70                this.asComponent = asComponent;
71                super(cast(GObject*)asComponent, ownedRef);
72        }
73
74
75        /** */
76        public static GType getType()
77        {
78                return as_component_get_type();
79        }
80
81        /**
82         * Creates a new #AsComponent.
83         *
84         * Returns: a new #AsComponent
85         *
86         * Throws: ConstructionException GTK+ fails to create the object.
87         */
88        public this()
89        {
90                auto p = as_component_new();
91               
92                if(p is null)
93                {
94                        throw new ConstructionException("null returned by new");
95                }
96               
97                this(cast(AsComponent*) p, true);
98        }
99
100        /**
101         * Add a reference to the addon that is enhancing this component.
102         *
103         * Params:
104         *     addon = The #AsComponent that extends @cpt
105         *
106         * Since: 0.9.2
107         */
108        public void addAddon(Component addon)
109        {
110                as_component_add_addon(asComponent, (addon is null) ? null : addon.getComponentStruct());
111        }
112
113        /**
114         * Adds a bundle to the component.
115         *
116         * Params:
117         *     bundle = The #AsBundle to add.
118         *
119         * Since: 0.8.0
120         */
121        public void addBundle(Bundle bundle)
122        {
123                as_component_add_bundle(asComponent, (bundle is null) ? null : bundle.getBundleStruct());
124        }
125
126        /**
127         * Add a category.
128         *
129         * Params:
130         *     category = the categories name to add.
131         */
132        public void addCategory(string category)
133        {
134                as_component_add_category(asComponent, Str.toStringz(category));
135        }
136
137        /**
138         * Add a reference to the extended component
139         *
140         * Params:
141         *     cptId = The id of a component which is extended by this component
142         *
143         * Since: 0.7.0
144         */
145        public void addExtends(string cptId)
146        {
147                as_component_add_extends(asComponent, Str.toStringz(cptId));
148        }
149
150        /**
151         * Add an icon to this component.
152         *
153         * Params:
154         *     icon = the valid #AsIcon instance to add.
155         */
156        public void addIcon(Icon icon)
157        {
158                as_component_add_icon(asComponent, (icon is null) ? null : icon.getIconStruct());
159        }
160
161        /**
162         * Adds a language to the component.
163         *
164         * Params:
165         *     locale = the locale, or %NULL. e.g. "en_GB"
166         *     percentage = the percentage completion of the translation, 0 for locales with unknown amount of translation
167         *
168         * Since: 0.7.0
169         */
170        public void addLanguage(string locale, int percentage)
171        {
172                as_component_add_language(asComponent, Str.toStringz(locale), percentage);
173        }
174
175        /**
176         * Add a set of provided items to this component.
177         *
178         * Params:
179         *     prov = a #AsProvided instance.
180         *
181         * Since: 0.6.2
182         */
183        public void addProvided(Provided prov)
184        {
185                as_component_add_provided(asComponent, (prov is null) ? null : prov.getProvidedStruct());
186        }
187
188        /**
189         * Add an #AsRelease to this component.
190         *
191         * Params:
192         *     release = The #AsRelease to add
193         */
194        public void addRelease(Release release)
195        {
196                as_component_add_release(asComponent, (release is null) ? null : release.getReleaseStruct());
197        }
198
199        /**
200         * Add an #AsScreenshot to this component.
201         *
202         * Params:
203         *     sshot = The #AsScreenshot to add
204         */
205        public void addScreenshot(Screenshot sshot)
206        {
207                as_component_add_screenshot(asComponent, (sshot is null) ? null : sshot.getScreenshotStruct());
208        }
209
210        /**
211         * Add an #AsSuggested to this component.
212         *
213         * Params:
214         *     suggested = The #AsSuggested
215         */
216        public void addSuggested(Suggested suggested)
217        {
218                as_component_add_suggested(asComponent, (suggested is null) ? null : suggested.getSuggestedStruct());
219        }
220
221        /**
222         * Assign an #AsTranslation object describing the translation system used
223         * by this component.
224         *
225         * Params:
226         *     tr = an #AsTranslation instance.
227         *
228         * Since: 0.9.2
229         */
230        public void addTranslation(Translation tr)
231        {
232                as_component_add_translation(asComponent, (tr is null) ? null : tr.getTranslationStruct());
233        }
234
235        /**
236         * Adds some URL data to the component.
237         *
238         * Params:
239         *     urlKind = the URL kind, e.g. %AS_URL_KIND_HOMEPAGE
240         *     url = the full URL.
241         *
242         * Since: 0.6.2
243         */
244        public void addUrl(AsUrlKind urlKind, string url)
245        {
246                as_component_add_url(asComponent, urlKind, Str.toStringz(url));
247        }
248
249        /**
250         * Get the current active locale for this component, which
251         * is used to get localized messages.
252         *
253         * Returns: the current active locale.
254         */
255        public string getActiveLocale()
256        {
257                auto retStr = as_component_get_active_locale(asComponent);
258               
259                scope(exit) Str.freeString(retStr);
260                return Str.toString(retStr);
261        }
262
263        /**
264         * Returns a list of #AsComponent objects which
265         * are addons extending this component in functionality.
266         *
267         * This is the reverse of %as_component_get_extends()
268         *
269         * Returns: An array of #AsComponent.
270         *
271         * Since: 0.9.2
272         */
273        public PtrArray getAddons()
274        {
275                auto p = as_component_get_addons(asComponent);
276               
277                if(p is null)
278                {
279                        return null;
280                }
281               
282                return new PtrArray(cast(GPtrArray*) p);
283        }
284
285        /**
286         * Gets a bundle identifier string.
287         *
288         * Params:
289         *     bundleKind = the bundle kind, e.g. %AS_BUNDLE_KIND_LIMBA.
290         *
291         * Returns: An #AsBundle, or %NULL if not set.
292         *
293         * Since: 0.8.0
294         */
295        public Bundle getBundle(AsBundleKind bundleKind)
296        {
297                auto p = as_component_get_bundle(asComponent, bundleKind);
298               
299                if(p is null)
300                {
301                        return null;
302                }
303               
304                return ObjectG.getDObject!(Bundle)(cast(AsBundle*) p);
305        }
306
307        /**
308         * Get a list of all software bundles associated with this component.
309         *
310         * Returns: A list of #AsBundle.
311         *
312         * Since: 0.10
313         */
314        public PtrArray getBundles()
315        {
316                auto p = as_component_get_bundles(asComponent);
317               
318                if(p is null)
319                {
320                        return null;
321                }
322               
323                return new PtrArray(cast(GPtrArray*) p);
324        }
325
326        /**
327         * Returns: String array of categories
328         */
329        public PtrArray getCategories()
330        {
331                auto p = as_component_get_categories(asComponent);
332               
333                if(p is null)
334                {
335                        return null;
336                }
337               
338                return new PtrArray(cast(GPtrArray*) p);
339        }
340
341        /**
342         * Returns: A list of desktops where this component is compulsory
343         */
344        public PtrArray getCompulsoryForDesktops()
345        {
346                auto p = as_component_get_compulsory_for_desktops(asComponent);
347               
348                if(p is null)
349                {
350                        return null;
351                }
352               
353                return new PtrArray(cast(GPtrArray*) p);
354        }
355
356        /**
357         * Returns: Hash table of custom user defined data fields.
358         *
359         * Since: 0.10.5
360         */
361        public HashTable getCustom()
362        {
363                auto p = as_component_get_custom(asComponent);
364               
365                if(p is null)
366                {
367                        return null;
368                }
369               
370                return new HashTable(cast(GHashTable*) p);
371        }
372
373        /**
374         * Retrieve value for a custom data entry with the given key.
375         *
376         * Params:
377         *     key = Field name.
378         *
379         * Since: 0.10.5
380         */
381        public string getCustomValue(string key)
382        {
383                auto retStr = as_component_get_custom_value(asComponent, Str.toStringz(key));
384               
385                scope(exit) Str.freeString(retStr);
386                return Str.toString(retStr);
387        }
388
389        /**
390         * Get a unique identifier for this metadata set.
391         * This unique ID is only valid for the current session,
392         * as opposed to the AppStream ID which uniquely identifies
393         * a software component.
394         *
395         * The format of the unique id usually is:
396         * %{scope}/%{origin}/%{distribution_system}/%{appstream_id}
397         *
398         * For example:
399         * system/os/package/org.example.FooBar
400         *
401         * Returns: the unique session-specific identifier.
402         */
403        public string getDataId()
404        {
405                return Str.toString(as_component_get_data_id(asComponent));
406        }
407
408        /**
409         * Get the localized long description of this component.
410         *
411         * Returns: the description.
412         */
413        public string getDescription()
414        {
415                return Str.toString(as_component_get_description(asComponent));
416        }
417
418        /**
419         * Get the Desktop Entry ID for this component, if it is
420         * of type "desktop-application".
421         * For most desktop-application components, this is the name
422         * of the .desktop file.
423         *
424         * Refer to https://specifications.freedesktop.org/desktop-entry-spec/latest/ape.html for more
425         * information.
426         *
427         * Returns: The desktop file id.
428         *
429         * Since: 0.9.8
430         */
431        public string getDesktopId()
432        {
433                return Str.toString(as_component_get_desktop_id(asComponent));
434        }
435
436        /**
437         * Get the component's developer or development team name.
438         *
439         * Returns: the developer name.
440         */
441        public string getDeveloperName()
442        {
443                return Str.toString(as_component_get_developer_name(asComponent));
444        }
445
446        /**
447         * Returns a string list of IDs of components which
448         * are extended by this addon.
449         *
450         * See %as_component_get_extends() for the reverse.
451         *
452         * Returns: A #GPtrArray or %NULL if not set.
453         *
454         * Since: 0.7.0
455         */
456        public PtrArray getExtends()
457        {
458                auto p = as_component_get_extends(asComponent);
459               
460                if(p is null)
461                {
462                        return null;
463                }
464               
465                return new PtrArray(cast(GPtrArray*) p);
466        }
467
468        /**
469         * Gets an icon matching the size constraints.
470         * The icons are not filtered by type, and the first icon
471         * which matches the size is returned.
472         * If you want more control over which icons you use for displaying,
473         * use the as_component_get_icons() function to get a list of all icons.
474         *
475         * Params:
476         *     width = The icon width in pixels.
477         *     height = the icon height in pixels.
478         *
479         * Returns: An icon matching the given width/height, or %NULL if not found.
480         */
481        public Icon getIconBySize(uint width, uint height)
482        {
483                auto p = as_component_get_icon_by_size(asComponent, width, height);
484               
485                if(p is null)
486                {
487                        return null;
488                }
489               
490                return ObjectG.getDObject!(Icon)(cast(AsIcon*) p);
491        }
492
493        /**
494         * Returns: A #GPtrArray of all icons for this component.
495         */
496        public PtrArray getIcons()
497        {
498                auto p = as_component_get_icons(asComponent);
499               
500                if(p is null)
501                {
502                        return null;
503                }
504               
505                return new PtrArray(cast(GPtrArray*) p);
506        }
507
508        /**
509         * Get the unique AppStream identifier for this component.
510         * This ID is unique for the described component, but does
511         * not uniquely identify the metadata set.
512         *
513         * For a unique ID for this metadata set in the current
514         * session, use %as_component_get_data_id()
515         *
516         * Returns: the unique AppStream identifier.
517         */
518        public string getId()
519        {
520                return Str.toString(as_component_get_id(asComponent));
521        }
522
523        /**
524         * Returns: String array of keywords
525         */
526        public string[] getKeywords()
527        {
528                return Str.toStringArray(as_component_get_keywords(asComponent));
529        }
530
531        /**
532         * Returns the #AsComponentKind of this component.
533         *
534         * Returns: the kind of #this.
535         */
536        public AsComponentKind getKind()
537        {
538                return as_component_get_kind(asComponent);
539        }
540
541        /**
542         * Gets the translation coverage in percent for a specific locale
543         *
544         * Params:
545         *     locale = the locale, or %NULL. e.g. "en_GB"
546         *
547         * Returns: a percentage value, -1 if locale was not found
548         *
549         * Since: 0.7.0
550         */
551        public int getLanguage(string locale)
552        {
553                return as_component_get_language(asComponent, Str.toStringz(locale));
554        }
555
556        /**
557         * Get a list of all languages.
558         *
559         * Returns: list of locales
560         *
561         * Since: 0.7.0
562         */
563        public ListG getLanguages()
564        {
565                auto p = as_component_get_languages(asComponent);
566               
567                if(p is null)
568                {
569                        return null;
570                }
571               
572                return new ListG(cast(GList*) p);
573        }
574
575        /**
576         * Get the merge method which should apply to duplicate components
577         * with this ID.
578         *
579         * Returns: the #AsMergeKind of this component.
580         *
581         * Since: 0.9.8
582         */
583        public AsMergeKind getMergeKind()
584        {
585                return as_component_get_merge_kind(asComponent);
586        }
587
588        /**
589         * The license the metadata iself is subjected to.
590         *
591         * Returns: the license.
592         */
593        public string getMetadataLicense()
594        {
595                return Str.toString(as_component_get_metadata_license(asComponent));
596        }
597
598        /**
599         * A human-readable name for this component.
600         *
601         * Returns: the name.
602         */
603        public string getName()
604        {
605                return Str.toString(as_component_get_name(asComponent));
606        }
607
608        /** */
609        public string getOrigin()
610        {
611                return Str.toString(as_component_get_origin(asComponent));
612        }
613
614        /**
615         * Get the first package name of the list of packages that need to be installed
616         * for this component to be present on the system.
617         * Since most components consist of only one package, this is safe to use for
618         * about 90% of all cases.
619         *
620         * However, to support a component fully, please use %as_component_get_pkgnames() for
621         * getting all packages that need to be installed, and use this method only to
622         * e.g. get the main package to perform a quick "is it installed?" check.
623         *
624         * Returns: String array of package names
625         */
626        public string getPkgname()
627        {
628                return Str.toString(as_component_get_pkgname(asComponent));
629        }
630
631        /**
632         * Get a list of package names which this component consists of.
633         * This usually is just one package name.
634         *
635         * Returns: String array of package names
636         */
637        public string[] getPkgnames()
638        {
639                return Str.toStringArray(as_component_get_pkgnames(asComponent));
640        }
641
642        /**
643         * Get the component's project group.
644         *
645         * Returns: the project group.
646         */
647        public string getProjectGroup()
648        {
649                return Str.toString(as_component_get_project_group(asComponent));
650        }
651
652        /**
653         * Get the license of the project this component belongs to.
654         *
655         * Returns: the license.
656         */
657        public string getProjectLicense()
658        {
659                return Str.toString(as_component_get_project_license(asComponent));
660        }
661
662        /**
663         * Get a list of #AsProvided objects associated with this component.
664         *
665         * Returns: A list of #AsProvided objects.
666         */
667        public PtrArray getProvided()
668        {
669                auto p = as_component_get_provided(asComponent);
670               
671                if(p is null)
672                {
673                        return null;
674                }
675               
676                return new PtrArray(cast(GPtrArray*) p);
677        }
678
679        /**
680         * Get an #AsProvided object for the given interface type,
681         * containing information about the public interfaces (mimetypes, firmware, DBus services, ...)
682         * this component provides.
683         *
684         * Params:
685         *     kind = kind of the provided item, e.g. %AS_PROVIDED_KIND_MIMETYPE
686         *
687         * Returns: #AsProvided containing the items this component provides, or %NULL.
688         */
689        public Provided getProvidedForKind(AsProvidedKind kind)
690        {
691                auto p = as_component_get_provided_for_kind(asComponent, kind);
692               
693                if(p is null)
694                {
695                        return null;
696                }
697               
698                return ObjectG.getDObject!(Provided)(cast(AsProvided*) p);
699        }
700
701        /**
702         * Get an array of the #AsRelease items this component
703         * provides.
704         *
705         * Returns: A list of releases
706         */
707        public PtrArray getReleases()
708        {
709                auto p = as_component_get_releases(asComponent);
710               
711                if(p is null)
712                {
713                        return null;
714                }
715               
716                return new PtrArray(cast(GPtrArray*) p);
717        }
718
719        /**
720         * Get a list of associated screenshots.
721         *
722         * Returns: an array of #AsScreenshot instances
723         */
724        public PtrArray getScreenshots()
725        {
726                auto p = as_component_get_screenshots(asComponent);
727               
728                if(p is null)
729                {
730                        return null;
731                }
732               
733                return new PtrArray(cast(GPtrArray*) p);
734        }
735
736        /**
737         * Returns all search tokens for this component.
738         *
739         * Returns: The string search tokens
740         *
741         * Since: 0.9.7
742         */
743        public PtrArray getSearchTokens()
744        {
745                auto p = as_component_get_search_tokens(asComponent);
746               
747                if(p is null)
748                {
749                        return null;
750                }
751               
752                return new PtrArray(cast(GPtrArray*) p);
753        }
754
755        /**
756         * Returns: the source package name.
757         */
758        public string getSourcePkgname()
759        {
760                return Str.toString(as_component_get_source_pkgname(asComponent));
761        }
762
763        /**
764         * Get a list of associated suggestions.
765         *
766         * Returns: an array of #AsSuggested instances
767         */
768        public PtrArray getSuggested()
769        {
770                auto p = as_component_get_suggested(asComponent);
771               
772                if(p is null)
773                {
774                        return null;
775                }
776               
777                return new PtrArray(cast(GPtrArray*) p);
778        }
779
780        /**
781         * Get a short description of this component.
782         *
783         * Returns: the summary.
784         */
785        public string getSummary()
786        {
787                return Str.toString(as_component_get_summary(asComponent));
788        }
789
790        /**
791         * Get a #GPtrArray of #AsTranslation objects describing the
792         * translation systems and translation-ids (e.g. Gettext domains) used
793         * by this software component.
794         *
795         * Only set for metainfo files.
796         *
797         * Returns: An array of #AsTranslation objects.
798         *
799         * Since: 0.9.2
800         */
801        public PtrArray getTranslations()
802        {
803                auto p = as_component_get_translations(asComponent);
804               
805                if(p is null)
806                {
807                        return null;
808                }
809               
810                return new PtrArray(cast(GPtrArray*) p);
811        }
812
813        /**
814         * Gets a URL.
815         *
816         * Params:
817         *     urlKind = the URL kind, e.g. %AS_URL_KIND_HOMEPAGE.
818         *
819         * Returns: string, or %NULL if unset
820         *
821         * Since: 0.6.2
822         */
823        public string getUrl(AsUrlKind urlKind)
824        {
825                return Str.toString(as_component_get_url(asComponent, urlKind));
826        }
827
828        /**
829         * Returns: The #AsValueFlags that are set on @cpt.
830         */
831        public AsValueFlags getValueFlags()
832        {
833                return as_component_get_value_flags(asComponent);
834        }
835
836        /**
837         * Returns: %TRUE if this component has a bundle associated.
838         */
839        public bool hasBundle()
840        {
841                return as_component_has_bundle(asComponent) != 0;
842        }
843
844        /**
845         * Check if component is in the specified category.
846         *
847         * Params:
848         *     category = the specified category to check
849         *
850         * Returns: %TRUE if the component is in the specified category.
851         */
852        public bool hasCategory(string category)
853        {
854                return as_component_has_category(asComponent, Str.toStringz(category)) != 0;
855        }
856
857        /**
858         * Add a key and value pair to the custom data table.
859         *
860         * Params:
861         *     key = Key name.
862         *     value = A string value.
863         *
864         * Returns: %TRUE if the key did not exist yet.
865         *
866         * Since: 0.10.5
867         */
868        public bool insertCustomValue(string key, string value)
869        {
870                return as_component_insert_custom_value(asComponent, Str.toStringz(key), Str.toStringz(value)) != 0;
871        }
872
873        /**
874         * Check if this component is compulsory for the given desktop.
875         *
876         * Params:
877         *     desktop = the desktop-id to test for
878         *
879         * Returns: %TRUE if compulsory, %FALSE otherwise.
880         */
881        public bool isCompulsoryForDesktop(string desktop)
882        {
883                return as_component_is_compulsory_for_desktop(asComponent, Str.toStringz(desktop)) != 0;
884        }
885
886        /**
887         * Returns: Whether this component's metadata should be ignored.
888         *
889         * Since: 0.10.2
890         */
891        public bool isIgnored()
892        {
893                return as_component_is_ignored(asComponent) != 0;
894        }
895
896        /**
897         * Test if the component @cpt is a member of category @category.
898         *
899         * Params:
900         *     category = The category to test.
901         */
902        public bool isMemberOfCategory(Category category)
903        {
904                return as_component_is_member_of_category(asComponent, (category is null) ? null : category.getCategoryStruct()) != 0;
905        }
906
907        /**
908         * Check if the essential properties of this Component are
909         * populated with useful data.
910         *
911         * Returns: TRUE if the component data was validated successfully.
912         */
913        public bool isValid()
914        {
915                return as_component_is_valid(asComponent) != 0;
916        }
917
918        /**
919         * Searches component data for a specific keyword.
920         *
921         * Params:
922         *     term = the search term.
923         *
924         * Returns: a match scrore, where 0 is no match and 100 is the best match.
925         *
926         * Since: 0.9.7
927         */
928        public uint searchMatches(string term)
929        {
930                return as_component_search_matches(asComponent, Str.toStringz(term));
931        }
932
933        /**
934         * Searches component data for all the specific keywords.
935         *
936         * Params:
937         *     terms = the search terms.
938         *
939         * Returns: a match score, where 0 is no match and larger numbers are better
940         *     matches.
941         *
942         * Since: 0.9.8
943         */
944        public uint searchMatchesAll(string[] terms)
945        {
946                return as_component_search_matches_all(asComponent, Str.toStringzArray(terms));
947        }
948
949        /**
950         * Set the current active locale for this component, which
951         * is used to get localized messages.
952         * If the #AsComponent was fetched from a localized database, usually only
953         * one locale is available.
954         *
955         * Params:
956         *     locale = the locale, or %NULL. e.g. "en_GB"
957         */
958        public void setActiveLocale(string locale)
959        {
960                as_component_set_active_locale(asComponent, Str.toStringz(locale));
961        }
962
963        /**
964         * Mark this component to be compulsory for the specified desktop environment.
965         *
966         * Params:
967         *     desktop = The name of the desktop.
968         */
969        public void setCompulsoryForDesktop(string desktop)
970        {
971                as_component_set_compulsory_for_desktop(asComponent, Str.toStringz(desktop));
972        }
973
974        /**
975         * Set the session-specific unique metadata identifier for this
976         * component.
977         * If two components have a different data_id but the same ID,
978         * they will be treated as independent sets of metadata describing
979         * the same component type.
980         *
981         * Params:
982         *     value = the unique session-specific identifier.
983         */
984        public void setDataId(string value)
985        {
986                as_component_set_data_id(asComponent, Str.toStringz(value));
987        }
988
989        /**
990         * Set long description for this component.
991         *
992         * Params:
993         *     value = The long description
994         *     locale = The locale the used for this value, or %NULL to use the current active one.
995         */
996        public void setDescription(string value, string locale)
997        {
998                as_component_set_description(asComponent, Str.toStringz(value), Str.toStringz(locale));
999        }
1000
1001        /**
1002         * Set the the component's developer or development team name.
1003         *
1004         * Params:
1005         *     value = the developer or developer team name
1006         *     locale = the locale, or %NULL. e.g. "en_GB"
1007         */
1008        public void setDeveloperName(string value, string locale)
1009        {
1010                as_component_set_developer_name(asComponent, Str.toStringz(value), Str.toStringz(locale));
1011        }
1012
1013        /**
1014         * Set the AppStream identifier for this component.
1015         *
1016         * Params:
1017         *     value = the unique identifier.
1018         */
1019        public void setId(string value)
1020        {
1021                as_component_set_id(asComponent, Str.toStringz(value));
1022        }
1023
1024        /**
1025         * Set keywords for this component.
1026         *
1027         * Params:
1028         *     value = String-array of keywords
1029         *     locale = Locale of the values, or %NULL to use current locale.
1030         */
1031        public void setKeywords(string[] value, string locale)
1032        {
1033                as_component_set_keywords(asComponent, Str.toStringzArray(value), Str.toStringz(locale));
1034        }
1035
1036        /**
1037         * Sets the #AsComponentKind of this component.
1038         *
1039         * Params:
1040         *     value = the #AsComponentKind.
1041         */
1042        public void setKind(AsComponentKind value)
1043        {
1044                as_component_set_kind(asComponent, value);
1045        }
1046
1047        /**
1048         * Sets the #AsMergeKind for this component.
1049         *
1050         * Params:
1051         *     kind = the #AsMergeKind.
1052         *
1053         * Since: 0.9.8
1054         */
1055        public void setMergeKind(AsMergeKind kind)
1056        {
1057                as_component_set_merge_kind(asComponent, kind);
1058        }
1059
1060        /**
1061         * Set the license this metadata is licensed under.
1062         *
1063         * Params:
1064         *     value = the metadata license.
1065         */
1066        public void setMetadataLicense(string value)
1067        {
1068                as_component_set_metadata_license(asComponent, Str.toStringz(value));
1069        }
1070
1071        /**
1072         * Set a human-readable name for this component.
1073         *
1074         * Params:
1075         *     value = The name
1076         *     locale = The locale the used for this value, or %NULL to use the current active one.
1077         */
1078        public void setName(string value, string locale)
1079        {
1080                as_component_set_name(asComponent, Str.toStringz(value), Str.toStringz(locale));
1081        }
1082
1083        /** */
1084        public void setOrigin(string origin)
1085        {
1086                as_component_set_origin(asComponent, Str.toStringz(origin));
1087        }
1088
1089        /**
1090         * Set a list of package names this component consists of.
1091         * (This should usually be just one package name)
1092         */
1093        public void setPkgnames(string[] packages)
1094        {
1095                as_component_set_pkgnames(asComponent, Str.toStringzArray(packages));
1096        }
1097
1098        /**
1099         * Set the component's project group.
1100         *
1101         * Params:
1102         *     value = the project group.
1103         */
1104        public void setProjectGroup(string value)
1105        {
1106                as_component_set_project_group(asComponent, Str.toStringz(value));
1107        }
1108
1109        /**
1110         * Set the project license.
1111         *
1112         * Params:
1113         *     value = the project license.
1114         */
1115        public void setProjectLicense(string value)
1116        {
1117                as_component_set_project_license(asComponent, Str.toStringz(value));
1118        }
1119
1120        /** */
1121        public void setSourcePkgname(string spkgname)
1122        {
1123                as_component_set_source_pkgname(asComponent, Str.toStringz(spkgname));
1124        }
1125
1126        /**
1127         * Set a short description for this component.
1128         *
1129         * Params:
1130         *     value = The summary
1131         *     locale = The locale the used for this value, or %NULL to use the current active one.
1132         */
1133        public void setSummary(string value, string locale)
1134        {
1135                as_component_set_summary(asComponent, Str.toStringz(value), Str.toStringz(locale));
1136        }
1137
1138        /** */
1139        public void setValueFlags(AsValueFlags flags)
1140        {
1141                as_component_set_value_flags(asComponent, flags);
1142        }
1143
1144        /**
1145         * Returns a string identifying this component.
1146         * (useful for debugging)
1147         *
1148         * Returns: A descriptive string
1149         */
1150        public override string toString()
1151        {
1152                auto retStr = as_component_to_string(asComponent);
1153               
1154                scope(exit) Str.freeString(retStr);
1155                return Str.toString(retStr);
1156        }
1157}
Note: See TracBrowser for help on using the repository browser.